diff --git a/stepmania/src/ScreenOptions.cpp b/stepmania/src/ScreenOptions.cpp index b33724e18d..480c23dd7e 100644 --- a/stepmania/src/ScreenOptions.cpp +++ b/stepmania/src/ScreenOptions.cpp @@ -73,41 +73,42 @@ static CString OPTION_EXPLANATION( CString s ) } //REGISTER_SCREEN_CLASS( ScreenOptions ); // can't be instantiated -ScreenOptions::ScreenOptions( CString sClassName ) : ScreenWithMenuElements(sClassName), - NUM_ROWS_SHOWN (m_sName,"NumRowsShown"), - ROW_INIT_COMMAND (m_sName,"RowInitCommand"), - ROW_ON_COMMAND (m_sName,"RowOnCommand"), - ROW_OFF_COMMAND (m_sName,"RowOffCommand"), - EXPLANATION_X (m_sName,EXPLANATION_X_NAME,NUM_PLAYERS), - EXPLANATION_Y (m_sName,EXPLANATION_Y_NAME,NUM_PLAYERS), - EXPLANATION_ON_COMMAND (m_sName,EXPLANATION_ON_COMMAND_NAME,NUM_PLAYERS), - EXPLANATION_TOGETHER_X (m_sName,"ExplanationTogetherX"), - EXPLANATION_TOGETHER_Y (m_sName,"ExplanationTogetherY"), - EXPLANATION_TOGETHER_ON_COMMAND (m_sName,"ExplanationTogetherOnCommand"), - SHOW_SCROLL_BAR (m_sName,"ShowScrollBar"), - SCROLL_BAR_HEIGHT (m_sName,"ScrollBarHeight"), - SCROLL_BAR_TIME (m_sName,"ScrollBarTime"), - LINE_HIGHLIGHT_X (m_sName,"LineHighlightX"), - SHOW_EXIT_ROW (m_sName,"ShowExitRow"), - SEPARATE_EXIT_ROW (m_sName,"SeparateExitRow"), - SEPARATE_EXIT_ROW_Y (m_sName,"SeparateExitRowY"), - SHOW_EXPLANATIONS (m_sName,"ShowExplanations"), - ALLOW_REPEATING_CHANGE_VALUE_INPUT(m_sName,"AllowRepeatingChangeValueInput"), - CURSOR_TWEEN_SECONDS (m_sName,"CursorTweenSeconds"), - WRAP_VALUE_IN_ROW (m_sName,"WrapValueInRow") +ScreenOptions::ScreenOptions( CString sClassName ) : ScreenWithMenuElements(sClassName) { m_fLockInputSecs = 0.0001f; // always lock for a tiny amount of time so that we throw away any queued inputs during the load. // These can be overridden in a derived Init(). m_OptionsNavigation = PREFSMAN->m_bArcadeOptionsNavigation? NAV_THREE_KEY:NAV_FIVE_KEY; m_InputMode = INPUTMODE_SHARE_CURSOR; - - m_exprRowPositionTransformFunction.SetFromExpression( THEME->GetMetric(m_sName,"RowPositionTransformFunction") ); } void ScreenOptions::Init() { + NUM_ROWS_SHOWN.Load( m_sName, "NumRowsShown" ); + ROW_INIT_COMMAND.Load( m_sName, "RowInitCommand" ); + ROW_ON_COMMAND.Load( m_sName, "RowOnCommand" ); + ROW_OFF_COMMAND.Load( m_sName, "RowOffCommand" ); + EXPLANATION_X.Load( m_sName, EXPLANATION_X_NAME, NUM_PLAYERS ); + EXPLANATION_Y.Load( m_sName, EXPLANATION_Y_NAME, NUM_PLAYERS ); + EXPLANATION_ON_COMMAND.Load( m_sName, EXPLANATION_ON_COMMAND_NAME, NUM_PLAYERS ); + EXPLANATION_TOGETHER_X.Load( m_sName, "ExplanationTogetherX" ); + EXPLANATION_TOGETHER_Y.Load( m_sName, "ExplanationTogetherY" ); + EXPLANATION_TOGETHER_ON_COMMAND.Load( m_sName, "ExplanationTogetherOnCommand" ); + SHOW_SCROLL_BAR.Load( m_sName, "ShowScrollBar" ); + SCROLL_BAR_HEIGHT.Load( m_sName, "ScrollBarHeight" ); + SCROLL_BAR_TIME.Load( m_sName, "ScrollBarTime" ); + LINE_HIGHLIGHT_X.Load( m_sName, "LineHighlightX" ); + SHOW_EXIT_ROW.Load( m_sName, "ShowExitRow" ); + SEPARATE_EXIT_ROW.Load( m_sName, "SeparateExitRow" ); + SEPARATE_EXIT_ROW_Y.Load( m_sName, "SeparateExitRowY" ); + SHOW_EXPLANATIONS.Load( m_sName, "ShowExplanations" ); + ALLOW_REPEATING_CHANGE_VALUE_INPUT.Load( m_sName, "AllowRepeatingChangeValueInput" ); + CURSOR_TWEEN_SECONDS.Load( m_sName, "CursorTweenSeconds" ); + WRAP_VALUE_IN_ROW.Load( m_sName, "WrapValueInRow" ); + + m_exprRowPositionTransformFunction.SetFromExpression( THEME->GetMetric(m_sName,"RowPositionTransformFunction") ); + ScreenWithMenuElements::Init(); m_SoundChangeCol.Load( THEME->GetPathS(m_sName,"change"), true ); diff --git a/stepmania/src/ScreenSelect.cpp b/stepmania/src/ScreenSelect.cpp index 4ffa398efa..33d6fd7593 100644 --- a/stepmania/src/ScreenSelect.cpp +++ b/stepmania/src/ScreenSelect.cpp @@ -19,11 +19,6 @@ #define IDLE_TIMEOUT_SCREEN THEME->GetMetric (m_sName,"IdleTimeoutScreen") #define UPDATE_ON_MESSAGE THEME->GetMetric (m_sName,"UpdateOnMessage") -ScreenSelect::ScreenSelect( CString sClassName ) : - ScreenWithMenuElements(sClassName) -{ -} - void ScreenSelect::Init() { IDLE_COMMENT_SECONDS.Load( m_sName, "IdleCommentSeconds" ); diff --git a/stepmania/src/ScreenSelect.h b/stepmania/src/ScreenSelect.h index a9b66b9f64..2f9b1c5cf1 100644 --- a/stepmania/src/ScreenSelect.h +++ b/stepmania/src/ScreenSelect.h @@ -11,7 +11,6 @@ class ScreenSelect : public ScreenWithMenuElements { public: - ScreenSelect( CString sClassName ); virtual void Init(); virtual void BeginScreen(); virtual ~ScreenSelect(); diff --git a/stepmania/src/ScreenSelectDifficulty.cpp b/stepmania/src/ScreenSelectDifficulty.cpp index 9cb1985398..d48ef5b64a 100644 --- a/stepmania/src/ScreenSelectDifficulty.cpp +++ b/stepmania/src/ScreenSelectDifficulty.cpp @@ -26,10 +26,7 @@ #define IGNORED_ELEMENT_COMMAND THEME->GetMetricA(m_sName,"IgnoredElementOnCommand") -REGISTER_SCREEN_CLASS( ScreenSelectDifficulty ); -ScreenSelectDifficulty::ScreenSelectDifficulty( CString sClassName ) : ScreenSelect( sClassName ) -{ -} +REGISTER_SCREEN_CLASS_NEW( ScreenSelectDifficulty ); void ScreenSelectDifficulty::Init() { diff --git a/stepmania/src/ScreenSelectDifficulty.h b/stepmania/src/ScreenSelectDifficulty.h index 23d822e4e8..1e0bf6e4c1 100644 --- a/stepmania/src/ScreenSelectDifficulty.h +++ b/stepmania/src/ScreenSelectDifficulty.h @@ -14,7 +14,6 @@ class ScreenSelectDifficulty : public ScreenSelect { public: - ScreenSelectDifficulty( CString sName ); virtual void Init(); virtual void BeginScreen(); diff --git a/stepmania/src/ScreenSelectMaster.cpp b/stepmania/src/ScreenSelectMaster.cpp index 715e2b3296..5a1fa6cb6b 100644 --- a/stepmania/src/ScreenSelectMaster.cpp +++ b/stepmania/src/ScreenSelectMaster.cpp @@ -21,10 +21,7 @@ CString CURSOR_OFFSET_Y_FROM_ICON_NAME( size_t p ) { return ssprintf("CursorP%dO /* e.g. "OptionOrderLeft=0:1,1:2,2:3,3:4" */ CString OPTION_ORDER_NAME( size_t dir ) { return "OptionOrder"+MenuDirToString((MenuDir)dir); } -REGISTER_SCREEN_CLASS( ScreenSelectMaster ); -ScreenSelectMaster::ScreenSelectMaster( CString sClassName ) : ScreenSelect( sClassName ) -{ -} +REGISTER_SCREEN_CLASS_NEW( ScreenSelectMaster ); void ScreenSelectMaster::Init() { diff --git a/stepmania/src/ScreenSelectMaster.h b/stepmania/src/ScreenSelectMaster.h index 3821f0c5db..232b7e3b1f 100644 --- a/stepmania/src/ScreenSelectMaster.h +++ b/stepmania/src/ScreenSelectMaster.h @@ -11,7 +11,6 @@ class ScreenSelectMaster : public ScreenSelect { public: - ScreenSelectMaster( CString sName ); virtual void Init(); virtual void BeginScreen(); diff --git a/stepmania/src/ScreenSelectMode.cpp b/stepmania/src/ScreenSelectMode.cpp index 51f58a2bce..63c088cdd6 100644 --- a/stepmania/src/ScreenSelectMode.cpp +++ b/stepmania/src/ScreenSelectMode.cpp @@ -31,10 +31,7 @@ ScreenSelectMode (Constructor) Desc: Sets up the screen display ************************************/ -REGISTER_SCREEN_CLASS( ScreenSelectMode ); -ScreenSelectMode::ScreenSelectMode( CString sClassName ) : ScreenSelect( sClassName ) -{ -} +REGISTER_SCREEN_CLASS_NEW( ScreenSelectMode ); void ScreenSelectMode::Init() { diff --git a/stepmania/src/ScreenSelectMode.h b/stepmania/src/ScreenSelectMode.h index e76812646e..3599f7e4e5 100644 --- a/stepmania/src/ScreenSelectMode.h +++ b/stepmania/src/ScreenSelectMode.h @@ -22,7 +22,6 @@ class ScreenSelectMode : public ScreenSelect { public: - ScreenSelectMode( CString sName ); // Constructor virtual void Init(); virtual ~ScreenSelectMode(); // Destructor virtual void MenuLeft( PlayerNumber pn ); diff --git a/stepmania/src/ScreenSelectStyle.cpp b/stepmania/src/ScreenSelectStyle.cpp index cd41907393..13827fe1bc 100644 --- a/stepmania/src/ScreenSelectStyle.cpp +++ b/stepmania/src/ScreenSelectStyle.cpp @@ -19,10 +19,7 @@ #define DISABLED_COMMAND THEME->GetMetricA(m_sName,"DisabledCommand") -REGISTER_SCREEN_CLASS( ScreenSelectStyle ); -ScreenSelectStyle::ScreenSelectStyle( CString sClassName ) : ScreenSelect( sClassName ) -{ -} +REGISTER_SCREEN_CLASS_NEW( ScreenSelectStyle ); void ScreenSelectStyle::Init() { diff --git a/stepmania/src/ScreenSelectStyle.h b/stepmania/src/ScreenSelectStyle.h index cf65d22839..9ae46a7836 100644 --- a/stepmania/src/ScreenSelectStyle.h +++ b/stepmania/src/ScreenSelectStyle.h @@ -13,7 +13,6 @@ class ScreenSelectStyle : public ScreenSelect { public: - ScreenSelectStyle( CString sName ); virtual void Init(); virtual void BeginScreen(); diff --git a/stepmania/src/ScreenTitleMenu.cpp b/stepmania/src/ScreenTitleMenu.cpp index 220f74733c..b8588baf08 100644 --- a/stepmania/src/ScreenTitleMenu.cpp +++ b/stepmania/src/ScreenTitleMenu.cpp @@ -22,9 +22,8 @@ #define COIN_MODE_CHANGE_SCREEN THEME->GetMetric (m_sName,"CoinModeChangeScreen") -REGISTER_SCREEN_CLASS( ScreenTitleMenu ); -ScreenTitleMenu::ScreenTitleMenu( CString sScreenName ) : - ScreenSelectMaster( sScreenName ) +REGISTER_SCREEN_CLASS_NEW( ScreenTitleMenu ); +ScreenTitleMenu::ScreenTitleMenu() { /* XXX We really need two common calls: 1, something run when exiting from gameplay * (to do this reset), and 2, something run when entering gameplay, to apply default diff --git a/stepmania/src/ScreenTitleMenu.h b/stepmania/src/ScreenTitleMenu.h index 5ad92a198c..14287cb36f 100644 --- a/stepmania/src/ScreenTitleMenu.h +++ b/stepmania/src/ScreenTitleMenu.h @@ -8,7 +8,7 @@ class ScreenTitleMenu : public ScreenSelectMaster { public: - ScreenTitleMenu( CString sName ); + ScreenTitleMenu(); virtual void Init(); virtual ~ScreenTitleMenu();