]> git.pond.sub.org Git - empserver/commitdiff
(dispatch, explain, status): Use player->nstat instead of
authorMarkus Armbruster <armbru@pond.sub.org>
Sat, 8 Dec 2007 20:47:13 +0000 (20:47 +0000)
committerMarkus Armbruster <armbru@pond.sub.org>
Sat, 8 Dec 2007 20:47:13 +0000 (20:47 +0000)
player->ncomstat for command permissions.  Side effect: status() no
longer notifies deities when they go broke or become solvent.
(dispatch): Don't distinguish between transiently and permanently
unavailable commands.  Didn't really work anyway.
(player): Remove unused member ncomstat.

include/player.h
src/lib/player/dispatch.c
src/lib/player/empdis.c
src/lib/player/player.c

index 766de640b2a0c2f62c73fc4bd559824514e61976..c38fc27bfbb14a8f3f22289478ffd7a742fb9532 100644 (file)
@@ -67,12 +67,11 @@ struct player {
     char *condarg;             /* conditional, ASCII, valid if command */
     char *comtail[128];                /* start of args in combuf[] */
     time_t lasttime;           /* when minleft was last debited */
-    int ncomstat;
     int minleft;
     int btused;
     int god;
     int owner;
-    int nstat;
+    int nstat;                 /* command capabilities */
     int simulation;            /* e.g. budget command */
     double dolcost;
     time_t curup;              /* when last input was received */
index f222170fbf4817339100665bea3ae89b5993315e..c9dc09a275bc32a8c5bb2b32ca7bf33a2f42707e 100644 (file)
@@ -61,18 +61,14 @@ dispatch(char *buf, char *redir)
     struct cmndstr *command;
     int cmd;
 
-    cmd = comtch(player->argp[0], player_coms, player->ncomstat);
+    cmd = comtch(player->argp[0], player_coms, player->nstat);
     if (cmd < 0) {
        if (cmd == M_NOTUNIQUE)
            pr("Command \"%s\" is ambiguous -- ", player->argp[0]);
        else if (cmd == M_IGNORE)
            return 0;
-       else {
-           pr("\"%s\" is not a legal command ", player->argp[0]);
-           if (player->nstat != player->ncomstat)
-               pr("now ");
-           pr("\n");
-       }
+       else
+           pr("\"%s\" is not a legal command\n", player->argp[0]);
        return -1;
     }
     command = &player_coms[cmd];
index 050c694000f0a158bc43c081bbb8acd98b82b016..d61f62896f5b4b75bc4208b74db91d70677ab241 100644 (file)
@@ -134,13 +134,14 @@ explain(void)
        "Args in [brackets] are optional.\n"
        "All-caps args in <angle brackets>"
        " have the following meanings:\n"
+       /* FIXME incomplete */
        "  <NUM> :: a number in unspecified units\n"
        "  <COMM> :: a commodity such as `food', `guns', etc\n"
        "  <VAR> :: a commodity such as `food', `guns', etc\n"
        "  <TYPE> :: an item type such as `ship', `plane', etc\n");
     for (i = 0; (format = player_coms[i].c_form) != 0; i++) {
-       if ((player_coms[i].c_permit & player->ncomstat) ==
-           player_coms[i].c_permit) {
+       if ((player_coms[i].c_permit & player->nstat)
+           == player_coms[i].c_permit) {
            pr("%2d ", player_coms[i].c_cost);
            if ((player_coms[i].c_permit & MONEY) == MONEY)
                pr("$");
index 6212dae66121f0fb9fb865ba3a0031523af2fa4f..43249fdd36c979ccf5a41e18de77a2838e6e3d3e 100644 (file)
@@ -173,13 +173,12 @@ status(void)
 
     old_nstat = player->nstat;
     player_set_nstat(player, natp);
+    if (player->god)
+       player->nstat |= CAP | MONEY;
     if ((old_nstat & MONEY) && !(player->nstat & MONEY))
        pr("You are now broke; industries are on strike.\n");
     if (!(old_nstat & MONEY) && (player->nstat & MONEY))
        pr("You are no longer broke!\n");
-    player->ncomstat = player->nstat;
-    if (player->god)
-       player->ncomstat |= CAP | MONEY;
 
     time(&player->curup);
     minute = (player->curup - player->lasttime) / 60;
@@ -205,7 +204,7 @@ status(void)
     }
     if (natp->nat_stat == STAT_ACTIVE && natp->nat_minused > m_m_p_d) {
        pr("Max minutes per day limit exceeded.\n");
-       player->ncomstat = VIS;
+       player->nstat = (player->nstat & ~NORM) | VIS;
     }
     if (player->btused) {
        natp->nat_btu -= player->btused;