Add a SOLARSYS_STATE parameter to initNpcs(), reinitNpcs(), and uninitNpcs().

git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@3348 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
Meep-Eep
2009-11-24 18:40:38 +00:00
parent f2c5cb505a
commit bd640f38dc
12 changed files with 62 additions and 53 deletions
+3 -3
View File
@@ -45,9 +45,9 @@ typedef struct GenerateFunctions GenerateFunctions;
// Any of these functions returning true means that the action has been
// handled, and that the default function should not be called.
typedef bool (*InitNpcsFunction)(void);
typedef bool (*ReinitNpcsFunction)(void);
typedef bool (*UninitNpcsFunction)(void);
typedef bool (*InitNpcsFunction)(SOLARSYS_STATE *solarSys);
typedef bool (*ReinitNpcsFunction)(SOLARSYS_STATE *solarSys);
typedef bool (*UninitNpcsFunction)(SOLARSYS_STATE *solarSys);
typedef bool (*GeneratePlanetsFunction)(SOLARSYS_STATE *solarSys);
typedef bool (*GenerateMoonsFunction)(SOLARSYS_STATE *solarSys,
PLANET_DESC *planet);
+3 -3
View File
@@ -25,7 +25,7 @@
#include "libs/mathlib.h"
static bool GenerateColony_initNpcs (void);
static bool GenerateColony_initNpcs (SOLARSYS_STATE *solarSys);
static bool GenerateColony_generatePlanets (SOLARSYS_STATE *solarSys);
static bool GenerateColony_generateOrbital (SOLARSYS_STATE *solarSys,
PLANET_DESC *world);
@@ -46,7 +46,7 @@ const GenerateFunctions generateColonyFunctions = {
static bool
GenerateColony_initNpcs (void)
GenerateColony_initNpcs (SOLARSYS_STATE *solarSys)
{
HIPGROUP hGroup;
@@ -60,7 +60,7 @@ GenerateColony_initNpcs (void)
SET_GAME_STATE_32 (COLONY_GRPOFFS0, GLOBAL (BattleGroupRef));
}
GenerateDefault_initNpcs ();
GenerateDefault_initNpcs (solarSys);
if (GLOBAL (BattleGroupRef)
&& (hGroup = GetHeadLink (&GLOBAL (ip_group_q))))
+12 -6
View File
@@ -25,9 +25,9 @@
#include "libs/mathlib.h"
bool GenerateDefault_initNpcs (void);
bool GenerateDefault_reinitNpcs (void);
bool GenerateDefault_uninitNpcs (void);
bool GenerateDefault_initNpcs (SOLARSYS_STATE *solarSys);
bool GenerateDefault_reinitNpcs (SOLARSYS_STATE *solarSys);
bool GenerateDefault_uninitNpcs (SOLARSYS_STATE *solarSys);
bool GenerateDefault_generatePlanets (SOLARSYS_STATE *solarSys);
bool GenerateDefault_generateMoons (SOLARSYS_STATE *solarSys,
PLANET_DESC *planet);
@@ -61,18 +61,20 @@ const GenerateFunctions generateDefaultFunctions = {
bool
GenerateDefault_initNpcs (void)
GenerateDefault_initNpcs (SOLARSYS_STATE *solarSys)
{
if (!GetGroupInfo (GLOBAL (BattleGroupRef), GROUP_INIT_IP))
{
GLOBAL (BattleGroupRef) = 0;
BuildGroups ();
}
(void) solarSys;
return true;
}
bool
GenerateDefault_reinitNpcs (void)
GenerateDefault_reinitNpcs (SOLARSYS_STATE *solarSys)
{
GetGroupInfo (GROUPS_RANDOM, GROUP_LOAD_IP);
// This is not a great place to do the Yehat rebellion check, but
@@ -80,15 +82,19 @@ GenerateDefault_reinitNpcs (void)
// the Homeworld), I could not find a better place for it.
// At least it is better than where it was originally.
check_yehat_rebellion ();
(void) solarSys;
return true;
}
bool
GenerateDefault_uninitNpcs (void)
GenerateDefault_uninitNpcs (SOLARSYS_STATE *solarSys)
{
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
ReinitQueue (&GLOBAL (npc_built_ship_q));
ReinitQueue (&GLOBAL (ip_group_q));
(void) solarSys;
return true;
}
+3 -3
View File
@@ -21,9 +21,9 @@
#include "../planets.h"
#include "libs/compiler.h"
bool GenerateDefault_initNpcs (void);
bool GenerateDefault_reinitNpcs (void);
bool GenerateDefault_uninitNpcs (void);
bool GenerateDefault_initNpcs (SOLARSYS_STATE *solarSys);
bool GenerateDefault_reinitNpcs (SOLARSYS_STATE *solarSys);
bool GenerateDefault_uninitNpcs (SOLARSYS_STATE *solarSys);
bool GenerateDefault_generatePlanets (SOLARSYS_STATE *solarSys);
bool GenerateDefault_generateMoons (SOLARSYS_STATE *solarSys,
PLANET_DESC *planet);
+3 -3
View File
@@ -24,7 +24,7 @@
#include "libs/log.h"
static bool GenerateMelnorme_initNpcs (void);
static bool GenerateMelnorme_initNpcs (SOLARSYS_STATE *solarSys);
static int SelectMelnormeRefVar (void);
static DWORD GetMelnormeRef (void);
@@ -46,7 +46,7 @@ const GenerateFunctions generateMelnormeFunctions = {
static bool
GenerateMelnorme_initNpcs (void)
GenerateMelnorme_initNpcs (SOLARSYS_STATE *solarSys)
{
GLOBAL (BattleGroupRef) = GetMelnormeRef ();
if (GLOBAL (BattleGroupRef) == 0)
@@ -57,7 +57,7 @@ GenerateMelnorme_initNpcs (void)
SetMelnormeRef (GLOBAL (BattleGroupRef));
}
GenerateDefault_initNpcs ();
GenerateDefault_initNpcs (solarSys);
return true;
}
+6 -5
View File
@@ -27,8 +27,8 @@
#include "libs/mathlib.h"
static bool GenerateSaMatra_initNpcs (void);
static bool GenerateSaMatra_reinitNpcs (void);
static bool GenerateSaMatra_initNpcs (SOLARSYS_STATE *solarSys);
static bool GenerateSaMatra_reinitNpcs (SOLARSYS_STATE *solarSys);
static bool GenerateSaMatra_generatePlanets (SOLARSYS_STATE *solarSys);
static bool GenerateSaMatra_generateMoons (SOLARSYS_STATE *solarSys,
PLANET_DESC *planet);
@@ -53,7 +53,7 @@ const GenerateFunctions generateSaMatraFunctions = {
static bool
GenerateSaMatra_initNpcs (void)
GenerateSaMatra_initNpcs (SOLARSYS_STATE *solarSys)
{
if (!GET_GAME_STATE (URQUAN_MESSED_UP))
{
@@ -65,11 +65,12 @@ GenerateSaMatra_initNpcs (void)
// wipe out the group
}
(void) solarSys;
return true;
}
static bool
GenerateSaMatra_reinitNpcs (void)
GenerateSaMatra_reinitNpcs (SOLARSYS_STATE *solarSys)
{
BOOLEAN GuardEngaged;
HIPGROUP hGroup;
@@ -113,7 +114,7 @@ GenerateSaMatra_reinitNpcs (void)
COUNT angle;
POINT org;
XFormIPLoc (&pSolarSysState->PlanetDesc[4].image.origin, &org, FALSE);
XFormIPLoc (&solarSys->PlanetDesc[4].image.origin, &org, FALSE);
angle = ARCTAN (GLOBAL (ip_location.x) - org.x,
GLOBAL (ip_location.y) - org.y);
GLOBAL (ip_location.x) = org.x + COSINE (angle, 3000);
+11 -9
View File
@@ -24,9 +24,9 @@
#include "../planets.h"
static bool GenerateShofixti_initNpcs (void);
static bool GenerateShofixti_reinitNpcs (void);
static bool GenerateShofixti_uninitNpcs (void);
static bool GenerateShofixti_initNpcs (SOLARSYS_STATE *solarSys);
static bool GenerateShofixti_reinitNpcs (SOLARSYS_STATE *solarSys);
static bool GenerateShofixti_uninitNpcs (SOLARSYS_STATE *solarSys);
static bool GenerateShofixti_generatePlanets (SOLARSYS_STATE *solarSys);
static void check_old_shofixti (void);
@@ -47,7 +47,7 @@ const GenerateFunctions generateShofixtiFunctions = {
static bool
GenerateShofixti_initNpcs (void)
GenerateShofixti_initNpcs (SOLARSYS_STATE *solarSys)
{
if (!GET_GAME_STATE (SHOFIXTI_RECRUITED)
&& (!GET_GAME_STATE (SHOFIXTI_KIA)
@@ -85,22 +85,24 @@ GenerateShofixti_initNpcs (void)
// This was originally a fallthrough to REINIT_NPCS.
// XXX: is the call to check_old_shofixti() needed?
GenerateDefault_initNpcs ();
GenerateDefault_initNpcs (solarSys);
check_old_shofixti ();
return true;
}
static bool
GenerateShofixti_reinitNpcs (void)
GenerateShofixti_reinitNpcs (SOLARSYS_STATE *solarSys)
{
GenerateDefault_reinitNpcs ();
GenerateDefault_reinitNpcs (solarSys);
check_old_shofixti ();
(void) solarSys;
return true;
}
static bool
GenerateShofixti_uninitNpcs (void)
GenerateShofixti_uninitNpcs (SOLARSYS_STATE *solarSys)
{
if (GLOBAL (BattleGroupRef)
&& !GET_GAME_STATE (SHOFIXTI_RECRUITED)
@@ -117,7 +119,7 @@ GenerateShofixti_uninitNpcs (void)
}
}
GenerateDefault_uninitNpcs ();
GenerateDefault_uninitNpcs (solarSys);
return true;
}
+6 -6
View File
@@ -30,8 +30,8 @@
#include "libs/mathlib.h"
static bool GenerateSol_initNpcs (void);
static bool GenerateSol_reinitNpcs (void);
static bool GenerateSol_initNpcs (SOLARSYS_STATE *solarSys);
static bool GenerateSol_reinitNpcs (SOLARSYS_STATE *solarSys);
static bool GenerateSol_generatePlanets (SOLARSYS_STATE *solarSys);
static bool GenerateSol_generateMoons (SOLARSYS_STATE *solarSys,
PLANET_DESC *planet);
@@ -63,7 +63,7 @@ const GenerateFunctions generateSolFunctions = {
static bool
GenerateSol_initNpcs (void)
GenerateSol_initNpcs (SOLARSYS_STATE *solarSys)
{
GLOBAL (BattleGroupRef) = GET_GAME_STATE_32 (URQUAN_PROBE_GRPOFFS0);
if (GLOBAL (BattleGroupRef) == 0)
@@ -75,17 +75,17 @@ GenerateSol_initNpcs (void)
}
if (!init_probe ())
GenerateDefault_initNpcs ();
GenerateDefault_initNpcs (solarSys);
return true;
}
static bool
GenerateSol_reinitNpcs (void)
GenerateSol_reinitNpcs (SOLARSYS_STATE *solarSys)
{
if (GET_GAME_STATE (CHMMR_BOMB_STATE) != 3)
{
GenerateDefault_reinitNpcs ();
GenerateDefault_reinitNpcs (solarSys);
check_probe ();
}
else
+3 -3
View File
@@ -29,7 +29,7 @@
#include "libs/mathlib.h"
static bool GenerateUtwig_initNpcs (void);
static bool GenerateUtwig_initNpcs (SOLARSYS_STATE *solarSys);
static bool GenerateUtwig_generatePlanets (SOLARSYS_STATE *solarSys);
static bool GenerateUtwig_generateOrbital (SOLARSYS_STATE *solarSys,
PLANET_DESC *world);
@@ -52,7 +52,7 @@ const GenerateFunctions generateUtwigFunctions = {
static bool
GenerateUtwig_initNpcs (void)
GenerateUtwig_initNpcs (SOLARSYS_STATE *solarSys)
{
if (CurStarDescPtr->Index == BOMB_DEFINED
&& !GET_GAME_STATE (UTWIG_BOMB))
@@ -62,7 +62,7 @@ GenerateUtwig_initNpcs (void)
}
else
{
GenerateDefault_initNpcs ();
GenerateDefault_initNpcs (solarSys);
}
return true;
+6 -6
View File
@@ -23,8 +23,8 @@
#include "../../state.h"
static bool GenerateZoqFotPikScout_initNpcs (void);
static bool GenerateZoqFotPikScout_reinitNpcs (void);
static bool GenerateZoqFotPikScout_initNpcs (SOLARSYS_STATE *solarSys);
static bool GenerateZoqFotPikScout_reinitNpcs (SOLARSYS_STATE *solarSys);
const GenerateFunctions generateZoqFotPikScoutFunctions = {
@@ -42,7 +42,7 @@ const GenerateFunctions generateZoqFotPikScoutFunctions = {
static bool
GenerateZoqFotPikScout_initNpcs (void)
GenerateZoqFotPikScout_initNpcs (SOLARSYS_STATE *solarSys)
{
if (!GET_GAME_STATE (MET_ZOQFOT))
{
@@ -57,18 +57,18 @@ GenerateZoqFotPikScout_initNpcs (void)
}
}
GenerateDefault_initNpcs ();
GenerateDefault_initNpcs (solarSys);
return true;
}
static bool
GenerateZoqFotPikScout_reinitNpcs (void)
GenerateZoqFotPikScout_reinitNpcs (SOLARSYS_STATE *solarSys)
{
HIPGROUP hGroup;
IP_GROUP *GroupPtr;
GenerateDefault_reinitNpcs ();
GenerateDefault_reinitNpcs (solarSys);
if (!GLOBAL (BattleGroupRef))
return true; // nothing to check
+3 -3
View File
@@ -26,7 +26,7 @@
#include "libs/mathlib.h"
static bool GenerateZoqFotPik_initNpcs (void);
static bool GenerateZoqFotPik_initNpcs (SOLARSYS_STATE *solarSys);
static bool GenerateZoqFotPik_generatePlanets (SOLARSYS_STATE *solarSys);
static bool GenerateZoqFotPik_generateOrbital (SOLARSYS_STATE *solarSys,
PLANET_DESC *world);
@@ -49,10 +49,10 @@ const GenerateFunctions generateZoqFotPikFunctions = {
static bool
GenerateZoqFotPik_initNpcs (void)
GenerateZoqFotPik_initNpcs (SOLARSYS_STATE *solarSys)
{
if (GET_GAME_STATE (ZOQFOT_DISTRESS) != 1)
GenerateDefault_initNpcs ();
GenerateDefault_initNpcs (solarSys);
return true;
}
+3 -3
View File
@@ -1476,7 +1476,7 @@ InitSolarSys (void)
if (Reentry)
{
(*pSolarSysState->genFuncs->reinitNpcs) ();
(*pSolarSysState->genFuncs->reinitNpcs) (pSolarSysState);
}
else
{
@@ -1485,7 +1485,7 @@ InitSolarSys (void)
GLOBAL (BattleGroupRef) = 0;
ReinitQueue (&GLOBAL (ip_group_q));
ReinitQueue (&GLOBAL (npc_built_ship_q));
(*pSolarSysState->genFuncs->initNpcs) ();
(*pSolarSysState->genFuncs->initNpcs) (pSolarSysState);
}
if (pSolarSysState->MenuState.Initialized == 0)
@@ -1555,7 +1555,7 @@ endInterPlanetary (void)
{
// These are game state changing ops and so cannot be
// called once another game has been loaded!
(*pSolarSysState->genFuncs->uninitNpcs) ();
(*pSolarSysState->genFuncs->uninitNpcs) (pSolarSysState);
SET_GAME_STATE (USED_BROADCASTER, 0);
}
}