2 * Empire - A multi-player, client/server Internet based war game.
3 * Copyright (C) 1986-2008, Dave Pare, Jeff Bailey, Thomas Ruschak,
4 * Ken Stevens, Steve McClure
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 * See files README, COPYING and CREDITS in the root of the source
23 * tree for related information and legal notices. It is expected
24 * that future projects/authors will amend these files as needed.
28 * empmod.c: List all commands for Empire
30 * Known contributors to this file:
33 * Thomas Ruschak, 1992
35 * Steve McClure, 1996-2000
36 * Markus Armbruster, 2004-2008
43 #include "prototypes.h"
45 struct cmndstr player_coms[] = {
46 /* command form cost addr permit */
47 {"accept [as-COUNTRY]", 0, acce, C_MOD, NORM},
48 {"add <NAT> <NAME> <REP> <STATUS> <c|w|i>", 0, add, C_MOD, GOD},
49 {"announce", 0, tele, C_MOD, VIS},
50 {"anti <SECT>", 3, anti, C_MOD, NORM + MONEY + CAP},
51 {"apropos <topic>", 0, apro, 0, VIS},
52 {"arm <PLANE> <NUKE> <airburst?>", 3, arm, C_MOD, NORM + MONEY + CAP},
53 {"army <ARMY> <UNITS>", 0, army, C_MOD, NORM},
54 {"assault <to-SECT> <from-SHIP> [<forts?> <ships?> <arty?> <planes?>]",
55 3, assa, C_MOD, NORM + MONEY + CAP},
56 {"attack <SECT> [<forts?> <ships?> <arty?> <planes?>]",
57 3, atta, C_MOD, NORM + MONEY + CAP},
58 {"bdes <SECTS> <type>", 0, bdes, C_MOD, NORM},
59 {"bestpath <SECTS> <SECTS>", 0, best, 0, NORM},
60 {"bmap <SECTS|SHIP> [s|l|n|p|r|t|*|h]", 0, map, C_MOD, NORM},
61 {"board <to-SHIP> [<from-SHIP>|<from-sector>]",
62 3, boar, C_MOD, NORM + MONEY + CAP},
63 {"bomb <bomber-PLANES> <fighter-PLANES> <pin|strat> <ap-SECT> <PATH|DESTINATION>",
64 2, bomb, C_MOD, NORM + MONEY + CAP},
65 {"break", 0, brea, C_MOD, SANCT},
66 {"budget", 1, budg, 0, NORM},
67 {"build <s|l|b|p|n|t> <SECTS> <type|dir> [<number> <tech> <sure?>]",
68 1, buil, C_MOD, NORM + MONEY + CAP},
69 {"buy <COMM> <LOT#> <BID/UNIT> <DEST>",
70 1, buy, C_MOD, CAP + NORM + MONEY},
71 {"bye", 0, quit, 0, VIS},
72 {"capital <SECT>", 0, capi, C_MOD, NORM},
73 {"cargo <SHIPS>", 0, carg, 0, NORM},
74 #ifdef CEDE_IS_ALLOWED
75 {"cede <SECTS|SHIPS> <COUNTRY> [se|sh]", 639, cede, C_MOD, NORM},
76 #endif /* CEDE_IS_ALLOWED */
77 {"census <SECTS>", 0, cens, 0, VIS},
78 {"change <country|representative> <NAME>", 0, chan, C_MOD, VIS},
79 {"coastwatch <SECTS>", 1, coas, C_MOD, NORM + CAP},
80 {"collect <LOAN> <SECT>", 2, coll, C_MOD, NORM + MONEY + CAP},
81 {"commodity <SECTS>", 0, comm, 0, VIS},
82 {"consider <loan|treaty> <LOAN/TREATY> <acc|decl|post>",
83 1, cons, C_MOD, NORM + CAP},
84 {"convert <SECTS> <NUM> [sure?]", 2, conv, C_MOD, NORM + MONEY + CAP},
85 {"country <NATS>", 0, coun, 0, NORM},
86 {"cutoff <SECTS>", 0, cuto, C_MOD, NORM},
87 {"declare <all|friend|neut|hos|war> <NATS>",
88 2, decl, C_MOD, NORM + CAP},
89 {"deliver <COMM> <SECTS> [q|<THRESH>] [<DIR>]", 1, deli, C_MOD, NORM},
90 {"demobilize <SECTS> <NUM> <active-reserve?>", 1, demo, C_MOD,
92 {"designate <SECTS> <type> [sure?]", 1, desi, C_MOD, NORM},
93 {"disable", 0, disa, C_MOD, GOD},
94 {"disarm <PLANE>", 2, disarm, C_MOD, NORM + MONEY + CAP},
95 {"distribute <SECTS> <DISTSECT|.|h>", 1, dist, C_MOD, NORM},
96 {"drop <cargo-PLANES> <fighter-PLANES> <ap-SECT> <PATH|DESTINATION> <COMM>",
97 1, drop, C_MOD, NORM + MONEY + CAP},
98 {"dump <SECTS> [<fields>]", 0, dump, 0, NORM},
99 {"echo [<string>]", 0, echo, 0, NORM},
100 {"edit <country|land|ship|plane|unit> <NAT|SECT|SHIP|PLANE|LAND> [<KEY> <VALUE>]...",
101 0, edit, C_MOD, GOD},
102 {"enable", 0, enab, C_MOD, GOD},
103 {"enlist <SECTS> <NUM>", 2, enli, C_MOD, NORM + MONEY + CAP},
104 {"execute <INPUT FILE>", 0, execute, 0, VIS + EXEC },
105 {"explore <c|m> <SECT> <NUM> <PATH|DESTINATION>",
106 1, explore, C_MOD, NORM + MONEY + CAP},
107 {"financial", 0, fina, 0, NORM},
108 {"fire <TYPE> <from-SECTS | SHIPS | UNITS> [TO-SECT | SHIP]",
109 1, multifire, C_MOD, NORM + MONEY + CAP},
110 {"flash <COUNTRY> [<message>]", 0, flash, 0, VIS},
111 {"fleetadd <FLEET> <SHIPS>", 0, flee, C_MOD, NORM},
112 {"fly <cargo-PLANES> <fighter-PLANES> <ap-SECT> <PATH|DESTINATION> <COM>",
113 2, fly, C_MOD, NORM + MONEY + CAP},
114 {"follow <leader> <SHIPS>", 1, foll, C_MOD, NORM + CAP},
115 {"force", 0, force, C_MOD, GOD},
116 {"fortify <UNITS> <MOB>", 1, fort, C_MOD, NORM},
117 {"give <COMM> <SECT> <NUM>", 0, give, C_MOD, GOD},
118 {"grind <SECT> <NUM>", 1, grin, C_MOD, NORM + MONEY + CAP},
119 {"harden <PLANES> <NUM>", 2, hard, C_MOD, NORM + MONEY + CAP},
120 {"headlines [days]", 0, head, C_MOD, VIS},
121 {"help <topic>", 0, info, 0, VIS},
122 {"improve <road|rail|defense> <SECTS> <NUM>",
123 1, improve, C_MOD, NORM + MONEY + CAP},
124 {"info <topic>", 0, info, 0, VIS},
125 {"land <UNITS>", 0, land, C_MOD, NORM},
126 {"launch <PLANES> <SECT|SHIP>", 3, laun, C_MOD, NORM + MONEY + CAP},
127 {"lbmap <SECTS|LAND UNIT> [s|l|n|p|r|t|*|h]", 0, map, C_MOD, NORM},
128 {"lboard <to-LAND> [<from-sector>]",
129 3, lboa, C_MOD, NORM + MONEY + CAP},
130 {"lcargo <UNITS>", 0, lcarg, 0, NORM},
131 {"ldump <UNITS> [<fields>]", 0, ldump, 0, NORM},
132 {"ledger <LOANS>", 0, ledg, 0, NORM},
133 {"level <SECTS>", 0, leve, 0, NORM},
134 {"list", 0, explain, 0, VIS},
135 {"lload <COMM|\"land\"|\"plane\"> <UNITS> <NUM|UNITS|PLANES>",
136 1, lload, C_MOD, NORM + CAP},
137 {"llookout <UNITS>", 1, llook, 0, NORM + CAP},
138 {"lmap <SECTS|LAND UNIT> [s|l|n|p|*|h]", 0, map, C_MOD, NORM},
139 {"lmine <UNITS>", 2, landmine, C_MOD, NORM + MONEY + CAP},
140 {"load <COMM|\"land\"|\"plane\"> <SHIPS> <NUM|UNITS|PLANES>",
141 1, load, C_MOD, NORM + CAP},
142 {"lookout <SHIPS>", 1, look, 0, NORM + CAP},
143 {"lost", 0, lost, 0, NORM},
144 {"lradar <UNITS | SECTS>", 1, lrad, 0, NORM + CAP},
145 {"lretreat <UNITS|ARMY> <PATH> [i|h|b|c]",
146 1, lretr, C_MOD, NORM + CAP},
147 {"lstat <UNITS>", 0, lsta, C_MOD, NORM},
148 {"ltend <COMM> <tender-SHIPS> <NUM> <UNITS>",
149 1, ltend, C_MOD, NORM + CAP},
150 {"lunload <COMM|\"land\"|\"plane\"> <UNITS> <NUM|UNITS|PLANES>",
151 1, lload, C_MOD, NORM + CAP},
152 {"map <SECTS|SHIP> [s|l|n|p|*|h]", 0, map, C_MOD, VIS},
153 {"march <UNITS> <PATH|DESTINATION>", 1, march, C_MOD, NORM + CAP},
154 {"market <COMM|\"all\">", 0, mark, 0, VIS},
155 {"mine <SHIPS>", 2, mine, C_MOD, NORM + MONEY + CAP},
156 {"mission <TYPE> <PLANES|SHIPS|UNITS> <mission type> <op sect> [<radius>]",
157 2, mission, C_MOD, NORM + CAP},
158 {"morale <UNITS> <retreat%>", 1, morale, C_MOD, NORM + CAP},
159 {"motd", 0, show_motd, C_MOD, VIS},
160 {"move <COMM> <SECT> <NUM> <PATH|DESTINATION>",
161 1, move, C_MOD, NORM + CAP},
162 {"mquota <SHIPS> <value>", 2, mobq, C_MOD, NORM + CAP},
163 {"name <SHIPS> <NAME>", 0, name, C_MOD, NORM},
164 {"nation [as-COUNTRY]", 0, nati, 0, VIS},
165 {"navigate <SHIPS> <PATH|DESTINATION>", 1, navi, C_MOD, NORM + CAP},
166 {"nbmap <SECTS|NUKE> [s|l|n|p|r|t|*|h]", 0, map, C_MOD, NORM},
167 {"ndump <SECTS>", 0, ndump, 0, NORM},
168 {"newcap <NAT> <SECTOR>", 0, new, C_MOD, GOD},
169 {"neweff <SECTS>", 0, newe, C_MOD, NORM},
170 {"newspaper [days]", 0, news, 0, VIS},
171 {"nmap <SECTS|NUKE> [s|l|n|p|*|h]", 0, map, C_MOD, VIS},
172 {"nuke <SECTS>", 0, nuke, 0, NORM},
173 {"offer <loan|treaty> <NAT> [<NUM> <DAYS> <IRATE>]",
174 1, offe, C_MOD, NORM + MONEY + CAP},
175 {"order <SHIPS> <c|s|r|d|l> ", 1, orde, C_MOD, NORM + CAP},
176 {"origin <SECT|COUNTRY|~>", 1, orig, C_MOD, NORM},
177 {"paradrop <cargo-PLANES> <fighter-PLANES> <ap-SECT> <PATH|DESTINATION>",
178 3, para, C_MOD, NORM + MONEY + CAP},
179 {"path <SECT>", 0, path, 0, NORM},
180 {"payoff <SHIPS>", 0, payo, C_MOD, NORM},
181 {"pbmap <SECTS|PLANE> [s|l|n|p|r|t|*|h]", 0, map, C_MOD, NORM},
182 {"pboard <PLANES>", 3, pboa, C_MOD, NORM + MONEY + CAP},
183 {"pdump <PLANES> [<fields>]", 0, pdump, 0, NORM},
184 {"peek <SECTS>", 0, peek, 0, GOD},
185 {"plane <SECTS>", 0, plan, 0, NORM},
186 {"players", 0, play, 0, VIS},
187 {"pmap <SECTS|PLANE> [s|l|n|p|*|h]", 0, map, C_MOD, NORM},
188 {"power [\"new\"|\"update\"] [<NUMBER OF COUNTRIES> | \"country\" <NATS>]",
189 0, powe, C_MOD, VIS},
190 {"pray", 0, tele, C_MOD, NORM},
191 {"production <SECTS>", 0, prod, 0, NORM},
192 {"pstat <PLANES>", 0, pstat, 0, NORM},
193 {"qorder <SHIPS>", 0, qorde, C_MOD, NORM + CAP},
194 {"quit", 0, quit, 0, VIS},
195 {"radar <SHIPS | SECTS>", 1, rada, 0, NORM + CAP},
196 {"range <PLANES> <range>", 1, range, C_MOD, NORM + CAP},
197 {"read [yes|no|<CNUM/CNAME>]", 0, rea, C_MOD, VIS},
198 {"realm <number> [<SECTS>]", 0, real, C_MOD, NORM},
199 {"recon <spy-PLANES> <fighter-PLANES> <ap-SECT> <PATH|DESTINATION>",
200 3, reco, C_MOD, NORM + MONEY + CAP},
201 {"reject <reject|accept> <announcements|mail|treaties|loans> <NAT>",
202 2, reje, C_MOD, NORM},
203 {"relations [as-COUNTRY]", 0, rela, 0, VIS},
204 {"reload", 0, relo, C_MOD, GOD},
205 {"repay <LOAN> <NUM>", 1, repa, C_MOD, NORM + MONEY + CAP},
206 {"report <NATS>", 0, repo, 0, VIS},
207 {"reset <lot #> <0|price>", 1, rese, C_MOD, NORM + CAP},
208 {"resource <SECTS>", 0, reso, 0, NORM},
209 {"retreat <SHIPS|FLEET> <PATH> [i|t|s|h|b|d|u|c]",
210 1, retr, C_MOD, NORM + CAP},
211 {"route <COMM> <SECTS>", 1, rout, 0, NORM},
212 {"sabotage <UNITS>", 1, sabo, C_MOD, NORM + MONEY + CAP},
213 {"sail <SHIPS> <PATH>", 1, sail, C_MOD, NORM + CAP},
214 {"satellite <PLANE> [<se|sh|l> [?cond&cond&...]]",
215 1, sate, 0, NORM + MONEY + CAP},
216 {"sbmap <SECTS|SHIP> [s|l|n|p|r|t|*|h]", 0, map, C_MOD, NORM},
217 {"scrap <s|p|l> <SHIPS|PLANES|UNITS>",
218 2, scra, C_MOD, NORM + MONEY + CAP},
219 {"scuttle <s|p|l> <SHIPS|PLANES|UNITS>", 5, scut, C_MOD, NORM + CAP},
220 {"sdump <SHIPS> [<fields>]", 0, sdump, 0, NORM},
221 {"sect <SECTS>", 0, sct, 0, NORM},
222 {"sell <COMM> <SECTS> <NUM> <NUM>", 1, sell, C_MOD, NORM + CAP},
223 {"set <TYPE> <SHIPS|PLANES|UNITS|NUKES> <PRICE>",
224 1, set, C_MOD, NORM + CAP},
225 {"setresource <type> <SECTS> <NUM>", 0, setres, C_MOD, GOD},
226 {"setsector <type> <SECTS> <NUM>", 0, setsector, C_MOD, GOD},
227 {"sharebmap <CNUM/CNAME> <SECTS> [<des>]", 0, shar, C_MOD, NORM},
228 {"shark <LOAN>", 25, shark, C_MOD, NORM + MONEY + CAP},
229 {"ship <SHIPS>", 0, shi, 0, NORM},
230 {"shoot <c|u> <SECTS> <NUMBER>", 3, shoo, C_MOD, NORM + MONEY + CAP},
231 {"show <TYPE> <\"build\"|\"stats\"|\"cap\"> [<tech>]\n"
232 "\tshow <bridge|item|news|product|tower>\n"
233 "\tshow updates [<NUM>]>",
235 {"shutdown <minutes> <disable update?>", 0, shut, 0, GOD},
236 {"sinfrastructure <SECTS>", 0, sinfra, 0, VIS},
237 {"skywatch <SECTS>", 1, skyw, C_MOD, NORM + CAP},
238 {"smap <SECTS|SHIP> [s|l|n|p|*|h]", 0, map, C_MOD, NORM},
239 {"sonar <SHIPS> <brief?>", 1, sona, C_MOD, NORM + CAP},
240 {"sorder <SHIPS>", 0, sorde, C_MOD, NORM + CAP},
241 {"spy <SECTS>", 1, spy, C_MOD, NORM + CAP},
242 {"sstat <SHIPS>", 0, sstat, 0, NORM},
243 {"start <TYPE> <SECTS|PLANES|SHIPS|UNITS>", 1, start, C_MOD, NORM + CAP},
244 {"starvation [<SECTS>|l <UNITS>|s <SHIPS>]", 0, starve, 0, NORM},
245 {"stop <TYPE> <SECTS|PLANES|SHIPS|UNITS>", 1, stop, C_MOD, NORM + CAP},
246 {"strength <SECTS>", 1, stre, C_MOD, NORM},
247 {"supply <LAND UNITS>", 1, supp, C_MOD, NORM + CAP},
248 {"survey <SELECTOR> <SECTS>", 0, surv, 0, NORM + CAP},
249 {"swapsector <SECT> <SECT>", 0, swaps, C_MOD, GOD},
250 {"sweep <sweep-PLANES> <fighter-PLANES> <ap-SECT> <PATH|DESTINATION>",
251 3, reco, C_MOD, NORM + MONEY + CAP},
252 {"telegram <NATS>...", 0, tele, C_MOD, NORM},
253 {"tend <COMM|\"land\"> <tender-SHIPS> <NUM|UNIT> <dest-SHIPS>",
254 1, tend, C_MOD, NORM + CAP},
255 {"territory <SECTS> <NUMBER> [<FIELD>]", 0, terr, C_MOD, NORM},
256 {"test <COMM> <SECT> <NUM> <PATH|DESTINATION>",
257 1, move, C_MOD, NORM + CAP},
258 {"threshold <COMM> <SECTS> <THRESH>", 1, thre, C_MOD, NORM},
259 {"toggle [inform|flash|beep|coastwatch|sonar|techlists] [on|off]",
260 0, togg, C_MOD, VIS},
261 {"torpedo <submarine-SHIPS> <target-SHIP>",
262 3, torp, C_MOD, NORM + MONEY + CAP},
263 {"trade", 1, trad, C_MOD, NORM + CAP + MONEY},
264 {"transport <\"nuke\"|\"plane\"> <NUKES|PLANES> <PATH|DESTINATION>",
265 1, tran, C_MOD, NORM + CAP},
266 {"treaty <TREATIES>", 0, trea, 0, NORM + MONEY + CAP},
267 {"turn <\"on\"|\"off\"|\"mess\">", 0, turn, C_MOD, GOD},
268 {"unload <COMM|\"land\"|\"plane\"> <SHIPS> <NUM|UNIT|PLANE>",
269 1, load, C_MOD, NORM + CAP},
270 {"unsail <SHIPS>", 1, sail, C_MOD, NORM + CAP},
271 {"update", 0, upda, 0, VIS},
272 {"upgrade <s|p|l> <SHIPS|PLANES|UNITS>",
273 1, upgr, C_MOD, NORM + MONEY + CAP},
274 {"version", 0, vers, 0, VIS},
275 {"wall [<message>]", 0, wall, C_MOD, NORM},
276 {"wingadd <WING> <PLANES>", 1, wing, C_MOD, NORM},
277 {"wipe <SECTS>", 1, wipe, C_MOD, NORM},
278 {"wire [yes|no|<days>]", 0, rea, C_MOD, VIS},
279 {"work <LAND UNITS> <AMOUNT>", 1, work, C_MOD, NORM + MONEY + CAP},
280 {"xdump [\"meta\"] <TYPE> [<RECORDS>]", 0, xdump, 0, VIS},
281 {"zdone <y|n|c>", 0, zdon, C_MOD, NORM},