]> git.pond.sub.org Git - empserver/blobdiff - src/lib/subs/detonate.c
Update bmap when nuclear detonation makes wasteland
[empserver] / src / lib / subs / detonate.c
index d695917f86c2c30de8a187e0686f6cdf341ddbcd..de8df182087b9de5f5d6e112d879c4434d7dddb6 100644 (file)
@@ -37,6 +37,7 @@
 #include "file.h"
 #include "land.h"
 #include "lost.h"
+#include "map.h"
 #include "misc.h"
 #include "nat.h"
 #include "news.h"
@@ -73,6 +74,7 @@ detonate(struct nukstr *np, coord x, coord y, int airburst)
     int rad;
     struct nstr_sect ns;
     struct nstr_item ni;
+    int changed = 0;
 
     mpr(bombown, "Releasing RV's for %s detonation...\n",
        airburst ? "airburst" : "groundburst");
@@ -125,6 +127,8 @@ detonate(struct nukstr *np, coord x, coord y, int airburst)
                sect.sct_type = SCT_WASTE;
                bp = "turned %s into a radioactive wasteland\n";
            }
+           changed |= map_set(player->cnum, sect.sct_x, sect.sct_y,
+                              dchr[sect.sct_type].d_mnem, 0);
        } else {
            sprintf(buf, "did %d%%%% damage in %%s\n", damage);
            bp = buf;
@@ -139,6 +143,9 @@ detonate(struct nukstr *np, coord x, coord y, int airburst)
        }
     }
 
+    if (changed)
+       writebmap(player->cnum);
+
     snxtitem_dist(&ni, EF_PLANE, x, y, rad);
     while (nxtitem(&ni, &plane)) {
        if ((own = plane.pln_own) == 0)