Wing Commander
Reconstructed Win32 source (1996)
Loading...
Searching...
No Matches
game.c
Go to the documentation of this file.
1/**
2 * @file
3 * @ingroup data
4 * @brief Shared game state, mission and manoeuvre tables, and the information
5 * display.
6 *
7 * Address range 433910-433abf. The data ownership follows the
8 * declarations-before-literals layout. The original source name is unknown.
9 */
10#include "wc1.h"
11
12/* 0x0046c000 */
13signed char cViewObject = -1;
14
15/* 0x0046c004 */
16short nEyePitchRate = 1;
17
18/* 0x0046c008 */
19short nEyeYawRate = 1;
20
21/* 0x0046c00c */
22short nEyeRollRate = 1;
23
24/* 0x0046c010 */
25short nFreeShipSlot = -1; /* 0x0046c010 */
26
27/* 0x0046c014 */
28signed char bCurrentKey = (signed char)0x80;
29
30/* 0x0046c018 */
31volatile signed char cPreviousKey = (signed char)0x80;
32
33/* 0x0046c01c */
34short nCurrentWave = -1;
35
36/* 0x0046c020 */
37signed char cCurrentObjective = -1;
38
39/* 0x0046c024 */
41
42/* 0x0046c028 */
43signed char abHazardObjects[0x14] = {
44 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
45 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
46};
47
48/* 0x0046c03c */
50
51/* 0x0046c040 */
53
54/* 0x0046c044 */
56
57/* 0x0046c048 */
59
60/* 0x0046c04c */
61short nYourWingman = -1;
62
63/* 0x0046c050 */
65
66/* 0x0046c054 */
68
69/* 0x0046c058 */
71
72/* 0x0046c05c */
73short DAT_0046c05c = 0;
74
75/* 0x0046c060 */
77
78/* 0x0046c064 */
80
81/* 0x0046c068 */
83
84/* 0x0046c06c */
85signed char cTargetDisplayObject = -1;
86
87/* Nothing in the shipped executable references this zero word. */
88/* 0x0046c070 */
89static int DAT_0046c070 = 0;
90
91/* 0x0046c074 */
93
94/* 0x0046c078 */
96
97/* 0x0046c07c */
99
100/* 0x0046c080 */
102
103/* 0x0046c084 */
105
106/* 0x0046c088 */
107signed char cViableTargetCount = 0;
108
109/* 0x0046c090 */
111 0, -1000, 0, -4263, 2, 15, 1, 0, 30, 0,
112 3, 15, 4, 30, 1, 13, 14, 400, -1, 0
113};
114
115/* 0x0046c0b8 */
116static short asCannedSequence32[16] = {
117 0, 20, 1, 0, 0, 180, 40, 1, 0, 0, 180, 40,
118 2, 0, 400, -1
119};
120
121/* 0x0046c0d8 */
122static short asCannedSequence33[12] = {
123 0, 20, 0, 20, 1, 0, -15, -60, 50, 0, 400, -1
124};
125
126/* 0x0046c0f0 */
127static short asCannedSequence34[12] = {
128 0, 20, 0, 20, 1, 0, 15, 60, 50, 0, 400, -1
129};
130
131/* 0x0046c108 */
132static short asCannedSequence35[42] = {
133 0, 17, 0, 6, 3, 0, 6, 3, 0, 6, 3, 0, 6, 3,
134 0, 6, 3, 0, 6, 3, 0, 6, 3,
135 1, 0, 0, 180, 40, 1, 0, 0, 180, 40,
136 1, 0, -30, 60, 40, 0, 400, -1
137};
138
139/* 0x0046c160 */
141 16, 38, 0, 1200, 0, 1600, 1, 180,
142 0, 0, 15, 3, 4, 14, 100, 2,
143 15, 3, 15, 14, 120, -1, 0, 0
144};
145
146/* 0x0046c190 */
147static short asCannedSequence37[13] = {
148 0, 100, 1, 0, 30, 0, 50, 0, 20, 2, 0, 400, -1
149};
150
151/* 0x0046c1b0 */
152static short asCannedSequence38[13] = {
153 0, 110, 1, 0, 30, 0, 50, 0, 10, 2, 0, 400, -1
154};
155
156/* 0x0046c1d0 */
157static short asCannedSequence39[6] = {
158 0, 10, 2, 0, 400, -1
159};
160
161/* 0x0046c1e0 */
162static short asCannedSequence40[39] = {
163 0, 40,
164 3, 1, 0, 0, 90, 60, 3, 1, 0, 0, 90, 60,
165 3, 1, 0, 0, 90, 60, 3, 1, 0, 0, 90, 60,
166 3, 1, 0, 0, 90, 60, 3, 1, 0, 0, 90, 60, -1
167};
168
169/* 0x0046c230 */
170static short asCannedSequence41[3] = { 0, 400, -1 };
171
172/* 0x0046c238 */
174 0, 0, 0, 0, 2, 15, 3, 15, 14, 400, -1, 0
175};
176
177/* 0x0046c250 */
178static short asCannedSequence42[15] = {
179 0, 120, 1, 0, 0, 180, 50, 3, 1, 0, 0, 180, 50, 3, -1
180};
181
182/* 0x0046c270 */
183static short asCannedSequence43[21] = {
184 0, 120, 1, 0, 0, 180, 50, 3, 1, 0, 0, 180, 50,
185 3, 1, 0, 0, 180, 50, 3, -1
186};
187
188/* 0x0046c2a0 */
189static short asCannedSequence44[33] = {
190 0, 5, 3, 0, 5, 3, 0, 5, 3, 0, 5, 3,
191 1, 0, 0, 180, 50, 1, 0, 0, 180, 50,
192 1, 0, 0, 180, 50, 1, 0, 0, 180, 50, -1
193};
194
195/* 0x0046c2e8 */
196static short asCannedSequence45[4] = { 0, 20, 2, -1 };
197
198/* 0x0046c2f0 */
200 { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 },
201 { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 },
202 {
203 "", 1, { 0, 0, 0 }, 50000,
204 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } },
206 { 32, 33, 34, 35, -1, -1, -1, -1, -1, -1 }
207 },
208 {
209 "", 1, { 0, 0, 0 }, 50000,
210 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } },
212 { 36, -1, -1, -1, -1, -1, -1, -1, -1, -1 }
213 },
214 {
215 "", 1, { 0, 0, 0 }, 50000,
216 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } },
218 { 37, 38, 39, 40, 41, -1, -1, -1, -1, -1 }
219 },
220 {
221 "", 1, { 0, 0, 0 }, 50000,
222 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } },
224 { 42, 43, 44, 45, -1, -1, -1, -1, -1, -1 }
225 }
226};
227
228/* 0x0046c948 */
231 { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 },
232 { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 },
233 { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 },
234 { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 },
237 16, { 0, 0, 0 }, -155, 0, 0, 0, 40, 3,
238 { asCannedSequence32 }, 0, 0, 0, -1, 0, 0 },
241 16, { -154521, -25600, -232012 }, -155, 0, 0, 0, 40, 3,
242 { asCannedSequence33 }, 0, 0, 0, -1, 0, 0 },
245 16, { -61849, 25600, -232012 }, -155, 0, 0, 0, 40, 3,
246 { asCannedSequence34 }, 0, 0, 0, -1, 0, 0 },
249 16, { 324582, 0, 696038 }, -155, 0, 0, 0, 40, 3,
250 { asCannedSequence35 }, 0, 0, 0, -1, 0, 0 },
252 MISSION_TYPE_CANNED_SEQUENCE, 17, { 0, 0, 0 }, 0, 0, 0, 0,
253 30000, 3, { 0 }, 0, 0, 0, -1, 0, 0 },
256 18, { 102400, -153600, -332800 }, 0, 0, -30, 0, 80, 3,
257 { asCannedSequence37 }, 0, 0, 0, -1, 0, 0 },
260 18, { 0, 256000, -332800 }, 0, 0, 90, 0, 62, 3,
261 { asCannedSequence38 }, 0, 0, 0, -1, 0, 0 },
264 18, { 0, 256000, -153600 }, 0, 0, -30, 0, 80, 3,
265 { asCannedSequence39 }, 0, 0, 0, -1, 0, 0 },
268 18, { 0, 256000, -819200 }, 0, 0, 30, 0, 60, 3,
269 { asCannedSequence40 }, 0, 0, 0, -1, 0, 0 },
272 18, { 102400, -153600, -819200 }, 0, 0, 0, 0, 80, 3,
273 { asCannedSequence41 }, 0, 0, 0, -1, 0, 0 },
276 19, { -51200, 76800, -1382400 }, 0, 0, 0, 0, 50, 3,
277 { asCannedSequence42 }, 0, 0, 0, -1, 0, 0 },
280 19, { 153600, 0, -1280000 }, 0, 0, 60, 0, 50, 3,
281 { asCannedSequence43 }, 0, 0, 0, -1, 0, 0 },
284 19, { -249856, 0, 1139200 }, 155, 0, 0, 0, 50, 3,
285 { asCannedSequence44 }, 0, 0, 0, -1, 0, 0 },
287 MISSION_TYPE_CANNED_SEQUENCE, 19, { -76800, 0, 768000 },
288 155, 0, 0, 0, 50, 3, { asCannedSequence45 },
289 0, 0, 0, -1, 0, 0 }
290};
291
292/* 0x0046d368 */
294
295/* 0x0046d390 */
296static signed char aDefenseManeuversNovice[8] = {
297 24, 34, 13, 14, -1, 0, 0, 0
298};
299
300/* 0x0046d398 */
301static signed char aDefenseManeuversVeteran[8] = {
302 8, 13, 15, 14, 19, 24, -1, 0
303};
304
305/* 0x0046d3a0 */
306static signed char aDefenseManeuversElite[16] = {
307 8, 15, 17, 23, 19, 9, 20, 34, 14, -1, 0, 0, 0, 0, 0, 0
308};
309
310/* 0x0046d3b0 */
311static signed char aDefenseManeuversAce[16] = {
312 17, 23, 15, 19, 9, 14, 20, 12, -1, 0, 0, 0, 0, 0, 0, 0
313};
314
315/* 0x0046d3c0 */
316static signed char aDefenseManeuversBoss[16] = {
317 15, 19, 12, 11, 17, 23, 7, 35, -1, 0, 0, 0, 0, 0, 0, 0
318};
319
320/* 0x0046d3d0 */
328
329/* 0x0046d3e8 */
331 {
332 { { 70, 40, 30 }, { 80, 40, 30 }, { 100, 21, -1 } },
333 { { 80, 29, 37 }, { 80, 29, 37 }, { 100, 21, -1 } },
334 { { 100, 39, -1 }, { 100, 39, -1 }, { 100, 21, -1 } },
335 { { 50, 7, 8 }, { 75, 14, 17 }, { 100, 21, -1 } },
336 { { 80, 41, 29 }, { 80, 41, 24 }, { 100, 21, -1 } },
337 { { 60, 26, 29 }, { 70, 26, 29 }, { 90, 26, 29 } },
338 { { 50, 16, 12 }, { 50, 13, 20 }, { 100, 21, -1 } },
339 { { 100, 19, -1 }, { 50, 9, 20 }, { 100, 21, -1 } },
340 { { 100, 2, -1 }, { 100, 2, -1 }, { 100, 2, -1 } }
341 },
342 {
343 { { 40, 40, 30 }, { 80, 40, 30 }, { 100, 21, -1 } },
344 { { 80, 29, 37 }, { 50, 31, 40 }, { 100, 21, -1 } },
345 { { 100, 39, -1 }, { 100, 39, -1 }, { 100, 21, -1 } },
346 { { 55, 12, 19 }, { 70, 11, 12 }, { 100, 21, -1 } },
347 { { 60, 29, 41 }, { 80, 29, 41 }, { 100, 33, -1 } },
348 { { 80, 26, 29 }, { 50, 26, 29 }, { 100, 29, -1 } },
349 { { 50, 15, 16 }, { 50, 16, 32 }, { 100, 21, -1 } },
350 { { 50, 7, 10 }, { 50, 14, 9 }, { 100, 21, -1 } },
351 { { 50, 25, 2 }, { 50, 25, 2 }, { 100, 2, -1 } }
352 },
353 {
354 { { 40, 40, 30 }, { 60, 40, 30 }, { 100, 21, -1 } },
355 { { 80, 29, 37 }, { 50, 29, 40 }, { 100, 21, -1 } },
356 { { 100, 39, -1 }, { 100, 39, -1 }, { 100, 21, -1 } },
357 { { 60, 15, 17 }, { 50, 12, 17 }, { 100, 21, -1 } },
358 { { 20, 41, 30 }, { 30, 41, 17 }, { 40, 41, 21 } },
359 { { 100, 26, -1 }, { 100, 26, -1 }, { 100, 26, -1 } },
360 { { 40, 32, 17 }, { 20, 32, 16 }, { 100, 21, -1 } },
361 { { 50, 17, 20 }, { 50, 23, 36 }, { 100, 20, -1 } },
362 { { 100, 2, -1 }, { 100, 2, -1 }, { 100, 21, -1 } }
363 },
364 {
365 { { 50, 40, 30 }, { 90, 40, 30 }, { 100, 21, -1 } },
366 { { 80, 29, 37 }, { 80, 30, 37 }, { 100, 21, -1 } },
367 { { 100, 39, -1 }, { 100, 44, -1 }, { 100, 44, -1 } },
368 { { 70, 7, 16 }, { 100, 44, -1 }, { 100, 44, -1 } },
369 { { 20, 31, 41 }, { 100, 44, -1 }, { 100, 44, -1 } },
370 { { 80, 26, 31 }, { 100, 44, -1 }, { 100, 44, -1 } },
371 { { 75, 16, 15 }, { 75, 16, 15 }, { 100, 44, -1 } },
372 { { 50, 12, 16 }, { 100, 44, -1 }, { 100, 44, -1 } },
373 { { 100, 2, -1 }, { 100, 2, -1 }, { 100, 2, -1 } }
374 },
375 {
376 { { 60, 40, 30 }, { 100, 40, -1 }, { 100, 21, -1 } },
377 { { 80, 29, 37 }, { 50, 29, 40 }, { 100, 21, -1 } },
378 { { 100, 39, -1 }, { 100, 39, -1 }, { 100, 39, -1 } },
379 { { 50, 15, 16 }, { 60, 15, 7 }, { 70, 20, 16 } },
380 { { 70, 41, 17 }, { 80, 41, 20 }, { 100, 20, -1 } },
381 { { 100, 26, -1 }, { 100, 26, -1 }, { 100, 26, -1 } },
382 { { 50, 16, 13 }, { 50, 16, 20 }, { 100, 21, -1 } },
383 { { 50, 20, 36 }, { 50, 11, 10 }, { 100, 20, -1 } },
384 { { 25, 25, 2 }, { 100, 2, -1 }, { 100, 2, -1 } }
385 },
386 {
387 { { 40, 40, 30 }, { 80, 40, 30 }, { 100, 21, -1 } },
388 { { 80, 29, 37 }, { 20, 29, 40 }, { 100, 21, -1 } },
389 { { 100, 39, -1 }, { 100, 39, -1 }, { 100, 39, -1 } },
390 { { 50, 7, 8 }, { 50, 9, 24 }, { 100, 12, -1 } },
391 { { 80, 41, 29 }, { 80, 41, 20 }, { 100, 41, -1 } },
392 { { 100, 26, -1 }, { 100, 26, -1 }, { 100, 26, -1 } },
393 { { 20, 32, 16 }, { 50, 16, 20 }, { 100, 21, -1 } },
394 { { 50, 19, 14 }, { 50, 14, 12 }, { 100, 8, -1 } },
395 { { 50, 17, 23 }, { 50, 17, 23 }, { 30, 25, 2 } }
396 },
397 {
398 { { 50, 30, 31 }, { 60, 40, 31 }, { 100, 39, -1 } },
399 { { 80, 29, 37 }, { 80, 29, 37 }, { 100, 21, -1 } },
400 { { 100, 39, -1 }, { 100, 39, -1 }, { 100, 39, -1 } },
401 { { 50, 9, 10 }, { 60, 7, 11 }, { 100, 20, -1 } },
402 { { 50, 31, 41 }, { 80, 31, 23 }, { 100, 33, -1 } },
403 { { 80, 26, 29 }, { 70, 26, 29 }, { 100, 26, -1 } },
404 { { 50, 32, 16 }, { 50, 20, 16 }, { 100, 21, -1 } },
405 { { 50, 36, 12 }, { 50, 20, 8 }, { 50, 19, 20 } },
406 { { 80, 25, 2 }, { 50, 25, 17 }, { 100, 2, -1 } }
407 },
408 {
409 { { 50, 40, 30 }, { 80, 40, 30 }, { 100, 21, -1 } },
410 { { 80, 29, 37 }, { 50, 29, 40 }, { 100, 21, -1 } },
411 { { 100, 39, -1 }, { 100, 39, -1 }, { 100, 21, -1 } },
412 { { 60, 15, 8 }, { 70, 19, 14 }, { 100, 21, -1 } },
413 { { 70, 29, 20 }, { 50, 29, 20 }, { 100, 41, -1 } },
414 { { 100, 26, -1 }, { 100, 26, -1 }, { 100, 26, -1 } },
415 { { 50, 16, 19 }, { 50, 16, 8 }, { 100, 21, -1 } },
416 { { 50, 36, 12 }, { 50, 19, 20 }, { 100, 21, -1 } },
417 { { 100, 2, -1 }, { 100, 2, -1 }, { 100, 2, -1 } }
418 },
419 {
420 { { 100, -1, -1 }, { 100, -1, -1 }, { 100, -1, -1 } },
421 { { 100, -1, -1 }, { 100, -1, -1 }, { 100, -1, -1 } },
422 { { 100, -1, -1 }, { 100, -1, -1 }, { 100, -1, -1 } },
423 { { 100, -1, -1 }, { 100, -1, -1 }, { 100, -1, -1 } },
424 { { 100, -1, -1 }, { 100, -1, -1 }, { 100, -1, -1 } },
425 { { 100, -1, -1 }, { 100, -1, -1 }, { 100, -1, -1 } },
426 { { 100, -1, -1 }, { 100, -1, -1 }, { 100, -1, -1 } },
427 { { 0, -1, -1 }, { 0, -1, -1 }, { 0, -1, -1 } },
428 { { 0, -1, -1 }, { 0, -1, -1 }, { 0, -1, -1 } }
429 },
430 {
431 { { 60, 40, 29 }, { 60, 40, 29 }, { 100, 21, -1 } },
432 { { 80, 29, 37 }, { 50, 29, 40 }, { 100, 21, -1 } },
433 { { 100, 39, -1 }, { 100, 39, -1 }, { 100, 21, -1 } },
434 { { 50, 16, 38 }, { 75, 7, 20 }, { 100, 21, -1 } },
435 { { 60, 41, 31 }, { 60, 41, 31 }, { 100, 21, -1 } },
436 { { 100, 26, -1 }, { 100, 26, -1 }, { 100, 26, -1 } },
437 { { 50, 32, 20 }, { 50, 32, 20 }, { 100, 21, -1 } },
438 { { 50, 19, 20 }, { 50, 9, 20 }, { 100, 21, -1 } },
439 { { 100, 25, -1 }, { 100, 2, -1 }, { 100, 2, -1 } }
440 },
441 {
442 { { 50, 40, 31 }, { 70, 40, 31 }, { 100, 21, -1 } },
443 { { 80, 29, 37 }, { 50, 29, 40 }, { 100, 21, -1 } },
444 { { 100, 39, -1 }, { 100, 39, -1 }, { 100, 21, -1 } },
445 { { 97, 12, 22 }, { 95, 20, 22 }, { 100, 21, -1 } },
446 { { 40, 41, 31 }, { 20, 41, 31 }, { 100, 21, -1 } },
447 { { 50, 26, 31 }, { 100, 31, -1 }, { 100, 26, -1 } },
448 { { 50, 16, 20 }, { 50, 19, 20 }, { 100, 21, -1 } },
449 { { 100, 20, 36 }, { 50, 12, 20 }, { 100, 21, -1 } },
450 { { 100, 25, -1 }, { 100, 25, -1 }, { 100, 2, -1 } }
451 },
452 {
453 { { 70, 40, 30 }, { 70, 16, 30 }, { 100, 21, -1 } },
454 { { 100, 18, -1 }, { 100, 18, -1 }, { 100, 21, -1 } },
455 { { 100, 39, -1 }, { 100, 39, -1 }, { 100, 21, -1 } },
456 { { 50, 23, 20 }, { 75, 12, 17 }, { 100, 21, -1 } },
457 { { 30, 41, 29 }, { 50, 41, 20 }, { 100, 21, -1 } },
458 { { 100, 26, -1 }, { 100, 26, -1 }, { 100, 26, -1 } },
459 { { 20, 32, 20 }, { 50, 16, 20 }, { 100, 21, -1 } },
460 { { 50, 16, 19 }, { 50, 12, 20 }, { 100, 21, -1 } },
461 { { 100, 25, -1 }, { 100, 2, -1 }, { 100, 2, -1 } }
462 },
463 {
464 { { 80, 40, 31 }, { 90, 40, 31 }, { 100, 21, -1 } },
465 { { 100, 18, -1 }, { 100, 18, -1 }, { 100, 21, -1 } },
466 { { 100, 39, -1 }, { 100, 39, -1 }, { 100, 21, -1 } },
467 { { 50, 15, 20 }, { 75, 16, 19 }, { 100, 21, -1 } },
468 { { 50, 41, 31 }, { 50, 41, 31 }, { 100, 21, -1 } },
469 { { 80, 26, 31 }, { 100, 26, -1 }, { 100, 26, -1 } },
470 { { 50, 16, 20 }, { 50, 32, 20 }, { 100, 21, -1 } },
471 { { 70, 19, 17 }, { 50, 11, 20 }, { 100, 21, -1 } },
472 { { 100, 25, -1 }, { 100, 2, -1 }, { 100, 2, -1 } }
473 }
474};
475
476/* 0x0046d808 */
478 {
479 { { 70, 40, 45 }, { 80, 40, 45 }, { 100, 21, -1 } },
480 { { 80, 29, 37 }, { 50, 29, 40 }, { 100, 21, -1 } },
481 { { 100, 39, -1 }, { 100, 39, -1 }, { 100, 21, -1 } },
482 { { 90, 17, 46 }, { 90, 17, 46 }, { 100, 21, -1 } },
483 { { 50, 46, 45 }, { 80, 46, 45 }, { 100, 21, -1 } },
484 { { 100, 45, -1 }, { 100, 45, -1 }, { 100, 45, -1 } },
485 { { 100, 46, -1 }, { 20, 17, 46 }, { 100, 21, -1 } },
486 { { 100, 46, -1 }, { 25, 17, 46 }, { 100, 21, -1 } },
487 { { 100, 2, -1 }, { 100, 2, -1 }, { 100, 2, -1 } }
488 },
489 {
490 { { 40, 40, 45 }, { 70, 40, 45 }, { 100, 21, -1 } },
491 { { 80, 29, 37 }, { 50, 29, 30 }, { 100, 21, -1 } },
492 { { 100, 39, -1 }, { 100, 39, -1 }, { 100, 21, -1 } },
493 { { 50, 8, 46 }, { 50, 14, 46 }, { 100, 21, -1 } },
494 { { 70, 45, 46 }, { 60, 45, 46 }, { 100, 21, -1 } },
495 { { 100, 45, -1 }, { 100, 45, -1 }, { 100, 45, -1 } },
496 { { 100, 46, -1 }, { 100, 46, -1 }, { 100, 21, -1 } },
497 { { 50, 38, 46 }, { 100, 46, -1 }, { 100, 21, -1 } },
498 { { 100, 2, -1 }, { 100, 2, -1 }, { 100, 2, -1 } }
499 },
500 {
501 { { 80, 40, 29 }, { 80, 40, 29 }, { 100, 21, -1 } },
502 { { 80, 29, 37 }, { 50, 29, 40 }, { 100, 21, -1 } },
503 { { 100, 39, -1 }, { 100, 39, -1 }, { 100, 21, -1 } },
504 { { 60, 46, 45 }, { 60, 46, 45 }, { 100, 21, -1 } },
505 { { 30, 41, 45 }, { 30, 41, 45 }, { 100, 21, -1 } },
506 { { 100, 29, -1 }, { 100, 45, -1 }, { 100, 45, -1 } },
507 { { 100, 46, -1 }, { 100, 46, -1 }, { 100, 46, -1 } },
508 { { 50, 29, 46 }, { 100, 46, -1 }, { 100, 21, -1 } },
509 { { 100, 2, -1 }, { 100, 2, -1 }, { 100, 2, -1 } }
510 },
511 {
512 { { 50, 40, 29 }, { 50, 40, 29 }, { 100, 21, -1 } },
513 { { 100, 18, -1 }, { 100, 18, -1 }, { 100, 21, -1 } },
514 { { 100, 39, -1 }, { 100, 39, -1 }, { 100, 39, -1 } },
515 { { 30, 12, 29 }, { 98, 46, 22 }, { 100, 21, -1 } },
516 { { 90, 29, 31 }, { 100, 29, -1 }, { 100, 21, -1 } },
517 { { 100, 45, -1 }, { 100, 45, -1 }, { 100, 45, -1 } },
518 { { 100, 46, -1 }, { 100, 46, -1 }, { 100, 46, -1 } },
519 { { 50, 36, 46 }, { 100, 46, -1 }, { 100, 21, -1 } },
520 { { 100, 2, -1 }, { 100, 2, -1 }, { 100, 2, -1 } }
521 },
522 {
523 { { 40, 40, 29 }, { 40, 40, 29 }, { 100, 21, -1 } },
524 { { 100, 18, -1 }, { 100, 18, -1 }, { 100, 21, -1 } },
525 { { 100, 39, -1 }, { 100, 39, -1 }, { 100, 39, -1 } },
526 { { 90, 46, 36 }, { 90, 46, 12 }, { 100, 21, -1 } },
527 { { 100, 29, -1 }, { 100, 29, -1 }, { 100, 21, -1 } },
528 { { 100, 45, -1 }, { 100, 45, -1 }, { 100, 45, -1 } },
529 { { 100, 46, -1 }, { 100, 46, -1 }, { 100, 21, -1 } },
530 { { 10, 11, 46 }, { 100, 46, -1 }, { 100, 46, -1 } },
531 { { 100, 2, -1 }, { 100, 2, -1 }, { 100, 2, -1 } }
532 }
533};
534
535/* 0x0046d9a0 */
536signed char acPilotAggression[24] = {
537 3, 3, 3, 2, 2, 3, 2, 3, 0, 3, 2, 5,
538 4, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0
539};
540
541/* 0x0046d9b8 */
542signed char acPilotRecovery[20] = {
543 6, 7, 8, 8, 9, 8, 6, 8, 10, 7,
544 8, 9, 7, 0, 7, 7, 8, 8, 0, 0
545};
546
548short nTargetShip; /* 0x0059c3b0 */
549enum SpecialManeuver aeSpecialManeuvers[12]; /* 0x0059c3c0 */
550enum ShipMissionType aeShipMissionType[12]; /* 0x0059c3f0 */
551short asShipTotal[16]; /* 0x0059c420 */
552short asShipMaximumSpeedArray[16]; /* 0x0059c440 */
553signed char acShipDmg[10]; /* 0x0059c460 */
554signed char cMissionObjectiveCountValue; /* 0x0059c46a */
555short asViableTgtDistList[16]; /* 0x0059c470 */
557unsigned short awObjMassArray[SPACE_OBJECT_COUNT]; /* 0x0059c790 */
558short asShipAfterburnerTimer[16]; /* 0x0059c810 */
559short nShipMissionIndices[10]; /* 0x0059c830 */
560signed char acShipCommunicatorArray[16]; /* 0x0059c850 */
562
563/* Function start: 0x433910 */
565{
566 char objectiveMarker[2];
567 char objectiveSummary[20];
568 short objective;
569 char *marker;
570
571 set_new_vdu(0);
574 " INFO DISPLAY \n", 0);
575 DrawFormattedText("Version: %s\n", pGameVersion);
576 DrawFormattedText("Series %d Misn %d\n",
579 DrawFormattedText("PC Kills =%d\nWing Kills =%d\n",
580 (int)nPlayerKillTotal,
581 (int)nWingmanKillCount);
582 DrawFormattedText("Series Score =%d\n",
584 DrawFormattedText("Miss Score %d, Medal %d\n",
587 DrawFormattedText("Promotion Score=%d\n",
589 DrawFormattedText("OBJECTIVES\n");
590 strcpy(objectiveSummary, "");
591 for (objective = 0; objective < 16; objective++) {
592 marker = " ";
593 if (objective < cMissionObjectiveCountValue) {
594 sprintf(objectiveMarker, "%c", objective % 10 + '1');
595 marker = objectiveMarker;
596 if (sighted(objective) != 0)
597 marker = "S";
598 if (visited(objective) != 0)
599 marker = "V";
600 if (achieved(objective) != 0)
601 marker = "A";
602 }
603 strcat(objectiveSummary, marker);
604 }
605 DrawFormattedText("%s\n", objectiveSummary);
606}
static signed char aDefenseManeuversNovice[8]
Definition game.c:296
static short asCannedSequence44[33]
Definition game.c:189
static int DAT_0046c070
Definition game.c:89
static short asCannedSequence38[13]
Definition game.c:152
static signed char aDefenseManeuversBoss[16]
Definition game.c:316
static signed char aDefenseManeuversVeteran[8]
Definition game.c:301
static short asCannedSequence43[21]
Definition game.c:183
static short asCannedSequence35[42]
Definition game.c:132
static short asCannedSequence37[13]
Definition game.c:147
static short asCannedSequence32[16]
Definition game.c:116
static signed char aDefenseManeuversElite[16]
Definition game.c:306
static signed char aDefenseManeuversAce[16]
Definition game.c:311
static short asCannedSequence42[15]
Definition game.c:178
static short asCannedSequence34[12]
Definition game.c:127
static short asCannedSequence33[12]
Definition game.c:122
static short asCannedSequence39[6]
Definition game.c:157
static short asCannedSequence40[39]
Definition game.c:162
static short asCannedSequence41[3]
Definition game.c:170
static short asCannedSequence45[4]
Definition game.c:196
short asViableTgtDistList[16]
Definition game.c:555
volatile signed char cPreviousKey
Definition game.c:31
short nCurrentWave
Definition game.c:34
int nCameraViewMode
Definition game.c:49
short nMissionMedalScoreValue
Definition gameflow.c:29
short nEyePitchRate
Definition game.c:16
short nTargetLockMarkerAngle
Definition game.c:82
short asShipTotal[16]
Definition game.c:551
signed char cViableTargetCount
Definition game.c:107
ManeuverChoice aKilrathiManeuverChoices[5][9][3]
Definition game.c:477
signed char cMissionObjectiveCountValue
Definition game.c:554
short nEyeRollRate
Definition game.c:22
short asIntroCameraSequence[]
Definition game.c:110
int bTargetLockAcquired
Definition game.c:92
short DAT_0046c05c
Definition game.c:73
short asShipMaximumSpeedArray[16]
Definition game.c:552
signed char acShipDmg[10]
Definition game.c:553
short nTargetLockCountdown
Definition game.c:79
signed char acPilotRecovery[20]
Definition game.c:542
enum ShipMissionType aeShipMissionType[12]
Definition game.c:550
MissionNavPoint aMissionNavPoints[MISSION_NAV_POINT_COUNT]
Definition game.c:199
int bIntroSecondaryScene
Definition game.c:40
short nYourWingman
Definition game.c:61
short nPlayerCollisionObject
Definition game.c:64
FixedVector vStarFieldMotion
Definition game.c:561
int aiIntelligenceEvent[10]
Definition game.c:293
short nClosestVisibleObject
Definition game.c:58
Viewport stLeftVdu
Definition launch.c:48
short nExternalViewShip
Definition game.c:52
short asShipAfterburnerTimer[16]
Definition game.c:558
short nWingmanKillCount
Definition init.c:57
signed char acPilotAggression[24]
Definition game.c:536
short asCampaignVictoryViewScript[24]
Definition game.c:140
enum ObjectType eSelectedGunType
Definition game.c:67
TextContext stLeftVduTextContext
Definition timer.c:12
short asObjectCounterArray[SPACE_OBJECT_COUNT]
Definition game.c:547
short bTargetLockReadoutDirty
Definition game.c:76
signed char cCurrentObjective
Definition game.c:37
CampaignState stCampaignState
Definition dib.c:107
int bMissileCameraEnabled
Definition game.c:98
short nEjectedPilotObject
Definition game.c:55
int bEngageAllowed
Definition game.c:101
int nSelectedReleaseWeaponIndex
Definition game.c:70
short nFreeShipSlot
Definition game.c:25
signed char cTargetDisplayObject
Definition game.c:85
short nPlayerKillTotal
Definition logic.c:112
unsigned short awObjMassArray[SPACE_OBJECT_COUNT]
Definition game.c:557
MissionShipRecord aMissionShips[MISSION_SHIP_STORAGE_COUNT]
Definition game.c:230
short nShipMissionIndices[10]
Definition game.c:559
FixedVector aShipPositionsArray[SPACE_OBJECT_COUNT]
Definition game.c:556
signed char bCurrentKey
Definition game.c:28
short nTargetShip
Definition game.c:548
char * pGameVersion
Definition version.c:12
signed char acShipCommunicatorArray[16]
Definition game.c:560
short nEyeYawRate
Definition game.c:19
signed char * apDefenseManeuvers[5]
Definition game.c:321
signed char abHazardObjects[0x14]
Definition game.c:43
short nAutoEngageTimer
Definition game.c:104
short nTargetLockMode
Definition game.c:95
enum SpecialManeuver aeSpecialManeuvers[12]
Definition game.c:549
signed char cViewObject
Definition game.c:13
ManeuverChoice aRatedManeuverChoices[13][9][3]
Definition game.c:330
short asTigerClawEscapeViewScript[12]
Definition game.c:173
short missionScore
Definition wcdata.h:723
short seriesScore
Definition wcdata.h:724
short promotionScore
Definition wcdata.h:722
signed char currentSeries
Definition wcdata.h:715
signed char currentMission
Definition wcdata.h:714
short left
Definition wc1base.h:76
short top
Definition wc1base.h:77
Umbrella header for the game core.
short sighted(short objective)
Definition cockpt.c:1030
short visited(short objective)
Definition cockpt.c:1036
short achieved(short objective)
Definition cockpt.c:1042
void show_info_disp(void)
Definition game.c:564
void set_new_vdu(short vdu)
Definition cockpt.c:739
unsigned int DrawTextAt(TextContext *context, short x, short y, const char *text, unsigned char alignment)
Definition disk.c:239
void DrawFormattedText(const char *format,...)
Definition cockpt.c:197
#define MISSION_SHIP_STORAGE_COUNT
Definition wcdata.h:1009
ShipMissionType
Definition wcdata.h:120
@ MISSION_TYPE_CANNED_SEQUENCE
Definition wcdata.h:130
ObjectType
Definition wcdata.h:54
@ OBJECT_TYPE_SCIMITAR
Definition wcdata.h:57
@ OBJECT_TYPE_KRANT
Definition wcdata.h:66
@ OBJECT_TYPE_GRATHA
Definition wcdata.h:67
@ OBJECT_TYPE_ASTEROID_FIELD
Definition wcdata.h:77
@ OBJECT_TYPE_RAPIER
Definition wcdata.h:56
@ OBJECT_TYPE_HORNET
Definition wcdata.h:55
@ OBJECT_TYPE_DRALTHI
Definition wcdata.h:65
@ SIDE_IMPERIAL
Definition wcdata.h:174
@ SIDE_KILRATHI
Definition wcdata.h:175
#define MISSION_NAV_POINT_COUNT
Definition wcdata.h:1012
#define SPACE_OBJECT_COUNT
Definition wcdata.h:1004
SpecialManeuver
Definition wcdata.h:257