Removed SOLARSYS_STATE.CurNode; uniform usage of callGenerateForScanType()

git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@3577 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
avolkov
2011-04-20 18:54:27 +00:00
parent 25f0f3c903
commit 258b34d274
4 changed files with 33 additions and 36 deletions
+3 -2
View File
@@ -718,6 +718,7 @@ CheckObjectCollision (COUNT index)
{ {
COUNT scan, NumRetrieved; COUNT scan, NumRetrieved;
SIZE which_node; SIZE which_node;
COUNT allNodes;
scan = LOBYTE (ElementPtr->scan_node); scan = LOBYTE (ElementPtr->scan_node);
if (pLanderPrim == 0) if (pLanderPrim == 0)
@@ -859,10 +860,10 @@ CheckObjectCollision (COUNT index)
which_node = HIBYTE (ElementPtr->scan_node) - 1; which_node = HIBYTE (ElementPtr->scan_node) - 1;
pSolarSysState->SysInfo.PlanetInfo.ScanRetrieveMask[scan] |= pSolarSysState->SysInfo.PlanetInfo.ScanRetrieveMask[scan] |=
(1L << which_node); (1L << which_node);
pSolarSysState->CurNode = (COUNT)~0; allNodes = (COUNT)~0;
callGenerateForScanType (pSolarSysState, callGenerateForScanType (pSolarSysState,
pSolarSysState->pOrbitalDesc, pSolarSysState->pOrbitalDesc,
&pSolarSysState->CurNode, scan); &allNodes, scan);
if (!(pSolarSysState->SysInfo.PlanetInfo.ScanRetrieveMask[scan] & if (!(pSolarSysState->SysInfo.PlanetInfo.ScanRetrieveMask[scan] &
(1L << which_node))) (1L << which_node)))
-1
View File
@@ -204,7 +204,6 @@ struct solarsys_state
SYSTEM_INFO SysInfo; SYSTEM_INFO SysInfo;
COUNT CurNode;
const GenerateFunctions *genFuncs; const GenerateFunctions *genFuncs;
// Functions to call to fill in various parts of this structure. // Functions to call to fill in various parts of this structure.
// See generate.h, doc/devel/generate // See generate.h, doc/devel/generate
+5 -5
View File
@@ -1337,15 +1337,15 @@ GeneratePlanetSide (void)
f = SetAbsFrameIndex (MiscDataFrame, f = SetAbsFrameIndex (MiscDataFrame,
NUM_SCANDOT_TRANSITIONS * (scan - ENERGY_SCAN)); NUM_SCANDOT_TRANSITIONS * (scan - ENERGY_SCAN));
pSolarSysState->CurNode = (COUNT)~0; num_nodes = (COUNT)~0;
callGenerateForScanType (pSolarSysState, callGenerateForScanType (pSolarSysState,
pSolarSysState->pOrbitalDesc, &pSolarSysState->CurNode, scan); pSolarSysState->pOrbitalDesc, &num_nodes, scan);
num_nodes = pSolarSysState->CurNode;
while (num_nodes--) while (num_nodes--)
{ {
HELEMENT hNodeElement; HELEMENT hNodeElement;
ELEMENT *NodeElementPtr; ELEMENT *NodeElementPtr;
COUNT whichNode;
if (isNodeRetrieved (&pSolarSysState->SysInfo.PlanetInfo, if (isNodeRetrieved (&pSolarSysState->SysInfo.PlanetInfo,
scan, num_nodes)) scan, num_nodes))
@@ -1357,9 +1357,9 @@ GeneratePlanetSide (void)
LockElement (hNodeElement, &NodeElementPtr); LockElement (hNodeElement, &NodeElementPtr);
pSolarSysState->CurNode = num_nodes; whichNode = num_nodes;
callGenerateForScanType (pSolarSysState, callGenerateForScanType (pSolarSysState,
pSolarSysState->pOrbitalDesc, &pSolarSysState->CurNode, pSolarSysState->pOrbitalDesc, &whichNode,
scan); scan);
NodeElementPtr->scan_node = MAKE_WORD (scan, num_nodes + 1); NodeElementPtr->scan_node = MAKE_WORD (scan, num_nodes + 1);
+25 -28
View File
@@ -31,6 +31,7 @@
#include "gendef.h" #include "gendef.h"
#include "globdata.h" #include "globdata.h"
#include "planets/lifeform.h" #include "planets/lifeform.h"
#include "planets/scan.h"
#include "races.h" #include "races.h"
#include "setup.h" #include "setup.h"
#include "state.h" #include "state.h"
@@ -1054,17 +1055,16 @@ calculateBioValue (const SOLARSYS_STATE *system, const PLANET_DESC *world)
assert (system->pOrbitalDesc == world); assert (system->pOrbitalDesc == world);
((SOLARSYS_STATE *) system)->CurNode = (COUNT)~0; numBio = (COUNT)~0;
(*system->genFuncs->generateLife) ((SOLARSYS_STATE *) system, callGenerateForScanType ((SOLARSYS_STATE *) system, (PLANET_DESC *) world,
(PLANET_DESC *) world, &((SOLARSYS_STATE *) system)->CurNode); &numBio, BIOLOGICAL_SCAN);
numBio = system->CurNode;
result = 0; result = 0;
for (i = 0; i < numBio; i++) for (i = 0; i < numBio; i++)
{ {
((SOLARSYS_STATE *) system)->CurNode = i; COUNT whichNode = i;
(*system->genFuncs->generateLife) ((SOLARSYS_STATE *) system, callGenerateForScanType ((SOLARSYS_STATE *) system,
(PLANET_DESC *) world, &((SOLARSYS_STATE *) system)->CurNode); (PLANET_DESC *) world, &whichNode, BIOLOGICAL_SCAN);
result += BIO_CREDIT_VALUE * LONIBBLE (CreatureData[ result += BIO_CREDIT_VALUE * LONIBBLE (CreatureData[
system->SysInfo.PlanetInfo.CurType].ValueAndHitPoints); system->SysInfo.PlanetInfo.CurType].ValueAndHitPoints);
} }
@@ -1080,19 +1080,18 @@ generateBioIndex(const SOLARSYS_STATE *system, const PLANET_DESC *world,
assert (system->pOrbitalDesc == world); assert (system->pOrbitalDesc == world);
((SOLARSYS_STATE *) system)->CurNode = (COUNT)~0; numBio = (COUNT)~0;
(*system->genFuncs->generateLife) ((SOLARSYS_STATE *) system, callGenerateForScanType ((SOLARSYS_STATE *) system, (PLANET_DESC *) world,
(PLANET_DESC *) world, &((SOLARSYS_STATE *) system)->CurNode); &numBio, BIOLOGICAL_SCAN);
numBio = system->CurNode;
for (i = 0; i < NUM_CREATURE_TYPES + NUM_SPECIAL_CREATURE_TYPES; i++) for (i = 0; i < NUM_CREATURE_TYPES + NUM_SPECIAL_CREATURE_TYPES; i++)
bio[i] = 0; bio[i] = 0;
for (i = 0; i < numBio; i++) for (i = 0; i < numBio; i++)
{ {
((SOLARSYS_STATE *) system)->CurNode = i; COUNT whichNode = i;
(*system->genFuncs->generateLife) ((SOLARSYS_STATE *) system, callGenerateForScanType ((SOLARSYS_STATE *) system,
(PLANET_DESC *) world, &((SOLARSYS_STATE *) system)->CurNode); (PLANET_DESC *) world, &whichNode, BIOLOGICAL_SCAN);
bio[system->SysInfo.PlanetInfo.CurType]++; bio[system->SysInfo.PlanetInfo.CurType]++;
} }
} }
@@ -1106,17 +1105,16 @@ calculateMineralValue (const SOLARSYS_STATE *system, const PLANET_DESC *world)
assert (system->pOrbitalDesc == world); assert (system->pOrbitalDesc == world);
((SOLARSYS_STATE *) system)->CurNode = (COUNT)~0; numDeposits = (COUNT)~0;
(*system->genFuncs->generateMinerals) ((SOLARSYS_STATE *) system, callGenerateForScanType ((SOLARSYS_STATE *) system, (PLANET_DESC *) world,
(PLANET_DESC *) world, &((SOLARSYS_STATE *) system)->CurNode); &numDeposits, MINERAL_SCAN);
numDeposits = system->CurNode;
result = 0; result = 0;
for (i = 0; i < numDeposits; i++) for (i = 0; i < numDeposits; i++)
{ {
((SOLARSYS_STATE *) system)->CurNode = i; COUNT whichNode = i;
(*system->genFuncs->generateMinerals) ((SOLARSYS_STATE *) system, callGenerateForScanType ((SOLARSYS_STATE *) system,
(PLANET_DESC *) world, &((SOLARSYS_STATE *) system)->CurNode); (PLANET_DESC *) world, &whichNode, MINERAL_SCAN);
result += HIBYTE (system->SysInfo.PlanetInfo.CurDensity) * result += HIBYTE (system->SysInfo.PlanetInfo.CurDensity) *
GLOBAL (ElementWorth[ElementCategory ( GLOBAL (ElementWorth[ElementCategory (
system->SysInfo.PlanetInfo.CurType)]); system->SysInfo.PlanetInfo.CurType)]);
@@ -1133,19 +1131,18 @@ generateMineralIndex(const SOLARSYS_STATE *system, const PLANET_DESC *world,
assert (system->pOrbitalDesc == world); assert (system->pOrbitalDesc == world);
((SOLARSYS_STATE *) system)->CurNode = (COUNT)~0; numDeposits = (COUNT)~0;
(*system->genFuncs->generateMinerals) ((SOLARSYS_STATE *) system, callGenerateForScanType ((SOLARSYS_STATE *) system, (PLANET_DESC *) world,
(PLANET_DESC *) world, &((SOLARSYS_STATE *) system)->CurNode); &numDeposits, MINERAL_SCAN);
numDeposits = system->CurNode;
for (i = 0; i < NUM_ELEMENT_CATEGORIES; i++) for (i = 0; i < NUM_ELEMENT_CATEGORIES; i++)
minerals[i] = 0; minerals[i] = 0;
for (i = 0; i < numDeposits; i++) for (i = 0; i < numDeposits; i++)
{ {
((SOLARSYS_STATE *) system)->CurNode = i; COUNT whichNode = i;
(*system->genFuncs->generateMinerals) ((SOLARSYS_STATE *) system, callGenerateForScanType ((SOLARSYS_STATE *) system,
(PLANET_DESC *) world, &((SOLARSYS_STATE *) system)->CurNode); (PLANET_DESC *) world, &whichNode, MINERAL_SCAN);
minerals[ElementCategory(system->SysInfo.PlanetInfo.CurType)] += minerals[ElementCategory(system->SysInfo.PlanetInfo.CurType)] +=
HIBYTE (system->SysInfo.PlanetInfo.CurDensity); HIBYTE (system->SysInfo.PlanetInfo.CurDensity);
} }