(has_supply): Fix the trickery designed to avoid resupply from itself.

Not sure the trickery is needed.  Also avoid `might be used
uninitialized' warning.
This commit is contained in:
Markus Armbruster 2004-03-05 18:31:22 +00:00
parent 4ee7608b0e
commit ed7293f856

View file

@ -531,10 +531,12 @@ has_supply(struct lndstr *lp)
if (food < food_needed) { if (food < food_needed) {
vec[I_FOOD] = 0; vec[I_FOOD] = 0;
putvec(VT_ITEM, vec, (s_char *)lp, EF_LAND); 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, food += try_supply_commod(lp->lnd_own, lp->lnd_x, lp->lnd_y,
I_FOOD, (food_needed - food)); I_FOOD, (food_needed - food));
vec[I_FOOD] = keepfood; vec[I_FOOD] = keepfood;
putvec(VT_ITEM, vec, (s_char *)lp, EF_LAND); putvec(VT_ITEM, vec, (s_char *)lp, EF_LAND);
putland(lp->lnd_uid, lp);
} }
if (food < food_needed) if (food < food_needed)
return 0; return 0;
@ -546,10 +548,12 @@ has_supply(struct lndstr *lp)
if (shells < shells_needed) { if (shells < shells_needed) {
vec[I_SHELL] = 0; vec[I_SHELL] = 0;
putvec(VT_ITEM, vec, (s_char *)lp, EF_LAND); 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, shells += try_supply_commod(lp->lnd_own, lp->lnd_x, lp->lnd_y,
I_SHELL, (shells_needed - shells)); I_SHELL, (shells_needed - shells));
vec[I_SHELL] = keepshells; vec[I_SHELL] = keepshells;
putvec(VT_ITEM, vec, (s_char *)lp, EF_LAND); putvec(VT_ITEM, vec, (s_char *)lp, EF_LAND);
putland(lp->lnd_uid, lp);
} }
if (shells < shells_needed) if (shells < shells_needed)
@ -557,26 +561,23 @@ has_supply(struct lndstr *lp)
if (opt_FUEL) { if (opt_FUEL) {
fuel_needed = lp->lnd_fuelu; fuel_needed = lp->lnd_fuelu;
fuel = lp->lnd_fuel; fuel = lp->lnd_fuel;
petrol = petrol_needed = 0;
if (fuel < fuel_needed) { if (fuel < fuel_needed) {
petrol_needed = petrol_needed =
ldround(((double)(fuel_needed - fuel) / 10.0), 1); ldround(((double)(fuel_needed - fuel) / 10.0), 1);
petrol = keeppetrol = vec[I_PETROL]; petrol = keeppetrol = vec[I_PETROL];
} if (petrol < petrol_needed) {
vec[I_PETROL] = 0;
if (petrol < petrol_needed) { putvec(VT_ITEM, vec, (s_char *)lp, EF_LAND);
vec[I_PETROL] = 0; putland(lp->lnd_uid, lp);
putvec(VT_ITEM, vec, (s_char *)lp, EF_LAND); petrol += try_supply_commod(lp->lnd_own,
petrol += try_supply_commod(lp->lnd_own, lp->lnd_x, lp->lnd_y,
lp->lnd_x, lp->lnd_y, I_PETROL,
I_PETROL, (petrol_needed - petrol));
(petrol_needed - petrol)); vec[I_PETROL] = keeppetrol;
vec[I_PETROL] = keeppetrol; putvec(VT_ITEM, vec, (s_char *)lp, EF_LAND);
putvec(VT_ITEM, vec, (s_char *)lp, EF_LAND); putland(lp->lnd_uid, lp);
}
fuel += petrol * 10; fuel += petrol * 10;
} }