22 { 0, 0, 0 }, { -750, 0, 0 }, { 750, 0, 0 }, { 0, 0, -750 },
23 { 0, 0, 750 }, { -750, 0, -750 }, { 750, 0, -750 },
27 { 0, 0, 0 }, { 750, 0, 0 }, { -750, -100, -250 },
28 { 1500, -100, -250 }, { -1500, -200, -500 },
29 { -2250, -300, -750 }, { 2250, -200, -500 },
33 { 0, 0, 0 }, { 750, 0, -500 }, { -750, 0, -500 },
34 { 0, 0, -1000 }, { -1500, 0, -1000 }, { -750, 0, -1500 },
35 { 1500, 0, -1000 }, { 750, 0, -1500 }
38 { 0, 0, 0 }, { 750, 0, -250 }, { 0, 325, -500 },
39 { 750, -325, -750 }, { 0, 325, -500 }, { 750, -325, -750 },
40 { 0, 0, -1000 }, { 750, 0, -1250 }
43 { 0, 0, 0 }, { 0, 0, -750 }, { -750, 0, -500 },
44 { -750, 0, -1250 }, { 750, 0, -500 }, { 750, 0, -1250 },
45 { 0, 500, -500 }, { 0, 500, -1250 }
51 5, 5, 4, 4, 3, 3, 3, 2, 2, 1, 3, 3, 3, 3, 2, 2, 2, 1
80 if (pilot >= 5 && pilot <= 12)
83 if (pilot >= 14 && pilot <= 17)
84 return (
unsigned int)
ace_status((
short)(pilot - 14), 1);
110 (
signed char)(series == 0 ? 4 :
140 for (initial = 0; initial < 8; initial++) {
142 if (missionShip != -1) {
148 pilot > 4 && pilot < 14)
174 for (obj = 0; obj < 10; obj++) {
191 for (obj = 1; obj < 10; obj++) {
211 (
signed char)(type + 22);
274 }
while (section < 0x25);
341 for (section = 0; section < 0x25; section++) {
475 for (preload = 0; preload < 2; preload++) {
496 if (resource->
type != -1 &&
504 for (preload = 0; preload < 2; preload++) {
526 signed char triggerType;
534 for (obj = 1; obj < 10; obj++) {
557 for (obj = 0; obj < 10; obj++) {
564 triggerType = ((
signed char *)nav->
triggers)[trigger];
565 if (triggerType != -1) {
571 }
while (trigger < 8);
586 for (line = 0; line < 11; line++) {
604 for (personality = 0; personality < 14; personality++) {
621 loaded &= (file >= 0);
622 for (line = 0; line < 11; line++) {
624 (personality * 11 + line) * 80,
648 personality = (short)
650 if (personality >= 0 && personality < 8) {
654 if (personality > 8) {
711 for (entry = 0; entry < 10; entry++) {
726 difference->
x = left->
x - right->
x;
727 difference->
y = left->
y - right->
y;
728 difference->
z = left->
z - right->
z;
741 for (leaderRecord = record;
766 signed char navPoint)
811 for (index = 0; index < 8; index++) {
827 signed char interval;
844 }
while (other <= 9);
856 if (missionShip == -1)
865 (
short)(record->
speed + 3000),
869 if (obj != -1 || record->
state != 0)
950 &samples[0].buttons, 0, fallback);
953 &samples[1].buttons, 1, fallback);
960 unsigned short fallback)
970 sample = &samples[sampleIndex];
973 &sample->
buttons, joystick, fallback);
1002 const char *format, ...)
1006 va_start(arguments, format);
1043 *x = (short)((worldX / 100) >> 8);
1044 mapY = (short)((worldZ / 100) >> 8);
1052short MaxShort(
short a,
short b, ...);
1083 short objectiveIndex;
1117 halfWidth = (short)(width / 2);
1120 halfHeight = (short)(height / 2);
1124 (
short)((width + halfWidth) / 150),
1125 (
short)((halfHeight + height) / 135));
1138 const char *displayName;
1139 short flightPathCount;
1142 flightPathCount = 0;
1146 type = source->
type;
1147 for (; type != -1; source++, type = source->
type) {
1148 sourceIndex = source->
index;
1186 position.
x, position.
z);
InputDeviceSample aInputDevSamples[2]
signed char acShipRating[16]
signed char acShipDestroyedWeaponCountArray[16]
enum ShipTactic aeShipTacticArray[12]
MissionHeaderDisk stCurrentMissionHeader
short anShipMissionShips[16]
signed char abShipExhaustHeatList[10]
signed char acShipSpawnNavPt[16]
short nMissionMedalScoreValue
signed char acShipStressList[16]
signed char acPlayerComponentDamageList[9]
short nNavMapCoordinateScaling
enum ShipManeuver aeShipManeuversTable[12]
ObjectTypeData aObjectTypeData[OBJECT_TYPE_COUNT]
CampaignDate * pElapsedCampaignDatePtr
ShortVector aShipFormationDeltaList[10]
signed char cMissionObjectiveCountValue
short asShipAccumulatedDmg[SPACE_OBJECT_COUNT]
short nDebriefingPersonality
signed char acWingmanMessageStatesArray[16]
signed char acShipIonDriveDmg[16]
TextContext * pCurTextContext
unsigned char abSeriesAuxData[0x28]
short nArcadeBonusCountdown
signed char abFlightPathList[MISSION_OBJECTIVE_COUNT]
signed char acShipDmg[10]
signed char abShipTurnList[16]
PacketResourceDescriptor aMissionResourceDescriptors[5]
enum ShipMissionType aeShipMissionType[12]
MissionObjectiveSource aMissionObjectiveSources[16]
MissionNavPoint aMissionNavPoints[MISSION_NAV_POINT_COUNT]
short nSceneScrambleCanopyFrameValue
int bCurrentPlayerDestroyed
enum ObjectClass aeObjectClass[SPACE_OBJECT_COUNT]
short bCurrentExpandedMemoryAvail
signed char acShipPointingModeList[16]
const short * apCannedSequenceList[12]
short asCannedCommands[16]
FixedVector aShipVelocity[SPACE_OBJECT_COUNT]
short nStartNavPointOverride
short asCapitalShipViewFramesTable[16]
short nCarrierMissionShipIndexValue
FixedVector aShipMissionSpotArray[10]
int nSceneResourceBudgetValue
void * aapPacketReferences[4][0x25]
short asShipWingLeaderArray[16]
short asObjectCounterArray[SPACE_OBJECT_COUNT]
signed char cCurrentObjective
CampaignState stCampaignState
short asObjectScreenXList[SPACE_OBJECT_COUNT]
unsigned char bLandingAuthorized
MissionObjective aMissionObjectivesArray[MISSION_OBJECTIVE_COUNT]
struct Shape * apObjShapeArray[SPACE_OBJECT_COUNT]
short nCurrentActiveInputDevice
short nCurrentNavigationPoint
enum ObjectType aeObjectTypeList[SPACE_OBJECT_COUNT]
ObjectResourceSlot aObjectResourceSlotsArray[4]
signed char acTurnIntervalArray[16]
short nNavMapMaximumPositionX
short nNavMapCenterPositionY
MissionShipRecord aMissionShips[MISSION_SHIP_STORAGE_COUNT]
signed char acPreviousAttackers[16]
short nCurrentHazardFieldTotal
short nShipMissionIndices[10]
FixedVector aShipPositionsArray[SPACE_OBJECT_COUNT]
DiskFileRecord * pDiskFileRecords
signed char cCurrentObjResourceLogicalFile
short nNavigationMapMinimumCoordX
signed char acShipCommunicatorArray[16]
signed char cCurrentNavPtIdx
struct Shape * apCommunicationPortraitShapesTable[16]
char * aapszPilotSpeeches[14][11]
int nCurrentWingmanKilledThisMission
enum SpecialManeuver aeSpecialManeuvers[12]
signed char acTurnRegulatorsArray[16]
CampaignDate * pCurrentCampaignDate
short nNavigationMapMinimumPositionY
static int bInitialFormationSetup
static int anPilotTurnInterval[18]
static ShortVector aaFormationPositions[5][8]
void FreeAllPilotTalk(void)
enum ObjectType playerShipType
int personalityDeathMission[8]
enum ObjectType preloadObjectTypes[2]
signed char triggers[4][2]
enum ShipMissionType missionType
signed char targetMissionIndex
MissionShipBehaviour behaviour
signed char leaderMissionIndex
signed char formationIndex
signed char formationSpot
unsigned char * animation
unsigned char * animation
Umbrella header for the game core.
void clear_alert(short obj)
int shape_loaded(enum ObjectType type)
int __stdcall GetJoystickPosition(int *x, int *y, unsigned int *buttons, short joystick, unsigned short fallback)
short find_ships_sphere(short missionShip)
void Build_objective_list(void)
void * AllocateTaggedMemory(int size, unsigned short flags)
void get_pilot_talk(short personality)
int new_sphere_shapes(MissionNavPoint *navPoint)
int locate_ship(short missionShip, FixedVector *point)
void approve_xyz(short obj, short minimum, short maximum)
void CheckPoint(short x, short y)
unsigned int init_intelligence_data(short obj)
short LocateMobileObjective(short objective)
int set_up_action_sphere(short navPoint)
int advance_canned_sequence(short obj)
unsigned int Set_up_ship_info(short obj, short missionShip, signed char navPoint)
void remove_object(short obj)
void alter_pitch(short angle, short obj)
void DrawNavTextLine(unsigned char alignment, unsigned short colour, const char *format,...)
short get_shape_slot(void)
void * FetchDiskPacketRetrying(short logicalFile, short section, short flags)
void AddFixedVectors(const FixedVector *left, const FixedVector *right, FixedVector *sum)
void FigureArcadeTime(void)
void set_objects_data(short obj, enum ObjectType type, short owner)
void set_up_next_wave(void)
void __stdcall PromptInsertNumberedDisk(short logicalFile)
void alter_roll(short angle, short obj)
unsigned int spacetrack(int track, int mode, short enabled)
void SetNavMapCoordinateScaling(short enabled)
short __stdcall SampleBothJoysticks(InputDeviceSample *samples, short fallback)
int __stdcall ReadDataFileAtOffset(unsigned short fd, int offset, unsigned int length, void *data)
int LoadPacketResourceList(PacketResourceDescriptor *resources, short flags, int availableBytes)
short MinShort(short a, short b)
unsigned int find_next_ship_turn_slot(short obj)
void ShowModalMessage(const char *format,...)
unsigned int GetScreenUpdateFlag(void)
unsigned int offset_location(short obj, const ShortVector *offset, FixedVector *location)
void __stdcall CloseDataFile(unsigned short fd)
int explode(short attacker, short victim)
void GetArcadeBonus(void)
unsigned int init_3Space_objects()
void copy_frame(short source, short destination)
char *__stdcall DosStrcpy(char *dst, const char *src)
unsigned int initialize_view_buffer(void)
void free_pilot_talk(short personality)
int set_new_objective(short pathIndex)
void prepare_ace(short ace)
void alter_yaw(short angle, short obj)
void remove_nav_point_objects(void)
int release_all_capital_ship_shapes(void)
short initialize_ship(enum ObjectType type, short owner)
short __stdcall OpenDataFileOrDie(const char *path)
void LoadCommPortraitShape(short face, signed char alternate)
unsigned int is_alive(int pilot)
unsigned int room_for_me(short obj, short minimum)
void __stdcall DrawTextString(const char *text)
void zero_vector(FixedVector *vector)
short GetJoystickButtons(void)
unsigned int LoadMissionData(short series, short mission)
short init_ship(short missionShip, short navPoint)
void prepare_mission(void)
int release_capital_ship_shapes(enum ObjectType type)
void FormatTextTokens(void(__stdcall *writer)(int), const char *format, va_list arguments)
unsigned int InitializeCockpitResources(signed char mode)
void SampleActiveJoystickDevice(void)
void nav_getxy(short *x, short *y, int worldX, int worldZ)
short get_face(short rating, unsigned int side)
unsigned int reset_mission_type(short obj, enum ShipMissionType missionType)
void ScaleNavMapCoordinates(short *x, short *y, short mapX, short mapY)
unsigned int init_mission(short series, short mission)
unsigned int is_team_member(short missionShip)
short mobile_objective(short objective)
short ReadJoystickButtons(void)
unsigned int init_personalities(void)
void random_radial(const FixedVector *center, short radius, FixedVector *position)
short MaxShort(short a, short b,...)
void clean_up_cockpit(void)
int shape_needed(const MissionNavPoint *navPoint, enum ObjectType type)
void ScaleNavMapMarkerSize(short *size)
unsigned int set_formation_position(short obj, const MissionShipRecord *record)
void FreePacketAndClear(void *slot, unsigned short releaseFlags)
int load_ship(enum ObjectType type, short slot)
void __stdcall AppendTextCharacter(char character)
short find_ship_index(short missionShip)
unsigned int check_futurion(short i)
void set_sphere_point(const MissionShipRecord *record, FixedVector *position)
void add_hazard_field(enum ObjectType type, FixedVector center, short radius, short density)
void IncludeNavMapWorldPoint(int worldX, int worldZ)
int free_ship(short slot)
void remove_all_hazards(void)
short ace_status(short ace, unsigned char bits)
unsigned int sub_int_vector(const ShortVector *left, const ShortVector *right, ShortVector *difference)
int __stdcall SampleJoystickDevice(InputDeviceSample *samples, short joystick, unsigned short fallback)
#define SPACE_LAST_MOVING_OBJECT
@ MISSION_TYPE_WARP_ARRIVE
@ MISSION_TYPE_CANNED_SEQUENCE
#define ACTIVE_MISSION_SHIP_COUNT
@ OBJECT_TYPE_TIGERS_CLAW
@ OBJECT_TYPE_DEBRIS_METAL_SHEET
@ OBJECT_TYPE_DEBRIS_WING
@ OBJECT_TYPE_ASTEROID_FIELD
@ OBJECT_CLASS_CAPITAL_SHIP
#define MISSION_SHIP_SCAN_LIMIT