Reduce massive code duplication in setsector(), setres()
There's the same sector loop in every switch case. Loop around the switch instead.
This commit is contained in:
parent
9afc6a8e5c
commit
f4db90c849
2 changed files with 73 additions and 221 deletions
|
@ -48,110 +48,61 @@ setres(void)
|
|||
char *p;
|
||||
struct nstr_sect nstr;
|
||||
char buf[1024];
|
||||
char char0;
|
||||
|
||||
what = getstarg(player->argp[1],
|
||||
"Set what (iron, gold, oil, uranium, fertility)? ",
|
||||
buf);
|
||||
if (!what)
|
||||
return RET_SYN;
|
||||
switch (what[0]) {
|
||||
case 'i':
|
||||
if (!snxtsct(&nstr, player->argp[2]))
|
||||
char0 = what[0];
|
||||
|
||||
if (!snxtsct(&nstr, player->argp[2]))
|
||||
return RET_SYN;
|
||||
while (nxtsct(&nstr, §) > 0) {
|
||||
p = getstarg(player->argp[3], "What value : ", buf);
|
||||
if (!p || !*p)
|
||||
return RET_SYN;
|
||||
while (nxtsct(&nstr, §) > 0) {
|
||||
p = getstarg(player->argp[3], "What value : ", buf);
|
||||
if (!p || !*p)
|
||||
return RET_SYN;
|
||||
amt = atoi(p);
|
||||
if (amt > 100)
|
||||
amt = 100;
|
||||
if (amt < 0)
|
||||
amt = 0;
|
||||
amt = atoi(p);
|
||||
if (amt > 100)
|
||||
amt = 100;
|
||||
if (amt < 0)
|
||||
amt = 0;
|
||||
switch (char0) {
|
||||
case 'i':
|
||||
if (sect.sct_own != 0)
|
||||
resnoise(§, 1, "Iron ore content",
|
||||
(int)sect.sct_min, amt);
|
||||
sect.sct_min = (unsigned char)amt;
|
||||
putsect(§);
|
||||
}
|
||||
break;
|
||||
case 'g':
|
||||
if (!snxtsct(&nstr, player->argp[2]))
|
||||
return RET_SYN;
|
||||
while (nxtsct(&nstr, §) > 0) {
|
||||
p = getstarg(player->argp[3], "What value : ", buf);
|
||||
if (!p || !*p)
|
||||
return RET_SYN;
|
||||
amt = atoi(p);
|
||||
if (amt > 100)
|
||||
amt = 100;
|
||||
if (amt < 0)
|
||||
amt = 0;
|
||||
break;
|
||||
case 'g':
|
||||
if (sect.sct_own != 0)
|
||||
resnoise(§, 1, "Gold content",
|
||||
(int)sect.sct_gmin, amt);
|
||||
sect.sct_gmin = (unsigned char)amt;
|
||||
putsect(§);
|
||||
}
|
||||
break;
|
||||
case 'o':
|
||||
if (!snxtsct(&nstr, player->argp[2]))
|
||||
return RET_SYN;
|
||||
while (nxtsct(&nstr, §) > 0) {
|
||||
p = getstarg(player->argp[3], "What value : ", buf);
|
||||
if (!p || !*p)
|
||||
return RET_SYN;
|
||||
amt = atoi(p);
|
||||
if (amt > 100)
|
||||
amt = 100;
|
||||
if (amt < 0)
|
||||
amt = 0;
|
||||
break;
|
||||
case 'o':
|
||||
if (sect.sct_own != 0)
|
||||
resnoise(§, 1, "Oil content", (int)sect.sct_oil, amt);
|
||||
sect.sct_oil = (unsigned char)amt;
|
||||
putsect(§);
|
||||
}
|
||||
break;
|
||||
case 'f':
|
||||
if (!snxtsct(&nstr, player->argp[2]))
|
||||
return RET_SYN;
|
||||
while (nxtsct(&nstr, §) > 0) {
|
||||
p = getstarg(player->argp[3], "What value : ", buf);
|
||||
if (!p || !*p)
|
||||
return RET_SYN;
|
||||
amt = atoi(p);
|
||||
if (amt > 100)
|
||||
amt = 100;
|
||||
if (amt < 0)
|
||||
amt = 0;
|
||||
break;
|
||||
case 'f':
|
||||
if (sect.sct_own != 0)
|
||||
resnoise(§, 1, "Fertility content",
|
||||
(int)sect.sct_fertil, amt);
|
||||
sect.sct_fertil = (unsigned char)amt;
|
||||
putsect(§);
|
||||
}
|
||||
break;
|
||||
case 'u':
|
||||
if (!snxtsct(&nstr, player->argp[2]))
|
||||
return RET_SYN;
|
||||
while (nxtsct(&nstr, §) > 0) {
|
||||
p = getstarg(player->argp[3], "What value : ", buf);
|
||||
if (!p || !*p)
|
||||
return RET_SYN;
|
||||
amt = atoi(p);
|
||||
if (amt > 100)
|
||||
amt = 100;
|
||||
if (amt < 0)
|
||||
amt = 0;
|
||||
break;
|
||||
case 'u':
|
||||
if (sect.sct_own != 0)
|
||||
resnoise(§, 1, "Uranium content",
|
||||
(int)sect.sct_uran, amt);
|
||||
sect.sct_uran = (unsigned char)amt;
|
||||
putsect(§);
|
||||
break;
|
||||
default:
|
||||
pr("huh?\n");
|
||||
return RET_SYN;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
pr("huh?\n");
|
||||
return RET_SYN;
|
||||
putsect(§);
|
||||
}
|
||||
return RET_OK;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue