C-Engine/src/Map/World.cpp

99 lines
2.5 KiB
C++

/* ************************************************************************** */
/* _____ */
/* World.cpp | ___| _ ____ ___ */
/* Project : C-Engine | |_ | | | __| / _ \ */
/* | _| | | | |= | __/ */
/* By: Fife <wasabifife@gmail.com> |_| |_| |_| \___| */
/* */
/* */
/* ************************************************************************** */
#include "..\Rework\include\Map\World.hpp"
World::World()
{
tabLevel = NULL;
nbLevel = 0;
currentLevel = 0;
engineLink = NULL;
}
void World::AffectEngine(Engine * EV)
{
engineLink = EV;
}
Engine * World::GetEngine()
{
return engineLink;
}
void World::SetLevel( Level ** userTabLevel , int userNbLevel)
{
tabLevel = userTabLevel;
nbLevel = userNbLevel;
for(int i = 0 ; i < nbLevel ; i++ )
tabLevel[i]->AffectWorld(this);
}
void World::SetLevel( Level * userLevel)
{
tabLevel = new Level*[1];
tabLevel[0] = userLevel;
nbLevel = 1;
userLevel->AffectWorld(this);
}
void World::DrawLevel()
{
if(tabLevel)tabLevel[currentLevel]->DrawMap();
}
Level * World::GetCurrentLevel()
{
return tabLevel[currentLevel];
}
Level * World::GetLevel(int id)
{
return tabLevel[id];
}
void World::AddObject( Object * v, int level)
{
if(level < 0 && tabLevel)tabLevel[currentLevel]->AddObject(v);
if( level < nbLevel && level >= 0 && tabLevel)
{
tabLevel[level]->AddObject(v);
}
}
void World::DelObject( Object * v)
{
if(tabLevel)
{
if(!tabLevel[currentLevel]->DelObject(v))
{
for(int i = 0 ; i < nbLevel ; i++ )
{
if(tabLevel[i]->DelObject(v))return;
}
}
}
}
void World::DelAllObject()
{
if(tabLevel)
{
for(int i = 0 ; i < nbLevel ; i++ )
{
tabLevel[i]->DelAllObject();
}
}
}