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_frontEndDemoMode, // MODE__DEMO
&s_frontEndCredits, // MODE__CREDITS &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(); s_modeCodes[i]->init();
} }
m_exitToGame=false;
m_mode=MODE__NONE; m_mode=MODE__NONE;
setMode(MODE__MAIN_TITLES); setMode(MODE__MAIN_TITLES);
} }
@ -158,7 +160,7 @@ void CFrontEndScene::think(int _frames)
---------------------------------------------------------------------- */ ---------------------------------------------------------------------- */
int CFrontEndScene::readyToShutdown() int CFrontEndScene::readyToShutdown()
{ {
return false; return m_exitToGame;
} }
@ -173,14 +175,22 @@ void CFrontEndScene::setMode(FrontEndMode _newMode)
PAUL_DBGMSG("CFrontEndScene::setMode(%d)",_newMode); PAUL_DBGMSG("CFrontEndScene::setMode(%d)",_newMode);
// Close old mode // Close old mode
if(s_modeCodes[m_mode]) if(m_mode!=MODE__NONE)
{ {
s_modeCodes[m_mode]->unselect(); s_modeCodes[m_mode]->unselect();
} }
// Open new mode // Open new mode
m_mode=_newMode; if(_newMode==MODE__EXIT_TO_GAME)
s_modeCodes[m_mode]->select(); {
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__CREDITS,
MODE__NONE, MODE__NONE,
MODE__EXIT_TO_GAME,
} FrontEndMode; } FrontEndMode;
void init(); void init();
@ -59,6 +61,8 @@ public:
private: private:
void setMode(FrontEndMode _newMode); void setMode(FrontEndMode _newMode);
int m_exitToGame;
FrontEndMode m_mode; FrontEndMode m_mode;
class CFrontEndMode *m_modeCode; class CFrontEndMode *m_modeCode;
static class CFrontEndMode *s_modeCodes[]; static class CFrontEndMode *s_modeCodes[];

View file

@ -131,10 +131,19 @@ void CFrontEndStart::render()
Params: Params:
Returns: Returns:
---------------------------------------------------------------------- */ ---------------------------------------------------------------------- */
#ifndef __PAD_PADS_H__
#include "pad\pads.h"
#endif
void CFrontEndStart::think(int _frames) void CFrontEndStart::think(int _frames)
{ {
if(!m_shuttingDown) if(!m_shuttingDown)
{ {
/////////// PKG
if(PadGetDown(0)&PAD_START)
{
m_selectedSlot=0;
}
/////////// PKG
if(m_selectedSlot!=NO_SLOT_SELECTED|| if(m_selectedSlot!=NO_SLOT_SELECTED||
m_escapeToTitles) m_escapeToTitles)
{ {
@ -163,13 +172,13 @@ int CFrontEndStart::isReadyToExit()
---------------------------------------------------------------------- */ ---------------------------------------------------------------------- */
CFrontEndScene::FrontEndMode CFrontEndStart::getNextMode() CFrontEndScene::FrontEndMode CFrontEndStart::getNextMode()
{ {
if(m_selectedSlot!=NO_SLOT_SELECTED) if(m_selectedSlot==NO_SLOT_SELECTED)
{ {
return CFrontEndScene::MODE__MAIN_TITLES; return CFrontEndScene::MODE__MAIN_TITLES;
} }
else 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()) if(s_currentScene->readyToShutdown())
{ {
SYSTEM_DBGMSG("GameState: Closing down scene..");
ASSERT(s_pendingScene); // There really should be a scene pending before you shutdown..! ASSERT(s_pendingScene); // There really should be a scene pending before you shutdown..!
s_currentScene->shutdown(); s_currentScene->shutdown();
s_currentScene=NULL; s_currentScene=NULL;
@ -60,6 +61,7 @@ void GameState::think()
} }
if(!s_currentScene) if(!s_currentScene)
{ {
SYSTEM_DBGMSG("GameState: Opening new scene..");
s_currentScene=s_pendingScene; s_currentScene=s_pendingScene;
s_currentScene->init(); s_currentScene->init();
s_pendingScene=NULL; s_pendingScene=NULL;