]> git.pond.sub.org Git - empserver/blobdiff - src/lib/player/empmod.c
Update known contributors comments
[empserver] / src / lib / player / empmod.c
index 826fa65d56d91e5715d8c5f2f8f59038e2de1f5b..ff32fcaa96721b3285096fae95a35a210901d35f 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  Empire - A multi-player, client/server Internet based war game.
- *  Copyright (C) 1986-2000, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ *  Copyright (C) 1986-2009, Dave Pare, Jeff Bailey, Thomas Ruschak,
  *                           Ken Stevens, Steve McClure
  *
  *  This program is free software; you can redistribute it and/or modify
  *
  *  ---
  *
- *  See the "LEGAL", "LICENSE", "CREDITS" and "README" files for all the
- *  related information and legal notices. It is expected that any future
- *  projects/authors will amend these files as needed.
+ *  See files README, COPYING and CREDITS in the root of the source
+ *  tree for related information and legal notices.  It is expected
+ *  that future projects/authors will amend these files as needed.
  *
  *  ---
  *
  *  empmod.c: List all commands for Empire
- * 
+ *
  *  Known contributors to this file:
  *     Dave Pare, 1986
  *     Jeff Bailey
  *     Thomas Ruschak, 1992
  *     Ken Stevens, 1995
  *     Steve McClure, 1996-2000
+ *     Markus Armbruster, 2004-2009
  */
 
-#include "misc.h"
+#include <config.h>
+
 #include "com.h"
-#include "nat.h"
-#include "file.h"
-#include "commands.h"
+#include "player.h"
+#include "prototypes.h"
 
 struct cmndstr player_coms[] = {
 /*  command form                       cost    addr    permit */
     {"accept  [as-COUNTRY]", 0, acce, C_MOD, NORM},
     {"add <NAT> <NAME> <REP> <STATUS> <c|w|i>", 0, add, C_MOD, GOD},
-    {"announce {message}", 0, tele, C_MOD, VIS},
+    {"announce", 0, tele, C_MOD, VIS},
     {"anti <SECT>", 3, anti, C_MOD, NORM + MONEY + CAP},
     {"apropos <topic>", 0, apro, 0, VIS},
-    {"arm <PLANE> <NUKETYPE> <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},
     {"assault <to-SECT> <from-SHIP> [<forts?> <ships?> <arty?> <planes?>]",
      3, assa, C_MOD, NORM + MONEY + CAP},
-    {"attack <SECT> [<forts?> <ships?> <arty?> <planes?>]", 3, atta, C_MOD,
-     NORM + MONEY + CAP},
+    {"attack <SECT> [<forts?> <ships?> <arty?> <planes?>]",
+     3, atta, C_MOD, NORM + MONEY + CAP},
     {"bdes <SECTS> <type>", 0, bdes, C_MOD, NORM},
     {"bestpath <SECTS> <SECTS>", 0, best, 0, NORM},
-    {"bmap <SECTS|UNIT> [s|l|p|r|t|*|h]", 0, map, C_MOD, NORM},
-    {"board <to-SHIP> [<from-SHIP>|<from-sector>]", 3, boar, C_MOD,
-     NORM + MONEY + CAP},
-    {"bomb <bomber-PLANES> <fighter-PLANES> <pin|strat> <ap-SECT> <PATH|DESTINATION>", 2, bomb, C_MOD, NORM + MONEY + CAP},
-    {"break {sanctuary}", 1, brea, C_MOD, SANCT},
-    {"budget [<sector type|P|S|L|A|M|N|C> <PRIORITY|~>]", 1, budg, 0,
-     NORM},
-    {"build <s|l|b|p|n|t> <SECTS> <type|dir> [<number> <tech> <sure?>]", 1,
-     buil, C_MOD, NORM + MONEY + CAP},
-    {"buy <COMM> <LOT#> <BID/UNIT> <DEST>", 1, buy, C_MOD,
-     CAP + NORM + MONEY},
-    {"bye {log-off}", 0, quit, 0, VIS},
+    {"bmap <SECTS|SHIP> [s|l|n|p|r|t|*|h]", 0, map, C_MOD, NORM},
+    {"board <to-SHIP> [<from-SHIP>|<from-sector>]",
+     3, boar, C_MOD, NORM + MONEY + CAP},
+    {"bomb <bomber-PLANES> <fighter-PLANES> <pin|strat> <ap-SECT> <PATH|DESTINATION>",
+     2, bomb, C_MOD, NORM + MONEY + CAP},
+    {"break", 0, brea, C_MOD, SANCT},
+    {"budget", 1, budg, 0, NORM},
+    {"build <s|l|b|p|n|t> <SECTS> <type|dir> [<number> <tech> <sure?>]",
+     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},
     {"capital <SECT>", 0, capi, C_MOD, NORM},
     {"cargo <SHIPS>", 0, carg, 0, NORM},
 #ifdef CEDE_IS_ALLOWED
@@ -79,112 +79,114 @@ struct cmndstr player_coms[] = {
     {"coastwatch <SECTS>", 1, coas, C_MOD, NORM + CAP},
     {"collect <LOAN> <SECT>", 2, coll, C_MOD, NORM + MONEY + CAP},
     {"commodity <SECTS>", 0, comm, 0, VIS},
-    {"consider <loan|treaty> <LOAN/TREATY> <acc|decl|post>", 1, cons,
-     C_MOD, NORM + 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},
     {"country <NATS>", 0, coun, 0, NORM},
     {"cutoff <SECTS>", 0, cuto, C_MOD, NORM},
-    {"declare <all|friend|neut|hos|war> <NATS>", 2, decl, C_MOD,
-     NORM + CAP},
+    {"declare <all|friend|neut|hos|war> <NATS>",
+     2, decl, C_MOD, NORM + CAP},
     {"deliver <COMM> <SECTS> [q|<THRESH>] [<DIR>]", 1, deli, C_MOD, NORM},
-    {"demobilize <SECTS> <NUM> <active-reserve?> [sure?]", 1, demo, C_MOD,
-     NORM + CAP},
+    {"demobilize <SECTS> <NUM> <active-reserve?>", 1, demo, C_MOD,
+     NORM + MONEY + CAP},
     {"designate <SECTS> <type> [sure?]", 1, desi, C_MOD, NORM},
     {"disable", 0, disa, C_MOD, GOD},
-    {"disarm <PLANE>", 2, arm, C_MOD, NORM + MONEY + CAP},
+    {"disarm <PLANE>", 2, disarm, C_MOD, NORM + MONEY + CAP},
     {"distribute <SECTS> <DISTSECT|.|h>", 1, dist, C_MOD, NORM},
-    {"drop <cargo-PLANES> <fighter-PLANES> <ap-SECT> <PATH|DESTINATION> <COMM>", 1, drop, C_MOD, NORM + MONEY + CAP},
+    {"drop <cargo-PLANES> <fighter-PLANES> <ap-SECT> <PATH|DESTINATION> <COMM>",
+     1, drop, C_MOD, NORM + MONEY + CAP},
     {"dump <SECTS> [<fields>]", 0, dump, 0, NORM},
     {"echo [<string>]", 0, echo, 0, NORM},
-    {"edit <country|land|unit|ship|plane|nuke> [<KEY> <VALUE>]...", 0,
-     edit, C_MOD, GOD},
+    {"edit <country|land|ship|plane|unit> <NAT|SECT|SHIP|PLANE|LAND> [<KEY> <VALUE>]...",
+     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},
-    {"explore <c|m> <SECT> <NUM> <PATH|DESTINATION>", 1, explore, C_MOD,
-     NORM + MONEY + CAP},
+    {"execute <INPUT FILE>", 0, execute, 0, VIS + 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},
+    {"fire <TYPE> <from-SECTS | SHIPS | UNITS> [TO-SECT | SHIP]",
+     1, multifire, C_MOD, NORM + MONEY + CAP},
     {"flash <COUNTRY> [<message>]", 0, flash, 0, VIS},
     {"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},
+    {"fly <cargo-PLANES> <fighter-PLANES> <ap-SECT> <PATH|DESTINATION> <COM>",
+     2, fly, C_MOD, NORM + MONEY + CAP},
     {"follow <leader> <SHIPS>", 1, foll, C_MOD, NORM + CAP},
-    {"force <delay time>", 0, force, C_MOD, GOD},
+    {"force", 0, force, C_MOD, GOD},
     {"fortify <UNITS> <MOB>", 1, fort, C_MOD, NORM},
-    {"fuel <s|l> <SHIP/FLEET | UNIT/ARMY> <AMOUNT> [<OILER>]", 1, fuel,
-     C_MOD, NORM},
     {"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},
-    {"help <topic>", 0, info, 0, VIS},
     {"headlines [days]", 0, head, C_MOD, VIS},
-    {"hidden <SECTS>", 0, hidd, 0, GOD},
-    {"improve <road|rail|defense> <SECTS> <NUM>", 1, improve, C_MOD,
-     NORM + MONEY + CAP},
+    {"help <topic>", 0, info, 0, VIS},
+    {"improve <road|rail|defense> <SECTS> <NUM>",
+     1, improve, C_MOD, NORM + MONEY + CAP},
     {"info <topic>", 0, info, 0, VIS},
     {"land <UNITS>", 0, land, C_MOD, NORM},
-    {"launch <PLANES>", 3, laun, C_MOD, NORM + MONEY + CAP},
-    {"lboard <to-LAND> [<from-sector>]", 3, lboa, 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},
+    {"lboard <to-LAND> [<from-sector>]",
+     3, lboa, C_MOD, NORM + MONEY + CAP},
     {"lcargo <UNITS>", 0, lcarg, 0, NORM},
+    {"ldump <UNITS> [<fields>]", 0, ldump, 0, NORM},
     {"ledger <LOANS>", 0, ledg, 0, NORM},
     {"level <SECTS>", 0, leve, 0, NORM},
-    {"list of commands", 0, explain, 0, VIS},
-    {"lbmap <SECTS|UNIT> [s|l|p|r|t|*|h]", 0, map, C_MOD, NORM},
-    {"ldump <UNITS> [<fields>]", 0, ldump, 0, NORM},
-    {"lload <COMM|\"land\"|\"plane\"> <UNITS> <NUM|UNITS|PLANES>", 1,
-     lload, C_MOD, NORM + CAP},
+    {"list", 0, explain, 0, VIS},
+    {"lload <COMM|\"land\"|\"plane\"> <UNITS> <NUM|UNITS|PLANES>",
+     1, lload, C_MOD, NORM + CAP},
     {"llookout <UNITS>", 1, llook, 0, NORM + CAP},
-    {"lmap <SECTS|UNIT> [s|l|p|*|h]", 0, map, C_MOD, NORM},
+    {"lmap <SECTS|LAND UNIT> [s|l|n|p|*|h]", 0, map, C_MOD, NORM},
     {"lmine <UNITS>", 2, landmine, C_MOD, NORM + MONEY + CAP},
-    {"load <COMM|\"land\"|\"plane\"> <SHIPS> <NUM|UNITS|PLANES>", 1, load,
-     C_MOD, NORM + CAP},
+    {"load <COMM|\"land\"|\"plane\"> <SHIPS> <NUM|UNITS|PLANES>",
+     1, load, C_MOD, NORM + CAP},
     {"lookout <SHIPS>", 1, look, 0, NORM + CAP},
     {"lost", 0, lost, 0, NORM},
-    {"lradar <UNITS | SECTS>", 1, rada, 0, NORM + CAP},
-    {"lrange <UNITS> <range>", 1, lrange, C_MOD, NORM + CAP},
-    {"lretreat <UNITS|ARMY> <PATH> [i|h|b|c]", 1, lretr, C_MOD,
-     NORM + CAP},
+    {"lradar <UNITS | SECTS>", 1, lrad, 0, NORM + CAP},
+    {"lretreat <UNITS|ARMY> <PATH> [i|h|b|c]",
+     1, lretr, C_MOD, NORM + CAP},
     {"lstat <UNITS>", 0, lsta, C_MOD, NORM},
-    {"ltend <COMM> <tender-SHIPS> <NUM> <UNITS>", 1, ltend, C_MOD,
-     NORM + CAP},
-    {"lunload <COMM|\"land\"|\"plane\"> <UNITS> <NUM|UNITS|PLANES>", 1,
-     lload, C_MOD, NORM + CAP},
-    {"market <COMM|\"all\">", 0, mark, 0, VIS},
-    {"map <SECTS|SHIP> [s|l|p|*|h]", 0, map, C_MOD, VIS},
+    {"ltend <COMM> <tender-SHIPS> <NUM> <UNITS>",
+     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},
     {"march <UNITS> <PATH|DESTINATION>", 1, march, C_MOD, NORM + CAP},
+    {"market <COMM|\"all\">", 0, mark, 0, VIS},
     {"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},
-    {"mobupdate <MINUTES|check>", 0, mobupdate, C_MOD, GOD},
+    {"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},
-    {"move <COMM> <SECT> <NUM> <PATH|DESTINATION>", 1,
-     move, C_MOD, NORM + CAP},
+    {"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", 0, nati, 0, VIS},
+    {"nation [as-COUNTRY]", 0, nati, 0, VIS},
     {"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},
+    {"newcap <NAT> <SECTOR>", 0, new, C_MOD, GOD},
     {"neweff <SECTS>", 0, newe, C_MOD, NORM},
     {"newspaper [days]", 0, news, 0, VIS},
-    {"nmap <SECTS|SHIP> [s|l|p|*|h]", 0, map, C_MOD, VIS},
+    {"nmap <SECTS|NUKE> [s|l|n|p|*|h]", 0, map, C_MOD, VIS},
     {"nuke <SECTS>", 0, nuke, 0, NORM},
-    {"offer <loan|treaty> <NAT> [<NUM> <DAYS> <IRATE>]", 1, offe, C_MOD,
-     NORM + MONEY + CAP},
-    {"offset <SECT|NAT>", 0, offs, C_MOD, GOD},
+    {"offer <loan|treaty> <NAT> [<NUM> <DAYS> <IRATE>]",
+     1, offe, C_MOD, NORM + MONEY + CAP},
     {"order <SHIPS> <c|s|r|d|l> ", 1, orde, C_MOD, NORM + CAP},
-    {"origin <SECT>", 1, orig, C_MOD, NORM},
-    {"paradrop <cargo-PLANES> <fighter-PLANES> <ap-SECT> <PATH|DESTINATION>", 3, para, C_MOD, NORM + MONEY + CAP},
+    {"origin <SECT|COUNTRY|~>", 1, orig, C_MOD, NORM},
+    {"paradrop <cargo-PLANES> <fighter-PLANES> <ap-SECT> <PATH|DESTINATION>",
+     3, para, C_MOD, NORM + MONEY + CAP},
     {"path <SECT>", 0, path, 0, NORM},
     {"payoff <SHIPS>", 0, payo, C_MOD, NORM},
-    {"pbmap <SECTS|UNIT> [s|l|p|r|t|*|h]", 0, map, C_MOD, NORM},
+    {"pbmap <SECTS|PLANE> [s|l|n|p|r|t|*|h]", 0, map, C_MOD, NORM},
     {"pboard <PLANES>", 3, pboa, C_MOD, NORM + MONEY + CAP},
     {"pdump <PLANES> [<fields>]", 0, pdump, 0, NORM},
+    {"peek <SECTS>", 0, peek, 0, GOD},
     {"plane <SECTS>", 0, plan, 0, NORM},
     {"players", 0, play, 0, VIS},
-    {"pmap <SECTS|UNIT> [s|l|p|*|h]", 0, map, C_MOD, NORM},
-    {"power [[\"new\" [<NUMBER OF COUNTRIES>]] | [\"country\" <COUNTRY NUMBER>]]", 0, powe, C_MOD, VIS},
+    {"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},
     {"pray", 0, tele, C_MOD, NORM},
     {"production <SECTS>", 0, prod, 0, NORM},
     {"pstat <PLANES>", 0, pstat, 0, NORM},
@@ -192,85 +194,90 @@ struct cmndstr player_coms[] = {
     {"quit", 0, quit, 0, VIS},
     {"radar <SHIPS | SECTS>", 1, rada, 0, NORM + CAP},
     {"range <PLANES> <range>", 1, range, C_MOD, NORM + CAP},
-    {"read", 0, rea, C_MOD, VIS},
+    {"read [yes|no|<CNUM/CNAME>]", 0, rea, C_MOD, VIS},
     {"realm <number> [<SECTS>]", 0, real, C_MOD, NORM},
-    {"recon <spy-PLANES> <fighter-PLANES> <ap-SECT> <PATH|DESTINATION>", 3,
-     reco, C_MOD, NORM + MONEY + CAP},
-    {"retreat <SHIPS|FLEET> <PATH> [i|t|s|h|b|d|u|c]", 1, retr, C_MOD,
-     NORM + CAP},
+    {"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},
-    {"reject <reject|accept> <announcements|mail|treaties|loans> <NAT>", 2,
-     reje, C_MOD, NORM},
+    {"reload", 0, relo, C_MOD, GOD},
     {"repay <LOAN> <NUM>", 1, repa, C_MOD, NORM + MONEY + CAP},
     {"report <NATS>", 0, repo, 0, VIS},
     {"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]",
+     1, retr, C_MOD, NORM + CAP},
     {"route <COMM> <SECTS>", 1, rout, 0, NORM},
     {"sabotage <UNITS>", 1, sabo, C_MOD, NORM + MONEY + CAP},
     {"sail <SHIPS> <PATH>", 1, sail, C_MOD, NORM + CAP},
-    {"satellite <PLANE> [<se|sh|l> [?cond&cond&...]]", 1, sate, 0,
-     NORM + MONEY + CAP},
-    {"sbmap <SECTS|UNIT> [s|l|p|r|t|*|h]", 0, map, C_MOD, NORM},
-    {"scrap <s|p|l> <SHIPS|PLANES|UNITS>", 2, scra, C_MOD,
-     NORM + MONEY + CAP},
+    {"satellite <PLANE> [<se|sh|l> [?cond&cond&...]]",
+     1, sate, 0, NORM + MONEY + CAP},
+    {"sbmap <SECTS|SHIP> [s|l|n|p|r|t|*|h]", 0, map, C_MOD, NORM},
+    {"scrap <s|p|l> <SHIPS|PLANES|UNITS>",
+     2, scra, C_MOD, NORM + MONEY + CAP},
     {"scuttle <s|p|l> <SHIPS|PLANES|UNITS>", 5, scut, C_MOD, NORM + CAP},
     {"sdump <SHIPS> [<fields>]", 0, sdump, 0, NORM},
     {"sect <SECTS>", 0, sct, 0, NORM},
     {"sell <COMM> <SECTS> <NUM> <NUM>", 1, sell, C_MOD, NORM + CAP},
-    {"set <TYPE> <LIST> <PRICE>", 1, set, C_MOD, NORM + CAP},
-    {"setsector <TYPE> <SECTS> <NUM>", 0, setsector, C_MOD, GOD},
-    {"setresource <TYPE> <SECTS> <NUM>", 0, setres, C_MOD, GOD},
-    {"shark <LOAN>", 25, shark, C_MOD, NORM + MONEY + CAP},
+    {"set <TYPE> <SHIPS|PLANES|UNITS|NUKES> <PRICE>",
+     1, set, C_MOD, NORM + CAP},
+    {"setresource <type> <SECTS> <NUM>", 0, setres, C_MOD, GOD},
+    {"setsector <type> <SECTS> <NUM>", 0, setsector, C_MOD, GOD},
     {"sharebmap <CNUM/CNAME> <SECTS> [<des>]", 0, shar, C_MOD, NORM},
+    {"shark <LOAN>", 25, shark, C_MOD, NORM + MONEY + CAP},
     {"ship <SHIPS>", 0, shi, 0, NORM},
     {"shoot <c|u> <SECTS> <NUMBER>", 3, shoo, C_MOD, NORM + MONEY + CAP},
-    {"show <TYPE> <\"build\"|\"stats\"|\"cap\"> [<tech>]", 0, show, 0,
-     VIS},
-    {"shutdown [<minutes>] <disable update?>", 0, shut, 0, GOD},
+    {"show <TYPE> <\"build\"|\"stats\"|\"cap\"> [<tech>]\n"
+     "\tshow <bridge|item|news|product|tower>\n"
+     "\tshow updates [<NUM>]>",
+     0, show, 0, VIS},
+    {"shutdown <minutes> <disable update?>", 0, shut, 0, GOD},
     {"sinfrastructure <SECTS>", 0, sinfra, 0, VIS},
     {"skywatch <SECTS>", 1, skyw, C_MOD, NORM + CAP},
-    {"smap <SECTS|UNIT> [s|l|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},
     {"sorder <SHIPS>", 0, sorde, C_MOD, NORM + CAP},
     {"spy <SECTS>", 1, spy, C_MOD, NORM + CAP},
     {"sstat <SHIPS>", 0, sstat, 0, NORM},
-    {"start <SECTS>", 1, start, C_MOD, NORM + CAP},
+    {"start <TYPE> <SECTS|PLANES|SHIPS|UNITS>", 1, start, C_MOD, NORM + CAP},
     {"starvation [<SECTS>|l <UNITS>|s <SHIPS>]", 0, starve, 0, NORM},
-    {"stop <SECTS>", 1, stop, C_MOD, NORM + CAP},
+    {"stop <TYPE> <SECTS|PLANES|SHIPS|UNITS>", 1, stop, C_MOD, NORM + CAP},
     {"strength <SECTS>", 1, stre, C_MOD, NORM},
     {"supply <LAND UNITS>", 1, supp, C_MOD, NORM + CAP},
     {"survey <SELECTOR> <SECTS>", 0, surv, 0, NORM + CAP},
     {"swapsector <SECT> <SECT>", 0, swaps, C_MOD, GOD},
     {"sweep <sweep-PLANES> <fighter-PLANES> <ap-SECT> <PATH|DESTINATION>",
      3, reco, C_MOD, NORM + MONEY + CAP},
-    {"telegram <NAT>", 0, tele, C_MOD, NORM},
-    {"tend <COMM|\"land\"> <tender-SHIPS> <NUM|UNIT> <dest-SHIPS>", 1,
-     tend, C_MOD, NORM + CAP},
+    {"telegram <NATS>...", 0, tele, C_MOD, NORM},
+    {"tend <COMM|\"land\"> <tender-SHIPS> <NUM|UNIT> <dest-SHIPS>",
+     1, tend, C_MOD, NORM + CAP},
     {"territory <SECTS> <NUMBER> [<FIELD>]", 0, terr, C_MOD, NORM},
-    {"test <COMM> <SECT> <NUM> <PATH|DESTINATION>", 1,
-     move, 0, NORM + CAP},
+    {"test <COMM> <SECT> <NUM> <PATH|DESTINATION>",
+     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},
-    {"torpedo <submarine-SHIPS> <target-SHIP>", 3, torp, C_MOD,
-     NORM + MONEY + CAP},
+    {"toggle [inform|flash|beep|coastwatch|sonar|techlists] [on|off]",
+     0, togg, C_MOD, VIS},
+    {"torpedo <submarine-SHIPS> <target-SHIP>",
+     3, torp, C_MOD, NORM + MONEY + CAP},
     {"trade", 1, trad, C_MOD, NORM + CAP + MONEY},
-    {"transport <\"nuke\"|\"plane\"> <SECT|PLANES> [<NUKETYPE> <number>] <PATH|DESTINATION>", 1, tran, C_MOD, NORM + CAP},
+    {"transport <\"nuke\"|\"plane\"> <NUKES|PLANES> <PATH|DESTINATION>",
+     1, tran, C_MOD, NORM + CAP},
     {"treaty <TREATIES>", 0, trea, 0, NORM + MONEY + CAP},
     {"turn <\"on\"|\"off\"|\"mess\">", 0, turn, C_MOD, GOD},
-    {"unload <COMM|\"land\"|\"plane\"> <SHIPS> <NUM|UNIT|PLANE>", 1, load,
-     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},
-    {"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},
-    {"wait", 0, wai, C_MOD, GOD},
     {"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},
     {"work <LAND UNITS> <AMOUNT>", 1, work, C_MOD, NORM + MONEY + CAP},
+    {"xdump [\"meta\"] <TYPE> [<RECORDS>]", 0, xdump, 0, VIS},
     {"zdone <y|n|c>", 0, zdon, C_MOD, NORM},
-    {0, 0, 0, 0, 0}
+    {NULL, 0, NULL, 0, 0}
 };