summaryrefslogtreecommitdiffstats
path: root/source/MobSpawner.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--source/MobSpawner.h39
1 files changed, 21 insertions, 18 deletions
diff --git a/source/MobSpawner.h b/source/MobSpawner.h
index bb9e95172..ba2a18f2e 100644
--- a/source/MobSpawner.h
+++ b/source/MobSpawner.h
@@ -7,12 +7,20 @@
#include "FastRandom.h"
#include "Mobs/Monster.h" //this is a side-effect of keeping Mobfamily inside Monster class. I'd prefer to keep both (Mobfamily and Monster) inside a "Monster" namespace MG TODO : do it
+
+
+
+// fwd:
class cChunk;
-// This class is used to determine wich monster can be spawned on wich place
-// it is essentially static (f.i. Squids spawn in water, Zombie spawn in dark places)
-// but it also has dynamic part depending on the world.ini
+
+
+
+/** This class is used to determine which monster can be spawned in which place
+it is essentially static (eg. Squids spawn in water, Zombies spawn in dark places)
+but it also has dynamic part depending on the world.ini settings.
+*/
class cMobSpawner
{
public :
@@ -21,26 +29,26 @@ public :
// a_AllowedTypes is the set of types allowed for mobs it will spawn. Empty set
// would result in no spawn at all
// Allowed mobs thah are not of the right Family will not be include (no warning)
- cMobSpawner(cMonster::eFamily MobFamily, const std::set<cMonster::eType>& a_AllowedTypes);
+ cMobSpawner(cMonster::eFamily MobFamily, const std::set<cMonster::eType> & a_AllowedTypes);
- // Check if specified block can be a Pack center for this spawner
+ /// Check if specified block can be a Pack center for this spawner
bool CheckPackCenter(BLOCKTYPE a_BlockType);
// Try to create a monster here
// if this is the first of a Pack : determine the type of monster
- // BlockType & BlockMeta are use to know what kind of Mob can Spawn here
+ // BlockType & BlockMeta are used to decide what kind of Mob can Spawn here
// MaxPackSize is set to the maximal size for a pack this type of mob
- cMonster* TryToSpawnHere(BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, BLOCKTYPE a_BlockType_below, NIBBLETYPE a_BlockMeta_below, BLOCKTYPE a_BlockType_above, NIBBLETYPE a_BlockMeta_above, EMCSBiome a_Biome, int a_Level, int& a_MaxPackSize);
+ cMonster * TryToSpawnHere(BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, BLOCKTYPE a_BlockType_below, NIBBLETYPE a_BlockMeta_below, BLOCKTYPE a_BlockType_above, NIBBLETYPE a_BlockMeta_above, EMCSBiome a_Biome, int a_Level, int& a_MaxPackSize);
// mark the beginning of a new Pack
// all mobs of the same Pack are the same type
- void NewPack();
+ void NewPack(void);
// return true if there is at least one allowed type
- bool CanSpawnSomething();
+ bool CanSpawnAnything(void);
- typedef const std::set<cMonster*> tSpawnedContainer;
- tSpawnedContainer& getSpawned();
+ typedef const std::set<cMonster *> tSpawnedContainer;
+ tSpawnedContainer & getSpawned(void);
protected :
// return true if specified type of mob can spawn on specified block
@@ -51,7 +59,7 @@ protected :
cMonster::eType ChooseMobType(EMCSBiome a_Biome);
// add toAdd inside toAddIn, if toAdd is in m_AllowedTypes
- void addIfAllowed(cMonster::eType toAdd, std::set<cMonster::eType>& toAddIn);
+ void addIfAllowed(cMonster::eType toAdd, std::set<cMonster::eType> & toAddIn);
protected :
cMonster::eFamily m_MonsterFamily;
@@ -60,13 +68,8 @@ protected :
cMonster::eType m_MobType;
std::set<cMonster*> m_Spawned;
cFastRandom m_Random;
+} ;
-public :
- typedef const std::set<cMonster::eType> tMobTypes; // MG TODO : maybe relocate all those statics set/maps in the same place ?
- static tMobTypes& m_MobTypes();
-protected :
- static tMobTypes initMobTypesBeforeCx11();
-};