reset the demonstration timer when a key is pressed
This commit is contained in:
@@ -65,8 +65,7 @@ const CString CHOICE_TEXT[ScreenTitleMenu::NUM_TITLE_MENU_CHOICES] = {
|
||||
|
||||
const ScreenMessage SM_PlayAttract = ScreenMessage(SM_User+1);
|
||||
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User+12);
|
||||
const ScreenMessage SM_FadeToDemonstration = ScreenMessage(SM_User+13);
|
||||
const ScreenMessage SM_GoToDemonstration = ScreenMessage(SM_User+14);
|
||||
const ScreenMessage SM_GoToDemonstration = ScreenMessage(SM_User+13);
|
||||
|
||||
|
||||
ScreenTitleMenu::ScreenTitleMenu()
|
||||
@@ -174,7 +173,6 @@ ScreenTitleMenu::ScreenTitleMenu()
|
||||
SOUNDMAN->PlayMusic( THEME->GetPathTo("Sounds","title menu music") );
|
||||
|
||||
this->SendScreenMessage( SM_PlayAttract, SECONDS_BETWEEN_ATTRACT );
|
||||
this->SendScreenMessage( SM_FadeToDemonstration, SECONDS_BEFORE_DEMONSTRATION );
|
||||
}
|
||||
|
||||
|
||||
@@ -191,63 +189,30 @@ void ScreenTitleMenu::Input( const DeviceInput& DeviceI, const InputEventType ty
|
||||
if( m_Fade.IsClosing() )
|
||||
return;
|
||||
|
||||
/* Reset the demonstration timer when a key is pressed. */
|
||||
TimeToDemonstration.GetDeltaTime();
|
||||
|
||||
if(DeviceI.device == DEVICE_KEYBOARD && DeviceI.button == SDLK_F1 && type == IET_FIRST_PRESS)
|
||||
{
|
||||
this->SendScreenMessage( SM_FadeToDemonstration, 0 );
|
||||
FadeToDemonstration();
|
||||
return;
|
||||
}
|
||||
|
||||
Screen::Input( DeviceI, type, GameI, MenuI, StyleI );
|
||||
}
|
||||
|
||||
void ScreenTitleMenu::HandleScreenMessage( const ScreenMessage SM )
|
||||
void ScreenTitleMenu::Update( float fDelta )
|
||||
{
|
||||
switch( SM )
|
||||
if(TimeToDemonstration.PeekDeltaTime() >= SECONDS_BEFORE_DEMONSTRATION)
|
||||
{
|
||||
case SM_PlayAttract:
|
||||
m_soundAttract.PlayRandom();
|
||||
this->SendScreenMessage( SM_PlayAttract, SECONDS_BETWEEN_ATTRACT );
|
||||
break;
|
||||
case SM_GoToNextScreen:
|
||||
switch( m_TitleMenuChoice )
|
||||
{
|
||||
case CHOICE_GAME_START:
|
||||
SCREENMAN->SetNewScreen( NEXT_SCREEN );
|
||||
break;
|
||||
case CHOICE_SELECT_GAME:
|
||||
SCREENMAN->SetNewScreen( "ScreenSelectGame" );
|
||||
break;
|
||||
case CHOICE_MAP_INSTRUMENTS:
|
||||
SCREENMAN->SetNewScreen( "ScreenMapControllers" );
|
||||
break;
|
||||
case CHOICE_INPUT_OPTIONS:
|
||||
SCREENMAN->SetNewScreen( "ScreenInputOptions" );
|
||||
break;
|
||||
case CHOICE_MACHINE_OPTIONS:
|
||||
SCREENMAN->SetNewScreen( "ScreenMachineOptions" );
|
||||
break;
|
||||
case CHOICE_GRAPHIC_OPTIONS:
|
||||
SCREENMAN->SetNewScreen( "ScreenGraphicOptions" );
|
||||
break;
|
||||
case CHOICE_APPEARANCE_OPTIONS:
|
||||
SCREENMAN->SetNewScreen( "ScreenAppearanceOptions" );
|
||||
break;
|
||||
#ifdef _DEBUG
|
||||
case CHOICE_SANDBOX:
|
||||
SCREENMAN->SetNewScreen( "ScreenSandbox" );
|
||||
break;
|
||||
#endif
|
||||
case CHOICE_EDIT:
|
||||
SCREENMAN->SetNewScreen( "ScreenEditMenu" );
|
||||
break;
|
||||
case CHOICE_EXIT:
|
||||
default:
|
||||
RAGE_ASSERT_M(0, "CHOICE_EXIT reached?"); // should never get here
|
||||
break;
|
||||
FadeToDemonstration();
|
||||
TimeToDemonstration.GetDeltaTime();
|
||||
}
|
||||
break;
|
||||
case SM_FadeToDemonstration:
|
||||
{
|
||||
Screen::Update(fDelta);
|
||||
}
|
||||
|
||||
void ScreenTitleMenu::FadeToDemonstration()
|
||||
{
|
||||
// Set up the game state for a demonstration
|
||||
switch( GAMESTATE->m_CurGame )
|
||||
{
|
||||
@@ -296,6 +261,52 @@ void ScreenTitleMenu::HandleScreenMessage( const ScreenMessage SM )
|
||||
|
||||
GAMESTATE->m_bDemonstration = true;
|
||||
m_Fade.CloseWipingRight( SM_GoToDemonstration );
|
||||
}
|
||||
|
||||
void ScreenTitleMenu::HandleScreenMessage( const ScreenMessage SM )
|
||||
{
|
||||
switch( SM )
|
||||
{
|
||||
case SM_PlayAttract:
|
||||
m_soundAttract.PlayRandom();
|
||||
this->SendScreenMessage( SM_PlayAttract, SECONDS_BETWEEN_ATTRACT );
|
||||
break;
|
||||
case SM_GoToNextScreen:
|
||||
switch( m_TitleMenuChoice )
|
||||
{
|
||||
case CHOICE_GAME_START:
|
||||
SCREENMAN->SetNewScreen( NEXT_SCREEN );
|
||||
break;
|
||||
case CHOICE_SELECT_GAME:
|
||||
SCREENMAN->SetNewScreen( "ScreenSelectGame" );
|
||||
break;
|
||||
case CHOICE_MAP_INSTRUMENTS:
|
||||
SCREENMAN->SetNewScreen( "ScreenMapControllers" );
|
||||
break;
|
||||
case CHOICE_INPUT_OPTIONS:
|
||||
SCREENMAN->SetNewScreen( "ScreenInputOptions" );
|
||||
break;
|
||||
case CHOICE_MACHINE_OPTIONS:
|
||||
SCREENMAN->SetNewScreen( "ScreenMachineOptions" );
|
||||
break;
|
||||
case CHOICE_GRAPHIC_OPTIONS:
|
||||
SCREENMAN->SetNewScreen( "ScreenGraphicOptions" );
|
||||
break;
|
||||
case CHOICE_APPEARANCE_OPTIONS:
|
||||
SCREENMAN->SetNewScreen( "ScreenAppearanceOptions" );
|
||||
break;
|
||||
#ifdef _DEBUG
|
||||
case CHOICE_SANDBOX:
|
||||
SCREENMAN->SetNewScreen( "ScreenSandbox" );
|
||||
break;
|
||||
#endif
|
||||
case CHOICE_EDIT:
|
||||
SCREENMAN->SetNewScreen( "ScreenEditMenu" );
|
||||
break;
|
||||
case CHOICE_EXIT:
|
||||
default:
|
||||
RAGE_ASSERT_M(0, "CHOICE_EXIT reached?"); // should never get here
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case SM_GoToDemonstration:
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
#include "TransitionFade.h"
|
||||
#include "RandomSample.h"
|
||||
#include "BGAnimation.h"
|
||||
|
||||
#include "RageTimer.h"
|
||||
|
||||
|
||||
class ScreenTitleMenu : public Screen
|
||||
@@ -25,6 +25,7 @@ public:
|
||||
virtual ~ScreenTitleMenu();
|
||||
|
||||
virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI );
|
||||
virtual void Update( float fDelta );
|
||||
virtual void HandleScreenMessage( const ScreenMessage SM );
|
||||
|
||||
enum TitleMenuChoice {
|
||||
@@ -50,6 +51,7 @@ private:
|
||||
void MenuDown( PlayerNumber pn );
|
||||
void MenuBack( PlayerNumber pn );
|
||||
void MenuStart( PlayerNumber pn );
|
||||
void FadeToDemonstration();
|
||||
|
||||
TitleMenuChoice m_TitleMenuChoice;
|
||||
|
||||
@@ -66,6 +68,8 @@ private:
|
||||
RandomSample m_soundChange;
|
||||
RandomSample m_soundSelect;
|
||||
RandomSample m_soundInvalid;
|
||||
|
||||
RageTimer TimeToDemonstration;
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user