This commit is contained in:
Paul 2001-07-26 16:12:32 +00:00
parent 2ea6dd011a
commit 0cf03a8b87
4 changed files with 93 additions and 55 deletions

View File

@ -461,7 +461,7 @@ eng=QUIT
[STR__PAUSE_MENU__CONFIRM_QUIT]
eng=Confirm quit?
[STR__PAUSE_MENU__VIBRATION]
eng=VIBRATION
eng=VIBRATION:

View File

@ -39,6 +39,10 @@
#include "gui\gtextbox.h"
#endif
#ifndef __GUI_GBUTTON_H__
#include "gui\gbutton.h"
#endif
#ifndef __MEMORY_HEADER__
#include "mem\memory.h"
#endif
@ -59,6 +63,10 @@
#include "pad/pads.h"
#endif
#ifndef __PAD_VIBE_H__
#include "pad\vibe.h"
#endif
/* Std Lib
------- */
@ -99,18 +107,20 @@
---------------------------------------------------------------------- */
static const int FRAME_WIDTH =352;
static const int FRAME_HEIGHT =160-64;
static const int TEXT_BOX_WIDTH =300;
static const int TEXT_BOX_WIDTH =200;
static const int TEXT_BOX_HEIGHT =20;
static const int TEXT_SPACING =13;
static const int TEXT_SPACING =16;
extern int newmode;
extern int invincibleSponge;
int inv_data[]={0,1,-1};
static CGUITextReadout::TextReadoutData inv_readoutdata[2]={{0,STR__OFF},{1,STR__ON}};
static CGUITextReadout::TextReadoutData s_yesNoReadoutData[2]={{0,STR__OFF},{1,STR__ON}};
static CGUIGroupFrame *s_vibFrame;
void CPauseMenu::init()
{
int xpos;
int ypos;
CGUITextBox *tb;
@ -120,67 +130,93 @@ void CPauseMenu::init()
m_pauseGuiFrame->setObjectXYWH((INGAME_SCREENW-FRAME_WIDTH)/2,(INGAME_SCREENH-FRAME_HEIGHT)/2,FRAME_WIDTH,FRAME_HEIGHT);
m_pauseGuiFrame->setFlags(CGUIObject::FLAG_DRAWBORDER);
xpos=TEXT_SPACING/2;
ypos=TEXT_SPACING/3;
tb=new ("textbox") CGUITextBox();
tb->init(m_pauseGuiFrame);
tb->setObjectXYWH((FRAME_WIDTH-TEXT_BOX_WIDTH)/2,xpos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT);
tb->setObjectXYWH((FRAME_WIDTH-TEXT_BOX_WIDTH)/2,ypos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT);
tb->setText(STR__PAUSE_MENU__GAME_PAUSED);
xpos+=TEXT_SPACING*2;
ypos+=TEXT_SPACING*2;
CGUIFactory::createValueButtonFrame(m_pauseGuiFrame,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,xpos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,ypos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
STR__PAUSE_MENU__CONTINUE,
&m_responseFlag,RESPONSE__CONTINUE);
xpos+=TEXT_SPACING*2;
ypos+=TEXT_SPACING;
{
// Vibration toggle
CGUIGroupFrame *fr;
CGUITextBox *tb;
CGUIValueButton *vb;
CGUITextReadout *tr;
fr=new ("frame") CGUIGroupFrame();
fr->init(m_pauseGuiFrame);
fr->setObjectXYWH((FRAME_WIDTH-TEXT_BOX_WIDTH)/2,ypos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT);
tb=new ("textbox") CGUITextBox();
tb->init(fr);
tb->setObjectXYWH(0,0,(TEXT_BOX_WIDTH/3)*2,TEXT_BOX_HEIGHT);
tb->setText(STR__PAUSE_MENU__VIBRATION);
vb=new ("valuebutton") CGUIValueButton();
vb->init(fr);
vb->setButtonTarget(&m_vibrationChangeFlag);
vb->setButtonValue(true);
tr=new ("textreadout") CGUITextReadout();
tr->init(fr);
tr->setObjectXYWH((TEXT_BOX_WIDTH/3)*2,0,(TEXT_BOX_WIDTH/3)*1,TEXT_BOX_HEIGHT);
tr->setReadoutTarget(&m_vibrationState);
tr->setReadoutData(s_yesNoReadoutData);
s_vibFrame=fr;
}
ypos+=TEXT_SPACING;
CGUIFactory::createValueButtonFrame(m_pauseGuiFrame,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,xpos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,ypos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
STR__PAUSE_MENU__QUIT,
&m_responseFlag,RESPONSE__QUIT);
#ifdef __VERSION_DEBUG__
xpos+=8;
#ifdef __VERSION_DEBUG__o
ypos+=8;
CGUIFactory::createCycleButtonFrame(m_pauseGuiFrame,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,xpos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,ypos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
STR__INVINCIBILE_SPONGEBOB,
&invincibleSponge,inv_data,inv_readoutdata);
xpos+=TEXT_SPACING;
&invincibleSponge,inv_data,s_yesNoReadoutData);
ypos+=TEXT_SPACING;
#if defined (__USER_paul__) || defined (__USER_charles__)
CGUIFactory::createValueButtonFrame(m_pauseGuiFrame,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,xpos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,ypos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
STR__DEBUG__BASICUNARMED_MODE,
&newmode,PLAYER_MODE_BASICUNARMED);
xpos+=8;
ypos+=8;
CGUIFactory::createValueButtonFrame(m_pauseGuiFrame,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,xpos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,ypos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
STR__DEBUG__FULLUNARMED_MODE,
&newmode,PLAYER_MODE_FULLUNARMED);
xpos+=8;
ypos+=8;
CGUIFactory::createValueButtonFrame(m_pauseGuiFrame,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,xpos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,ypos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
STR__DEBUG__BALLOON_MODE,
&newmode,PLAYER_MODE_BALLOON);
xpos+=8;
ypos+=8;
CGUIFactory::createValueButtonFrame(m_pauseGuiFrame,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,xpos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,ypos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
STR__DEBUG__BUBBLEMIXTURE_MODE,
&newmode,PLAYER_MODE_BUBBLE_MIXTURE);
xpos+=8;
ypos+=8;
CGUIFactory::createValueButtonFrame(m_pauseGuiFrame,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,xpos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,ypos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
STR__DEBUG__NET_MODE,
&newmode,PLAYER_MODE_NET);
xpos+=8;
ypos+=8;
CGUIFactory::createValueButtonFrame(m_pauseGuiFrame,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,xpos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,ypos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
STR__DEBUG__CORALBLOWER_MODE,
&newmode,PLAYER_MODE_CORALBLOWER);
xpos+=8;
ypos+=8;
CGUIFactory::createValueButtonFrame(m_pauseGuiFrame,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,xpos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,ypos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
STR__DEBUG__JELLYLAUNCHER_MODE,
&newmode,PLAYER_MODE_JELLY_LAUNCHER);
xpos+=8;
ypos+=8;
CGUIFactory::createValueButtonFrame(m_pauseGuiFrame,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,xpos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,ypos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
STR__DEBUG__DEAD_MODE,
&newmode,PLAYER_MODE_DEAD);
#endif
@ -193,19 +229,19 @@ void CPauseMenu::init()
m_confirmQuitGuiFrame->setObjectXYWH((INGAME_SCREENW-FRAME_WIDTH)/2,(INGAME_SCREENH-FRAME_HEIGHT)/2,FRAME_WIDTH,FRAME_HEIGHT);
m_confirmQuitGuiFrame->setFlags(CGUIObject::FLAG_DRAWBORDER);
xpos=TEXT_SPACING/2;
ypos=TEXT_SPACING/3;
tb=new ("textbox") CGUITextBox();
tb->init(m_confirmQuitGuiFrame);
tb->setObjectXYWH((FRAME_WIDTH-TEXT_BOX_WIDTH)/2,xpos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT);
tb->setObjectXYWH((FRAME_WIDTH-TEXT_BOX_WIDTH)/2,ypos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT);
tb->setText(STR__PAUSE_MENU__CONFIRM_QUIT);
xpos+=TEXT_SPACING*2;
ypos+=TEXT_SPACING*2;
CGUIFactory::createValueButtonFrame(m_confirmQuitGuiFrame,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,xpos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,ypos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
STR__NO,
&m_responseFlag,RESPONSE__CONFIRM_QUIT_NO);
xpos+=TEXT_SPACING*2;
ypos+=TEXT_SPACING;
CGUIFactory::createValueButtonFrame(m_confirmQuitGuiFrame,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,xpos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,ypos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
STR__YES,
&m_responseFlag,RESPONSE__CONFIRM_QUIT_YES);
@ -244,7 +280,11 @@ void CPauseMenu::select()
m_padDebounce=true;
m_currentState=STATE__MAIN_MENU;
m_responseFlag=RESPONSE__WAITING;
m_vibrationChangeFlag=false;
m_vibrationState=PadGetVibrationIsTurnedOn(0);
m_pauseGuiFrame->select();
s_vibFrame->think(1); // This just makes sure that the readout reads correctly on the first frame
chapter=GameScene.getChapterNumber()-1;
level=GameScene.getLevelNumber()-1;
@ -303,6 +343,20 @@ void CPauseMenu::think(int _frames)
switch(m_responseFlag)
{
case RESPONSE__WAITING:
if(m_vibrationChangeFlag)
{
m_vibrationState=PadGetVibrationIsTurnedOn(0)==true?false:true;
PadSetVibrationIsTurnedOn(0,m_vibrationState);
if(m_vibrationState)
{
CPadVibrationManager::setVibration(0,CPadVibrationManager::VIBE_MEDIUM);
}
else
{
CPadVibrationManager::stopAllVibration();
}
m_vibrationChangeFlag=false;
}
break;
case RESPONSE__CONTINUE:

View File

@ -67,6 +67,8 @@ private:
int m_SpeechPlaying;
int m_padDebounce;
int m_responseFlag;
int m_vibrationChangeFlag;
int m_vibrationState;
STATE m_currentState;
class CGUIControlFrame *m_pauseGuiFrame;

View File

@ -79,7 +79,6 @@ void CGUIFactory::createValueButtonFrame(class CGUIObject *_parent,
CGUIGroupFrame *fr;
CGUITextBox *tb;
CGUIValueButton *vb;
int x,y,w,h;
fr=new ("frame") CGUIGroupFrame();
fr->init(_parent);
@ -92,11 +91,6 @@ void CGUIFactory::createValueButtonFrame(class CGUIObject *_parent,
vb->init(fr);
vb->setButtonTarget(_target);
vb->setButtonValue(_value);
w=tb->getTextWidth();
h=tb->getTextHeight();
x=(_w-w)/2;
y=(_h-h)/2;
}
/*----------------------------------------------------------------------
@ -114,7 +108,6 @@ void CGUIFactory::createCycleButtonFrame(class CGUIObject *_parent,
CGUITextBox *tb;
CGUICycleButton *cb;
CGUITextReadout *tr;
int x,y,w,h;
fr=new ("frame") CGUIGroupFrame();
fr->init(_parent);
@ -132,11 +125,6 @@ void CGUIFactory::createCycleButtonFrame(class CGUIObject *_parent,
tr->setObjectXYWH(0,(_h*2)/3,_w,(_h*1)/3);
tr->setReadoutTarget(_target);
tr->setReadoutData(_readoutData);
w=tb->getTextWidth();
h=tb->getTextHeight();
x=(_w-w)/2;
y=(_h-h)/2;
}
/*----------------------------------------------------------------------
@ -154,7 +142,6 @@ void CGUIFactory::createSliderButtonFrame(class CGUIObject *_parent,
CGUITextBox *tb;
CGUISliderButton *sb;
CGUIBarReadout *br;
int x,y,w,h;
fr=new ("frame") CGUIGroupFrame();
fr->init(_parent);
@ -172,11 +159,6 @@ void CGUIFactory::createSliderButtonFrame(class CGUIObject *_parent,
br->setObjectXYWH(0,(_h*2)/3,_w,(_h*1)/3);
br->setReadoutTarget(_target);
br->setReadoutRange(_min,_max);
w=tb->getTextWidth();
h=tb->getTextHeight();
x=(_w-w)/2;
y=(_h-h)/2;
}