]> git.pond.sub.org Git - empserver/commitdiff
(add, plane_bomb, pinflak_planedamage, doship, dounit, doplane, laun)
authorMarkus Armbruster <armbru@pond.sub.org>
Sat, 27 May 2006 19:25:12 +0000 (19:25 +0000)
committerMarkus Armbruster <armbru@pond.sub.org>
Sat, 27 May 2006 19:25:12 +0000 (19:25 +0000)
(launch_sat, scra, scut, scuttle_ship, scuttle_land, knockdown)
(ac_planedamage, detonate, attack_val, defense_val, air_damage)
(msl_intercept, msl_launch_mindam, pln_prewrite, shp_prewrite):
Simplify unit destruction: just zero efficiency, leave makelost()
etc. to the prewrite callback.

14 files changed:
src/lib/commands/add.c
src/lib/commands/bomb.c
src/lib/commands/edit.c
src/lib/commands/laun.c
src/lib/commands/scra.c
src/lib/commands/scut.c
src/lib/common/bridgefall.c
src/lib/subs/aircombat.c
src/lib/subs/detonate.c
src/lib/subs/lndsub.c
src/lib/subs/mission.c
src/lib/subs/mslsub.c
src/lib/subs/plane.c
src/lib/subs/ship.c

index 64b7b09864ab2b082b6c10bfe055dcef71e8fe4e..af2af20d7ddb4bffa79579c34e350b08532595b5 100644 (file)
@@ -137,9 +137,7 @@ add(void)
     snxtitem_all(&ni, EF_LAND);
     while (nxtitem(&ni, &land)) {
        if (land.lnd_own == coun) {
-           makelost(EF_LAND, land.lnd_own, land.lnd_uid,
-                    land.lnd_x, land.lnd_y);
-           land.lnd_own = 0;
+           land.lnd_effic = 0;
            pr("Land unit %d wiped\n", land.lnd_uid);
            putland(land.lnd_uid, &land);
        }
index ef308d170fc8e9e7f6514bdf914268cd5d81735f..64948150595334b97cd4bfa8c9f171eae509fb26 100644 (file)
@@ -690,12 +690,9 @@ plane_bomb(struct emp_qelem *list, struct sctstr *target)
        if (dam > 100)
            dam = 100;
        own = plane.pln_own;
-       if (dam > plane.pln_effic) {
+       if (dam > plane.pln_effic)
            plane.pln_effic = 0;
-           makelost(EF_PLANE, plane.pln_own, plane.pln_uid,
-                    plane.pln_x, plane.pln_y);
-           plane.pln_own = 0;
-       } else
+       else
            plane.pln_effic -= dam;
        plane.pln_mobil = (dam * plane.pln_mobil / 100.0);
        if (own == player->cnum) {
@@ -904,11 +901,8 @@ pinflak_planedamage(struct plnstr *pp, struct plchrstr *pcp, natid from,
            getland(pp->pln_land, &land);
            take_plane_off_land(pp, &land);
        }
-       makelost(EF_PLANE, pp->pln_own, pp->pln_uid, pp->pln_x, pp->pln_y);
-       pp->pln_own = 0;
-       putplane(pp->pln_uid, pp);
-    } else
-       putplane(pp->pln_uid, pp);
+    }
+    putplane(pp->pln_uid, pp);
 
     if (disp > 0)
        return 1;
index 6856eea8af488189c3917404a28846b8c37cd58b..de3b7c209d2f4491afc05566d181645491f04cbc 100644 (file)
@@ -805,12 +805,8 @@ doship(char op, int arg, char *p, struct shpstr *ship)
            ship->shp_own = (natid)arg;
            makenotlost(EF_SHIP, ship->shp_own, ship->shp_uid,
                        ship->shp_x, ship->shp_y);
-       } else if (!arg) {
+       } else if (!arg)
            ship->shp_effic = 0;
-           makelost(EF_SHIP, ship->shp_own, ship->shp_uid,
-                    ship->shp_x, ship->shp_y);
-           ship->shp_own = (natid)0;
-       }
        break;
     case 'L':
        if (!sarg_xy(p, &newx, &newy))
@@ -922,12 +918,8 @@ dounit(char op, int arg, char *p, struct lndstr *land)
            land->lnd_own = (natid)arg;
            makenotlost(EF_LAND, land->lnd_own, land->lnd_uid,
                        land->lnd_x, land->lnd_y);
-       } else if (!arg) {
-           makelost(EF_LAND, land->lnd_own, land->lnd_uid,
-                    land->lnd_x, land->lnd_y);
+       } else if (!arg)
            land->lnd_effic = 0;
-           land->lnd_own = (natid)0;
-       }
        break;
     case 'L':
        if (!sarg_xy(p, &newx, &newy))
@@ -1059,12 +1051,8 @@ doplane(char op, int arg, char *p, struct plnstr *plane)
                        plane->pln_x, plane->pln_y);
            wu(player->cnum, plane->pln_own,
               "%s given to you by deity intervention!\n", prplane(plane));
-       } else if (!arg) {
+       } else if (!arg)
            plane->pln_effic = 0;
-           makelost(EF_PLANE, plane->pln_own, plane->pln_uid,
-                    plane->pln_x, plane->pln_y);
-           plane->pln_own = (natid)0;
-       }
        break;
     case 'e':
        plane->pln_effic = errcheck(arg, PLANE_MINEFF, 100);
index cb89198083ef7a855a185993b0c6b03160726757..926feb5adb38db83d43492d5b5e9d7476f1a2c06 100644 (file)
@@ -107,9 +107,7 @@ laun(void)
            if (!ship.shp_own) {
                pr("%s: ship #%d was sunk!\n",
                   prplane(&plane), ship.shp_uid);
-               makelost(EF_PLANE, plane.pln_own, plane.pln_uid,
-                        plane.pln_x, plane.pln_y);
-               plane.pln_own = 0;
+               plane.pln_effic = 0;
                putplane(plane.pln_uid, &plane);
                continue;
            }
@@ -118,9 +116,7 @@ laun(void)
            if (ship.shp_own != player->cnum && rel != ALLIED) {
                pr("%s: you or an ally do not own ship #%d\n",
                   prplane(&plane), ship.shp_uid);
-               makelost(EF_PLANE, plane.pln_own, plane.pln_uid,
-                        plane.pln_x, plane.pln_y);
-               plane.pln_own = 0;
+               plane.pln_effic = 0;
                putplane(plane.pln_uid, &plane);
                continue;
            }
@@ -159,9 +155,7 @@ laun(void)
        if (retval != RET_OK)
            return retval;
        if (gone) {
-           makelost(EF_PLANE, plane.pln_own, plane.pln_uid,
-                    plane.pln_x, plane.pln_y);
-           plane.pln_own = 0;
+           plane.pln_effic = 0;
            putplane(plane.pln_uid, &plane);
        }
     }
@@ -410,8 +404,7 @@ launch_sat(struct plnstr *pp, int sublaunch)
     pr("3... 2... 1... Blastoff!!!\n");
     if (chance(0.07 + (100 - pp->pln_effic) / 100.0)) {
        pr("KABOOOOM!  Range safety officer detonates booster!\n");
-       makelost(EF_PLANE, pp->pln_own, pp->pln_uid, pp->pln_x, pp->pln_y);
-       pp->pln_own = 0;
+       pp->pln_effic = 0;
        return RET_OK;
     }
     i = pp->pln_tech + pp->pln_effic;
index ca0aed71de39a302288c1dc54088c4b6eb6a6ce6..9e69e54ad079b549f1e6db80103d6aef987cb46a 100644 (file)
@@ -244,9 +244,7 @@ scra(void)
                    putland(land.lnd_uid, &land);
                }
            }
-           makelost(EF_SHIP, item.ship.shp_own, item.ship.shp_uid,
-                    item.ship.shp_x, item.ship.shp_y);
-           item.ship.shp_own = 0;
+           item.ship.shp_effic = 0;
            putship(item.ship.shp_uid, &item.ship);
        } else if (type == EF_LAND) {
            eff = item.land.lnd_effic / 100.0;
@@ -312,9 +310,7 @@ scra(void)
                    putplane(plane.pln_uid, &plane);
                }
            }
-           makelost(EF_LAND, item.land.lnd_own, item.land.lnd_uid,
-                    item.land.lnd_x, item.land.lnd_y);
-           item.land.lnd_own = 0;
+           item.land.lnd_effic = 0;
            putland(item.land.lnd_uid, &item.land);
        } else {
            eff = item.land.lnd_effic / 100.0;
@@ -323,9 +319,7 @@ scra(void)
            sect.sct_item[I_LCM] += pp->pl_lcm * 2 / 3 * eff;
            sect.sct_item[I_HCM] += pp->pl_hcm * 2 / 3 * eff;
            sect.sct_item[I_MILIT] += pp->pl_crew;
-           makelost(EF_PLANE, item.plane.pln_own, item.plane.pln_uid,
-                    item.plane.pln_x, item.plane.pln_y);
-           item.plane.pln_own = 0;
+           item.plane.pln_effic = 0;
            putplane(item.plane.pln_uid, &item.plane);
        }
        pr(" scrapped in %s\n",
index 6e1bc780ef68f30401a4f63019d30dfe23b0aa83..3e0d9bd85196c333b305f1dbf6390ed496222772 100644 (file)
@@ -164,9 +164,7 @@ scut(void)
                getship(item.plane.pln_ship, &ship);
                take_plane_off_ship(&item.plane, &ship);
            }
-           makelost(EF_PLANE, item.plane.pln_own, item.plane.pln_uid,
-                    item.plane.pln_x, item.plane.pln_y);
-           item.plane.pln_own = 0;
+           item.plane.pln_effic = 0;
            putplane(item.plane.pln_uid, &item.plane);
        }
        pr(" scuttled in %s\n",
@@ -271,9 +269,7 @@ scuttle_ship(struct shpstr *sp)
                wu(0, plane.pln_own, "Plane %d scuttled in %s\n",
                   plane.pln_uid,
                   xyas(plane.pln_x, plane.pln_y, plane.pln_own));
-               makelost(EF_PLANE, plane.pln_own, plane.pln_uid,
-                        plane.pln_x, plane.pln_y);
-               plane.pln_own = 0;
+               plane.pln_effic = 0;
            } else {
                wu(0, plane.pln_own,
                   "Plane %d transferred off ship %d to %s\n",
@@ -299,8 +295,7 @@ scuttle_ship(struct shpstr *sp)
                scuttle_land(&land);
        }
     }
-    makelost(EF_SHIP, sp->shp_own, sp->shp_uid, sp->shp_x, sp->shp_y);
-    sp->shp_own = 0;
+    sp->shp_effic = 0;
     putship(sp->shp_uid, sp);
 }
 
@@ -323,9 +318,7 @@ scuttle_land(struct lndstr *lp)
                wu(0, plane.pln_own, "Plane %d scuttled in %s\n",
                   plane.pln_uid,
                   xyas(plane.pln_x, plane.pln_y, plane.pln_own));
-               makelost(EF_PLANE, plane.pln_own, plane.pln_uid,
-                        plane.pln_x, plane.pln_y);
-               plane.pln_own = 0;
+               plane.pln_effic = 0;
            } else {
                wu(0, plane.pln_own,
                   "Plane %d transferred off unit %d to %s\n",
@@ -351,7 +344,6 @@ scuttle_land(struct lndstr *lp)
                scuttle_land(&land);
        }
     }
-    makelost(EF_LAND, lp->lnd_own, lp->lnd_uid, lp->lnd_x, lp->lnd_y);
-    lp->lnd_own = 0;
+    lp->lnd_effic = 0;
     putland(lp->lnd_uid, lp);
 }
index 6d6acc2897810a881e16d031f7e0894c0e1dadae..e9a4c99ea6a26cefea55a4cc44f5b2f44107e223 100644 (file)
@@ -126,9 +126,6 @@ knockdown(struct sctstr *sp, struct emp_qelem *list)
            mpr(land.lnd_own, "\07");
        mpr(land.lnd_own, "     AARGH! %s tumbles to its doom!\n",
            prland(&land));
-       makelost(EF_LAND, land.lnd_own, land.lnd_uid,
-                land.lnd_x, land.lnd_y);
-       land.lnd_own = 0;
        land.lnd_effic = 0;
        putland(land.lnd_uid, &land);
     }
@@ -149,9 +146,6 @@ knockdown(struct sctstr *sp, struct emp_qelem *list)
            mpr(plane.pln_own, "\07");
        mpr(plane.pln_own, "     AARGH! %s tumbles to its doom!\n",
            prplane(&plane));
-       makelost(EF_PLANE, plane.pln_own, plane.pln_uid,
-                plane.pln_x, plane.pln_y);
-       plane.pln_own = 0;
        plane.pln_effic = 0;
        putplane(plane.pln_uid, &plane);
     }
@@ -167,9 +161,6 @@ knockdown(struct sctstr *sp, struct emp_qelem *list)
            mpr(nuke.nuk_own, "\07");
        mpr(nuke.nuk_own, "     %s sinks to the bottom of the sea!\n",
            prnuke(&nuke));
-       makelost(EF_NUKE, nuke.nuk_own, nuke.nuk_uid,
-                nuke.nuk_x, nuke.nuk_y);
-       nuke.nuk_own = 0;
        nuke.nuk_effic = 0;
        putnuke(nuke.nuk_uid, &nuke);
     }
index 106e4eaec7b805e2fb37f440c0e9f516a6827182..150b632ff2ee17491066058cf3ae1662db091331 100644 (file)
@@ -761,8 +761,7 @@ ac_planedamage(struct plist *plp, natid from, int dam, natid other,
            getland(pp->pln_land, &land);
            take_plane_off_land(pp, &land);
        }
-       makelost(EF_PLANE, pp->pln_own, pp->pln_uid, pp->pln_x, pp->pln_y);
-       pp->pln_own = 0;
+       pp->pln_effic = 0;
        putplane(pp->pln_uid, pp);
        emp_remque(&plp->queue);
        free(plp);
index 75e7858c823ce69e039f294b11f010b950bd81c5..0290bd751a2bf074acdc99eff950a63c1d02cd25 100644 (file)
@@ -301,9 +301,7 @@ detonate(struct nukstr *np, coord x, coord y, int airburst)
            continue;
        if (roll(100) >= damage)
            continue;
-       makelost(EF_NUKE, nuke.nuk_own, nuke.nuk_uid,
-                nuke.nuk_x, nuke.nuk_y);
-       nuke.nuk_own = 0;
+       nuke.nuk_effic = 0;
        if (own == bombown) {
            mpr(bombown, "%s at %s destroyed\n",
                prnuke(&nuke), xyas(nuke.nuk_x, nuke.nuk_y, own));
index 3c1559bdd73a760f0225fd1ddd1d6ad3305b07d5..5b1d025269a01f1aac7696ab78b26f1044b8fdb4 100644 (file)
@@ -64,8 +64,6 @@ attack_val(int combat_mode, struct lndstr *lp)
     struct lchrstr *lcp;
 
     if (lp->lnd_effic < LAND_MINEFF) {
-       makelost(EF_LAND, lp->lnd_own, lp->lnd_uid, lp->lnd_x, lp->lnd_y);
-       lp->lnd_own = 0;
        putland(lp->lnd_uid, lp);
        return 0;
     }
@@ -104,8 +102,6 @@ defense_val(struct lndstr *lp)
     struct lchrstr *lcp;
 
     if (lp->lnd_effic < LAND_MINEFF) {
-       makelost(EF_LAND, lp->lnd_own, lp->lnd_uid, lp->lnd_x, lp->lnd_y);
-       lp->lnd_own = 0;
        putland(lp->lnd_uid, lp);
        return 0;
     }
index f13912252fb7b5a36e0210dfaf324cf70db9c8b9..6c20f75ee517c04b4a5bdcc29d358a9a3544fd21 100644 (file)
@@ -1443,11 +1443,8 @@ air_damage(struct emp_qelem *bombers, coord x, coord y, int mission,
        }
 
        /* use up missiles */
-       if (plp->pcp->pl_flags & P_M) {
-           makelost(EF_PLANE, pp->pln_own, pp->pln_uid,
-                    pp->pln_x, pp->pln_y);
-           pp->pln_own = 0;
-       }
+       if (plp->pcp->pl_flags & P_M)
+           pp->pln_effic = 0;
     }
 
     return dam;
index 95e8d399c9fcee20045e42b939eea5eb9d34b81f..4b9d3af08961bf37ad88db5487b79f532baf2f26 100644 (file)
@@ -343,8 +343,7 @@ msl_intercept(coord x, coord y, natid bombown, int hardtarget,
            destroyed = 1;
        }
        /* zap the missile */
-       makelost(EF_PLANE, pp->pln_own, pp->pln_uid, pp->pln_x, pp->pln_y);
-       pp->pln_own = 0;
+       pp->pln_effic = 0;
        putplane(pp->pln_uid, pp);
        emp_remque(qp);
        free(qp);
@@ -414,9 +413,7 @@ msl_launch_mindam(struct emp_qelem *list, coord x, coord y, int hardtarget,
                newdam = pln_damage(&plp->plane, x, y, 'p', &nukedam, 0);
                collateral_damage(x, y, newdam, 0);
            }
-           makelost(EF_PLANE, plp->plane.pln_own, plp->plane.pln_uid,
-                    plp->plane.pln_x, plp->plane.pln_y);
-           plp->plane.pln_own = 0;
+           plp->plane.pln_effic = 0;
            putplane(plp->plane.pln_uid, &plp->plane);
            emp_remque(qp);
            free(qp);
index 02a7b265df48f0d2a1c978bde53ae990f89f9a93..5d44fa9a608820ec52f941ab53d20f4edf474957 100644 (file)
@@ -123,9 +123,6 @@ pln_prewrite(int n, void *ptr)
        for (i = 0; NULL != (np = getnukep(i)); i++) {
            if (np->nuk_own && np->nuk_plane == n) {
                mpr(np->nuk_own, "%s lost!\n", prnuke(np));
-               makelost(EF_NUKE, np->nuk_own, np->nuk_uid,
-                        np->nuk_x, np->nuk_y);
-               np->nuk_own = 0;
                np->nuk_effic = 0;
                np->nuk_plane = -1;
                putnuke(np->nuk_uid, np);
index 317c6a43349fa4c9ff373c12b5e257519478f9e6..4acf860feafb140d24ffab187118a12443aada69 100644 (file)
@@ -85,9 +85,6 @@ shp_prewrite(int n, void *ptr)
        for (i = 0; NULL != (lp = getlandp(i)); i++) {
            if (lp->lnd_own && lp->lnd_ship == n) {
                mpr(lp->lnd_own, "%s sunk!\n", prland(lp));
-               makelost(EF_LAND, lp->lnd_own, lp->lnd_uid,
-                        lp->lnd_x, lp->lnd_y);
-               lp->lnd_own = 0;
                lp->lnd_effic = 0;
                lp->lnd_ship = -1;
                lp->lnd_land = -1;
@@ -97,9 +94,6 @@ shp_prewrite(int n, void *ptr)
        for (i = 0; NULL != (pp = getplanep(i)); i++) {
            if (pp->pln_own && pp->pln_ship == n) {
                mpr(pp->pln_own, "%s sunk!\n", prplane(pp));
-               makelost(EF_PLANE, pp->pln_own, pp->pln_uid,
-                        pp->pln_x, pp->pln_y);
-               pp->pln_own = 0;
                pp->pln_effic = 0;
                pp->pln_ship = -1;
                pp->pln_land = -1;