Change nation status from bits to a simple enum:
(nat_status, STAT_UNUSED, STAT_VIS, STAT_ACTIVE): New. (STAT_NEW, STAT_SANCT, STAT_GOD): Change into nat_status members. (STAT_INUSE, STAT_NORM): Remove. (natstr): Use new nat_status for nat_stat. New value Old value STAT_UNUSED 0 STAT_NEW STAT_INUSE | STAT_NEW STAT_VIS STAT_INUSE STAT_SANCT STAT_INUSE | STAT_SANCT STAT_ACTIVE STAT_INUSE | STAT_NORM STAT_GOD STAT_INUSE | STAT_NORM | STAT_GOD Users changed.
This commit is contained in:
parent
41c2c27376
commit
8b16c31223
35 changed files with 113 additions and 151 deletions
|
@ -78,8 +78,7 @@ acce(void)
|
|||
break;
|
||||
if (cn == as)
|
||||
continue;
|
||||
if ((np->nat_stat & STAT_NORM) == 0 &&
|
||||
(np->nat_stat & STAT_SANCT) == 0)
|
||||
if (np->nat_stat < STAT_SANCT)
|
||||
continue;
|
||||
if (opt_HIDDEN) {
|
||||
if (!player->god && !getcontact(getnatp(player->cnum), cn))
|
||||
|
|
|
@ -68,7 +68,7 @@ add(void)
|
|||
struct lndstr land;
|
||||
|
||||
for (freecn = 0; NULL != (natp = getnatp(freecn)); freecn++) {
|
||||
if ((natp->nat_stat & STAT_INUSE) == 0)
|
||||
if (natp->nat_stat == STAT_UNUSED)
|
||||
break;
|
||||
}
|
||||
if (freecn < MAXNOC)
|
||||
|
@ -111,19 +111,19 @@ add(void)
|
|||
return RET_SYN;
|
||||
switch (*p) {
|
||||
case 'v':
|
||||
stat = STAT_INUSE;
|
||||
stat = STAT_VIS;
|
||||
break;
|
||||
case 'n':
|
||||
stat = STAT_NEW | STAT_INUSE;
|
||||
stat = STAT_NEW;
|
||||
break;
|
||||
case 'a':
|
||||
stat = STAT_NORM | STAT_INUSE;
|
||||
stat = STAT_ACTIVE;
|
||||
break;
|
||||
case 'g':
|
||||
stat = STAT_GOD | STAT_NORM | STAT_INUSE;
|
||||
stat = STAT_GOD;
|
||||
break;
|
||||
case 'd':
|
||||
stat = 0;
|
||||
stat = STAT_UNUSED;
|
||||
break;
|
||||
default:
|
||||
pr("Illegal status\n");
|
||||
|
@ -189,8 +189,7 @@ add(void)
|
|||
}
|
||||
}
|
||||
|
||||
if ((natp->nat_stat & (STAT_INUSE | STAT_NORM | STAT_GOD)) ==
|
||||
STAT_INUSE) {
|
||||
if (natp->nat_stat == STAT_NEW || natp->nat_stat == STAT_VIS) {
|
||||
*natp->nat_hostaddr = '\0';
|
||||
*natp->nat_hostname = '\0';
|
||||
*natp->nat_userid = '\0';
|
||||
|
|
|
@ -45,13 +45,12 @@ brea(void)
|
|||
struct natstr *natp;
|
||||
|
||||
natp = getnatp(player->cnum);
|
||||
if ((natp->nat_stat & STAT_SANCT) == 0) {
|
||||
if (natp->nat_stat != STAT_SANCT) {
|
||||
pr("You aren't in sanctuary!\n");
|
||||
return RET_SYN;
|
||||
}
|
||||
bsanct();
|
||||
natp->nat_stat &= ~STAT_SANCT;
|
||||
natp->nat_stat |= STAT_NORM;
|
||||
natp->nat_stat = STAT_ACTIVE;
|
||||
putnat(natp);
|
||||
player->nstat |= NORM;
|
||||
return RET_OK;
|
||||
|
|
|
@ -99,7 +99,7 @@ cede(void)
|
|||
return RET_FAIL;
|
||||
}
|
||||
natp = getnatp(n);
|
||||
if (natp->nat_stat & STAT_GOD) {
|
||||
if (natp->nat_stat == STAT_GOD) {
|
||||
pr("You can only give to normal countries...\n");
|
||||
return RET_FAIL;
|
||||
}
|
||||
|
|
|
@ -61,7 +61,7 @@ chan(void)
|
|||
buf)) == 0)
|
||||
return RET_SYN;
|
||||
us = getnatp(player->cnum);
|
||||
if (us->nat_stat == VIS) {
|
||||
if (us->nat_stat == STAT_VIS) {
|
||||
pr("Visitor countries can't change their country name or representative.\n");
|
||||
return RET_FAIL;
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ chan(void)
|
|||
case 'c':
|
||||
charge = 0;
|
||||
btucost = 0;
|
||||
if (!player->god && (us->nat_stat & STAT_NORM)) {
|
||||
if (us->nat_stat == STAT_ACTIVE) {
|
||||
if (opt_BLITZ == 0) {
|
||||
if (us->nat_btu < 254) {
|
||||
pr("You need 254 btus to change your country name!\n");
|
||||
|
|
|
@ -59,7 +59,7 @@ coun(void)
|
|||
pr(" # last access %sstatus country name\n",
|
||||
player->god ? "BTU " : "");
|
||||
while (nxtitem(&ni, &nat)) {
|
||||
if ((nat.nat_stat & STAT_INUSE) == 0)
|
||||
if (nat.nat_stat == STAT_UNUSED)
|
||||
continue;
|
||||
coun_list(&nat);
|
||||
}
|
||||
|
@ -76,7 +76,7 @@ coun_list(struct natstr *natp)
|
|||
|
||||
if (getplayer(cn)
|
||||
&& (player->god
|
||||
|| (natp->nat_stat & STAT_GOD)
|
||||
|| natp->nat_stat == STAT_GOD
|
||||
|| cn == player->cnum || getrel(natp, player->cnum) == ALLIED))
|
||||
pr(" Now logged on ");
|
||||
else if (player->god) {
|
||||
|
@ -94,13 +94,13 @@ coun_list(struct natstr *natp)
|
|||
if (player->god)
|
||||
pr(" %4d", natp->nat_btu);
|
||||
|
||||
if (natp->nat_stat & STAT_GOD)
|
||||
if (natp->nat_stat == STAT_GOD)
|
||||
status = "DEITY";
|
||||
else if (natp->nat_stat & STAT_NEW)
|
||||
else if (natp->nat_stat == STAT_NEW)
|
||||
status = "New";
|
||||
else if (natp->nat_stat & STAT_SANCT)
|
||||
else if (natp->nat_stat == STAT_SANCT)
|
||||
status = "Sanctuary";
|
||||
else if (natp->nat_stat & STAT_NORM) {
|
||||
else if (natp->nat_stat == STAT_ACTIVE) {
|
||||
status = "Active";
|
||||
if (!opt_HIDDEN || player->god) {
|
||||
if (influx(natp))
|
||||
|
|
|
@ -102,7 +102,7 @@ decl(void)
|
|||
|
||||
natp = getnatp(who);
|
||||
while (nxtitem(&ni, &nat)) {
|
||||
if (!(nat.nat_stat & STAT_INUSE))
|
||||
if (nat.nat_stat == STAT_UNUSED)
|
||||
continue;
|
||||
if (player->cnum == (natid)ni.cur)
|
||||
continue;
|
||||
|
|
|
@ -748,7 +748,7 @@ docountry(s_char op, int arg, s_char *p, float farg, natid nat,
|
|||
np->nat_yorg = newy;
|
||||
break;
|
||||
case 's':
|
||||
np->nat_stat = (s_char)errcheck(arg, 0, STAT_NEW);
|
||||
np->nat_stat = (nat_status)errcheck(arg, STAT_UNUSED, STAT_GOD);
|
||||
break;
|
||||
case 'u':
|
||||
arg = errcheck(arg, 0, m_m_p_d);
|
||||
|
|
|
@ -58,18 +58,17 @@ flash(void)
|
|||
return RET_SYN;
|
||||
}
|
||||
|
||||
if (us->nat_stat & STAT_GOD) {
|
||||
if (us->nat_stat == STAT_GOD) {
|
||||
/* We are gods, we can flash anyone */
|
||||
} else if (us->nat_stat == VIS) {
|
||||
} else if (us->nat_stat == STAT_VIS) {
|
||||
/* We are a visitor. We can only flash the gods. :) */
|
||||
if (!(to->nat_stat & STAT_GOD)) {
|
||||
if (to->nat_stat != STAT_GOD) {
|
||||
pr("Visitors can only flash the gods.\n");
|
||||
return RET_SYN;
|
||||
}
|
||||
} else {
|
||||
/* Ok, we are a normal country, can we flash them? */
|
||||
if ((!(to->nat_stat & STAT_GOD)) &&
|
||||
(getrel(to, player->cnum) < FRIENDLY)) {
|
||||
if (to->nat_stat != STAT_GOD && getrel(to, player->cnum) < FRIENDLY) {
|
||||
pr("%s is not a deity or friendly with us.\n", to->nat_cnam);
|
||||
return RET_SYN;
|
||||
}
|
||||
|
|
|
@ -74,7 +74,7 @@ nati(void)
|
|||
prdate();
|
||||
pr("Nation status is %s", natstate(natp));
|
||||
pr(" Bureaucratic Time Units: %d\n", natp->nat_btu);
|
||||
if (natp->nat_stat & STAT_INUSE) {
|
||||
if (natp->nat_stat != STAT_UNUSED) {
|
||||
getsect(natp->nat_xcap, natp->nat_ycap, §);
|
||||
if (influx(natp))
|
||||
pr("No capital (was at %s).\n",
|
||||
|
|
|
@ -80,7 +80,7 @@ new(void)
|
|||
}
|
||||
num = n;
|
||||
natp = getnatp(num);
|
||||
if ((natp->nat_stat & STAT_NEW) == 0) {
|
||||
if (natp->nat_stat != STAT_NEW) {
|
||||
pr("Country #%d (%s) isn't a new country!\n", num, cname(num));
|
||||
return RET_SYN;
|
||||
}
|
||||
|
@ -180,8 +180,7 @@ new(void)
|
|||
sect.sct_item[I_UW] = 75;
|
||||
putsect(§);
|
||||
natp->nat_btu = max_btus;
|
||||
natp->nat_stat &= ~STAT_NEW;
|
||||
natp->nat_stat |= STAT_SANCT;
|
||||
natp->nat_stat = STAT_SANCT;
|
||||
natp->nat_xcap = x;
|
||||
natp->nat_ycap = y;
|
||||
natp->nat_xorg = x;
|
||||
|
|
|
@ -87,12 +87,12 @@ play_list(struct player *joe)
|
|||
/* It's a blitz, we see everything */
|
||||
} else if (joe->god) {
|
||||
/* This country is a god, so we see it */
|
||||
} else if (us->nat_stat == VIS) {
|
||||
} else if (us->nat_stat == STAT_VIS) {
|
||||
/* We are a visitor country, we can't see squat, except deities */
|
||||
return 0;
|
||||
} else if (joe->cnum != player->cnum) {
|
||||
/* This isn't us. Can we see it? */
|
||||
if (natp->nat_stat == VIS) {
|
||||
if (natp->nat_stat == STAT_VIS) {
|
||||
/* Yes, we can see visitors are logged on */
|
||||
} else if (getrel(natp, player->cnum) < ALLIED) {
|
||||
/* This is a non-allied country, don't show it. */
|
||||
|
|
|
@ -144,7 +144,7 @@ powe(void)
|
|||
continue;
|
||||
}
|
||||
natp2 = getnatp(pow.p_nation);
|
||||
if (natp2->nat_stat & STAT_GOD)
|
||||
if (natp2->nat_stat == STAT_GOD)
|
||||
continue;
|
||||
if (use_targets && !targets[pow.p_nation])
|
||||
continue;
|
||||
|
@ -288,12 +288,7 @@ gen_power(void)
|
|||
for (i = 1; NULL != (natp = getnatp(i)); i++) {
|
||||
pow = &powbuf[i];
|
||||
pow->p_nation = i;
|
||||
if ((natp->nat_stat & STAT_INUSE) == 0 ||
|
||||
(natp->nat_stat & STAT_NORM) == 0) {
|
||||
pow->p_power = 0.;
|
||||
continue;
|
||||
}
|
||||
if (natp->nat_stat & STAT_GOD) {
|
||||
if (natp->nat_stat != STAT_ACTIVE) {
|
||||
pow->p_power = 0.;
|
||||
continue;
|
||||
}
|
||||
|
@ -397,11 +392,11 @@ set_target(s_char *p, int *targets)
|
|||
target = cnumb(p);
|
||||
|
||||
if (target > 0 && target < MAXNOC && (natp = getnatp(target))) {
|
||||
if (natp->nat_stat & STAT_GOD) {
|
||||
if (natp->nat_stat == STAT_GOD) {
|
||||
pr("Country #%d is a deity country\n", target);
|
||||
} else if (!(natp->nat_stat & STAT_INUSE)) {
|
||||
} else if (natp->nat_stat == STAT_UNUSED) {
|
||||
pr("Country #%d is not in use\n", target);
|
||||
} else if (!(natp->nat_stat & STAT_NORM)) {
|
||||
} else if (natp->nat_stat != STAT_ACTIVE) {
|
||||
pr("Country #%d is not a normal country\n", target);
|
||||
} else {
|
||||
targets[target] = 1;
|
||||
|
|
|
@ -89,13 +89,7 @@ reje(void)
|
|||
if (!snxtitem(&ni, EF_NATION, player->argp[3]))
|
||||
return RET_SYN;
|
||||
while (nxtitem(&ni, &nat)) {
|
||||
#if 0
|
||||
if ((nat.nat_stat & STAT_NORM) == 0) {
|
||||
pr("You may not reject/accept stuff from %s\nbecause they are not a normal country.\n", nat.nat_cnam);
|
||||
continue;
|
||||
}
|
||||
#endif
|
||||
if (nat.nat_stat & STAT_GOD) {
|
||||
if (nat.nat_stat == STAT_GOD) {
|
||||
pr("You may not reject/accept stuff from %s\nbecause they are a deity.\n", nat.nat_cnam);
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -82,8 +82,7 @@ rela(void)
|
|||
break;
|
||||
if (cn == as)
|
||||
continue;
|
||||
if ((np->nat_stat & STAT_NORM) == 0 &&
|
||||
(np->nat_stat & STAT_SANCT) == 0)
|
||||
if (np->nat_stat < STAT_SANCT)
|
||||
continue;
|
||||
if (opt_HIDDEN) {
|
||||
if (!player->god && !getcontact(natp, cn))
|
||||
|
|
|
@ -78,7 +78,7 @@ repo(void)
|
|||
natp = getnatp(player->cnum);
|
||||
memset(&mystat, 0, sizeof(struct stats));
|
||||
mystat.stat = natp->nat_stat;
|
||||
if (mystat.stat & STAT_NORM) {
|
||||
if (mystat.stat >= STAT_ACTIVE) {
|
||||
mystat.res = natp->nat_level[NAT_RLEV];
|
||||
mystat.tech = natp->nat_level[NAT_TLEV];
|
||||
mystat.edu = natp->nat_level[NAT_ELEV];
|
||||
|
@ -91,7 +91,7 @@ repo(void)
|
|||
first = 1;
|
||||
}
|
||||
while (nxtitem(&ni, &nat)) {
|
||||
if (!(nat.nat_stat & STAT_INUSE))
|
||||
if (nat.nat_stat == STAT_UNUSED)
|
||||
continue;
|
||||
if (opt_HIDDEN) {
|
||||
if (!player->god && !getcontact(getnatp(player->cnum), ni.cur))
|
||||
|
@ -132,8 +132,7 @@ repo_list(struct stats *stat, natid cn, struct natstr *natp)
|
|||
prxy(" %4d,%-4d\n", natp->nat_xcap, natp->nat_ycap, player->cnum);
|
||||
return;
|
||||
}
|
||||
switch (natp->nat_stat & (STAT_NORM | STAT_GOD | STAT_NEW | STAT_SANCT)) {
|
||||
case STAT_NORM:
|
||||
if (natp->nat_stat == STAT_ACTIVE) {
|
||||
pr(" %-3d %-14.14s ", cn, natp->nat_cnam);
|
||||
printdiff(stat->stat, stat->tech, natp, NAT_TLEV);
|
||||
printdiff(stat->stat, stat->res, natp, NAT_RLEV);
|
||||
|
@ -149,19 +148,6 @@ repo_list(struct stats *stat, natid cn, struct natstr *natp)
|
|||
else
|
||||
pr("Active\n");
|
||||
}
|
||||
break;
|
||||
case STAT_SANCT:
|
||||
break;
|
||||
case STAT_NEW:
|
||||
case 0:
|
||||
break;
|
||||
case STAT_SANCT | STAT_NORM | STAT_GOD:
|
||||
case STAT_NORM | STAT_GOD:
|
||||
case STAT_GOD:
|
||||
break;
|
||||
default:
|
||||
pr("???? ???? ???? ????\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -177,7 +163,7 @@ printdiff(int mystat, double ours, struct natstr *natp, int what)
|
|||
pr(" %7.2f ", ours);
|
||||
return;
|
||||
}
|
||||
if (ours && mystat & STAT_NORM && natp->nat_stat & STAT_NORM) {
|
||||
if (ours && mystat >= STAT_ACTIVE && natp->nat_stat >= STAT_ACTIVE) {
|
||||
theirs = natp->nat_level[what];
|
||||
if ((shift = min((int)theirs, (int)ours) - 100) > 0) {
|
||||
ours -= shift;
|
||||
|
|
|
@ -103,8 +103,7 @@ tele(void)
|
|||
}
|
||||
|
||||
natp = getnatp(to);
|
||||
if (((natp->nat_stat & STAT_NORM) == 0) &&
|
||||
((natp->nat_stat & STAT_SANCT) == 0)) {
|
||||
if (natp->nat_stat < STAT_SANCT) {
|
||||
pr("%s has no \"telegram priveleges\".\n", cname(to));
|
||||
kk++;
|
||||
continue;
|
||||
|
@ -119,8 +118,8 @@ tele(void)
|
|||
return RET_FAIL;
|
||||
}
|
||||
|
||||
if (!player->god &&
|
||||
(natp->nat_stat & GOD) != GOD && player->cnum != to)
|
||||
if (!player->god && natp->nat_stat != STAT_GOD
|
||||
&& player->cnum != to)
|
||||
nreport(player->cnum, N_SENT_TEL, to, 1);
|
||||
if (opt_HIDDEN) {
|
||||
setcont(to, player->cnum, FOUND_TELE);
|
||||
|
|
|
@ -204,7 +204,7 @@ xdvisible(int type, void *p)
|
|||
case EF_LOST:
|
||||
return gp->own != 0 && (gp->own == player->cnum || player->god);
|
||||
case EF_NATION:
|
||||
return ((struct natstr *)p)->nat_stat != 0
|
||||
return ((struct natstr *)p)->nat_stat != STAT_UNUSED
|
||||
&& (gp->own == player->cnum || player->god);
|
||||
case EF_NEWS:
|
||||
return ((struct nwsstr *)p)->nws_vrb != 0
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue