]> git.pond.sub.org Git - empserver/commitdiff
Age che just like reserves (1% per 24 ETUs)
authorMarkus Armbruster <armbru@pond.sub.org>
Sun, 26 Oct 2008 17:08:01 +0000 (13:08 -0400)
committerMarkus Armbruster <armbru@pond.sub.org>
Sat, 1 Nov 2008 15:37:35 +0000 (11:37 -0400)
Factor aging out of age_levels() into new age_people().  Use it in
do_feed() to age che.

include/prototypes.h
src/lib/update/age.c
src/lib/update/human.c

index adc389e2d6c40393cf4df3c97cd0d7c7b664b124..11c32e391fb7dfee8a2e563e258c87d761c33997 100644 (file)
@@ -704,6 +704,7 @@ extern int wu(natid, natid, char *, ...) ATTRIBUTE((format (printf, 3, 4)));
  * src/lib/update/ *.c
  */
 /* age.c */
  * src/lib/update/ *.c
  */
 /* age.c */
+extern int age_people(int, int);
 extern void age_levels(int);
 /* anno.c */
 extern void delete_old_announcements(void);
 extern void age_levels(int);
 /* anno.c */
 extern void delete_old_announcements(void);
index 7f34f1537a7f2d8c1926a7998c90b8e23203f917..7dd94e690ed7c9b450a6e9b6218e85c253bb133b 100644 (file)
 
 #include "update.h"
 
 
 #include "update.h"
 
+int
+age_people(int n, int etu)
+{
+    /* age by 1% per 24 etus */
+    return roundavg(n * (1.0 - etu / 2400.0));
+}
+
 void
 age_levels(int etu)
 {
 void
 age_levels(int etu)
 {
@@ -43,7 +50,6 @@ age_levels(int etu)
     int i;
     double level;
     double delta;
     int i;
     double level;
     double delta;
-    int deltares;
 
     best_tech = 0.0;
     best_res = 0.0;
 
     best_tech = 0.0;
     best_res = 0.0;
@@ -61,14 +67,7 @@ age_levels(int etu)
            delta = np->nat_level[NAT_TLEV] * etu / (100 * level_age_rate);
            np->nat_level[NAT_TLEV] -= delta;
        }
            delta = np->nat_level[NAT_TLEV] * etu / (100 * level_age_rate);
            np->nat_level[NAT_TLEV] -= delta;
        }
-       /*
-        * age reserves by 1% per every 24 etus
-        */
-       deltares = -roundavg(np->nat_reserve * etu / 2400.0);
-       if (deltares != 0)
-           np->nat_reserve += deltares;
-       /* Chad Zabel - above number is negative ( was a -= there
-          which was wrong. */
+       np->nat_reserve = age_people(np->nat_reserve, etu);
     }
     best_tech /= 5;
     best_res /= 5;
     }
     best_tech /= 5;
     best_res /= 5;
index 74997d637958e2bab154ddaa4e3e61b5075f338e..564f0bf7349cff87b8603b457303eb54e66aaa75 100644 (file)
@@ -114,6 +114,9 @@ do_feed(struct sctstr *sp, struct natstr *np, short *vec,
            if (!player->simulation)
                sp->sct_work = sctwork;
            grow_people(sp, etu, np, &work_avail, sctwork, vec);
            if (!player->simulation)
                sp->sct_work = sctwork;
            grow_people(sp, etu, np, &work_avail, sctwork, vec);
+           /* age che */
+           if (!player->simulation)
+               sp->sct_che = age_people(sp->sct_che, etu);
        }
        if (manna)
            /* Take away food we conjured up */
        }
        if (manna)
            /* Take away food we conjured up */