From 47e300b21e97dd70981b834900708e717660d16d Mon Sep 17 00:00:00 2001 From: Ron Koenderink Date: Fri, 29 Dec 2006 19:56:00 +0000 Subject: [PATCH] (do_mob_land): Fix to use all excess mobility for fortification, not just up to the land unit's current mobility. --- src/lib/update/mobility.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/lib/update/mobility.c b/src/lib/update/mobility.c index 51bd47375..1de65bc5a 100644 --- a/src/lib/update/mobility.c +++ b/src/lib/update/mobility.c @@ -400,11 +400,16 @@ do_mob_land(struct lndstr *lp, int etus) if (opt_FUEL == 0) { /* just some bits and pieces */ value = lp->lnd_mobil + ((float)etus * land_mob_scale); if (value > land_mob_max) { + /* + * provide mobility to be used in lnd_fortify() + * without overflowing lnd_mobil + */ + lp->lnd_mobil = land_mob_max; if (!opt_MOB_ACCESS) lnd_fortify(lp, value - land_mob_max); - value = land_mob_max; - } - lp->lnd_mobil = value; + lp->lnd_mobil = land_mob_max; + } else + lp->lnd_mobil = value; return; /* Done! */ } @@ -413,11 +418,16 @@ do_mob_land(struct lndstr *lp, int etus) if (lp->lnd_fuelu == 0) { value = lp->lnd_mobil + ((float)etus * land_mob_scale); if (value > land_mob_max) { + /* + * provide mobility to be used in lnd_fortify() + * without overflowing lnd_mobil + */ + lp->lnd_mobil = land_mob_max; if (!opt_MOB_ACCESS) lnd_fortify(lp, value - land_mob_max); - value = land_mob_max; - } - lp->lnd_mobil = value; + lp->lnd_mobil = land_mob_max; + } else + lp->lnd_mobil = value; } else { -- 2.43.0