This commit is contained in:
Paul 2001-05-04 19:34:09 +00:00
parent 99e98162fe
commit 77bbfc2c16
7 changed files with 233 additions and 148 deletions

View file

@ -281,6 +281,13 @@ CPlayer * CGameScene::getPlayer()
return( m_player );
}
/*****************************************************************************/
void CGameScene::respawnLevel()
{
Level.respawnLevel();
}
/*****************************************************************************/
void CGameScene::sendEvent( GAME_EVENT evt, CThing *sourceThing )
{
@ -313,70 +320,6 @@ void CGameScene::initLevel()
m_player->setHealthType(CPlayer::HEALTH_TYPE__OUT_OF_WATER);
}
// Init actors (needs moving and tidying
int actorNum;
int platformNum;
int hazardNum;
sThingActor **actorList = Level.getActorList();
if (actorList)
{
for ( actorNum = 0 ; actorNum < Level.getActorCount() ; actorNum++ )
{
sThingActor *ThisActor=actorList[actorNum];
CGameScene::ACTOR_TYPE actorType = CGameScene::getActorType( actorList[actorNum]->Type );
switch ( actorType )
{
case CGameScene::ACTOR_ENEMY_NPC:
{
CNpcEnemy *enemy;
enemy=CNpcEnemy::Create(ThisActor);
enemy->setLayerCollision( Level.getCollisionLayer() );
enemy->setupWaypoints( ThisActor );
enemy->postInit();
}
break;
case CGameScene::ACTOR_FRIEND_NPC:
{
CNpcFriend *friendNpc;
friendNpc=CNpcFriend::Create(ThisActor);
friendNpc->setLayerCollision( Level.getCollisionLayer() );
friendNpc->postInit();
}
break;
default:
break;
}
}
}
sThingPlatform **platformList = Level.getPlatformList();
if (platformList)
{
for ( platformNum = 0 ; platformNum < Level.getPlatformCount() ; platformNum++ )
{
sThingPlatform *ThisPlatform = platformList[platformNum];
CNpcPlatform *platform;
platform = CNpcPlatform::Create( ThisPlatform );
platform->setLayerCollision( Level.getCollisionLayer() );
platform->postInit();
}
}
sThingHazard **hazardList = Level.getHazardList();
if (hazardList)
{
for ( hazardNum = 0 ; hazardNum < Level.getHazardCount() ; hazardNum++ )
{
sThingHazard *ThisHazard = hazardList[hazardNum];
CNpcHazard *hazard;
hazard = CNpcHazard::Create( ThisHazard );
hazard->setLayerCollision( Level.getCollisionLayer() );
}
}
// Song is loaded/dumped by the level, and played from here. This just gives some
// better timing over when it starts (pkg)
CSoundMediator::playSong();