Simplify buil(): factor getting third argument out of switch cases
This commit is contained in:
parent
98a9b53c0f
commit
164b90760f
1 changed files with 9 additions and 13 deletions
|
@ -70,7 +70,7 @@ buil(void)
|
||||||
int tlev;
|
int tlev;
|
||||||
int type;
|
int type;
|
||||||
char what;
|
char what;
|
||||||
char *p;
|
char *p, *prompt;
|
||||||
int gotsect = 0;
|
int gotsect = 0;
|
||||||
int (*build_it)(struct sctstr *, int, short[], int);
|
int (*build_it)(struct sctstr *, int, short[], int);
|
||||||
int number;
|
int number;
|
||||||
|
@ -90,12 +90,15 @@ buil(void)
|
||||||
case 't':
|
case 't':
|
||||||
return build_bridge(what);
|
return build_bridge(what);
|
||||||
case 's':
|
case 's':
|
||||||
|
prompt = "Ship type? ";
|
||||||
build_it = build_ship;
|
build_it = build_ship;
|
||||||
break;
|
break;
|
||||||
case 'p':
|
case 'p':
|
||||||
|
prompt = "Plane type? ";
|
||||||
build_it = build_plane;
|
build_it = build_plane;
|
||||||
break;
|
break;
|
||||||
case 'l':
|
case 'l':
|
||||||
|
prompt = "Land unit type? ";
|
||||||
build_it = build_land;
|
build_it = build_land;
|
||||||
break;
|
break;
|
||||||
case 'n':
|
case 'n':
|
||||||
|
@ -106,6 +109,7 @@ buil(void)
|
||||||
if (drnuke_const > MIN_DRNUKE_CONST)
|
if (drnuke_const > MIN_DRNUKE_CONST)
|
||||||
tlev = MIN(tlev,
|
tlev = MIN(tlev,
|
||||||
(int)(natp->nat_level[NAT_RLEV] / drnuke_const));
|
(int)(natp->nat_level[NAT_RLEV] / drnuke_const));
|
||||||
|
prompt = "Nuke type? ";
|
||||||
build_it = build_nuke;
|
build_it = build_nuke;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -116,11 +120,12 @@ buil(void)
|
||||||
if (!snxtsct(&nstr, player->argp[2]))
|
if (!snxtsct(&nstr, player->argp[2]))
|
||||||
return RET_SYN;
|
return RET_SYN;
|
||||||
|
|
||||||
switch (what) {
|
p = getstarg(player->argp[3], prompt, buf);
|
||||||
case 'p':
|
|
||||||
p = getstarg(player->argp[3], "Plane type? ", buf);
|
|
||||||
if (!p || !*p)
|
if (!p || !*p)
|
||||||
return RET_SYN;
|
return RET_SYN;
|
||||||
|
|
||||||
|
switch (what) {
|
||||||
|
case 'p':
|
||||||
type = ef_elt_byname(EF_PLANE_CHR, p);
|
type = ef_elt_byname(EF_PLANE_CHR, p);
|
||||||
if (type >= 0) {
|
if (type >= 0) {
|
||||||
rqtech = plchr[type].pl_tech;
|
rqtech = plchr[type].pl_tech;
|
||||||
|
@ -135,9 +140,6 @@ buil(void)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
p = getstarg(player->argp[3], "Ship type? ", buf);
|
|
||||||
if (!p || !*p)
|
|
||||||
return RET_SYN;
|
|
||||||
type = ef_elt_byname(EF_SHIP_CHR, p);
|
type = ef_elt_byname(EF_SHIP_CHR, p);
|
||||||
if (type >= 0) {
|
if (type >= 0) {
|
||||||
rqtech = mchr[type].m_tech;
|
rqtech = mchr[type].m_tech;
|
||||||
|
@ -154,9 +156,6 @@ buil(void)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'l':
|
case 'l':
|
||||||
p = getstarg(player->argp[3], "Land unit type? ", buf);
|
|
||||||
if (!p || !*p)
|
|
||||||
return RET_SYN;
|
|
||||||
type = ef_elt_byname(EF_LAND_CHR, p);
|
type = ef_elt_byname(EF_LAND_CHR, p);
|
||||||
if (type >= 0) {
|
if (type >= 0) {
|
||||||
rqtech = lchr[type].l_tech;
|
rqtech = lchr[type].l_tech;
|
||||||
|
@ -173,9 +172,6 @@ buil(void)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'n':
|
case 'n':
|
||||||
p = getstarg(player->argp[3], "Nuke type? ", buf);
|
|
||||||
if (!p || !*p)
|
|
||||||
return RET_SYN;
|
|
||||||
type = ef_elt_byname(EF_NUKE_CHR, p);
|
type = ef_elt_byname(EF_NUKE_CHR, p);
|
||||||
if (type >= 0) {
|
if (type >= 0) {
|
||||||
rqtech = nchr[type].n_tech;
|
rqtech = nchr[type].n_tech;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue