Wing Commander
Reconstructed Win32 source (1996)
Loading...
Searching...
No Matches
wcdata.h
Go to the documentation of this file.
1/**
2 * @file
3 * @ingroup headers
4 * @brief Game data enumerations and on-disk record layouts.
5 *
6 * Sources, in descending order of trust:
7 *
8 * 1. THIS BINARY. Anything marked "verified" was read out of WC1.EXE itself,
9 * usually from an ordered string table. Where the community documentation
10 * and the binary disagree, the binary wins and the difference is noted.
11 * 2. WCMissionTools, a MODULE/CAMP/BRIEFING parser built from the data files.
12 * It names the fields the game loads; it does not know what the code calls
13 * them.
14 * 3. WingCommanderArduinoBridge, which reads the DOS build's memory live. Its
15 * offsets are DOS-segment relative and do NOT apply here, but the field
16 * ORDER within the pilot record does, because both builds compile the same
17 * struct.
18 *
19 * The MODULE record layouts below are the ON-DISK format. The in-memory
20 * tables are different sizes (the per-object table at 0x0046C97A has a
21 * 0x36-byte stride against the 42-byte disk ship record, and the nav table a
22 * 0x1F-byte stride against the 77-byte disk nav record), so a disk field
23 * offset is a hint about what exists, never about where it lives at runtime.
24 */
25#ifndef GAME_DATA_H
26#define GAME_DATA_H
27
28#include <stddef.h>
29
30/* --------------------------------------------------------------------------
31 * Original object model. BRAINS.C uses the fields class[] and type[]; the FM
32 * Towns debug table supplies the ObjectClass order, while the Sega CD inspector
33 * preserves the original ObjectType identifiers. The Win32 type-name strings
34 * at 0x004684D4 corroborate ordinals 0-32 ("Star post" is the display name for
35 * the internal KILRATHI_BASE identifier).
36 * -------------------------------------------------------------------------- */
53
60 OBJECT_TYPE_DILLIGENT = 5, /* original misspelling */
113 OBJECT_TYPE_TYPES = 58, /* original enum terminator */
117};
118
119/* BRAINS.C switch bodies line up exactly with these three Amiga debug tables. */
135
149
171
172/* Side is a 32-bit enum in the Win32 image; do not collapse side[] to bytes. */
178
179/* Sega CD's inspector identifies this as the original Rating enum, not a pilot
180 * id. The four humorous tail identifiers are source placeholders; Win32 maps
181 * its separate Bhurak/Dakhath/Khajja/Bakhtosh display-name table onto them. */
202
203/* Amiga's live AI inspector preserves this dispatch-table order. Win32 has
204 * three additional slots (44-46); their identifiers are not present in any
205 * recovered release, so they remain explicitly unknown. */
256
270
271/* --------------------------------------------------------------------------
272 * Comm menu. VERIFIED: the pointer table at 0x0046AF90 indexes these six
273 * strings, laid out consecutively from 0x0046AFF8.
274 * -------------------------------------------------------------------------- */
276 COMM_NEVER_MIND = 0, /* "Never mind..." */
277 COMM_ATTACK_TARGET = 1, /* "Attack my target!" */
278 COMM_HELP_ME_OUT = 2, /* "Help me out here" */
279 COMM_RETURN_TO_BASE = 3, /* "Return to base." */
280 COMM_DIE_FURBALL = 4, /* "Die furball!" */
281 COMM_SLAG_OFF = 5 /* "Slag off!" */
282};
283
284/* --------------------------------------------------------------------------
285 * MODULE on-disk records (WCMissionTools). Reproduced as sizes and field
286 * offsets rather than structs: the loader reads these into differently shaped
287 * runtime tables, so declaring a C struct over them would assert a layout the
288 * code does not use.
289 *
290 * Nav record, 77 bytes
291 * 0 30 name
292 * 30 1 nav type (0 hidden, 1 visible, 2-5 follow-up waves)
293 * 31 1 sphere radius, x1000
294 * 32 12 X, Y, Z as 3-byte signed integers
295 * 45 8 four (trigger type, target nav) pairs; 0 off, 1 on, 255 none
296 * 53 2 preload ship class indices (at 53 and 55)
297 * 57 20 ten ship indices, 2 bytes each, 255 empty
298 *
299 * Ship record, 42 bytes
300 * 0 1 ship class 22 6 rotation X, Y, Z (int16)
301 * 2 1 allegiance 28 2 speed x10, or hazard-field radius
302 * 4 1 leader index 30 1 AI level 0-4
303 * 6 1 order 32 1 pilot id
304 * 8 1 formation slot 39 1 secondary target index
305 * 10 12 X, Y, Z position 40 1 formation group
306 * 41 1 primary target index
307 *
308 * Map / flight-plan record, 64 bytes
309 * 0 1 objective icon (0 square, 1 home triangle, 2 cross,
310 * 3 green circle, 4 red circle)
311 * 1 1 target nav index
312 * 2 61 description text
313 *
314 * Coordinates are 3-byte little-endian signed: uint16 low word plus uint8 high
315 * byte, minus 16777216 when the high byte is >= 128.
316 * -------------------------------------------------------------------------- */
317#define NAV_RECORD_BYTES 77
318#define SHIP_RECORD_BYTES 42
319#define MAP_RECORD_BYTES 64
320
321typedef struct FixedVector {
322 int x;
323 int y;
324 int z;
325}
327
328/* Descriptor used by the legacy near-memory allocator. Descriptors grow
329 * downward from the end of the managed region. */
334
335/* One of the 30 fireworks animated by TheEndFireWorks. The 0x0C-byte stride
336 * is explicit in the Win32 accesses at 0x0042D270-0x0042D384. */
337typedef struct FireworkState {
338 short frame; /* +0x00: -1 while the slot is free */
339 short x; /* +0x02 */
340 short y; /* +0x04 */
341 short variant; /* +0x06: one of three 8-frame runs */
342 int soundHandle; /* +0x08 */
344
346 sizeof(FireworkState) == 0x0c ? 1 : -1];
347
348/* One of the paired projectiles crossing the campaign-victory scene. */
349#pragma pack(push, 2)
351 int x; /* +0x00 */
352 int y; /* +0x04 */
353 int depth; /* +0x08 */
354 short screenX; /* +0x0C */
355 short screenY; /* +0x0E */
356 short flip; /* +0x10 */
357 int scale; /* +0x12: -1 while inactive */
359#pragma pack(pop)
360
362 sizeof(CampaignVictoryProjectile) == 0x16 ? 1 : -1];
363
364/* Runtime object-type records. The 0x87-byte stride and the named fields are
365 * fixed by accesses throughout the ship/object code; unknown slots retain
366 * offset names until their purpose is established. */
367#pragma pack(push, 1)
368typedef struct ObjectTypeData {
369 const char *displayName; /* +0x00 */
370 enum ObjectClass objectClass; /* +0x04 */
371 short collisionRadius; /* +0x08 */
372 unsigned short mass; /* +0x0A */
373 short scale; /* +0x0C */
374 short animationDelay; /* +0x0E */
375 int lifetime; /* +0x10: fuel capacity for ships */
376 short damageCapacity; /* +0x14 */
377 short explosionDamage; /* +0x16 */
378 short maximumVelocity; /* +0x18 */
379 short cruiseVelocity; /* +0x1A */
380 unsigned char *animation; /* +0x1C */
381 int acceleration; /* +0x20 */
382 short pitchRate; /* +0x24 */
383 short yawRate; /* +0x26 */
384 short rollRate; /* +0x28 */
385 short afterburnerVelocity; /* +0x2A */
386 unsigned char weaponLoadout[0x47];/* +0x2C */
387 short shieldFore; /* +0x73 */
388 short shieldAft; /* +0x75 */
389 short armorFront; /* +0x77 */
390 short armorRear; /* +0x79 */
391 short armorLeft; /* +0x7B */
392 short armorRight; /* +0x7D */
393 struct Shape *shapeSet; /* +0x7F */
394 struct Shape *shape; /* +0x83 */
396#pragma pack(pop)
397
399 sizeof(ObjectTypeData) == 0x87 ? 1 : -1];
401 offsetof(ObjectTypeData, objectClass) == 0x04 ? 1 : -1];
403 offsetof(ObjectTypeData, weaponLoadout) == 0x2c ? 1 : -1];
404
405/* Each ship weapon entry is seven packed bytes inside its 0x47-byte loadout. */
406#pragma pack(push, 1)
407typedef struct ShipWeaponSlot {
408 enum ObjectType type; /* +0x00 */
409 short hardpoint; /* +0x04 */
410 signed char disabled; /* +0x06 */
412#pragma pack(pop)
413
414typedef struct ShortPoint {
415 short x;
416 short y;
418
429
430/* Compact three-axis offset used by the formation tables. Unlike a
431 * FixedVector, each component is a 16-bit distance. */
432typedef struct ShortVector {
433 short x;
434 short y;
435 short z;
437
438/* Inclusive screen-space bounds used by the cockpit target-box renderer. */
439typedef struct ShortRect {
440 short left;
441 short top;
442 short right;
443 short bottom;
445
446/* One cockpit scanner's centre and inclusive cursor limits. */
455
456/* The 140-word cockpit table at 0x0046E008. Five ship cockpits use the
457 * viewport/scanner/hand rectangles; the four readout origins also contain a
458 * sixth sentinel entry used by the original table indexing. */
467
468/* Header shared by the static and packet-backed view geometries. fadeData is
469 * a variable-length sequence in loaded packets, but four words are sufficient
470 * for each built-in geometry at 0x0046DAB8. */
478
479#pragma pack(push, 1)
480/* Packet 6 in each PCSHIP file starts with a count followed by offsets to the
481 * four cockpit view geometries. */
486
487/* INSTALL.DAT uses fixed 16-byte records. The last byte is the logical-file
488 * id used to build the runtime lookup table. */
489typedef struct DiskFileRecord {
490 char name[13];
491 signed char diskNumber;
492 unsigned char fileClass;
493 unsigned char logicalFile;
495#pragma pack(pop)
496
497/* The leading offsets in every BRIEFING.xxx mission packet. */
498typedef struct BriefingPacketHeader {
499 unsigned int briefingScene;
500 unsigned int briefingText;
501 unsigned int debriefingScene;
502 unsigned int debriefingText;
503 unsigned int recRoomScene0;
504 unsigned int recRoomText0;
505 unsigned int recRoomScene2;
506 unsigned int recRoomText2;
507 unsigned int recRoomScene1;
508 unsigned int recRoomText1;
510
511/* Caller-owned storage accepted by DecompressPacketSection. */
513 unsigned char decoder[0x3020];
514 unsigned char input[0x400];
516
518 sizeof(CockpitLayout) == 0x118 ? 1 : -1];
520 sizeof(ScreenViewportGeometry) == 0x10 ? 1 : -1];
522 sizeof(DiskFileRecord) == 0x10 ? 1 : -1];
524 sizeof(BriefingPacketHeader) == 0x28 ? 1 : -1];
525#pragma pack(push, 1)
526typedef struct NavMapLabel {
527 short x;
528 short y;
529 short colour;
530 const char *text;
532#pragma pack(pop)
533
535 sizeof(NavMapLabel) == 0x0a ? 1 : -1];
536
537/* Marker geometry and palette slots for one mission-objective type. */
538typedef struct NavMapObjectiveStyle {
541 unsigned char *unvisitedColour;
542 unsigned char *markerColour;
543 unsigned char *labelColour;
545
547 sizeof(NavMapObjectiveStyle) == 0x10 ? 1 : -1];
548
549/* One selectable title-screen image and its inclusive mouse hit bounds. */
550typedef struct TitleMenuRegion {
551 short frame;
552 short left;
553 short top;
554 short right;
555 short bottom;
557
558#pragma pack(push, 1)
559/* One mission's header record in the campaign mission file. The game keeps
560 * a copy of the current mission's header at 0x005A8690; its eight initial
561 * ship indices are scanned as one contiguous array. */
569#pragma pack(pop)
570
572 sizeof(MissionHeaderDisk) == 0x18 ? 1 : -1];
573
574/* Resource lists hold the address of either a shape pointer or another
575 * packet-data pointer. Some slots belong to packed runtime records. */
581
582/* Six packed TrainSim ranking records begin at 0x005A7C30. The five-byte
583 * stride is explicit in every getter, setter, and ranking-table scan. */
584#pragma pack(push, 1)
585typedef struct HighScoreEntry {
586 signed char pilotIndex;
587 int score;
589#pragma pack(pop)
590
591/* Campaign pilot records are copied from the nine-entry template at
592 * 0x00470108 into 0x005988D0. The high-score code addresses the callsign at
593 * +0x0E, while PostMission updates the mission and kill totals at +0x20 and
594 * +0x22. */
595#pragma pack(push, 1)
596typedef struct PilotRecord {
597 char name[14]; /* +0x00 */
598 char callsign[14]; /* +0x0E */
599 short portrait; /* +0x1C */
600 short rank; /* +0x1E */
601 short missions; /* +0x20 */
602 short kills; /* +0x22 */
603 short personality; /* +0x24 */
605
606typedef struct CampaignDate {
607 short day;
608 short year;
610
611/* One packed command in BRIEFING.000's scene stream. The Win32 director
612 * advances these records with a 13-byte stride retained from the DOS data. */
614 signed char shot; /* +0x00 */
615 signed char textColour; /* +0x01 */
616 signed char talker; /* +0x02 */
617 short duration; /* +0x03 */
618 short testsOffset; /* +0x05 */
619 short textOffset; /* +0x07 */
620 short mouthAnimationOffset; /* +0x09 */
621 short faceAnimationOffset; /* +0x0B */
623
624/* One actor in the briefing-room long shot. The packed 18-byte records at
625 * 0x0046E218 carry both the seated-body origin and the independently scaled
626 * portrait animation used by DrawBriefingCharacter. */
628 short bodyX; /* +0x00 */
629 short bodyY; /* +0x02 */
630 short portraitX; /* +0x04 */
631 short portraitY; /* +0x06 */
632 short scale; /* +0x08 */
633 signed char visible; /* +0x0A */
634 signed char firstPortraitFrame; /* +0x0B */
635 signed char portraitFrameCount; /* +0x0C */
636 const signed char *animation; /* +0x0D */
637 signed char animationPhase; /* +0x11, mutable scene state */
639
640/* One runtime object in the packet-driven scene-animation interpreter. The
641 * packet stores a 0x36-byte array for each scene, followed by bytecode streams
642 * that animate position, rotation, scale and frame. */
643typedef struct SceneAnimationObject {
644 short layer; /* +0x00: 0 tiles frames horizontally */
645 short scriptOffset; /* +0x02: offset into definition packet */
646 signed char *scriptStart; /* +0x04 */
647 signed char *scriptCursor; /* +0x08 */
648 signed char *repeatCursor; /* +0x0C */
649 unsigned short goalFlags; /* +0x10 */
650 short delay; /* +0x12 */
651 struct Shape *shape; /* +0x14 */
652 short x; /* +0x18 */
653 short y; /* +0x1A */
654 short rotation; /* +0x1C */
655 short scale; /* +0x1E */
656 short frame; /* +0x20 */
657 short deltaX; /* +0x22 */
658 short deltaY; /* +0x24 */
659 short deltaRotation; /* +0x26 */
660 short deltaScale; /* +0x28 */
661 short deltaFrame; /* +0x2A */
662 short goalX; /* +0x2C */
663 short goalY; /* +0x2E */
664 short goalRotation; /* +0x30 */
665 short goalScale; /* +0x32 */
666 short goalFrame; /* +0x34 */
668
669/* SCRAMBLE.VGA uses five compact actors while the pilot approaches and
670 * boards the selected fighter. The two pointers are deliberately unaligned:
671 * the retail Win32 table at 0x004657B0 has a packed 0x18-byte stride. */
673 short x; /* +0x00 */
674 short y; /* +0x02 */
675 short deltaX; /* +0x04 */
676 short deltaY; /* +0x06 */
677 signed char baseFrame; /* +0x08 */
678 signed char animationFrame; /* +0x09; -1 disables the script */
679 signed char animationState; /* +0x0A */
680 const unsigned short *animation; /* +0x0B */
681 struct Shape *shape; /* +0x0F */
682 short angle; /* +0x13 */
683 short scale; /* +0x15 */
684 signed char flip; /* +0x17 */
686
687/* Per-fighter decorative sprite positions used by the scramble/landing
688 * renderer. Each of the four player fighters owns 32 packed entries. */
689typedef struct ScrambleShipDetail {
690 signed char frame; /* +0x00 */
691 short x; /* +0x01 */
692 short y; /* +0x03 */
694
704
705/* The complete persistent campaign record copied by ResetCampaignData. The
706 * four bytes at +0x44 are the ace-state flags; the following eight bytes are
707 * two dates, rather than a single twelve-byte flag array as the old placeholder
708 * declaration implied. */
709typedef struct CampaignState {
711 enum ObjectType playerShipType; /* +0x04 */
712 unsigned char medals[5]; /* +0x08 */
713 unsigned char badges[12]; /* +0x0D */
714 signed char currentMission; /* +0x19 */
715 signed char currentSeries; /* +0x1A */
716 signed char seriesHistoryCount; /* +0x1B */
717 signed char seriesHistory[8]; /* +0x1C */
718 int personalityDeathMission[8]; /* +0x24 */
719 unsigned char aceFlags[4]; /* +0x44 */
722 short promotionScore; /* +0x50 */
723 short missionScore; /* +0x52 */
724 short seriesScore; /* +0x54 */
725 short campaignIndex; /* +0x56 */
727
728/* SAVEGAME.WLD stores the two leading 32-bit campaign values and the eight
729 * personality-death mission values as signed 16-bit quantities. The remaining
730 * fields retain their packed runtime order. */
732 short currentPilot; /* +0x00 */
733 short playerShipType; /* +0x02 */
734 unsigned char medals[5]; /* +0x04 */
735 unsigned char badges[12]; /* +0x09 */
736 signed char currentMission; /* +0x15 */
737 signed char currentSeries; /* +0x16 */
738 signed char seriesHistoryCount; /* +0x17 */
739 signed char seriesHistory[8]; /* +0x18 */
740 short personalityDeathMission[8]; /* +0x20 */
741 unsigned char aceFlags[4]; /* +0x30 */
744 short promotionScore; /* +0x3C */
745 short missionScore; /* +0x3E */
746 short seriesScore; /* +0x40 */
747 short campaignIndex; /* +0x42 */
749
750/* One open packet section. OpenPacketSection fills this record and the packet
751 * reader advances position while leaving the containing data file open. */
752typedef struct PacketSectionHandle {
753 short file;
757 unsigned int dataOffset;
758 unsigned int position;
759 unsigned int dataSize;
761#pragma pack(pop)
762
764 sizeof(PilotRecord) == 0x26 ? 1 : -1];
766 sizeof(CampaignState) == 0x58 ? 1 : -1];
768 sizeof(SaveGameDiskCampaignState) == 0x44 ? 1 : -1];
770 sizeof(ConversationSceneRecord) == 0x0d ? 1 : -1];
772 sizeof(BriefingCharacterLayout) == 0x12 ? 1 : -1];
774 sizeof(SceneAnimationObject) == 0x36 ? 1 : -1];
776 sizeof(ScrambleAnimationActor) == 0x18 ? 1 : -1];
778 sizeof(ScrambleShipDetail) == 0x05 ? 1 : -1];
780 sizeof(PacketSectionHandle) == 0x14 ? 1 : -1];
781
782/* Polar form used by the original 3D orientation routines. */
783typedef struct SphericalVector {
785 short yaw;
786 short pitch;
788
789/* Runtime asteroid/mine-field descriptor. The packed 0x16-byte stride is
790 * visible in the Win32 hazard-field scans and agrees with the Mac `hazar`
791 * compilation unit. */
792#pragma pack(push, 1)
793typedef struct HazardField {
794 enum ObjectType type; /* +0x00 */
795 FixedVector center; /* +0x04 */
796 short innerRadius; /* +0x10 */
797 short outerRadius; /* +0x12 */
798 short density; /* +0x14 */
800#pragma pack(pop)
801
802/* Weighted pair in the retail maneuver-selection tables. */
803typedef struct ManeuverChoice {
804 signed char threshold;
805 signed char primary;
806 signed char secondary;
808
809/* Coordinates for the independently animated face and mouth layers in a
810 * talking-head shape packet. */
817
818/* The constellation renderer keeps ten static stars and sixteen horizontally
819 * moving particles. */
820typedef struct ConstellationStar {
821 short x;
822 short y;
823 short frame;
825
832
833/* One of four optional planet sprites placed around a campaign
834 * constellation. The angles orient a temporary reference frame before the
835 * object is positioned at the fixed constellation radius. */
842
844 sizeof(TalkingHeadOrigin) == 0x08 ? 1 : -1];
846 sizeof(ConstellationStar) == 0x06 ? 1 : -1];
848 sizeof(ConstellationParticle) == 0x08 ? 1 : -1];
850 sizeof(ConstellationObjectDefinition) == 0x08 ? 1 : -1];
851
852/* Runtime mission-nav record. The loader expands each 3-byte disk coordinate
853 * to a 32-bit fixed-point value, producing the 0x51-byte stride observed at
854 * 0x0046C2F0. */
855#pragma pack(push, 1)
856typedef struct MissionNavPoint {
857 char name[0x1e]; /* +0x00 */
858 signed char type; /* +0x1E: 1 is an active nav point */
860 short proximityRadius; /* +0x2B */
861 signed char triggers[4][2]; /* +0x2D: type, target nav point */
862 enum ObjectType preloadObjectTypes[2]; /* +0x35 */
863 short missionShips[10]; /* +0x3D */
865#pragma pack(pop)
866
867/* The +0x28 slot has two proven interpretations. Loaded campaign records use
868 * it as the pilot/personality value, while the built-in opening-sequence
869 * records (32-45) store a pointer to a canned command stream there. */
874
875/* The expanded runtime mission-ship record at 0x0046C948. The first 32
876 * records are overwritten by LoadMissionData; the recovered opening
877 * sequence follows them in records 32-45. */
878#pragma pack(push, 1)
879typedef struct MissionShipRecord {
880 enum ObjectType type; /* +0x00 */
881 enum Side side; /* +0x04 */
882 signed char leader; /* +0x08 */
883 signed char field_9; /* +0x09 */
884 enum ShipMissionType missionType; /* +0x0A */
885 signed char navPoint; /* +0x0E */
887 short pitch; /* +0x1B */
888 short yaw; /* +0x1D */
889 short roll; /* +0x1F */
890 signed char formationSpot; /* +0x21 */
891 short speed; /* +0x22 */
892 int rating; /* +0x24 */
894 short field_2c; /* +0x2C */
895 int field_2e; /* +0x2E */
896 signed char state; /* +0x32 */
897 signed char leaderMissionIndex; /* +0x33 */
898 signed char formationIndex; /* +0x34 */
899 signed char targetMissionIndex; /* +0x35 */
901
902/* Expanded copy of one 64-byte objective/map record. */
904 int type; /* +0x00: sign-extended disk short */
905 short index; /* +0x04 */
906 char description[60]; /* +0x06 */
908
909/* Four packed resource-cache entries at 0x0059DDF0. */
910typedef struct ObjectResourceSlot {
911 signed char type; /* +0x00 */
912 struct Shape *shapeSet; /* +0x01: archive section 0 */
913 unsigned char *animation; /* +0x05: archive section 2 */
914 struct Shape *shape; /* +0x09: archive section 1 */
916#pragma pack(pop)
917
918/* Runtime mission-objective records use the 0x1F-byte stride visible in every
919 * objective scan. The coordinate pair leads each record at 0x0059DAC0; the
920 * former declaration incorrectly began five bytes later at the type field. */
921#pragma pack(push, 1)
922typedef struct MissionObjective {
923 short mapX; /* +0x00 */
924 short mapY; /* +0x02 */
925 unsigned char field_4; /* +0x04 */
926 int type; /* +0x05 */
927 signed char index; /* +0x09 */
928 unsigned char flags; /* +0x0A */
929 const char *displayName; /* +0x0B */
930 char *name; /* +0x0F: mission description */
933
934/* One objective in SAVEGAME.WLD. The runtime integer and two pointer-sized
935 * fields are retained as signed words by the inherited DOS file format. */
936typedef struct SaveGameDiskObjective {
937 short mapX; /* +0x00 */
938 short mapY; /* +0x02 */
939 unsigned char field_4; /* +0x04 */
940 short type; /* +0x05 */
941 signed char index; /* +0x07 */
942 unsigned char flags; /* +0x08 */
943 short displayName; /* +0x09 */
944 short name; /* +0x0B */
947
948typedef struct SaveGameRecord {
949 char description[17]; /* +0x000 */
950 unsigned char occupied; /* +0x011 */
951 PilotRecord pilots[9]; /* +0x012 */
953 MissionObjective objectives[16]; /* +0x1C0 */
955
956typedef struct SaveGameDiskRecord {
957 char description[17]; /* +0x000 */
958 unsigned char occupied; /* +0x011 */
959 PilotRecord pilots[9]; /* +0x012 */
963
964typedef struct BarracksBunkState {
965 short occupied; /* +0x00 */
966 short animationFrame; /* +0x02 */
967 short animationPeriod; /* +0x04 */
968 int animationTick; /* +0x06 */
970
972 BarracksBunkState bunks[8]; /* +0x00 */
973 short fallingDelay; /* +0x50 */
974 int fallingY; /* +0x52 */
975 int fallingVelocity; /* +0x56 */
976 short impactFrame; /* +0x5A */
977 short blinkDelay; /* +0x5C */
978 short eyesOpen; /* +0x5E */
979 short animationTick; /* +0x60 */
980 const char *menuLabel; /* +0x62 */
981 short field_66; /* +0x66 */
983#pragma pack(pop)
984
986 sizeof(MissionNavPoint) == 0x51 ? 1 : -1];
988 sizeof(MissionShipRecord) == 0x36 ? 1 : -1];
990 sizeof(MissionObjectiveSource) == 0x42 ? 1 : -1];
992 sizeof(MissionObjective) == 0x1f ? 1 : -1];
994 sizeof(SaveGameDiskObjective) == 0x19 ? 1 : -1];
996 sizeof(SaveGameRecord) == 0x3b0 ? 1 : -1];
998 sizeof(SaveGameDiskRecord) == 0x33c ? 1 : -1];
1000 sizeof(BarracksBunkState) == 0x0a ? 1 : -1];
1002 sizeof(BarracksAnimationState) == 0x68 ? 1 : -1];
1003
1004#define SPACE_OBJECT_COUNT 64
1005#define SPACE_LAST_MOVING_OBJECT 60
1006#define EYE_OBJECT 61
1007#define DIRECTION_VIEW_COUNT 62
1008#define DIRECTION_SHAPE_TABLE_COUNT 3
1009#define MISSION_SHIP_STORAGE_COUNT 48
1010#define MISSION_SHIP_SCAN_LIMIT 64
1011#define ACTIVE_MISSION_SHIP_COUNT 32
1012#define MISSION_NAV_POINT_COUNT 20
1013#define ACTIVE_MISSION_NAV_POINT_COUNT 16
1014#define MISSION_OBJECTIVE_COUNT 16
1015
1016/* --------------------------------------------------------------------------
1017 * Pilot record field order, from the DOS build's live memory layout
1018 * (WingCommanderArduinoBridge). The DOS offsets themselves do not apply to
1019 * this build, but both builds compile the same struct, so the ORDER holds:
1020 *
1021 * +0x00 first name +0x1E rank
1022 * +0x0E callsign +0x20 sorties flown
1023 * +0x22 total kills
1024 *
1025 * In-mission kills are a separate global, not part of this record. The
1026 * defaults are in the executable at 0x00469EC0: first name "Blair", callsign
1027 * "Maverick", and "CHEATER" -- the callsign the game substitutes once the
1028 * cheat flag is set (see ReadCheaterFlagFromRegistry, 0x00442600).
1029 * -------------------------------------------------------------------------- */
1030
1031#endif /* GAME_DATA_H */
const char * menuLabel
Definition wcdata.h:980
BarracksBunkState bunks[8]
Definition wcdata.h:972
short animationFrame
Definition wcdata.h:966
short animationPeriod
Definition wcdata.h:967
signed char portraitFrameCount
Definition wcdata.h:635
signed char animationPhase
Definition wcdata.h:637
const signed char * animation
Definition wcdata.h:636
signed char visible
Definition wcdata.h:633
signed char firstPortraitFrame
Definition wcdata.h:634
unsigned int recRoomText0
Definition wcdata.h:504
unsigned int recRoomScene0
Definition wcdata.h:503
unsigned int recRoomText1
Definition wcdata.h:508
unsigned int recRoomText2
Definition wcdata.h:506
unsigned int recRoomScene2
Definition wcdata.h:505
unsigned int briefingText
Definition wcdata.h:500
unsigned int debriefingText
Definition wcdata.h:502
unsigned int recRoomScene1
Definition wcdata.h:507
unsigned int debriefingScene
Definition wcdata.h:501
unsigned int briefingScene
Definition wcdata.h:499
short day
Definition wcdata.h:607
short year
Definition wcdata.h:608
signed char seriesHistory[8]
Definition wcdata.h:717
PilotRecord * currentPilot
Definition wcdata.h:710
CampaignDate currentDate
Definition wcdata.h:720
signed char seriesHistoryCount
Definition wcdata.h:716
short missionScore
Definition wcdata.h:723
CampaignDate elapsedDate
Definition wcdata.h:721
short seriesScore
Definition wcdata.h:724
unsigned char badges[12]
Definition wcdata.h:713
short campaignIndex
Definition wcdata.h:725
short promotionScore
Definition wcdata.h:722
enum ObjectType playerShipType
Definition wcdata.h:711
signed char currentSeries
Definition wcdata.h:715
unsigned char aceFlags[4]
Definition wcdata.h:719
int personalityDeathMission[8]
Definition wcdata.h:718
unsigned char medals[5]
Definition wcdata.h:712
signed char currentMission
Definition wcdata.h:714
short scannerPadding[2]
Definition wcdata.h:464
ShortRect pilotHandBounds[5]
Definition wcdata.h:465
ShortRect rightVduBounds[5]
Definition wcdata.h:462
CockpitScannerGeometry scanner[5]
Definition wcdata.h:463
ShortRect leftVduBounds[5]
Definition wcdata.h:461
ShortPoint readoutOrigins[4][6]
Definition wcdata.h:460
signed char textColour
Definition wcdata.h:615
signed char talker
Definition wcdata.h:616
unsigned char fileClass
Definition wcdata.h:492
signed char diskNumber
Definition wcdata.h:491
unsigned char logicalFile
Definition wcdata.h:493
char name[13]
Definition wcdata.h:490
short variant
Definition wcdata.h:341
short frame
Definition wcdata.h:338
int soundHandle
Definition wcdata.h:342
enum ObjectType type
Definition wcdata.h:794
short outerRadius
Definition wcdata.h:797
short innerRadius
Definition wcdata.h:796
FixedVector center
Definition wcdata.h:795
short density
Definition wcdata.h:798
signed char pilotIndex
Definition wcdata.h:586
signed char secondary
Definition wcdata.h:806
signed char threshold
Definition wcdata.h:804
signed char primary
Definition wcdata.h:805
short homeMissionShip
Definition wcdata.h:564
short playerMissionShip
Definition wcdata.h:565
short entryNavPoint
Definition wcdata.h:563
short initialMissionShips[8]
Definition wcdata.h:566
FixedVector position
Definition wcdata.h:859
enum ObjectType preloadObjectTypes[2]
Definition wcdata.h:862
short proximityRadius
Definition wcdata.h:860
short missionShips[10]
Definition wcdata.h:863
char name[0x1e]
Definition wcdata.h:857
signed char type
Definition wcdata.h:858
signed char triggers[4][2]
Definition wcdata.h:861
const char * displayName
Definition wcdata.h:929
unsigned char flags
Definition wcdata.h:928
unsigned char field_4
Definition wcdata.h:925
signed char index
Definition wcdata.h:927
FixedVector position
Definition wcdata.h:931
enum ShipMissionType missionType
Definition wcdata.h:884
enum Side side
Definition wcdata.h:881
signed char targetMissionIndex
Definition wcdata.h:899
enum ObjectType type
Definition wcdata.h:880
signed char navPoint
Definition wcdata.h:885
signed char leader
Definition wcdata.h:882
MissionShipBehaviour behaviour
Definition wcdata.h:893
signed char leaderMissionIndex
Definition wcdata.h:897
FixedVector position
Definition wcdata.h:886
signed char field_9
Definition wcdata.h:883
signed char formationIndex
Definition wcdata.h:898
signed char formationSpot
Definition wcdata.h:890
signed char state
Definition wcdata.h:896
short colour
Definition wcdata.h:529
short x
Definition wcdata.h:527
short y
Definition wcdata.h:528
const char * text
Definition wcdata.h:530
unsigned char * labelColour
Definition wcdata.h:543
unsigned char * unvisitedColour
Definition wcdata.h:541
unsigned char * markerColour
Definition wcdata.h:542
int sizeAndFlags
Definition wcdata.h:332
unsigned char * animation
Definition wcdata.h:913
signed char type
Definition wcdata.h:911
struct Shape * shapeSet
Definition wcdata.h:912
struct Shape * shape
Definition wcdata.h:914
short armorRight
Definition wcdata.h:392
short yawRate
Definition wcdata.h:383
short shieldFore
Definition wcdata.h:387
short rollRate
Definition wcdata.h:384
enum ObjectClass objectClass
Definition wcdata.h:370
short maximumVelocity
Definition wcdata.h:378
unsigned char * animation
Definition wcdata.h:380
int acceleration
Definition wcdata.h:381
short collisionRadius
Definition wcdata.h:371
short explosionDamage
Definition wcdata.h:377
short armorRear
Definition wcdata.h:390
short pitchRate
Definition wcdata.h:382
short scale
Definition wcdata.h:373
short animationDelay
Definition wcdata.h:374
short shieldAft
Definition wcdata.h:388
struct Shape * shapeSet
Definition wcdata.h:393
unsigned short mass
Definition wcdata.h:372
struct Shape * shape
Definition wcdata.h:394
short damageCapacity
Definition wcdata.h:376
short afterburnerVelocity
Definition wcdata.h:385
unsigned char weaponLoadout[0x47]
Definition wcdata.h:386
short cruiseVelocity
Definition wcdata.h:379
short armorLeft
Definition wcdata.h:391
short armorFront
Definition wcdata.h:389
const char * displayName
Definition wcdata.h:369
unsigned char decoder[0x3020]
Definition wcdata.h:513
unsigned char input[0x400]
Definition wcdata.h:514
unsigned int dataOffset
Definition wcdata.h:757
unsigned int dataSize
Definition wcdata.h:759
unsigned int position
Definition wcdata.h:758
short kills
Definition wcdata.h:602
char callsign[14]
Definition wcdata.h:598
short missions
Definition wcdata.h:601
char name[14]
Definition wcdata.h:597
short personality
Definition wcdata.h:603
short portrait
Definition wcdata.h:599
short rank
Definition wcdata.h:600
unsigned char medals[5]
Definition wcdata.h:734
signed char currentMission
Definition wcdata.h:736
signed char currentSeries
Definition wcdata.h:737
signed char seriesHistoryCount
Definition wcdata.h:738
unsigned char badges[12]
Definition wcdata.h:735
CampaignDate currentDate
Definition wcdata.h:742
signed char seriesHistory[8]
Definition wcdata.h:739
CampaignDate elapsedDate
Definition wcdata.h:743
short personalityDeathMission[8]
Definition wcdata.h:740
unsigned char aceFlags[4]
Definition wcdata.h:741
unsigned char flags
Definition wcdata.h:942
FixedVector position
Definition wcdata.h:945
unsigned char field_4
Definition wcdata.h:939
signed char index
Definition wcdata.h:941
PilotRecord pilots[9]
Definition wcdata.h:959
unsigned char occupied
Definition wcdata.h:958
SaveGameDiskCampaignState campaign
Definition wcdata.h:960
char description[17]
Definition wcdata.h:957
SaveGameDiskObjective objectives[16]
Definition wcdata.h:961
PilotRecord pilots[9]
Definition wcdata.h:951
MissionObjective objectives[16]
Definition wcdata.h:953
char description[17]
Definition wcdata.h:949
unsigned char occupied
Definition wcdata.h:950
CampaignState campaign
Definition wcdata.h:952
signed char * scriptStart
Definition wcdata.h:646
signed char * scriptCursor
Definition wcdata.h:647
struct Shape * shape
Definition wcdata.h:651
unsigned short goalFlags
Definition wcdata.h:649
signed char * repeatCursor
Definition wcdata.h:648
struct Shape * shape
Definition wcdata.h:681
signed char baseFrame
Definition wcdata.h:677
signed char animationFrame
Definition wcdata.h:678
signed char animationState
Definition wcdata.h:679
signed char flip
Definition wcdata.h:684
const unsigned short * animation
Definition wcdata.h:680
signed char frame
Definition wcdata.h:690
short geometryOffsets[4]
Definition wcdata.h:484
unsigned short geometryCount
Definition wcdata.h:483
short hardpoint
Definition wcdata.h:409
enum ObjectType type
Definition wcdata.h:408
signed char disabled
Definition wcdata.h:410
short y
Definition wcdata.h:416
short x
Definition wcdata.h:415
short top
Definition wcdata.h:441
short left
Definition wcdata.h:440
short right
Definition wcdata.h:442
short bottom
Definition wcdata.h:443
short z
Definition wcdata.h:435
short x
Definition wcdata.h:433
short y
Definition wcdata.h:434
const short * cannedSequence
Definition wcdata.h:871
char ObjectTypeData_weaponLoadout_must_be_at_0x2c[offsetof(ObjectTypeData, weaponLoadout)==0x2c ? 1 :-1]
Definition wcdata.h:403
char MissionObjective_size_must_be_0x1f[sizeof(MissionObjective)==0x1f ? 1 :-1]
Definition wcdata.h:992
char ConstellationStar_size_must_be_0x06[sizeof(ConstellationStar)==0x06 ? 1 :-1]
Definition wcdata.h:846
char MissionObjectiveSource_size_must_be_0x42[sizeof(MissionObjectiveSource)==0x42 ? 1 :-1]
Definition wcdata.h:990
char BriefingPacketHeader_size_must_be_0x28[sizeof(BriefingPacketHeader)==0x28 ? 1 :-1]
Definition wcdata.h:524
Rating
Definition wcdata.h:182
@ RATING_ACE_DEWEY
Definition wcdata.h:199
@ RATING_ACE_SPIRIT
Definition wcdata.h:188
@ RATING_ACE_HEWEY
Definition wcdata.h:197
@ RATING_ACE_PALADIN
Definition wcdata.h:193
@ RATING_ACE_MANIAC
Definition wcdata.h:194
@ RATING_CRACK
Definition wcdata.h:185
@ RATING_FANATICAL
Definition wcdata.h:187
@ RATING_ACE_BOSSMAN
Definition wcdata.h:190
@ RATING_ACE_ICEMAN
Definition wcdata.h:191
@ RATING_ACE_HUNTER
Definition wcdata.h:189
@ RATING_ACE_LEWEY
Definition wcdata.h:198
@ RATING_PROVINCIAL
Definition wcdata.h:183
@ RATING_ELITE
Definition wcdata.h:186
@ RATING_ACE_KNIGHT
Definition wcdata.h:195
@ RATING_ACE_DAFFY
Definition wcdata.h:200
@ RATING_LINE
Definition wcdata.h:184
@ RATING_ACE_ANGEL
Definition wcdata.h:192
@ RATING_ACE_PLAYER
Definition wcdata.h:196
char BarracksBunkState_size_must_be_0x0a[sizeof(BarracksBunkState)==0x0a ? 1 :-1]
Definition wcdata.h:1000
char PilotRecord_size_must_be_0x26[sizeof(PilotRecord)==0x26 ? 1 :-1]
Definition wcdata.h:764
ShipMissionType
Definition wcdata.h:120
@ MISSION_TYPE_PATROL
Definition wcdata.h:122
@ MISSION_TYPE_ESCORT
Definition wcdata.h:123
@ MISSION_TYPE_WARP_ARRIVE
Definition wcdata.h:129
@ MISSION_TYPE_CANNED_SEQUENCE
Definition wcdata.h:130
@ MISSION_TYPE_GOTO_WARP
Definition wcdata.h:128
@ MISSION_TYPE_RENDEZVOUS
Definition wcdata.h:131
@ MISSION_TYPE_WINGMAN
Definition wcdata.h:126
@ MISSION_TYPE_ROUT
Definition wcdata.h:127
@ MISSION_TYPE_DEFEND
Definition wcdata.h:125
@ MISSION_TYPE_COME_HOME
Definition wcdata.h:132
@ MISSION_TYPE_NONE
Definition wcdata.h:121
@ MISSION_TYPE_STRIKE
Definition wcdata.h:124
@ MISSION_TYPE_BOGUS_AVOID_CRASH
Definition wcdata.h:133
char ObjectTypeData_objectClass_must_be_at_0x04[offsetof(ObjectTypeData, objectClass)==0x04 ? 1 :-1]
Definition wcdata.h:401
char ConstellationParticle_size_must_be_0x08[sizeof(ConstellationParticle)==0x08 ? 1 :-1]
Definition wcdata.h:848
CampaignBadgeIndex
Definition wcdata.h:695
@ CAMPAIGN_BADGE_FIFTEEN_MISSIONS
Definition wcdata.h:702
@ CAMPAIGN_BADGE_FIVE_KILLS
Definition wcdata.h:698
@ CAMPAIGN_BADGE_TEN_MISSIONS
Definition wcdata.h:701
@ CAMPAIGN_BADGE_TWENTY_FIVE_KILLS
Definition wcdata.h:699
@ CAMPAIGN_BADGE_FIVE_MISSIONS
Definition wcdata.h:700
@ CAMPAIGN_BADGE_SHIP_TYPE_BASE
Definition wcdata.h:697
@ CAMPAIGN_BADGE_FIRST_MISSION
Definition wcdata.h:696
char ConstellationObjectDefinition_size_must_be_0x08[sizeof(ConstellationObjectDefinition)==0x08 ? 1 :-1]
Definition wcdata.h:850
char ScreenViewportGeometry_size_must_be_0x10[sizeof(ScreenViewportGeometry)==0x10 ? 1 :-1]
Definition wcdata.h:520
char ObjectTypeData_size_must_be_0x87[sizeof(ObjectTypeData)==0x87 ? 1 :-1]
Definition wcdata.h:399
char TalkingHeadOrigin_size_must_be_0x08[sizeof(TalkingHeadOrigin)==0x08 ? 1 :-1]
Definition wcdata.h:844
char ConversationSceneRecord_size_must_be_0x0d[sizeof(ConversationSceneRecord)==0x0d ? 1 :-1]
Definition wcdata.h:770
char DiskFileRecord_size_must_be_0x10[sizeof(DiskFileRecord)==0x10 ? 1 :-1]
Definition wcdata.h:522
char BarracksAnimationState_size_must_be_0x68[sizeof(BarracksAnimationState)==0x68 ? 1 :-1]
Definition wcdata.h:1002
char SceneAnimationObject_size_must_be_0x36[sizeof(SceneAnimationObject)==0x36 ? 1 :-1]
Definition wcdata.h:774
ObjectType
Definition wcdata.h:54
@ OBJECT_TYPE_VENTURE
Definition wcdata.h:59
@ OBJECT_TYPE_DILLIGENT
Definition wcdata.h:60
@ OBJECT_TYPE_EXPLOSION0
Definition wcdata.h:103
@ OBJECT_TYPE_HYPERSPACE_JUMP_FLASH
Definition wcdata.h:112
@ OBJECT_TYPE_KILRATHI_BASE
Definition wcdata.h:76
@ OBJECT_TYPE_TIGERS_CLAW
Definition wcdata.h:63
@ OBJECT_TYPE_FRALTHI
Definition wcdata.h:73
@ OBJECT_TYPE_NEUTRON_PARTICLE_GUN
Definition wcdata.h:80
@ OBJECT_TYPE_HEAT_SEEKING_MISSILE
Definition wcdata.h:84
@ OBJECT_TYPE_SCIMITAR
Definition wcdata.h:57
@ OBJECT_TYPE_DEBRIS_METAL_SHEET
Definition wcdata.h:98
@ OBJECT_TYPE_EJECTED_PILOT
Definition wcdata.h:111
@ OBJECT_TYPE_FF_MISSILE
Definition wcdata.h:85
@ OBJECT_TYPE_TYPES
Definition wcdata.h:113
@ OBJECT_TYPE_EXETER
Definition wcdata.h:62
@ OBJECT_TYPE_MASS_DRIVER_CANNON
Definition wcdata.h:81
@ OBJECT_TYPE_LUMBARI
Definition wcdata.h:71
@ OBJECT_TYPE_DEBRIS_WING
Definition wcdata.h:99
@ OBJECT_TYPE_DRAYMAN
Definition wcdata.h:61
@ OBJECT_TYPE_SNAKEIR
Definition wcdata.h:74
@ OBJECT_TYPE_RALARI
Definition wcdata.h:72
@ OBJECT_TYPE_DEBRIS_GLASS
Definition wcdata.h:100
@ OBJECT_TYPE_KRANT
Definition wcdata.h:66
@ OBJECT_TYPE_ROCK_CHUNK
Definition wcdata.h:95
@ OBJECT_TYPE_SALTHI
Definition wcdata.h:64
@ OBJECT_TYPE_DEBRIS_DUST
Definition wcdata.h:116
@ OBJECT_TYPE_EXPLOSION2
Definition wcdata.h:105
@ OBJECT_TYPE_GRATHA
Definition wcdata.h:67
@ OBJECT_TYPE_IMAGE_RECOGNITION_MISSILE
Definition wcdata.h:86
@ OBJECT_TYPE_MINE_FIELD
Definition wcdata.h:78
@ OBJECT_TYPE_DEBRIS_O_RING
Definition wcdata.h:101
@ OBJECT_TYPE_BLUE_SPARK
Definition wcdata.h:108
@ OBJECT_TYPE_EXPLOSION1
Definition wcdata.h:104
@ OBJECT_TYPE_TORPEDO
Definition wcdata.h:87
@ OBJECT_TYPE_ASTEROID5
Definition wcdata.h:93
@ OBJECT_TYPE_SPIKERI
Definition wcdata.h:69
@ OBJECT_TYPE_ASTEROID3
Definition wcdata.h:91
@ OBJECT_TYPE_DORKIR
Definition wcdata.h:70
@ OBJECT_TYPE_SIVAR
Definition wcdata.h:75
@ OBJECT_TYPE_ASTEROID4
Definition wcdata.h:92
@ OBJECT_TYPE_RED_SPARK
Definition wcdata.h:107
@ OBJECT_TYPE_LASER_CANNON
Definition wcdata.h:79
@ OBJECT_TYPE_LASER_SPARK
Definition wcdata.h:106
@ OBJECT_TYPE_DEBRIS_PIPE
Definition wcdata.h:102
@ OBJECT_TYPE_RAPTOR
Definition wcdata.h:58
@ OBJECT_TYPE_JALTHI
Definition wcdata.h:68
@ OBJECT_TYPE_THRUSTERS
Definition wcdata.h:110
@ OBJECT_TYPE_SPACE_DUST
Definition wcdata.h:115
@ OBJECT_TYPE_ASTEROID_FIELD
Definition wcdata.h:77
@ OBJECT_TYPE_ASTEROID6
Definition wcdata.h:94
@ OBJECT_TYPE_DUMB_FIRE_MISSILE
Definition wcdata.h:83
@ OBJECT_TYPE_RAPIER
Definition wcdata.h:56
@ OBJECT_TYPE_ASTEROID1
Definition wcdata.h:89
@ OBJECT_TYPE_HORNET
Definition wcdata.h:55
@ OBJECT_TYPE_ASTEROID2
Definition wcdata.h:90
@ OBJECT_TYPE_DEBRIS_SHIP_GIRDER_CHUNK
Definition wcdata.h:96
@ OBJECT_TYPE_TURRET
Definition wcdata.h:82
@ OBJECT_TYPE_SPARK_TRAIL
Definition wcdata.h:109
@ OBJECT_TYPE_DEBRIS_SHIP_TUBING
Definition wcdata.h:97
@ OBJECT_TYPE_COUNT
Definition wcdata.h:114
@ OBJECT_TYPE_DRALTHI
Definition wcdata.h:65
@ OBJECT_TYPE_SPACE_MINE
Definition wcdata.h:88
char CampaignVictoryProjectile_size_must_be_0x16[sizeof(CampaignVictoryProjectile)==0x16 ? 1 :-1]
Definition wcdata.h:362
Side
Definition wcdata.h:173
@ SIDE_IMPERIAL
Definition wcdata.h:174
@ SIDE_KILRATHI
Definition wcdata.h:175
@ SIDE_NEUTRAL
Definition wcdata.h:176
char SaveGameDiskCampaignState_size_must_be_0x44[sizeof(SaveGameDiskCampaignState)==0x44 ? 1 :-1]
Definition wcdata.h:768
ShipObjective
Definition wcdata.h:136
@ OBJECTIVE_ENGAGE_ENEMY
Definition wcdata.h:144
@ OBJECTIVE_DESTROY_SHIP
Definition wcdata.h:142
@ OBJECTIVE_HOLD_FORMATION
Definition wcdata.h:146
@ OBJECTIVE_REACH_SHIP
Definition wcdata.h:141
@ OBJECTIVE_NAV_POINT
Definition wcdata.h:138
@ OBJECTIVE_GUARD
Definition wcdata.h:140
@ OBJECTIVE_BREAK_FORMATION
Definition wcdata.h:147
@ OBJECTIVE_WANDER
Definition wcdata.h:143
@ OBJECTIVE_EVADE_ENEMY
Definition wcdata.h:145
@ OBJECTIVE_HOME_BASE
Definition wcdata.h:139
@ OBJECTIVE_NONE
Definition wcdata.h:137
char ScrambleShipDetail_size_must_be_0x05[sizeof(ScrambleShipDetail)==0x05 ? 1 :-1]
Definition wcdata.h:778
char BriefingCharacterLayout_size_must_be_0x12[sizeof(BriefingCharacterLayout)==0x12 ? 1 :-1]
Definition wcdata.h:772
char CampaignState_size_must_be_0x58[sizeof(CampaignState)==0x58 ? 1 :-1]
Definition wcdata.h:766
char ScrambleAnimationActor_size_must_be_0x18[sizeof(ScrambleAnimationActor)==0x18 ? 1 :-1]
Definition wcdata.h:776
char NavMapObjectiveStyle_size_must_be_0x10[sizeof(NavMapObjectiveStyle)==0x10 ? 1 :-1]
Definition wcdata.h:547
char SaveGameDiskRecord_size_must_be_0x33c[sizeof(SaveGameDiskRecord)==0x33c ? 1 :-1]
Definition wcdata.h:998
char NavMapLabel_size_must_be_0x0a[sizeof(NavMapLabel)==0x0a ? 1 :-1]
Definition wcdata.h:535
SpecialManeuver
Definition wcdata.h:257
@ SPECIAL_MANEUVER_STOP_DRIFT
Definition wcdata.h:265
@ SPECIAL_MANEUVER_LOST_CONTROL
Definition wcdata.h:266
@ SPECIAL_MANEUVER_BLOWING_UP
Definition wcdata.h:267
@ SPECIAL_MANEUVER_NORMAL
Definition wcdata.h:259
@ SPECIAL_MANEUVER_SUPER_BRAKE
Definition wcdata.h:262
@ SPECIAL_MANEUVER_UNKNOWN_9
Definition wcdata.h:268
@ SPECIAL_MANEUVER_KILL_ENGINES
Definition wcdata.h:264
@ SPECIAL_MANEUVER_BOGUS_PUSH
Definition wcdata.h:263
@ SPECIAL_MANEUVER_AFTERBURNER
Definition wcdata.h:260
@ SPECIAL_MANEUVER_NONE
Definition wcdata.h:258
@ SPECIAL_MANEUVER_BOGUS_LOOP
Definition wcdata.h:261
ShipManeuver
Definition wcdata.h:206
@ MANEUVER_UNKNOWN_45
Definition wcdata.h:253
@ MANEUVER_ZIP_PAST
Definition wcdata.h:248
@ MANEUVER_WABBLE
Definition wcdata.h:221
@ MANEUVER_THINKING
Definition wcdata.h:213
@ MANEUVER_UNKNOWN_46
Definition wcdata.h:254
@ MANEUVER_KILL_MISSILE
Definition wcdata.h:239
@ MANEUVER_OUTA_HERE
Definition wcdata.h:229
@ MANEUVER_TARGET_MISSILE
Definition wcdata.h:236
@ MANEUVER_ROLL_OVER
Definition wcdata.h:222
@ MANEUVER_WARPING_OUT
Definition wcdata.h:209
@ MANEUVER_DRIFT
Definition wcdata.h:211
@ MANEUVER_BUZZ_DEBRIS
Definition wcdata.h:249
@ MANEUVER_FULL_AHEAD
Definition wcdata.h:212
@ MANEUVER_SIT_N_FIRE
Definition wcdata.h:226
@ MANEUVER_FISH_HOOK
Definition wcdata.h:224
@ MANEUVER_GLOAT
Definition wcdata.h:233
@ MANEUVER_TURN_N_FIRE
Definition wcdata.h:243
@ MANEUVER_CHILL
Definition wcdata.h:251
@ MANEUVER_VEER_AWAY
Definition wcdata.h:210
@ MANEUVER_STRAFE_N_ROLL
Definition wcdata.h:238
@ MANEUVER_HARD_TURN
Definition wcdata.h:223
@ MANEUVER_HARD_BRAKE
Definition wcdata.h:217
@ MANEUVER_SPLIT_LEFT
Definition wcdata.h:225
@ MANEUVER_TAIL_FIRE
Definition wcdata.h:234
@ MANEUVER_GET_DISTANCE
Definition wcdata.h:244
@ MANEUVER_SPLIT_RIGHT
Definition wcdata.h:231
@ MANEUVER_DROP_A_MINE
Definition wcdata.h:230
@ MANEUVER_CORKSCREW
Definition wcdata.h:245
@ MANEUVER_TRY2TAIL
Definition wcdata.h:247
@ MANEUVER_SUICIDE_RUN
Definition wcdata.h:240
@ MANEUVER_NONE
Definition wcdata.h:207
@ MANEUVER_TURN_N_KICK
Definition wcdata.h:228
@ MANEUVER_LINE_UP_DROP
Definition wcdata.h:250
@ MANEUVER_SIT_N_SPIN
Definition wcdata.h:218
@ MANEUVER_ZIG_ZAG
Definition wcdata.h:232
@ MANEUVER_ZIG_ZAG_PITCH
Definition wcdata.h:241
@ MANEUVER_STRAFE_ENEMY
Definition wcdata.h:237
@ MANEUVER_TIGHT_LOOP
Definition wcdata.h:216
@ MANEUVER_INTERCEPT
Definition wcdata.h:246
@ MANEUVER_WARPING_IN
Definition wcdata.h:208
@ MANEUVER_SAFE_BRAKE
Definition wcdata.h:242
@ MANEUVER_RAM_MISSILE
Definition wcdata.h:214
@ MANEUVER_BURNOUT
Definition wcdata.h:220
@ MANEUVER_UNKNOWN_44
Definition wcdata.h:252
@ MANEUVER_TURN_N_SPIN
Definition wcdata.h:219
@ MANEUVER_KICKIT
Definition wcdata.h:227
@ MANEUVER_TARGET_LASER
Definition wcdata.h:235
@ MANEUVER_KICK_STOP
Definition wcdata.h:215
char CockpitLayout_size_must_be_0x118[sizeof(CockpitLayout)==0x118 ? 1 :-1]
Definition wcdata.h:518
char SaveGameDiskObjective_size_must_be_0x19[sizeof(SaveGameDiskObjective)==0x19 ? 1 :-1]
Definition wcdata.h:994
CommMenuEntry
Definition wcdata.h:275
@ COMM_RETURN_TO_BASE
Definition wcdata.h:279
@ COMM_NEVER_MIND
Definition wcdata.h:276
@ COMM_ATTACK_TARGET
Definition wcdata.h:277
@ COMM_DIE_FURBALL
Definition wcdata.h:280
@ COMM_SLAG_OFF
Definition wcdata.h:281
@ COMM_HELP_ME_OUT
Definition wcdata.h:278
ObjectClass
Definition wcdata.h:37
@ OBJECT_CLASS_PLANET
Definition wcdata.h:41
@ OBJECT_CLASS_FIXED_OBJECT
Definition wcdata.h:45
@ OBJECT_CLASS_MISSILE
Definition wcdata.h:49
@ OBJECT_CLASS_SHIP
Definition wcdata.h:50
@ OBJECT_CLASS_DUST
Definition wcdata.h:42
@ OBJECT_CLASS_DEBRIS
Definition wcdata.h:44
@ OBJECT_CLASS_CAPITAL_SHIP
Definition wcdata.h:51
@ OBJECT_CLASS_STAR
Definition wcdata.h:40
@ OBJECT_CLASS_FUTURION
Definition wcdata.h:39
@ OBJECT_CLASS_ASTEROID
Definition wcdata.h:47
@ OBJECT_CLASS_PROJECTILE
Definition wcdata.h:46
@ OBJECT_CLASS_MINE
Definition wcdata.h:48
@ OBJECT_CLASS_EXPLOSION
Definition wcdata.h:43
@ OBJECT_CLASS_NULL
Definition wcdata.h:38
ShipTactic
Definition wcdata.h:150
@ TACTIC_SELF_DEFENSE
Definition wcdata.h:168
@ TACTIC_TARGETTING
Definition wcdata.h:164
@ TACTIC_ZIP_AWAY
Definition wcdata.h:166
@ TACTIC_CHASE
Definition wcdata.h:161
@ TACTIC_HEAD_HOME
Definition wcdata.h:160
@ TACTIC_PICK_ATTACK
Definition wcdata.h:169
@ TACTIC_APPROACH_TARGET
Definition wcdata.h:163
@ TACTIC_CRUISE
Definition wcdata.h:152
@ TACTIC_AVOID_OBJECT
Definition wcdata.h:157
@ TACTIC_WARP_OUT
Definition wcdata.h:158
@ TACTIC_SCOUT_AHEAD
Definition wcdata.h:154
@ TACTIC_SHAKE_ENEMY
Definition wcdata.h:165
@ TACTIC_RETREAT
Definition wcdata.h:167
@ TACTIC_NONE
Definition wcdata.h:151
@ TACTIC_LAG_BEHIND
Definition wcdata.h:155
@ TACTIC_WARP_IN
Definition wcdata.h:159
@ TACTIC_LOOK_OUT
Definition wcdata.h:162
@ TACTIC_RAM
Definition wcdata.h:156
@ TACTIC_SIT_STILL
Definition wcdata.h:153
char FireworkState_size_must_be_0x0c[sizeof(FireworkState)==0x0c ? 1 :-1]
Definition wcdata.h:346
char MissionShipRecord_size_must_be_0x36[sizeof(MissionShipRecord)==0x36 ? 1 :-1]
Definition wcdata.h:988
char SaveGameRecord_size_must_be_0x3b0[sizeof(SaveGameRecord)==0x3b0 ? 1 :-1]
Definition wcdata.h:996
char MissionNavPoint_size_must_be_0x51[sizeof(MissionNavPoint)==0x51 ? 1 :-1]
Definition wcdata.h:986
char PacketSectionHandle_size_must_be_0x14[sizeof(PacketSectionHandle)==0x14 ? 1 :-1]
Definition wcdata.h:780
char MissionHeaderDisk_size_must_be_0x18[sizeof(MissionHeaderDisk)==0x18 ? 1 :-1]
Definition wcdata.h:572