Drop useless nstat value VIS

A player may execute a command when his player->nstat has all the bits
in the command's c_permit.

All commands require bit(0).  All players always have it.  Silly; get
rid of it.
This commit is contained in:
Markus Armbruster 2012-02-18 13:55:58 +01:00
parent 7aa71376a0
commit 364b208f28
3 changed files with 35 additions and 36 deletions

View file

@ -42,10 +42,9 @@
#include "types.h" #include "types.h"
/* nstat values */ /* nstat values */
#define VIS bit(0) #define SANCT bit(1)
#define SANCT (bit(1) | VIS) #define NORM bit(2)
#define NORM (bit(2) | VIS) #define GOD (bit(3) | NORM)
#define GOD (bit(3) | NORM | VIS)
#define EXEC bit(5) #define EXEC bit(5)
#define CAP bit(6) #define CAP bit(6)
#define MONEY bit(7) #define MONEY bit(7)

View file

@ -32,7 +32,7 @@
* Thomas Ruschak, 1992 * Thomas Ruschak, 1992
* Ken Stevens, 1995 * Ken Stevens, 1995
* Steve McClure, 1996-2000 * Steve McClure, 1996-2000
* Markus Armbruster, 2004-2011 * Markus Armbruster, 2004-2012
*/ */
#include <config.h> #include <config.h>
@ -45,9 +45,9 @@ struct cmndstr player_coms[] = {
/* command form cost addr permit */ /* command form cost addr permit */
{"accept [as-COUNTRY]", 0, acce, C_MOD, NORM}, {"accept [as-COUNTRY]", 0, acce, C_MOD, NORM},
{"add <NAT> <NAME> <REP> <STATUS>", 0, add, C_MOD, GOD}, {"add <NAT> <NAME> <REP> <STATUS>", 0, add, C_MOD, GOD},
{"announce", 0, tele, C_MOD, VIS}, {"announce", 0, tele, C_MOD, 0},
{"anti <SECT>", 3, anti, C_MOD, NORM + MONEY + CAP}, {"anti <SECT>", 3, anti, C_MOD, NORM + MONEY + CAP},
{"apropos <topic>", 0, apro, 0, VIS}, {"apropos <topic>", 0, apro, 0, 0},
{"arm <PLANE> <NUKE> <airburst?>", 3, arm, C_MOD, NORM + MONEY + CAP}, {"arm <PLANE> <NUKE> <airburst?>", 3, arm, C_MOD, NORM + MONEY + CAP},
{"army <ARMY> <UNITS>", 0, army, C_MOD, NORM}, {"army <ARMY> <UNITS>", 0, army, C_MOD, NORM},
{"assault <to-SECT> <from-SHIP> [<forts?> <ships?> <arty?> <planes?>]", {"assault <to-SECT> <from-SHIP> [<forts?> <ships?> <arty?> <planes?>]",
@ -67,14 +67,14 @@ struct cmndstr player_coms[] = {
1, buil, C_MOD, NORM + MONEY + CAP}, 1, buil, C_MOD, NORM + MONEY + CAP},
{"buy <COMM> <LOT#> <BID/UNIT> <DEST>", {"buy <COMM> <LOT#> <BID/UNIT> <DEST>",
1, buy, C_MOD, CAP + NORM + MONEY}, 1, buy, C_MOD, CAP + NORM + MONEY},
{"bye", 0, quit, 0, VIS}, {"bye", 0, quit, 0, 0},
{"capital <SECT>", 0, capi, C_MOD, NORM}, {"capital <SECT>", 0, capi, C_MOD, NORM},
{"cargo <SHIPS>", 0, carg, 0, NORM}, {"cargo <SHIPS>", 0, carg, 0, NORM},
{"census <SECTS>", 0, cens, 0, VIS}, {"census <SECTS>", 0, cens, 0, 0},
{"change <country|representative> <NAME>", 0, chan, C_MOD, VIS}, {"change <country|representative> <NAME>", 0, chan, C_MOD, 0},
{"coastwatch <SECTS>", 1, coas, C_MOD, NORM + CAP}, {"coastwatch <SECTS>", 1, coas, C_MOD, NORM + CAP},
{"collect <LOAN> <SECT>", 2, coll, C_MOD, NORM + MONEY + CAP}, {"collect <LOAN> <SECT>", 2, coll, C_MOD, NORM + MONEY + CAP},
{"commodity <SECTS>", 0, comm, 0, VIS}, {"commodity <SECTS>", 0, comm, 0, 0},
{"consider <loan|treaty> <LOAN/TREATY> <acc|decl|post>", {"consider <loan|treaty> <LOAN/TREATY> <acc|decl|post>",
1, cons, C_MOD, NORM + CAP}, 1, cons, C_MOD, NORM + CAP},
{"convert <SECTS> <NUM> [sure?]", 2, conv, C_MOD, NORM + MONEY + CAP}, {"convert <SECTS> <NUM> [sure?]", 2, conv, C_MOD, NORM + MONEY + CAP},
@ -97,13 +97,13 @@ struct cmndstr player_coms[] = {
0, edit, C_MOD, GOD}, 0, edit, C_MOD, GOD},
{"enable", 0, enab, C_MOD, GOD}, {"enable", 0, enab, C_MOD, GOD},
{"enlist <SECTS> <NUM>", 2, enli, C_MOD, NORM + MONEY + CAP}, {"enlist <SECTS> <NUM>", 2, enli, C_MOD, NORM + MONEY + CAP},
{"execute <INPUT FILE>", 0, execute, 0, VIS + EXEC}, {"execute <INPUT FILE>", 0, execute, 0, EXEC},
{"explore <c|m> <SECT> <NUM> <PATH|DESTINATION>", {"explore <c|m> <SECT> <NUM> <PATH|DESTINATION>",
1, explore, C_MOD, NORM + MONEY + CAP}, 1, explore, C_MOD, NORM + MONEY + CAP},
{"financial", 0, fina, 0, NORM}, {"financial", 0, fina, 0, NORM},
{"fire <TYPE> <from-SECTS | SHIPS | UNITS> [TO-SECT | SHIP]", {"fire <TYPE> <from-SECTS | SHIPS | UNITS> [TO-SECT | SHIP]",
1, multifire, C_MOD, NORM + MONEY + CAP}, 1, multifire, C_MOD, NORM + MONEY + CAP},
{"flash <COUNTRY> [<message>]", 0, flash, 0, VIS}, {"flash <COUNTRY> [<message>]", 0, flash, 0, 0},
{"fleetadd <FLEET> <SHIPS>", 0, flee, C_MOD, NORM}, {"fleetadd <FLEET> <SHIPS>", 0, flee, C_MOD, NORM},
{"fly <cargo-PLANES> <fighter-PLANES> <ap-SECT> <PATH|DESTINATION> <COM>", {"fly <cargo-PLANES> <fighter-PLANES> <ap-SECT> <PATH|DESTINATION> <COM>",
2, fly, C_MOD, NORM + MONEY + CAP}, 2, fly, C_MOD, NORM + MONEY + CAP},
@ -113,11 +113,11 @@ struct cmndstr player_coms[] = {
{"give <COMM> <SECT> <NUM>", 0, give, C_MOD, GOD}, {"give <COMM> <SECT> <NUM>", 0, give, C_MOD, GOD},
{"grind <SECT> <NUM>", 1, grin, C_MOD, NORM + MONEY + CAP}, {"grind <SECT> <NUM>", 1, grin, C_MOD, NORM + MONEY + CAP},
{"harden <PLANES> <NUM>", 2, hard, C_MOD, NORM + MONEY + CAP}, {"harden <PLANES> <NUM>", 2, hard, C_MOD, NORM + MONEY + CAP},
{"headlines [days]", 0, head, C_MOD, VIS}, {"headlines [days]", 0, head, C_MOD, 0},
{"help <topic>", 0, info, 0, VIS}, {"help <topic>", 0, info, 0, 0},
{"improve <road|rail|defense> <SECTS> <NUM>", {"improve <road|rail|defense> <SECTS> <NUM>",
1, improve, C_MOD, NORM + MONEY + CAP}, 1, improve, C_MOD, NORM + MONEY + CAP},
{"info <topic>", 0, info, 0, VIS}, {"info <topic>", 0, info, 0, 0},
{"land <UNITS>", 0, land, C_MOD, NORM}, {"land <UNITS>", 0, land, C_MOD, NORM},
{"launch <PLANES> <SECT|SHIP>", 3, laun, C_MOD, NORM + MONEY + CAP}, {"launch <PLANES> <SECT|SHIP>", 3, laun, C_MOD, NORM + MONEY + CAP},
{"lbmap <SECTS|LAND UNIT> [s|l|n|p|r|t|*|h]", 0, map, C_MOD, NORM}, {"lbmap <SECTS|LAND UNIT> [s|l|n|p|r|t|*|h]", 0, map, C_MOD, NORM},
@ -127,7 +127,7 @@ struct cmndstr player_coms[] = {
{"ldump <UNITS> [<fields>]", 0, ldump, 0, NORM}, {"ldump <UNITS> [<fields>]", 0, ldump, 0, NORM},
{"ledger <LOANS>", 0, ledg, 0, NORM}, {"ledger <LOANS>", 0, ledg, 0, NORM},
{"level <SECTS>", 0, leve, 0, NORM}, {"level <SECTS>", 0, leve, 0, NORM},
{"list", 0, explain, 0, VIS}, {"list", 0, explain, 0, 0},
{"lload <COMM|\"land\"|\"plane\"> <UNITS> <NUM|UNITS|PLANES>", {"lload <COMM|\"land\"|\"plane\"> <UNITS> <NUM|UNITS|PLANES>",
1, lload, C_MOD, NORM + CAP}, 1, lload, C_MOD, NORM + CAP},
{"llookout <UNITS>", 1, llook, 0, NORM + CAP}, {"llookout <UNITS>", 1, llook, 0, NORM + CAP},
@ -145,26 +145,26 @@ struct cmndstr player_coms[] = {
1, ltend, C_MOD, NORM + CAP}, 1, ltend, C_MOD, NORM + CAP},
{"lunload <COMM|\"land\"|\"plane\"> <UNITS> <NUM|UNITS|PLANES>", {"lunload <COMM|\"land\"|\"plane\"> <UNITS> <NUM|UNITS|PLANES>",
1, lload, C_MOD, NORM + CAP}, 1, lload, C_MOD, NORM + CAP},
{"map <SECTS|SHIP> [s|l|n|p|*|h]", 0, map, C_MOD, VIS}, {"map <SECTS|SHIP> [s|l|n|p|*|h]", 0, map, C_MOD, 0},
{"march <UNITS> <PATH|DESTINATION>", 1, march, C_MOD, NORM + CAP}, {"march <UNITS> <PATH|DESTINATION>", 1, march, C_MOD, NORM + CAP},
{"market <COMM|\"all\">", 0, mark, C_MOD, NORM}, {"market <COMM|\"all\">", 0, mark, C_MOD, NORM},
{"mine <SHIPS>", 2, mine, C_MOD, NORM + MONEY + CAP}, {"mine <SHIPS>", 2, mine, C_MOD, NORM + MONEY + CAP},
{"mission <TYPE> <PLANES|SHIPS|UNITS> <mission type> <op sect> [<radius>]", {"mission <TYPE> <PLANES|SHIPS|UNITS> <mission type> <op sect> [<radius>]",
2, mission, C_MOD, NORM + CAP}, 2, mission, C_MOD, NORM + CAP},
{"morale <UNITS> <retreat%>", 1, morale, C_MOD, NORM + CAP}, {"morale <UNITS> <retreat%>", 1, morale, C_MOD, NORM + CAP},
{"motd", 0, show_motd, C_MOD, VIS}, {"motd", 0, show_motd, C_MOD, 0},
{"move <COMM> <SECT> <NUM> <PATH|DESTINATION>", {"move <COMM> <SECT> <NUM> <PATH|DESTINATION>",
1, move, C_MOD, NORM + CAP}, 1, move, C_MOD, NORM + CAP},
{"mquota <SHIPS> <value>", 2, mobq, C_MOD, NORM + CAP}, {"mquota <SHIPS> <value>", 2, mobq, C_MOD, NORM + CAP},
{"name <SHIPS> <NAME>", 0, name, C_MOD, NORM}, {"name <SHIPS> <NAME>", 0, name, C_MOD, NORM},
{"nation [as-COUNTRY]", 0, nati, 0, VIS}, {"nation [as-COUNTRY]", 0, nati, 0, 0},
{"navigate <SHIPS> <PATH|DESTINATION>", 1, navi, C_MOD, NORM + CAP}, {"navigate <SHIPS> <PATH|DESTINATION>", 1, navi, C_MOD, NORM + CAP},
{"nbmap <SECTS|NUKE> [s|l|n|p|r|t|*|h]", 0, map, C_MOD, NORM}, {"nbmap <SECTS|NUKE> [s|l|n|p|r|t|*|h]", 0, map, C_MOD, NORM},
{"ndump <SECTS>", 0, ndump, 0, NORM}, {"ndump <SECTS>", 0, ndump, 0, NORM},
{"newcap <NAT> <SECTOR>", 0, new, C_MOD, GOD}, {"newcap <NAT> <SECTOR>", 0, new, C_MOD, GOD},
{"neweff <SECTS>", 0, newe, C_MOD, NORM}, {"neweff <SECTS>", 0, newe, C_MOD, NORM},
{"newspaper [days]", 0, news, 0, VIS}, {"newspaper [days]", 0, news, 0, 0},
{"nmap <SECTS|NUKE> [s|l|n|p|*|h]", 0, map, C_MOD, VIS}, {"nmap <SECTS|NUKE> [s|l|n|p|*|h]", 0, map, C_MOD, 0},
{"nuke <SECTS>", 0, nuke, 0, NORM}, {"nuke <SECTS>", 0, nuke, 0, NORM},
{"offer <loan|treaty> <NAT> [<NUM> <DAYS> <IRATE>]", {"offer <loan|treaty> <NAT> [<NUM> <DAYS> <IRATE>]",
1, offe, C_MOD, NORM + MONEY + CAP}, 1, offe, C_MOD, NORM + MONEY + CAP},
@ -179,27 +179,27 @@ struct cmndstr player_coms[] = {
{"pdump <PLANES> [<fields>]", 0, pdump, 0, NORM}, {"pdump <PLANES> [<fields>]", 0, pdump, 0, NORM},
{"peek <SECTS>", 0, peek, 0, GOD}, {"peek <SECTS>", 0, peek, 0, GOD},
{"plane <SECTS>", 0, plan, 0, NORM}, {"plane <SECTS>", 0, plan, 0, NORM},
{"players", 0, play, 0, VIS}, {"players", 0, play, 0, 0},
{"pmap <SECTS|PLANE> [s|l|n|p|*|h]", 0, map, C_MOD, NORM}, {"pmap <SECTS|PLANE> [s|l|n|p|*|h]", 0, map, C_MOD, NORM},
{"power [\"new\"|\"update\"] [<NUMBER OF COUNTRIES> | \"country\" <NATS>]", {"power [\"new\"|\"update\"] [<NUMBER OF COUNTRIES> | \"country\" <NATS>]",
0, powe, C_MOD, VIS}, 0, powe, C_MOD, 0},
{"pray", 0, tele, C_MOD, NORM}, {"pray", 0, tele, C_MOD, NORM},
{"production <SECTS>", 0, prod, 0, NORM}, {"production <SECTS>", 0, prod, 0, NORM},
{"pstat <PLANES>", 0, pstat, 0, NORM}, {"pstat <PLANES>", 0, pstat, 0, NORM},
{"qorder <SHIPS>", 0, qorde, C_MOD, NORM + CAP}, {"qorder <SHIPS>", 0, qorde, C_MOD, NORM + CAP},
{"quit", 0, quit, 0, VIS}, {"quit", 0, quit, 0, 0},
{"radar <SHIPS | SECTS>", 1, rada, C_MOD, NORM + CAP}, {"radar <SHIPS | SECTS>", 1, rada, C_MOD, NORM + CAP},
{"range <PLANES> <range>", 1, range, C_MOD, NORM + CAP}, {"range <PLANES> <range>", 1, range, C_MOD, NORM + CAP},
{"read [yes|no|<CNUM/CNAME>]", 0, rea, C_MOD, VIS}, {"read [yes|no|<CNUM/CNAME>]", 0, rea, C_MOD, 0},
{"realm <number> [<SECTS>]", 0, real, C_MOD, NORM}, {"realm <number> [<SECTS>]", 0, real, C_MOD, NORM},
{"recon <spy-PLANES> <fighter-PLANES> <ap-SECT> <PATH|DESTINATION>", {"recon <spy-PLANES> <fighter-PLANES> <ap-SECT> <PATH|DESTINATION>",
3, reco, C_MOD, NORM + MONEY + CAP}, 3, reco, C_MOD, NORM + MONEY + CAP},
{"reject <reject|accept> <announcements|mail|treaties|loans> <NAT>", {"reject <reject|accept> <announcements|mail|treaties|loans> <NAT>",
2, reje, C_MOD, NORM}, 2, reje, C_MOD, NORM},
{"relations [as-COUNTRY]", 0, rela, 0, VIS}, {"relations [as-COUNTRY]", 0, rela, 0, 0},
{"reload", 0, relo, C_MOD, GOD}, {"reload", 0, relo, C_MOD, GOD},
{"repay <LOAN> <NUM>", 1, repa, C_MOD, NORM + MONEY + CAP}, {"repay <LOAN> <NUM>", 1, repa, C_MOD, NORM + MONEY + CAP},
{"report <NATS>", 0, repo, 0, VIS}, {"report <NATS>", 0, repo, 0, 0},
{"reset <lot #> <0|price>", 1, rese, C_MOD, NORM + CAP}, {"reset <lot #> <0|price>", 1, rese, C_MOD, NORM + CAP},
{"resource <SECTS>", 0, reso, 0, NORM}, {"resource <SECTS>", 0, reso, 0, NORM},
{"retreat <SHIPS|FLEET> <PATH> [i|t|s|h|b|d|u|c]", {"retreat <SHIPS|FLEET> <PATH> [i|t|s|h|b|d|u|c]",
@ -227,9 +227,9 @@ struct cmndstr player_coms[] = {
{"show <TYPE> <\"build\"|\"stats\"|\"cap\"> [<tech>]\n" {"show <TYPE> <\"build\"|\"stats\"|\"cap\"> [<tech>]\n"
"\tshow <bridge|item|news|product|tower>\n" "\tshow <bridge|item|news|product|tower>\n"
"\tshow updates [<NUM>]>", "\tshow updates [<NUM>]>",
0, show, 0, VIS}, 0, show, 0, 0},
{"shutdown <minutes> <disable update?>", 0, shut, 0, GOD}, {"shutdown <minutes> <disable update?>", 0, shut, 0, GOD},
{"sinfrastructure <SECTS>", 0, sinfra, 0, VIS}, {"sinfrastructure <SECTS>", 0, sinfra, 0, 0},
{"skywatch <SECTS>", 1, skyw, C_MOD, NORM + CAP}, {"skywatch <SECTS>", 1, skyw, C_MOD, NORM + CAP},
{"smap <SECTS|SHIP> [s|l|n|p|*|h]", 0, map, C_MOD, NORM}, {"smap <SECTS|SHIP> [s|l|n|p|*|h]", 0, map, C_MOD, NORM},
{"sonar <SHIPS> <brief?>", 1, sona, C_MOD, NORM + CAP}, {"sonar <SHIPS> <brief?>", 1, sona, C_MOD, NORM + CAP},
@ -253,7 +253,7 @@ struct cmndstr player_coms[] = {
1, move, C_MOD, NORM + CAP}, 1, move, C_MOD, NORM + CAP},
{"threshold <COMM> <SECTS> <THRESH>", 1, thre, C_MOD, NORM}, {"threshold <COMM> <SECTS> <THRESH>", 1, thre, C_MOD, NORM},
{"toggle [inform|flash|beep|coastwatch|sonar|techlists] [on|off]", {"toggle [inform|flash|beep|coastwatch|sonar|techlists] [on|off]",
0, togg, C_MOD, VIS}, 0, togg, C_MOD, 0},
{"torpedo <submarine-SHIPS> <target-SHIP>", {"torpedo <submarine-SHIPS> <target-SHIP>",
3, torp, C_MOD, NORM + MONEY + CAP}, 3, torp, C_MOD, NORM + MONEY + CAP},
{"trade", 1, trad, C_MOD, NORM + CAP + MONEY}, {"trade", 1, trad, C_MOD, NORM + CAP + MONEY},
@ -264,16 +264,16 @@ struct cmndstr player_coms[] = {
{"unload <COMM|\"land\"|\"plane\"> <SHIPS> <NUM|UNIT|PLANE>", {"unload <COMM|\"land\"|\"plane\"> <SHIPS> <NUM|UNIT|PLANE>",
1, load, C_MOD, NORM + CAP}, 1, load, C_MOD, NORM + CAP},
{"unsail <SHIPS>", 1, sail, C_MOD, NORM + CAP}, {"unsail <SHIPS>", 1, sail, C_MOD, NORM + CAP},
{"update", 0, upda, 0, VIS}, {"update", 0, upda, 0, 0},
{"upgrade <s|p|l> <SHIPS|PLANES|UNITS>", {"upgrade <s|p|l> <SHIPS|PLANES|UNITS>",
1, upgr, C_MOD, NORM + MONEY + CAP}, 1, upgr, C_MOD, NORM + MONEY + CAP},
{"version", 0, vers, 0, VIS}, {"version", 0, vers, 0, 0},
{"wall [<message>]", 0, wall, C_MOD, NORM}, {"wall [<message>]", 0, wall, C_MOD, NORM},
{"wingadd <WING> <PLANES>", 1, wing, C_MOD, NORM}, {"wingadd <WING> <PLANES>", 1, wing, C_MOD, NORM},
{"wipe <SECTS>", 1, wipe, C_MOD, NORM}, {"wipe <SECTS>", 1, wipe, C_MOD, NORM},
{"wire [yes|no|<days>]", 0, rea, C_MOD, VIS}, {"wire [yes|no|<days>]", 0, rea, C_MOD, 0},
{"work <LAND UNITS> <AMOUNT>", 1, work, C_MOD, NORM + MONEY + CAP}, {"work <LAND UNITS> <AMOUNT>", 1, work, C_MOD, NORM + MONEY + CAP},
{"xdump [\"meta\"] <TYPE> [<RECORDS>]", 0, xdump, 0, VIS}, {"xdump [\"meta\"] <TYPE> [<RECORDS>]", 0, xdump, 0, 0},
{"zdone <y|n|c>", 0, zdon, C_MOD, NORM}, {"zdone <y|n|c>", 0, zdon, C_MOD, NORM},
{NULL, 0, NULL, 0, 0} {NULL, 0, NULL, 0, 0}
}; };

View file

@ -70,7 +70,7 @@ player_set_nstat(struct player *pl, struct natstr *np)
{ {
static int nstat[] = { static int nstat[] = {
/* must match nat_status */ /* must match nat_status */
0, VIS, VIS, SANCT, NORM, GOD | CAP | MONEY 0, 0, 0, SANCT, NORM, GOD | CAP | MONEY
}; };
if (CANT_HAPPEN(pl->cnum != np->nat_cnum)) if (CANT_HAPPEN(pl->cnum != np->nat_cnum))