99 lines
2.5 KiB
C++
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();
|
|
}
|
|
}
|
|
}
|