]> git.pond.sub.org Git - empserver/commitdiff
Stop ships, planes, land units and nukes on violent takeover
authorMarkus Armbruster <armbru@pond.sub.org>
Sun, 14 Sep 2008 23:34:16 +0000 (19:34 -0400)
committerMarkus Armbruster <armbru@pond.sub.org>
Mon, 15 Sep 2008 23:40:44 +0000 (19:40 -0400)
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
src/lib/subs/takeover.c

index 6cf2cc88ec37085c6cf2d28049abebd45ccd3e12..3238ff155e3f4109ba9ce153cd33d53b4e92227f 100644 (file)
@@ -4,17 +4,18 @@
 .SY "stop <TYPE> <SECTS|SHIPS|PLANES|UNITS|NUKES>"
 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
index 43ffddedde1004bd12a0b0fd1f8c1e1227cd97f6..de66781db891c4324003459a4492a7cb5d9e9beb 100644 (file)
@@ -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();