Moved the weather picker out of TickWeather(), squashing a warning and improving readability.
This commit is contained in:
parent
c124fc39d4
commit
2c0bb7b717
@ -663,6 +663,30 @@ void cWorld::GenerateRandomSpawn(void)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
eWeather cWorld::ChooseNewWeather()
|
||||||
|
{
|
||||||
|
// Pick a new weather. Only reasonable transitions allowed:
|
||||||
|
switch (m_Weather)
|
||||||
|
{
|
||||||
|
case eWeather_Sunny:
|
||||||
|
case eWeather_ThunderStorm: return eWeather_Rain;
|
||||||
|
|
||||||
|
case eWeather_Rain:
|
||||||
|
{
|
||||||
|
// 1/8 chance of turning into a thunderstorm
|
||||||
|
return ((m_TickRand.randInt() % 256) < 32) ? eWeather_ThunderStorm : eWeather_Sunny;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
LOGWARNING("Unknown current weather: %d. Setting sunny.", m_Weather);
|
||||||
|
ASSERT(!"Unknown weather");
|
||||||
|
return eWeather_Sunny;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void cWorld::Stop(void)
|
void cWorld::Stop(void)
|
||||||
{
|
{
|
||||||
// Delete the clients that have been in this world:
|
// Delete the clients that have been in this world:
|
||||||
@ -762,30 +786,8 @@ void cWorld::TickWeather(float a_Dt)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Change weather:
|
// Change weather:
|
||||||
|
SetWeather(ChooseNewWeather());
|
||||||
// Pick a new weather. Only reasonable transitions allowed:
|
}
|
||||||
eWeather NewWeather = m_Weather;
|
|
||||||
switch (m_Weather)
|
|
||||||
{
|
|
||||||
case eWeather_Sunny: NewWeather = eWeather_Rain; break;
|
|
||||||
case eWeather_ThunderStorm: NewWeather = eWeather_Rain; break;
|
|
||||||
case eWeather_Rain:
|
|
||||||
{
|
|
||||||
// 1/8 chance of turning into a thunderstorm
|
|
||||||
NewWeather = ((m_TickRand.randInt() % 256) < 32) ? eWeather_ThunderStorm : eWeather_Sunny;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
LOGWARNING("Unknown current weather: %d. Setting sunny.", m_Weather);
|
|
||||||
ASSERT(!"Unknown weather");
|
|
||||||
NewWeather = eWeather_Sunny;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SetWeather(NewWeather);
|
|
||||||
} // else (m_WeatherInterval > 0)
|
|
||||||
|
|
||||||
if (m_Weather == eWeather_ThunderStorm)
|
if (m_Weather == eWeather_ThunderStorm)
|
||||||
{
|
{
|
||||||
|
@ -939,6 +939,9 @@ private:
|
|||||||
/** <summary>Generates a random spawnpoint on solid land by walking chunks and finding their biomes</summary> */
|
/** <summary>Generates a random spawnpoint on solid land by walking chunks and finding their biomes</summary> */
|
||||||
void GenerateRandomSpawn(void);
|
void GenerateRandomSpawn(void);
|
||||||
|
|
||||||
|
/** Chooses a reasonable transition from the current weather to a new weather **/
|
||||||
|
eWeather ChooseNewWeather(void);
|
||||||
|
|
||||||
/** Creates a new fluid simulator, loads its settings from the inifile (a_FluidName section) */
|
/** Creates a new fluid simulator, loads its settings from the inifile (a_FluidName section) */
|
||||||
cFluidSimulator * InitializeFluidSimulator(cIniFile & a_IniFile, const char * a_FluidName, BLOCKTYPE a_SimulateBlock, BLOCKTYPE a_StationaryBlock);
|
cFluidSimulator * InitializeFluidSimulator(cIniFile & a_IniFile, const char * a_FluidName, BLOCKTYPE a_SimulateBlock, BLOCKTYPE a_StationaryBlock);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user