1
0

Moved all MobTypesManager functions to cMonster.

This removes some of the memory leaks and is more logical in structure. Also the functions are exported to Lua.
This commit is contained in:
madmaxoft
2013-10-20 13:25:56 +02:00
parent 359918127b
commit 848d061de1
9 changed files with 352 additions and 299 deletions

View File

@@ -31,7 +31,6 @@
#include "Mobs/IncludeAllMonsters.h"
#include "MobCensus.h"
#include "MobSpawner.h"
#include "MobTypesManager.h"
#include "MersenneTwister.h"
#include "Generating/Trees.h"
@@ -508,11 +507,11 @@ void cWorld::Start(void)
AStringVector SplitList = StringSplitAndTrim(AllMonsters, ",");
for (AStringVector::const_iterator itr = SplitList.begin(), end = SplitList.end(); itr != end; ++itr)
{
cMonster::eType ToAdd = cMobTypesManager::StringToMobType(*itr);
cMonster::eType ToAdd = cMonster::StringToMobType(*itr);
if (ToAdd != cMonster::mtInvalidType)
{
m_AllowedMobs.insert(ToAdd);
LOGD("Allowed mob: %s", cMobTypesManager::MobTypeToString(ToAdd).c_str()); // a bit reverse working, but very few ressources wasted
LOGD("Allowed mob: %s", itr->c_str());
}
else
{
@@ -2524,20 +2523,21 @@ int cWorld::SpawnMob(double a_PosX, double a_PosY, double a_PosZ, cMonster::eTyp
{
cMonster * Monster = NULL;
int SlSize = GetTickRandomNumber(2) + 1; // 1 .. 3 - Slime
int ShColor = GetTickRandomNumber(15); // 0 .. 15 - Sheep
bool SkType = GetDimension() == dimNether ; // Skeleton
Monster = cMobTypesManager::NewMonsterFromType(a_MonsterType);
if (Monster)
Monster = cMonster::NewMonsterFromType(a_MonsterType);
if (Monster != NULL)
{
Monster->SetPosition(a_PosX, a_PosY, a_PosZ);
}
return SpawnMobFinalize(Monster);
}
int cWorld::SpawnMobFinalize(cMonster* a_Monster)
int cWorld::SpawnMobFinalize(cMonster * a_Monster)
{
if (!a_Monster)
return -1;