Wing Commander
Reconstructed Win32 source (1996)
Loading...
Searching...
No Matches
pilot.cpp
Go to the documentation of this file.
1/**
2 * @file
3 * @ingroup campaign
4 * @brief Inter-scene transitions, answer prompts, and the developer console's
5 * instance and wrappers.
6 *
7 * Address range 425730-425c2f. Compiled as C++ with /GX: the console
8 * allocation wrapper needs construction cleanup. The boundary between the C
9 * scene routines and the Win32 console wrappers is provisional.
10 */
11#include "wc1.h"
12
14/* Nothing in the shipped executable references this buffer. A C++ global
15 * stays in this object's .bss in declaration order; an unreferenced C static
16 * in the following unit would not be emitted at all. */
17unsigned char abUnusedOverlayBuffer[0x100]; /* 0x004763f8 */
18
19/* Function start: 0x425730 */
20unsigned int WaitForKeyExceptXOrF12(void)
21{
22 int key;
23
26 do {
28 } while (key == 'X' || key == VK_F12);
32 return 0;
33}
34
35/* Function start: 0x425770 */
76
77/* Function start: 0x4258D0 */
78void ApplyAnswerTextCipher(char *text, signed char direction)
79{
80 short position;
81
82 position = 0;
83 while (*text != '\0') {
84 position++;
85 *text += (signed char)((position % 30) - 38) * direction;
86 text++;
87 }
88}
89
90/* Repeated answer-resource declarations: their placement reproduces this
91 * unit's compiler context. */
92void __stdcall PromptInsertNumberedDisk(short logicalFile);
93void *FetchDiskPacketRetrying(short logicalFile, short section, short flags);
94char *__stdcall DosStrcpy(char *dst, const char *src);
95void FreePacketAndClear(void *slot, unsigned short releaseFlags);
96short PromptForTextInput(short x, short y, const char *prompt,
97 char *destination, short maximumLength,
98 short inputMode);
99
100/* Function start: 0x425910 */
101void LoadAnswerPromptAndResponse(short entry, char *prompt,
102 char *response)
103{
104 short line;
105 char *promptLine;
106 char *scan;
107 char *responseLine;
108 char *packet;
109
110 packet = 0;
112 scan = packet = (char *)FetchDiskPacketRetrying(0x3c, 0, 0);
113 for (line = 0; line < 20; line++, scan++) {
114 if (entry * 2 == line)
115 promptLine = scan;
116 if (entry * 2 + 1 == line)
117 responseLine = scan;
118 while (*scan != '\n')
119 scan++;
120 scan[-1] = '\0';
121 *scan = '\0';
122 }
123 DosStrcpy(prompt, promptLine);
124 DosStrcpy(response, responseLine);
125 FreePacketAndClear(&packet, 0);
126}
127
128/* Function start: 0x4259B0 */
129/* No inbound reference is known in the shipped executable; this routine is
130 * believed unreachable. */
131short PromptForAnswerText(short entry)
132{
133 ShortRect bounds;
134 ModalTextPanel panel;
135 short matches;
136
137 bounds.left = 50;
138 bounds.top = 50;
139 bounds.right = 269;
140 bounds.bottom = 149;
145 InitializeModalTextPanel(&panel, 0, bounds,
148 DrawModalTextPanel(&panel, 6, 10, 2,
151 ""[0];
152 PromptForTextInput(65, 125, "Answer: ",
153 &szComponentHitMessage[20], 10, 2);
154 RestoreModalTextPanel(&panel);
156 matches = (short)(strcmp(&szComponentHitMessage[20],
159 return matches;
160}
161
162/* Function start: 0x425AF0 */
164{
165}
166
167/* Function start: 0x425B00 */
168void CreateDebugOverlayConsole(HINSTANCE module, HWND window,
169 short columns, short rows)
170{
172 new DebugOverlayConsole(module, window, columns, rows, 0);
173}
174
175/* Function start: 0x425B90 */
177{
178 delete pDebugOverlay;
179}
180
181/* Function start: 0x425BB0 */
182void SystemDebugPrintf(const char *format, ...)
183{
184 (void)format;
185}
186
187/* Function start: 0x425BC0 */
189{
190 return pDebugOverlay->WaitForKey();
191}
192
193/* Function start: 0x425BD0 */
194unsigned char TakeDebugStepFlag(void)
195{
196 unsigned char value = (unsigned char)dwDebugOverlayKeyLatch;
197
199 return value;
200}
201
202/* Function start: 0x425BE0 */
203void ResetDiskPromptTimerHook(int mode, int interval)
204{
205 (void)mode;
206 (void)interval;
207}
208
209/* Function start: 0x425BF0 */
210/* No inbound reference is known in the shipped executable; this compiled-out
211 * console compatibility routine is believed unreachable. */
213{
214}
215
216/* Function start: 0x425C00 */
217/* No inbound reference is known in the shipped executable; this compiled-out
218 * console compatibility routine is believed unreachable. */
222
223/* Function start: 0x425C10 */
225{
226}
227
228/* Function start: 0x425C20 */
230{
233}
void(__cdecl *pIxFree)(void *)
unsigned char cRedColour
Definition init.c:16
char szHudMessageBuf[0x60]
Definition music.c:97
unsigned char cBlackColour
Definition init.c:12
char szComponentHitMessage[40]
Definition cockpt.c:99
unsigned char cViewportClearColour
Definition init.c:13
DWORD dwDebugOverlayKey
Definition debug.cpp:18
TextContext stCurrentConvTxtCtx
Definition targ.c:15
Viewport stSceneBuffer
Definition select.c:17
unsigned char * pSceneAnimationTextData
Definition logic.c:101
Viewport stScreenView
Definition launch.c:50
DWORD dwDebugOverlayKeyLatch
Definition debug.cpp:19
unsigned char * pSceneAnimationSceneDataPtr
Definition logic.c:99
Viewport stModalSrcViewport
Definition select.c:14
unsigned char bFilteredKeyWaitActive
Definition eventmgr.c:22
unsigned char bFilteredKeyDelayStartedState
Definition screens.c:179
struct Shape * pIntroFont
Definition eject.c:29
DebugOverlayConsole * pDebugOverlay
Definition pilot.cpp:13
unsigned char abUnusedOverlayBuffer[0x100]
Definition pilot.cpp:17
short top
Definition wcdata.h:441
short left
Definition wcdata.h:440
short right
Definition wcdata.h:442
short bottom
Definition wcdata.h:443
Viewport * viewport
Definition wc1base.h:236
Umbrella header for the game core.
void SystemDebugPrintf(const char *fmt,...)
Definition pilot.cpp:182
unsigned int InitializeConversationText(void)
Definition main.c:448
short PromptForAnswerText(short entry)
Definition pilot.cpp:131
void SetConsoleTextColourHook(void)
Definition pilot.cpp:212
void DIBslam(void)
Definition dib.c:513
void DestroyGlobalDebugOverlayConsole(void)
Definition pilot.cpp:176
char PumpMessagesDuringWait(void)
Definition pilot.cpp:188
void LoadAnswerPromptAndResponse(short entry, char *prompt, char *response)
Definition pilot.cpp:101
unsigned short LoadSceneAnimationResources(short scene, short variant)
Definition logic.c:2058
void ShowMeanwhileTransition(short scene, short variant)
Definition pilot.cpp:36
void RestoreModalTextPanel(ModalTextPanel *panel)
Definition barracks.c:115
void * FetchDiskPacketRetrying(short logicalFile, short section, short flags)
Definition disk.c:126
void SceneEnterHook(void)
Definition pilot.cpp:163
void __stdcall PromptInsertNumberedDisk(short logicalFile)
Definition disk.c:322
unsigned int spacetrack(int track, int mode, short enabled)
Definition music.c:411
void DrawModalTextPanel(ModalTextPanel *panel, short x, short y, unsigned char alignment, const char *format,...)
Definition barracks.c:96
void RestoreGamePalette(void)
Definition winmain.c:76
void StopMusicUnlessSuppressed(void)
Definition music.c:419
void FlushInputEvents(void)
Definition eventmgr.c:381
void DIBslamReal(void)
Definition dib.c:519
unsigned int PreloadMusicTrackHook(short track)
Definition logic.c:2044
unsigned int SceneDirector(short sceneType, unsigned char *sceneData, unsigned char *textData)
Definition screens.c:1212
short PromptForTextInput(short x, short y, const char *prompt, char *destination, short maximumLength, short inputMode)
Definition barracks.c:492
void __stdcall SetTextContext(TextContext *context)
Definition mathfp.c:152
void WaitForSceneAdvance(short duration, short unused)
Definition disk.c:509
void ClearInputKeyState(void)
Definition eventmgr.c:800
char *__stdcall DosStrcpy(char *dst, const char *src)
Definition strdos.c:49
void ReleaseSceneAnimationResources(void)
Definition logic.c:2085
void ClearDebugPauseFlags(void)
Definition pilot.cpp:229
void __stdcall FadeViewportPaletteToColour(Viewport *viewport, unsigned short colour, short enabled)
Definition main.c:2213
int print_subtitle(Viewport *viewport, short colour, const char *text)
Definition mono.c:197
unsigned int ReleaseMusicTrackHook(short track)
Definition logic.c:2051
void SetConsoleBackgroundColourHook(void)
Definition pilot.cpp:219
unsigned int ResetScreenClipToFullHeight(void)
Definition main.c:439
void __stdcall PanToScreen(Viewport *source, Viewport *destination)
Definition screens.c:1571
void DiskPromptDrawHook(void)
Definition pilot.cpp:224
void ClearViewport(Viewport *viewport, short colour)
Definition gr.c:963
void ResetDiskPromptTimerHook(int mode, int interval)
Definition pilot.cpp:203
void StopMusic(short unused)
Definition music.c:114
short InitializeModalTextPanel(ModalTextPanel *panel, short fontIndex, ShortRect bounds, short clearColour, short backgroundColour, short borderColour)
Definition barracks.c:64
unsigned char TakeDebugStepFlag(void)
Definition pilot.cpp:194
unsigned int WaitForKeyExceptXOrF12(void)
Definition pilot.cpp:20
void SaveGamePalette(void)
Definition winmain.c:61
void FreePacketAndClear(void *slot, unsigned short releaseFlags)
Definition mathutil.c:37
unsigned int ReleaseTextFont(short fontIndex)
Definition disk.c:222
void ApplyAnswerTextCipher(char *text, signed char direction)
Definition pilot.cpp:78
void CreateDebugOverlayConsole(HINSTANCE module, HWND window, short columns, short rows)
Definition pilot.cpp:168
unsigned int InitializeConversationViewport(void)
Definition main.c:422