19#define WC1_LOGIC_SOURCE
94 63, 64, 65, 66, 67, 68, 69, 70
233 short collisionRadius;
247 collisionRadius += 30;
253 if (((
long)collisionRadius + 1500) * 0x100 < distance)
260 if (relativeSpeed == 0)
272 if (range > collisionRadius) {
273 if ((collisionRadius * 2 >> 4) > range)
282 step =
MaxShort(1, (
short)((time - elapsed) >> 1));
288 if (collisionRadius >= range)
290 }
while (collisionFound == 0);
334 for (other = 0; other <= 60; other++) {
339 if (closestTime > time) {
345 if (candidate != -1) {
374 int objectIndex = obj;
380 else if (obj < -amount)
385 else if (obj < -amount)
394 unsigned int queryMode;
397 for (obj = 0; obj < 10; obj++) {
444 if (missionShip != -1) {
445 for (obj = 0; obj < 10; obj++) {
473 for (other = 0; other < 10; other++) {
483 if (canContinue != 0) {
491 return canContinue == 0;
516 for (other = 0; other < 10; other++) {
539 for (other = 0; other < 10; other++) {
566 for (other = 0; other < 10; other++) {
582 if (choices[0] == -1)
587 if (choices[0] == -1)
600 for (obj = 0; obj < 10; obj++) {
638 while (member != -1) {
735 current = *currentState;
736 if (current < SPECIAL_MANEUVER_LOST_CONTROL || special > current)
737 *currentState = special;
798 (
int)distance << 8, point);
808 -((
int)distance << 8), point);
826void fire(
short obj,
short target);
834unsigned int dead_ship(
short missionShip);
839int explode(
short attacker,
short victim);
852 struct Shape *shape,
short frame);
863 for (other = 0; other < 10; other++) {
871 if (distance < range &&
892 for (other = 0; other < 10; other++) {
915 for (other = 0; other < 10; other++) {
931 for (other = 0; other < 10; other++) {
982 short defendedObject = obj;
984 for (obj = 0; obj < 10; obj++) {
1010 unsigned short range;
1013 for (other = 0; other < 10; other++) {
1023 if (target == -1 || range <
nTgtRange) {
1030 return target != -1;
1051 for (other = 0; other < 10; other++) {
1057 if (distance < range) {
1083 if (target == -1 && index > 0) {
1089 return target != -1;
1119 for (other = 0; other < 10; other++) {
1136 if (missionShip != -1 &&
1153 return (
short)((rating - 5 >> 1) + 4);
1154 return (
short)rating - 10;
1173 targetShip = missionShip;
1177 navIndex++, navPoint++) {
1178 for (missionShip = 0; missionShip < 10; missionShip++) {
1179 if (navPoint->
missionShips[missionShip] == targetShip) {
1180 if (navPoint->
type == 1)
1183 fallback = navIndex;
1187 if (fallback != -1) {
1188 navIndex = fallback;
1213 if (navPoint != -1) {
1237 while (++pathIndex < 16) {
1248 if (objective == -1)
1274 for (index = 0; index < 10; index++) {
1275 short checkedObject = obj;
1280 obj = checkedObject;
1330 unsigned int result = 0;
1353 short input,
short outputMinimum,
1354 short outputMaximum)
1356 if (input < inputMinimum)
1357 return outputMinimum;
1358 if (input > inputMaximum)
1359 return outputMaximum;
1360 return (
short)(((int)(outputMaximum - outputMinimum) *
1361 (int)(input - inputMinimum)) /
1362 (int)(inputMaximum - inputMinimum)) + outputMinimum;
1396 unsigned short flags,
short defaultLogicalFile)
1403 defaultLogicalFile, resources->
section, flags);
1418 unsigned short releaseFlags)
1430 short flags,
int availableBytes)
1441 if (packetSize < availableBytes) {
1445 (
unsigned short)flags);
1447 return availableBytes;
1448 availableBytes -= packetSize;
1453 return availableBytes;
1472 }
while (index < 6);
1484 struct Shape *backdrop;
1486 unsigned int result;
1491 mode = (
signed char)requestedMode;
1589 struct Shape *cinematicBackdrop;
1644 0x753000, &position);
1679 for (slot = 0; slot < 4; slot++) {
1744 unsigned int result;
1831 maximumSize =
MaxShort(maximumSize, (
short)backgroundSize);
1834 if (maximumSize != 0)
1841 for (frame = 0; frame < 8; frame++) {
1844 maximumSize =
MaxShort(maximumSize, (
short)backgroundSize);
1846 if (maximumSize != 0)
1853 for (frame = 0; frame < 9; frame++) {
1855 maximumSize =
MaxShort(maximumSize,
1858 if (maximumSize != 0)
1924 }
while (slot <= 3);
2060 unsigned char *packet;
2068 logicalFile, (
short)(variant + 1), 0);
2071 logicalFile, (
short)(variant + 3), 0);
2073 logicalFile, (
short)(variant + 5), 0);
2076 packet + *(
unsigned int *)(packet + 0);
2078 packet + *(
unsigned int *)(packet + 4);
2095 signed char *script,
signed char command)
2099 while (*script != 0) {
2101 if (opcode == command) {
2118 while (*script++ != -1) {
2131 return *script != 0 ? script : 0;
2139 if (current <= goal)
2141 }
else if (delta > 0) {
2142 if (current >= goal)
2144 }
else if (current == goal) {
2155 signed char *commandStart;
2156 signed char *cursor;
2160 unsigned short complete;
2161 unsigned short goalFlags;
2162 signed char property;
2173 delay =
object->
delay;
2176 cursor =
object->repeatCursor;
2178 cursor =
object->scriptCursor;
2180 while (*cursor != 0 && stop == 0) {
2181 switch (*cursor++) {
2183 property = *cursor++;
2184 value = *(
short *)cursor;
2188 object->frame = (short)(object->
frame + value);
2189 object->deltaFrame = value;
2192 object->rotation = (short)(object->
rotation + value);
2193 object->deltaRotation = value;
2195 object->rotation = (short)(
2196 ((
unsigned short)(0x167 - object->
rotation) /
2197 0x168) * 0x168 + object->
rotation);
2199 object->rotation = (short)(
2201 ((
unsigned short)object->
rotation / 0x168) *
2205 object->scale = (short)(object->
scale + value);
2206 object->deltaScale = value;
2207 if (object->
scale < 0x40)
2208 object->scale = 0x40;
2209 else if (object->
scale > 0x1fff)
2210 object->scale = 0x1fff;
2213 delay = (short)(delay + value);
2216 object->x = (short)(object->
x + value);
2217 object->deltaX = value;
2220 object->y = (short)(object->
y + value);
2221 object->deltaY = value;
2231 commandStart = cursor - 1;
2232 object->repeatCursor = commandStart;
2234 layer =
object->layer;
2236 while (frame != -1) {
2239 viewport, (
short)(object->
x + xOffset), object->
y,
2243 xOffset = (short)(xOffset + 320);
2250 commandStart = cursor - 1;
2252 layer =
object->layer;
2255 while (frame != -1) {
2258 viewport, (
short)(object->
x + xOffset), object->
y,
2261 xOffset = (short)(xOffset + 320);
2264 cursor = commandStart;
2272 labelNumber = *(
short *)cursor;
2273 label =
object->scriptStart;
2277 value = *(
short *)label;
2279 }
while (value != labelNumber);
2284 property = *cursor++;
2285 value = *(
short *)cursor;
2289 object->frame = value;
2292 object->rotation = value;
2294 object->rotation = (short)(
2295 ((
unsigned short)(0x167 - object->
rotation) /
2296 0x168) * 0x168 + object->
rotation);
2298 object->rotation = (short)(
2300 ((
unsigned short)object->
rotation / 0x168) *
2304 object->scale = value;
2305 if (object->
scale < 0x40)
2306 object->scale = 0x40;
2307 else if (object->
scale > 0x1fff)
2308 object->scale = 0x1fff;
2327 property = *cursor++;
2328 value = *(
short *)cursor;
2332 object->goalFlags |= 0x10;
2333 object->goalFrame = value;
2336 object->goalFlags |= 1;
2337 object->goalRotation = value;
2340 object->goalFlags |= 2;
2341 object->goalScale = value;
2344 object->goalFlags |= 4;
2345 object->goalX = value;
2348 object->goalFlags |= 8;
2349 object->goalY = value;
2356 objectSet = (short)*cursor++;
2357 objectIndex = (short)*cursor++;
2359 (short)(objectCount * objectSet) + objectIndex];
2360 object->
x = source->
x;
2361 object->y = source->
y;
2362 object->rotation = source->
rotation;
2363 object->scale = source->
scale;
2364 object->frame = source->
frame;
2374 object->x = *(
short *)cursor;
2376 object->y = *(
short *)cursor;
2378 object->rotation = *(
short *)cursor;
2380 object->scale = *(
short *)cursor;
2382 object->frame = *(
short *)cursor;
2388 if (object->
delay != 0) {
2393 object->scriptCursor = cursor;
2394 goalFlags =
object->goalFlags;
2395 object->delay = delay;
2396 if (complete == 0 && goalFlags != 0) {
2397 if ((goalFlags & 0x10) != 0)
2400 if ((goalFlags & 4) != 0)
2403 if ((goalFlags & 8) != 0)
2406 if ((goalFlags & 2) != 0)
2409 if ((goalFlags & 1) != 0)
2420 unsigned short complete;
2425 short skipRemaining;
2440 (short)(objectCount * animation);
2442 if (objectCount > 0) {
2443 remaining = objectCount;
2445 if (object->
layer == 0)
2450 object->scriptStart +=
object->scriptOffset;
2451 object->scriptCursor =
object->scriptStart;
2453 }
while (--remaining != 0);
2465 if (objectCount > 0) {
2466 remaining = objectCount;
2471 }
while (--remaining != 0);
2479 if (complete == 0) {
2492 while (complete == 0 &&
2495 if (objectCount > 0) {
2496 skipRemaining = objectCount;
2502 }
while (--skipRemaining != 0);
2508 }
while (complete == 0);
void(__cdecl *pIxFree)(void *)
unsigned char bEscapePressedFlag
short asCollisionTimes[10]
struct Shape * pCockpitExplosionShape
Viewport stPilotHandBackdropView
signed char acShipRating[16]
short nLogicLastFoundShipValue
short bSlowSceneAnimation
enum ShipTactic aeShipTacticArray[12]
PacketResourceDescriptor aCockpitResourceDescriptors[19]
short asObjScreenScalesArray[SPACE_OBJECT_COUNT]
unsigned int anShipAlertFlags[12]
short anShipMissionShips[16]
TextContext stRightVduTxtContext
unsigned char bCommVideoEnabled
Viewport stPilotHandComposite
struct Shape * pConfedCommBackground
struct Shape * pCockpitDamageShape
Viewport stRightVduViewport
short nRenderedSpaceFrame
signed char acShipStressList[16]
signed char aShipWeaponsTable[10][0x47]
short asObjScreenAngles[SPACE_OBJECT_COUNT]
unsigned char * pRadarMarkerBackground
enum ShipManeuver aeShipManeuversTable[12]
ObjectTypeData aObjectTypeData[OBJECT_TYPE_COUNT]
short nCockpitExplosionFrame
signed char abShipNavPtIdx[16]
unsigned char cBlackColour
unsigned int anVduModeCache[2]
char szTxtWorkspaceBuffer[256]
short nConvTextColorValue
struct Shape * pCinematicViewBackdropPtr
short asCollisionPartnerTable[10]
FixedVector aShipDestinationsArray[10]
ConstellationObjectDefinition * pConstellationDefinitionsPtr
signed char abFlightPathList[MISSION_OBJECTIVE_COUNT]
struct Shape * pCockpitWeaponShapePtr
short asCollisionDelayList[16]
short asShipMaximumSpeedArray[16]
signed char acShipDmg[10]
unsigned char * pSceneAnimationDefinitionsPtr
unsigned char * pDamageDisplayBackground
signed char abShipTurnList[16]
unsigned char * pReleaseWeaponDisplayBackground
short nSceneAnimationDelayFrames
short nFacingToTargetValue
PacketResourceDescriptor aMissionResourceDescriptors[5]
enum ShipMissionType aeShipMissionType[12]
TextContext stCurrentCockpitReadoutTextCtx
enum ShipObjective aeShipObjectiveList[12]
short asTargetListRangesArray[16]
MissionNavPoint aMissionNavPoints[MISSION_NAV_POINT_COUNT]
int bCurrentPlayerDestroyed
enum ObjectClass aeObjectClass[SPACE_OBJECT_COUNT]
struct Shape * pCurrentConstellationShape
short aasShipArmor[10][4]
signed char acFormationMemberLists[16]
struct Shape * pCurrentSceneAnimationPrimaryShape
Viewport stCurrentConvTextViewport
short nPlayerCollisionObject
short aPaletteFadeEntries[6][3]
struct Shape * pTgtLockShapePtr
short nClosestVisibleObject
FixedVector aShipVelocity[SPACE_OBJECT_COUNT]
unsigned int bIntroSceneResourcesActive
short asObjectCollisionRadius[64]
short asShipAfterburnerTimer[16]
signed char cCurrentCockpitView
unsigned char cPrimaryViewBufferColour
signed char cCockpitLogicalFile
char szDefaultTxtBuf[0xc8]
FixedVector aShipMissionSpotArray[10]
unsigned char * pSceneAnimationTextData
short asDamageFlashColour[3]
int nSceneResourceBudgetValue
struct Shape * pCommStaticShape
struct Shape * pSceneAnimationSecondaryShape
Viewport stSpaceBufferViewport
short asShipWingLeaderArray[16]
TextContext stLeftVduTextContext
unsigned char cPrimaryTextColour
unsigned char * pSceneAnimationSceneDataPtr
CampaignState stCampaignState
struct Shape * apCockpitShapesList[4]
struct Shape * pCurrentPilotHandShapePtr
short asObjectScreenXList[SPACE_OBJECT_COUNT]
short nCurrentSpaceFrameValue
int bMissileCameraEnabled
MissionObjective aMissionObjectivesArray[MISSION_OBJECTIVE_COUNT]
struct Shape * apObjShapeArray[SPACE_OBJECT_COUNT]
struct Shape * pKilrathiCommBackground
PacketResourceDescriptor aCommon3SpaceResources[12]
signed char cScreenViewMode
unsigned char abCollisionAlertTargets[0x10]
short nCurrentNavigationPoint
enum ObjectType aeObjectTypeList[SPACE_OBJECT_COUNT]
short asObjectViewFrames[SPACE_OBJECT_COUNT]
Viewport stModalSrcViewport
CockpitLayout stCockpitLayout
ObjectResourceSlot aObjectResourceSlotsArray[4]
struct Shape * pCockpitPilotShape
ScreenViewportPacket * pCurrentScreenViewportPkt
MissionShipRecord aMissionShips[MISSION_SHIP_STORAGE_COUNT]
struct Shape * pCockpitIndicatorShape
unsigned char bRadioSilence
short nShipMissionIndices[10]
FixedVector aShipPositionsArray[SPACE_OBJECT_COUNT]
DiskFileRecord * pDiskFileRecords
FixedVector aShipFwdVec[64]
signed char acShipTargetTable[16]
SceneAnimationObject * pSceneAnimationObjects
signed char cCurrentNavPtIdx
unsigned char * pSceneAnimationPacketPtr
struct Shape * apCommunicationPortraitShapesTable[16]
unsigned char * pCockpitExplosionBackground
int nInitialFlightMusicPending
enum SpecialManeuver aeSpecialManeuvers[12]
struct Shape * pLogicRearViewBackdropPtr
unsigned char abAudioPlaybackSlots[0xf8]
PacketResourceDescriptor aCockpitSecondaryResources[5]
short asSceneAnimationLogicalFiles[8]
int bCockpitResourcesActive
int FindEnemyAimingWithinRange(short obj, short range)
PacketResourceDescriptor aCockpitPrimaryResources[8]
short asConstellationObjectIndices[4]
unsigned int FireOnAlternateTurns(short obj)
short bSceneAnimationWaitCommand
unsigned char aceFlags[4]
ShortRect pilotHandBounds[5]
ShortRect rightVduBounds[5]
ShortRect leftVduBounds[5]
ShortPoint readoutOrigins[4][6]
unsigned char * animation
Umbrella header for the game core.
void * PackedResourcePointer
void clear_alert(short obj)
void set_up_screen_viewport(signed char mode)
unsigned int approach_full_speed(short ship)
int any_enemy_tail(short obj)
unsigned int RefreshMemoryStatusOverlay(void)
unsigned short __stdcall UpdateSceneAnimationObject(SceneAnimationObject *object, Viewport *viewport)
short real_crash_time(short obj, short other)
short find_ships_sphere(short missionShip)
unsigned int approach_zero_speed(short ship)
void * AllocateTaggedMemory(int size, unsigned short flags)
unsigned int free_cockpit(void)
unsigned int get_rear_spot(short obj, unsigned short distance, FixedVector *point)
void ace_greeting(short obj)
void FormatTextBufferFromStart(const char *format,...)
unsigned int initialize_cockpit(int requestedMode)
unsigned int close_behind()
void * reset_cockpit(void)
int select_safe_target(short obj)
int locate_ship(short missionShip, FixedVector *point)
short skill_rating(short obj)
unsigned int free_3Space_objects(void)
void * LoadPacketAllocated(short logicalFile, short section)
short detect_collisions(short obj)
unsigned int InitializeTextContextFromFont(TextContext *context, short fontIndex, unsigned char colour, signed char background)
unsigned int reset_objective(short ship, enum ShipObjective objective)
unsigned short LoadSceneAnimationResources(short scene, short variant)
unsigned short set_alert(short obj, unsigned int bits)
unsigned int get_first_follow_point(short obj, FixedVector *point)
short select_weighted_value(short *choices)
short distance_from_point(short obj, const FixedVector *point)
void ship_vs_ship(short obj, short other)
unsigned int find_squad_center(FixedVector *center)
unsigned int steady_object(short ship)
void engage(short obj, short target, enum ShipObjective objective)
unsigned int free_3Space(void)
unsigned short __stdcall AllocateViewport(Viewport *viewport, short clearColour, short flags)
unsigned int __stdcall GetPacketSize(const char *filename, short section)
void remove_object(short obj)
unsigned int get_front_spot(short obj, unsigned short distance, FixedVector *point)
unsigned int HasSpeechBuffer(void)
void alter_pitch(short angle, short obj)
int missile_on_tail(short obj)
unsigned int free_inflight_music(void)
long Vector_magnitude(const FixedVector *vector)
void * FetchDiskPacketRetrying(short logicalFile, short section, short flags)
void AddFixedVectors(const FixedVector *left, const FixedVector *right, FixedVector *sum)
void __stdcall SetTextCursor(unsigned short a, unsigned short b)
int hostile_sphere(short obj, short navPoint)
void check_next_wave(void)
short evaluate_damage(short obj)
unsigned int dead_ship(short missionShip)
void __stdcall PromptInsertNumberedDisk(short logicalFile)
int abandoned(short obj, short other)
unsigned int ships_within_range(short obj, short other, short range)
void clear_cockpit_damage(void)
void ResetPilotHandAnimation(void)
void DrawSpriteScaled(Viewport *viewport, short x, short y, struct Shape *shape, short frame, short angle, short scale, short flip)
void alter_roll(short angle, short obj)
int being_tailed(short obj, short other)
unsigned int load_common_3Space_objects(void)
void fire_when_ready(short obj, short aimed)
void DrawSpriteDefault(Viewport *viewport, short x, short y, struct Shape *shape, short frame)
int IsFrameTickElapsed(void)
short nearest_enemy_range(short obj)
short FixedToShortSaturating(int value)
void StopMusicUnlessSuppressed(void)
void __stdcall SetPaletteEntry(short index, short *rgb)
int LoadPacketResourceList(PacketResourceDescriptor *resources, short flags, int availableBytes)
unsigned int triumph(short obj)
void clear_head_up_display(void)
short MinShort(short a, short b)
short crash_time(short obj, short other)
unsigned int target_within_range(short obj)
short find_ratio(short inputMinimum, short inputMaximum, short input, short outputMinimum, short outputMaximum)
short scan_for_enemy(short obj, unsigned short range)
unsigned int PreloadMusicTrackHook(short track)
unsigned int GetScreenUpdateFlag(void)
void InvalidateVduMode(short i)
void ClearHudGunReadouts(void)
unsigned int init_constellation(short scene)
unsigned int approach_ship_speed(short obj, short other)
unsigned int approach_half_speed(short obj)
void __stdcall SetTextContext(TextContext *context)
void clear_crash_cache(void)
short distance_from_object(short obj, short other)
int explode(short attacker, short victim)
void ClearInputKeyState(void)
unsigned int approach_speed(short ship, int targetSpeed)
void try2end_collision_alert(short obj)
unsigned int init_3Space_objects()
short mine_available(short obj)
void inherit_leader_mission(short obj)
unsigned int initialize_view_buffer(void)
unsigned int init_formation_burst(short obj)
short signed_random(short range)
short visited(short objective)
void prepare_ace(short ace)
void alter_yaw(short angle, short obj)
void ReleaseSceneAnimationResources(void)
void __stdcall SetFrameTimerPeriodDirect(short p)
int report_kilrathi_rout(int mode)
unsigned int ResetCockpitPaletteEntries(void)
unsigned int set_special(short ship, enum SpecialManeuver special)
unsigned int change_mission_type(short obj, enum ShipMissionType missionType)
unsigned int init_inflight_music(void)
void ScaleFixedVector(const FixedVector *vector, int scale, FixedVector *result)
signed char no_goal(short ship)
short build_target_list(short obj, short range)
void send_message(short obj, short message)
int attacker_in_range(short obj, unsigned short range)
unsigned int alter_objective(short ship, enum ShipObjective objective)
long DivideFixed(int numerator, int denominator)
void explosion_draw(void)
void zero_vector(FixedVector *vector)
int gone_ship(short missionShip)
unsigned int ReleaseMusicTrackHook(short track)
short real_velocity(short obj)
unsigned int alter_tactic(short ship, enum ShipTactic tactic)
unsigned int FreeConstellationObject(short object)
signed char *__stdcall FindSceneAnimationCommand(signed char *script, signed char command)
unsigned int free_constellation(void)
int any_enemy(short obj, short range)
short FindNearestNavPoint(short ship)
unsigned int approach_min_speed(short obj)
short __stdcall SceneAnimationGoalReached(short delta, short current, short goal)
void ClearViewport(Viewport *viewport, short colour)
unsigned int remove_all_3d_objects(void)
short try2rout(short obj)
void flag_ace(short ace, unsigned char bits)
short detect_enemy_tail(short obj)
short find_vacant_3d_object(void)
void get_facing_range_from_object(short obj, short other)
unsigned int InitializeConstellationObject(const ConstellationObjectDefinition *definition, short object)
void start_collision_alert(short obj, short other)
void try2reset_maneuver(short obj, short maneuver)
unsigned int IsVectorWithinRange(FixedVector *vector, short range)
unsigned int InitializeCockpitResources(signed char mode)
void ResetScannerContacts(void)
unsigned int get_follow_point(short obj, FixedVector *point)
void unflag_ace(short ace, unsigned char bits)
unsigned int InitializeCockpitReadout(signed char slot, TextContext *context)
unsigned int approach_cruise_speed(short ship)
void set_mode(short i, int state)
void PlaySceneAnimation(char *text, short animation, short duration)
void fire(short obj, short target)
unsigned int reset_tactic(short ship, enum ShipTactic tactic)
void inherit_leader(short obj)
void __stdcall free_viewport(Viewport *viewport)
void ReleasePacketHandle(void *handle)
unsigned int reset_mission_type(short obj, enum ShipMissionType missionType)
void divide_vector(FixedVector *vector, int divisor, FixedVector *result)
void ComputeVectorDelta(const FixedVector *from, const FixedVector *to, FixedVector *delta)
unsigned int init_personalities(void)
int skill_check(short obj, short difficulty)
void __stdcall SetViewportRect(Viewport *viewport, unsigned short left, unsigned short top, unsigned short right, unsigned short bottom)
unsigned int build_squad_list(short leader)
short MaxShort(short a, short b,...)
int target_valid(short obj)
int FreeShapeSet(PacketResourceDescriptor *resources, unsigned short releaseFlags)
void maneuver_complete(short ship)
void FreePacketAndClear(void *slot, unsigned short releaseFlags)
int load_ship(enum ObjectType type, short slot)
short normal_speed(short obj)
unsigned int ReleaseTextFont(short fontIndex)
short find_ship_index(short missionShip)
int __stdcall MeasureShapeFrameStorage(struct Shape *shape, short frame)
int trim_goals(short obj, short amount)
int is_ship_tailing_player_target(short obj)
int LoadShapeSet(PacketResourceDescriptor *resources, unsigned short flags, short defaultLogicalFile)
void FreeCommDisplayResources(void)
int alert_flag(short ship, unsigned int bits)
int free_ship(short slot)
void remove_all_hazards(void)
void reset_maneuver(short ship, short maneuver)
short ace_status(short ace, unsigned char bits)
short RandomBelowOrEqual(short n)
unsigned int unactive(short ship)
char * AddPCName(const char *text)
short find_weapon(short obj, enum ObjectType weaponType)
short message_showing(void)
@ OBJECT_TYPE_HYPERSPACE_JUMP_FLASH
@ OBJECT_TYPE_NEUTRON_PARTICLE_GUN
@ OBJECT_TYPE_HEAT_SEEKING_MISSILE
@ OBJECT_TYPE_DEBRIS_METAL_SHEET
@ OBJECT_TYPE_MASS_DRIVER_CANNON
@ OBJECT_TYPE_DEBRIS_WING
@ OBJECT_TYPE_DEBRIS_GLASS
@ OBJECT_TYPE_IMAGE_RECOGNITION_MISSILE
@ OBJECT_TYPE_DEBRIS_O_RING
@ OBJECT_TYPE_LASER_CANNON
@ OBJECT_TYPE_LASER_SPARK
@ OBJECT_TYPE_DEBRIS_PIPE
@ OBJECT_TYPE_DUMB_FIRE_MISSILE
@ OBJECT_TYPE_DEBRIS_SHIP_GIRDER_CHUNK
@ OBJECT_TYPE_SPARK_TRAIL
@ OBJECT_TYPE_DEBRIS_SHIP_TUBING
@ OBJECTIVE_BREAK_FORMATION
@ SPECIAL_MANEUVER_BLOWING_UP
@ SPECIAL_MANEUVER_UNKNOWN_9
@ SPECIAL_MANEUVER_AFTERBURNER
#define ACTIVE_MISSION_NAV_POINT_COUNT
@ OBJECT_CLASS_CAPITAL_SHIP