Fix bdes and designate to always write updated bmap to disk
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.
This commit is contained in:
parent
90a4864c17
commit
d000bf9296
2 changed files with 11 additions and 6 deletions
|
@ -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, §)) {
|
||||
while (nxtsct(&nstr, §)) {
|
||||
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;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue