(TERR_MAX): New.

(terr): Use it.

(terr): When the territory number is bad, do not loop prompting, just
fail.  That's what the vast majority of commands do.
This commit is contained in:
Markus Armbruster 2006-04-30 12:56:41 +00:00
parent f59fd6e8eb
commit 8cb55944a3
2 changed files with 7 additions and 16 deletions

View file

@ -199,6 +199,8 @@ extern struct dchrstr bigcity_dchr;
#define CHE_MAX 255 #define CHE_MAX 255
/* maximum fallout, must fit into struct sctstr member sct_fallout */ /* maximum fallout, must fit into struct sctstr member sct_fallout */
#define FALLOUT_MAX 9999 #define FALLOUT_MAX 9999
/* maximum territory, must fit into struct sctstr members sct_terr etc */
#define TERR_MAX 99
/* Each cost is per point of efficency */ /* Each cost is per point of efficency */
struct sctintrins { struct sctintrins {

View file

@ -68,26 +68,15 @@ terr(void)
sect.sct_effic, dchr[sect.sct_type].d_name); sect.sct_effic, dchr[sect.sct_type].d_name);
if ((p = getstarg(player->argp[2], prompt, buf)) == 0) if ((p = getstarg(player->argp[2], prompt, buf)) == 0)
return RET_FAIL; return RET_FAIL;
if (!check_sect_ok(&sect))
return RET_FAIL;
if (*p == 0) if (*p == 0)
continue; continue;
terr_n = atoi(p); terr_n = atoi(p);
while (terr_n < 0 || terr_n > 99 || *p < '0' || *p > '9') { if (terr_n < 0 || terr_n > TERR_MAX) {
pr("Enter a number between 0 and 99!\n"); pr("Territory number must be between 0 and %d\n", TERR_MAX);
sprintf(prompt, "%s %d%% %s territory? ",
xyas(nstr.x, nstr.y, player->cnum),
sect.sct_effic, dchr[sect.sct_type].d_name);
if ((p = getstarg(NULL, prompt, buf)) == 0)
return RET_FAIL; return RET_FAIL;
if (!check_sect_ok(&sect))
return RET_FAIL;
if (*p == 0)
break;
terr_n = atoi(p);
} }
if (*p == 0) if (!check_sect_ok(&sect))
continue; return RET_FAIL;
switch (field) { switch (field) {
case 1: case 1:
sect.sct_terr1 = terr_n; sect.sct_terr1 = terr_n;