This commit is contained in:
Paul 2001-03-06 22:14:15 +00:00
parent ecb58f5b23
commit 74a5d32a21
3 changed files with 79 additions and 60 deletions

View file

@ -85,11 +85,10 @@ int CGameScene::s_levelFinished;
CGameScene GameScene; CGameScene GameScene;
#include "gfx\actorpool.h"
/*****************************************************************************/ /*****************************************************************************/
void CGameScene::init() void CGameScene::init()
{ {
CThingManager::init();
SetIdentNoTrans(&CamMtx); SetIdentNoTrans(&CamMtx);
CamMtx.t[2]=ZPos; CamMtx.t[2]=ZPos;
@ -98,50 +97,17 @@ void CGameScene::init()
s_genericFont->setColour( 255, 255 , 0 ); s_genericFont->setColour( 255, 255 , 0 );
VidSetClearScreen(1); VidSetClearScreen(1);
CConversation::init(); SetGeomOffset( GX, GY );
CConversation::registerConversationScript(SCRIPTS_SPEECHTEST_DAT); // Register one script for testing.. SetGeomScreen(GH);
Level.init();
#ifdef __USER_charles__
CNpcEnemy *enemy;
enemy=new ("test enemy") CNpcEnemy;
enemy->init();
enemy->setLayerCollision( Level.getCollisionLayer() );
#endif
#ifdef __USER_paul__
DVECTOR pos={16*10,16*10};
createPickup(PICKUP__BIG_HEALTH,&pos);
pos.vx+=32; createPickup(PICKUP__MEDIUM_HEALTH,&pos);
pos.vx+=32; createPickup(PICKUP__SMALL_HEALTH,&pos);
pos.vx+=32; createPickup(PICKUP__LIFE,&pos);
pos.vx+=32; createPickup(PICKUP__SPATULA,&pos);
pos.vx+=32; createPickup(PICKUP__JELLY_LAUNCHER_AMMO,&pos);
pos.vx+=32; createPickup(PICKUP__BUBBLE_MIXTURE,&pos);
pos.vx+=32; createPickup(PICKUP__GLASSES,&pos);
pos.vx+=32; createPickup(PICKUP__SQUEAKY_SHOES,&pos);
pos.vx+=32; createPickup(PICKUP__BALLOON,&pos);
pos.vx+=32; createPickup(PICKUP__HELMET,&pos);
pos.vx+=32; createPickup(PICKUP__QUEST_ITEM__TEST,&pos);
#endif
createPlayer();
m_player->init();
m_player->setLayerCollision(Level.getCollisionLayer());
m_player->setMapSize(Level.getMapSize());
m_pauseMenu=new ("Pause Menu") CPauseMenu(); m_pauseMenu=new ("Pause Menu") CPauseMenu();
m_pauseMenu->init(); m_pauseMenu->init();
s_readyToExit=false;
CFader::setFadingIn(); CFader::setFadingIn();
SetGeomOffset( GX, GY ); initLevel();
SetGeomScreen(GH);
s_readyToExit=false;
s_levelFinished=false;
} }
/*****************************************************************************/ /*****************************************************************************/
@ -164,13 +130,11 @@ int CGameScene::canPause()
void CGameScene::shutdown() void CGameScene::shutdown()
{ {
m_pauseMenu->shutdown(); delete m_pauseMenu; shutdownLevel();
CThingManager::shutdown(); m_pauseMenu->shutdown(); delete m_pauseMenu;
Level.shutdown(); s_genericFont->dump(); delete s_genericFont;
CConversation::shutdown();
s_genericFont->dump(); delete s_genericFont;
} }
/*****************************************************************************/ /*****************************************************************************/
@ -195,6 +159,20 @@ void CGameScene::think(int _frames)
//#endif //#endif
if(s_readyToExit)
{
// Temporarily.. exiting game scene always goes back to the front end (pkg)
GameState::setNextScene(&FrontEndScene);
}
else if(s_levelFinished)
{
shutdownLevel();
s_globalLevelSelectThing++;
initLevel();
s_levelFinished=false;
}
if(!m_pauseMenu->isActive()&&PadGetDown(0)&PAD_START&&canPause()) if(!m_pauseMenu->isActive()&&PadGetDown(0)&PAD_START&&canPause())
{ {
m_pauseMenu->select(); m_pauseMenu->select();
@ -221,19 +199,6 @@ void CGameScene::think(int _frames)
levelFinished(); levelFinished();
} }
} }
if(s_readyToExit)
{
// Temporarily.. exiting game scene always goes back to the front end (pkg)
GameState::setNextScene(&FrontEndScene);
}
else if(s_levelFinished)
{
s_globalLevelSelectThing++;
GameState::setNextScene(&GameScene);
s_readyToExit=true;
}
} }
/*****************************************************************************/ /*****************************************************************************/
@ -254,4 +219,55 @@ void CGameScene::sendEvent( GAME_EVENT evt, CThing *sourceThing )
CThingManager::processEventAllThings(evt, sourceThing); CThingManager::processEventAllThings(evt, sourceThing);
} }
/*****************************************************************************/
void CGameScene::initLevel()
{
CThingManager::init();
CConversation::init();
CConversation::registerConversationScript(SCRIPTS_SPEECHTEST_DAT); // Register one script for testing..
#ifdef __USER_charles__
CNpcEnemy *enemy;
enemy=new ("test enemy") CNpcEnemy;
enemy->init();
enemy->setLayerCollision( Level.getCollisionLayer() );
#endif
#ifdef __USER_paul__
DVECTOR pos={16*10,16*10};
createPickup(PICKUP__BIG_HEALTH,&pos);
pos.vx+=32; createPickup(PICKUP__MEDIUM_HEALTH,&pos);
pos.vx+=32; createPickup(PICKUP__SMALL_HEALTH,&pos);
pos.vx+=32; createPickup(PICKUP__LIFE,&pos);
pos.vx+=32; createPickup(PICKUP__SPATULA,&pos);
pos.vx+=32; createPickup(PICKUP__JELLY_LAUNCHER_AMMO,&pos);
pos.vx+=32; createPickup(PICKUP__BUBBLE_MIXTURE,&pos);
pos.vx+=32; createPickup(PICKUP__GLASSES,&pos);
pos.vx+=32; createPickup(PICKUP__SQUEAKY_SHOES,&pos);
pos.vx+=32; createPickup(PICKUP__BALLOON,&pos);
pos.vx+=32; createPickup(PICKUP__HELMET,&pos);
pos.vx+=32; createPickup(PICKUP__QUEST_ITEM__TEST,&pos);
#endif
s_levelFinished=false;
Level.init();
createPlayer();
m_player->init();
m_player->setLayerCollision(Level.getCollisionLayer());
m_player->setMapSize(Level.getMapSize());
}
/*****************************************************************************/
void CGameScene::shutdownLevel()
{
CConversation::shutdown();
CThingManager::shutdown();
Level.shutdown();
}
/*****************************************************************************/ /*****************************************************************************/

View file

@ -40,6 +40,9 @@ virtual int canPause();
protected: protected:
void initLevel();
void shutdownLevel();
CLevel Level; CLevel Level;
class CPauseMenu *m_pauseMenu; class CPauseMenu *m_pauseMenu;
class CPlayer *m_player; class CPlayer *m_player;

View file

@ -357,11 +357,11 @@ SOURCE=..\..\..\source\game\pause.h
# PROP Default_Filter "" # PROP Default_Filter ""
# Begin Source File # Begin Source File
SOURCE=..\..\..\source\gfx\anim.cpp SOURCE=..\..\..\source\gfx\actorpool.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\source\gfx\anim.h SOURCE=..\..\..\source\gfx\actorpool.h
# End Source File # End Source File
# Begin Source File # Begin Source File