Here are the functions that get called prior to the crash
Code: Select all
/////////////Entity.cpp/////////////////////////
Player::Player()
{
PlayerBomb = new Bomb;
Type = gameplayer;
lives = 3;
}
void Player::CreateEntity(Game_Manager* EGame_Manager, irr::core::vector3df EPosition)
{
//Irrlicht member aspects of this class
EntityMesh = EGame_Manager->getIrrScene()->getMesh("Bomb.obj");
EntityNode = EGame_Manager->getIrrScene()->addAnimatedMeshSceneNode(EntityMesh);
EntityNode->setPosition(irr::core::vector3df(0,1,0));
//Class member aspects of this class
EGame_Manager->getEntityManager()->AddEntity(this);
}
void Bomb::CreateEntity(Game_Manager* EGame_Manager, irr::core::vector3df EPosition)
{
//Irrlicht member aspect of the class
EntityMesh = EGame_Manager->getIrrScene()->getMesh("Bomb.obj");
EntityNode = EGame_Manager->getIrrScene()->addAnimatedMeshSceneNode(EntityMesh);
EntityNode->setPosition(EPosition);
//Class member aspects of the class
EGame_Manager->getEntityManager()->AddEntity(this);
Activated = true;
Timer = 25; // before explosion
}
void Player::UpdateEntity(Game_Manager* EGame_Manager)
{
MoveEntity(EGame_Manager);
}
void Player::MoveEntity(Game_Manager* EGame_Manager)
{
if(EGame_Manager->KeyboardEvent(irr::KEY_SPACE))
{
//create the bomb
if(PlayerBomb->isActivated() == false && PlayerBomb->isDestroyed() == false)
{
PlayerBomb->CreateEntity(EGame_Manager, EntityNode->getPosition());
}
}
}
Code: Select all
/////////////Entity_Manager.cpp/////////////////////////
void Entity_Manager::AddEntity(Entity* addtolist)
{
List.push_back(addtolist);
addtolist->GetEntityNode()->setID(List.size());
}
void Entity_Manager::UpdateList(Game_Manager* EGame_Manager)
{
for(EntityIterator = List.begin(); EntityIterator != List.end(); ++EntityIterator)
{
(*EntityIterator)->UpdateEntity(EGame_Manager);
}
}
Code: Select all
///////////////Game_Manager.cpp////////////////////////
void Game_Manager::Update()
{
//begin drawing the scene
Driver->beginScene(true, true, irr::video::SColor(255, 100, 101, 140));
//update game entities
EntityManager->UpdateList(this);
//draw all in the scene manager
SceneMgr->drawAll();
//clean up the scene for the next rendering
Driver->endScene();
}
Player->CreateEntity()
Entity_Manager->AddEntity()
Game_Manager->Update()
Entity_Manager->UpdateList()
Player->UpdateEntity()
Player->MoveEntity()
Bomb->CreateEntity()
Entity_Manager->AddEntity()
Game_Manager->Update()
Entity_Manager->UpdateList() <----Crashes here Runtime Error "Vector Iterator not incrementable"
Any help is appreciated.