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