17 'j',
'e',
'f',
'f', 0, 0, 0, 0
34 unsigned short tagged;
36 tagged = flags & 0x40;
57 for (group = 0; group < 4; group++) {
58 for (i = 0; i < 0x25; i++) {
59 if (*reference == handle)
86 short distance,
struct Shape *shape,
87 short frame,
short type,
short scale)
109 "Destroying the remains of the Kilrathi naval power in the sector...",
110 "The Tiger's Claw closes in for the kill...",
111 "And the last Kilrathi planet in the sector falls!",
116 "Fleeing from the overwelming Kilrathi forces in the sector...";
119 "The Tiger's Claw manages to jump out. Barely.";
122 "There'll be other sectors, other battles...";
125 { -55, 42, 0 }, { -68, 46, 0 },
126 { 60, 42, 16 }, { 73, 46, 16 }
136 struct Shape *planetShape;
137 struct Shape *projectileShape;
140 short spawnCountdown;
147 short animationFrame;
165 planetShape, 0, 0, 0x50);
169 short initializationCount;
171 initializationCount = 16;
172 projectile = projectiles;
174 projectile->
scale = -1;
176 initializationCount--;
177 }
while (initializationCount != 0);
183 verticalOffset = -70000;
200 if (textIndex != -1) {
215 projectile = projectiles;
217 if (projectile->
scale != -1 &&
221 (short)(projectile->
x / projectile->
depth);
223 (short)(projectile->
y / projectile->
depth);
224 projectile->
scale = 0x10000L / projectile->
depth;
225 if (projectile->
scale < 16) {
226 projectile->
scale = -1;
234 projectileShape, 1, 0,
235 (
short)projectile->
scale,
237 projectile->
depth += 100;
238 projectile->
y += 4000;
245 if (frame < 170 && --spawnCountdown < 1) {
246 projectile = projectiles;
250 if (projectile->
scale == -1) {
251 vacant[vacantCount] = slot;
253 if (vacantCount == 2)
260 if (vacantCount > 1) {
264 projectile = &projectiles[vacant[0]];
265 projectile->
depth = planetDepth;
267 ((origin->
x * planetScale) >> 8) * planetDepth;
269 ((origin->
y * planetScale) >> 8) *
270 projectile->
depth + verticalOffset;
271 projectile->
scale = 0x100;
272 projectile->
flip = origin->
z;
273 projectile->
depth += 40;
275 projectile = &projectiles[vacant[1]];
276 projectile->
depth = planetDepth;
278 (((origin->
x - 4) * planetScale) >> 8) *
281 ((origin->
y * planetScale) >> 8) *
282 projectile->
depth + verticalOffset;
283 projectile->
scale = 0x100;
284 projectile->
flip = origin->
z;
285 projectile->
depth += 40;
290 planetScale = 0x40000L / planetDepth;
291 projectedY = verticalOffset / planetDepth;
295 projectileShape, 0, 0, (
short)planetScale, 0);
296 verticalOffset += 200;
309 }
while (frame < 250);
329 if (animationFrame > 17)
340 }
while (elapsed < 40);
370 struct Shape *escapeShape;
405 verticalOffset = -70000;
414 scale = 0x40000L / depth;
415 projectedY = verticalOffset / depth;
419 escapeShape, 0, 0, (
short)scale, 0);
425 verticalOffset += 400;
426 depth += approachStep;
428 approachStep = (short)(approachStep + 10);
446 0x271000, &jumpOffset);
474 }
while (frame < 260);
497 short activeFireworks;
522 if (enableFireworks != 0 && activeFireworks != 0 &&
524 for (slot = 0; slot < 30; slot++) {
540 }
else if (frame > 190) {
549 }
while (frame < 320);
void(__cdecl *pIxFree)(void *)
static const char * pszTigerClawEscapeClosing
static const char * pszForNow
static const char * pszTheEnd
static unsigned char abTaggedAllocationPrefix[8]
static ShortVector aCampaignVictoryProjectileOrigins[4]
static const char * pszTigerClawEscapeJump
static const char * apszCampaignVictoryText[4]
static const char * pszTigerClawEscapeOpening
unsigned char bEscapePressedFlag
short asObjScreenScalesArray[SPACE_OBJECT_COUNT]
signed char acShipStressList[16]
short asObjScreenAngles[SPACE_OBJECT_COUNT]
ObjectTypeData aObjectTypeData[OBJECT_TYPE_COUNT]
short aasShipMaximumShieldTable[10][2]
unsigned char cBlackColour
unsigned char cViewportClearColour
TextContext stCurrentConvTxtCtx
enum ObjectClass aeObjectClass[SPACE_OBJECT_COUNT]
signed char acShipPointingModeList[16]
Viewport stCurrentConvTextViewport
FixedVector aShipVelocity[SPACE_OBJECT_COUNT]
unsigned int bIntroSceneResourcesActive
short asObjectCollisionRadius[64]
short nCurrentViewCenterPosX
struct Shape * pFireworkShape
short nScriptedViewObject
void * aapPacketReferences[4][0x25]
short asCampaignVictoryViewScript[24]
Viewport stSpaceBufferViewport
CampaignState stCampaignState
unsigned short awObjectScales[SPACE_OBJECT_COUNT]
struct Shape * apObjShapeArray[SPACE_OBJECT_COUNT]
enum ObjectType aeObjectTypeList[SPACE_OBJECT_COUNT]
signed char acLastCollisionObjects[SPACE_OBJECT_COUNT]
short asObjectViewFrames[SPACE_OBJECT_COUNT]
Viewport stModalSrcViewport
FireworkState aFireworksList[30]
FixedVector aShipPositionsArray[SPACE_OBJECT_COUNT]
FixedVector aShipFwdVec[64]
short nCurrentViewCenterPosY
FixedVector vCollisionDelta
struct Shape * pIntroFont
signed char acShipAiCooldowns[16]
short asTigerClawEscapeViewScript[12]
signed char currentSeries
Umbrella header for the game core.
unsigned int RefreshMemoryStatusOverlay(void)
void * AllocateTaggedMemory(int size, unsigned short flags)
unsigned int InitializeConversationText(void)
void FormatTextBufferFromStart(const char *format,...)
int set_up_action_sphere(short navPoint)
unsigned int free_3Space(void)
unsigned int InitializeFireworks(void)
unsigned int GetFixedOneMillion(void)
unsigned int Draw_3Space_Frame(void)
void * PushMemoryStackFrame(void *memory, int offset)
void * FetchDiskPacketRetrying(short logicalFile, short section, short flags)
void AddFixedVectors(const FixedVector *left, const FixedVector *right, FixedVector *sum)
void set_objects_data(short obj, enum ObjectType type, short owner)
void DrawSpriteScaled(Viewport *viewport, short x, short y, struct Shape *shape, short frame, short angle, short scale, short flip)
unsigned int spacetrack(int track, int mode, short enabled)
void get_player_input(void)
void * AllocateGuardedMemory(unsigned int size)
unsigned int GetFixedOneMillionThunkAlt(short memoryType)
void DrawSpriteDefault(Viewport *viewport, short x, short y, struct Shape *shape, short frame)
int IsFrameTickElapsed(void)
void RestoreGamePalette(void)
void StopMusicUnlessSuppressed(void)
unsigned int ViewMedals(void)
unsigned int GetFixedOneMillionAlt(void)
unsigned int clear_view_buffer(void)
void CreateCannedSceneObject(short *object, short yaw, short unusedPitch, short distance, struct Shape *shape, short frame, short type, short scale)
void FreeGuardedAllocation(void *memory)
unsigned int PreloadMusicTrackHook(short track)
void __stdcall SetEventManagerPump(void(*pump)(void))
void __stdcall SetTextContext(TextContext *context)
void WaitForSceneAdvance(short duration, short unused)
void initialize_scripted_view(const short *script)
unsigned int init_3Space_objects()
void alter_yaw(short angle, short obj)
void WaitForVerticalBlankThunk(void)
void __stdcall SetFrameTimerPeriodDirect(short p)
unsigned int ShowTigerClawEscapeScene(void)
void __stdcall FadeViewportPaletteToColour(Viewport *viewport, unsigned short colour, short enabled)
int print_subtitle(Viewport *viewport, short colour, const char *text)
void ScaleFixedVector(const FixedVector *vector, int scale, FixedVector *result)
short TheEndFireWorks(Viewport *viewport, short count)
void zero_vector(FixedVector *vector)
unsigned int ReleaseMusicTrackHook(short track)
unsigned int ResetScreenClipToFullHeight(void)
void __stdcall PanToScreen(Viewport *source, Viewport *destination)
void * MapPacketHandleToBlock(void *handle)
void ClearViewport(Viewport *viewport, short colour)
short find_vacant_3d_object(void)
void StopMusic(short unused)
unsigned int GetFixedOneMillionThunk(short memoryType)
unsigned int Update_3Space(void)
unsigned int ShowTheEndScreen(short enableFireworks)
void ReleasePacketHandle(void *handle)
unsigned int ReleaseTextFont(short fontIndex)
short __stdcall RandomInRange(short lo, short hi)
short RandomBelowOrEqual(short n)
unsigned int InitializeConversationViewport(void)
unsigned int dump_buffer_to_screen(void)
unsigned int ShowCampaignVictorySequence(void)
@ OBJECT_TYPE_HYPERSPACE_JUMP_FLASH
#define SPACE_OBJECT_COUNT