This commit is contained in:
Paul 2000-10-26 16:50:54 +00:00
parent 98a2014037
commit ee30817b75
5 changed files with 34 additions and 20 deletions

View File

@ -110,3 +110,9 @@ void CGameScene::think(int _frames)
}
/*****************************************************************************/
int CGameScene::readyToShutdown()
{
return false;
}
/*****************************************************************************/

View File

@ -22,6 +22,7 @@ public:
void shutdown();
void render();
void think(int _frames);
int readyToShutdown();
char *getSceneName() {return "Game";}

View File

@ -40,6 +40,7 @@ public:
void shutdown();
void render();
void think(int _frames);
int readyToShutdown() {return false;}
char *getSceneName() {return"PaulsScene";}
};

View File

@ -46,21 +46,26 @@ void GameState::think()
{
updateTimer();
if( s_pendingScene )
if(s_pendingScene)
{
if( !s_currentScene)
if(s_currentScene)
{
if( s_currentScene )
if(s_currentScene->readyToShutdown())
{
ASSERT(s_pendingScene); // There really should be a scene pending before you shutdown..!
s_currentScene->shutdown();
s_currentScene=NULL;
}
}
if(!s_currentScene)
{
s_currentScene=s_pendingScene;
s_pendingScene=NULL;
s_currentScene->init();
s_pendingScene=NULL;
}
}
ASSERT(s_currentScene);
s_currentScene->think(getFramesSinceLast());
}

View File

@ -31,6 +31,7 @@ public:
virtual void shutdown()=0;
virtual void render()=0;
virtual void think(int _frames)=0;
virtual int readyToShutdown()=0;
virtual char *getSceneName()=0;
protected: