]> git.pond.sub.org Git - empserver/commitdiff
Fix update's resupply of food to avoid starvation
authorMarkus Armbruster <armbru@pond.sub.org>
Fri, 14 Mar 2008 19:01:23 +0000 (20:01 +0100)
committerMarkus Armbruster <armbru@pond.sub.org>
Fri, 14 Mar 2008 20:00:56 +0000 (21:00 +0100)
do_feed() used supply_commod() incorrectly, which wiped out all food
in the starving sector.

src/lib/update/human.c

index 5280693882b05c4f86527e3d88e2df44e76b3f3a..38c648d4b27db8c39fc2961d6302ad07ff2b789c 100644 (file)
@@ -82,9 +82,9 @@ do_feed(struct sctstr *sp, struct natstr *np, short *vec,
            if (vec[I_FOOD] < needed && sp->sct_own == sp->sct_oldown) {
                /* steal food from warehouses, headquarters,
                   supply ships in port, or supply units */
-               vec[I_FOOD] = supply_commod(sp->sct_own,
-                                           sp->sct_x, sp->sct_y,
-                                           I_FOOD, needed);
+               vec[I_FOOD] += supply_commod(sp->sct_own,
+                                            sp->sct_x, sp->sct_y,
+                                            I_FOOD, needed - vec[I_FOOD]);
            }
        }
        starved = feed_people(vec, etu);