]> git.pond.sub.org Git - empserver/commitdiff
Drop useless nstat value VIS
authorMarkus Armbruster <armbru@pond.sub.org>
Sat, 18 Feb 2012 12:55:58 +0000 (13:55 +0100)
committerMarkus Armbruster <armbru@pond.sub.org>
Sat, 25 Feb 2012 10:20:03 +0000 (11:20 +0100)
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.

include/player.h
src/lib/player/empmod.c
src/lib/player/init_nats.c

index e6ae8d2a5afaa6fb70acd22b7cb990529902363a..8c9691be9464663a533cb51aab528cdb43e8caa7 100644 (file)
 #include "types.h"
 
        /* nstat values */
 #include "types.h"
 
        /* nstat values */
-#define VIS            bit(0)
-#define SANCT          (bit(1) | VIS)
-#define NORM           (bit(2) | VIS)
-#define GOD            (bit(3) | NORM | VIS)
+#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)
 #define EXEC           bit(5)
 #define CAP            bit(6)
 #define MONEY          bit(7)
index 0022ef906a8d4425d41072273955ed0e5e15487a..265b02f0bb483c158572f563cc66e62cee3ea126 100644 (file)
@@ -32,7 +32,7 @@
  *     Thomas Ruschak, 1992
  *     Ken Stevens, 1995
  *     Steve McClure, 1996-2000
  *     Thomas Ruschak, 1992
  *     Ken Stevens, 1995
  *     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 */
     {"accept  [as-COUNTRY]", 0, acce, C_MOD, NORM},
     {"add <NAT> <NAME> <REP> <STATUS>", 0, add, C_MOD, GOD},
 /*  command form                       cost    addr    permit */
     {"accept  [as-COUNTRY]", 0, acce, C_MOD, NORM},
     {"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},
     {"army <ARMY> <UNITS>", 0, army, C_MOD, NORM},
     {"assault <to-SECT> <from-SHIP> [<forts?> <ships?> <arty?> <planes?>]",
     {"arm <PLANE> <NUKE> <airburst?>", 3, arm, C_MOD, NORM + MONEY + CAP},
     {"army <ARMY> <UNITS>", 0, army, C_MOD, NORM},
     {"assault <to-SECT> <from-SHIP> [<forts?> <ships?> <arty?> <planes?>]",
@@ -67,14 +67,14 @@ struct cmndstr player_coms[] = {
      1, buil, C_MOD, NORM + MONEY + CAP},
     {"buy <COMM> <LOT#> <BID/UNIT> <DEST>",
      1, buy, C_MOD, CAP + NORM + MONEY},
      1, buil, C_MOD, NORM + MONEY + CAP},
     {"buy <COMM> <LOT#> <BID/UNIT> <DEST>",
      1, buy, C_MOD, CAP + NORM + MONEY},
-    {"bye", 0, quit, 0, VIS},
+    {"bye", 0, quit, 0, 0},
     {"capital <SECT>", 0, capi, C_MOD, NORM},
     {"cargo <SHIPS>", 0, carg, 0, NORM},
     {"capital <SECT>", 0, capi, C_MOD, NORM},
     {"cargo <SHIPS>", 0, carg, 0, NORM},
-    {"census <SECTS>", 0, cens, 0, VIS},
-    {"change <country|representative> <NAME>", 0, chan, C_MOD, VIS},
+    {"census <SECTS>", 0, cens, 0, 0},
+    {"change <country|representative> <NAME>", 0, chan, C_MOD, 0},
     {"coastwatch <SECTS>", 1, coas, C_MOD, NORM + CAP},
     {"collect <LOAN> <SECT>", 2, coll, C_MOD, NORM + MONEY + CAP},
     {"coastwatch <SECTS>", 1, coas, C_MOD, NORM + 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>",
      1, cons, C_MOD, NORM + CAP},
     {"convert <SECTS> <NUM> [sure?]", 2, conv, C_MOD, NORM + MONEY + CAP},
     {"consider <loan|treaty> <LOAN/TREATY> <acc|decl|post>",
      1, cons, C_MOD, NORM + 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},
     {"enable", 0, enab, C_MOD, GOD},
     {"enlist <SECTS> <NUM>", 2, enli, C_MOD, NORM + MONEY + CAP},
      0, edit, C_MOD, GOD},
     {"enable", 0, enab, C_MOD, GOD},
     {"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>",
      1, explore, C_MOD, NORM + MONEY + CAP},
     {"financial", 0, fina, 0, NORM},
     {"fire <TYPE> <from-SECTS | SHIPS | UNITS> [TO-SECT | SHIP]",
      1, multifire, C_MOD, NORM + MONEY + CAP},
     {"explore <c|m> <SECT> <NUM> <PATH|DESTINATION>",
      1, explore, C_MOD, NORM + MONEY + CAP},
     {"financial", 0, fina, 0, NORM},
     {"fire <TYPE> <from-SECTS | SHIPS | UNITS> [TO-SECT | SHIP]",
      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},
     {"fly <cargo-PLANES> <fighter-PLANES> <ap-SECT> <PATH|DESTINATION> <COM>",
      2, fly, C_MOD, NORM + MONEY + CAP},
     {"fleetadd <FLEET> <SHIPS>", 0, flee, C_MOD, NORM},
     {"fly <cargo-PLANES> <fighter-PLANES> <ap-SECT> <PATH|DESTINATION> <COM>",
      2, fly, C_MOD, NORM + MONEY + CAP},
@@ -113,11 +113,11 @@ struct cmndstr player_coms[] = {
     {"give <COMM> <SECT> <NUM>", 0, give, C_MOD, GOD},
     {"grind <SECT> <NUM>", 1, grin, C_MOD, NORM + MONEY + CAP},
     {"harden <PLANES> <NUM>", 2, hard, C_MOD, NORM + MONEY + CAP},
     {"give <COMM> <SECT> <NUM>", 0, give, C_MOD, GOD},
     {"grind <SECT> <NUM>", 1, grin, C_MOD, NORM + MONEY + CAP},
     {"harden <PLANES> <NUM>", 2, hard, C_MOD, NORM + MONEY + CAP},
-    {"headlines [days]", 0, head, C_MOD, VIS},
-    {"help <topic>", 0, info, 0, VIS},
+    {"headlines [days]", 0, head, C_MOD, 0},
+    {"help <topic>", 0, info, 0, 0},
     {"improve <road|rail|defense> <SECTS> <NUM>",
      1, improve, C_MOD, NORM + MONEY + CAP},
     {"improve <road|rail|defense> <SECTS> <NUM>",
      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},
     {"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},
     {"land <UNITS>", 0, land, C_MOD, NORM},
     {"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},
@@ -127,7 +127,7 @@ struct cmndstr player_coms[] = {
     {"ldump <UNITS> [<fields>]", 0, ldump, 0, NORM},
     {"ledger <LOANS>", 0, ledg, 0, NORM},
     {"level <SECTS>", 0, leve, 0, NORM},
     {"ldump <UNITS> [<fields>]", 0, ldump, 0, NORM},
     {"ledger <LOANS>", 0, ledg, 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>",
      1, lload, C_MOD, NORM + CAP},
     {"llookout <UNITS>", 1, llook, 0, NORM + CAP},
     {"lload <COMM|\"land\"|\"plane\"> <UNITS> <NUM|UNITS|PLANES>",
      1, lload, C_MOD, NORM + CAP},
     {"llookout <UNITS>", 1, llook, 0, NORM + CAP},
@@ -145,26 +145,26 @@ struct cmndstr player_coms[] = {
      1, ltend, C_MOD, NORM + CAP},
     {"lunload <COMM|\"land\"|\"plane\"> <UNITS> <NUM|UNITS|PLANES>",
      1, lload, C_MOD, NORM + CAP},
      1, ltend, C_MOD, NORM + CAP},
     {"lunload <COMM|\"land\"|\"plane\"> <UNITS> <NUM|UNITS|PLANES>",
      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},
     {"market <COMM|\"all\">", 0, mark, C_MOD, NORM},
     {"mine <SHIPS>", 2, mine, C_MOD, NORM + MONEY + CAP},
     {"mission <TYPE> <PLANES|SHIPS|UNITS> <mission type> <op sect> [<radius>]",
      2, mission, C_MOD, NORM + CAP},
     {"morale <UNITS> <retreat%>", 1, morale, C_MOD, NORM + CAP},
     {"march <UNITS> <PATH|DESTINATION>", 1, march, C_MOD, NORM + CAP},
     {"market <COMM|\"all\">", 0, mark, C_MOD, NORM},
     {"mine <SHIPS>", 2, mine, C_MOD, NORM + MONEY + CAP},
     {"mission <TYPE> <PLANES|SHIPS|UNITS> <mission type> <op sect> [<radius>]",
      2, mission, 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>",
      1, move, C_MOD, NORM + CAP},
     {"mquota <SHIPS> <value>", 2, mobq, C_MOD, NORM + CAP},
     {"name <SHIPS> <NAME>", 0, name, C_MOD, NORM},
     {"move <COMM> <SECT> <NUM> <PATH|DESTINATION>",
      1, move, C_MOD, NORM + CAP},
     {"mquota <SHIPS> <value>", 2, mobq, C_MOD, NORM + CAP},
     {"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},
     {"nbmap <SECTS|NUKE> [s|l|n|p|r|t|*|h]", 0, map, C_MOD, NORM},
     {"ndump <SECTS>", 0, ndump, 0, NORM},
     {"newcap <NAT> <SECTOR>", 0, new, C_MOD, GOD},
     {"neweff <SECTS>", 0, newe, C_MOD, NORM},
     {"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},
     {"ndump <SECTS>", 0, ndump, 0, NORM},
     {"newcap <NAT> <SECTOR>", 0, new, C_MOD, GOD},
     {"neweff <SECTS>", 0, newe, C_MOD, NORM},
-    {"newspaper [days]", 0, news, 0, VIS},
-    {"nmap <SECTS|NUKE> [s|l|n|p|*|h]", 0, map, C_MOD, VIS},
+    {"newspaper [days]", 0, news, 0, 0},
+    {"nmap <SECTS|NUKE> [s|l|n|p|*|h]", 0, map, C_MOD, 0},
     {"nuke <SECTS>", 0, nuke, 0, NORM},
     {"offer <loan|treaty> <NAT> [<NUM> <DAYS> <IRATE>]",
      1, offe, C_MOD, NORM + MONEY + CAP},
     {"nuke <SECTS>", 0, nuke, 0, NORM},
     {"offer <loan|treaty> <NAT> [<NUM> <DAYS> <IRATE>]",
      1, offe, C_MOD, NORM + MONEY + CAP},
@@ -179,27 +179,27 @@ struct cmndstr player_coms[] = {
     {"pdump <PLANES> [<fields>]", 0, pdump, 0, NORM},
     {"peek <SECTS>", 0, peek, 0, GOD},
     {"plane <SECTS>", 0, plan, 0, NORM},
     {"pdump <PLANES> [<fields>]", 0, pdump, 0, NORM},
     {"peek <SECTS>", 0, peek, 0, GOD},
     {"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},
     {"power [\"new\"|\"update\"] [<NUMBER OF COUNTRIES> | \"country\" <NATS>]",
     {"pmap <SECTS|PLANE> [s|l|n|p|*|h]", 0, map, C_MOD, NORM},
     {"power [\"new\"|\"update\"] [<NUMBER OF COUNTRIES> | \"country\" <NATS>]",
-     0, powe, C_MOD, VIS},
+     0, powe, C_MOD, 0},
     {"pray", 0, tele, C_MOD, NORM},
     {"production <SECTS>", 0, prod, 0, NORM},
     {"pstat <PLANES>", 0, pstat, 0, NORM},
     {"qorder <SHIPS>", 0, qorde, C_MOD, NORM + CAP},
     {"pray", 0, tele, C_MOD, NORM},
     {"production <SECTS>", 0, prod, 0, NORM},
     {"pstat <PLANES>", 0, pstat, 0, NORM},
     {"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},
     {"range <PLANES> <range>", 1, range, C_MOD, NORM + CAP},
     {"radar <SHIPS | SECTS>", 1, rada, 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},
     {"recon <spy-PLANES> <fighter-PLANES> <ap-SECT> <PATH|DESTINATION>",
      3, reco, C_MOD, NORM + MONEY + CAP},
     {"reject <reject|accept> <announcements|mail|treaties|loans> <NAT>",
      2, reje, C_MOD, NORM},
     {"realm <number> [<SECTS>]", 0, real, C_MOD, NORM},
     {"recon <spy-PLANES> <fighter-PLANES> <ap-SECT> <PATH|DESTINATION>",
      3, reco, C_MOD, NORM + MONEY + CAP},
     {"reject <reject|accept> <announcements|mail|treaties|loans> <NAT>",
      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},
     {"repay <LOAN> <NUM>", 1, repa, C_MOD, NORM + MONEY + CAP},
     {"reload", 0, relo, C_MOD, GOD},
     {"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},
     {"resource <SECTS>", 0, reso, 0, NORM},
     {"retreat <SHIPS|FLEET> <PATH> [i|t|s|h|b|d|u|c]",
     {"reset <lot #> <0|price>", 1, rese, C_MOD, NORM + CAP},
     {"resource <SECTS>", 0, reso, 0, NORM},
     {"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"
      "\tshow <bridge|item|news|product|tower>\n"
      "\tshow updates [<NUM>]>",
     {"show <TYPE> <\"build\"|\"stats\"|\"cap\"> [<tech>]\n"
      "\tshow <bridge|item|news|product|tower>\n"
      "\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},
     {"smap <SECTS|SHIP> [s|l|n|p|*|h]", 0, map, C_MOD, NORM},
     {"sonar <SHIPS> <brief?>", 1, sona, 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},
     {"sonar <SHIPS> <brief?>", 1, sona, C_MOD, NORM + CAP},
@@ -253,7 +253,7 @@ struct cmndstr player_coms[] = {
      1, move, C_MOD, NORM + CAP},
     {"threshold <COMM> <SECTS> <THRESH>", 1, thre, C_MOD, NORM},
     {"toggle [inform|flash|beep|coastwatch|sonar|techlists] [on|off]",
      1, move, C_MOD, NORM + CAP},
     {"threshold <COMM> <SECTS> <THRESH>", 1, thre, C_MOD, NORM},
     {"toggle [inform|flash|beep|coastwatch|sonar|techlists] [on|off]",
-     0, togg, C_MOD, VIS},
+     0, togg, C_MOD, 0},
     {"torpedo <submarine-SHIPS> <target-SHIP>",
      3, torp, C_MOD, NORM + MONEY + CAP},
     {"trade", 1, trad, C_MOD, NORM + CAP + MONEY},
     {"torpedo <submarine-SHIPS> <target-SHIP>",
      3, torp, C_MOD, NORM + MONEY + CAP},
     {"trade", 1, trad, C_MOD, NORM + CAP + MONEY},
@@ -264,16 +264,16 @@ struct cmndstr player_coms[] = {
     {"unload <COMM|\"land\"|\"plane\"> <SHIPS> <NUM|UNIT|PLANE>",
      1, load, C_MOD, NORM + CAP},
     {"unsail <SHIPS>", 1, sail, C_MOD, NORM + CAP},
     {"unload <COMM|\"land\"|\"plane\"> <SHIPS> <NUM|UNIT|PLANE>",
      1, load, 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>",
      1, upgr, C_MOD, NORM + MONEY + CAP},
     {"upgrade <s|p|l> <SHIPS|PLANES|UNITS>",
      1, upgr, C_MOD, NORM + MONEY + CAP},
-    {"version", 0, vers, 0, VIS},
+    {"version", 0, vers, 0, 0},
     {"wall [<message>]", 0, wall, C_MOD, NORM},
     {"wingadd <WING> <PLANES>", 1, wing, C_MOD, NORM},
     {"wipe <SECTS>", 1, wipe, C_MOD, NORM},
     {"wall [<message>]", 0, wall, C_MOD, NORM},
     {"wingadd <WING> <PLANES>", 1, wing, 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},
     {NULL, 0, NULL, 0, 0}
 };
     {"zdone <y|n|c>", 0, zdon, C_MOD, NORM},
     {NULL, 0, NULL, 0, 0}
 };
index 84b8f68d6fc99f6ff6c4cc1a081708e482121543..5f83c15c8a41119f7f699efad6acb8a342627230 100644 (file)
@@ -70,7 +70,7 @@ player_set_nstat(struct player *pl, struct natstr *np)
 {
     static int nstat[] = {
        /* must match nat_status */
 {
     static int nstat[] = {
        /* 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))