diff --git a/Graphics/levels/Chapter01/Level04/Level04.MEX b/Graphics/levels/Chapter01/Level04/Level04.MEX index 40eafcacb..20533fbfc 100644 Binary files a/Graphics/levels/Chapter01/Level04/Level04.MEX and b/Graphics/levels/Chapter01/Level04/Level04.MEX differ diff --git a/Graphics/levels/Chapter01/Level04/level04.Mep b/Graphics/levels/Chapter01/Level04/level04.Mep index 2bc4cfe74..e135e1b29 100644 Binary files a/Graphics/levels/Chapter01/Level04/level04.Mep and b/Graphics/levels/Chapter01/Level04/level04.Mep differ diff --git a/Graphics/levels/Chapter02/Level04/Level04.MEX b/Graphics/levels/Chapter02/Level04/Level04.MEX index 0db45e747..67b7c4219 100644 Binary files a/Graphics/levels/Chapter02/Level04/Level04.MEX and b/Graphics/levels/Chapter02/Level04/Level04.MEX differ diff --git a/Graphics/levels/Chapter02/Level04/level04.Mep b/Graphics/levels/Chapter02/Level04/level04.Mep index 794074972..dc7424318 100644 Binary files a/Graphics/levels/Chapter02/Level04/level04.Mep and b/Graphics/levels/Chapter02/Level04/level04.Mep differ diff --git a/source/game/bosstext.cpp b/source/game/bosstext.cpp index 71f1bab49..15eddb74a 100644 --- a/source/game/bosstext.cpp +++ b/source/game/bosstext.cpp @@ -140,7 +140,6 @@ void CBossText::select() CSoundMediator::stopSong(); CSoundMediator::setSong(s_bossData[GameScene.GetLevel().getCurrentChapter()-1].m_songId); - CFader::setFadingIn(); } /*---------------------------------------------------------------------- diff --git a/source/game/game.cpp b/source/game/game.cpp index 9f2b08166..7ea190510 100644 --- a/source/game/game.cpp +++ b/source/game/game.cpp @@ -262,6 +262,7 @@ void CGameScene::render() switch(m_gamestate) { case GAMESTATE_SHOWING_LIVES: + case GAMESTATE_SHOWING_LIVES_BUT_GOING_TO_BOSS_TEXT: render_showing_lives(); break; case GAMESTATE_PLAYING: @@ -327,7 +328,14 @@ void CGameScene::render_showing_lives() setXY3(ft3,512,512,512,512,512,512); AddPrimToList(ft3,0); - render_playing(); + if(m_gamestate==GAMESTATE_SHOWING_LIVES_BUT_GOING_TO_BOSS_TEXT) + { + m_bossText->render(); + } + else + { + render_playing(); + } } /*****************************************************************************/ @@ -388,6 +396,9 @@ void CGameScene::think(int _frames) case GAMESTATE_SHOWING_LIVES: think_showing_lives(_frames); break; + case GAMESTATE_SHOWING_LIVES_BUT_GOING_TO_BOSS_TEXT: + think_showing_lives(_frames); + break; case GAMESTATE_PLAYING: think_playing(_frames); break; @@ -445,13 +456,16 @@ void CGameScene::think(int _frames) /*****************************************************************************/ void CGameScene::think_showing_lives(int _frames) { - if(m_showingLivesTimer==0) + if(m_gamestate!=GAMESTATE_SHOWING_LIVES_BUT_GOING_TO_BOSS_TEXT) { - think_playing(0); - } - else if((m_showingLivesTimer-TIME_TO_DISPLAY_LIVES_COUNT)*SPEED_OF_FADE>128) - { - think_playing(_frames); + if(m_showingLivesTimer==0) + { + think_playing(0); + } + else if((m_showingLivesTimer-TIME_TO_DISPLAY_LIVES_COUNT)*SPEED_OF_FADE>128) + { + think_playing(_frames); + } } if(PadGetDown(0)&PAD_CROSS&&m_showingLivesTimer255) { - m_gamestate=GAMESTATE_PLAYING; + if(m_gamestate!=GAMESTATE_SHOWING_LIVES_BUT_GOING_TO_BOSS_TEXT) + { + m_gamestate=GAMESTATE_PLAYING; + } + else + { + m_gamestate=GAMESTATE_BOSS_INTRO; + } } } @@ -480,11 +501,20 @@ void CGameScene::think_playing(int _frames) return; } - if(s_justHitBossArenaTrigger&&m_gamestate==GAMESTATE_PLAYING) + if(s_justHitBossArenaTrigger) { - m_gamestate=GAMESTATE_FADING_INTO_BOSS_INTRO; - CFader::setFadingOut(); - s_justHitBossArenaTrigger=false; + if(m_gamestate==GAMESTATE_SHOWING_LIVES) + { + m_bossText->select(); + m_gamestate=GAMESTATE_SHOWING_LIVES_BUT_GOING_TO_BOSS_TEXT; + s_justHitBossArenaTrigger=false; + } + else if(m_gamestate==GAMESTATE_PLAYING) + { + m_gamestate=GAMESTATE_FADING_INTO_BOSS_INTRO; + CFader::setFadingOut(); + s_justHitBossArenaTrigger=false; + } } diff --git a/source/game/game.h b/source/game/game.h index cca24ba56..dde455ae4 100644 --- a/source/game/game.h +++ b/source/game/game.h @@ -79,6 +79,7 @@ private: typedef enum { GAMESTATE_SHOWING_LIVES, + GAMESTATE_SHOWING_LIVES_BUT_GOING_TO_BOSS_TEXT, GAMESTATE_PLAYING, GAMESTATE_FADING_INTO_BOSS_INTRO, GAMESTATE_BOSS_INTRO,