]> git.pond.sub.org Git - empserver/blob - src/lib/global/plane.c
COPYING duplicates information from README. Remove. Move GPL from
[empserver] / src / lib / global / plane.c
1 /*
2  *  Empire - A multi-player, client/server Internet based war game.
3  *  Copyright (C) 1986-2006, Dave Pare, Jeff Bailey, Thomas Ruschak,
4  *                           Ken Stevens, Steve McClure
5  *
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.
10  *
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.
15  *
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
19  *
20  *  ---
21  *
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.
25  *
26  *  ---
27  *
28  *  plane.c: Plane characteristics
29  * 
30  *  Known contributors to this file:
31  *     Dave Pare, 1986
32  *     Jeff Bailey
33  *     Thomas Ruschak, 1992
34  *     Ken Stevens, 1995
35  *     Steve McClure, 1998
36  */
37
38 /*
39  * plane characteristics
40  * flags indicate capabilities of craft...
41  * P_T: tactical, P_F: fighter/interceptor, P_B: bomber,
42  * P_C: cargo, P_G: glider, P_V: vtol, P_M: (one-shot) missile
43  * P_L: light, can land on carriers.
44  * P_O: orbits (sat's & anti-sats), P_N: nuke killer (SDI)
45  * P_X: stealthy
46  * P_E: Extra light
47  * P_K: Chopper
48  * P_P: Can paratroop
49  * P_A: ASW plane, can find subs when reconning, can bomb subs
50  * P_R: recon plane, gets some info
51  * P_I: Image capability (advanced spying)
52  * 
53  * Note if a plane is P_M (a missile) then it will automatically be made
54  * P_V (vtol) in init_global()
55  */
56
57 #include <config.h>
58
59 #include "misc.h"
60 #include "plane.h"
61
62 struct plchrstr plchr[] = {
63
64 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
65     {
66      "f1   Sopwith Camel",
67      8, 2, 400, 50, 90, 1, 1, 1, 4, 1, 1,
68      0,
69      P_V | P_T | P_F},
70
71 /* name        lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
72     {
73      "f2   P-51 Mustang",
74      8, 2, 400, 80, 80, 1, 4, 4, 8, 1, 1,
75      0,
76      P_L | P_T | P_F},
77
78 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
79     {
80      "jf1  F-4 Phantom",
81      12, 4, 1000, 125, 45, 1, 14, 14, 11, 2, 3,
82      0,
83      P_T | P_F | P_L},
84
85
86 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
87     {
88      "jf2  AV-8B Harrier",
89      12, 4, 1400, 195, 30, 1, 17, 17, 14, 2, 3,
90      0,
91      P_T | P_F | P_L | P_V},
92
93 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
94     {
95      "sf   F-117A Nighthawk",
96      15, 5, 3000, 325, 45, 3, 19, 19, 20, 2, 4,
97      80,
98      P_T | P_F | P_L},
99
100 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
101     {
102      "es   P-38 Lightning",
103      9, 3, 700, 90, 60, 1, 5, 5, 15, 1, 2,
104      0,
105      P_ESC | P_T},
106
107 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
108     {
109      "jes  F-14E jet escort",
110      14, 8, 1400, 160, 60, 1, 10, 10, 25, 2, 3,
111      0,
112      P_ESC | P_T},
113
114 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
115     {
116      "lb   TBD-1 Devastator",
117      10, 3, 550, 60, 50, 2, 0, 3, 7, 1, 1,
118      0,
119      P_L | P_V | P_T | P_B},
120
121 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
122     {
123      "jl   A-6 Intruder",
124      14, 4, 1000, 130, 25, 3, 0, 9, 11, 2, 3,
125      0,
126      P_T | P_B | P_L},
127
128 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
129     {
130      "mb   medium bomber",
131      14, 5, 1000, 80, 45, 4, 0, 5, 14, 3, 3,
132      0,
133      P_T | P_B},
134
135 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
136     {
137      "jfb  FB-111 Aardvark f/b",
138      20, 10, 1800, 140, 30, 7, 8, 8, 20, 5, 5,
139      0,
140      P_T | P_B},
141     {
142      "hb   B-26B Marauder",
143      20, 6, 1100, 90, 90, 5, 0, 4, 15, 2, 2,
144      0,
145      P_B},
146
147 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
148     {
149      "jhb  B-52 Strato-Fortress",
150      26, 13, 3200, 150, 80, 12, 0, 11, 35, 5, 6,
151      0,
152      P_B},
153
154 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
155     {
156      "sb   B-2 stealth bomber",
157      15, 5, 4000, 325, 25, 8, 0, 15, 28, 2, 5,
158      80,
159      P_T | P_B},
160
161
162 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
163     {
164      "as   anti-sub plane",
165      10, 3, 550, 100, 85, 2, 0, 3, 15, 2, 2,
166      0,
167      P_SWEEP | P_MINE | P_T | P_A},
168
169 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
170     {
171      "np   naval plane",
172      20, 10, 1800, 135, 70, 3, 0, 4, 28, 4, 2,
173      0,
174      P_SWEEP | P_MINE | P_C | P_T | P_A | P_L},
175
176 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
177     {
178      "nc   AH-1 Cobra",
179      8, 2, 800, 160, 55, 2, 0, 3, 11, 2, 2,
180      0,
181      P_V | P_SWEEP | P_T | P_A | P_K},
182
183 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
184     {
185      "ac   AH-64 Apache",
186      8, 2, 800, 200, 15, 1, 0, 9, 11, 2, 2,
187      40,
188      P_V | P_T | P_K},
189
190 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
191     {
192      "tc   transport chopper",
193      8, 2, 800, 135, 0, 5, 0, 3, 7, 2, 2,
194      40,
195      P_V | P_C | P_P | P_L | P_K},
196
197 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
198     {
199      "tr   C-56 Lodestar",
200      14, 5, 1000, 85, 0, 7, 0, 2, 15, 3, 3,
201      0,
202      P_C | P_P},
203
204 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
205     {
206      "jt   C-141 Starlifter",
207      18, 5, 1500, 160, 0, 16, 0, 9, 35, 3, 4,
208      0,
209      P_C | P_P},
210
211 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
212     {
213      "zep  Zeppelin",
214      6, 2, 1000, 70, 60, 2, 0, -3, 15, 3, 2,
215      0,
216      P_S | P_V | P_T | P_C},
217 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
218     {
219      "re   recon",
220      12, 4, 800, 130, 0, 0, 0, 4, 15, 2, 2,
221      20,
222      P_S},
223
224 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
225     {
226      "sp   E2-C Hawkeye",
227      15, 5, 2000, 190, 0, 0, 0, 11, 32, 2, 5,
228      50,
229      P_S},
230
231 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
232     {
233      "lst  landsat",
234      20, 20, 2000, 245, 0, 0, 0, 3, 41, 0, 9,
235      0,
236      P_O},
237
238 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
239     {
240      "ss   KH-7 spysat",
241      20, 20, 4000, 305, 0, 0, 0, 3, 61, 0, 9,
242      0,
243      P_I | P_O | P_S},
244
245 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
246     {
247      "mi   Harpoon",
248      8, 2, 300, 160, 50, 6, 0, 5, 6, 0, 0,
249      0,
250      P_L | P_T | P_M | P_MAR},
251 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
252     {
253      "sam  Sea Sparrow",
254      3, 1, 200, 180, 0, 0, 0, 18, 2, 0, 0,
255      0,
256      P_L | P_F | P_E | P_M},
257
258 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
259     {
260      "ssm  V2",
261      15, 15, 800, 145, 60, 3, 0, 3, 4, 0, 0,
262      0,
263      P_T | P_M},
264
265 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
266     {
267      "srbm Atlas",
268      20, 20, 1000, 200, 60, 6, 0, 5, 9, 0, 0,
269      0,
270      P_T | P_M},
271
272 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
273     {
274      "irbm Titan",
275      20, 20, 1500, 260, 60, 8, 0, 10, 15, 0, 0,
276      0,
277      P_T | P_M},
278
279 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
280     {
281      "icbm Minuteman",
282      20, 20, 3000, 310, 60, 10, 0, 15, 41, 0, 0,
283      0,
284      P_T | P_M},
285 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
286     {
287      "slbm Trident",
288      20, 20, 2000, 280, 60, 8, 0, 6, 23, 0, 0,
289      0,
290      P_T | P_L | P_M},
291
292 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
293     {
294      "asat anti-sat",
295      20, 20, 2000, 305, 50, 6, 0, 7, 13, 0, 4,
296      0,
297      P_O | P_M},
298
299 /* name          lcm hcm   $$$  tch acc ld  at/df  ran mil gas stlth  flags */
300     {
301      "abm  Patriot",
302      16, 8, 1500, 270, 50, 0, 0, 31, 12, 0, 0,
303      0,
304      P_N | P_M},
305     {
306      NULL,
307      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
308      0,
309      0}
310 };