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).
This commit is contained in:
Markus Armbruster 2012-02-18 15:00:57 +01:00
parent 364b208f28
commit 481d1dabe2
3 changed files with 9 additions and 9 deletions

View file

@ -38,7 +38,7 @@ struct cmndstr {
int c_cost; /* btu cost of command */ int c_cost; /* btu cost of command */
int (*c_addr)(void); /* core addr of appropriate routine */ int (*c_addr)(void); /* core addr of appropriate routine */
int c_flags; /* command flags */ int c_flags; /* command flags */
int c_permit; /* who is allowed to "do" this command */ int c_permit; /* command capabilities required */
}; };
/* Command flag bits */ /* Command flag bits */

View file

@ -41,13 +41,13 @@
#include "queue.h" #include "queue.h"
#include "types.h" #include "types.h"
/* nstat values */ /* player command capabilities */
#define SANCT bit(1) #define SANCT bit(1) /* can execute commands available in sanctuary */
#define NORM bit(2) #define NORM bit(2) /* can execute active player commands */
#define GOD (bit(3) | NORM) #define GOD bit(3) /* can execute deity commands */
#define EXEC bit(5) #define EXEC bit(5) /* can execute the execute command */
#define CAP bit(6) #define CAP bit(6) /* has capital */
#define MONEY bit(7) #define MONEY bit(7) /* isn't broke */
enum player_sleep { enum player_sleep {
PLAYER_SLEEP_NEVER, PLAYER_SLEEP_ON_INPUT, PLAYER_SLEEP_FREELY PLAYER_SLEEP_NEVER, PLAYER_SLEEP_ON_INPUT, PLAYER_SLEEP_FREELY

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, 0, 0, SANCT, NORM, GOD | CAP | MONEY 0, 0, 0, SANCT, NORM, GOD | NORM | CAP | MONEY
}; };
if (CANT_HAPPEN(pl->cnum != np->nat_cnum)) if (CANT_HAPPEN(pl->cnum != np->nat_cnum))