1
0

Explicitly set spawnpoint fixes.

The value names are case-insensitive.
The debug message is printed only once.
This commit is contained in:
madmaxoft 2013-11-30 15:03:29 +01:00
parent 2383016b1d
commit 78f9d97459

View File

@ -486,30 +486,21 @@ void cWorld::Start(void)
}
} // switch (m_Dimension)
// Try to find the "SpawnPosition" key in the world configuration
// Set a boolean value if so
// Try to find the "SpawnPosition" key and coord values in the world configuration, set the flag if found
int KeyNum = IniFile.FindKey("SpawnPosition");
unsigned int NumSpawnPositionKeys = ((KeyNum != -1) ? (IniFile.GetNumValues(KeyNum)) : 0);
if (NumSpawnPositionKeys > 0)
{
for (unsigned int i = 0; i < NumSpawnPositionKeys; i++)
{
AString ValueName = IniFile.GetValueName(KeyNum, i);
if (
(ValueName.compare("X") == 0) ||
(ValueName.compare("Y") == 0) ||
(ValueName.compare("Z") == 0)
)
{
m_bSpawnExplicitlySet = true;
LOGD("Spawnpoint explicitly set!");
}
}
}
m_bSpawnExplicitlySet =
(
(KeyNum >= 0) &&
(
(IniFile.FindValue(KeyNum, "X") >= 0) ||
(IniFile.FindValue(KeyNum, "Y") >= 0) ||
(IniFile.FindValue(KeyNum, "Z") >= 0)
)
);
if (m_bSpawnExplicitlySet)
{
LOGD("Spawnpoint explicitly set!");
m_SpawnX = IniFile.GetValueF("SpawnPosition", "X", m_SpawnX);
m_SpawnY = IniFile.GetValueF("SpawnPosition", "Y", m_SpawnY);
m_SpawnZ = IniFile.GetValueF("SpawnPosition", "Z", m_SpawnZ);