28 {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
32 {0, 0, 0, 0, 0, 0, 0, 0},
33 {0, 0, 0, 0, 0, 0, 0, 0},
44 {
"TANAKA",
"SPIRIT", 3, 1, 11, 14, 1},
45 {
"ST.JOHN",
"HUNTER", 4, 2, 25, 32, 4},
46 {
"CHEN",
"BOSSMAN", 1, 3, 35, 37, 2},
47 {
"CASEY",
"ICEMAN", 0, 3, 28, 43, 1},
48 {
"DEVEREAUX",
"ANGEL", 0, 2, 22, 20, 1},
49 {
"TAGGART",
"PALADIN", 2, 3, 42, 34, 2},
50 {
"MARSHALL",
"MANIAC", 4, 0, 5, 6, 1},
51 {
"KHUMALO",
"KNIGHT", 3, 2, 18, 23, 3},
52 {
"PELLEY",
"GOBLIN", 0, 0, 0, 0, 0}
56 0, 0, 0, 0, 1, 1, 2, 2, 1, 1, 2, 3, 4, 3, 3, 4,
57 3, 4, 3, 4, 5, 3, 4, 5, 3, 4, 3, 4, 3, 4, 5, 3,
58 2, 2, 2, 3, 2, 2, 2, 1, 1, 1, -1, 0, 0, 0, 0, 0
62 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 2, 2,
63 3, 3, 4, 4, 5, 3, 3, 4, 4, 5, 5, 5, 2, 2, 1, 1,
64 0, 0, -1, 0, 0, 0, 0, 0
68 3, 4, 3, 3, 4, 3, 4, 4, 3, 4, 3, 4, 0, 0, 0, 2,
69 0, 2, 0, 1, 0, 2, 0, 0, 2, 0, 1, 0, 2, 3, 3, 4,
70 3, 4, 4, 5, 5, 5, 5, 5, -1, 0, 0, 0, 0, 0, 0, 0
74 0, 0, 0, 0, 0, 1, 0, 1, 0, 5, 0, 0, 1, 2, 3, 4,
75 4, 3, 2, 2, 2, 3, 4, 4, 5, 5, 0, 0, 1, 0, 1, 2,
76 1, 0, 1, -1, 0, 0, 0, 0
80 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 3, 3, 3, 3,
81 4, 4, 4, 5, 4, 4, 5, 4, 4, 5, 4, 4, 5, 4, 4, 3,
82 3, 2, 2, 1, 0, 0, -1, 0
86 0, 1, 2, 0, 1, 2, 0, 3, 2, 0, 1, 1,
87 0, 4, 2, 0, 1, 2, 0, 5, 5, 5, 5, -1
91 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 2, 2, 2, 3, 2,
92 2, 3, 2, 3, 2, 3, 2, 4, 4, 2, 3, 2, 3, 2, 3, 2,
93 3, 2, 3, 4, 4, 5, 5, 4, 4, 4, 4, 5, 5, 4, 2, 2,
94 2, -1, 0, 0, 0, 0, 0, 0
98 3, 3, 3, 2, 3, 2, 3, 2, 3, 3, 2, 3, 1, 3, 1, 3,
99 0, 3, 0, 3, 0, 2, 1, 2, 1, 3, 3, 4, 5, 5, 4, 5,
100 4, 5, 1, 3, 1, 3, 1, 3, -1, 0, 0, 0, 0, 0, 0, 0
104 0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 2, 0,
105 0, 3, 3, 3, -1, 0, 0, 0, 0, 0, 0, 0
109 3, 6, 7, 8, 8, 9, 9, 10, 10, 10, 12, 11, 10, 12, 11, 10,
110 12, 11, 10, 12, 11, 10, 13, 13, 13, 10, 9, 8, 8, 3, 3, -1
114 3, 3, 6, 6, 7, 8, 8, 14, 15, 15, 16, 17, 18, 18, 18, 18,
115 17, 19, 19, 20, 20, 21, 20, 21, 20, 21, 20, 21, 20, 21, 20, 21,
116 22, 22, 23, 24, 24, 25, 25, 26, 26, 27, 28, 28, 28, 29, 30, 31,
117 31, 31, 31, 31, 32, 32, 31, 31, 31, 33, 33, 32, 34, 34, 35, 35,
118 36, 36, 37, 37, 37, 38, 38, 39, 40, 3, 3, 3, -1, 0, 0, 0
122 3, 4, 3, 4, 5, 3, 4, 3, 5, 6, 3, 3,
123 3, 3, 4, 3, 4, 3, -1, 0, 0, 0, 0, 0
144 {94, 59}, {161, 79}, {202, 79}
150 { 1, 94, 59, 130, 95 },
151 { 1, 161, 79, 180, 95 },
152 { 1, 210, 79, 240, 95 },
153 { 1, 180, 50, 250, 75 },
154 { 1, 275, 50, 319, 135 },
155 { 1, 0, 100, 120, 190 },
160 "Talk to SHOTGLASS.",
161 "Talk to ??????????????",
162 "Talk to ??????????????"
167 "Check pilot scores",
169 "Fly training mission"
177 0, 1, 2, 3, 4, 5, 6, 7, 8
193 for (pilot = 0; pilot < 8; pilot++) {
256 unsigned char alignment)
279 for (index = 0; regions->
frame != -1; index++, regions++) {
343 signed char animationIds[3];
344 signed char *animations[3];
345 signed char animationId;
346 unsigned char clicked;
347 unsigned char firstFrame;
355 int lastChalkboardTick;
358 lastChalkboardTick = 0;
398 if (animationIds[1] != -1) {
399 personality = (short)animationIds[1];
401 .personalityDeathMission[personality] == 0) {
404 5, (
short)(personality + 3), 0);
423 if (animationIds[1] != -1) {
424 personality = (short)animationIds[2];
426 .personalityDeathMission[personality] == 0) {
429 5, (
short)(personality + 3), 0);
490 &secondPilotBounds.
left,
494 (
short)*animations[2]);
498 &firstPilotBounds.
left,
502 (
short)*animations[1]);
508 &firstPilotBounds, &secondPilotBounds);
522 (
short)*animations[0]);
524 while (result == 0) {
525 if (firstFrame == 0) {
528 if (characterMask != 0) {
539 for (index = 0; index < 3; index++) {
541 if (*animations[index] == -1) {
545 if (animationId == 11 &&
549 animationId = animationIds[index];
566 (
short)*animations[index]++);
574 &shotglassWork, 0, 0,
581 (
short)*animations[index]++);
583 &nextFrameBounds.
left,
587 (
short)*animations[index]);
588 if (firstFrame != 0) {
592 &nextFrameBounds) != 0) {
596 &shotglassDestination);
601 &shotglassDestination);
608 if (firstFrame == 0) {
647 switch ((
short)event.
value) {
732 if (refreshRoom != 0)
791 struct Shape *background;
793 unsigned char savedInputMode;
802 for (index = 0; index < 9; index++) {
803 for (other = index; other < 9; other++) {
835 0, 0, background, 0);
846 for (; index < 9; index++, rowY = (short)(rowY + 16)) {
856 .personalityDeathMission[pilot] == 0) {
903 if (destination == 0)
905 if (end < (
int)(offset + length) || length == (
unsigned int)-1)
906 length = (
unsigned int)(end - offset);
908 length, destination) == 0)
void RefreshMouseCursorHook(void)
unsigned char bEscapePressedFlag
unsigned char * pBriefingPacket
Viewport stConstellationViewport
struct Shape * pRecRoomBgShape
unsigned char cBlackColour
CampaignDate * pElapsedCampaignDatePtr
short nUnusedInputTimerFlag
char szTxtWorkspaceBuffer[256]
Viewport stRoomScreenViewport
TextContext * pCurTextContext
unsigned char cViewportClearColour
CampaignState stInitialCampaignState
unsigned char bInputModeState
unsigned char * apRecRoomTxtDataArray[3]
MouseCursorState stMouseCursorState
char szDefaultTxtBuf[0xc8]
unsigned char * apRecRoomSceneDataList[3]
Viewport stCurrentRoomMouseView
PilotRecord * apWingmanPilotsList[8]
Viewport stRoomDisplayView
CampaignState stCampaignState
struct Shape * pCurrentConversationBackdropShapePtr
Viewport stModalSrcViewport
short nMenuInputRepeatDelay
unsigned char * pRecRoomRoster
const char * apszPilotRankNames[5]
short asCampaignPilotFiles[3]
PilotRecord aPilotEntriesList[9]
RoomMenu stCurrentRoomMenu
struct Shape * apRecRoomFigureShapes[3]
CampaignDate * pCurrentCampaignDate
static signed char abShotglassGlassAnimation[32]
static CampaignDate stChalkBoardDate
static signed char abPaladinRecRoomAnimation[56]
static TitleMenuRegion aRecRoomMenuRegions[7]
static signed char * apRecRoomAnimations[14]
void ReleaseEventManagerPointerHook(void)
static const char * pszBlankRoomMenuLabel
short SuspendMouseCursor(void)
static signed char abHunterRecRoomAnimation[40]
static signed char abKnightRecRoomAnimation[40]
static ShortPoint stRecRoomPanelOrigin
static signed char abShotglassPourAnimation[80]
static signed char abShotglassWipeAnimation[24]
static signed char abShotglassIdleAnimation[24]
void DrawMouseCursorIntoViewport(Viewport *viewport)
static signed char abAngelRecRoomAnimation[48]
static PilotRecord aInitialPilotRecords[9]
static signed char abManiacRecRoomAnimation[24]
static signed char abSpiritRecRoomAnimation[48]
short InitializeEventManagerTiming(void)
static signed char abBossmanRecRoomAnimation[48]
static char * apszRecRoomBaseLabels[3]
static short asChalkBoardPilotOrder[9]
static ShortPoint aRecRoomCharacterOrigins[3]
static char * apszRecRoomMenuLabels[6]
static signed char abIcemanRecRoomAnimation[40]
PilotRecord * currentPilot
signed char currentSeries
signed char currentMission
unsigned int reservedAfterFrame
unsigned char shapeChanged
unsigned char backgroundColour
Umbrella header for the game core.
unsigned int InitializeConversationText(void)
void FormatTextBufferFromStart(const char *format,...)
void LeaveAllocationScope(void)
short __stdcall IsPointInRect(short x, short y, const short *rect)
void MoveMenuPointerFromKeyboard(InputEventState *event)
void * LoadPacketAllocated(short logicalFile, short section)
unsigned int InitializeTextContextFromFont(TextContext *context, short fontIndex, unsigned char colour, signed char background)
short __stdcall PollInputEvent(InputEventState *event, short filter)
char IsRoomMenuLabelEmpty(void)
void ClearRoomMenuLabel(void)
short __stdcall ReadPacketSectionData(PacketSectionHandle *handle, void *destination, unsigned int length)
unsigned short __stdcall AllocateViewport(Viewport *viewport, short clearColour, short flags)
void UpdateRoomMenuCursor(void)
void * FetchDiskPacketRetrying(short logicalFile, short section, short flags)
void InitializeRoomViewports(void)
void ClearInputKeyStatePreservingModifiers(void)
unsigned int spacetrack(int track, int mode, short enabled)
int FindMenuRegionAtPoint(short x, short y, const TitleMenuRegion *regions)
unsigned int DrawConstellationField(void)
void DrawSpriteDefault(Viewport *viewport, short x, short y, struct Shape *shape, short frame)
int __stdcall ReadDataFileAtOffset(unsigned short fd, int offset, unsigned int length, void *data)
int IsFrameTickElapsed(void)
void StopMusicUnlessSuppressed(void)
void FlushInputEvents(void)
unsigned int PreloadMusicTrackHook(short track)
unsigned int SceneDirector(short sceneType, unsigned char *sceneData, unsigned char *textData)
void InitializeRoomMenu(const TitleMenuRegion *regions, char **labels, Viewport *viewport, char *text, unsigned char alignment)
unsigned int init_constellation(short scene)
void __stdcall SetEventManagerPump(void(*pump)(void))
void __stdcall SetTextContext(TextContext *context)
unsigned short __stdcall ShouldSuspendCursorForRect(const ShortRect *bounds)
void ClearRoomMenuCursorFrame(void)
void EnterAllocationScope(void)
unsigned int PumpWindowMessages(void)
char *__stdcall DosStrcpy(char *dst, const char *src)
void __stdcall SetFrameTimerPeriodDirect(short p)
void __stdcall WarpMouseTo(short x, short y)
unsigned int ReleaseMusicTrackHook(short track)
void __stdcall PanToScreen(Viewport *source, Viewport *destination)
void RefreshRoomMenuLabel(void)
unsigned int free_constellation(void)
void ClearViewport(Viewport *viewport, short colour)
void PollMenuInputDevices(void)
short __stdcall GetShapeFrameBounds(short *bounds, short x, short y, struct Shape *shape, short frame)
unsigned int LoadBriefingData(short series, short mission)
void SelectRoomMenuLabel(short i)
void CorrectPointers(void)
void __stdcall free_viewport(Viewport *viewport)
void CaptureSpriteBackground(Viewport *viewport, unsigned char *background, short x, short y, struct Shape *shape, short frame)
void ReleasePacketHandle(void *handle)
void __stdcall SetViewportRect(Viewport *viewport, unsigned short left, unsigned short top, unsigned short right, unsigned short bottom)
void __stdcall EventManagerHook(void(*callback)(void))
unsigned int ShowMemoryStatusDebug(void)
void __stdcall UnionRectBounds(ShortRect *destination, const ShortRect *first, const ShortRect *second)
void FreePacketAndClear(void *slot, unsigned short releaseFlags)
unsigned int ReleaseTextFont(short fontIndex)
void ResetCampaignData(void)
short __stdcall RandomInRange(short lo, short hi)
unsigned int InitializeConstellationField(Viewport *viewport, short direction, short density)
void InitializeTrainSimHighScores(void)
void DrawFormattedText(const char *format,...)
void ShowChalkBoard(void)
void CopyViewportContents(Viewport *source, Viewport *destination)
void DrawRoomMenuLabel(TextContext *context, const char *label)
short __stdcall PeekInputEvent(InputEventState *event, short type)