update: Delivery abandons sectors incorrectly, fix it not to
Deliver fails to abandon sectors when it ships out all civilians and
military. The sector remains owned until the next non-update sector
update abandons it. Has always been broken.
Distribution had the same bug until commit d0f3847
(v4.3.20) fixed it.
Fix it the same way for delivery: adjust the amount moved to avoid
moving out the last civilian, or the last military if there are no
civilians.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
parent
43a0a4a451
commit
9a2e1ccd6c
2 changed files with 7 additions and 1 deletions
|
@ -27,6 +27,9 @@ direction that a sector delivers to, then put a '+' before the number
|
||||||
Note that delivery thresholds are stored as multiples of 8. If you
|
Note that delivery thresholds are stored as multiples of 8. If you
|
||||||
specify a threshold that is not a multiple of 8, it will be rounded down.
|
specify a threshold that is not a multiple of 8, it will be rounded down.
|
||||||
.s1
|
.s1
|
||||||
|
Delivery will not ship out the last civilian or the last military if
|
||||||
|
there are no civilians, regardless of thresholds.
|
||||||
|
.s1
|
||||||
The direction must be specified as one of the six direction characters,
|
The direction must be specified as one of the six direction characters,
|
||||||
(usually `y' `u' `j' `n' `b' or `g'), the \*Qno-direction\*U character,
|
(usually `y' `u' `j' `n' `b' or `g'), the \*Qno-direction\*U character,
|
||||||
(usually `h'). If no direction is specified, then the direction will
|
(usually `h'). If no direction is specified, then the direction will
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
* deliver.c: Deliver commodities to neighboring sector
|
* deliver.c: Deliver commodities to neighboring sector
|
||||||
*
|
*
|
||||||
* Known contributors to this file:
|
* Known contributors to this file:
|
||||||
*
|
* Markus Armbruster, 2004-2016
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
@ -89,6 +89,9 @@ deliver(struct sctstr *from, struct ichrstr *ip, int dir,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/* make sure not to abandon the sector */
|
||||||
|
if (vtype == I_CIVIL || (vtype == I_MILIT && !to->sct_item[I_CIVIL]))
|
||||||
|
amt_moved--;
|
||||||
/*
|
/*
|
||||||
* disallow delivery into prohibited sectors.
|
* disallow delivery into prohibited sectors.
|
||||||
* calculate unit movement cost; decrease amount if
|
* calculate unit movement cost; decrease amount if
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue