reset the demonstration timer when a key is pressed

This commit is contained in:
Glenn Maynard
2003-01-07 01:37:21 +00:00
parent 1c976dc338
commit f61196ffb8
2 changed files with 72 additions and 57 deletions
+60 -49
View File
@@ -65,8 +65,7 @@ const CString CHOICE_TEXT[ScreenTitleMenu::NUM_TITLE_MENU_CHOICES] = {
const ScreenMessage SM_PlayAttract = ScreenMessage(SM_User+1); const ScreenMessage SM_PlayAttract = ScreenMessage(SM_User+1);
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User+12); const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User+12);
const ScreenMessage SM_FadeToDemonstration = ScreenMessage(SM_User+13); const ScreenMessage SM_GoToDemonstration = ScreenMessage(SM_User+13);
const ScreenMessage SM_GoToDemonstration = ScreenMessage(SM_User+14);
ScreenTitleMenu::ScreenTitleMenu() ScreenTitleMenu::ScreenTitleMenu()
@@ -174,7 +173,6 @@ ScreenTitleMenu::ScreenTitleMenu()
SOUNDMAN->PlayMusic( THEME->GetPathTo("Sounds","title menu music") ); SOUNDMAN->PlayMusic( THEME->GetPathTo("Sounds","title menu music") );
this->SendScreenMessage( SM_PlayAttract, SECONDS_BETWEEN_ATTRACT ); 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() ) if( m_Fade.IsClosing() )
return; 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) if(DeviceI.device == DEVICE_KEYBOARD && DeviceI.button == SDLK_F1 && type == IET_FIRST_PRESS)
{ {
this->SendScreenMessage( SM_FadeToDemonstration, 0 ); FadeToDemonstration();
return; return;
} }
Screen::Input( DeviceI, type, GameI, MenuI, StyleI ); 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: FadeToDemonstration();
m_soundAttract.PlayRandom(); TimeToDemonstration.GetDeltaTime();
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; Screen::Update(fDelta);
case SM_FadeToDemonstration: }
{
void ScreenTitleMenu::FadeToDemonstration()
{
// Set up the game state for a demonstration // Set up the game state for a demonstration
switch( GAMESTATE->m_CurGame ) switch( GAMESTATE->m_CurGame )
{ {
@@ -296,6 +261,52 @@ void ScreenTitleMenu::HandleScreenMessage( const ScreenMessage SM )
GAMESTATE->m_bDemonstration = true; GAMESTATE->m_bDemonstration = true;
m_Fade.CloseWipingRight( SM_GoToDemonstration ); 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; break;
case SM_GoToDemonstration: case SM_GoToDemonstration:
+5 -1
View File
@@ -15,7 +15,7 @@
#include "TransitionFade.h" #include "TransitionFade.h"
#include "RandomSample.h" #include "RandomSample.h"
#include "BGAnimation.h" #include "BGAnimation.h"
#include "RageTimer.h"
class ScreenTitleMenu : public Screen class ScreenTitleMenu : public Screen
@@ -25,6 +25,7 @@ public:
virtual ~ScreenTitleMenu(); virtual ~ScreenTitleMenu();
virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ); 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 ); virtual void HandleScreenMessage( const ScreenMessage SM );
enum TitleMenuChoice { enum TitleMenuChoice {
@@ -50,6 +51,7 @@ private:
void MenuDown( PlayerNumber pn ); void MenuDown( PlayerNumber pn );
void MenuBack( PlayerNumber pn ); void MenuBack( PlayerNumber pn );
void MenuStart( PlayerNumber pn ); void MenuStart( PlayerNumber pn );
void FadeToDemonstration();
TitleMenuChoice m_TitleMenuChoice; TitleMenuChoice m_TitleMenuChoice;
@@ -66,6 +68,8 @@ private:
RandomSample m_soundChange; RandomSample m_soundChange;
RandomSample m_soundSelect; RandomSample m_soundSelect;
RandomSample m_soundInvalid; RandomSample m_soundInvalid;
RageTimer TimeToDemonstration;
}; };