Cleanup: removal of pLanderInputState global
git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@3341 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
@@ -162,7 +162,7 @@ GenerateDruuge_generateEnergy (SOLARSYS_STATE *solarSys, PLANET_DESC *world,
|
|||||||
|
|
||||||
if (!GET_GAME_STATE (ROSY_SPHERE))
|
if (!GET_GAME_STATE (ROSY_SPHERE))
|
||||||
{
|
{
|
||||||
pLanderInputState->planetSideDesc->InTransit = TRUE;
|
SetLanderTakeoff ();
|
||||||
|
|
||||||
SET_GAME_STATE (ROSY_SPHERE, 1);
|
SET_GAME_STATE (ROSY_SPHERE, 1);
|
||||||
SET_GAME_STATE (ROSY_SPHERE_ON_SHIP, 1);
|
SET_GAME_STATE (ROSY_SPHERE_ON_SHIP, 1);
|
||||||
|
|||||||
@@ -152,7 +152,7 @@ GeneratePkunk_generateEnergy (SOLARSYS_STATE *solarSys, PLANET_DESC *world,
|
|||||||
|
|
||||||
if (!GET_GAME_STATE (CLEAR_SPINDLE))
|
if (!GET_GAME_STATE (CLEAR_SPINDLE))
|
||||||
{
|
{
|
||||||
pLanderInputState->planetSideDesc->InTransit = TRUE;
|
SetLanderTakeoff ();
|
||||||
|
|
||||||
SET_GAME_STATE (CLEAR_SPINDLE, 1);
|
SET_GAME_STATE (CLEAR_SPINDLE, 1);
|
||||||
SET_GAME_STATE (CLEAR_SPINDLE_ON_SHIP, 1);
|
SET_GAME_STATE (CLEAR_SPINDLE_ON_SHIP, 1);
|
||||||
|
|||||||
@@ -527,7 +527,7 @@ GenerateSol_generateEnergy (SOLARSYS_STATE *solarSys, PLANET_DESC *world,
|
|||||||
SET_GAME_STATE (FOUND_PLUTO_SPATHI, 1);
|
SET_GAME_STATE (FOUND_PLUTO_SPATHI, 1);
|
||||||
solarSys->SysInfo.PlanetInfo.ScanRetrieveMask[ENERGY_SCAN]
|
solarSys->SysInfo.PlanetInfo.ScanRetrieveMask[ENERGY_SCAN]
|
||||||
&= ~(1L << 0);
|
&= ~(1L << 0);
|
||||||
pLanderInputState->planetSideDesc->InTransit = TRUE;
|
SetLanderTakeoff ();
|
||||||
}
|
}
|
||||||
else if (*whichNode == (COUNT)~0)
|
else if (*whichNode == (COUNT)~0)
|
||||||
*whichNode = 1;
|
*whichNode = 1;
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ GenerateSupox_generateEnergy (SOLARSYS_STATE *solarSys, PLANET_DESC *world,
|
|||||||
|
|
||||||
if (!GET_GAME_STATE (ULTRON_CONDITION))
|
if (!GET_GAME_STATE (ULTRON_CONDITION))
|
||||||
{
|
{
|
||||||
pLanderInputState->planetSideDesc->InTransit = TRUE;
|
SetLanderTakeoff ();
|
||||||
|
|
||||||
SET_GAME_STATE (ULTRON_CONDITION, 1);
|
SET_GAME_STATE (ULTRON_CONDITION, 1);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ GenerateVault_generateEnergy (SOLARSYS_STATE *solarSys, PLANET_DESC *world,
|
|||||||
&= ~(1L << 0);
|
&= ~(1L << 0);
|
||||||
if (GET_GAME_STATE (SYREEN_SHUTTLE_ON_SHIP))
|
if (GET_GAME_STATE (SYREEN_SHUTTLE_ON_SHIP))
|
||||||
{
|
{
|
||||||
pLanderInputState->planetSideDesc->InTransit = TRUE;
|
SetLanderTakeoff ();
|
||||||
|
|
||||||
SET_GAME_STATE (SHIP_VAULT_UNLOCKED, 1);
|
SET_GAME_STATE (SHIP_VAULT_UNLOCKED, 1);
|
||||||
SET_GAME_STATE (SYREEN_SHUTTLE_ON_SHIP, 0);
|
SET_GAME_STATE (SYREEN_SHUTTLE_ON_SHIP, 0);
|
||||||
|
|||||||
@@ -348,7 +348,7 @@ GenerateVux_generateLife (SOLARSYS_STATE *solarSys, PLANET_DESC *world,
|
|||||||
UnbatchGraphics ();
|
UnbatchGraphics ();
|
||||||
DoDiscoveryReport (MenuSounds);
|
DoDiscoveryReport (MenuSounds);
|
||||||
BatchGraphics ();
|
BatchGraphics ();
|
||||||
pLanderInputState->planetSideDesc->InTransit = TRUE;
|
SetLanderTakeoff ();
|
||||||
|
|
||||||
SET_GAME_STATE (VUX_BEAST, 1);
|
SET_GAME_STATE (VUX_BEAST, 1);
|
||||||
SET_GAME_STATE (VUX_BEAST_ON_SHIP, 1);
|
SET_GAME_STATE (VUX_BEAST_ON_SHIP, 1);
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ GenerateWreck_generateEnergy (SOLARSYS_STATE *solarSys, PLANET_DESC *world,
|
|||||||
|
|
||||||
if (!GET_GAME_STATE (PORTAL_KEY))
|
if (!GET_GAME_STATE (PORTAL_KEY))
|
||||||
{
|
{
|
||||||
pLanderInputState->planetSideDesc->InTransit = TRUE;
|
SetLanderTakeoff ();
|
||||||
|
|
||||||
SET_GAME_STATE (PORTAL_KEY, 1);
|
SET_GAME_STATE (PORTAL_KEY, 1);
|
||||||
SET_GAME_STATE (PORTAL_KEY_ON_SHIP, 1);
|
SET_GAME_STATE (PORTAL_KEY_ON_SHIP, 1);
|
||||||
|
|||||||
@@ -50,12 +50,18 @@
|
|||||||
// ONE_SECOND.
|
// ONE_SECOND.
|
||||||
#define PLANET_SIDE_RATE (ONE_SECOND / 35)
|
#define PLANET_SIDE_RATE (ONE_SECOND / 35)
|
||||||
|
|
||||||
LanderInputState *pLanderInputState;
|
|
||||||
// Temporary, to replace the references to pMenuState.
|
// This is a derived type from INPUT_STATE_DESC.
|
||||||
// TODO: Many functions depend on pLanderInputState. In particular,
|
typedef struct LanderInputState LanderInputState;
|
||||||
// the ELEMENT property functions. Fields in LanderInputState
|
struct LanderInputState {
|
||||||
// should either be made static vars, or ELEMENT should carry
|
// Fields required by DoInput()
|
||||||
// something like an 'intptr_t private' field
|
BOOLEAN (*InputFunc) (LanderInputState *pMS);
|
||||||
|
COUNT MenuRepeatDelay;
|
||||||
|
|
||||||
|
BOOLEAN Initialized;
|
||||||
|
TimeCount NextTime;
|
||||||
|
// Frame rate control
|
||||||
|
};
|
||||||
|
|
||||||
FRAME LanderFrame[8];
|
FRAME LanderFrame[8];
|
||||||
static SOUND LanderSounds;
|
static SOUND LanderSounds;
|
||||||
@@ -164,6 +170,9 @@ static int turn_wait;
|
|||||||
static int weapon_wait;
|
static int weapon_wait;
|
||||||
// semantics similar to STARSHIP.weapon_counter
|
// semantics similar to STARSHIP.weapon_counter
|
||||||
|
|
||||||
|
// TODO: We may want to make the PLANETSIDE_DESC fields into static vars
|
||||||
|
static PLANETSIDE_DESC *planetSideDesc;
|
||||||
|
|
||||||
#define ON_THE_GROUND 0
|
#define ON_THE_GROUND 0
|
||||||
|
|
||||||
|
|
||||||
@@ -646,7 +655,7 @@ CheckObjectCollision (COUNT index)
|
|||||||
DRAWABLE LanderHandle;
|
DRAWABLE LanderHandle;
|
||||||
PRIMITIVE *pPrim;
|
PRIMITIVE *pPrim;
|
||||||
PRIMITIVE *pLanderPrim;
|
PRIMITIVE *pLanderPrim;
|
||||||
PLANETSIDE_DESC *pPSD;
|
PLANETSIDE_DESC *pPSD = planetSideDesc;
|
||||||
|
|
||||||
if (index != END_OF_LIST)
|
if (index != END_OF_LIST)
|
||||||
{
|
{
|
||||||
@@ -663,7 +672,6 @@ CheckObjectCollision (COUNT index)
|
|||||||
index = GetSuccLink (DisplayLinks);
|
index = GetSuccLink (DisplayLinks);
|
||||||
}
|
}
|
||||||
|
|
||||||
pPSD = pLanderInputState->planetSideDesc;
|
|
||||||
LanderControl.EndPoint = LanderControl.IntersectStamp.origin;
|
LanderControl.EndPoint = LanderControl.IntersectStamp.origin;
|
||||||
LanderHandle = GetFrameParentDrawable (LanderControl.IntersectStamp.frame);
|
LanderHandle = GetFrameParentDrawable (LanderControl.IntersectStamp.frame);
|
||||||
|
|
||||||
@@ -920,9 +928,8 @@ lightning_process (ELEMENT *ElementPtr)
|
|||||||
if (ElementPtr->mass_points == LIGHTNING_DISASTER)
|
if (ElementPtr->mass_points == LIGHTNING_DISASTER)
|
||||||
{
|
{
|
||||||
/* This one always strikes the lander and can hurt */
|
/* This one always strikes the lander and can hurt */
|
||||||
PLANETSIDE_DESC *pPSD = pLanderInputState->planetSideDesc;
|
|
||||||
if (crew_left && TFB_Random () % 100 < 10
|
if (crew_left && TFB_Random () % 100 < 10
|
||||||
&& !pPSD->InTransit)
|
&& !planetSideDesc->InTransit)
|
||||||
lander_flags |= KILL_CREW;
|
lander_flags |= KILL_CREW;
|
||||||
|
|
||||||
ElementPtr->next.location = curLanderLoc;
|
ElementPtr->next.location = curLanderLoc;
|
||||||
@@ -1055,13 +1062,12 @@ BuildObjectList (void)
|
|||||||
DWORD rand_val;
|
DWORD rand_val;
|
||||||
POINT org;
|
POINT org;
|
||||||
HELEMENT hElement, hNextElement;
|
HELEMENT hElement, hNextElement;
|
||||||
PLANETSIDE_DESC *pPSD;
|
PLANETSIDE_DESC *pPSD = planetSideDesc;
|
||||||
|
|
||||||
DisplayLinks = MakeLinks (END_OF_LIST, END_OF_LIST);
|
DisplayLinks = MakeLinks (END_OF_LIST, END_OF_LIST);
|
||||||
|
|
||||||
lander_flags &= ~KILL_CREW;
|
lander_flags &= ~KILL_CREW;
|
||||||
|
|
||||||
pPSD = pLanderInputState->planetSideDesc;
|
|
||||||
rand_val = TFB_Random ();
|
rand_val = TFB_Random ();
|
||||||
if (LOBYTE (HIWORD (rand_val)) < pPSD->FireChance)
|
if (LOBYTE (HIWORD (rand_val)) < pPSD->FireChance)
|
||||||
{
|
{
|
||||||
@@ -1267,9 +1273,7 @@ ScrollPlanetSide (SIZE dx, SIZE dy, int landingOffset)
|
|||||||
CheckObjectCollision (END_OF_LIST);
|
CheckObjectCollision (END_OF_LIST);
|
||||||
|
|
||||||
{
|
{
|
||||||
PLANETSIDE_DESC *pPSD;
|
PLANETSIDE_DESC *pPSD = planetSideDesc;
|
||||||
|
|
||||||
pPSD = pLanderInputState->planetSideDesc;
|
|
||||||
if (pPSD->NumFrames)
|
if (pPSD->NumFrames)
|
||||||
{
|
{
|
||||||
--pPSD->NumFrames;
|
--pPSD->NumFrames;
|
||||||
@@ -1624,7 +1628,7 @@ landerSpeedNumer = WORLD_TO_VELOCITY (48);
|
|||||||
else if (crew_left /* alive and taking off */
|
else if (crew_left /* alive and taking off */
|
||||||
&& ((CurrentInputState.key[PlayerControls[0]][KEY_ESCAPE] ||
|
&& ((CurrentInputState.key[PlayerControls[0]][KEY_ESCAPE] ||
|
||||||
CurrentInputState.key[PlayerControls[0]][KEY_SPECIAL])
|
CurrentInputState.key[PlayerControls[0]][KEY_SPECIAL])
|
||||||
|| pLanderInputState->planetSideDesc->InTransit))
|
|| planetSideDesc->InTransit))
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@@ -1870,6 +1874,14 @@ LandingTakeoffSequence (LanderInputState *inputState, BOOLEAN landing)
|
|||||||
IdlePlanetSide (inputState, ONE_SECOND / 2);
|
IdlePlanetSide (inputState, ONE_SECOND / 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
SetLanderTakeoff (void)
|
||||||
|
{
|
||||||
|
assert (planetSideDesc != NULL);
|
||||||
|
if (planetSideDesc)
|
||||||
|
planetSideDesc->InTransit = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
PlanetSide (POINT planetLoc)
|
PlanetSide (POINT planetLoc)
|
||||||
{
|
{
|
||||||
@@ -1936,14 +1948,8 @@ PlanetSide (POINT planetLoc)
|
|||||||
BUILD_COLOR (MAKE_RGB15 (0x1F, 0x0A, 0x00), 0x7D);
|
BUILD_COLOR (MAKE_RGB15 (0x1F, 0x0A, 0x00), 0x7D);
|
||||||
PSD.ColorCycle[(NUM_TEXT_FRAMES >> 1) - 1] =
|
PSD.ColorCycle[(NUM_TEXT_FRAMES >> 1) - 1] =
|
||||||
BUILD_COLOR (MAKE_RGB15 (0x1F, 0x03, 0x00), 0x7F);
|
BUILD_COLOR (MAKE_RGB15 (0x1F, 0x03, 0x00), 0x7F);
|
||||||
landerInputState.planetSideDesc = &PSD;
|
planetSideDesc = &PSD;
|
||||||
|
|
||||||
// TODO: Many functions depend on pLanderInputState. In particular,
|
|
||||||
// the ELEMENT property functions. Fields in LanderInputState
|
|
||||||
// should either be made static vars, or ELEMENT should carry
|
|
||||||
// something like an 'intptr_t private' field
|
|
||||||
pLanderInputState = &landerInputState;
|
|
||||||
|
|
||||||
index = NORMALIZE_FACING (TFB_Random ());
|
index = NORMALIZE_FACING (TFB_Random ());
|
||||||
LanderFrame[0] = SetAbsFrameIndex (LanderFrame[0], index);
|
LanderFrame[0] = SetAbsFrameIndex (LanderFrame[0], index);
|
||||||
crew_left = 0;
|
crew_left = 0;
|
||||||
@@ -2020,7 +2026,7 @@ PlanetSide (POINT planetLoc)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
landerInputState.planetSideDesc = NULL;
|
planetSideDesc = NULL;
|
||||||
|
|
||||||
{
|
{
|
||||||
HELEMENT hElement, hNextElement;
|
HELEMENT hElement, hNextElement;
|
||||||
|
|||||||
@@ -32,6 +32,8 @@
|
|||||||
|
|
||||||
#define NUM_TEXT_FRAMES 32
|
#define NUM_TEXT_FRAMES 32
|
||||||
|
|
||||||
|
// XXX: This is a private type now. Move it to lander.c?
|
||||||
|
// We may also want to merge it with LanderInputState.
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
BOOLEAN InTransit;
|
BOOLEAN InTransit;
|
||||||
@@ -54,34 +56,6 @@ typedef struct
|
|||||||
BYTE FireChance;
|
BYTE FireChance;
|
||||||
} PLANETSIDE_DESC;
|
} PLANETSIDE_DESC;
|
||||||
|
|
||||||
// This is a derived type from INPUT_STATE_DESC.
|
|
||||||
// Originally, the general MENU_STATE structure was used. Now, only the
|
|
||||||
// fields which are relevant are put in here. In the MENU_STATE structure,
|
|
||||||
// these fields were reused for all sorts of purposes, which had nothing
|
|
||||||
// to do with what the name suggests. Not all fields have been renamed yet
|
|
||||||
// in LanderInputState.
|
|
||||||
typedef struct LanderInputState LanderInputState;
|
|
||||||
struct LanderInputState {
|
|
||||||
BOOLEAN (*InputFunc) (LanderInputState *pMS);
|
|
||||||
COUNT MenuRepeatDelay;
|
|
||||||
|
|
||||||
PLANETSIDE_DESC *planetSideDesc;
|
|
||||||
SIZE Initialized;
|
|
||||||
TimeCount NextTime;
|
|
||||||
// Frame rate control
|
|
||||||
};
|
|
||||||
|
|
||||||
extern LanderInputState *pLanderInputState;
|
|
||||||
// Temporary, to replace the references to pMenuState.
|
|
||||||
// TODO: Many functions depend on pLanderInputState. In particular,
|
|
||||||
// the ELEMENT property functions. Fields in LanderInputState
|
|
||||||
// should either be made static vars, or ELEMENT should carry
|
|
||||||
// something like an 'intptr_t private' field
|
|
||||||
// TODO: Generation functions use pLanderInputState to locate
|
|
||||||
// the PLANETSIDE_DESC.InTransit. Make those instances into
|
|
||||||
// a function call instead.
|
|
||||||
|
|
||||||
|
|
||||||
extern MUSIC_REF LanderMusic;
|
extern MUSIC_REF LanderMusic;
|
||||||
|
|
||||||
extern void PlanetSide (POINT planetLoc);
|
extern void PlanetSide (POINT planetLoc);
|
||||||
@@ -92,6 +66,8 @@ extern void FreeLanderData (void);
|
|||||||
|
|
||||||
extern void object_animation (ELEMENT *ElementPtr);
|
extern void object_animation (ELEMENT *ElementPtr);
|
||||||
|
|
||||||
|
extern void SetLanderTakeoff (void);
|
||||||
|
|
||||||
// ELEMENT.playerNr constants
|
// ELEMENT.playerNr constants
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user