Stop ships, planes, land units and nukes on violent takeover

This is for consistency with sectors, and for the same reason: pause
before spending money on stuff taken in the heat of battle.
This commit is contained in:
Markus Armbruster 2008-09-14 19:34:16 -04:00
parent e7ce50405e
commit 574e20f6f5
2 changed files with 10 additions and 3 deletions

View file

@ -4,17 +4,18 @@
.SY "stop <TYPE> <SECTS|SHIPS|PLANES|UNITS|NUKES>" .SY "stop <TYPE> <SECTS|SHIPS|PLANES|UNITS|NUKES>"
The stop command stops production and repairs for one update. The stop command stops production and repairs for one update.
.s1 .s1
Stopped sectors don't gain in efficiency, don't produce anything, and Stopped sectors don't gain efficiency, don't produce anything, and
don't work on ships, planes or units there, but otherwise function don't work on ships, planes or units there, but otherwise function
normally: they still pay tax, distribute goods and so forth. normally: they still pay tax, distribute goods and so forth.
.s1 .s1
Stopping ships, planes and land units works just the same: they don't Stopping ships, planes and land units works just the same: they don't
gain in efficiency, they don't produce anything (if applicable), and gain efficiency, they don't produce anything (if applicable), and
they don't work on embarked land units or planes. they don't work on embarked land units or planes.
.s1 .s1
Stopping nukes doesn't do anything in particular, right now. Stopping nukes doesn't do anything in particular, right now.
.s1 .s1
Conquering a sector stops it automatically. Stop orders expire at the Conquering a sector, ship, plane, land unit or nuke stops it
automatically. Stop orders expire at the
update. Use the start command to countermand them manually. update. Use the start command to countermand them manually.
.s1 .s1
.EX stop se 2,0 .EX stop se 2,0

View file

@ -225,6 +225,7 @@ takeover_unit(struct empobj *unit, natid newown)
struct shpstr *sp; struct shpstr *sp;
struct plnstr *pp; struct plnstr *pp;
struct lndstr *lp; struct lndstr *lp;
struct nukstr *np;
int type; int type;
struct nstr_item ni; struct nstr_item ni;
union empobj_storage cargo; union empobj_storage cargo;
@ -237,19 +238,24 @@ takeover_unit(struct empobj *unit, natid newown)
switch (unit->ef_type) { switch (unit->ef_type) {
case EF_SHIP: case EF_SHIP:
sp = (struct shpstr *)unit; sp = (struct shpstr *)unit;
sp->shp_off = 1;
break; break;
case EF_PLANE: case EF_PLANE:
pp = (struct plnstr *)unit; pp = (struct plnstr *)unit;
if (pp->pln_mobil > 0) if (pp->pln_mobil > 0)
pp->pln_mobil = 0; pp->pln_mobil = 0;
pp->pln_off = 1;
break; break;
case EF_LAND: case EF_LAND:
lp = (struct lndstr *)unit; lp = (struct lndstr *)unit;
if (lp->lnd_mobil > 0) if (lp->lnd_mobil > 0)
lp->lnd_mobil = 0; lp->lnd_mobil = 0;
lp->lnd_off = 1;
lp->lnd_harden = 0; lp->lnd_harden = 0;
break; break;
case EF_NUKE: case EF_NUKE:
np = (struct nukstr *)unit;
np->nuk_off = 1;
break; break;
default: default:
CANT_REACH(); CANT_REACH();