This commit is contained in:
parent
06aa78b482
commit
8df9ff4010
8 changed files with 244 additions and 81 deletions
|
@ -46,10 +46,32 @@ eng=PRESS START
|
|||
eng=START GAME
|
||||
[STR__FRONTEND__OPTIONS]
|
||||
eng=OPTIONS
|
||||
[STR__FRONTEND__CREDITS]
|
||||
eng=CREDITS
|
||||
|
||||
; Options menu
|
||||
[STR__FRONTEND__CONTROLS]
|
||||
eng=CONTROLS
|
||||
[STR__FRONTEND__SCREEN]
|
||||
eng=SCREEN
|
||||
[STR__FRONTEND__SOUND]
|
||||
eng=SOUND
|
||||
[STR__FRONTEND__EXIT]
|
||||
eng=EXIT
|
||||
[STR__FRONTEND__BACK]
|
||||
eng=BACK
|
||||
|
||||
; Controls menu
|
||||
|
||||
; Screen menu
|
||||
|
||||
; Sound menu
|
||||
[STR__FRONTEND__BGM]
|
||||
eng=BGM VOLUME
|
||||
[STR__FRONTEND__SFX]
|
||||
eng=SFX VOLUME
|
||||
[STR__FRONTEND__SPEECH]
|
||||
eng=SPEECH VOLUME
|
||||
|
||||
|
||||
; ---------------------------------------------------------------
|
||||
|
|
|
@ -75,6 +75,7 @@ gfx_src := prim \
|
|||
|
||||
gui_src := gui \
|
||||
gbutton \
|
||||
gfactory \
|
||||
gframe \
|
||||
greadout \
|
||||
gtextbox
|
||||
|
|
|
@ -18,10 +18,6 @@
|
|||
|
||||
#include "frontend\maintitl.h"
|
||||
|
||||
#ifndef __MEMORY_HEADER__
|
||||
#include "mem\memory.h"
|
||||
#endif
|
||||
|
||||
#ifndef __GFX_SPRBANK_H__
|
||||
#include "gfx\sprbank.h"
|
||||
#endif
|
||||
|
@ -46,22 +42,14 @@
|
|||
#include "gfx\fader.h"
|
||||
#endif
|
||||
|
||||
#ifndef __GUI_GUI_H__
|
||||
#include "gui\gui.h"
|
||||
#endif
|
||||
|
||||
#ifndef __GUI_GTEXTBOX_H__
|
||||
#include "gui\gtextbox.h"
|
||||
#ifndef __GUI_GFACTORY_H__
|
||||
#include "gui\gfactory.h"
|
||||
#endif
|
||||
|
||||
#ifndef __GUI_GFRAME_H__
|
||||
#include "gui\gframe.h"
|
||||
#endif
|
||||
|
||||
#ifndef __GUI_GBUTTON_H__
|
||||
#include "gui\gbutton.h"
|
||||
#endif
|
||||
|
||||
|
||||
/* Std Lib
|
||||
------- */
|
||||
|
@ -111,15 +99,8 @@ int sval=0;
|
|||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
int mem;
|
||||
void CFrontEndMainTitles::init()
|
||||
{
|
||||
mem=MainRam.TotalRam-MainRam.RamUsed;
|
||||
PAUL_DBGMSG("initial mem free=%d",mem);
|
||||
CGUIGroupFrame *fr;
|
||||
CGUITextBox *tb;
|
||||
CGUIToggleButton *tg;
|
||||
|
||||
m_sprites=new ("MainTitle Sprites") SpriteBank();
|
||||
m_sprites->load(FRONTEND_FRONTEND_SPR);
|
||||
|
||||
|
@ -127,36 +108,26 @@ PAUL_DBGMSG("initial mem free=%d",mem);
|
|||
m_smallFont->initialise(&standardFont);
|
||||
m_smallFont->setJustification(FontBank::JUST_CENTRE);
|
||||
|
||||
// Create the main menu ( START GAME/OPTIONS )
|
||||
// Create the main menu ( START GAME/OPTIONS/CREDITS )
|
||||
m_mainMenu=new ("Main Menu GUI") CGUIControlFrame();
|
||||
m_mainMenu->init(NULL);
|
||||
m_mainMenu->setObjectXYWH(106,140,300,40);
|
||||
m_mainMenu->setObjectXYWH(106,140,300,60);
|
||||
m_mainMenu->clearFlags(CGUIObject::FLAG_DRAWBORDER);
|
||||
|
||||
fr=new ("frame") CGUIGroupFrame();
|
||||
fr->init(m_mainMenu);
|
||||
fr->setObjectXYWH(50,0,200,20);
|
||||
tb=new ("textbox") CGUITextBox();
|
||||
tb->init(fr);
|
||||
tb->setObjectXYWH(0,0,200,20);
|
||||
tb->setText(STR__FRONTEND__START_GAME);
|
||||
tg=new ("togglebutton") CGUIToggleButton();
|
||||
tg->init(fr);
|
||||
tg->setButtonTarget(&m_startGameFlag);
|
||||
|
||||
fr=new ("frame") CGUIGroupFrame();
|
||||
fr->init(m_mainMenu);
|
||||
fr->setObjectXYWH(50,20,200,20);
|
||||
tb=new ("textbox") CGUITextBox();
|
||||
tb->init(fr);
|
||||
tb->setObjectXYWH(0,0,200,20);
|
||||
tb->setText(STR__FRONTEND__OPTIONS);
|
||||
tg=new ("togglebutton") CGUIToggleButton();
|
||||
tg->init(fr);
|
||||
tg->setButtonTarget(&m_gotoOptionsFlag);
|
||||
CGUIFactory::createValueButtonFrame(m_mainMenu,
|
||||
50,0,200,20,
|
||||
STR__FRONTEND__START_GAME,
|
||||
&m_startGameFlag,true);
|
||||
CGUIFactory::createValueButtonFrame(m_mainMenu,
|
||||
50,20,200,20,
|
||||
STR__FRONTEND__OPTIONS,
|
||||
&m_gotoOptionsFlag,true);
|
||||
CGUIFactory::createValueButtonFrame(m_mainMenu,
|
||||
50,40,200,20,
|
||||
STR__FRONTEND__CREDITS,
|
||||
&m_gotoOptionsFlag,true);
|
||||
}
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
|
@ -168,7 +139,6 @@ void CFrontEndMainTitles::shutdown()
|
|||
m_mainMenu->shutdown(); // GUI items delete themselves when shutdown..
|
||||
m_smallFont->dump(); delete m_smallFont;
|
||||
m_sprites->dump(); delete m_sprites;
|
||||
PAUL_DBGMSG("change=%d",mem-(MainRam.TotalRam-MainRam.RamUsed));
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
|
|
|
@ -34,26 +34,22 @@
|
|||
#include "gfx\prim.h"
|
||||
#endif
|
||||
|
||||
#ifndef __GUI_GUI_H__
|
||||
#include "gui\gui.h"
|
||||
#endif
|
||||
|
||||
#ifndef __GUI_GTEXTBOX_H__
|
||||
#include "gui\gtextbox.h"
|
||||
#ifndef __GUI_GFACTORY_H__
|
||||
#include "gui\gfactory.h"
|
||||
#endif
|
||||
|
||||
#ifndef __GUI_GFRAME_H__
|
||||
#include "gui\gframe.h"
|
||||
#endif
|
||||
|
||||
#ifndef __GUI_GBUTTON_H__
|
||||
#include "gui\gbutton.h"
|
||||
#endif
|
||||
|
||||
#ifndef __LOCALE_TEXTDBASE_H__
|
||||
#include "locale\textdbase.h"
|
||||
#endif
|
||||
|
||||
#ifndef __SOUND_SOUND_H__
|
||||
#include "sound\sound.h"
|
||||
#endif
|
||||
|
||||
|
||||
/* Std Lib
|
||||
------- */
|
||||
|
@ -90,27 +86,72 @@
|
|||
---------------------------------------------------------------------- */
|
||||
void CFrontEndOptions::init()
|
||||
{
|
||||
CGUIGroupFrame *fr;
|
||||
CGUITextBox *tb;
|
||||
CGUIToggleButton *tg;
|
||||
int i;
|
||||
|
||||
m_background=new ("Options Background") CScrollyBackground();
|
||||
m_background->init();
|
||||
|
||||
m_optionsMenu=new ("Options GUI") CGUIControlFrame();
|
||||
m_optionsMenu->init(NULL);
|
||||
m_optionsMenu->setObjectXYWH(50,40,412,176);
|
||||
// Create the menu frames
|
||||
for(i=0;i<MODE__COUNT;i++)
|
||||
{
|
||||
CGUIControlFrame **mm=&m_modeMenus[i];
|
||||
*mm=new ("optionsframe") CGUIControlFrame();
|
||||
(*mm)->init(NULL);
|
||||
(*mm)->setObjectXYWH(50,40,412,176);
|
||||
}
|
||||
|
||||
fr=new ("frame") CGUIGroupFrame();
|
||||
fr->init(m_optionsMenu);
|
||||
fr->setObjectXYWH(50,0,200,20);
|
||||
tb=new ("textbox") CGUITextBox();
|
||||
tb->init(fr);
|
||||
tb->setObjectXYWH(0,0,200,20);
|
||||
tb->setText(STR__FRONTEND__EXIT);
|
||||
tg=new ("togglebutton") CGUIToggleButton();
|
||||
tg->init(fr);
|
||||
tg->setButtonTarget(&m_exitFlag);
|
||||
|
||||
// Populate OPTIONS menu
|
||||
CGUIFactory::createValueButtonFrame(m_modeMenus[MODE__OPTIONS],
|
||||
X_BORDER,Y_BORDER,412-(X_BORDER*2),20,
|
||||
STR__FRONTEND__CONTROLS,
|
||||
&m_nextMode,MODE__CONTROL);
|
||||
CGUIFactory::createValueButtonFrame(m_modeMenus[MODE__OPTIONS],
|
||||
X_BORDER,Y_BORDER+30,412-(X_BORDER*2),20,
|
||||
STR__FRONTEND__SCREEN,
|
||||
&m_nextMode,MODE__SCREEN);
|
||||
CGUIFactory::createValueButtonFrame(m_modeMenus[MODE__OPTIONS],
|
||||
X_BORDER,Y_BORDER+60,412-(X_BORDER*2),20,
|
||||
STR__FRONTEND__SOUND,
|
||||
&m_nextMode,MODE__SOUND);
|
||||
CGUIFactory::createValueButtonFrame(m_modeMenus[MODE__OPTIONS],
|
||||
X_BORDER,176-Y_BORDER-20,412-(X_BORDER*2),20,
|
||||
STR__FRONTEND__EXIT,
|
||||
&m_exitFlag,true);
|
||||
|
||||
|
||||
// Populate CONTROLS menu
|
||||
|
||||
|
||||
// Populate SCREEN menu
|
||||
|
||||
|
||||
// Populate SOUND menu
|
||||
CGUIFactory::createSliderButtonFrame(m_modeMenus[MODE__SOUND],
|
||||
X_BORDER,Y_BORDER,412-(X_BORDER*2),30,
|
||||
STR__FRONTEND__BGM,
|
||||
&m_bgmVolume,CSoundMediator::MIN_VOLUME,CSoundMediator::MAX_VOLUME);
|
||||
CGUIFactory::createSliderButtonFrame(m_modeMenus[MODE__SOUND],
|
||||
X_BORDER,Y_BORDER+40,412-(X_BORDER*2),30,
|
||||
STR__FRONTEND__SFX,
|
||||
&m_sfxVolume,CSoundMediator::MIN_VOLUME,CSoundMediator::MAX_VOLUME);
|
||||
CGUIFactory::createSliderButtonFrame(m_modeMenus[MODE__SOUND],
|
||||
X_BORDER,Y_BORDER+80,412-(X_BORDER*2),30,
|
||||
STR__FRONTEND__SPEECH,
|
||||
&m_speechVolume,CSoundMediator::MIN_VOLUME,CSoundMediator::MAX_VOLUME);
|
||||
|
||||
// Add BACK to all of the sub menus
|
||||
for(i=1;i<MODE__COUNT;i++)
|
||||
{
|
||||
CGUIFactory::createValueButtonFrame(m_modeMenus[i],
|
||||
X_BORDER,176-Y_BORDER-20,412-(X_BORDER*2),20,
|
||||
STR__FRONTEND__BACK,
|
||||
&m_nextMode,MODE__OPTIONS);
|
||||
}
|
||||
|
||||
m_bgmVolume=CSoundMediator::getVolume(CSoundMediator::SONG);
|
||||
m_sfxVolume=CSoundMediator::getVolume(CSoundMediator::SFX);
|
||||
m_speechVolume=CSoundMediator::getVolume(CSoundMediator::SPEECH);
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
|
@ -121,7 +162,13 @@ void CFrontEndOptions::init()
|
|||
---------------------------------------------------------------------- */
|
||||
void CFrontEndOptions::shutdown()
|
||||
{
|
||||
m_optionsMenu->shutdown();
|
||||
int i;
|
||||
|
||||
for(i=0;i<MODE__COUNT;i++)
|
||||
{
|
||||
CGUIControlFrame **mm=&m_modeMenus[i];
|
||||
(*mm)->shutdown();
|
||||
}
|
||||
m_background->shutdown(); delete m_background;
|
||||
}
|
||||
|
||||
|
@ -133,7 +180,9 @@ void CFrontEndOptions::shutdown()
|
|||
---------------------------------------------------------------------- */
|
||||
void CFrontEndOptions::select()
|
||||
{
|
||||
m_optionsMenu->select();
|
||||
m_modeMenus[MODE__OPTIONS]->select();
|
||||
|
||||
m_mode=m_nextMode=MODE__OPTIONS;
|
||||
|
||||
m_exitFlag=false;
|
||||
m_closingDown=false;
|
||||
|
@ -149,7 +198,7 @@ void CFrontEndOptions::select()
|
|||
---------------------------------------------------------------------- */
|
||||
void CFrontEndOptions::unselect()
|
||||
{
|
||||
m_optionsMenu->unselect();
|
||||
m_modeMenus[m_mode]->unselect();
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
|
@ -172,7 +221,7 @@ void CFrontEndOptions::render()
|
|||
|
||||
m_background->render();
|
||||
|
||||
m_optionsMenu->render();
|
||||
m_modeMenus[m_mode]->render();
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
|
@ -192,7 +241,32 @@ void CFrontEndOptions::think(int _frames)
|
|||
|
||||
if(!CFader::isFading())
|
||||
{
|
||||
m_optionsMenu->think(_frames);
|
||||
if(m_nextMode!=m_mode)
|
||||
{
|
||||
m_modeMenus[m_mode]->unselect();
|
||||
m_mode=m_nextMode;
|
||||
m_modeMenus[m_mode]->select();
|
||||
}
|
||||
m_modeMenus[m_mode]->think(_frames);
|
||||
|
||||
if(m_mode==MODE__SOUND)
|
||||
{
|
||||
if(m_bgmVolume!=CSoundMediator::getVolume(CSoundMediator::SONG))
|
||||
{
|
||||
CSoundMediator::setVolume(CSoundMediator::SONG,m_bgmVolume);
|
||||
PAUL_DBGMSG("SONG");
|
||||
}
|
||||
if(m_sfxVolume!=CSoundMediator::getVolume(CSoundMediator::SFX))
|
||||
{
|
||||
CSoundMediator::setVolume(CSoundMediator::SFX,m_sfxVolume);
|
||||
PAUL_DBGMSG("SFX");
|
||||
}
|
||||
if(m_speechVolume!=CSoundMediator::getVolume(CSoundMediator::SPEECH))
|
||||
{
|
||||
CSoundMediator::setVolume(CSoundMediator::SPEECH,m_speechVolume);
|
||||
PAUL_DBGMSG("SPEECH");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!m_closingDown&&m_exitFlag)
|
||||
|
@ -200,6 +274,7 @@ void CFrontEndOptions::think(int _frames)
|
|||
CFader::setFadingOut();
|
||||
m_closingDown=true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
|
|
|
@ -49,13 +49,33 @@ public:
|
|||
|
||||
|
||||
private:
|
||||
enum
|
||||
{
|
||||
MODE__OPTIONS,
|
||||
MODE__CONTROL,
|
||||
MODE__SCREEN,
|
||||
MODE__SOUND,
|
||||
|
||||
MODE__COUNT,
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
X_BORDER=30,
|
||||
Y_BORDER=20,
|
||||
};
|
||||
|
||||
class CScrollyBackground *m_background;
|
||||
class CGUIControlFrame *m_optionsMenu;
|
||||
class CGUIControlFrame *m_modeMenus[MODE__COUNT];
|
||||
int m_mode,m_nextMode;
|
||||
|
||||
int m_exitFlag;
|
||||
|
||||
int m_closingDown;
|
||||
|
||||
int m_bgmVolume;
|
||||
int m_sfxVolume;
|
||||
int m_speechVolume;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -107,6 +107,56 @@ void CGUIToggleButton::think(int _frames)
|
|||
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
void CGUIValueButton::init(CGUIObject *_parent,GUIId _id)
|
||||
{
|
||||
CGUIToggleButton::init(_parent,_id);
|
||||
m_value=-1;
|
||||
}
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
void CGUIValueButton::setButtonValue(int _value)
|
||||
{
|
||||
m_value=_value;
|
||||
}
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
void CGUIValueButton::think(int _frames)
|
||||
{
|
||||
ASSERT(getTarget());
|
||||
|
||||
CGUIObject::think(_frames);
|
||||
if(isSelected())
|
||||
{
|
||||
if(PadGetRepeat(0)&PAD_CROSS)
|
||||
{
|
||||
*getTarget()=m_value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
Structure defintions
|
||||
-------------------- */
|
||||
|
||||
// Toggles a target int between true/false
|
||||
class CGUIToggleButton : public CGUIObject
|
||||
{
|
||||
public:
|
||||
|
@ -54,7 +55,23 @@ private:
|
|||
|
||||
};
|
||||
|
||||
// Sets target to a specified value
|
||||
class CGUIValueButton : public CGUIToggleButton
|
||||
{
|
||||
public:
|
||||
virtual void init(CGUIObject *_parent,GUIId _id=noId);
|
||||
|
||||
void setButtonValue(int _value);
|
||||
|
||||
virtual void think(int _frames);
|
||||
|
||||
|
||||
private:
|
||||
int m_value;
|
||||
|
||||
};
|
||||
|
||||
// Cycles target between a specified range of values
|
||||
class CGUICycleButton : public CGUIToggleButton
|
||||
{
|
||||
public:
|
||||
|
@ -74,7 +91,7 @@ private:
|
|||
|
||||
};
|
||||
|
||||
|
||||
// Scrolls target between set limits
|
||||
class CGUISliderButton : public CGUIToggleButton
|
||||
{
|
||||
public:
|
||||
|
|
|
@ -249,6 +249,14 @@ SOURCE=..\..\..\source\gui\gbutton.h
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\gui\gfactory.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\gui\gfactory.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\gui\gframe.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
|
Loading…
Add table
Reference in a new issue