13 0, 5, 4, 4, 1, 8, 4, 7, 0, 4, 4, 7, 5,
14 4, 2, 5, 6, 4, 4, 4, 3, 4, 6, 4, 4, 4
40 commands[-1] = sequenceIndex;
42 if (frame >=
'A' && frame <=
'F')
43 frame = (frame -
'A' + 10);
45 frame = (frame -
'0');
47 durationCursor = duration;
49 while (frame !=
',') {
50 *durationCursor++ = frame;
53 *durationCursor =
'\0';
54 commands[1] = atoi(duration);
68 char duration[5] =
"";
72 while ((character = *text++) !=
'\0') {
73 if (character ==
'$') {
75 }
else if (character <=
'z' && character >=
'a') {
83 while (*text <=
'9') {
87 duration[durationLength] = character;
90 duration[durationLength] =
'\0';
91 ticks = atoi(duration);
117 while (text != marker) {
133 sprintf(formatted,
"%d",
144 sprintf(formatted,
"%03d.%03d",
150 sprintf(formatted,
"%03d.%03d",
175 sprintf(formatted,
"%02d:%02d",
261 short *mouthCommands,
short *faceCommands,
268 short mouthCountdown;
274 faceStart = faceCommands;
275 mouthStart = mouthCommands;
288 if (*mouthCommands == -1 && *faceCommands == -1) {
299 if (mouthCountdown-- == 0) {
300 if (*mouthCommands != -1)
302 switch (*mouthCommands) {
304 mouthCommands = mouthStart;
306 mouthFrame = *mouthCommands;
307 mouthCountdown = (mouthCommands[1] * 2);
318 if (faceCountdown-- == 0) {
319 if (*faceCommands != -1)
321 switch (*faceCommands) {
323 faceCommands = faceStart;
325 faceFrame = *faceCommands;
328 faceCountdown = (faceCommands[1] * 2);
338 CloseTalk(talker, mouthFrame, faceFrame);
384 talker, (faceFrame + 11));
389 talker, (mouthFrame + 1));
442 if (fullScore == 0) {
445 }
else if ((playerScore * 100) / fullScore > 70) {
481 unsigned char *packet;
482 unsigned char *sceneData;
483 unsigned char *textData;
519 (mission + series * 4), 0);
590 unsigned char *packet;
598 short *sourceInitialShip;
600 unsigned char *auxiliary;
604 missionIndex = mission + series * 4;
612 *initialShip++ = *sourceInitialShip++;
621 index++, diskNav++) {
629 for (item = 0; item < 8; item++) {
631 ((
signed char *)diskNav->
triggers)[item];
633 for (item = 0; item < 2; item++) {
637 for (item = 0; item < 10; item++) {
648 index++, diskObjective++) {
652 diskObjective->
index;
653 for (item = 0; item < 60; item++) {
664 diskShip++, ship++) {
732 short *animation,
char *text,
short duration,
753 if (shot == 2 || shot == 11) {
754 while (*animation != -1) {
755 if (frameDelay-- == 0) {
756 if (*animation != -1)
758 switch (*animation) {
764 frameDelay = (animation[1] * 2);
786 }
else if (frame > -1) {
805 }
else if (shot == 0) {
808 for (sceneFrame = 0; sceneFrame < 22; sceneFrame++) {
820 for (character = 0; character < 14; character++) {
824 .animation[sceneFrame],
833 if (sceneFrame == 20)
static short asMouthFramesByPhoneme[26]
unsigned char bEscapePressedFlag
short asCampaignBriefingFiles[3]
MissionHeaderDisk stCurrentMissionHeader
short asMissionDataFiles[3]
unsigned char * pBriefingPacket
unsigned char * pCurrentBriefingTextData
short nTalkingHeadFaceCoordY
Viewport stConstellationViewport
unsigned char cBlackColour
CampaignDate * pElapsedCampaignDatePtr
char szTxtWorkspaceBuffer[256]
short nConvTextColorValue
unsigned char * pDebriefingTxtInfo
short nConversationBackdropFrame
const char * apszMedalNames[5]
unsigned char abSeriesAuxData[0x28]
BriefingCharacterLayout aBriefingCharacters[10]
TextContext stCurrentConvTxtCtx
struct Shape * pConvOverlayShapePtr
struct Shape * pCurrentConversationSpecialShape
unsigned char * apRecRoomTxtDataArray[3]
signed char cScrambleWalkerPair
MissionObjectiveSource aMissionObjectiveSources[16]
MissionNavPoint aMissionNavPoints[MISSION_NAV_POINT_COUNT]
struct Shape * pScrambleCanopyShape
struct Shape * pCurrentBriefingAnimShape
Viewport stCurrentConvTextViewport
CampaignDate stSavedCampaignDate
int bConversationConstellation
unsigned char cPrimaryViewBufferColour
unsigned char * apRecRoomSceneDataList[3]
PilotRecord * apWingmanPilotsList[8]
short nConversationCharacter
CampaignState stCampaignState
struct Shape * pCurrentConversationBackdropShapePtr
TalkingHeadOrigin aTalkingHeadOrigins[11]
MissionShipRecord aMissionShips[MISSION_SHIP_STORAGE_COUNT]
struct Shape * pTalkHeadShape
const char * apszPilotRankNames[5]
struct Shape * pScrambleShipShape
short nCurrentConversationMedalIndex
unsigned char * pDebriefingSceneDataPtr
CampaignDate * pCurrentCampaignDate
unsigned char abMissionAuxData[0x28]
unsigned char * pBriefingSceneInfo
PilotRecord * currentPilot
signed char triggers[4][2]
short preloadObjectTypes[2]
unsigned short proximityRadius
enum ObjectType preloadObjectTypes[2]
signed char formationIndex
signed char leaderMissionIndex
signed char formationSpot
signed char targetMissionIndex
enum ShipMissionType missionType
signed char targetMissionIndex
MissionShipBehaviour behaviour
signed char leaderMissionIndex
signed char formationIndex
signed char formationSpot
Umbrella header for the game core.
unsigned int RefreshMemoryStatusOverlay(void)
void Build_objective_list(void)
unsigned int Briefing(short series, short mission)
unsigned int InitializeConversationText(void)
unsigned int LongTalk(struct Shape *talker, char *text, short *mouthCommands, short *faceCommands, short duration)
void FormatTextBufferFromStart(const char *format,...)
char *__stdcall DosStrchr(const char *s, short c)
void * FetchDiskPacketRetrying(short logicalFile, short section, short flags)
unsigned int ParseMouthAnimation(char *text, short *commands)
unsigned int DrawDebriefingLongShot(void)
unsigned int spacetrack(int track, int mode, short enabled)
unsigned int DrawConstellationField(void)
void DrawSpriteDefault(Viewport *viewport, short x, short y, struct Shape *shape, short frame)
int IsFrameTickElapsed(void)
unsigned int DrawBriefingCharacter(short character, short pose, short animationFrame, const signed char *unusedXOffsets, const signed char *unusedYOffsets)
void StopMusicUnlessSuppressed(void)
short MinShort(short a, short b)
void __stdcall DosMemcpy(void *dst, const void *src, unsigned short n)
unsigned int PreloadMusicTrackHook(short track)
unsigned int SceneDirector(short sceneType, unsigned char *sceneData, unsigned char *textData)
char *__stdcall DosStrcat(char *destination, const char *source)
unsigned int init_constellation(short scene)
void __stdcall SetTextContext(TextContext *context)
void WaitForSceneAdvance(short duration, short unused)
unsigned int ParseFaceAnimation(char *text, short *commands)
void __stdcall SetFrameTimerPeriodDirect(short p)
unsigned int CloseTalk(struct Shape *talker, short mouthFrame, short faceFrame)
unsigned int ReleaseMusicTrackHook(short track)
unsigned int ResetScreenClipToFullHeight(void)
unsigned int CloseLook(struct Shape *shape, short shot, short *animation, char *text, short duration, int unused)
unsigned int UpdateMap(char *text, short duration)
unsigned int LoadMissionData(short series, short mission)
void ClearViewport(Viewport *viewport, short colour)
int PlayersMissionScore(void)
unsigned int LoadBriefingData(short series, short mission)
unsigned int DeBriefing(short series, short mission)
void ReleasePacketHandle(void *handle)
void BriefingMap_DisplayMap(void)
int FullMissionScore(void)
unsigned int LoadBriefingRoom(void)
unsigned int LoadFace(short face)
unsigned int Office(void)
void FreePacketAndClear(void *slot, unsigned short releaseFlags)
unsigned int ReleaseTextFont(short fontIndex)
short __stdcall DosStrlen(const char *s)
unsigned int InitializeConstellationField(Viewport *viewport, short direction, short density)
char * AddPCName(const char *text)
unsigned int InitializeConversationViewport(void)
#define ACTIVE_MISSION_NAV_POINT_COUNT
#define MISSION_OBJECTIVE_COUNT