This commit is contained in:
Paul 2001-06-20 22:57:27 +00:00
parent 8a1398c99b
commit 97d27f0ae9
9 changed files with 95 additions and 190 deletions

View file

@ -78,7 +78,7 @@ void CGameCompletedScene::init()
m_font->setOt(5); m_font->setOt(5);
m_readyToExit=false; m_readyToExit=false;
CFader::setFadingIn(CFader::BLACK_FADE); CFader::setFadingIn();
} }
@ -127,7 +127,7 @@ void CGameCompletedScene::think(int _frames)
if(PadGetDown(0)&(PAD_CROSS|PAD_START)) if(PadGetDown(0)&(PAD_CROSS|PAD_START))
{ {
m_readyToExit=true; m_readyToExit=true;
CFader::setFadingOut(CFader::BLACK_FADE); CFader::setFadingOut();
GameState::setNextScene(&FrontEndScene); GameState::setNextScene(&FrontEndScene);
} }
} }

View file

@ -103,7 +103,7 @@ void CGameOverScene::init()
m_font->setOt(5); m_font->setOt(5);
m_readyToExit=false; m_readyToExit=false;
CFader::setFadingIn(CFader::BLACK_FADE); CFader::setFadingIn();
initContinue(); initContinue();
initGameOver(); initGameOver();
@ -244,7 +244,7 @@ void CGameOverScene::thinkContinue(int _frames)
else if(pad&PAD_START) else if(pad&PAD_START)
{ {
m_readyToExit=true; m_readyToExit=true;
CFader::setFadingOut(CFader::BLACK_FADE); CFader::setFadingOut();
GameState::setNextScene(&GameScene); GameState::setNextScene(&GameScene);
m_state=STATE__EXITING_TO_GAME; m_state=STATE__EXITING_TO_GAME;
} }
@ -336,7 +336,7 @@ void CGameOverScene::thinkGameOver(int _frames)
PadGetDown(0)&(PAD_START|PAD_CROSS)) PadGetDown(0)&(PAD_START|PAD_CROSS))
{ {
m_readyToExit=true; m_readyToExit=true;
CFader::setFadingOut(CFader::BLACK_FADE); CFader::setFadingOut();
GameState::setNextScene(&FrontEndScene); GameState::setNextScene(&FrontEndScene);
m_state=STATE__EXITING_TO_FRONT_END; m_state=STATE__EXITING_TO_FRONT_END;
} }

View file

@ -127,7 +127,7 @@ void CPartyScene::init()
m_sprites->load(PARTY_PARTY_SPR); m_sprites->load(PARTY_PARTY_SPR);
m_readyToExit=false; m_readyToExit=false;
CFader::setFadingIn(CFader::BLACK_FADE); CFader::setFadingIn();
CActorPool::Reset(); CActorPool::Reset();
m_actorSpongebob=CActorPool::GetActor(ACTORS_SPONGEBOB_SBK); m_actorSpongebob=CActorPool::GetActor(ACTORS_SPONGEBOB_SBK);

View file

@ -277,12 +277,10 @@ void CGameScene::render()
/*****************************************************************************/ /*****************************************************************************/
void CGameScene::think(int _frames) void CGameScene::think(int _frames)
{ {
//#ifdef __USER_paul__ if(s_readyToExit)
// if(!CConversation::isActive()&&PadGetDown(0)&PAD_START) {
// { return;
// CConversation::trigger(SCRIPTS_SPEECHTEST_DAT); }
// }
//#endif
// Auto-timer stuff // Auto-timer stuff
if(m_levelHasTimer) if(m_levelHasTimer)
@ -294,12 +292,7 @@ void CGameScene::think(int _frames)
} }
} }
if(s_readyToExit) if(s_levelFinished)
{
// Temporarily.. exiting game scene always goes back to the front end (pkg)
GameState::setNextScene(&FrontEndScene);
}
else if(s_levelFinished)
{ {
// Do the gameslot stuff.. // Do the gameslot stuff..
CGameSlotManager::GameSlot *gameSlot; CGameSlotManager::GameSlot *gameSlot;
@ -354,6 +347,8 @@ void CGameScene::think(int _frames)
GameState::setNextScene(&MapScene); GameState::setNextScene(&MapScene);
} }
s_readyToExit=true; s_readyToExit=true;
s_levelFinished=false;
CFader::setFadingOut();
} }
#ifdef __VERSION_DEBUG__ #ifdef __VERSION_DEBUG__
else if(s_skipToNextLevel) else if(s_skipToNextLevel)
@ -375,6 +370,7 @@ void CGameScene::think(int _frames)
{ {
s_readyToExit=true; s_readyToExit=true;
GameState::setNextScene(&FrontEndScene); GameState::setNextScene(&FrontEndScene);
CFader::setFadingOut();
} }
s_restartLevel=false; s_restartLevel=false;
} }
@ -418,7 +414,7 @@ void CGameScene::think(int _frames)
/*****************************************************************************/ /*****************************************************************************/
int CGameScene::readyToShutdown() int CGameScene::readyToShutdown()
{ {
return s_readyToExit; return s_readyToExit&&!CFader::isFading();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -457,6 +453,14 @@ void CGameScene::sendEvent( GAME_EVENT evt, CThing *sourceThing )
} }
/*****************************************************************************/
void CGameScene::setReadyToExit()
{
s_readyToExit=true;
GameState::setNextScene(&FrontEndScene);
CFader::setFadingOut();
}
/*****************************************************************************/ /*****************************************************************************/
void CGameScene::initLevel() void CGameScene::initLevel()

View file

@ -49,7 +49,7 @@ virtual int canPause();
void respawnLevel(); void respawnLevel();
void sendEvent( GAME_EVENT evt, class CThing *sourceThing ); void sendEvent( GAME_EVENT evt, class CThing *sourceThing );
static void setReadyToExit() {s_readyToExit=true;} static void setReadyToExit();
static void levelFinished() {s_levelFinished=true;} static void levelFinished() {s_levelFinished=true;}
static void restartlevel() {s_restartLevel=true;} static void restartlevel() {s_restartLevel=true;}
CLevel &GetLevel() {return(Level);} CLevel &GetLevel() {return(Level);}

View file

@ -53,9 +53,11 @@
Vars Vars
---- */ ---- */
int CFader::s_fadeValue=0;
CFader::FADE_MODE CFader::s_fadeMode=FADED_IN; CFader::FADE_MODE CFader::s_fadeMode=FADED_IN;
CFader::FADE_STYLE CFader::s_fadeStyle; CFader::FADE_STYLE CFader::s_fadeStyle;
int CFader::s_fadeValue=0;
int CFader::s_waitFrames=0;
/*---------------------------------------------------------------------- /*----------------------------------------------------------------------
Function: Function:
@ -63,84 +65,19 @@ CFader::FADE_STYLE CFader::s_fadeStyle;
Params: Params:
Returns: Returns:
---------------------------------------------------------------------- */ ---------------------------------------------------------------------- */
BubicleEmitterData s_fadeBubicleSpawner=
{
0,0,512,40, // m_x,m_y,m_w,m_h
0,0, // m_birthRate,m_birthAmount
0, // m_life
false, // m_applyMapOffsets
// m_bubicleBase
{
10, // m_life
0,0,0, // m_vx,m_vdx,m_vxmax
-200,0,0, // m_vy,m_vdy,m_vymax
27,18, // m_w,m_h
0, // m_dvSizeChange
0,0, // m_theta,m_vtheta
0,0,0, // m_wobbleWidth,m_vwobbleWidth,m_vdwobbleWidth
0, // m_ot
{0,0,0} // m_colour
},
// m_bubicleRange;
{
10, // m_life
0,0,0, // m_vx,m_vdx,m_vxmax
50,0,0, // m_vy,m_vdy,m_vymax
4,4, // m_w,m_h
0, // m_dvSizeChange
0,100, // m_theta,m_vtheta
10,0,0, // m_wobbleWidth,m_vwobbleWidth,m_vdwobbleWidth
0, // m_ot
{30,30,30} // m_colour
}
};
void CFader::render() void CFader::render()
{ {
switch(s_fadeMode) switch(s_fadeMode)
{ {
case FADED_IN: case FADED_IN:
case PAUSE_BEFORE_FADING_IN:
case PAUSE_BEFORE_FADING_OUT:
return; return;
case FADING_IN: case FADING_IN:
{ {
switch(s_fadeStyle) switch(s_fadeStyle)
{ {
case BUBBLE_FADE:
{
if(s_fadeValue>0)
{
POLY_F4 *f4;
POLY_G4 *g4;
POLY_FT3 *ft3;
f4=GetPrimF4();
setXYWH(f4,0,-FADE_BORDER_SIZE,512,s_fadeValue-(FADE_SMOOTH_BORDER_SIZE/2)+FADE_BORDER_SIZE);
setRGB0(f4,255,255,255);
AddPrimToList(f4,0);
g4=GetPrimG4();
setXYWH(g4,0,s_fadeValue-(FADE_SMOOTH_BORDER_SIZE/2),512,FADE_SMOOTH_BORDER_SIZE);
setRGB0(g4,255,255,255);
setRGB1(g4,255,255,255);
setRGB2(g4,0,0,0);
setRGB3(g4,0,0,0);
setShadeTex(g4,0);
setSemiTrans(g4,1);
AddPrimToList(g4,0);
ft3=GetPrimFT3();
setShadeTex(ft3,1);
setSemiTrans(ft3,1);
ft3->tpage=(1<<5);
setXY3(ft3,512,512,512,512,512,512);
AddPrimToList(ft3,0);
}
break;
}
case BLACK_FADE: case BLACK_FADE:
case WHITE_FADE: case WHITE_FADE:
{ {
@ -156,8 +93,8 @@ void CFader::render()
setPolyFT3(ft3); setPolyFT3(ft3);
setShadeTex(ft3,1); setShadeTex(ft3,1);
setSemiTrans(ft3,1); setSemiTrans(ft3,1);
ft3->tpage=(s_fadeStyle==BLACK_FADE?2:1<<5); ft3->tpage=(s_fadeStyle==BLACK_FADE?2:1)<<5;
setXY3(ft3,512,512,512,512,512,512); setXY3(ft3,0,0,0,512,512,0);
AddPrimToList(ft3,0); AddPrimToList(ft3,0);
break; break;
} }
@ -166,39 +103,10 @@ void CFader::render()
break; break;
case FADING_OUT: case FADING_OUT:
case PAUSE_AFTER_FADING_OUT:
{ {
switch(s_fadeStyle) switch(s_fadeStyle)
{ {
case BUBBLE_FADE:
{
POLY_F4 *f4;
POLY_G4 *g4;
POLY_FT3 *ft3;
f4=GetPrimF4();
setXYWH(f4,0,s_fadeValue+(FADE_SMOOTH_BORDER_SIZE/2),512,256-s_fadeValue-(FADE_SMOOTH_BORDER_SIZE/2));
setRGB0(f4,255,255,255);
AddPrimToList(f4,0);
g4=GetPrimG4();
setXYWH(g4,0,s_fadeValue-(FADE_SMOOTH_BORDER_SIZE/2),512,FADE_SMOOTH_BORDER_SIZE);
setRGB0(g4,0,0,0);
setRGB1(g4,0,0,0);
setRGB2(g4,255,255,255);
setRGB3(g4,255,255,255);
setShadeTex(g4,0);
setSemiTrans(g4,1);
AddPrimToList(g4,0);
ft3=GetPrimFT3();
setShadeTex(ft3,1);
setSemiTrans(ft3,1);
ft3->tpage=(1<<5);
setXY3(ft3,512,512,512,512,512,512);
AddPrimToList(ft3,0);
break;
}
case BLACK_FADE: case BLACK_FADE:
case WHITE_FADE: case WHITE_FADE:
{ {
@ -216,7 +124,7 @@ void CFader::render()
setPolyFT3(ft3); setPolyFT3(ft3);
setShadeTex(ft3,1); setShadeTex(ft3,1);
setSemiTrans(ft3,1); setSemiTrans(ft3,1);
ft3->tpage=(s_fadeStyle==BLACK_FADE?2:1<<5); ft3->tpage=(s_fadeStyle==BLACK_FADE?2:1)<<5;
setXY3(ft3,512,512,512,512,512,512); setXY3(ft3,512,512,512,512,512,512);
AddPrimToList(ft3,0); AddPrimToList(ft3,0);
break; break;
@ -233,9 +141,6 @@ void CFader::render()
setXYWH(f4,0,0,512,256); setXYWH(f4,0,0,512,256);
switch(s_fadeStyle) switch(s_fadeStyle)
{ {
case BUBBLE_FADE:
setRGB0(f4,255,255,255);
break;
case BLACK_FADE: case BLACK_FADE:
setRGB0(f4,0,0,0); setRGB0(f4,0,0,0);
break; break;
@ -247,13 +152,6 @@ void CFader::render()
return; return;
} }
} }
if(s_fadeStyle==BUBBLE_FADE)
{
s_fadeBubicleSpawner.m_y=s_fadeValue-20;
for(int i=0;i<BUBBLES_PER_FRAME;i++)
CBubicleFactory::spawnParticle(&s_fadeBubicleSpawner);
}
} }
@ -265,36 +163,19 @@ void CFader::render()
---------------------------------------------------------------------- */ ---------------------------------------------------------------------- */
void CFader::think(int _frames) void CFader::think(int _frames)
{ {
if(s_fadeMode!=FADED_IN&&s_fadeMode!=FADED_OUT) if(s_waitFrames)
{ {
s_waitFrames--;
return;
}
switch(s_fadeMode)
{
case FADING_IN:
case FADING_OUT:
s_fadeValue-=_frames*FADE_SPEED; s_fadeValue-=_frames*FADE_SPEED;
switch(s_fadeStyle) switch(s_fadeStyle)
{ {
case BUBBLE_FADE:
{
if(s_fadeValue<-FADE_BORDER_SIZE)
{
if(s_fadeMode==FADING_OUT)
{
s_fadeMode=FADED_OUT;
CSoundMediator::setVolume(CSoundMediator::VOL_FADE,0);
}
else
{
s_fadeMode=FADED_IN;
CSoundMediator::setVolume(CSoundMediator::VOL_FADE,255);
}
}
else
{
if(s_fadeValue>=0&&s_fadeValue<=255)
{
CSoundMediator::setVolume(CSoundMediator::VOL_FADE,s_fadeMode==FADING_OUT?s_fadeValue:255-s_fadeValue);
}
}
break;
}
case BLACK_FADE: case BLACK_FADE:
case WHITE_FADE: case WHITE_FADE:
{ {
@ -305,6 +186,7 @@ void CFader::think(int _frames)
{ {
s_fadeMode=FADED_OUT; s_fadeMode=FADED_OUT;
CSoundMediator::setVolume(CSoundMediator::VOL_FADE,0); CSoundMediator::setVolume(CSoundMediator::VOL_FADE,0);
s_waitFrames=FRAMES_TO_WAIT;
} }
else else
{ {
@ -319,6 +201,31 @@ void CFader::think(int _frames)
break; break;
} }
} }
break;
case PAUSE_BEFORE_FADING_IN:
if(--s_waitFrames==0)
{
s_fadeMode==FADING_IN;
}
break;
case PAUSE_BEFORE_FADING_OUT:
if(--s_waitFrames==0)
{
s_fadeMode==FADING_OUT;
}
break;
case PAUSE_AFTER_FADING_OUT:
if(--s_waitFrames==0)
{
s_fadeMode==FADED_OUT;
}
break;
default:
break;
} }
} }
@ -333,9 +240,6 @@ void CFader::setFadingOut(FADE_STYLE _style)
{ {
switch(_style) switch(_style)
{ {
case BUBBLE_FADE:
s_fadeValue=256+FADE_BORDER_SIZE;
break;
case BLACK_FADE: case BLACK_FADE:
case WHITE_FADE: case WHITE_FADE:
s_fadeValue=255; s_fadeValue=255;
@ -344,6 +248,7 @@ void CFader::setFadingOut(FADE_STYLE _style)
s_fadeMode=FADING_OUT; s_fadeMode=FADING_OUT;
s_fadeStyle=_style; s_fadeStyle=_style;
s_waitFrames=FRAMES_TO_WAIT;
} }
@ -357,9 +262,6 @@ void CFader::setFadingIn(FADE_STYLE _style)
{ {
switch(_style) switch(_style)
{ {
case BUBBLE_FADE:
s_fadeValue=256+FADE_BORDER_SIZE;
break;
case BLACK_FADE: case BLACK_FADE:
case WHITE_FADE: case WHITE_FADE:
s_fadeValue=255; s_fadeValue=255;
@ -367,6 +269,7 @@ void CFader::setFadingIn(FADE_STYLE _style)
} }
s_fadeMode=FADING_IN; s_fadeMode=FADING_IN;
s_fadeStyle=_style; s_fadeStyle=_style;
s_waitFrames=FRAMES_TO_WAIT;
} }

View file

@ -34,7 +34,6 @@ class CFader
public: public:
typedef enum typedef enum
{ {
BUBBLE_FADE,
BLACK_FADE, BLACK_FADE,
WHITE_FADE, WHITE_FADE,
} FADE_STYLE; } FADE_STYLE;
@ -42,8 +41,8 @@ public:
static void render(); static void render();
static void think(int _frames); static void think(int _frames);
static void setFadingOut(FADE_STYLE _style=BUBBLE_FADE); static void setFadingOut(FADE_STYLE _style=BLACK_FADE);
static void setFadingIn(FADE_STYLE _style=BUBBLE_FADE); static void setFadingIn(FADE_STYLE _style=BLACK_FADE);
static int isFading(); static int isFading();
@ -51,26 +50,25 @@ public:
private: private:
enum enum
{ {
// Bubble style FRAMES_TO_WAIT=5, // Waits before fading in/out and after fading out
FADE_BORDER_SIZE=80, FADE_SPEED=10,
FADE_SMOOTH_BORDER_SIZE=60,
BUBBLES_PER_FRAME=15,
// Both styles
FADE_SPEED=3,
}; };
typedef enum typedef enum
{ {
FADED_IN, FADED_IN,
PAUSE_BEFORE_FADING_IN,
FADING_IN, FADING_IN,
PAUSE_BEFORE_FADING_OUT,
FADING_OUT, FADING_OUT,
PAUSE_AFTER_FADING_OUT,
FADED_OUT, FADED_OUT,
} FADE_MODE; } FADE_MODE;
static FADE_MODE s_fadeMode; static FADE_MODE s_fadeMode;
static FADE_STYLE s_fadeStyle; static FADE_STYLE s_fadeStyle;
static int s_fadeValue; static int s_fadeValue;
static int s_waitFrames;
}; };

View file

@ -207,7 +207,7 @@ void CMapScene::init()
SetScreenImage((u8*)m_screenImage); SetScreenImage((u8*)m_screenImage);
m_readyToExit=false; m_readyToExit=false;
CFader::setFadingIn(CFader::BLACK_FADE); CFader::setFadingIn();
} }
@ -438,7 +438,7 @@ void CMapScene::think(int _frames)
CSoundMediator::playSfx(CSoundMediator::SFX_FRONT_END__OK); CSoundMediator::playSfx(CSoundMediator::SFX_FRONT_END__OK);
s_globalLevelSelectThing=s_mapLevelData[m_currentChapterSelection][m_currentLevelSelection].m_globalLevelNumber; s_globalLevelSelectThing=s_mapLevelData[m_currentChapterSelection][m_currentLevelSelection].m_globalLevelNumber;
m_readyToExit=true; m_readyToExit=true;
// CFader::setFadingOut(CFader::BLACK_FADE); CFader::setFadingOut();
GameState::setNextScene(&GameScene); GameState::setNextScene(&GameScene);
} }
} }

View file

@ -199,7 +199,7 @@ void CShopScene::init()
m_readyToExit=false; m_readyToExit=false;
CFader::setFadingIn(CFader::BLACK_FADE); CFader::setFadingIn();
m_currentlySelectedItem=0; m_currentlySelectedItem=0;
m_flashSin=0; m_flashSin=0;