This commit is contained in:
Paul 2000-11-22 17:02:04 +00:00
parent be3f0f9be4
commit 90d4097793
8 changed files with 92 additions and 25 deletions

View file

@ -53,7 +53,8 @@ fileio_src := fileio \
frontend_src := frontend \ frontend_src := frontend \
scrollbg \ scrollbg \
maintitl maintitl \
options
game_src := game game_src := game

View file

@ -26,6 +26,10 @@
#include "frontend\maintitl.h" #include "frontend\maintitl.h"
#endif #endif
#ifndef __FRONTEND_OPTIONS_H__
#include "frontend\options.h"
#endif
/* Std Lib /* Std Lib
------- */ ------- */
@ -50,11 +54,12 @@
---- */ ---- */
static CFrontEndMainTitles s_frontEndModeMainTitles; static CFrontEndMainTitles s_frontEndModeMainTitles;
static CFrontEndOptions s_frontEndModeOptions;
CFrontEndMode *CFrontEndScene::s_modeCodes[]= CFrontEndMode *CFrontEndScene::s_modeCodes[]=
{ {
&s_frontEndModeMainTitles, // MODE__MAIN_TITLES &s_frontEndModeMainTitles, // MODE__MAIN_TITLES
NULL, // MODE__GAME_OPTIONS &s_frontEndModeOptions, // MODE__GAME_OPTIONS
NULL, // MODE__CHOOSE_SLOT NULL, // MODE__CHOOSE_SLOT
NULL, // MODE__DEMO NULL, // MODE__DEMO
@ -73,6 +78,12 @@ CFrontEndScene FrontEndScene;
---------------------------------------------------------------------- */ ---------------------------------------------------------------------- */
void CFrontEndScene::init() void CFrontEndScene::init()
{ {
for(int i=0;i<MODE__NONE;i++)
{
if(s_modeCodes[i]) // temporary (PKG)
s_modeCodes[i]->init();
}
m_mode=MODE__NONE; m_mode=MODE__NONE;
setMode(MODE__MAIN_TITLES); setMode(MODE__MAIN_TITLES);
} }
@ -86,6 +97,11 @@ void CFrontEndScene::init()
---------------------------------------------------------------------- */ ---------------------------------------------------------------------- */
void CFrontEndScene::shutdown() void CFrontEndScene::shutdown()
{ {
for(int i=0;i<MODE__NONE;i++)
{
if(s_modeCodes[i]) // temporary (PKG)
s_modeCodes[i]->shutdown();
}
} }
@ -145,16 +161,12 @@ PAUL_DBGMSG("CFrontEndScene::setMode(%d)",_newMode);
// Close old mode // Close old mode
if(s_modeCodes[m_mode]) if(s_modeCodes[m_mode])
{ {
PAUL_DBGMSG("CFrontEndScene::shutdown mode %d",m_mode); s_modeCodes[m_mode]->unselect();
s_modeCodes[m_mode]->shutdown();
} }
// Open new mode // Open new mode
m_mode=_newMode; m_mode=_newMode;
PAUL_DBGMSG("CFrontEndScene::init mode %d",m_mode); s_modeCodes[m_mode]->select();
s_modeCodes[m_mode]->init();
s_modeCodes[m_mode]->shutdown();
s_modeCodes[m_mode]->init();
} }

View file

@ -78,6 +78,8 @@ class CFrontEndMode
public: public:
virtual void init()=0; virtual void init()=0;
virtual void shutdown()=0; virtual void shutdown()=0;
virtual void select()=0;
virtual void unselect()=0;
virtual void render()=0; virtual void render()=0;
virtual void think(int _frames)=0; virtual void think(int _frames)=0;

View file

@ -127,8 +127,6 @@ PAUL_DBGMSG("initial mem free=%d",mem);
m_smallFont->initialise(&standardFont); m_smallFont->initialise(&standardFont);
m_smallFont->setJustification(FontBank::JUST_CENTRE); m_smallFont->setJustification(FontBank::JUST_CENTRE);
m_mode=MODE__PRESS_START;
// Create the main menu ( START GAME/OPTIONS ) // Create the main menu ( START GAME/OPTIONS )
m_mainMenu=new ("Main Menu GUI") CGUIControlFrame(); m_mainMenu=new ("Main Menu GUI") CGUIControlFrame();
m_mainMenu->init(NULL); m_mainMenu->init(NULL);
@ -156,13 +154,6 @@ PAUL_DBGMSG("initial mem free=%d",mem);
tg=new ("togglebutton") CGUIToggleButton(); tg=new ("togglebutton") CGUIToggleButton();
tg->init(fr); tg->init(fr);
tg->setButtonTarget(&m_gotoOptionsFlag); tg->setButtonTarget(&m_gotoOptionsFlag);
m_mainMenu->select();
m_startGameFlag=false;
m_gotoOptionsFlag=false;
CFader::setFadingIn();
} }
@ -180,6 +171,35 @@ void CFrontEndMainTitles::shutdown()
PAUL_DBGMSG("change=%d",mem-(MainRam.TotalRam-MainRam.RamUsed)); PAUL_DBGMSG("change=%d",mem-(MainRam.TotalRam-MainRam.RamUsed));
} }
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
void CFrontEndMainTitles::select()
{
m_mode=MODE__PRESS_START;
m_mainMenu->select();
m_startGameFlag=false;
m_gotoOptionsFlag=false;
CFader::setFadingIn();
}
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
void CFrontEndMainTitles::unselect()
{
m_mainMenu->unselect();
}
typedef struct typedef struct
{ {
@ -327,7 +347,7 @@ CFrontEndScene::FrontEndMode CFrontEndMainTitles::getNextMode()
break; break;
case MODE__GOTO_OPTIONS: case MODE__GOTO_OPTIONS:
ret=CFrontEndScene::MODE__MAIN_TITLES;//MODE__GAME_OPTIONS; ret=CFrontEndScene::MODE__GAME_OPTIONS;
break; break;
} }

View file

@ -43,6 +43,8 @@ class CFrontEndMainTitles : public CFrontEndMode
public: public:
void init(); void init();
void shutdown(); void shutdown();
void select();
void unselect();
void render(); void render();
void think(int _frames); void think(int _frames);

View file

@ -111,13 +111,6 @@ void CFrontEndOptions::init()
tg=new ("togglebutton") CGUIToggleButton(); tg=new ("togglebutton") CGUIToggleButton();
tg->init(fr); tg->init(fr);
tg->setButtonTarget(&m_exitFlag); tg->setButtonTarget(&m_exitFlag);
m_optionsMenu->select();
m_exitFlag=false;
m_closingDown=false;
CFader::setFadingIn();
} }
/*---------------------------------------------------------------------- /*----------------------------------------------------------------------
@ -132,6 +125,33 @@ void CFrontEndOptions::shutdown()
m_background->shutdown(); delete m_background; m_background->shutdown(); delete m_background;
} }
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
void CFrontEndOptions::select()
{
m_optionsMenu->select();
m_exitFlag=false;
m_closingDown=false;
CFader::setFadingIn();
}
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
void CFrontEndOptions::unselect()
{
m_optionsMenu->unselect();
}
/*---------------------------------------------------------------------- /*----------------------------------------------------------------------
Function: Function:
Purpose: Purpose:

View file

@ -39,6 +39,8 @@ class CFrontEndOptions : public CFrontEndMode
public: public:
void init(); void init();
void shutdown(); void shutdown();
void select();
void unselect();
void render(); void render();
void think(int _frames); void think(int _frames);

View file

@ -141,6 +141,14 @@ SOURCE=..\..\..\source\frontend\maintitl.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\source\frontend\options.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\source\frontend\options.h
# End Source File
# Begin Source File
SOURCE=..\..\..\source\frontend\scrollbg.cpp SOURCE=..\..\..\source\frontend\scrollbg.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File