Reduced the dependency on global variables.
git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@1836 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
@@ -82,7 +82,7 @@ GenerateColony (BYTE control)
|
||||
PPLANET_DESC pMinPlanet;
|
||||
|
||||
pMinPlanet = &pSolarSysState->PlanetDesc[0];
|
||||
FillOrbits ((BYTE)~0, pMinPlanet, FALSE);
|
||||
FillOrbits (pSolarSysState, (BYTE)~0, pMinPlanet, FALSE);
|
||||
|
||||
pMinPlanet->radius = EARTH_RADIUS * 115L / 100;
|
||||
angle = ARCTAN (pMinPlanet->location.x, pMinPlanet->location.y);
|
||||
|
||||
@@ -130,7 +130,8 @@ GenerateShofixti (BYTE control)
|
||||
pCurDesc->data_index = METAL_WORLD;
|
||||
}
|
||||
|
||||
FillOrbits (NUM_PLANETS, &pSolarSysState->PlanetDesc[0], TRUE);
|
||||
FillOrbits (pSolarSysState,
|
||||
NUM_PLANETS, &pSolarSysState->PlanetDesc[0], TRUE);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
||||
@@ -94,7 +94,9 @@ GenerateSpathi (BYTE control)
|
||||
PPLANET_DESC pMinPlanet;
|
||||
|
||||
pMinPlanet = &pSolarSysState->PlanetDesc[0];
|
||||
FillOrbits (pSolarSysState->SunDesc[0].NumPlanets = 1, pMinPlanet, FALSE);
|
||||
FillOrbits (pSolarSysState,
|
||||
pSolarSysState->SunDesc[0].NumPlanets = 1, pMinPlanet,
|
||||
FALSE);
|
||||
|
||||
pMinPlanet->radius = EARTH_RADIUS * 1150L / 100;
|
||||
angle = ARCTAN (pMinPlanet->location.x, pMinPlanet->location.y);
|
||||
|
||||
@@ -469,8 +469,8 @@ YellowDistribution (BYTE which_world)
|
||||
#define SUPERGIANT_GASG_DIST SCALE_RADIUS (33)
|
||||
|
||||
void
|
||||
FillOrbits (BYTE NumPlanets, PPLANET_DESC pBaseDesc, BOOLEAN
|
||||
TypesDefined)
|
||||
FillOrbits (PSOLARSYS_STATE system,
|
||||
BYTE NumPlanets, PPLANET_DESC pBaseDesc, BOOLEAN TypesDefined)
|
||||
{ /* Generate Planets in orbit around star */
|
||||
BYTE StarColor, PlanetCount, MaxPlanet;
|
||||
BOOLEAN GeneratingMoons;
|
||||
@@ -492,7 +492,7 @@ char scolor[] = {'B', 'G', 'O', 'R', 'W', 'Y'};
|
||||
#endif /* DEBUG_ORBITS */
|
||||
|
||||
pPD = pBaseDesc;
|
||||
StarSize = pSolarSysState->SunDesc[0].data_index;
|
||||
StarSize = system->SunDesc[0].data_index;
|
||||
StarColor = STAR_COLOR (CurStarDescPtr->Type);
|
||||
|
||||
if (NumPlanets == (BYTE)~0)
|
||||
@@ -501,7 +501,7 @@ char scolor[] = {'B', 'G', 'O', 'R', 'W', 'Y'};
|
||||
while ((NumPlanets = (BYTE)(LOWORD (TFB_Random())
|
||||
% MAX_GENERATED_PLANETS)) == 0)
|
||||
;
|
||||
pSolarSysState->SunDesc[0].NumPlanets = NumPlanets;
|
||||
system->SunDesc[0].NumPlanets = NumPlanets;
|
||||
}
|
||||
|
||||
#ifdef DEBUG_ORBITS
|
||||
@@ -510,7 +510,7 @@ char scolor[] = {'B', 'G', 'O', 'R', 'W', 'Y'};
|
||||
scolor[STAR_COLOR (CurStarDescPtr->Type)],
|
||||
stype[STAR_TYPE (CurStarDescPtr->Type)]);
|
||||
#endif /* DEBUG_ORBITS */
|
||||
GeneratingMoons = (BOOLEAN) (pBaseDesc == pSolarSysState->MoonDesc);
|
||||
GeneratingMoons = (BOOLEAN) (pBaseDesc == system->MoonDesc);
|
||||
if (GeneratingMoons)
|
||||
MaxPlanet = FIRST_LARGE_ROCKY_WORLD;
|
||||
else
|
||||
|
||||
@@ -203,8 +203,8 @@ extern void DrawSystem (SIZE radius, BOOLEAN IsInnerSystem);
|
||||
extern void DrawOval (PRECT pRect, BYTE num_off_pixels);
|
||||
extern void DrawFilledOval (PRECT pRect);
|
||||
extern void DoMissions (void);
|
||||
extern void FillOrbits (BYTE NumPlanets, PPLANET_DESC pBaseDesc, BOOLEAN
|
||||
TypesDefined);
|
||||
extern void FillOrbits (PSOLARSYS_STATE system,
|
||||
BYTE NumPlanets, PPLANET_DESC pBaseDesc, BOOLEAN TypesDefined);
|
||||
extern void ScanSystem (void);
|
||||
extern void ChangeSolarSys (void);
|
||||
extern BOOLEAN DoFlagshipCommands (PMENU_STATE pMS);
|
||||
|
||||
@@ -62,15 +62,15 @@ static SIZE old_radius;
|
||||
BYTE draw_sys_flags = DRAW_STARS | DRAW_PLANETS | DRAW_ORBITS
|
||||
| DRAW_HYPER_COORDS | GRAB_BKGND;
|
||||
|
||||
// NB. This function modifies the RNG state.
|
||||
static void
|
||||
GeneratePlanets (void)
|
||||
GeneratePlanets (PSOLARSYS_STATE system)
|
||||
{
|
||||
COUNT i;
|
||||
PPLANET_DESC pCurDesc;
|
||||
PPLANET_DESC planet;
|
||||
|
||||
for (i = pSolarSysState->SunDesc[0].NumPlanets,
|
||||
pCurDesc = &pSolarSysState->PlanetDesc[0]; i;
|
||||
--i, ++pCurDesc)
|
||||
for (i = system->SunDesc[0].NumPlanets,
|
||||
planet = &system->PlanetDesc[0]; i; --i, ++planet)
|
||||
{
|
||||
DWORD rand_val;
|
||||
BYTE byte_val;
|
||||
@@ -81,7 +81,7 @@ GeneratePlanets (void)
|
||||
byte_val = LOBYTE (rand_val);
|
||||
|
||||
num_moons = 0;
|
||||
type = PlanData[pCurDesc->data_index & ~PLANET_SHIELDED].Type;
|
||||
type = PlanData[planet->data_index & ~PLANET_SHIELDED].Type;
|
||||
switch (PLANSIZE (type))
|
||||
{
|
||||
case LARGE_ROCKY_WORLD:
|
||||
@@ -109,7 +109,7 @@ GeneratePlanets (void)
|
||||
}
|
||||
break;
|
||||
}
|
||||
pCurDesc->NumPlanets = num_moons;
|
||||
planet->NumPlanets = num_moons;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1638,13 +1638,15 @@ GenerateRandomIP (BYTE control)
|
||||
break;
|
||||
}
|
||||
case GENERATE_MOONS:
|
||||
FillOrbits (pSolarSysState->pBaseDesc->NumPlanets,
|
||||
FillOrbits (pSolarSysState,
|
||||
pSolarSysState->pBaseDesc->NumPlanets,
|
||||
&pSolarSysState->MoonDesc[0], FALSE);
|
||||
break;
|
||||
case GENERATE_PLANETS:
|
||||
{
|
||||
FillOrbits ((BYTE)~0, &pSolarSysState->PlanetDesc[0], FALSE);
|
||||
GeneratePlanets();
|
||||
FillOrbits (pSolarSysState,
|
||||
(BYTE)~0, &pSolarSysState->PlanetDesc[0], FALSE);
|
||||
GeneratePlanets (pSolarSysState);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -254,7 +254,8 @@ GenerateLifeForms (SYSTEM_INFOPTR SysInfoPtr, PCOUNT pwhich_life)
|
||||
{
|
||||
DWORD old_rand;
|
||||
|
||||
old_rand = TFB_SeedRandom (SysInfoPtr->PlanetInfo.ScanSeed[BIOLOGICAL_SCAN]);
|
||||
old_rand = TFB_SeedRandom (
|
||||
SysInfoPtr->PlanetInfo.ScanSeed[BIOLOGICAL_SCAN]);
|
||||
*pwhich_life = CalcLifeForms (SysInfoPtr, *pwhich_life);
|
||||
return (TFB_SeedRandom (old_rand));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user