]> git.pond.sub.org Git - empserver/commitdiff
Fix bdes and designate to always write updated bmap to disk
authorMarkus Armbruster <armbru@pond.sub.org>
Sat, 19 Jul 2008 14:05:25 +0000 (10:05 -0400)
committerMarkus Armbruster <armbru@pond.sub.org>
Mon, 21 Jul 2008 12:13:31 +0000 (08:13 -0400)
bdes() failed to do that when the player aborted at the prompt for the
new designation.

desi() failed to do it when it failed the command because the new
designation was bad.

src/lib/commands/bdes.c
src/lib/commands/desi.c

index a276f39de6373a034453823645607d3fe1dc9114..ce1dd85732456067213dd39fe7f790f729a963ee 100644 (file)
@@ -47,18 +47,21 @@ bdes(void)
     char prompt[128];
     char buf[1024];
     int changed = 0;
+    int rc = RET_OK;
 
     if (!snxtsct(&nstr, player->argp[1]))
        return RET_SYN;
-    while (!player->aborted && nxtsct(&nstr, &sect)) {
+    while (nxtsct(&nstr, &sect)) {
        if ((nstr.ncond > 0) && (sect.sct_own != player->cnum))
            continue;
        d = player->map[sect.sct_uid];
        sprintf(prompt, "%s '%c'  desig? ",
                xyas(nstr.x, nstr.y, player->cnum),
                d ? d : ' ');
-       if ((p = getstarg(player->argp[2], prompt, buf)) == 0)
-           continue;
+       if ((p = getstarg(player->argp[2], prompt, buf)) == 0) {
+           rc = RET_SYN;
+           break;
+       }
        if (!isprint(*p)) {
            if (*p)
                pr("Bad character. Must be printable!\n");
@@ -68,5 +71,5 @@ bdes(void)
     }
     if (changed)
        writebmap(player->cnum);
-    return RET_OK;
+    return rc;
 }
index fc9e4d71efe24332f0159e9fff95e910e01e7cf1..f012d44b9e5479f61c035609ecfed73025047848 100644 (file)
@@ -53,6 +53,7 @@ desi(void)
     char prompt[128];
     char buf[1024];
     int changed = 0;
+    int rc = RET_OK;
 
     if (!snxtsct(&nstr, player->argp[1]))
        return RET_SYN;
@@ -78,7 +79,8 @@ desi(void)
                        !player->god)) {
            pr("No such designation\n"
               "See \"info Sector-types\" for possible designations\n");
-           return RET_FAIL;
+           rc = RET_FAIL;
+           break;
        }
        if (!player->god) {
            if (des == SCT_WASTE) {
@@ -133,5 +135,5 @@ desi(void)
     }
     if (changed)
        writemap(player->cnum);
-    return RET_OK;
+    return rc;
 }