This commit is contained in:
Paul 2000-11-24 20:33:35 +00:00
parent f7ec85c998
commit 6ce958919a
4 changed files with 33 additions and 8 deletions

View file

@ -79,7 +79,8 @@ CFrontEndMode *CFrontEndScene::s_modeCodes[]=
&s_frontEndDemoMode, // MODE__DEMO
&s_frontEndCredits, // MODE__CREDITS
NULL, // MODE__NONE
// NULL, // MODE__NONE
// NULL, // MODE__EXIT_TO_GAME
};
@ -99,6 +100,7 @@ void CFrontEndScene::init()
s_modeCodes[i]->init();
}
m_exitToGame=false;
m_mode=MODE__NONE;
setMode(MODE__MAIN_TITLES);
}
@ -158,7 +160,7 @@ void CFrontEndScene::think(int _frames)
---------------------------------------------------------------------- */
int CFrontEndScene::readyToShutdown()
{
return false;
return m_exitToGame;
}
@ -173,14 +175,22 @@ void CFrontEndScene::setMode(FrontEndMode _newMode)
PAUL_DBGMSG("CFrontEndScene::setMode(%d)",_newMode);
// Close old mode
if(s_modeCodes[m_mode])
if(m_mode!=MODE__NONE)
{
s_modeCodes[m_mode]->unselect();
}
// Open new mode
if(_newMode==MODE__EXIT_TO_GAME)
{
m_exitToGame=true;
GameState::setNextScene(&FrontEndScene);
}
else
{
m_mode=_newMode;
s_modeCodes[m_mode]->select();
}
}

View file

@ -46,6 +46,8 @@ public:
MODE__CREDITS,
MODE__NONE,
MODE__EXIT_TO_GAME,
} FrontEndMode;
void init();
@ -59,6 +61,8 @@ public:
private:
void setMode(FrontEndMode _newMode);
int m_exitToGame;
FrontEndMode m_mode;
class CFrontEndMode *m_modeCode;
static class CFrontEndMode *s_modeCodes[];

View file

@ -131,10 +131,19 @@ void CFrontEndStart::render()
Params:
Returns:
---------------------------------------------------------------------- */
#ifndef __PAD_PADS_H__
#include "pad\pads.h"
#endif
void CFrontEndStart::think(int _frames)
{
if(!m_shuttingDown)
{
/////////// PKG
if(PadGetDown(0)&PAD_START)
{
m_selectedSlot=0;
}
/////////// PKG
if(m_selectedSlot!=NO_SLOT_SELECTED||
m_escapeToTitles)
{
@ -163,13 +172,13 @@ int CFrontEndStart::isReadyToExit()
---------------------------------------------------------------------- */
CFrontEndScene::FrontEndMode CFrontEndStart::getNextMode()
{
if(m_selectedSlot!=NO_SLOT_SELECTED)
if(m_selectedSlot==NO_SLOT_SELECTED)
{
return CFrontEndScene::MODE__MAIN_TITLES;
}
else
{
return CFrontEndScene::MODE__MAIN_TITLES; // PKG
return CFrontEndScene::MODE__EXIT_TO_GAME;
}
}

View file

@ -53,6 +53,7 @@ void GameState::think()
{
if(s_currentScene->readyToShutdown())
{
SYSTEM_DBGMSG("GameState: Closing down scene..");
ASSERT(s_pendingScene); // There really should be a scene pending before you shutdown..!
s_currentScene->shutdown();
s_currentScene=NULL;
@ -60,6 +61,7 @@ void GameState::think()
}
if(!s_currentScene)
{
SYSTEM_DBGMSG("GameState: Opening new scene..");
s_currentScene=s_pendingScene;
s_currentScene->init();
s_pendingScene=NULL;