move MenuElements into a base ScreenWithMenuElements so that metrics can be overridden using the Fallback mechanism

This commit is contained in:
Chris Danford
2004-05-01 23:19:33 +00:00
parent 1d2d1927a6
commit df5cd5e813
57 changed files with 262 additions and 493 deletions
+24 -24
View File
@@ -39,6 +39,7 @@ CurrentModeZoom=1
# Note that we don't use the "name" parameter to Choices here. Name1 is # Note that we don't use the "name" parameter to Choices here. Name1 is
# the displayed text, which might be translated or otherwise changed. The "name,foo" # the displayed text, which might be translated or otherwise changed. The "name,foo"
# parameter to ModeChoices is an asset name, which is used in filenames. # parameter to ModeChoices is an asset name, which is used in filenames.
Fallback=ScreenWithMenuElements
ChoiceNames=1,2,3,4,5,6,7 ChoiceNames=1,2,3,4,5,6,7
//,8 //,8
Choice1=screen,ScreenCaution Choice1=screen,ScreenCaution
@@ -104,6 +105,7 @@ BounceJoinMessage=1
FoldOnJoin=1 FoldOnJoin=1
[ScreenSelectStyle] [ScreenSelectStyle]
Fallback=ScreenWithMenuElements
ChoiceNames=1,2,3,4,5 ChoiceNames=1,2,3,4,5
# The "name" here affects the announcer, eg. "ScreenSelectStyle comment single". # The "name" here affects the announcer, eg. "ScreenSelectStyle comment single".
Choice1=Style,single;name,single Choice1=Style,single;name,single
@@ -264,6 +266,7 @@ MemoryCardIcons=0
TimerSeconds=0 TimerSeconds=0
[ScreenSelectDifficulty] [ScreenSelectDifficulty]
Fallback=ScreenWithMenuElements
ChoiceNames=1,2,3,4,5,6,7,8 ChoiceNames=1,2,3,4,5,6,7,8
Choice1=PlayMode,arcade;Difficulty,beginner;name,beginner Choice1=PlayMode,arcade;Difficulty,beginner;name,beginner
Choice2=PlayMode,arcade;Difficulty,easy;name,easy Choice2=PlayMode,arcade;Difficulty,easy;name,easy
@@ -501,6 +504,7 @@ StyleIcon=1
MemoryCardIcons=1 MemoryCardIcons=1
[ScreenSelectGroup] [ScreenSelectGroup]
Fallback=ScreenWithMenuElements
FrameX=180 FrameX=180
FrameY=160 FrameY=160
FrameOnCommand=addx,-400;bounceend,0.5;addx,400 FrameOnCommand=addx,-400;bounceend,0.5;addx,400
@@ -562,12 +566,14 @@ CropWidth=146
InitCommand=horizalign,left;vertalign,top;shadowlength,2;zoom,0.5; InitCommand=horizalign,left;vertalign,top;shadowlength,2;zoom,0.5;
[ScreenInstructions] [ScreenInstructions]
Fallback=ScreenWithMenuElements
NextScreen=ScreenSelectCharacter NextScreen=ScreenSelectCharacter
TimerSeconds=15 TimerSeconds=15
StyleIcon=1 StyleIcon=1
MemoryCardIcons=1 MemoryCardIcons=1
[ScreenSelectMusic] [ScreenSelectMusic]
Fallback=ScreenWithMenuElements
NonPresenceP1X=-128 NonPresenceP1X=-128
NonPresenceP1Y=240 NonPresenceP1Y=240
NonPresenceP1OnCommand=x,-128;sleep,0.5;linear,1.0;x,32;sleep,999; NonPresenceP1OnCommand=x,-128;sleep,0.5;linear,1.0;x,32;sleep,999;
@@ -2779,34 +2785,34 @@ FeetPerDifficulty=0
StopMusicOnNext=0 StopMusicOnNext=0
KeepAliveType=0 // 0 for MAX, 1 for 5th KeepAliveType=0 // 0 for MAX, 1 for 5th
[MenuElements] [ScreenWithMenuElements]
HeaderX=320 HeaderX=320
HeaderY=22 HeaderY=22
HeaderOnCommand=addx,640;spring,0.5;addx,-640 HeaderOnCommand=z,-1000;addx,640;spring,0.5;addx,-640
HeaderOffCommand=bouncebegin,0.5;addx,640; HeaderOffCommand=bouncebegin,0.5;addx,640;
FooterX=320 FooterX=320
FooterY=464 FooterY=464
FooterOnCommand= FooterOnCommand=z,-1000;
FooterOffCommand= FooterOffCommand=
HelpX=320 HelpX=320
HelpY=456 HelpY=456
HelpOnCommand=zoom,0.5;zoomy,0;linear,0.5;zoomy,0.5 HelpOnCommand=z,-1000;zoom,0.5;zoomy,0;linear,0.5;zoomy,0.5
HelpOffCommand=linear,0.5;zoomy,0 HelpOffCommand=linear,0.5;zoomy,0
StyleIconX=440 StyleIconX=440
StyleIconY=26 StyleIconY=26
StyleIconOnCommand=addx,640;spring,0.5;addx,-640 StyleIconOnCommand=z,-1000;addx,640;spring,0.5;addx,-640
StyleIconOffCommand=bouncebegin,0.5;addx,640; StyleIconOffCommand=bouncebegin,0.5;addx,640;
MemoryCardDisplayP1X=460 MemoryCardDisplayP1X=460
MemoryCardDisplayP1Y=20 MemoryCardDisplayP1Y=20
MemoryCardDisplayP1OnCommand=addx,640;spring,0.5;addx,-640 MemoryCardDisplayP1OnCommand=z,-1000;addx,640;spring,0.5;addx,-640
MemoryCardDisplayP1OffCommand=bouncebegin,0.5;addx,640; MemoryCardDisplayP1OffCommand=bouncebegin,0.5;addx,640;
MemoryCardDisplayP2X=480 MemoryCardDisplayP2X=480
MemoryCardDisplayP2Y=20 MemoryCardDisplayP2Y=20
MemoryCardDisplayP2OnCommand=addx,640;spring,0.5;addx,-640 MemoryCardDisplayP2OnCommand=z,-1000;addx,640;spring,0.5;addx,-640
MemoryCardDisplayP2OffCommand=bouncebegin,0.5;addx,640; MemoryCardDisplayP2OffCommand=bouncebegin,0.5;addx,640;
TimerX=590 TimerX=590
TimerY=22 TimerY=22
TimerOnCommand=addx,640;spring,0.5;addx,-640 TimerOnCommand=z,-1000;addx,640;spring,0.5;addx,-640
TimerOffCommand=bouncebegin,0.5;addx,640; TimerOffCommand=bouncebegin,0.5;addx,640;
[MenuTimer] [MenuTimer]
@@ -2884,34 +2890,23 @@ MoreExitUnselectedP1Command=
MoreExitUnselectedP2Command= MoreExitUnselectedP2Command=
[ScreenMapControllers] [ScreenMapControllers]
Fallback=ScreenOperatorMenu
EvenLineIn=addx,-640;decelerate,0.5;addx,640; EvenLineIn=addx,-640;decelerate,0.5;addx,640;
OddLineIn=addx,640;decelerate,0.5;addx,-640; OddLineIn=addx,640;decelerate,0.5;addx,-640;
EvenLineOut=stoptweening;accelerate,0.3;addx,-640; EvenLineOut=stoptweening;accelerate,0.3;addx,-640;
OddLineOut=stoptweening;accelerate,0.3;addx,640; OddLineOut=stoptweening;accelerate,0.3;addx,640;
StyleIcon=0
MemoryCardIcons=0
TimerSeconds=0
[ScreenCenterImage] [ScreenCenterImage]
StyleIcon=0 Fallback=ScreenOperatorMenu
MemoryCardIcons=0
TimerSeconds=0
[ScreenTestInput] [ScreenTestInput]
StyleIcon=0 Fallback=ScreenOperatorMenu
MemoryCardIcons=0
TimerSeconds=0
[ScreenTestLights] [ScreenTestLights]
StyleIcon=0 Fallback=ScreenOperatorMenu
MemoryCardIcons=0
TimerSeconds=0
Fallback=ScreenTestInput
[ScreenBookkeeping] [ScreenBookkeeping]
StyleIcon=0 Fallback=ScreenOperatorMenu
MemoryCardIcons=0
TimerSeconds=0
[HoldGhostArrow] [HoldGhostArrow]
WarmUpSeconds=0.25 WarmUpSeconds=0.25
@@ -3237,6 +3232,10 @@ MemoryCardIcons=1
[ScreenOptionsSubmenu] [ScreenOptionsSubmenu]
Class=ScreenOptionsMaster Class=ScreenOptionsMaster
Fallback=ScreenOperatorMenu
[ScreenOperatorMenu]
Fallback=ScreenWithMenuElements
StyleIcon=0 StyleIcon=0
MemoryCardIcons=0 MemoryCardIcons=0
TimerSeconds=0 TimerSeconds=0
@@ -3980,6 +3979,7 @@ NextScreen=ScreenRanking
NextScreen=ScreenCompany NextScreen=ScreenCompany
[ScreenSelectCharacter] [ScreenSelectCharacter]
Fallback=ScreenWithMenuElements
TitleP1OnCommand=x,140;y,80;addx,-400;bounceend,0.5;addx,400 TitleP1OnCommand=x,140;y,80;addx,-400;bounceend,0.5;addx,400
TitleP1OffCommand=sleep,0.2;bouncebegin,0.5;addx,-400 TitleP1OffCommand=sleep,0.2;bouncebegin,0.5;addx,-400
TitleP2OnCommand=x,500;y,80;addx,400;bounceend,0.5;addx,-400 TitleP2OnCommand=x,500;y,80;addx,400;bounceend,0.5;addx,-400
+3 -10
View File
@@ -28,7 +28,7 @@
#define NEXT_SCREEN THEME->GetMetric (m_sName,"NextScreen") #define NEXT_SCREEN THEME->GetMetric (m_sName,"NextScreen")
ScreenAward::ScreenAward( CString sName ) : Screen( sName ) ScreenAward::ScreenAward( CString sName ) : ScreenWithMenuElements( sName )
{ {
bool bEitherPlayerHasAward = false; bool bEitherPlayerHasAward = false;
ZERO( m_bSavedScreenshot ); ZERO( m_bSavedScreenshot );
@@ -85,26 +85,19 @@ ScreenAward::ScreenAward( CString sName ) : Screen( sName )
return; return;
} }
m_Menu.Load( m_sName );
this->AddChild( &m_Menu );
SOUND->PlayMusic( THEME->GetPathToS( m_sName + " music") ); SOUND->PlayMusic( THEME->GetPathToS( m_sName + " music") );
} }
void ScreenAward::DrawPrimitives() void ScreenAward::DrawPrimitives()
{ {
m_Menu.DrawBottomLayer();
Screen::DrawPrimitives(); Screen::DrawPrimitives();
m_Menu.DrawTopLayer();
} }
void ScreenAward::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ) void ScreenAward::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI )
{ {
// LOG->Trace( "ScreenAward::Input()" ); // LOG->Trace( "ScreenAward::Input()" );
if( m_Menu.IsTransitioning() ) if( IsTransitioning() )
return; return;
@@ -183,5 +176,5 @@ void ScreenAward::MenuStart( PlayerNumber pn )
OFF_COMMAND( m_textDescription[p] ); OFF_COMMAND( m_textDescription[p] );
} }
m_Menu.StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
} }
+2 -5
View File
@@ -9,13 +9,12 @@
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
*/ */
#include "Screen.h" #include "ScreenWithMenuElements.h"
#include "MenuElements.h"
#include "BitmapText.h" #include "BitmapText.h"
#include "ActorUtil.h" #include "ActorUtil.h"
class ScreenAward : public Screen class ScreenAward : public ScreenWithMenuElements
{ {
public: public:
ScreenAward( CString sName ); ScreenAward( CString sName );
@@ -32,8 +31,6 @@ private:
AutoActor m_Received[NUM_PLAYERS]; AutoActor m_Received[NUM_PLAYERS];
AutoActor m_Trophy[NUM_PLAYERS]; AutoActor m_Trophy[NUM_PLAYERS];
BitmapText m_textDescription[NUM_PLAYERS]; BitmapText m_textDescription[NUM_PLAYERS];
MenuElements m_Menu;
}; };
+5 -10
View File
@@ -25,7 +25,7 @@
#include "Bookkeeper.h" #include "Bookkeeper.h"
ScreenBookkeeping::ScreenBookkeeping( CString sClassName ) : Screen( sClassName ) ScreenBookkeeping::ScreenBookkeeping( CString sClassName ) : ScreenWithMenuElements( sClassName )
{ {
LOG->Trace( "ScreenBookkeeping::ScreenBookkeeping()" ); LOG->Trace( "ScreenBookkeeping::ScreenBookkeeping()" );
@@ -48,9 +48,6 @@ ScreenBookkeeping::ScreenBookkeeping( CString sClassName ) : Screen( sClassName
this->AddChild( &m_textCols[i] ); this->AddChild( &m_textCols[i] );
} }
m_Menu.Load( "ScreenBookkeeping" );
this->AddChild( &m_Menu );
ChangeView( (View)0 ); ChangeView( (View)0 );
SOUND->PlayMusic( THEME->GetPathToS("ScreenBookkeeping music") ); SOUND->PlayMusic( THEME->GetPathToS("ScreenBookkeeping music") );
@@ -63,9 +60,7 @@ ScreenBookkeeping::~ScreenBookkeeping()
void ScreenBookkeeping::DrawPrimitives() void ScreenBookkeeping::DrawPrimitives()
{ {
m_Menu.DrawBottomLayer();
Screen::DrawPrimitives(); Screen::DrawPrimitives();
m_Menu.DrawTopLayer();
} }
void ScreenBookkeeping::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ) void ScreenBookkeeping::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI )
@@ -103,19 +98,19 @@ void ScreenBookkeeping::MenuRight( PlayerNumber pn )
void ScreenBookkeeping::MenuStart( PlayerNumber pn ) void ScreenBookkeeping::MenuStart( PlayerNumber pn )
{ {
if( !m_Menu.IsTransitioning() ) if( !IsTransitioning() )
{ {
SCREENMAN->PlayStartSound(); SCREENMAN->PlayStartSound();
m_Menu.StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
} }
} }
void ScreenBookkeeping::MenuBack( PlayerNumber pn ) void ScreenBookkeeping::MenuBack( PlayerNumber pn )
{ {
if(!m_Menu.IsTransitioning()) if(!IsTransitioning())
{ {
SCREENMAN->PlayStartSound(); SCREENMAN->PlayStartSound();
m_Menu.StartTransitioning( SM_GoToPrevScreen ); StartTransitioning( SM_GoToPrevScreen );
} }
} }
+2 -5
View File
@@ -9,17 +9,16 @@
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
*/ */
#include "Screen.h" #include "ScreenWithMenuElements.h"
#include "Sprite.h" #include "Sprite.h"
#include "BitmapText.h" #include "BitmapText.h"
#include "PrefsManager.h" #include "PrefsManager.h"
#include "InputMapper.h" #include "InputMapper.h"
#include "MenuElements.h"
#include "RageInputDevice.h" #include "RageInputDevice.h"
const int NUM_BOOKKEEPING_COLS = 4; const int NUM_BOOKKEEPING_COLS = 4;
class ScreenBookkeeping : public Screen class ScreenBookkeeping : public ScreenWithMenuElements
{ {
public: public:
ScreenBookkeeping( CString sName ); ScreenBookkeeping( CString sName );
@@ -42,7 +41,5 @@ private:
View m_View; View m_View;
BitmapText m_textTitle; BitmapText m_textTitle;
BitmapText m_textCols[NUM_BOOKKEEPING_COLS]; BitmapText m_textCols[NUM_BOOKKEEPING_COLS];
MenuElements m_Menu;
}; };
-2
View File
@@ -10,8 +10,6 @@
*/ */
#include "Screen.h" #include "Screen.h"
#include "MenuElements.h"
class ScreenBranch : public Screen class ScreenBranch : public Screen
{ {
+6 -13
View File
@@ -23,9 +23,7 @@
#include "RageDisplay.h" #include "RageDisplay.h"
ScreenCenterImage::ScreenCenterImage( CString sClassName ) : ScreenWithMenuElements( sClassName )
ScreenCenterImage::ScreenCenterImage( CString sClassName ) : Screen( sClassName )
{ {
LOG->Trace( "ScreenCenterImage::ScreenCenterImage()" ); LOG->Trace( "ScreenCenterImage::ScreenCenterImage()" );
@@ -36,9 +34,6 @@ ScreenCenterImage::ScreenCenterImage( CString sClassName ) : Screen( sClassName
m_textInstructions.SetZoom( 0.8f ); m_textInstructions.SetZoom( 0.8f );
this->AddChild( &m_textInstructions ); this->AddChild( &m_textInstructions );
m_Menu.Load( "ScreenCenterImage" );
this->AddChild( &m_Menu );
SOUND->PlayMusic( THEME->GetPathToS("ScreenCenterImage music") ); SOUND->PlayMusic( THEME->GetPathToS("ScreenCenterImage music") );
} }
@@ -53,14 +48,12 @@ ScreenCenterImage::~ScreenCenterImage()
void ScreenCenterImage::DrawPrimitives() void ScreenCenterImage::DrawPrimitives()
{ {
m_Menu.DrawBottomLayer();
Screen::DrawPrimitives(); Screen::DrawPrimitives();
m_Menu.DrawTopLayer();
} }
void ScreenCenterImage::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ) void ScreenCenterImage::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI )
{ {
if( m_Menu.IsTransitioning() ) if( IsTransitioning() )
return; return;
if( type == IET_RELEASE ) if( type == IET_RELEASE )
@@ -131,17 +124,17 @@ void ScreenCenterImage::Input( const DeviceInput& DeviceI, const InputEventType
switch( DeviceI.button ) switch( DeviceI.button )
{ {
case SDLK_ESCAPE: case SDLK_ESCAPE:
if(!m_Menu.IsTransitioning()) if(!IsTransitioning())
{ {
SOUND->PlayOnce( THEME->GetPathToS("Common back") ); SOUND->PlayOnce( THEME->GetPathToS("Common back") );
m_Menu.StartTransitioning( SM_GoToPrevScreen ); StartTransitioning( SM_GoToPrevScreen );
} }
case SDLK_RETURN: case SDLK_RETURN:
case SDLK_KP_ENTER: case SDLK_KP_ENTER:
if(!m_Menu.IsTransitioning()) if(!IsTransitioning())
{ {
SOUND->PlayOnce( THEME->GetPathToS("Common start") ); SOUND->PlayOnce( THEME->GetPathToS("Common start") );
m_Menu.StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
} }
} }
} }
+2 -6
View File
@@ -9,16 +9,15 @@
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
*/ */
#include "Screen.h" #include "ScreenWithMenuElements.h"
#include "Sprite.h" #include "Sprite.h"
#include "BitmapText.h" #include "BitmapText.h"
#include "PrefsManager.h" #include "PrefsManager.h"
#include "InputMapper.h" #include "InputMapper.h"
#include "MenuElements.h"
#include "RageInputDevice.h" #include "RageInputDevice.h"
class ScreenCenterImage : public Screen class ScreenCenterImage : public ScreenWithMenuElements
{ {
public: public:
ScreenCenterImage( CString sName ); ScreenCenterImage( CString sName );
@@ -31,8 +30,5 @@ public:
private: private:
BitmapText m_textInstructions; BitmapText m_textInstructions;
MenuElements m_Menu;
}; };
+3 -8
View File
@@ -34,7 +34,7 @@
const ScreenMessage SM_RefreshSelector = (ScreenMessage)(SM_User+1); const ScreenMessage SM_RefreshSelector = (ScreenMessage)(SM_User+1);
ScreenEditCoursesMenu::ScreenEditCoursesMenu( CString sName ) : Screen( sName ) ScreenEditCoursesMenu::ScreenEditCoursesMenu( CString sName ) : ScreenWithMenuElements( sName )
{ {
LOG->Trace( "ScreenEditCoursesMenu::ScreenEditCoursesMenu()" ); LOG->Trace( "ScreenEditCoursesMenu::ScreenEditCoursesMenu()" );
@@ -48,9 +48,6 @@ ScreenEditCoursesMenu::ScreenEditCoursesMenu( CString sName ) : Screen( sName )
// m_Selector.AllowNewNotes(); // m_Selector.AllowNewNotes();
this->AddChild( &m_Selector ); this->AddChild( &m_Selector );
m_Menu.Load( "ScreenEditCoursesMenu" );
this->AddChild( &m_Menu );
m_textExplanation.LoadFromFont( THEME->GetPathToF("Common normal") ); m_textExplanation.LoadFromFont( THEME->GetPathToF("Common normal") );
m_textExplanation.SetXY( EXPLANATION_X, EXPLANATION_Y ); m_textExplanation.SetXY( EXPLANATION_X, EXPLANATION_Y );
@@ -69,9 +66,7 @@ ScreenEditCoursesMenu::~ScreenEditCoursesMenu()
void ScreenEditCoursesMenu::DrawPrimitives() void ScreenEditCoursesMenu::DrawPrimitives()
{ {
m_Menu.DrawBottomLayer();
Screen::DrawPrimitives(); Screen::DrawPrimitives();
m_Menu.DrawTopLayer();
} }
void ScreenEditCoursesMenu::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ) void ScreenEditCoursesMenu::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI )
@@ -116,7 +111,7 @@ void ScreenEditCoursesMenu::MenuRight( PlayerNumber pn, const InputEventType typ
void ScreenEditCoursesMenu::MenuStart( PlayerNumber pn ) void ScreenEditCoursesMenu::MenuStart( PlayerNumber pn )
{ {
if( m_Menu.IsTransitioning() ) if( IsTransitioning() )
return; return;
m_Selector.Start(); m_Selector.Start();
@@ -124,7 +119,7 @@ void ScreenEditCoursesMenu::MenuStart( PlayerNumber pn )
void ScreenEditCoursesMenu::MenuBack( PlayerNumber pn ) void ScreenEditCoursesMenu::MenuBack( PlayerNumber pn )
{ {
m_Menu.Back( SM_GoToPrevScreen ); Back( SM_GoToPrevScreen );
SOUND->StopMusic(); SOUND->StopMusic();
} }
+2 -6
View File
@@ -9,13 +9,11 @@
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
*/ */
#include "Screen.h" #include "ScreenWithMenuElements.h"
#include "EditCoursesMenu.h" #include "EditCoursesMenu.h"
#include "BitmapText.h" #include "BitmapText.h"
#include "MenuElements.h"
class ScreenEditCoursesMenu : public ScreenWithMenuElements
class ScreenEditCoursesMenu : public Screen
{ {
public: public:
ScreenEditCoursesMenu( CString sName ); ScreenEditCoursesMenu( CString sName );
@@ -37,8 +35,6 @@ private:
EditCoursesMenu m_Selector; EditCoursesMenu m_Selector;
BitmapText m_textExplanation; BitmapText m_textExplanation;
MenuElements m_Menu;
}; };
+5 -10
View File
@@ -35,7 +35,7 @@
const ScreenMessage SM_RefreshSelector = (ScreenMessage)(SM_User+1); const ScreenMessage SM_RefreshSelector = (ScreenMessage)(SM_User+1);
ScreenEditMenu::ScreenEditMenu( CString sName ) : Screen( sName ) ScreenEditMenu::ScreenEditMenu( CString sName ) : ScreenWithMenuElements( sName )
{ {
LOG->Trace( "ScreenEditMenu::ScreenEditMenu()" ); LOG->Trace( "ScreenEditMenu::ScreenEditMenu()" );
@@ -45,9 +45,6 @@ ScreenEditMenu::ScreenEditMenu( CString sName ) : Screen( sName )
// m_Selector.AllowNewNotes(); // m_Selector.AllowNewNotes();
this->AddChild( &m_Selector ); this->AddChild( &m_Selector );
m_Menu.Load( "ScreenEditMenu" );
this->AddChild( &m_Menu );
m_textExplanation.LoadFromFont( THEME->GetPathToF("Common normal") ); m_textExplanation.LoadFromFont( THEME->GetPathToF("Common normal") );
m_textExplanation.SetXY( EXPLANATION_X, EXPLANATION_Y ); m_textExplanation.SetXY( EXPLANATION_X, EXPLANATION_Y );
@@ -66,9 +63,7 @@ ScreenEditMenu::~ScreenEditMenu()
void ScreenEditMenu::DrawPrimitives() void ScreenEditMenu::DrawPrimitives()
{ {
m_Menu.DrawBottomLayer();
Screen::DrawPrimitives(); Screen::DrawPrimitives();
m_Menu.DrawTopLayer();
} }
void ScreenEditMenu::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ) void ScreenEditMenu::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI )
@@ -127,7 +122,7 @@ void DeleteCurNotes( void* pThrowAway )
void ScreenEditMenu::MenuStart( PlayerNumber pn ) void ScreenEditMenu::MenuStart( PlayerNumber pn )
{ {
if( m_Menu.IsTransitioning() ) if( IsTransitioning() )
return; return;
Song* pSong = m_Selector.GetSelectedSong(); Song* pSong = m_Selector.GetSelectedSong();
@@ -159,8 +154,8 @@ void ScreenEditMenu::MenuStart( PlayerNumber pn )
// Prepare prepare for ScreenEdit // Prepare prepare for ScreenEdit
ASSERT( pNotes ); ASSERT( pNotes );
SOUND->StopMusic(); SOUND->StopMusic();
SOUND->PlayOnce( THEME->GetPathToS("Common start") ); SCREENMAN->PlayStartSound();
m_Menu.StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
break; break;
case EditMenu::ACTION_DELETE: case EditMenu::ACTION_DELETE:
ASSERT( pNotes ); ASSERT( pNotes );
@@ -226,7 +221,7 @@ void ScreenEditMenu::MenuStart( PlayerNumber pn )
void ScreenEditMenu::MenuBack( PlayerNumber pn ) void ScreenEditMenu::MenuBack( PlayerNumber pn )
{ {
m_Menu.Back( SM_GoToPrevScreen ); Back( SM_GoToPrevScreen );
SOUND->StopMusic(); SOUND->StopMusic();
} }
+2 -6
View File
@@ -12,13 +12,11 @@
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
*/ */
#include "Screen.h" #include "ScreenWithMenuElements.h"
#include "EditMenu.h" #include "EditMenu.h"
#include "BitmapText.h" #include "BitmapText.h"
#include "MenuElements.h"
class ScreenEditMenu : public ScreenWithMenuElements
class ScreenEditMenu : public Screen
{ {
public: public:
ScreenEditMenu( CString sName ); ScreenEditMenu( CString sName );
@@ -40,8 +38,6 @@ private:
EditMenu m_Selector; EditMenu m_Selector;
BitmapText m_textExplanation; BitmapText m_textExplanation;
MenuElements m_Menu;
}; };
#endif #endif
+3 -11
View File
@@ -93,7 +93,7 @@ static const int NUM_SHOWN_RADAR_CATEGORIES = 5;
const ScreenMessage SM_PlayCheer = ScreenMessage(SM_User+6); const ScreenMessage SM_PlayCheer = ScreenMessage(SM_User+6);
ScreenEvaluation::ScreenEvaluation( CString sClassName ) : Screen(sClassName) ScreenEvaluation::ScreenEvaluation( CString sClassName ) : ScreenWithMenuElements(sClassName)
{ {
LOG->Trace( "ScreenEvaluation::ScreenEvaluation" ); LOG->Trace( "ScreenEvaluation::ScreenEvaluation" );
Init(); // work around horrible gcc bug 3187 Init(); // work around horrible gcc bug 3187
@@ -252,10 +252,6 @@ void ScreenEvaluation::Init()
m_Type==stage; m_Type==stage;
m_Menu.Load( m_sName );
this->AddChild( &m_Menu );
// //
// load pass/fail sound // load pass/fail sound
// //
@@ -1417,20 +1413,16 @@ void ScreenEvaluation::Update( float fDeltaTime )
void ScreenEvaluation::DrawPrimitives() void ScreenEvaluation::DrawPrimitives()
{ {
m_Menu.DrawBottomLayer();
m_bgCondBga.DrawPrimitives(); m_bgCondBga.DrawPrimitives();
Screen::DrawPrimitives(); Screen::DrawPrimitives();
m_Menu.DrawTopLayer();
} }
void ScreenEvaluation::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ) void ScreenEvaluation::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI )
{ {
// LOG->Trace( "ScreenEvaluation::Input()" ); // LOG->Trace( "ScreenEvaluation::Input()" );
if( m_Menu.IsTransitioning() ) if( IsTransitioning() )
return; return;
if( GameI.IsValid() ) if( GameI.IsValid() )
@@ -1570,6 +1562,6 @@ void ScreenEvaluation::EndScreen()
break; break;
} }
} }
m_Menu.StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
} }
+3 -5
View File
@@ -13,11 +13,10 @@
*/ */
#include "Screen.h" #include "ScreenWithMenuElements.h"
#include "Sprite.h" #include "Sprite.h"
#include "BitmapText.h" #include "BitmapText.h"
#include "GradeDisplay.h" #include "GradeDisplay.h"
#include "MenuElements.h"
#include "Banner.h" #include "Banner.h"
#include "ScoreDisplayNormal.h" #include "ScoreDisplayNormal.h"
#include "Banner.h" #include "Banner.h"
@@ -29,6 +28,7 @@
#include "ActorUtil.h" #include "ActorUtil.h"
#include "ConditionalBGA.h" #include "ConditionalBGA.h"
#include "HighScore.h" #include "HighScore.h"
#include "RageSound.h"
const int MAX_SONGS_TO_SHOW = 5; // In summary, we show last 3 stages, plus extra stages if passed const int MAX_SONGS_TO_SHOW = 5; // In summary, we show last 3 stages, plus extra stages if passed
enum JudgeLine { marvelous, perfect, great, good, boo, miss, ok, max_combo, error, NUM_JUDGE_LINES }; enum JudgeLine { marvelous, perfect, great, good, boo, miss, ok, max_combo, error, NUM_JUDGE_LINES };
@@ -41,7 +41,7 @@ struct EvalSoundSequence
RageSound sSound; RageSound sSound;
}; };
class ScreenEvaluation : public Screen class ScreenEvaluation : public ScreenWithMenuElements
{ {
public: public:
enum Type { stage, summary, course }; enum Type { stage, summary, course };
@@ -76,8 +76,6 @@ protected:
BGAnimation m_bgOverlay; BGAnimation m_bgOverlay;
ConditionalBGA m_bgCondBga; ConditionalBGA m_bgCondBga;
MenuElements m_Menu;
// banner area // banner area
Banner m_LargeBanner; Banner m_LargeBanner;
Sprite m_sprLargeBannerFrame; Sprite m_sprLargeBannerFrame;
+6 -10
View File
@@ -73,7 +73,7 @@ const float TWEEN_TIME = 0.5f;
const ScreenMessage SM_NoSongs = ScreenMessage(SM_User+3); const ScreenMessage SM_NoSongs = ScreenMessage(SM_User+3);
ScreenEz2SelectMusic::ScreenEz2SelectMusic( CString sName ) : Screen( sName ) ScreenEz2SelectMusic::ScreenEz2SelectMusic( CString sName ) : ScreenWithMenuElements( sName )
{ {
/* Finish any previous stage. It's OK to call this when we havn't played a stage yet. */ /* Finish any previous stage. It's OK to call this when we havn't played a stage yet. */
GAMESTATE->FinishStage(); GAMESTATE->FinishStage();
@@ -100,8 +100,6 @@ ScreenEz2SelectMusic::ScreenEz2SelectMusic( CString sName ) : Screen( sName )
} }
m_Menu.Load("ScreenEz2SelectMusic");
this->AddChild( &m_Menu );
m_soundButtonPress.Load( THEME->GetPathToS("ScreenEz2SelectMusic buttonpress")); m_soundButtonPress.Load( THEME->GetPathToS("ScreenEz2SelectMusic buttonpress"));
m_soundMusicChange.Load( THEME->GetPathToS("ScreenEz2SelectMusic change")); m_soundMusicChange.Load( THEME->GetPathToS("ScreenEz2SelectMusic change"));
@@ -248,7 +246,7 @@ void ScreenEz2SelectMusic::Input( const DeviceInput& DeviceI, const InputEventTy
if( type == IET_RELEASE ) return; // don't care if( type == IET_RELEASE ) return; // don't care
if( m_Menu.IsTransitioning() ) return; // ignore if( IsTransitioning() ) return; // ignore
if( !GameI.IsValid() ) return; // don't care if( !GameI.IsValid() ) return; // don't care
@@ -408,7 +406,7 @@ void ScreenEz2SelectMusic::HandleScreenMessage( const ScreenMessage SM )
void ScreenEz2SelectMusic::MenuRight( PlayerNumber pn, const InputEventType type ) void ScreenEz2SelectMusic::MenuRight( PlayerNumber pn, const InputEventType type )
{ {
m_Menu.m_MenuTimer->Stall(); m_MenuTimer->Stall();
m_MusicBannerWheel.BannersRight(); m_MusicBannerWheel.BannersRight();
for(int i=i_SkipAheadOffset; i>0; i--) for(int i=i_SkipAheadOffset; i>0; i--)
m_MusicBannerWheel.BannersRight(); m_MusicBannerWheel.BannersRight();
@@ -419,7 +417,7 @@ void ScreenEz2SelectMusic::MenuBack( PlayerNumber pn )
{ {
SOUND->StopMusic(); SOUND->StopMusic();
m_Menu.Back( SM_GoToPrevScreen ); Back( SM_GoToPrevScreen );
} }
@@ -446,7 +444,7 @@ void ScreenEz2SelectMusic::TweenOffScreen()
void ScreenEz2SelectMusic::MenuLeft( PlayerNumber pn, const InputEventType type ) void ScreenEz2SelectMusic::MenuLeft( PlayerNumber pn, const InputEventType type )
{ {
m_Menu.m_MenuTimer->Stall(); m_MenuTimer->Stall();
m_MusicBannerWheel.BannersLeft(); m_MusicBannerWheel.BannersLeft();
for(int i=i_SkipAheadOffset; i>0; i--) for(int i=i_SkipAheadOffset; i>0; i--)
m_MusicBannerWheel.BannersLeft(); m_MusicBannerWheel.BannersLeft();
@@ -511,7 +509,7 @@ void ScreenEz2SelectMusic::Update( float fDeltaTime )
if(m_bMadeChoice && RageTimer::GetTimeSinceStart() > m_fRemainingWaitTime + 2 && !m_bTransitioning) if(m_bMadeChoice && RageTimer::GetTimeSinceStart() > m_fRemainingWaitTime + 2 && !m_bTransitioning)
{ {
m_bTransitioning = true; m_bTransitioning = true;
m_Menu.StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
} }
Screen::Update( fDeltaTime ); Screen::Update( fDeltaTime );
@@ -519,9 +517,7 @@ void ScreenEz2SelectMusic::Update( float fDeltaTime )
void ScreenEz2SelectMusic::DrawPrimitives() void ScreenEz2SelectMusic::DrawPrimitives()
{ {
m_Menu.DrawBottomLayer();
Screen::DrawPrimitives(); Screen::DrawPrimitives();
m_Menu.DrawTopLayer();
} }
void ScreenEz2SelectMusic::EasierDifficulty( PlayerNumber pn ) void ScreenEz2SelectMusic::EasierDifficulty( PlayerNumber pn )
+2 -5
View File
@@ -11,16 +11,14 @@
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
*/ */
#include "Screen.h" #include "ScreenWithMenuElements.h"
#include "Sprite.h" #include "Sprite.h"
#include "BitmapText.h" #include "BitmapText.h"
#include "MenuElements.h"
#include "MusicBannerWheel.h" #include "MusicBannerWheel.h"
#include "MenuElements.h"
#include "DifficultyRating.h" #include "DifficultyRating.h"
#include "ModeSwitcher.h" #include "ModeSwitcher.h"
class ScreenEz2SelectMusic : public Screen class ScreenEz2SelectMusic : public ScreenWithMenuElements
{ {
public: public:
ScreenEz2SelectMusic( CString sName ); ScreenEz2SelectMusic( CString sName );
@@ -76,7 +74,6 @@ protected:
float m_fRemainingWaitTime; float m_fRemainingWaitTime;
MusicBannerWheel m_MusicBannerWheel; MusicBannerWheel m_MusicBannerWheel;
MenuElements m_Menu;
DifficultyRating m_DifficultyRating; DifficultyRating m_DifficultyRating;
vector<Steps*> m_arrayNotes[NUM_PLAYERS]; vector<Steps*> m_arrayNotes[NUM_PLAYERS];
+8 -13
View File
@@ -46,7 +46,7 @@ ScreenEz2SelectPlayer (Constructor)
Desc: Sets up the screen display Desc: Sets up the screen display
************************************/ ************************************/
ScreenEz2SelectPlayer::ScreenEz2SelectPlayer( CString sName ) : Screen( sName ) ScreenEz2SelectPlayer::ScreenEz2SelectPlayer( CString sName ) : ScreenWithMenuElements( sName )
{ {
// Unjoin the players, then let them join back in on this screen // Unjoin the players, then let them join back in on this screen
// GAMESTATE->m_bPlayersCanJoin = true; // GAMESTATE->m_bPlayersCanJoin = true;
@@ -56,9 +56,6 @@ ScreenEz2SelectPlayer::ScreenEz2SelectPlayer( CString sName ) : Screen( sName )
LOG->Trace( "ScreenEz2SelectPlayer::ScreenEz2SelectPlayer()" ); LOG->Trace( "ScreenEz2SelectPlayer::ScreenEz2SelectPlayer()" );
m_Menu.Load( "ScreenEz2SelectPlayer" );
this->AddChild( &m_Menu );
m_Background.LoadFromAniDir( THEME->GetPathToB("ScreenEz2SelectPlayer background") ); m_Background.LoadFromAniDir( THEME->GetPathToB("ScreenEz2SelectPlayer background") );
this->AddChild( &m_Background ); // animated background =) this->AddChild( &m_Background ); // animated background =)
@@ -128,9 +125,7 @@ Desc: Draws the screen =P
void ScreenEz2SelectPlayer::DrawPrimitives() void ScreenEz2SelectPlayer::DrawPrimitives()
{ {
m_Menu.DrawBottomLayer();
Screen::DrawPrimitives(); Screen::DrawPrimitives();
m_Menu.DrawTopLayer();
} }
/************************************ /************************************
@@ -141,7 +136,7 @@ void ScreenEz2SelectPlayer::Input( const DeviceInput& DeviceI, const InputEventT
{ {
LOG->Trace( "ScreenEz2SelectPlayer::Input()" ); LOG->Trace( "ScreenEz2SelectPlayer::Input()" );
if( m_Menu.IsTransitioning() ) if( IsTransitioning() )
return; return;
Screen::Input( DeviceI, type, GameI, MenuI, StyleI ); // default input handler Screen::Input( DeviceI, type, GameI, MenuI, StyleI ); // default input handler
@@ -165,7 +160,7 @@ void ScreenEz2SelectPlayer::HandleScreenMessage( const ScreenMessage SM )
} }
TweenOffScreen(); TweenOffScreen();
m_Menu.StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
break; break;
case SM_GoToPrevScreen: case SM_GoToPrevScreen:
SOUND->StopMusic(); SOUND->StopMusic();
@@ -188,7 +183,7 @@ void ScreenEz2SelectPlayer::MenuBack( PlayerNumber pn )
{ {
SOUND->StopMusic(); SOUND->StopMusic();
m_Menu.Back( SM_GoToPrevScreen ); Back( SM_GoToPrevScreen );
} }
@@ -233,14 +228,14 @@ void ScreenEz2SelectPlayer::MenuStart( PlayerNumber pn )
if( bBothSidesJoined ) if( bBothSidesJoined )
{ {
TweenOffScreen(); TweenOffScreen();
m_Menu.StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
} }
else else
{ {
// give the other player a little time to join // give the other player a little time to join
m_Menu.m_MenuTimer->SetSeconds( 1 ); m_MenuTimer->SetSeconds( 1 );
m_Menu.m_MenuTimer->Start(); m_MenuTimer->Start();
m_Menu.m_MenuTimer->EnableStealth( SILENT_WAIT ); // do we wanna make the timer 'quiet' ? m_MenuTimer->EnableStealth( SILENT_WAIT ); // do we wanna make the timer 'quiet' ?
} }
} }
+2 -6
View File
@@ -7,13 +7,11 @@ Frieza
/* Includes */ /* Includes */
#include "Screen.h" #include "ScreenWithMenuElements.h"
#include "Sprite.h" #include "Sprite.h"
#include "RageSound.h" #include "RageSound.h"
#include "MenuElements.h"
class ScreenEz2SelectPlayer : public ScreenWithMenuElements
class ScreenEz2SelectPlayer : public Screen
{ {
public: public:
ScreenEz2SelectPlayer( CString sName ); ScreenEz2SelectPlayer( CString sName );
@@ -35,8 +33,6 @@ private:
Sprite m_sprJoinMessage[NUM_PLAYERS]; Sprite m_sprJoinMessage[NUM_PLAYERS];
Sprite m_sprJoinFrame[NUM_PLAYERS]; Sprite m_sprJoinFrame[NUM_PLAYERS];
MenuElements m_Menu;
RageSound m_soundSelect; RageSound m_soundSelect;
BGAnimation m_Background; BGAnimation m_Background;
}; };
+4 -9
View File
@@ -26,7 +26,7 @@
#define NEXT_SCREEN THEME->GetMetric("ScreenInstructions","NextScreen") #define NEXT_SCREEN THEME->GetMetric("ScreenInstructions","NextScreen")
ScreenInstructions::ScreenInstructions( CString sName ) : Screen( sName ) ScreenInstructions::ScreenInstructions( CString sName ) : ScreenWithMenuElements( sName )
{ {
LOG->Trace( "ScreenInstructions::ScreenInstructions()" ); LOG->Trace( "ScreenInstructions::ScreenInstructions()" );
@@ -54,9 +54,6 @@ ScreenInstructions::ScreenInstructions( CString sName ) : Screen( sName )
} }
} }
m_Menu.Load("ScreenInstructions");
this->AddChild( &m_Menu );
CString sHowToPlayPath; CString sHowToPlayPath;
if( GAMESTATE->m_PlayMode != PLAY_MODE_INVALID ) if( GAMESTATE->m_PlayMode != PLAY_MODE_INVALID )
sHowToPlayPath = THEME->GetPathToG("ScreenInstructions "+PlayModeToString(GAMESTATE->m_PlayMode)) ; sHowToPlayPath = THEME->GetPathToG("ScreenInstructions "+PlayModeToString(GAMESTATE->m_PlayMode)) ;
@@ -89,14 +86,12 @@ void ScreenInstructions::Update( float fDeltaTime )
void ScreenInstructions::DrawPrimitives() void ScreenInstructions::DrawPrimitives()
{ {
m_Menu.DrawBottomLayer();
Screen::DrawPrimitives(); Screen::DrawPrimitives();
m_Menu.DrawTopLayer();
} }
void ScreenInstructions::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ) void ScreenInstructions::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI )
{ {
if( m_Menu.IsTransitioning() ) if( IsTransitioning() )
return; return;
// default input handler // default input handler
@@ -121,12 +116,12 @@ void ScreenInstructions::HandleScreenMessage( const ScreenMessage SM )
void ScreenInstructions::MenuBack( PlayerNumber pn ) void ScreenInstructions::MenuBack( PlayerNumber pn )
{ {
m_Menu.Back( SM_GoToPrevScreen ); Back( SM_GoToPrevScreen );
} }
void ScreenInstructions::MenuStart( PlayerNumber pn ) void ScreenInstructions::MenuStart( PlayerNumber pn )
{ {
m_Menu.StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
m_sprHowToPlay.StopTweening(); m_sprHowToPlay.StopTweening();
m_sprHowToPlay.BeginTweening( 0.3f, Actor::TWEEN_ACCELERATE ); m_sprHowToPlay.BeginTweening( 0.3f, Actor::TWEEN_ACCELERATE );
+2 -5
View File
@@ -12,13 +12,11 @@
*/ */
#include "Screen.h" #include "ScreenWithMenuElements.h"
#include "Sprite.h" #include "Sprite.h"
#include "RandomSample.h" #include "RandomSample.h"
#include "MenuElements.h"
class ScreenInstructions : public ScreenWithMenuElements
class ScreenInstructions : public Screen
{ {
public: public:
ScreenInstructions( CString sName ); ScreenInstructions( CString sName );
@@ -34,7 +32,6 @@ public:
protected: protected:
Sprite m_sprHowToPlay; Sprite m_sprHowToPlay;
MenuElements m_Menu;
}; };
+5 -10
View File
@@ -33,7 +33,7 @@
#define HELP_TEXT THEME->GetMetric("ScreenJukeboxMenu","HelpText") #define HELP_TEXT THEME->GetMetric("ScreenJukeboxMenu","HelpText")
ScreenJukeboxMenu::ScreenJukeboxMenu( CString sClassName ) : Screen( sClassName ) ScreenJukeboxMenu::ScreenJukeboxMenu( CString sClassName ) : ScreenWithMenuElements( sClassName )
{ {
LOG->Trace( "ScreenJukeboxMenu::ScreenJukeboxMenu()" ); LOG->Trace( "ScreenJukeboxMenu::ScreenJukeboxMenu()" );
@@ -46,9 +46,6 @@ ScreenJukeboxMenu::ScreenJukeboxMenu( CString sClassName ) : Screen( sClassName
// m_Selector.AllowNewNotes(); // m_Selector.AllowNewNotes();
this->AddChild( &m_Selector ); this->AddChild( &m_Selector );
m_Menu.Load( "ScreenJukeboxMenu" );
this->AddChild( &m_Menu );
m_textExplanation.LoadFromFont( THEME->GetPathToF("Common normal") ); m_textExplanation.LoadFromFont( THEME->GetPathToF("Common normal") );
m_textExplanation.SetXY( EXPLANATION_X, EXPLANATION_Y ); m_textExplanation.SetXY( EXPLANATION_X, EXPLANATION_Y );
@@ -69,16 +66,14 @@ ScreenJukeboxMenu::~ScreenJukeboxMenu()
void ScreenJukeboxMenu::DrawPrimitives() void ScreenJukeboxMenu::DrawPrimitives()
{ {
m_Menu.DrawBottomLayer();
Screen::DrawPrimitives(); Screen::DrawPrimitives();
m_Menu.DrawTopLayer();
} }
void ScreenJukeboxMenu::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ) void ScreenJukeboxMenu::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI )
{ {
LOG->Trace( "ScreenJukeboxMenu::Input()" ); LOG->Trace( "ScreenJukeboxMenu::Input()" );
if( m_Menu.IsTransitioning() ) if( IsTransitioning() )
return; return;
Screen::Input( DeviceI, type, GameI, MenuI, StyleI ); Screen::Input( DeviceI, type, GameI, MenuI, StyleI );
@@ -119,7 +114,7 @@ void ScreenJukeboxMenu::MenuRight( PlayerNumber pn, const InputEventType type )
void ScreenJukeboxMenu::MenuStart( PlayerNumber pn ) void ScreenJukeboxMenu::MenuStart( PlayerNumber pn )
{ {
if( m_Menu.IsTransitioning() ) if( IsTransitioning() )
return; return;
Style style = m_Selector.GetSelectedStyle(); Style style = m_Selector.GetSelectedStyle();
@@ -145,12 +140,12 @@ void ScreenJukeboxMenu::MenuStart( PlayerNumber pn )
SOUND->StopMusic(); SOUND->StopMusic();
SOUND->PlayOnce( THEME->GetPathToS("Common start") ); SOUND->PlayOnce( THEME->GetPathToS("Common start") );
m_Menu.StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
} }
void ScreenJukeboxMenu::MenuBack( PlayerNumber pn ) void ScreenJukeboxMenu::MenuBack( PlayerNumber pn )
{ {
m_Menu.StartTransitioning( SM_GoToPrevScreen ); StartTransitioning( SM_GoToPrevScreen );
SOUND->StopMusic(); SOUND->StopMusic();
} }
+2 -6
View File
@@ -9,14 +9,12 @@
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
*/ */
#include "Screen.h" #include "ScreenWithMenuElements.h"
#include "JukeboxMenu.h" #include "JukeboxMenu.h"
#include "BitmapText.h" #include "BitmapText.h"
#include "MenuElements.h"
#include "RageSound.h" #include "RageSound.h"
class ScreenJukeboxMenu : public ScreenWithMenuElements
class ScreenJukeboxMenu : public Screen
{ {
public: public:
ScreenJukeboxMenu( CString sName ); ScreenJukeboxMenu( CString sName );
@@ -39,8 +37,6 @@ private:
BitmapText m_textExplanation; BitmapText m_textExplanation;
MenuElements m_Menu;
RageSound m_soundInvalid; RageSound m_soundInvalid;
}; };
+8
View File
@@ -367,6 +367,7 @@ ScreenManager::ScreenManager()
m_soundCoin.Load( THEME->GetPathS("Common","coin") ); m_soundCoin.Load( THEME->GetPathS("Common","coin") );
m_soundInvalid.Load( THEME->GetPathS("Common","invalid") ); m_soundInvalid.Load( THEME->GetPathS("Common","invalid") );
m_soundScreenshot.Load( THEME->GetPathS("Common","screenshot") ); m_soundScreenshot.Load( THEME->GetPathS("Common","screenshot") );
m_soundBack.Load( THEME->GetPathS("Common","back") );
} }
@@ -773,3 +774,10 @@ void ScreenManager::PlayScreenshotSound()
p.m_Volume = PREFSMAN->m_fSoundVolume; p.m_Volume = PREFSMAN->m_fSoundVolume;
m_soundScreenshot.Play( &p ); m_soundScreenshot.Play( &p );
} }
void ScreenManager::PlayBackSound()
{
RageSoundParams p;
p.m_Volume = PREFSMAN->m_fSoundVolume;
m_soundBack.Play( &p );
}
+2
View File
@@ -81,11 +81,13 @@ public:
void PlayCoinSound(); void PlayCoinSound();
void PlayInvalidSound(); void PlayInvalidSound();
void PlayScreenshotSound(); void PlayScreenshotSound();
void PlayBackSound();
private: private:
RageSound m_soundStart; RageSound m_soundStart;
RageSound m_soundCoin; RageSound m_soundCoin;
RageSound m_soundInvalid; RageSound m_soundInvalid;
RageSound m_soundScreenshot; RageSound m_soundScreenshot;
RageSound m_soundBack;
}; };
+3 -8
View File
@@ -43,7 +43,7 @@ const float BUTTON_COLUMN_X[NUM_GAME_TO_DEVICE_SLOTS*MAX_GAME_CONTROLLERS] =
}; };
ScreenMapControllers::ScreenMapControllers( CString sClassName ) : Screen( sClassName ) ScreenMapControllers::ScreenMapControllers( CString sClassName ) : ScreenWithMenuElements( sClassName )
{ {
LOG->Trace( "ScreenMapControllers::ScreenMapControllers()" ); LOG->Trace( "ScreenMapControllers::ScreenMapControllers()" );
@@ -97,9 +97,6 @@ ScreenMapControllers::ScreenMapControllers( CString sClassName ) : Screen( sClas
m_iWaitingForPress = 0; m_iWaitingForPress = 0;
m_Menu.Load( "ScreenMapControllers" );
this->AddChild( &m_Menu );
SOUND->PlayMusic( THEME->GetPathToS("ScreenMapControllers music") ); SOUND->PlayMusic( THEME->GetPathToS("ScreenMapControllers music") );
Refresh(); Refresh();
@@ -139,9 +136,7 @@ void ScreenMapControllers::Update( float fDeltaTime )
void ScreenMapControllers::DrawPrimitives() void ScreenMapControllers::DrawPrimitives()
{ {
m_Menu.DrawBottomLayer();
Screen::DrawPrimitives(); Screen::DrawPrimitives();
m_Menu.DrawTopLayer();
} }
static bool IsAxis( const DeviceInput& DeviceI ) static bool IsAxis( const DeviceInput& DeviceI )
@@ -266,10 +261,10 @@ void ScreenMapControllers::Input( const DeviceInput& DeviceI, const InputEventTy
m_iCurButton++; m_iCurButton++;
break; break;
case SDLK_ESCAPE: /* Quit the screen. */ case SDLK_ESCAPE: /* Quit the screen. */
if(!m_Menu.IsTransitioning()) if(!IsTransitioning())
{ {
SOUND->PlayOnce( THEME->GetPathToS("Common start") ); SOUND->PlayOnce( THEME->GetPathToS("Common start") );
m_Menu.StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
for( int b=0; b<GAMESTATE->GetCurrentGameDef()->m_iButtonsPerController; b++ ) for( int b=0; b<GAMESTATE->GetCurrentGameDef()->m_iButtonsPerController; b++ )
m_Line[b].Command( (b%2)? ODD_LINE_OUT:EVEN_LINE_OUT ); m_Line[b].Command( (b%2)? ODD_LINE_OUT:EVEN_LINE_OUT );
} }
+2 -6
View File
@@ -9,16 +9,15 @@
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
*/ */
#include "Screen.h" #include "ScreenWithMenuElements.h"
#include "Sprite.h" #include "Sprite.h"
#include "BitmapText.h" #include "BitmapText.h"
#include "PrefsManager.h" #include "PrefsManager.h"
#include "InputMapper.h" #include "InputMapper.h"
#include "MenuElements.h"
#include "RageInputDevice.h" #include "RageInputDevice.h"
class ScreenMapControllers : public Screen class ScreenMapControllers : public ScreenWithMenuElements
{ {
public: public:
ScreenMapControllers( CString sName ); ScreenMapControllers( CString sName );
@@ -53,8 +52,5 @@ private:
BitmapText m_textMappedTo[MAX_GAME_CONTROLLERS][MAX_GAME_BUTTONS][NUM_GAME_TO_DEVICE_SLOTS]; BitmapText m_textMappedTo[MAX_GAME_CONTROLLERS][MAX_GAME_BUTTONS][NUM_GAME_TO_DEVICE_SLOTS];
ActorFrame m_Line[MAX_GAME_BUTTONS]; ActorFrame m_Line[MAX_GAME_BUTTONS];
MenuElements m_Menu;
}; };
+7 -12
View File
@@ -133,7 +133,7 @@ float HighScoreWheel::Scroll()
return GetTweenTimeLeft(); return GetTweenTimeLeft();
} }
ScreenNameEntryTraditional::ScreenNameEntryTraditional( CString sClassName ) : Screen( sClassName ) ScreenNameEntryTraditional::ScreenNameEntryTraditional( CString sClassName ) : ScreenWithMenuElements( sClassName )
{ {
LOG->Trace( "ScreenNameEntryTraditional::ScreenNameEntryTraditional()" ); LOG->Trace( "ScreenNameEntryTraditional::ScreenNameEntryTraditional()" );
@@ -192,9 +192,6 @@ ScreenNameEntryTraditional::ScreenNameEntryTraditional( CString sClassName ) : S
m_CurFeat[p] = 0; m_CurFeat[p] = 0;
} }
m_Menu.Load( m_sName );
this->AddChild( &m_Menu );
// //
// init keyboards // init keyboards
// //
@@ -482,16 +479,14 @@ void ScreenNameEntryTraditional::DrawPrimitives()
DISPLAY->CameraPushMatrix(); DISPLAY->CameraPushMatrix();
DISPLAY->LoadMenuPerspective( FOV, CENTER_X, CENTER_Y ); DISPLAY->LoadMenuPerspective( FOV, CENTER_X, CENTER_Y );
m_Menu.DrawBottomLayer();
Screen::DrawPrimitives(); Screen::DrawPrimitives();
m_Menu.DrawTopLayer();
DISPLAY->CameraPopMatrix(); DISPLAY->CameraPopMatrix();
} }
void ScreenNameEntryTraditional::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ) void ScreenNameEntryTraditional::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI )
{ {
if( m_Menu.IsTransitioning() ) if( IsTransitioning() )
return; return;
Screen::Input( DeviceI, type, GameI, MenuI, StyleI ); Screen::Input( DeviceI, type, GameI, MenuI, StyleI );
@@ -537,7 +532,7 @@ void ScreenNameEntryTraditional::HandleScreenMessage( const ScreenMessage SM )
switch( SM ) switch( SM )
{ {
case SM_MenuTimer: case SM_MenuTimer:
if( !m_Menu.m_Out.IsTransitioning() ) if( !m_Out.IsTransitioning() )
{ {
for( int p=0; p<NUM_PLAYERS; p++ ) for( int p=0; p<NUM_PLAYERS; p++ )
Finish( (PlayerNumber)p ); Finish( (PlayerNumber)p );
@@ -598,7 +593,7 @@ void ScreenNameEntryTraditional::Finish( PlayerNumber pn )
OFF_COMMAND( m_sprCursor[pn] ); OFF_COMMAND( m_sprCursor[pn] );
if( !AnyStillEntering() ) if( !AnyStillEntering() )
m_Menu.StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
} }
void ScreenNameEntryTraditional::UpdateSelectionText( int pn ) void ScreenNameEntryTraditional::UpdateSelectionText( int pn )
@@ -614,7 +609,7 @@ void ScreenNameEntryTraditional::MenuStart( PlayerNumber pn, const InputEventTyp
{ {
if( !AnyStillEntering() ) if( !AnyStillEntering() )
{ {
m_Menu.StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
return; return;
} }
@@ -673,7 +668,7 @@ void ScreenNameEntryTraditional::SelectChar( PlayerNumber pn, int c )
void ScreenNameEntryTraditional::MenuLeft( PlayerNumber pn, const InputEventType type ) void ScreenNameEntryTraditional::MenuLeft( PlayerNumber pn, const InputEventType type )
{ {
if( !m_bStillEnteringName[pn] || m_Menu.IsTransitioning() ) if( !m_bStillEnteringName[pn] || IsTransitioning() )
return; return;
if( type == IET_RELEASE ) if( type == IET_RELEASE )
return; // ignore return; // ignore
@@ -686,7 +681,7 @@ void ScreenNameEntryTraditional::MenuLeft( PlayerNumber pn, const InputEventType
void ScreenNameEntryTraditional::MenuRight( PlayerNumber pn, const InputEventType type ) void ScreenNameEntryTraditional::MenuRight( PlayerNumber pn, const InputEventType type )
{ {
if( !m_bStillEnteringName[pn] || m_Menu.IsTransitioning() ) if( !m_bStillEnteringName[pn] || IsTransitioning() )
return; return;
if( type == IET_RELEASE ) if( type == IET_RELEASE )
return; // ignore return; // ignore
+2 -4
View File
@@ -9,11 +9,10 @@
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
*/ */
#include "Screen.h" #include "ScreenWithMenuElements.h"
#include "BitmapText.h" #include "BitmapText.h"
#include "RandomSample.h" #include "RandomSample.h"
#include "BGAnimation.h" #include "BGAnimation.h"
#include "MenuElements.h"
#include "GradeDisplay.h" #include "GradeDisplay.h"
#include "Banner.h" #include "Banner.h"
#include "HighScore.h" #include "HighScore.h"
@@ -43,7 +42,7 @@ public:
int m_iIndexToFocus; int m_iIndexToFocus;
}; };
class ScreenNameEntryTraditional : public Screen class ScreenNameEntryTraditional : public ScreenWithMenuElements
{ {
public: public:
ScreenNameEntryTraditional( CString sName ); ScreenNameEntryTraditional( CString sName );
@@ -70,7 +69,6 @@ private:
int m_CurFeat[NUM_PLAYERS]; int m_CurFeat[NUM_PLAYERS];
BGAnimation m_Background; BGAnimation m_Background;
MenuElements m_Menu;
ActorFrame m_Keyboard[NUM_PLAYERS]; ActorFrame m_Keyboard[NUM_PLAYERS];
Sprite m_sprCursor[NUM_PLAYERS]; Sprite m_sprCursor[NUM_PLAYERS];
+7 -10
View File
@@ -93,7 +93,7 @@ const float ITEM_X[NUM_PLAYERS] = { 260, 420 };
* buttons. (It's also used when in five-key mode.) * buttons. (It's also used when in five-key mode.)
*/ */
ScreenOptions::ScreenOptions( CString sClassName ) : Screen(sClassName) ScreenOptions::ScreenOptions( CString sClassName ) : ScreenWithMenuElements(sClassName)
{ {
LOG->Trace( "ScreenOptions::ScreenOptions()" ); LOG->Trace( "ScreenOptions::ScreenOptions()" );
@@ -106,9 +106,6 @@ ScreenOptions::ScreenOptions( CString sClassName ) : Screen(sClassName)
m_SoundToggleOn.Load( THEME->GetPathToS("ScreenOptions toggle on") ); m_SoundToggleOn.Load( THEME->GetPathToS("ScreenOptions toggle on") );
m_SoundToggleOff.Load( THEME->GetPathToS("ScreenOptions toggle off") ); m_SoundToggleOff.Load( THEME->GetPathToS("ScreenOptions toggle off") );
m_Menu.Load( sClassName );
this->AddChild( &m_Menu );
// add everything to m_framePage so we can animate everything at once // add everything to m_framePage so we can animate everything at once
this->AddChild( &m_framePage ); this->AddChild( &m_framePage );
@@ -500,6 +497,8 @@ void ScreenOptions::Init( InputMode im, OptionRowData OptionRows[], int iNumOpti
} }
m_sprMore->FinishTweening(); m_sprMore->FinishTweening();
this->SortByZ();
} }
ScreenOptions::~ScreenOptions() ScreenOptions::~ScreenOptions()
@@ -911,16 +910,14 @@ void ScreenOptions::Update( float fDeltaTime )
void ScreenOptions::DrawPrimitives() void ScreenOptions::DrawPrimitives()
{ {
m_Menu.DrawBottomLayer();
Screen::DrawPrimitives(); Screen::DrawPrimitives();
m_Menu.DrawTopLayer();
} }
void ScreenOptions::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ) void ScreenOptions::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI )
{ {
/* Allow input when transitioning in (m_In.IsTransitioning()), but ignore it /* Allow input when transitioning in (m_In.IsTransitioning()), but ignore it
* when we're transitioning out. */ * when we're transitioning out. */
if( m_Menu.m_Back.IsTransitioning() || m_Menu.m_Out.IsTransitioning() ) if( m_Back.IsTransitioning() || m_Out.IsTransitioning() )
return; return;
if( type == IET_RELEASE ) if( type == IET_RELEASE )
@@ -956,9 +953,9 @@ void ScreenOptions::HandleScreenMessage( const ScreenMessage SM )
this->GoToNextState(); this->GoToNextState();
break; break;
case SM_BeginFadingOut: case SM_BeginFadingOut:
if(m_Menu.IsTransitioning()) if(IsTransitioning())
return; /* already transitioning */ return; /* already transitioning */
m_Menu.StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
m_SoundStart.Play(); m_SoundStart.Play();
@@ -1161,7 +1158,7 @@ void ScreenOptions::MenuBack( PlayerNumber pn )
{ {
Screen::MenuBack( pn ); Screen::MenuBack( pn );
m_Menu.Back( SM_GoToPrevScreen ); Back( SM_GoToPrevScreen );
} }
void ScreenOptions::StartGoToNextState() void ScreenOptions::StartGoToNextState()
+2 -5
View File
@@ -12,12 +12,11 @@
*/ */
#include "Screen.h" #include "ScreenWithMenuElements.h"
#include "Sprite.h" #include "Sprite.h"
#include "BitmapText.h" #include "BitmapText.h"
#include "RandomSample.h" #include "RandomSample.h"
#include "Quad.h" #include "Quad.h"
#include "MenuElements.h"
#include "OptionsCursor.h" #include "OptionsCursor.h"
#include "OptionIcon.h" #include "OptionIcon.h"
#include "DualScrollBar.h" #include "DualScrollBar.h"
@@ -50,7 +49,7 @@ enum InputMode
}; };
class ScreenOptions : public Screen class ScreenOptions : public ScreenWithMenuElements
{ {
public: public:
ScreenOptions( CString sClassName ); ScreenOptions( CString sClassName );
@@ -97,8 +96,6 @@ protected:
/* Returns -1 if on a row with no OptionRowData (eg. EXIT). */ /* Returns -1 if on a row with no OptionRowData (eg. EXIT). */
int GetCurrentRow(PlayerNumber pn = PLAYER_1) const; int GetCurrentRow(PlayerNumber pn = PLAYER_1) const;
MenuElements m_Menu;
protected: // derived classes need access to these protected: // derived classes need access to these
void LoadOptionIcon( PlayerNumber pn, int iRow, CString sText ); void LoadOptionIcon( PlayerNumber pn, int iRow, CString sText );
enum Navigation { NAV_THREE_KEY, NAV_THREE_KEY_MENU, NAV_FIVE_KEY, NAV_FIRST_CHOICE_GOES_DOWN }; enum Navigation { NAV_THREE_KEY, NAV_THREE_KEY_MENU, NAV_FIVE_KEY, NAV_FIRST_CHOICE_GOES_DOWN };
+4 -4
View File
@@ -34,10 +34,10 @@ ScreenPlayerOptions::ScreenPlayerOptions( CString sClassName ) :
/* If we're going to "press start for more options" or skipping options /* If we're going to "press start for more options" or skipping options
* entirely, we need a different fade out. XXX: this is a hack */ * entirely, we need a different fade out. XXX: this is a hack */
if( PREFSMAN->m_ShowSongOptions == PrefsManager::NO || GAMESTATE->m_bEditing ) if( PREFSMAN->m_ShowSongOptions == PrefsManager::NO || GAMESTATE->m_bEditing )
m_Menu.m_Out.Load( THEME->GetPathToB("ScreenPlayerOptions direct out") ); /* direct to stage */ m_Out.Load( THEME->GetPathToB("ScreenPlayerOptions direct out") ); /* direct to stage */
else if( m_bAskOptionsMessage ) else if( m_bAskOptionsMessage )
{ {
m_Menu.m_Out.Load( THEME->GetPathToB("ScreenPlayerOptions option out") ); /* optional song options */ m_Out.Load( THEME->GetPathToB("ScreenPlayerOptions option out") ); /* optional song options */
m_sprOptionsMessage.Load( THEME->GetPathToG("ScreenPlayerOptions options") ); m_sprOptionsMessage.Load( THEME->GetPathToG("ScreenPlayerOptions options") );
m_sprOptionsMessage.StopAnimating(); m_sprOptionsMessage.StopAnimating();
@@ -106,7 +106,7 @@ void ScreenPlayerOptions::Input( const DeviceInput& DeviceI, const InputEventTyp
{ {
if( m_bAskOptionsMessage && if( m_bAskOptionsMessage &&
type == IET_FIRST_PRESS && type == IET_FIRST_PRESS &&
!m_Menu.m_In.IsTransitioning() && !m_In.IsTransitioning() &&
MenuI.IsValid() && MenuI.IsValid() &&
MenuI.button == MENU_BUTTON_START ) MenuI.button == MENU_BUTTON_START )
{ {
@@ -152,7 +152,7 @@ void ScreenPlayerOptions::HandleScreenMessage( const ScreenMessage SM )
{ {
m_bAcceptedChoices = true; m_bAcceptedChoices = true;
float fShowSeconds = m_Menu.m_Out.GetLengthSeconds(); float fShowSeconds = m_Out.GetLengthSeconds();
// show "hold START for options" // show "hold START for options"
m_sprOptionsMessage.SetDiffuse( RageColor(1,1,1,0) ); m_sprOptionsMessage.SetDiffuse( RageColor(1,1,1,0) );
+5 -10
View File
@@ -39,7 +39,7 @@
#define HELP_TEXT THEME->GetMetric (m_sName,"HelpText") #define HELP_TEXT THEME->GetMetric (m_sName,"HelpText")
#define NEXT_SCREEN( c ) THEME->GetMetric (m_sName,ssprintf("NextScreen%d",c+1)) #define NEXT_SCREEN( c ) THEME->GetMetric (m_sName,ssprintf("NextScreen%d",c+1))
ScreenSelect::ScreenSelect( CString sClassName ) : Screen(sClassName) ScreenSelect::ScreenSelect( CString sClassName ) : ScreenWithMenuElements(sClassName)
{ {
LOG->Trace( "ScreenSelect::ScreenSelect()" ); LOG->Trace( "ScreenSelect::ScreenSelect()" );
@@ -74,9 +74,6 @@ ScreenSelect::ScreenSelect( CString sClassName ) : Screen(sClassName)
} }
} }
m_Menu.Load( sClassName );
this->AddChild( &m_Menu );
// //
// Load codes // Load codes
// //
@@ -140,9 +137,7 @@ void ScreenSelect::DrawPrimitives()
int iSelection = this->GetSelectionIndex(GAMESTATE->m_MasterPlayerNumber); int iSelection = this->GetSelectionIndex(GAMESTATE->m_MasterPlayerNumber);
m_vpBGAnimations[iSelection]->Draw(); m_vpBGAnimations[iSelection]->Draw();
} }
m_Menu.DrawBottomLayer();
Screen::DrawPrimitives(); Screen::DrawPrimitives();
m_Menu.DrawTopLayer();
} }
void ScreenSelect::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ) void ScreenSelect::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI )
@@ -155,7 +150,7 @@ void ScreenSelect::Input( const DeviceInput& DeviceI, const InputEventType type,
return; // don't let the screen handle the MENU_START press return; // don't let the screen handle the MENU_START press
} }
if( m_Menu.IsTransitioning() ) if( IsTransitioning() )
return; return;
for( unsigned i = 0; i < m_aCodes.size(); ++i ) for( unsigned i = 0; i < m_aCodes.size(); ++i )
@@ -213,8 +208,8 @@ void ScreenSelect::HandleScreenMessage( const ScreenMessage SM )
/* It's our turn to tween out. */ /* It's our turn to tween out. */
case SM_AllDoneChoosing: case SM_AllDoneChoosing:
FinalizeChoices(); FinalizeChoices();
if( !m_Menu.IsTransitioning() ) if( !IsTransitioning() )
m_Menu.StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
break; break;
case SM_MenuTimer: case SM_MenuTimer:
{ {
@@ -250,5 +245,5 @@ void ScreenSelect::MenuBack( PlayerNumber pn )
{ {
SOUND->StopMusic(); SOUND->StopMusic();
m_Menu.Back( SM_GoToPrevScreen ); Back( SM_GoToPrevScreen );
} }
+2 -4
View File
@@ -11,8 +11,7 @@
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
*/ */
#include "Screen.h" #include "ScreenWithMenuElements.h"
#include "MenuElements.h"
#include "BGAnimation.h" #include "BGAnimation.h"
#include "ModeChoice.h" #include "ModeChoice.h"
#include "CodeDetector.h" #include "CodeDetector.h"
@@ -22,7 +21,7 @@ const ScreenMessage SM_AllDoneChoosing = (ScreenMessage)(SM_User+123); // unique
#define MAX_CHOICES 30 #define MAX_CHOICES 30
class ScreenSelect : public Screen class ScreenSelect : public ScreenWithMenuElements
{ {
public: public:
ScreenSelect( CString sClassName ); ScreenSelect( CString sClassName );
@@ -41,7 +40,6 @@ protected:
virtual void UpdateSelectableChoices() = 0; // derived screens must handle this virtual void UpdateSelectableChoices() = 0; // derived screens must handle this
void FinalizeChoices(); void FinalizeChoices();
MenuElements m_Menu;
vector<BGAnimation*> m_vpBGAnimations; vector<BGAnimation*> m_vpBGAnimations;
vector<ModeChoice> m_aModeChoices; // derived classes should look here for what choices are available vector<ModeChoice> m_aModeChoices; // derived classes should look here for what choices are available
+5 -13
View File
@@ -59,7 +59,7 @@ const PlayerNumber CPU_PLAYER[NUM_PLAYERS] = { PLAYER_2, PLAYER_1 };
ScreenSelectCharacter::ScreenSelectCharacter( CString sClassName ) : Screen( sClassName ) ScreenSelectCharacter::ScreenSelectCharacter( CString sClassName ) : ScreenWithMenuElements( sClassName )
{ {
LOG->Trace( "ScreenSelectCharacter::ScreenSelectCharacter()" ); LOG->Trace( "ScreenSelectCharacter::ScreenSelectCharacter()" );
@@ -89,14 +89,8 @@ ScreenSelectCharacter::ScreenSelectCharacter( CString sClassName ) : Screen( sCl
} }
m_Menu.Load( "ScreenSelectCharacter" );
this->AddChild( &m_Menu );
int p; int p;
for( p=0; p<NUM_PLAYERS; p++ ) for( p=0; p<NUM_PLAYERS; p++ )
{ {
m_iSelectedCharacter[p] = 0; m_iSelectedCharacter[p] = 0;
@@ -190,7 +184,7 @@ void ScreenSelectCharacter::Input( const DeviceInput& DeviceI, const InputEventT
{ {
LOG->Trace( "ScreenSelectCharacter::Input()" ); LOG->Trace( "ScreenSelectCharacter::Input()" );
if( m_Menu.IsTransitioning() ) if( IsTransitioning() )
return; return;
Screen::Input( DeviceI, type, GameI, MenuI, StyleI ); // default input handler Screen::Input( DeviceI, type, GameI, MenuI, StyleI ); // default input handler
@@ -198,9 +192,7 @@ void ScreenSelectCharacter::Input( const DeviceInput& DeviceI, const InputEventT
void ScreenSelectCharacter::DrawPrimitives() void ScreenSelectCharacter::DrawPrimitives()
{ {
m_Menu.DrawBottomLayer();
Screen::DrawPrimitives(); Screen::DrawPrimitives();
m_Menu.DrawTopLayer();
} }
void ScreenSelectCharacter::HandleScreenMessage( const ScreenMessage SM ) void ScreenSelectCharacter::HandleScreenMessage( const ScreenMessage SM )
@@ -208,7 +200,7 @@ void ScreenSelectCharacter::HandleScreenMessage( const ScreenMessage SM )
switch( SM ) switch( SM )
{ {
case SM_BeginFadingOut: case SM_BeginFadingOut:
m_Menu.StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
break; break;
case SM_MenuTimer: case SM_MenuTimer:
MenuStart(PLAYER_1); MenuStart(PLAYER_1);
@@ -381,7 +373,7 @@ void ScreenSelectCharacter::MenuStart( PlayerNumber pn )
GAMESTATE->m_pCurCharacters[p] = pChar; GAMESTATE->m_pCurCharacters[p] = pChar;
} }
m_Menu.StopTimer(); StopTimer();
TweenOffScreen(); TweenOffScreen();
this->PostScreenMessage( SM_BeginFadingOut, SLEEP_AFTER_TWEEN_OFF_SECONDS ); this->PostScreenMessage( SM_BeginFadingOut, SLEEP_AFTER_TWEEN_OFF_SECONDS );
} }
@@ -389,7 +381,7 @@ void ScreenSelectCharacter::MenuStart( PlayerNumber pn )
void ScreenSelectCharacter::MenuBack( PlayerNumber pn ) void ScreenSelectCharacter::MenuBack( PlayerNumber pn )
{ {
m_Menu.Back( SM_GoToPrevScreen ); Back( SM_GoToPrevScreen );
} }
void ScreenSelectCharacter::TweenOffScreen() void ScreenSelectCharacter::TweenOffScreen()
+2 -5
View File
@@ -9,18 +9,17 @@
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
*/ */
#include "Screen.h" #include "ScreenWithMenuElements.h"
#include "Sprite.h" #include "Sprite.h"
#include "RandomSample.h" #include "RandomSample.h"
#include "GameConstantsAndTypes.h" #include "GameConstantsAndTypes.h"
#include "MenuElements.h"
#include "OptionIcon.h" #include "OptionIcon.h"
#include "Banner.h" #include "Banner.h"
#define MAX_CHAR_ICONS_TO_SHOW 11 #define MAX_CHAR_ICONS_TO_SHOW 11
class ScreenSelectCharacter : public Screen class ScreenSelectCharacter : public ScreenWithMenuElements
{ {
public: public:
ScreenSelectCharacter( CString sName ); ScreenSelectCharacter( CString sName );
@@ -58,8 +57,6 @@ private:
} m_SelectionRow[NUM_PLAYERS]; } m_SelectionRow[NUM_PLAYERS];
PlayerNumber GetAffectedPlayerNumber( PlayerNumber pn ); // returns the number of the player that pn is selecting for PlayerNumber GetAffectedPlayerNumber( PlayerNumber pn ); // returns the number of the player that pn is selecting for
MenuElements m_Menu;
Sprite m_sprTitle[NUM_PLAYERS]; Sprite m_sprTitle[NUM_PLAYERS];
Banner m_sprIcons[NUM_PLAYERS][MAX_CHAR_ICONS_TO_SHOW]; Banner m_sprIcons[NUM_PLAYERS][MAX_CHAR_ICONS_TO_SHOW];
+5 -10
View File
@@ -56,7 +56,7 @@ static const ScreenMessage SM_AllowOptionsMenuRepeat = ScreenMessage(SM_User+1);
ScreenSelectCourse::ScreenSelectCourse( CString sClassName ) : Screen( sClassName ) ScreenSelectCourse::ScreenSelectCourse( CString sClassName ) : ScreenWithMenuElements( sClassName )
{ {
LOG->Trace( "ScreenSelectCourse::ScreenSelectCourse()" ); LOG->Trace( "ScreenSelectCourse::ScreenSelectCourse()" );
@@ -71,9 +71,6 @@ ScreenSelectCourse::ScreenSelectCourse( CString sClassName ) : Screen( sClassNam
m_bGoToOptions = false; m_bGoToOptions = false;
m_bAllowOptionsMenuRepeat = false; m_bAllowOptionsMenuRepeat = false;
m_Menu.Load( "ScreenSelectCourse" );
this->AddChild( &m_Menu );
m_sprExplanation.Load( THEME->GetPathToG("ScreenSelectCourse explanation") ); m_sprExplanation.Load( THEME->GetPathToG("ScreenSelectCourse explanation") );
m_sprExplanation.SetXY( EXPLANATION_X, EXPLANATION_Y ); m_sprExplanation.SetXY( EXPLANATION_X, EXPLANATION_Y );
this->AddChild( &m_sprExplanation ); this->AddChild( &m_sprExplanation );
@@ -159,9 +156,7 @@ ScreenSelectCourse::~ScreenSelectCourse()
void ScreenSelectCourse::DrawPrimitives() void ScreenSelectCourse::DrawPrimitives()
{ {
m_Menu.DrawBottomLayer();
Screen::DrawPrimitives(); Screen::DrawPrimitives();
m_Menu.DrawTopLayer();
m_sprOptionsMessage.Draw(); m_sprOptionsMessage.Draw();
} }
@@ -257,7 +252,7 @@ void ScreenSelectCourse::Input( const DeviceInput& DeviceI, InputEventType type,
return; return;
} }
if( m_Menu.IsTransitioning() ) return; // ignore if( IsTransitioning() ) return; // ignore
if( m_bMadeChoice ) if( m_bMadeChoice )
return; return;
@@ -347,7 +342,7 @@ void ScreenSelectCourse::MenuStart( PlayerNumber pn )
m_bMadeChoice = true; m_bMadeChoice = true;
float fShowSeconds = m_Menu.m_Out.GetLengthSeconds(); float fShowSeconds = m_Out.GetLengthSeconds();
// show "hold START for options" // show "hold START for options"
m_sprOptionsMessage.SetDiffuse( RageColor(1,1,1,0) ); m_sprOptionsMessage.SetDiffuse( RageColor(1,1,1,0) );
@@ -366,7 +361,7 @@ void ScreenSelectCourse::MenuStart( PlayerNumber pn )
this->PostScreenMessage( SM_AllowOptionsMenuRepeat, 0.5f ); this->PostScreenMessage( SM_AllowOptionsMenuRepeat, 0.5f );
m_Menu.StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
Course* pCourse = m_MusicWheel.GetSelectedCourse(); Course* pCourse = m_MusicWheel.GetSelectedCourse();
GAMESTATE->m_pCurCourse = pCourse; GAMESTATE->m_pCurCourse = pCourse;
@@ -387,7 +382,7 @@ void ScreenSelectCourse::MenuBack( PlayerNumber pn )
{ {
SOUND->StopMusic(); SOUND->StopMusic();
m_Menu.Back( SM_GoToPrevScreen ); Back( SM_GoToPrevScreen );
} }
+2 -5
View File
@@ -9,18 +9,17 @@
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
*/ */
#include "Screen.h" #include "ScreenWithMenuElements.h"
#include "Sprite.h" #include "Sprite.h"
#include "BitmapText.h" #include "BitmapText.h"
#include "RageSound.h" #include "RageSound.h"
#include "GameConstantsAndTypes.h" #include "GameConstantsAndTypes.h"
#include "MusicWheel.h" #include "MusicWheel.h"
#include "CourseContentsList.h" #include "CourseContentsList.h"
#include "MenuElements.h"
#include "FadingBanner.h" #include "FadingBanner.h"
class ScreenSelectCourse : public Screen class ScreenSelectCourse : public ScreenWithMenuElements
{ {
public: public:
ScreenSelectCourse( CString sName ); ScreenSelectCourse( CString sName );
@@ -42,8 +41,6 @@ protected:
void AfterCourseChange(); void AfterCourseChange();
void UpdateOptionsDisplays(); void UpdateOptionsDisplays();
MenuElements m_Menu;
Sprite m_sprExplanation; Sprite m_sprExplanation;
Sprite m_sprBannerFrame; Sprite m_sprBannerFrame;
FadingBanner m_Banner; FadingBanner m_Banner;
+1 -1
View File
@@ -143,7 +143,7 @@ void ScreenSelectDifficulty::HandleScreenMessage( const ScreenMessage SM )
case SM_BeginFadingOut: case SM_BeginFadingOut:
TweenOffScreen(); TweenOffScreen();
SCREENMAN->PostMessageToTopScreen( SM_AllDoneChoosing, SLEEP_AFTER_TWEEN_OFF_SECONDS ); // nofify parent that we're finished SCREENMAN->PostMessageToTopScreen( SM_AllDoneChoosing, SLEEP_AFTER_TWEEN_OFF_SECONDS ); // nofify parent that we're finished
m_Menu.StopTimer(); StopTimer();
break; break;
} }
} }
+1 -1
View File
@@ -174,7 +174,7 @@ void ScreenSelectDifficultyEX::HandleScreenMessage( const ScreenMessage SM )
case SM_BeginFadingOut: case SM_BeginFadingOut:
TweenOffScreen(); TweenOffScreen();
SCREENMAN->PostMessageToTopScreen( SM_AllDoneChoosing, SLEEP_AFTER_TWEEN_OFF_SECONDS ); // nofify parent that we're finished SCREENMAN->PostMessageToTopScreen( SM_AllDoneChoosing, SLEEP_AFTER_TWEEN_OFF_SECONDS ); // nofify parent that we're finished
m_Menu.StopTimer(); StopTimer();
break; break;
} }
} }
+5 -12
View File
@@ -35,7 +35,7 @@
#define NEXT_SCREEN THEME->GetMetric ("ScreenSelectGroup","NextScreen") #define NEXT_SCREEN THEME->GetMetric ("ScreenSelectGroup","NextScreen")
ScreenSelectGroup::ScreenSelectGroup( CString sClassName ) : Screen( sClassName ) ScreenSelectGroup::ScreenSelectGroup( CString sClassName ) : ScreenWithMenuElements( sClassName )
{ {
LOG->Trace( "ScreenSelectGroup::ScreenSelectGroup()" ); LOG->Trace( "ScreenSelectGroup::ScreenSelectGroup()" );
@@ -47,11 +47,6 @@ ScreenSelectGroup::ScreenSelectGroup( CString sClassName ) : Screen( sClassName
} }
m_Menu.Load( "ScreenSelectGroup" );
this->AddChild( &m_Menu );
unsigned i; unsigned i;
int j; int j;
@@ -165,7 +160,7 @@ void ScreenSelectGroup::Input( const DeviceInput& DeviceI, const InputEventType
{ {
LOG->Trace( "ScreenSelectGroup::Input()" ); LOG->Trace( "ScreenSelectGroup::Input()" );
if( m_Menu.IsTransitioning() ) if( IsTransitioning() )
return; return;
Screen::Input( DeviceI, type, GameI, MenuI, StyleI ); // default input handler Screen::Input( DeviceI, type, GameI, MenuI, StyleI ); // default input handler
@@ -173,9 +168,7 @@ void ScreenSelectGroup::Input( const DeviceInput& DeviceI, const InputEventType
void ScreenSelectGroup::DrawPrimitives() void ScreenSelectGroup::DrawPrimitives()
{ {
m_Menu.DrawBottomLayer();
Screen::DrawPrimitives(); Screen::DrawPrimitives();
m_Menu.DrawTopLayer();
} }
void ScreenSelectGroup::HandleScreenMessage( const ScreenMessage SM ) void ScreenSelectGroup::HandleScreenMessage( const ScreenMessage SM )
@@ -183,7 +176,7 @@ void ScreenSelectGroup::HandleScreenMessage( const ScreenMessage SM )
switch( SM ) switch( SM )
{ {
case SM_BeginFadingOut: case SM_BeginFadingOut:
m_Menu.StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
break; break;
case SM_MenuTimer: case SM_MenuTimer:
MenuStart(PLAYER_1); MenuStart(PLAYER_1);
@@ -254,7 +247,7 @@ void ScreenSelectGroup::MenuStart( PlayerNumber pn )
return; return;
m_soundSelect.PlayRandom(); m_soundSelect.PlayRandom();
m_Menu.m_MenuTimer->Stop(); m_MenuTimer->Stop();
m_bChosen = true; m_bChosen = true;
GAMESTATE->m_pCurSong = NULL; GAMESTATE->m_pCurSong = NULL;
@@ -272,7 +265,7 @@ void ScreenSelectGroup::MenuStart( PlayerNumber pn )
void ScreenSelectGroup::MenuBack( PlayerNumber pn ) void ScreenSelectGroup::MenuBack( PlayerNumber pn )
{ {
m_Menu.Back( SM_GoToPrevScreen ); Back( SM_GoToPrevScreen );
} }
void ScreenSelectGroup::TweenOffScreen() void ScreenSelectGroup::TweenOffScreen()
+2 -5
View File
@@ -9,16 +9,15 @@
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
*/ */
#include "Screen.h" #include "ScreenWithMenuElements.h"
#include "Sprite.h" #include "Sprite.h"
#include "RandomSample.h" #include "RandomSample.h"
#include "MenuElements.h"
#include "FadingBanner.h" #include "FadingBanner.h"
#include "MusicList.h" #include "MusicList.h"
#include "GroupList.h" #include "GroupList.h"
class ScreenSelectGroup : public Screen class ScreenSelectGroup : public ScreenWithMenuElements
{ {
public: public:
ScreenSelectGroup( CString sName ); ScreenSelectGroup( CString sName );
@@ -42,8 +41,6 @@ public:
private: private:
MenuElements m_Menu;
Sprite m_sprExplanation; Sprite m_sprExplanation;
Sprite m_sprFrame; Sprite m_sprFrame;
FadingBanner m_Banner; FadingBanner m_Banner;
+1 -1
View File
@@ -321,7 +321,7 @@ void ScreenSelectMaster::HandleScreenMessage( const ScreenMessage SM )
fSecs += EXTRA_SLEEP_AFTER_TWEEN_OFF_SECONDS; fSecs += EXTRA_SLEEP_AFTER_TWEEN_OFF_SECONDS;
fSecs = max( fSecs, 0 ); fSecs = max( fSecs, 0 );
SCREENMAN->PostMessageToTopScreen( SM_AllDoneChoosing, fSecs ); // nofify parent that we're finished SCREENMAN->PostMessageToTopScreen( SM_AllDoneChoosing, fSecs ); // nofify parent that we're finished
m_Menu.StopTimer(); StopTimer();
} }
break; break;
} }
-1
View File
@@ -13,7 +13,6 @@ Frieza
#include "Screen.h" #include "Screen.h"
#include "Sprite.h" #include "Sprite.h"
#include "Quad.h" #include "Quad.h"
#include "MenuElements.h"
#include "ScrollingList.h" #include "ScrollingList.h"
#include "GameConstantsAndTypes.h" #include "GameConstantsAndTypes.h"
#include "ModeChoice.h" #include "ModeChoice.h"
+11 -16
View File
@@ -76,7 +76,7 @@ static void FlipSpriteHorizontally(Sprite &s)
s.SetCustomTextureCoords(Coords); s.SetCustomTextureCoords(Coords);
} }
ScreenSelectMusic::ScreenSelectMusic( CString sClassName ) : Screen( sClassName ) ScreenSelectMusic::ScreenSelectMusic( CString sClassName ) : ScreenWithMenuElements( sClassName )
{ {
LOG->Trace( "ScreenSelectMusic::ScreenSelectMusic()" ); LOG->Trace( "ScreenSelectMusic::ScreenSelectMusic()" );
@@ -101,9 +101,6 @@ ScreenSelectMusic::ScreenSelectMusic( CString sClassName ) : Screen( sClassName
int p; int p;
m_Menu.Load( "ScreenSelectMusic" );
this->AddChild( &m_Menu );
// pop'n music has this under the songwheel... // pop'n music has this under the songwheel...
for( p=0; p<NUM_PLAYERS; p++ ) for( p=0; p<NUM_PLAYERS; p++ )
{ {
@@ -357,9 +354,7 @@ void ScreenSelectMusic::DrawPrimitives()
DISPLAY->CameraPushMatrix(); DISPLAY->CameraPushMatrix();
DISPLAY->LoadMenuPerspective( FOV, FOV_CENTER_X, FOV_CENTER_Y ); DISPLAY->LoadMenuPerspective( FOV, FOV_CENTER_X, FOV_CENTER_Y );
m_Menu.DrawBottomLayer();
Screen::DrawPrimitives(); Screen::DrawPrimitives();
m_Menu.DrawTopLayer();
m_sprOptionsMessage.Draw(); m_sprOptionsMessage.Draw();
m_bgOptionsOut.Draw(); m_bgOptionsOut.Draw();
m_bgNoOptionsOut.Draw(); m_bgNoOptionsOut.Draw();
@@ -714,7 +709,7 @@ void ScreenSelectMusic::Input( const DeviceInput& DeviceI, InputEventType type,
MenuI.IsValid() && MenuI.IsValid() &&
MenuI.button == MENU_BUTTON_START && MenuI.button == MENU_BUTTON_START &&
type != IET_RELEASE && type != IET_RELEASE &&
m_Menu.IsTransitioning() && IsTransitioning() &&
!GAMESTATE->IsExtraStage() && !GAMESTATE->IsExtraStage() &&
!GAMESTATE->IsExtraStage2() ) !GAMESTATE->IsExtraStage2() )
{ {
@@ -731,7 +726,7 @@ void ScreenSelectMusic::Input( const DeviceInput& DeviceI, InputEventType type,
return; return;
} }
if( m_Menu.IsTransitioning() ) if( IsTransitioning() )
return; // ignore return; // ignore
if( m_bMadeChoice ) return; // ignore if( m_bMadeChoice ) return; // ignore
@@ -963,16 +958,16 @@ void ScreenSelectMusic::HandleScreenMessage( const ScreenMessage SM )
if( m_MusicWheel.IsRouletting() ) if( m_MusicWheel.IsRouletting() )
{ {
MenuStart(PLAYER_INVALID); MenuStart(PLAYER_INVALID);
m_Menu.m_MenuTimer->SetSeconds( 15 ); m_MenuTimer->SetSeconds( 15 );
m_Menu.m_MenuTimer->Start(); m_MenuTimer->Start();
} }
else if( DO_ROULETTE_ON_MENU_TIMER ) else if( DO_ROULETTE_ON_MENU_TIMER )
{ {
if( m_MusicWheel.GetSelectedType() != TYPE_SONG ) if( m_MusicWheel.GetSelectedType() != TYPE_SONG )
{ {
m_MusicWheel.StartRoulette(); m_MusicWheel.StartRoulette();
m_Menu.m_MenuTimer->SetSeconds( 15 ); m_MenuTimer->SetSeconds( 15 );
m_Menu.m_MenuTimer->Start(); m_MenuTimer->Start();
} }
else else
{ {
@@ -1113,7 +1108,7 @@ void ScreenSelectMusic::MenuStart( PlayerNumber pn )
if( !GAMESTATE->IsExtraStage() && !GAMESTATE->IsExtraStage2() ) if( !GAMESTATE->IsExtraStage() && !GAMESTATE->IsExtraStage2() )
{ {
// float fShowSeconds = m_Menu.m_Out.GetLengthSeconds(); // float fShowSeconds = m_Out.GetLengthSeconds();
// show "hold START for options" // show "hold START for options"
m_sprOptionsMessage.SetDiffuse( RageColor(1,1,1,1) ); // visible m_sprOptionsMessage.SetDiffuse( RageColor(1,1,1,1) ); // visible
@@ -1127,7 +1122,7 @@ void ScreenSelectMusic::MenuStart( PlayerNumber pn )
this->PostScreenMessage( SM_AllowOptionsMenuRepeat, 0.5f ); this->PostScreenMessage( SM_AllowOptionsMenuRepeat, 0.5f );
} }
m_Menu.StartTransitioning( SM_BeginFadingOut ); StartTransitioning( SM_BeginFadingOut );
} }
if( GAMESTATE->IsExtraStage() && PREFSMAN->m_bPickExtraStage ) if( GAMESTATE->IsExtraStage() && PREFSMAN->m_bPickExtraStage )
@@ -1153,7 +1148,7 @@ void ScreenSelectMusic::MenuBack( PlayerNumber pn )
{ {
SOUND->StopMusic(); SOUND->StopMusic();
m_Menu.Back( SM_GoToPrevScreen ); Back( SM_GoToPrevScreen );
} }
void ScreenSelectMusic::AfterNotesChange( PlayerNumber pn ) void ScreenSelectMusic::AfterNotesChange( PlayerNumber pn )
@@ -1251,7 +1246,7 @@ int FindCourseIndexOfSameMode( T begin, T end, const Course *p )
void ScreenSelectMusic::AfterMusicChange() void ScreenSelectMusic::AfterMusicChange()
{ {
if( !m_MusicWheel.IsRouletting() ) if( !m_MusicWheel.IsRouletting() )
m_Menu.m_MenuTimer->Stall(); m_MenuTimer->Stall();
Song* pSong = m_MusicWheel.GetSelectedSong(); Song* pSong = m_MusicWheel.GetSelectedSong();
if( pSong ) if( pSong )
+2 -5
View File
@@ -9,7 +9,7 @@
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
*/ */
#include "Screen.h" #include "ScreenWithMenuElements.h"
#include "Sprite.h" #include "Sprite.h"
#include "BitmapText.h" #include "BitmapText.h"
#include "GameConstantsAndTypes.h" #include "GameConstantsAndTypes.h"
@@ -17,7 +17,6 @@
#include "Banner.h" #include "Banner.h"
#include "FadingBanner.h" #include "FadingBanner.h"
#include "BPMDisplay.h" #include "BPMDisplay.h"
#include "MenuElements.h"
#include "GrooveRadar.h" #include "GrooveRadar.h"
#include "GrooveGraph.h" #include "GrooveGraph.h"
#include "DifficultyIcon.h" #include "DifficultyIcon.h"
@@ -31,7 +30,7 @@
#include "Character.h" #include "Character.h"
#include "BGAnimation.h" #include "BGAnimation.h"
class ScreenSelectMusic : public Screen class ScreenSelectMusic : public ScreenWithMenuElements
{ {
public: public:
ScreenSelectMusic( CString sName ); ScreenSelectMusic( CString sName );
@@ -73,8 +72,6 @@ protected:
vector<Steps*> m_arrayNotes; vector<Steps*> m_arrayNotes;
int m_iSelection[NUM_PLAYERS]; int m_iSelection[NUM_PLAYERS];
MenuElements m_Menu;
Sprite m_sprCharacterIcon[NUM_PLAYERS]; Sprite m_sprCharacterIcon[NUM_PLAYERS];
Sprite m_sprBannerMask; Sprite m_sprBannerMask;
FadingBanner m_Banner; FadingBanner m_Banner;
+4 -9
View File
@@ -51,7 +51,7 @@ static float GetTitleY( SetTimeSelection s ) { return g_Y[s]; }
static float GetValueX( SetTimeSelection s ) { return g_X[s] + 80; } static float GetValueX( SetTimeSelection s ) { return g_X[s] + 80; }
static float GetValueY( SetTimeSelection s ) { return g_Y[s]; } static float GetValueY( SetTimeSelection s ) { return g_Y[s]; }
ScreenSetTime::ScreenSetTime( CString sClassName ) : Screen( sClassName ) ScreenSetTime::ScreenSetTime( CString sClassName ) : ScreenWithMenuElements( sClassName )
{ {
LOG->Trace( "ScreenSetTime::ScreenSetTime()" ); LOG->Trace( "ScreenSetTime::ScreenSetTime()" );
@@ -77,9 +77,6 @@ ScreenSetTime::ScreenSetTime( CString sClassName ) : Screen( sClassName )
m_Selection = (SetTimeSelection)0; m_Selection = (SetTimeSelection)0;
ChangeSelection( 0 ); ChangeSelection( 0 );
m_Menu.Load( m_sName );
this->AddChild( &m_Menu );
SOUND->PlayMusic( THEME->GetPathS(m_sName,"music") ); SOUND->PlayMusic( THEME->GetPathS(m_sName,"music") );
} }
@@ -98,9 +95,7 @@ void ScreenSetTime::Update( float fDelta )
void ScreenSetTime::DrawPrimitives() void ScreenSetTime::DrawPrimitives()
{ {
m_Menu.DrawBottomLayer();
Screen::DrawPrimitives(); Screen::DrawPrimitives();
m_Menu.DrawTopLayer();
} }
void ScreenSetTime::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ) void ScreenSetTime::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI )
@@ -108,7 +103,7 @@ void ScreenSetTime::Input( const DeviceInput& DeviceI, const InputEventType type
if( type != IET_FIRST_PRESS && type != IET_SLOW_REPEAT ) if( type != IET_FIRST_PRESS && type != IET_SLOW_REPEAT )
return; // ignore return; // ignore
if( m_Menu.IsTransitioning() ) if( IsTransitioning() )
return; return;
Screen::Input( DeviceI, type, GameI, MenuI, StyleI ); // default handler Screen::Input( DeviceI, type, GameI, MenuI, StyleI ); // default handler
@@ -192,7 +187,7 @@ void ScreenSetTime::MenuStart( PlayerNumber pn )
else if( m_Selection == NUM_SET_TIME_SELECTIONS -1 ) // last row else if( m_Selection == NUM_SET_TIME_SELECTIONS -1 ) // last row
{ {
SOUND->PlayOnce( THEME->GetPathS("Common","start") ); SOUND->PlayOnce( THEME->GetPathS("Common","start") );
m_Menu.StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
} }
else else
ChangeSelection( +1 ); ChangeSelection( +1 );
@@ -200,6 +195,6 @@ void ScreenSetTime::MenuStart( PlayerNumber pn )
void ScreenSetTime::MenuBack( PlayerNumber pn ) void ScreenSetTime::MenuBack( PlayerNumber pn )
{ {
m_Menu.StartTransitioning( SM_GoToPrevScreen ); StartTransitioning( SM_GoToPrevScreen );
} }
+2 -5
View File
@@ -9,12 +9,11 @@
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
*/ */
#include "Screen.h" #include "ScreenWithMenuElements.h"
#include "Sprite.h" #include "Sprite.h"
#include "BitmapText.h" #include "BitmapText.h"
#include "PrefsManager.h" #include "PrefsManager.h"
#include "InputMapper.h" #include "InputMapper.h"
#include "MenuElements.h"
#include "RageInputDevice.h" #include "RageInputDevice.h"
enum SetTimeSelection enum SetTimeSelection
@@ -28,7 +27,7 @@ enum SetTimeSelection
NUM_SET_TIME_SELECTIONS NUM_SET_TIME_SELECTIONS
}; };
class ScreenSetTime : public Screen class ScreenSetTime : public ScreenWithMenuElements
{ {
public: public:
ScreenSetTime( CString sName ); ScreenSetTime( CString sName );
@@ -53,7 +52,5 @@ private:
BitmapText m_textTitle[NUM_SET_TIME_SELECTIONS]; BitmapText m_textTitle[NUM_SET_TIME_SELECTIONS];
BitmapText m_textValue[NUM_SET_TIME_SELECTIONS]; BitmapText m_textValue[NUM_SET_TIME_SELECTIONS];
BitmapText m_textDayOfWeek; BitmapText m_textDayOfWeek;
MenuElements m_Menu;
}; };
+2 -2
View File
@@ -32,8 +32,8 @@ ScreenSongOptions::ScreenSongOptions( CString sClassName ) :
* fade in. */ * fade in. */
if(PREFSMAN->m_ShowSongOptions == PrefsManager::ASK) if(PREFSMAN->m_ShowSongOptions == PrefsManager::ASK)
{ {
m_Menu.m_In.Load( THEME->GetPathToB("ScreenSongOptions option in") ); m_In.Load( THEME->GetPathToB("ScreenSongOptions option in") );
m_Menu.m_In.StartTransitioning(); m_In.StartTransitioning();
} }
} }
+7 -12
View File
@@ -28,7 +28,7 @@ const ScreenMessage SM_DoneOpening = ScreenMessage(SM_User-7);
const ScreenMessage SM_StartClosing = ScreenMessage(SM_User-8); const ScreenMessage SM_StartClosing = ScreenMessage(SM_User-8);
ScreenStyleSplash::ScreenStyleSplash( CString sName ) : Screen( sName ) ScreenStyleSplash::ScreenStyleSplash( CString sName ) : ScreenWithMenuElements( sName )
{ {
SOUND->StopMusic(); SOUND->StopMusic();
@@ -50,16 +50,13 @@ ScreenStyleSplash::ScreenStyleSplash( CString sName ) : Screen( sName )
m_Background.LoadFromAniDir( THEME->GetPathToB(ssprintf("ScreenStyleSplash-%s-%s-%d",sGameName.c_str(),sStyleName.c_str(),iDifficulty) ) ); m_Background.LoadFromAniDir( THEME->GetPathToB(ssprintf("ScreenStyleSplash-%s-%s-%d",sGameName.c_str(),sStyleName.c_str(),iDifficulty) ) );
this->AddChild( &m_Background ); this->AddChild( &m_Background );
m_Menu.Load( "ScreenStyleSplash" );
this->AddChild( &m_Menu );
this->PostScreenMessage( SM_StartClosing, 2 ); this->PostScreenMessage( SM_StartClosing, 2 );
} }
void ScreenStyleSplash::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ) void ScreenStyleSplash::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI )
{ {
if( m_Menu.IsTransitioning() ) if( IsTransitioning() )
return; return;
Screen::Input( DeviceI, type, GameI, MenuI, StyleI ); Screen::Input( DeviceI, type, GameI, MenuI, StyleI );
@@ -71,8 +68,8 @@ void ScreenStyleSplash::HandleScreenMessage( const ScreenMessage SM )
switch( SM ) switch( SM )
{ {
case SM_StartClosing: case SM_StartClosing:
if( !m_Menu.IsTransitioning() ) if( !IsTransitioning() )
m_Menu.StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
break; break;
case SM_DoneOpening: case SM_DoneOpening:
@@ -88,22 +85,20 @@ void ScreenStyleSplash::HandleScreenMessage( const ScreenMessage SM )
void ScreenStyleSplash::MenuStart( PlayerNumber pn ) void ScreenStyleSplash::MenuStart( PlayerNumber pn )
{ {
m_Menu.StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
} }
void ScreenStyleSplash::MenuBack( PlayerNumber pn ) void ScreenStyleSplash::MenuBack( PlayerNumber pn )
{ {
if(m_Menu.IsTransitioning()) if(IsTransitioning())
return; return;
this->ClearMessageQueue(); this->ClearMessageQueue();
m_Menu.Back( SM_GoToPrevScreen ); Back( SM_GoToPrevScreen );
SOUND->PlayOnce( THEME->GetPathToS("menu back") ); SOUND->PlayOnce( THEME->GetPathToS("menu back") );
} }
void ScreenStyleSplash::DrawPrimitives() void ScreenStyleSplash::DrawPrimitives()
{ {
m_Menu.DrawBottomLayer();
Screen::DrawPrimitives(); Screen::DrawPrimitives();
m_Menu.DrawTopLayer();
} }
+2 -4
View File
@@ -13,12 +13,11 @@
*/ */
#include "Screen.h" #include "ScreenWithMenuElements.h"
#include "BGAnimation.h" #include "BGAnimation.h"
#include "MenuElements.h"
class ScreenStyleSplash : public Screen class ScreenStyleSplash : public ScreenWithMenuElements
{ {
public: public:
ScreenStyleSplash( CString sName ); ScreenStyleSplash( CString sName );
@@ -31,7 +30,6 @@ protected:
void MenuStart( PlayerNumber pn ); void MenuStart( PlayerNumber pn );
void MenuBack( PlayerNumber pn ); void MenuBack( PlayerNumber pn );
MenuElements m_Menu;
BGAnimation m_Background; BGAnimation m_Background;
}; };
+3 -8
View File
@@ -25,7 +25,7 @@
ScreenTestInput::ScreenTestInput( CString sClassName ) : Screen( sClassName ) ScreenTestInput::ScreenTestInput( CString sClassName ) : ScreenWithMenuElements( sClassName )
{ {
LOG->Trace( "ScreenTestInput::ScreenTestInput()" ); LOG->Trace( "ScreenTestInput::ScreenTestInput()" );
@@ -37,9 +37,6 @@ ScreenTestInput::ScreenTestInput( CString sClassName ) : Screen( sClassName )
m_textInputs.SetZoom( 0.8f ); m_textInputs.SetZoom( 0.8f );
this->AddChild( &m_textInputs ); this->AddChild( &m_textInputs );
m_Menu.Load( "ScreenTestInput" );
this->AddChild( &m_Menu );
SOUND->PlayMusic( THEME->GetPathToS("ScreenTestInput music") ); SOUND->PlayMusic( THEME->GetPathToS("ScreenTestInput music") );
} }
@@ -95,9 +92,7 @@ void ScreenTestInput::Update( float fDeltaTime )
void ScreenTestInput::DrawPrimitives() void ScreenTestInput::DrawPrimitives()
{ {
m_Menu.DrawBottomLayer();
Screen::DrawPrimitives(); Screen::DrawPrimitives();
m_Menu.DrawTopLayer();
} }
void ScreenTestInput::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ) void ScreenTestInput::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI )
@@ -126,9 +121,9 @@ void ScreenTestInput::MenuStart( PlayerNumber pn )
void ScreenTestInput::MenuBack( PlayerNumber pn ) void ScreenTestInput::MenuBack( PlayerNumber pn )
{ {
if(!m_Menu.IsTransitioning()) if(!IsTransitioning())
{ {
SCREENMAN->PlayStartSound(); SCREENMAN->PlayStartSound();
m_Menu.StartTransitioning( SM_GoToPrevScreen ); StartTransitioning( SM_GoToPrevScreen );
} }
} }
+2 -5
View File
@@ -9,16 +9,15 @@
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
*/ */
#include "Screen.h" #include "ScreenWithMenuElements.h"
#include "Sprite.h" #include "Sprite.h"
#include "BitmapText.h" #include "BitmapText.h"
#include "PrefsManager.h" #include "PrefsManager.h"
#include "InputMapper.h" #include "InputMapper.h"
#include "MenuElements.h"
#include "RageInputDevice.h" #include "RageInputDevice.h"
class ScreenTestInput : public Screen class ScreenTestInput : public ScreenWithMenuElements
{ {
public: public:
ScreenTestInput( CString sName ); ScreenTestInput( CString sName );
@@ -34,7 +33,5 @@ public:
private: private:
BitmapText m_textInputs; BitmapText m_textInputs;
MenuElements m_Menu;
}; };
+3 -8
View File
@@ -25,7 +25,7 @@
#include "LightsManager.h" #include "LightsManager.h"
ScreenTestLights::ScreenTestLights( CString sClassName ) : Screen( sClassName ) ScreenTestLights::ScreenTestLights( CString sClassName ) : ScreenWithMenuElements( sClassName )
{ {
LOG->Trace( "ScreenTestLights::ScreenTestLights()" ); LOG->Trace( "ScreenTestLights::ScreenTestLights()" );
@@ -37,9 +37,6 @@ ScreenTestLights::ScreenTestLights( CString sClassName ) : Screen( sClassName )
m_textInputs.SetZoom( 0.8f ); m_textInputs.SetZoom( 0.8f );
this->AddChild( &m_textInputs ); this->AddChild( &m_textInputs );
m_Menu.Load( "ScreenTestLights" );
this->AddChild( &m_Menu );
SOUND->PlayMusic( THEME->GetPathToS("ScreenTestLights music") ); SOUND->PlayMusic( THEME->GetPathToS("ScreenTestLights music") );
LIGHTSMAN->SetLightsMode( LIGHTSMODE_TEST ); LIGHTSMAN->SetLightsMode( LIGHTSMODE_TEST );
@@ -76,9 +73,7 @@ void ScreenTestLights::Update( float fDeltaTime )
void ScreenTestLights::DrawPrimitives() void ScreenTestLights::DrawPrimitives()
{ {
m_Menu.DrawBottomLayer();
Screen::DrawPrimitives(); Screen::DrawPrimitives();
m_Menu.DrawTopLayer();
} }
void ScreenTestLights::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ) void ScreenTestLights::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI )
@@ -107,9 +102,9 @@ void ScreenTestLights::MenuStart( PlayerNumber pn )
void ScreenTestLights::MenuBack( PlayerNumber pn ) void ScreenTestLights::MenuBack( PlayerNumber pn )
{ {
if(!m_Menu.IsTransitioning()) if(!IsTransitioning())
{ {
SCREENMAN->PlayStartSound(); SCREENMAN->PlayStartSound();
m_Menu.StartTransitioning( SM_GoToPrevScreen ); StartTransitioning( SM_GoToPrevScreen );
} }
} }
+2 -5
View File
@@ -9,16 +9,15 @@
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
*/ */
#include "Screen.h" #include "ScreenWithMenuElements.h"
#include "Sprite.h" #include "Sprite.h"
#include "BitmapText.h" #include "BitmapText.h"
#include "PrefsManager.h" #include "PrefsManager.h"
#include "InputMapper.h" #include "InputMapper.h"
#include "MenuElements.h"
#include "RageInputDevice.h" #include "RageInputDevice.h"
class ScreenTestLights : public Screen class ScreenTestLights : public ScreenWithMenuElements
{ {
public: public:
ScreenTestLights( CString sName ); ScreenTestLights( CString sName );
@@ -34,7 +33,5 @@ public:
private: private:
BitmapText m_textInputs; BitmapText m_textInputs;
MenuElements m_Menu;
}; };
+8 -6
View File
@@ -191,6 +191,8 @@ ScreenTitleMenu::ScreenTitleMenu( CString sClassName ) : ScreenSelect( sClassNam
this->PostScreenMessage( SM_PlayComment, SECONDS_BETWEEN_COMMENTS); this->PostScreenMessage( SM_PlayComment, SECONDS_BETWEEN_COMMENTS);
this->SortByZ();
// this->MoveToTail( &m_AttractOut ); // put it in the back so it covers up the stuff we just added // this->MoveToTail( &m_AttractOut ); // put it in the back so it covers up the stuff we just added
} }
@@ -237,7 +239,7 @@ void ScreenTitleMenu::Input( const DeviceInput& DeviceI, const InputEventType ty
if( !MenuI.IsValid() ) if( !MenuI.IsValid() )
return; return;
if( m_Menu.m_In.IsTransitioning() || m_Menu.m_Back.IsTransitioning() ) /* not m_Menu.m_Out */ if( m_In.IsTransitioning() || m_Back.IsTransitioning() ) /* not m_Out */
return; return;
switch( MenuI.button ) switch( MenuI.button )
@@ -249,9 +251,9 @@ void ScreenTitleMenu::Input( const DeviceInput& DeviceI, const InputEventType ty
MoveCursor( false ); MoveCursor( false );
break; break;
case MENU_BUTTON_BACK: case MENU_BUTTON_BACK:
if( m_Menu.m_Out.IsTransitioning() ) if( m_Out.IsTransitioning() )
break; break;
m_Menu.Back( SM_GoToAttractLoop ); Back( SM_GoToAttractLoop );
break; break;
case MENU_BUTTON_START: case MENU_BUTTON_START:
/* return if the choice is invalid */ /* return if the choice is invalid */
@@ -268,8 +270,8 @@ void ScreenTitleMenu::Input( const DeviceInput& DeviceI, const InputEventType ty
if( !Screen::JoinInput( DeviceI, type, GameI, MenuI, StyleI ) ) if( !Screen::JoinInput( DeviceI, type, GameI, MenuI, StyleI ) )
return; return;
if( !m_Menu.m_Out.IsTransitioning() ) if( !m_Out.IsTransitioning() )
m_Menu.StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
} }
// detect codes // detect codes
@@ -315,7 +317,7 @@ void ScreenTitleMenu::Input( const DeviceInput& DeviceI, const InputEventType ty
void ScreenTitleMenu::Update( float fDelta ) void ScreenTitleMenu::Update( float fDelta )
{ {
// time out on this screen and go to the attract sequence // time out on this screen and go to the attract sequence
if( !m_Menu.IsTransitioning() && TimeToDemonstration.PeekDeltaTime() >= SECONDS_BEFORE_ATTRACT) if( !IsTransitioning() && TimeToDemonstration.PeekDeltaTime() >= SECONDS_BEFORE_ATTRACT)
{ {
// don't time out on this screen is coin mode is pay. // don't time out on this screen is coin mode is pay.
// If we're here, then there's a credit in the machine. // If we're here, then there's a credit in the machine.
@@ -1,47 +1,37 @@
#include "global.h" #include "global.h"
/* /*
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
File: MenuElements.h Class: ScreenWithMenuElements
Desc: Base class for menu Screens. Desc: See header.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved. Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford Chris Danford
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
*/ */
#include "MenuElements.h" #include "ScreenWithMenuElements.h"
#include "RageUtil.h"
#include "ScreenManager.h"
#include "GameConstantsAndTypes.h"
#include "PrefsManager.h"
#include "RageLog.h"
#include "GameManager.h"
#include "GameState.h"
#include "ThemeManager.h"
#include "MenuTimer.h" #include "MenuTimer.h"
#include "HelpDisplay.h" #include "HelpDisplay.h"
#include "RageLog.h"
#include "ThemeManager.h"
#include "GameState.h"
#include "StyleDef.h"
#include "PrefsManager.h"
#include "ScreenManager.h"
#define TIMER_SECONDS THEME->GetMetricI(m_sName,"TimerSeconds") #define TIMER_SECONDS THEME->GetMetricI(m_sName,"TimerSeconds")
#define STYLE_ICON THEME->GetMetricB(m_sName,"StyleIcon") #define STYLE_ICON THEME->GetMetricB(m_sName,"StyleIcon")
#define MEMORY_CARD_ICONS THEME->GetMetricB(m_sName,"MemoryCardIcons") #define MEMORY_CARD_ICONS THEME->GetMetricB(m_sName,"MemoryCardIcons")
ScreenWithMenuElements::ScreenWithMenuElements( CString sClassName ) : Screen( sClassName )
MenuElements::MenuElements()
{ {
LOG->Trace( "ScreenWithMenuElements::ScreenWithMenuElements()" );
m_MenuTimer = new MenuTimer; m_MenuTimer = new MenuTimer;
m_textHelp = new HelpDisplay; m_textHelp = new HelpDisplay;
}
MenuElements::~MenuElements()
{
delete m_MenuTimer;
delete m_textHelp;
}
void MenuElements::Load( CString sClassName )
{
LOG->Trace( "MenuElements::MenuElements()" ); LOG->Trace( "MenuElements::MenuElements()" );
ASSERT( this->m_SubActors.empty() ); // don't call Load twice! ASSERT( this->m_SubActors.empty() ); // don't call Load twice!
@@ -53,8 +43,8 @@ void MenuElements::Load( CString sClassName )
m_autoHeader.Load( THEME->GetPathToG(m_sName+" header") ); m_autoHeader.Load( THEME->GetPathToG(m_sName+" header") );
m_autoHeader->SetName("Header"); m_autoHeader->SetName("Header");
UtilSetXY( m_autoHeader, "MenuElements" ); UtilSetXY( m_autoHeader, m_sName );
UtilOnCommand( m_autoHeader, "MenuElements" ); UtilOnCommand( m_autoHeader, m_sName );
this->AddChild( m_autoHeader ); this->AddChild( m_autoHeader );
if( STYLE_ICON && GAMESTATE->m_CurStyle != STYLE_INVALID ) if( STYLE_ICON && GAMESTATE->m_CurStyle != STYLE_INVALID )
@@ -63,8 +53,8 @@ void MenuElements::Load( CString sClassName )
m_sprStyleIcon.SetName( "StyleIcon" ); m_sprStyleIcon.SetName( "StyleIcon" );
m_sprStyleIcon.Load( THEME->GetPathToG(sIconFileName) ); m_sprStyleIcon.Load( THEME->GetPathToG(sIconFileName) );
m_sprStyleIcon.StopAnimating(); m_sprStyleIcon.StopAnimating();
UtilSetXY( m_sprStyleIcon, "MenuElements" ); UtilSetXY( m_sprStyleIcon, m_sName );
UtilOnCommand( m_sprStyleIcon, "MenuElements" ); UtilOnCommand( m_sprStyleIcon, m_sName );
this->AddChild( &m_sprStyleIcon ); this->AddChild( &m_sprStyleIcon );
} }
@@ -74,8 +64,8 @@ void MenuElements::Load( CString sClassName )
{ {
m_MemoryCardDisplay[p].Load( (PlayerNumber)p ); m_MemoryCardDisplay[p].Load( (PlayerNumber)p );
m_MemoryCardDisplay[p].SetName( ssprintf("MemoryCardDisplayP%d",p+1) ); m_MemoryCardDisplay[p].SetName( ssprintf("MemoryCardDisplayP%d",p+1) );
UtilSetXY( m_MemoryCardDisplay[p], "MenuElements" ); UtilSetXY( m_MemoryCardDisplay[p], m_sName );
UtilOnCommand( m_MemoryCardDisplay[p], "MenuElements" ); UtilOnCommand( m_MemoryCardDisplay[p], m_sName );
this->AddChild( &m_MemoryCardDisplay[p] ); this->AddChild( &m_MemoryCardDisplay[p] );
} }
} }
@@ -84,8 +74,8 @@ void MenuElements::Load( CString sClassName )
if( m_bTimerEnabled ) if( m_bTimerEnabled )
{ {
m_MenuTimer->SetName( "Timer" ); m_MenuTimer->SetName( "Timer" );
UtilSetXY( m_MenuTimer, "MenuElements" ); UtilSetXY( m_MenuTimer, m_sName );
UtilOnCommand( m_MenuTimer, "MenuElements" ); UtilOnCommand( m_MenuTimer, m_sName );
if( TIMER_SECONDS > 0 && PREFSMAN->m_bMenuTimer && !GAMESTATE->m_bEditing ) if( TIMER_SECONDS > 0 && PREFSMAN->m_bMenuTimer && !GAMESTATE->m_bEditing )
m_MenuTimer->SetSeconds( TIMER_SECONDS ); m_MenuTimer->SetSeconds( TIMER_SECONDS );
else else
@@ -95,14 +85,14 @@ void MenuElements::Load( CString sClassName )
m_autoFooter.Load( THEME->GetPathToG(m_sName+" footer") ); m_autoFooter.Load( THEME->GetPathToG(m_sName+" footer") );
m_autoFooter->SetName("Footer"); m_autoFooter->SetName("Footer");
UtilSetXY( m_autoFooter, "MenuElements" ); UtilSetXY( m_autoFooter, m_sName );
UtilOnCommand( m_autoFooter, "MenuElements" ); UtilOnCommand( m_autoFooter, m_sName );
this->AddChild( m_autoFooter ); this->AddChild( m_autoFooter );
m_textHelp->SetName( "HelpDisplay", "Help" ); m_textHelp->SetName( "HelpDisplay", "Help" );
m_textHelp->Load(); m_textHelp->Load();
UtilSetXY( m_textHelp, "MenuElements" ); UtilSetXY( m_textHelp, m_sName );
UtilOnCommand( m_textHelp, "MenuElements" ); UtilOnCommand( m_textHelp, m_sName );
CStringArray asHelpTips; CStringArray asHelpTips;
split( THEME->GetMetric(m_sName,"HelpText"), "\n", asHelpTips ); split( THEME->GetMetric(m_sName,"HelpText"), "\n", asHelpTips );
m_textHelp->SetTips( asHelpTips ); m_textHelp->SetTips( asHelpTips );
@@ -110,40 +100,41 @@ void MenuElements::Load( CString sClassName )
m_In.Load( THEME->GetPathToB(m_sName+" in") ); m_In.Load( THEME->GetPathToB(m_sName+" in") );
m_In.SetZ( -1000 ); // always on top
this->AddChild( &m_In ); this->AddChild( &m_In );
m_Out.Load( THEME->GetPathToB(m_sName+" out") ); m_Out.Load( THEME->GetPathToB(m_sName+" out") );
m_Out.SetZ( -1000 ); // always on top
this->AddChild( &m_Out ); this->AddChild( &m_Out );
m_Back.Load( THEME->GetPathToB("Common back") ); m_Back.Load( THEME->GetPathToB("Common back") );
m_Back.SetZ( -1000 ); // always on top
this->AddChild( &m_Back ); this->AddChild( &m_Back );
m_soundBack.Load( THEME->GetPathToS("Common back") );
m_In.StartTransitioning(); m_In.StartTransitioning();
} }
void MenuElements::Update( float fDeltaTime ) ScreenWithMenuElements::~ScreenWithMenuElements()
{ {
ActorFrame::Update(fDeltaTime); SAFE_DELETE( m_MenuTimer );
SAFE_DELETE( m_textHelp );
} }
void MenuElements::StartTransitioning( ScreenMessage smSendWhenDone ) void ScreenWithMenuElements::StartTransitioning( ScreenMessage smSendWhenDone )
{ {
if( m_bTimerEnabled ) if( m_bTimerEnabled )
{ {
m_MenuTimer->SetSeconds( 0 ); m_MenuTimer->SetSeconds( 0 );
m_MenuTimer->Stop(); m_MenuTimer->Stop();
UtilOffCommand( m_MenuTimer, "MenuElements" ); UtilOffCommand( m_MenuTimer, m_sName );
} }
UtilOffCommand( m_autoHeader, "MenuElements" ); UtilOffCommand( m_autoHeader, m_sName );
UtilOffCommand( m_sprStyleIcon, "MenuElements" ); UtilOffCommand( m_sprStyleIcon, m_sName );
for( int p=0; p<NUM_PLAYERS; p++ ) for( int p=0; p<NUM_PLAYERS; p++ )
UtilOffCommand( m_MemoryCardDisplay[p], "MenuElements" ); UtilOffCommand( m_MemoryCardDisplay[p], m_sName );
UtilOffCommand( m_autoFooter, "MenuElements" ); UtilOffCommand( m_autoFooter, m_sName );
UtilOffCommand( m_textHelp, "MenuElements" ); UtilOffCommand( m_textHelp, m_sName );
m_Background.PlayCommand("Off"); m_Background.PlayCommand("Off");
@@ -162,56 +153,22 @@ void MenuElements::StartTransitioning( ScreenMessage smSendWhenDone )
// SCREENMAN->PostMessageToTopScreen( smSendWhenDone, TimeUntilFinished ); // SCREENMAN->PostMessageToTopScreen( smSendWhenDone, TimeUntilFinished );
} }
void MenuElements::Back( ScreenMessage smSendWhenDone ) void ScreenWithMenuElements::Back( ScreenMessage smSendWhenDone )
{ {
if( m_Back.IsTransitioning() ) if( m_Back.IsTransitioning() )
return; // ignore return; // ignore
m_MenuTimer->Stop(); m_MenuTimer->Stop();
m_Back.StartTransitioning( smSendWhenDone ); m_Back.StartTransitioning( smSendWhenDone );
m_soundBack.Play(); SCREENMAN->PlayBackSound();
} }
void MenuElements::DrawPrimitives() bool ScreenWithMenuElements::IsTransitioning()
{
// do nothing. Call DrawBottomLayer() and DrawTopLayer() instead.
}
void MenuElements::DrawTopLayer()
{
ASSERT( !this->m_SubActors.empty() ); // Load first
BeginDraw();
m_autoHeader->Draw();
m_sprStyleIcon.Draw();
m_autoFooter->Draw();
for( int p=0; p<NUM_PLAYERS; p++ )
m_MemoryCardDisplay[p].Draw();
if( m_bTimerEnabled )
m_MenuTimer->Draw();
m_textHelp->Draw();
m_In.Draw();
m_Out.Draw();
m_Back.Draw();
EndDraw();
}
void MenuElements::DrawBottomLayer()
{
BeginDraw();
m_Background.Draw();
EndDraw();
}
bool MenuElements::IsTransitioning()
{ {
return m_In.IsTransitioning() || m_Out.IsTransitioning() || m_Back.IsTransitioning(); return m_In.IsTransitioning() || m_Out.IsTransitioning() || m_Back.IsTransitioning();
} }
void MenuElements::StopTimer() void ScreenWithMenuElements::StopTimer()
{ {
m_MenuTimer->Stop(); m_MenuTimer->Stop();
} }
@@ -1,14 +1,13 @@
#ifndef MENUELEMENTS_H #ifndef ScreenWithMenuElements_H
#define MENUELEMENTS_H #define ScreenWithMenuElements_H
/* /*
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
File: MenuElements.h Class: ScreenWithMenuElements
Desc: Displays common components of menu screens: Desc: Load one of several screens.
Background, Top Bar, Bottom Bar, help message, credits or PlayerOptions, style icon,
Menu Timer
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved. Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
*/ */
@@ -22,28 +21,21 @@
class MenuTimer; class MenuTimer;
class HelpDisplay; class HelpDisplay;
class MenuElements : public ActorFrame
class ScreenWithMenuElements : public Screen
{ {
public: public:
MenuElements(); ScreenWithMenuElements( CString sName );
virtual ~MenuElements(); virtual ~ScreenWithMenuElements();
virtual void DrawPrimitives();
void Load( CString sClassName );
void DrawTopLayer();
void DrawBottomLayer();
void StartTransitioning( ScreenMessage smSendWhenDone ); void StartTransitioning( ScreenMessage smSendWhenDone );
void Back( ScreenMessage smSendWhenDone ); void Back( ScreenMessage smSendWhenDone );
void Update( float fDeltaTime );
bool IsTransitioning(); bool IsTransitioning();
bool m_bTimerEnabled; bool m_bTimerEnabled;
void StopTimer(); void StopTimer();
public: // let owner tinker with these objects protected:
BGAnimation m_Background; BGAnimation m_Background;
AutoActor m_autoHeader; AutoActor m_autoHeader;
@@ -56,8 +48,6 @@ public: // let owner tinker with these objects
Transition m_In; Transition m_In;
Transition m_Out; Transition m_Out;
Transition m_Back; Transition m_Back;
RageSound m_soundBack;
}; };
#endif #endif