From 574e20f6f5c6aabc8c7b66b66e355d5e71e50465 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sun, 14 Sep 2008 19:34:16 -0400 Subject: [PATCH] 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. --- info/stop.t | 7 ++++--- src/lib/subs/takeover.c | 6 ++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/info/stop.t b/info/stop.t index 6cf2cc88e..3238ff155 100644 --- a/info/stop.t +++ b/info/stop.t @@ -4,17 +4,18 @@ .SY "stop " The stop command stops production and repairs for one update. .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 normally: they still pay tax, distribute goods and so forth. .s1 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. .s1 Stopping nukes doesn't do anything in particular, right now. .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. .s1 .EX stop se 2,0 diff --git a/src/lib/subs/takeover.c b/src/lib/subs/takeover.c index 43ffddedd..de66781db 100644 --- a/src/lib/subs/takeover.c +++ b/src/lib/subs/takeover.c @@ -225,6 +225,7 @@ takeover_unit(struct empobj *unit, natid newown) struct shpstr *sp; struct plnstr *pp; struct lndstr *lp; + struct nukstr *np; int type; struct nstr_item ni; union empobj_storage cargo; @@ -237,19 +238,24 @@ takeover_unit(struct empobj *unit, natid newown) switch (unit->ef_type) { case EF_SHIP: sp = (struct shpstr *)unit; + sp->shp_off = 1; break; case EF_PLANE: pp = (struct plnstr *)unit; if (pp->pln_mobil > 0) pp->pln_mobil = 0; + pp->pln_off = 1; break; case EF_LAND: lp = (struct lndstr *)unit; if (lp->lnd_mobil > 0) lp->lnd_mobil = 0; + lp->lnd_off = 1; lp->lnd_harden = 0; break; case EF_NUKE: + np = (struct nukstr *)unit; + np->nuk_off = 1; break; default: CANT_REACH(); -- 2.43.0