2 * Empire - A multi-player, client/server Internet based war game.
3 * Copyright (C) 1986-2000, 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 the "LEGAL", "LICENSE", "CREDITS" and "README" files for all the
23 * related information and legal notices. It is expected that any future
24 * projects/authors will amend these files as needed.
28 * ldump.c: Dump land unit information
30 * Known contributors to this file:
56 s_char *mission_short_name();
61 if (!snxtitem(&ni, EF_LAND, player->argp[1]))
66 if (!player->argp[2]) {
67 for (n = 1; n <= 39; n++) field[n-1] = n;
72 while (player->argp[n]) {
73 if (!strcmp("type",player->argp[n])) {
75 } else if (!strcmp("x",player->argp[n])) {
77 } else if (!strcmp("y",player->argp[n])) {
79 } else if (!strcmp("army",player->argp[n])) {
81 } else if (!strcmp("eff",player->argp[n])) {
83 } else if (!strcmp("mil",player->argp[n])) {
85 } else if (!strcmp("fort",player->argp[n])) {
87 } else if (!strcmp("mob",player->argp[n])) {
89 } else if (!strcmp("food",player->argp[n])) {
91 } else if (!strcmp("fuel",player->argp[n])) {
93 } else if (!strcmp("tech",player->argp[n])) {
95 } else if (!strcmp("retr",player->argp[n])) {
97 } else if (!strcmp("react",player->argp[n])) {
99 } else if (!strcmp("xl",player->argp[n])) {
101 } else if (!strcmp("nland",player->argp[n])) {
103 } else if (!strcmp("land",player->argp[n])) {
105 } else if (!strcmp("ship",player->argp[n])) {
107 } else if (!strcmp("shell",player->argp[n])) {
109 } else if (!strcmp("gun",player->argp[n])) {
111 } else if (!strcmp("petrol",player->argp[n])) {
113 } else if (!strcmp("iron",player->argp[n])) {
115 } else if (!strcmp("dust",player->argp[n])) {
117 } else if (!strcmp("bar",player->argp[n])) {
119 } else if (!strcmp("oil",player->argp[n])) {
121 } else if (!strcmp("lcm",player->argp[n])) {
123 } else if (!strcmp("hcm",player->argp[n])) {
125 } else if (!strcmp("rad",player->argp[n])) {
127 } else if (!strcmp("att",player->argp[n])) {
129 } else if (!strcmp("def",player->argp[n])) {
131 } else if (!strcmp("vul",player->argp[n])) {
133 } else if (!strcmp("spd",player->argp[n])) {
135 } else if (!strcmp("vis",player->argp[n])) {
137 } else if (!strcmp("spy",player->argp[n])) {
139 } else if (!strcmp("radius",player->argp[n])) {
141 } else if (!strcmp("frg",player->argp[n])) {
143 } else if (!strcmp("acc",player->argp[n])) {
145 } else if (!strcmp("dam",player->argp[n])) {
147 } else if (!strcmp("amm",player->argp[n])) {
149 } else if (!strcmp("aaf",player->argp[n])) {
152 pr("Unrecognized field %s\n",player->argp[n]);
155 pr("Too many fields\n");
165 pr("DUMP LAND UNITS %d\n", now);
172 case 1: pr(" type"); break;
173 case 2: pr(" x"); break;
174 case 3: pr(" y"); break;
175 case 4: pr(" army"); break;
176 case 5: pr(" eff"); break;
177 case 6: pr(" mil"); break;
178 case 7: pr(" fort"); break;
179 case 8: pr(" mob"); break;
180 case 9: pr(" food"); break;
181 case 10: pr(" fuel"); break;
182 case 11: pr(" tech"); break;
183 case 12: pr(" retr"); break;
184 case 13: pr(" react"); break;
185 case 14: pr(" xl"); break;
186 case 15: pr(" nland"); break;
187 case 16: pr(" land"); break;
188 case 17: pr(" ship"); break;
189 case 18: pr(" shell"); break;
190 case 19: pr(" gun"); break;
191 case 20: pr(" petrol"); break;
192 case 21: pr(" iron"); break;
193 case 22: pr(" dust"); break;
194 case 23: pr(" bar"); break;
195 case 24: pr(" oil"); break;
196 case 25: pr(" lcm"); break;
197 case 26: pr(" hcm"); break;
198 case 27: pr(" rad"); break;
199 case 28: pr(" att"); break;
200 case 29: pr(" def"); break;
201 case 30: pr(" vul"); break;
202 case 31: pr(" spd"); break;
203 case 32: pr(" vis"); break;
204 case 33: pr(" spy"); break;
205 case 34: pr(" radius"); break;
206 case 35: pr(" frg"); break;
207 case 36: pr(" acc"); break;
208 case 37: pr(" dam"); break;
209 case 38: pr(" amm"); break;
210 case 39: pr(" aaf"); break;
216 np = getnatp(player->cnum);
217 while (nxtitem(&ni, (s_char *)&land)) {
218 if (land.lnd_own == 0)
220 if (!player->owner && !player->god)
222 if (land.lnd_type < 0 || land.lnd_type > lnd_maxno) {
223 pr("bad unit type %d (#%d)\n",
224 land.lnd_type, ni.cur);
227 count_land_planes(&land);
228 lnd_count_units(&land);
232 pr("%3d ", land.lnd_own);
235 getvec(VT_ITEM, vec, (s_char *)&land, EF_LAND);
237 switch (field[n++]) {
238 case 1: pr(" %0.4s",lchr[(int)land.lnd_type].l_name); break;
239 case 2: pr(" %d", xrel(np, land.lnd_x)); break;
240 case 3: pr(" %d", yrel(np, land.lnd_y)); break;
241 case 4: if (land.lnd_army == ' ')
244 pr(" %c", land.lnd_army);
246 case 5: pr(" %d", land.lnd_effic); break;
247 case 6: pr(" %d", lnd_getmil(&land)); break;
248 case 7: pr(" %d", land.lnd_harden); break;
249 case 8: pr(" %d", land.lnd_mobil); break;
250 case 9: pr(" %d", vec[I_FOOD]); break;
251 case 10: if (opt_FUEL)
252 pr(" %d",land.lnd_fuel);
256 case 11: pr(" %d", land.lnd_tech); break;
257 case 12: pr(" %d", land.lnd_retreat); break;
258 case 13: pr(" %d", land.lnd_rad_max); break;
259 case 14: pr(" %d", land.lnd_nxlight); break;
260 case 15: pr(" %d", land.lnd_nland); break;
261 case 16: pr(" %d", land.lnd_land); break;
262 case 17: pr(" %d", land.lnd_ship); break;
263 case 18: pr(" %d", vec[I_SHELL]); break;
264 case 19: pr(" %d", vec[I_GUN]); break;
265 case 20: pr(" %d", vec[I_PETROL]); break;
266 case 21: pr(" %d", vec[I_IRON]); break;
267 case 22: pr(" %d", vec[I_DUST]); break;
268 case 23: pr(" %d", vec[I_BAR]); break;
269 case 24: pr(" %d", vec[I_OIL]); break;
270 case 25: pr(" %d", vec[I_LCM]); break;
271 case 26: pr(" %d", vec[I_HCM]); break;
272 case 27: pr(" %d", vec[I_RAD]); break;
273 case 28: pr(" %1.2f", (float)land.lnd_att); break;
274 case 29: pr(" %1.2f", (float)land.lnd_def); break;
275 case 30: pr(" %d", land.lnd_vul); break;
276 case 31: pr(" %d", land.lnd_spd); break;
277 case 32: pr(" %d", land.lnd_vis); break;
278 case 33: pr(" %d", land.lnd_spy); break;
279 case 34: pr(" %d", land.lnd_rad); break;
280 case 35: pr(" %d", land.lnd_frg); break;
281 case 36: pr(" %d", land.lnd_acc); break;
282 case 37: pr(" %d", land.lnd_dam); break;
283 case 38: pr(" %d", land.lnd_ammo); break;
284 case 39: pr(" %d", land.lnd_aaf); break;
291 pr("%s: No unit(s)\n", player->argp[1]);
293 pr("%s: No unit(s)\n", "");
296 pr("%d unit%s\n", nunits, splur(nunits));