From ed7293f85621fb47526e3ed9e16960312616a071 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Fri, 5 Mar 2004 18:31:22 +0000 Subject: [PATCH] (has_supply): Fix the trickery designed to avoid resupply from itself. Not sure the trickery is needed. Also avoid `might be used uninitialized' warning. --- src/lib/subs/supply.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/lib/subs/supply.c b/src/lib/subs/supply.c index e2bc30a90..accba8a3a 100644 --- a/src/lib/subs/supply.c +++ b/src/lib/subs/supply.c @@ -531,10 +531,12 @@ has_supply(struct lndstr *lp) if (food < food_needed) { vec[I_FOOD] = 0; putvec(VT_ITEM, vec, (s_char *)lp, EF_LAND); + putland(lp->lnd_uid, lp); food += try_supply_commod(lp->lnd_own, lp->lnd_x, lp->lnd_y, I_FOOD, (food_needed - food)); vec[I_FOOD] = keepfood; putvec(VT_ITEM, vec, (s_char *)lp, EF_LAND); + putland(lp->lnd_uid, lp); } if (food < food_needed) return 0; @@ -546,10 +548,12 @@ has_supply(struct lndstr *lp) if (shells < shells_needed) { vec[I_SHELL] = 0; putvec(VT_ITEM, vec, (s_char *)lp, EF_LAND); + putland(lp->lnd_uid, lp); shells += try_supply_commod(lp->lnd_own, lp->lnd_x, lp->lnd_y, I_SHELL, (shells_needed - shells)); vec[I_SHELL] = keepshells; putvec(VT_ITEM, vec, (s_char *)lp, EF_LAND); + putland(lp->lnd_uid, lp); } if (shells < shells_needed) @@ -557,26 +561,23 @@ has_supply(struct lndstr *lp) if (opt_FUEL) { fuel_needed = lp->lnd_fuelu; - fuel = lp->lnd_fuel; - - petrol = petrol_needed = 0; - if (fuel < fuel_needed) { petrol_needed = ldround(((double)(fuel_needed - fuel) / 10.0), 1); petrol = keeppetrol = vec[I_PETROL]; - } - - if (petrol < petrol_needed) { - vec[I_PETROL] = 0; - putvec(VT_ITEM, vec, (s_char *)lp, EF_LAND); - petrol += try_supply_commod(lp->lnd_own, - lp->lnd_x, lp->lnd_y, - I_PETROL, - (petrol_needed - petrol)); - vec[I_PETROL] = keeppetrol; - putvec(VT_ITEM, vec, (s_char *)lp, EF_LAND); + if (petrol < petrol_needed) { + vec[I_PETROL] = 0; + putvec(VT_ITEM, vec, (s_char *)lp, EF_LAND); + putland(lp->lnd_uid, lp); + petrol += try_supply_commod(lp->lnd_own, + lp->lnd_x, lp->lnd_y, + I_PETROL, + (petrol_needed - petrol)); + vec[I_PETROL] = keeppetrol; + putvec(VT_ITEM, vec, (s_char *)lp, EF_LAND); + putland(lp->lnd_uid, lp); + } fuel += petrol * 10; } -- 2.43.0