This commit is contained in:
Paul 2000-11-20 15:45:17 +00:00
parent 903a84367b
commit d936b98f6a
9 changed files with 264 additions and 33 deletions

View file

@ -46,6 +46,22 @@
#include "gfx\fader.h"
#endif
#ifndef __GUI_GUI_H__
#include "gui\gui.h"
#endif
#ifndef __GUI_GTEXTBOX_H__
#include "gui\gtextbox.h"
#endif
#ifndef __GUI_GFRAME_H__
#include "gui\gframe.h"
#endif
#ifndef __GUI_GBUTTON_H__
#include "gui\gbutton.h"
#endif
/* Std Lib
------- */
@ -95,22 +111,61 @@ 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);
m_smallFont=new ("MainTitle SmallFont") FontBank();
m_smallFont->initialise(&standardFont);
m_smallFont->setJustification(FontBank::JUST_CENTRE);
m_bigFont=new ("MainTitle BigFont") FontBank();
m_bigFont->initialise(&standardFont);
m_bigFont->setJustification(FontBank::JUST_CENTRE);
m_bigFont->setColour(PRESS_START_TEXT_R,PRESS_START_TEXT_G,PRESS_START_TEXT_B);
m_smallFont->setColour(PRESS_START_TEXT_R,PRESS_START_TEXT_G,PRESS_START_TEXT_B);
m_mode=MODE__PRESS_START;
// Create the main menu ( START GAME/OPTIONS )
m_mainMenu=new ("Main Menu GUI") CGUIControlFrame();
m_mainMenu->init(NULL);
m_mainMenu->setObjectXYWH(106,140,300,40);
m_mainMenu->clearFlags(CGUIObject::FLAG_DRAWBORDER);
PAUL_DBGMSG("change=%d",mem-(MainRam.TotalRam-MainRam.RamUsed));
/*
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);
m_mainMenu->select();
*/
m_startGameFlag=false;
m_gotoOptionsFlag=false;
CFader::setFadingIn();
}
@ -123,9 +178,10 @@ void CFrontEndMainTitles::init()
---------------------------------------------------------------------- */
void CFrontEndMainTitles::shutdown()
{
m_bigFont->dump(); delete m_bigFont;
m_mainMenu->shutdown(); delete m_mainMenu;
m_smallFont->dump(); delete m_smallFont;
m_sprites->dump(); delete m_sprites;
PAUL_DBGMSG("change=%d",mem-(MainRam.TotalRam-MainRam.RamUsed));
}
@ -153,7 +209,7 @@ void CFrontEndMainTitles::render()
// Game logo/title
fh=m_sprites->getFrameHeader(FRM__SBLOGO);
m_sprites->printFT4(fh,256-(fh->W/2),LOGO_CENTRE_Y-(fh->H/2),0,0,20);
m_sprites->printFT4(fh,256-(fh->W/2),LOGO_CENTRE_Y-(fh->H/2),0,0,220);
m_smallFont->setColour(GAME_TITLE_TEXT_R,GAME_TITLE_TEXT_G,GAME_TITLE_TEXT_B);
m_smallFont->print(256,GAME_TITLE_TEXT_CENTRE_Y,STR__FRONTEND__GAME_TITLE);
m_smallFont->setColour(0,0,0);
@ -161,7 +217,7 @@ void CFrontEndMainTitles::render()
// The island
fh=m_sprites->getFrameHeader(FRM__ISLAND);
m_sprites->printFT4(fh,ISLAND_LEFT_X,ISLAND_BOTTOM_Y-(fh->H),0,0,11);
m_sprites->printFT4(fh,ISLAND_LEFT_X,ISLAND_BOTTOM_Y-(fh->H),0,0,221);
// Sky
fh=m_sprites->getFrameHeader(FRM_SKY);
@ -181,7 +237,12 @@ void CFrontEndMainTitles::render()
case MODE__PRESS_START:
renderPressStart();
break;
case MODE__SELECT_OPTION:
m_mainMenu->render();
break;
default:
break;
}
}
@ -203,10 +264,24 @@ void CFrontEndMainTitles::think(int _frames)
if(!CFader::isFading()&&PadGetDown(0)&PAD_START)
{
m_mode=MODE__SELECT_OPTION;
CFader::setFadingOut();
}
break;
case MODE__SELECT_OPTION:
m_mainMenu->think(_frames);
if(m_startGameFlag)
{
// CFader::setFadingOut();
m_mode=MODE__START_GAME;
}
else if(m_gotoOptionsFlag)
{
CFader::setFadingOut();
m_mode=MODE__GOTO_OPTIONS;
}
break;
default:
break;
}
}
@ -218,7 +293,50 @@ CFader::setFadingOut();
Params:
Returns:
---------------------------------------------------------------------- */
POLY_FT4 *CFrontEndMainTitles::prepareSeaPortionFT4(sFrameHdr *_fh,int _x,int _y,int _w,int _h,int _rgb)
int CFrontEndMainTitles::isReadyToExit()
{
return !CFader::isFading()&&(m_mode==MODE__START_GAME||m_mode==MODE__GOTO_OPTIONS);
}
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
CFrontEndScene::FrontEndMode CFrontEndMainTitles::getNextMode()
{
CFrontEndScene::FrontEndMode ret;
ret=CFrontEndScene::MODE__NONE;
switch(m_mode)
{
case MODE__PRESS_START:
case MODE__SELECT_OPTION:
ASSERT(0);
break;
case MODE__START_GAME:
ret=CFrontEndScene::MODE__CHOOSE_SLOT;
break;
case MODE__GOTO_OPTIONS:
ret=CFrontEndScene::MODE__GAME_OPTIONS;
break;
}
return ret;
}
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
POLY_FT4 *CFrontEndMainTitles::prepareSeaPortionFT4(sFrameHdr *_fh,int _x,int _y,int _w,int _h,int _rgb)
{
int u,v,w,h;
POLY_FT4 *ft4;
@ -336,7 +454,7 @@ void CFrontEndMainTitles::renderPressStart()
{
if(!CFader::isFading())
{
m_bigFont->print(256,PRESS_START_TEXT_Y,STR__FRONTEND__PRESS_START);
m_smallFont->print(256,PRESS_START_TEXT_Y,STR__FRONTEND__PRESS_START);
}
}