Wing Commander II
Reconstructed Win32 source (1996)
Loading...
Searching...
No Matches
main.c File Reference

Main application loop and spaceflight frame. More...

#include "game.h"

Go to the source code of this file.

Macros

#define MAIN_C

Functions

void SetPersonnelCursorPosition (int x, int y, short unused1, short unused2)
short LogMemoryUsage (void)
void AdjustSpaceFramePeriod (short adjustment)
short CheckHeap (void)
short CtrlBreakHandler (void)
void RunGameApplication (short argc, char **argv)
void free_view_buffer (void)
void initialize_view_buffer (void)
void dump_buffer_to_screen (void)
void SelectNextExternalViewObject (void)
unsigned int clear_view_buffer (void)
void RefreshMemoryStatusOverlay (void)
void Update_3Space (void)
void TriggerPlayerHitPaletteFlash (void)
void FadeFlightPaletteEntry (short *entry)
void UpdateSpacePaletteFade (void)
void house_keep (void)
void get_player_input (void)
void process_player_input (void)
unsigned int fire_players_lasers (void)
void players_flight_dynamics (void)
short IsInputEventQueued (int type)
short player_input (void)
short MeasureMessageWidth (const char *text)
void AcknowledgeModalMessage (void)
short HandleSpaceFlightControls (void)
unsigned int DrawSpaceSceneFrame (void)
void RenderSpaceViewFrame (void)
short Draw_3Space_Frame (void)
short GetShipDistanceToNavPoint (short ship, MissionNavPoint *navPoint)
short FindNearestNavPoint (short ship)
unsigned int ReleaseStaleNavTarget (void)
int RunSpaceFlight (short entryNavPoint)
short calculate_damage_level (void)

Variables

unsigned char g_128_abPauseInputState [0x100]
unsigned char g_13_abPreviousPauseKeyStatuses [0x100]
int g_bFullScreenSpaceView = 1
int g_nCockpitDisplayMode = 0
int g_anVolumeLevels [11]
int g_nSfxVolumeSetting = 0x14
int g_nMusicVolumeSetting = 0x14
int g_nUnusedMainWord1 = 0x1370
int g_nTrainSimActive = 0
int g_nArcadeState = 0
short g_nFrameSkipCountdown = 1
short g_nFrameSkip = 0
short g_nSpaceFramePeriod = 4
short g_bViewportDirty = 0
short g_nCockpitCameraObject = 0
short g_nOriginDevUnlock = 0
short g_bCarrierLandingEnabled = 1
short g_bPlayerDamageEnabled = 1
short g_bPlayerCollisionEnabled = 1
short g_nShowMemoryStatus = 0
void * g_pMemoryAdjustment = 0
signed char g_bParentDirectorySelected = 0
short g_nMissionEntryNavOverride = -1
int g_nUnusedMainWord2 = 0
struct DirectMissionSelection g_stDirectMissionSelection = { 0, 0 }
short g_nDirectSeries = 1
int g_nUnusedMainWord3 = 0
short g_bSpaceViewBufferEnabled = 0
int g_nUnusedMainWord4 = 0
short g_nCockpitControlState = 0
InputDeviceSample g_stCurrentFlightInput = { 0 }
int g_nUnusedMainWord5 = 0
short g_wFlightInputButtonState = 0
int g_nUnusedMainWord6 = 0
int g_bFlightButtonTwoHeld = 0
int g_bFlightButtonOneHeld = 0
short g_nCockpitControlGoal = 0
short g_asMouseYawThresholds [6]
short g_asMousePitchThresholds [6]
signed char g_bSecondaryMouseButtonHeld = 0
int g_nUnusedMainWord7 = 0
signed char g_bMouseMoveEventQueued = 0
short g_nMouseYawInput = 0
short g_nMousePitchInput = 0
short g_aSpaceExplosionFlashPalette [13][3]
int g_bRenderingSpaceFrame = 0
InputDeviceSample g_10_stPrevFlightControls
short g_bMapPrimaryInputQueued
int g_6_nUnusedMainNumber1
short g_1_bDiscreteFlightInputWaiting
short g_1_nResourcePaletteState
short g_3_nOptionMessageColour
short g_2_bFleetMouseMovePosted
char * g_pInitialArguments [31]
int g_1_bSpaceFlightActive
short g_nCurSeries
short g_nSpaceBlastFlashIncrement
short g_nMenuSelectedCol
short g_10_nMenuDarkColour
short g_nCurrentLevel
short g_19_bPolledFlightInputQueued
int g_39_nIdleMainNumber [4]
InputEvent g_3_aInputEventArray [0x100]
int g_10_bPlayerInputActive
int g_47_nUnusedMainValue1
int g_47_nUnusedMainValue2 [2]
int g_129_nUnusedMainNumber2 [2]

Detailed Description

Main application loop and spaceflight frame.

Definition in file main.c.

Macro Definition Documentation

◆ MAIN_C

#define MAIN_C

Definition at line 7 of file main.c.

Function Documentation

◆ AcknowledgeModalMessage()

◆ AdjustSpaceFramePeriod()

void AdjustSpaceFramePeriod ( short adjustment)

◆ calculate_damage_level()

◆ CheckHeap()

short CheckHeap ( void )

Definition at line 72 of file main.c.

References CheckHeap().

Referenced by CheckHeap().

◆ clear_view_buffer()

unsigned int clear_view_buffer ( void )

◆ CtrlBreakHandler()

short CtrlBreakHandler ( void )

Definition at line 83 of file main.c.

References CtrlBreakHandler().

Referenced by CtrlBreakHandler().

◆ Draw_3Space_Frame()

◆ DrawSpaceSceneFrame()

◆ dump_buffer_to_screen()

◆ FadeFlightPaletteEntry()

void FadeFlightPaletteEntry ( short * entry)

Definition at line 316 of file main.c.

References FadeFlightPaletteEntry().

Referenced by close_behind(), FadeFlightPaletteEntry(), and house_keep().

◆ FindNearestNavPoint()

◆ fire_players_lasers()

◆ free_view_buffer()

◆ get_player_input()

◆ GetShipDistanceToNavPoint()

◆ HandleSpaceFlightControls()

short HandleSpaceFlightControls ( void )

Definition at line 912 of file main.c.

References accelerate(), AdjustSpaceFramePeriod(), any_enemy(), auto_pilot_sequence(), BeginInflightReplayHook(), CalibrateJoystickInteractive(), Chosen_communicate_option(), ClearTargetCameraView(), CloseCommChoiceMenu(), EndCommMenu(), explode(), fire_missile(), fire_players_lasers(), FireTargetCameraGuns(), FlushInputEvents(), force_view(), free_view_buffer(), g_128_abPauseInputState, g_13_abPreviousPauseKeyStatuses, g_1_cStoredViewDisplayModeValue, g_26_bMouseCursorEnabled, g_27_nLastAltCommandScanNumberWord, g_27_stViewScratchInfo, g_2_bAltFHotkeyFlag, g_2_bAltHHotkey, g_39_bAltNumpadAddHotkeySwitch, g_4_bMenuBHotkey, g_6_bAltDChordState, g_6_bMenuTHotkeySwitch, g_78_bHighMemoryBuffersSetState, g_88_nEventRepeatDelayState, g_acPlayerComponentDamage, g_acShipTarget, g_aeObjectClass, g_aeShipObjective, g_anShipSpeed, g_anVolumeLevels, g_asObjectType, g_asShipSide, g_bAltNumpadSubtractShortcut, g_bDebugBreakEnabled, g_bDisplayWingmanTargetData, g_bFullScreenSpaceView, g_bJoystickCalibrationHotkey, g_bMenuAHotkey, g_bMissileCameraEnabled, g_bPauseInputActive, g_bSceneEscapeRequested, g_bTargetLockMode, g_bVideoImagesSuppressed, g_cCurrentKey, g_cPreviousKey, g_cRedColour, g_nArcadeState, g_nCockpitControlGoal, g_nCockpitControlState, g_nCockpitDisplayMode, g_nCommMenuChoiceCount, g_nCurrentView, g_nEnemyTauntCommandBase, g_nExternalViewShip, g_nMusicVolumeSetting, g_nOriginDevUnlock, g_nScreenHeight, g_nScreenWidth, g_nSelectedReleaseWeaponIndex, g_nSfxVolumeSetting, g_nTargetCameraFrame, g_nYourWingman, g_ucPrimaryTextColour, get_mode(), GetControlKeyState(), GetF1KeyLatch(), GetKeyboardModifiers(), HandleFleetOverviewInput(), HandleSpaceFlightControls(), initialize_cockpit(), initialize_view_buffer(), InvalidateVduMode(), IsCockpitWeaponShapeLoaded(), IssueQuickCommCommand(), malf_sound(), message_showing(), new_view(), OBJECT_CLASS_SHIP, OBJECTIVE_HOLD_FORMATION, player_input(), players_flight_dynamics(), PlaySfxWaveFileByNumber(), RandomInRange(), ReportFramesSkipped(), SaveVolumeSettingsToRegistry(), SelectCockpitVduMode(), SelectNextExternalViewObject(), ServiceInputDevices(), SetFrameTimerPeriodDirect(), SetHudMessageText(), SetMessageDisplaySpeed(), SetMusicStreamVolume(), SetSoundEffectsVolume(), SetViewportRect(), ShowGamePausedBanner(), ShowOnScreenMessage(), ShowVersionBanner(), SIDE_KILRATHI, ToggleTargetCameraOverlay(), TryBeginStarSystemJump(), and your_afterburner().

Referenced by HandleSpaceFlightControls(), RunSpaceFlight(), and UpdateShipTurretGuns().

◆ house_keep()

◆ initialize_view_buffer()

◆ IsInputEventQueued()

short IsInputEventQueued ( int type)

◆ LogMemoryUsage()

◆ MeasureMessageWidth()

short MeasureMessageWidth ( const char * text)

◆ player_input()

◆ players_flight_dynamics()

◆ process_player_input()

◆ RefreshMemoryStatusOverlay()

◆ ReleaseStaleNavTarget()

unsigned int ReleaseStaleNavTarget ( void )

◆ RenderSpaceViewFrame()

◆ RunGameApplication()

◆ RunSpaceFlight()

int RunSpaceFlight ( short entryNavPoint)

Definition at line 1778 of file main.c.

References Viewport::bottom, ConfigureInputPump(), MouseCursorState::context, copy_frame(), DIBslamReal(), find_objective(), FinishCannedScenePlayback(), flag_objective(), FlushInputEvents(), force_view(), free_inflight_music(), free_view_buffer(), g_13_stMissionHeaderBlock, g_18_nHudMessageColour, g_18_nInterfaceEventMode, g_1_bSpaceFlightActive, g_1_cStoredViewDisplayModeValue, g_27_stViewScratchInfo, g_37_stPersonnelMousePointerState, g_5_nCannedSceneFrameCount, g_6_bMissionWingmanState, g_88_nEventRepeatDelayState, g_acMissionShipStatusFlagsBytes, g_aMissionShips, g_bFullScreenSpaceView, g_bJumpSequenceActive, g_bMissionDeathSequencePending, g_bRenderingSpaceFrame, g_nArcadeState, g_nCannedSceneMode, g_nCannedSceneRecordedFrameCountNumber, g_nCockpitControlGoal, g_nCockpitControlState, g_nCockpitDisplayMode, g_nFrameSkipCountdown, g_nScreenHeight, g_nScreenWidth, g_nSpaceExplosionFlashActive, g_nSpaceFramePeriod, g_pszPendingHudMessage, HandleSpaceFlightControls(), init_inflight_music(), initialize_cockpit(), initialize_view_buffer(), InitializeSpaceFlightInput(), Viewport::left, MarkDibDirty(), MissionShipRecord::navPoint, new_view(), MissionHeader::playerMissionShip, ProcessCannedSceneInput(), ReleaseSceneMusicPacket(), RenderSpaceViewFrame(), ResetCannedSceneRecording(), ResetCockpitPaletteEntries(), Viewport::right, RunSpaceFlight(), set_up_action_sphere(), SetDefaultFrameTiming(), SetFrameTimerPeriodDirect(), SetHudTextColour(), SetInputViewport(), SetPersonnelMousePosition(), SetSpaceFlightFrameTiming(), SetViewportRect(), Viewport::top, Update_3Space(), update_cockpit(), InputPumpContext::viewport, and WaitForFrameTick().

Referenced by RunCampaignGameLoop(), RunGameApplication(), RunSpaceFlight(), and UpdateShipTurretGuns().

◆ SelectNextExternalViewObject()

◆ SetPersonnelCursorPosition()

void SetPersonnelCursorPosition ( int x,
int y,
short unused1,
short unused2 )

◆ TriggerPlayerHitPaletteFlash()

void TriggerPlayerHitPaletteFlash ( void )

◆ Update_3Space()

◆ UpdateSpacePaletteFade()

Variable Documentation

◆ g_10_bPlayerInputActive

int g_10_bPlayerInputActive

Definition at line 2013 of file main.c.

Referenced by player_input().

◆ g_10_nMenuDarkColour

◆ g_10_stPrevFlightControls

InputDeviceSample g_10_stPrevFlightControls

Definition at line 1996 of file main.c.

Referenced by HandleFleetOverviewInput(), and player_input().

◆ g_128_abPauseInputState

unsigned char g_128_abPauseInputState[0x100]
extern

Definition at line 2554 of file eventmgr.c.

Referenced by HandleSpaceFlightControls().

◆ g_129_nUnusedMainNumber2

int g_129_nUnusedMainNumber2[2]

Definition at line 2016 of file main.c.

◆ g_13_abPreviousPauseKeyStatuses

unsigned char g_13_abPreviousPauseKeyStatuses[0x100]
extern

Definition at line 2556 of file eventmgr.c.

Referenced by HandleSpaceFlightControls().

◆ g_19_bPolledFlightInputQueued

short g_19_bPolledFlightInputQueued

Definition at line 2010 of file main.c.

Referenced by HandleFleetOverviewInput(), and player_input().

◆ g_1_bDiscreteFlightInputWaiting

short g_1_bDiscreteFlightInputWaiting

Definition at line 1999 of file main.c.

Referenced by HandleFleetOverviewInput(), and player_input().

◆ g_1_bSpaceFlightActive

int g_1_bSpaceFlightActive

Definition at line 2004 of file main.c.

Referenced by PlayRawSpeechBuffer(), RunSpaceFlight(), and ServiceSoundSystem().

◆ g_1_nResourcePaletteState

◆ g_2_bFleetMouseMovePosted

short g_2_bFleetMouseMovePosted

Definition at line 2002 of file main.c.

Referenced by HandleFleetOverviewInput().

◆ g_39_nIdleMainNumber

int g_39_nIdleMainNumber[4]

Definition at line 2011 of file main.c.

◆ g_3_aInputEventArray

InputEvent g_3_aInputEventArray[0x100]

Definition at line 2012 of file main.c.

Referenced by AllocateInputEvent(), and ReleaseInputEvent().

◆ g_3_nOptionMessageColour

short g_3_nOptionMessageColour

Definition at line 2001 of file main.c.

Referenced by RunGameApplication(), and RunPilotSaveLoadMenu().

◆ g_47_nUnusedMainValue1

int g_47_nUnusedMainValue1

Definition at line 2014 of file main.c.

◆ g_47_nUnusedMainValue2

int g_47_nUnusedMainValue2[2]

Definition at line 2015 of file main.c.

◆ g_6_nUnusedMainNumber1

int g_6_nUnusedMainNumber1

Definition at line 1998 of file main.c.

◆ g_anVolumeLevels

int g_anVolumeLevels[11]
Initial value:
= {
0, 500, 1000, 2500, 5000, 11000,
22500, 34000, 44000, 54000, 64000
}

Definition at line 1930 of file main.c.

Referenced by HandleSpaceFlightControls().

◆ g_asMousePitchThresholds

short g_asMousePitchThresholds[6]
Initial value:
= {
5, 18, 27, 35, 38, 1040
}

Definition at line 1969 of file main.c.

Referenced by player_input().

◆ g_asMouseYawThresholds

short g_asMouseYawThresholds[6]
Initial value:
= {
10, 37, 52, 57, 62, 1070
}

Definition at line 1966 of file main.c.

Referenced by player_input().

◆ g_aSpaceExplosionFlashPalette

short g_aSpaceExplosionFlashPalette[13][3]
Initial value:
= {
{63, 63, 35},
{63, 63, 35},
{63, 63, 63},
{63, 63, 63},
{63, 63, 63},
{58, 58, 58},
{50, 50, 50},
{42, 42, 42},
{33, 33, 33},
{25, 25, 25},
{17, 17, 17},
{8, 8, 8},
{0, 0, 0}
}

Definition at line 1977 of file main.c.

Referenced by DrawSpaceSceneFrame(), and house_keep_objects().

◆ g_bCarrierLandingEnabled

short g_bCarrierLandingEnabled = 1

Definition at line 1945 of file main.c.

Referenced by house_keep_objects().

◆ g_bFlightButtonOneHeld

int g_bFlightButtonOneHeld = 0

Definition at line 1964 of file main.c.

Referenced by get_player_input().

◆ g_bFlightButtonTwoHeld

int g_bFlightButtonTwoHeld = 0

Definition at line 1963 of file main.c.

Referenced by get_player_input().

◆ g_bFullScreenSpaceView

int g_bFullScreenSpaceView = 1

Definition at line 1928 of file main.c.

Referenced by HandleSpaceFlightControls(), and RunSpaceFlight().

◆ g_bMapPrimaryInputQueued

short g_bMapPrimaryInputQueued

Definition at line 1997 of file main.c.

Referenced by HandleFleetOverviewInput().

◆ g_bMouseMoveEventQueued

signed char g_bMouseMoveEventQueued = 0

Definition at line 1974 of file main.c.

Referenced by player_input().

◆ g_bParentDirectorySelected

signed char g_bParentDirectorySelected = 0

Definition at line 1950 of file main.c.

Referenced by LogMemoryUsage().

◆ g_bPlayerCollisionEnabled

short g_bPlayerCollisionEnabled = 1

Definition at line 1947 of file main.c.

Referenced by CheckLauncherAndConfig(), main(), object_collision(), and visit_the_cinema().

◆ g_bPlayerDamageEnabled

short g_bPlayerDamageEnabled = 1

◆ g_bRenderingSpaceFrame

int g_bRenderingSpaceFrame = 0

Definition at line 1992 of file main.c.

Referenced by CopyViewportContents(), and RunSpaceFlight().

◆ g_bSecondaryMouseButtonHeld

signed char g_bSecondaryMouseButtonHeld = 0

Definition at line 1972 of file main.c.

Referenced by player_input().

◆ g_bSpaceViewBufferEnabled

short g_bSpaceViewBufferEnabled = 0

◆ g_bViewportDirty

short g_bViewportDirty = 0

◆ g_nArcadeState

◆ g_nCockpitCameraObject

short g_nCockpitCameraObject = 0

Definition at line 1943 of file main.c.

Referenced by set_eye_direction_and_position().

◆ g_nCockpitControlGoal

short g_nCockpitControlGoal = 0

◆ g_nCockpitControlState

◆ g_nCockpitDisplayMode

◆ g_nCurrentLevel

short g_nCurrentLevel

◆ g_nCurSeries

short g_nCurSeries

◆ g_nDirectSeries

short g_nDirectSeries = 1

Definition at line 1954 of file main.c.

Referenced by main(), RunCampaignGameLoop(), and RunGameApplication().

◆ g_nFrameSkip

◆ g_nFrameSkipCountdown

◆ g_nMenuSelectedCol

◆ g_nMissionEntryNavOverride

short g_nMissionEntryNavOverride = -1

Definition at line 1951 of file main.c.

Referenced by prepare_mission(), and RunGameApplication().

◆ g_nMousePitchInput

short g_nMousePitchInput = 0

Definition at line 1976 of file main.c.

Referenced by player_input().

◆ g_nMouseYawInput

short g_nMouseYawInput = 0

Definition at line 1975 of file main.c.

Referenced by player_input().

◆ g_nMusicVolumeSetting

int g_nMusicVolumeSetting = 0x14

◆ g_nOriginDevUnlock

◆ g_nSfxVolumeSetting

int g_nSfxVolumeSetting = 0x14

◆ g_nShowMemoryStatus

◆ g_nSpaceBlastFlashIncrement

short g_nSpaceBlastFlashIncrement

Definition at line 2006 of file main.c.

Referenced by DrawSpaceSceneFrame(), and house_keep_objects().

◆ g_nSpaceFramePeriod

short g_nSpaceFramePeriod = 4

Definition at line 1941 of file main.c.

Referenced by AdjustSpaceFramePeriod(), and RunSpaceFlight().

◆ g_nTrainSimActive

◆ g_nUnusedMainWord1

int g_nUnusedMainWord1 = 0x1370

Definition at line 1936 of file main.c.

◆ g_nUnusedMainWord2

int g_nUnusedMainWord2 = 0

Definition at line 1952 of file main.c.

◆ g_nUnusedMainWord3

int g_nUnusedMainWord3 = 0

Definition at line 1955 of file main.c.

◆ g_nUnusedMainWord4

int g_nUnusedMainWord4 = 0

Definition at line 1957 of file main.c.

◆ g_nUnusedMainWord5

int g_nUnusedMainWord5 = 0

Definition at line 1960 of file main.c.

◆ g_nUnusedMainWord6

int g_nUnusedMainWord6 = 0

Definition at line 1962 of file main.c.

◆ g_nUnusedMainWord7

int g_nUnusedMainWord7 = 0

Definition at line 1973 of file main.c.

◆ g_pInitialArguments

char* g_pInitialArguments[31]

Definition at line 2003 of file main.c.

Referenced by LoadWingCmdrCfgFile(), and RunGameApplication().

◆ g_pMemoryAdjustment

void* g_pMemoryAdjustment = 0

Definition at line 1949 of file main.c.

Referenced by LogMemoryUsage(), and RunGameApplication().

◆ g_stCurrentFlightInput

InputDeviceSample g_stCurrentFlightInput = { 0 }

Definition at line 1959 of file main.c.

Referenced by get_player_input(), HandleFleetOverviewInput(), and player_input().

◆ g_stDirectMissionSelection

struct DirectMissionSelection g_stDirectMissionSelection = { 0, 0 }

Definition at line 1953 of file main.c.

Referenced by main(), RunCampaignGameLoop(), and RunGameApplication().

◆ g_wFlightInputButtonState

short g_wFlightInputButtonState = 0

Definition at line 1961 of file main.c.

Referenced by get_player_input().