summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--source/MobSpawner.cpp3
-rw-r--r--source/World.cpp21
2 files changed, 15 insertions, 9 deletions
diff --git a/source/MobSpawner.cpp b/source/MobSpawner.cpp
index 19e3739cd..38234ae67 100644
--- a/source/MobSpawner.cpp
+++ b/source/MobSpawner.cpp
@@ -6,6 +6,7 @@
#include "Mobs/Monster.h"
#include "Mobs/IncludeAllMonsters.h"
+#include <sstream>
cMobSpawner::tMobTypes& cMobSpawner::m_MobTypes()
{
@@ -178,7 +179,7 @@ bool cMobSpawner::CanSpawnHere(cMonster::eType a_MobType, BLOCKTYPE a_BlockType,
{
if (a_MobType == cMonster::mtChicken || a_MobType == cMonster::mtPig || a_MobType == cMonster::mtCow || a_MobType == cMonster::mtSheep)
{
- LOGD("Trying to spawn an animal");
+ LOGD(oss.str().c_str());
toReturn = (
a_BlockType_below == E_BLOCK_GRASS /*&& // MG TODO
a_LightLevel >= 9 */
diff --git a/source/World.cpp b/source/World.cpp
index 2e8f30840..9ca432f50 100644
--- a/source/World.cpp
+++ b/source/World.cpp
@@ -491,14 +491,19 @@ void cWorld::Start(void)
m_GameMode = (eGameMode)IniFile.GetValueSetI("GameMode", "GameMode", m_GameMode);
- m_bAnimals = true;
-
- m_AllowedMobs.insert(cMonster::mtCow); // MG TODO : temporary
- m_AllowedMobs.insert(cMonster::mtZombie);
- m_AllowedMobs.insert(cMonster::mtZombiePigman);
- m_AllowedMobs.insert(cMonster::mtBat);
- m_AllowedMobs.insert(cMonster::mtSpider);
- m_AllowedMobs.insert(cMonster::mtGhast);
+ m_bAnimals = IniFile.GetValueB("Monsters", "AnimalsOn", true);
+ AString sAllMonsters = IniFile.GetValue("Monsters", "Types");
+ AStringVector SplitList = StringSplit(sAllMonsters, ",");
+ for (unsigned int i = 0; i < SplitList.size(); ++i)
+ {
+ cMonster::eType ToAdd = cMobTypesManager::fromStringToMobType(SplitList[i]);
+ if (ToAdd != cMonster::mtInvalidType)
+ {
+ m_AllowedMobs.insert(ToAdd);
+ LOGD("Allowed mob: %s",cMobTypesManager::fromMobTypeToString(ToAdd).c_str()); // a bit reverse working, but very few ressources wasted
+ }
+ };
+
m_ChunkMap = new cChunkMap(this);