From: Markus Armbruster Date: Sat, 18 Feb 2012 14:00:57 +0000 (+0100) Subject: Clean up c_permit values of deity commands X-Git-Tag: v4.3.30~51 X-Git-Url: http://git.pond.sub.org/?p=empserver;a=commitdiff_plain;h=481d1dabe2547aba280ef391d945894a266c90bb Clean up c_permit values of deity commands A player may execute a command when his player->nstat has all the bits in the command's c_permit. Normal player commands require bit(2). Command break requires bit(1), and execute requires bit(5). Deity commands require both bit(2) and bit(3). Works, because deities always have both bits set in nstat, as they may execute normal player commands, too. But it's a bit confusing. Change them to only require their own bit(3). --- diff --git a/include/com.h b/include/com.h index 39ff1d9ad..ed3460566 100644 --- a/include/com.h +++ b/include/com.h @@ -38,7 +38,7 @@ struct cmndstr { int c_cost; /* btu cost of command */ int (*c_addr)(void); /* core addr of appropriate routine */ int c_flags; /* command flags */ - int c_permit; /* who is allowed to "do" this command */ + int c_permit; /* command capabilities required */ }; /* Command flag bits */ diff --git a/include/player.h b/include/player.h index 8c9691be9..db1034cb6 100644 --- a/include/player.h +++ b/include/player.h @@ -41,13 +41,13 @@ #include "queue.h" #include "types.h" - /* nstat values */ -#define SANCT bit(1) -#define NORM bit(2) -#define GOD (bit(3) | NORM) -#define EXEC bit(5) -#define CAP bit(6) -#define MONEY bit(7) + /* player command capabilities */ +#define SANCT bit(1) /* can execute commands available in sanctuary */ +#define NORM bit(2) /* can execute active player commands */ +#define GOD bit(3) /* can execute deity commands */ +#define EXEC bit(5) /* can execute the execute command */ +#define CAP bit(6) /* has capital */ +#define MONEY bit(7) /* isn't broke */ enum player_sleep { PLAYER_SLEEP_NEVER, PLAYER_SLEEP_ON_INPUT, PLAYER_SLEEP_FREELY diff --git a/src/lib/player/init_nats.c b/src/lib/player/init_nats.c index 5f83c15c8..f2880209d 100644 --- a/src/lib/player/init_nats.c +++ b/src/lib/player/init_nats.c @@ -70,7 +70,7 @@ player_set_nstat(struct player *pl, struct natstr *np) { static int nstat[] = { /* must match nat_status */ - 0, 0, 0, SANCT, NORM, GOD | CAP | MONEY + 0, 0, 0, SANCT, NORM, GOD | NORM | CAP | MONEY }; if (CANT_HAPPEN(pl->cnum != np->nat_cnum))