summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/World.cpp31
1 files changed, 11 insertions, 20 deletions
diff --git a/src/World.cpp b/src/World.cpp
index 03efbdf32..4f315d2af 100644
--- a/src/World.cpp
+++ b/src/World.cpp
@@ -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);