Fix distribute aborting at prompt for second argument
Before failing the command, the old code attempted to change the current sector's distribution center to the last one used, which might have been uninitialized coordinates. If lucky, the coordinates were invalid, and the attempt oopsed and did nothing.
This commit is contained in:
parent
2fa522588a
commit
7bbd3fcd89
1 changed files with 7 additions and 9 deletions
|
@ -53,7 +53,7 @@ dist(void)
|
||||||
|
|
||||||
if (!snxtsct(&nstr, player->argp[1]))
|
if (!snxtsct(&nstr, player->argp[1]))
|
||||||
return RET_SYN;
|
return RET_SYN;
|
||||||
while (!player->aborted && nxtsct(&nstr, §)) {
|
while (nxtsct(&nstr, §)) {
|
||||||
if (!player->owner)
|
if (!player->owner)
|
||||||
continue;
|
continue;
|
||||||
pr("%s at %s ", dchr[sect.sct_type].d_name,
|
pr("%s at %s ", dchr[sect.sct_type].d_name,
|
||||||
|
@ -70,20 +70,18 @@ dist(void)
|
||||||
} else
|
} else
|
||||||
pr("has no dist sector. \n");
|
pr("has no dist sector. \n");
|
||||||
p = getstarg(player->argp[2], "Distribution sector? ", buf);
|
p = getstarg(player->argp[2], "Distribution sector? ", buf);
|
||||||
if (p && (*p == 0))
|
if (!p)
|
||||||
|
return RET_SYN;
|
||||||
|
if (!*p)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!check_sect_ok(§))
|
if (!check_sect_ok(§))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (p && (*p != '.') && (*p != 'h') && (!sarg_xy(p, &dstx, &dsty)))
|
if (*p == '.' || *p == 'h') {
|
||||||
return RET_SYN;
|
|
||||||
|
|
||||||
if (p && ((*p == '.') || (*p == 'h'))) {
|
|
||||||
dstx = sect.sct_x;
|
dstx = sect.sct_x;
|
||||||
dsty = sect.sct_y;
|
dsty = sect.sct_y;
|
||||||
}
|
} else if (!sarg_xy(p, &dstx, &dsty))
|
||||||
|
return RET_SYN;
|
||||||
if (!getsect(dstx, dsty, &dsect)) {
|
if (!getsect(dstx, dsty, &dsect)) {
|
||||||
pr("Bad sector.\n");
|
pr("Bad sector.\n");
|
||||||
return RET_FAIL;
|
return RET_FAIL;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue