From 2648c65c222237dfed7a22f047587bf84908b27d Mon Sep 17 00:00:00 2001 From: RhythmLunatic Date: Thu, 28 Mar 2019 16:11:36 -0500 Subject: [PATCH] Change Next/Prev OptionsList to CodeDetector --- Themes/_fallback/Scripts/03 Gameplay.lua | 15 +++++++-------- Themes/_fallback/metrics.ini | 4 ++++ src/CodeDetector.cpp | 11 +++++++++++ src/CodeDetector.h | 4 ++++ src/OptionsList.cpp | 6 ++---- src/OptionsList.h | 2 -- 6 files changed, 28 insertions(+), 14 deletions(-) diff --git a/Themes/_fallback/Scripts/03 Gameplay.lua b/Themes/_fallback/Scripts/03 Gameplay.lua index dc29180ecd..84a1ef1218 100644 --- a/Themes/_fallback/Scripts/03 Gameplay.lua +++ b/Themes/_fallback/Scripts/03 Gameplay.lua @@ -331,6 +331,13 @@ local CodeDetectorCodes = { CloseCurrentFolder = { default = "MenuUp-MenuDown", }, + -- OptionsList + PrevOptionsList = { + default = "@MenuUp-MenuDown", + }, + NextOptionsList = { + default = "@MenuDown-MenuUp", + }, -- sorts NextSort1 = { default = "@MenuLeft-@MenuRight-Start", @@ -462,14 +469,6 @@ function GetCodeForGame(codeName) end local OptionsListKeys = { - PrevMenu = { - pump="MenuUp", - default="MenuLeft" - }, - NextMenu = { - pump="MenuDown", - default="MenuRight" - }, PrevItem = { pump="MenuLeft", default="MenuUp" diff --git a/Themes/_fallback/metrics.ini b/Themes/_fallback/metrics.ini index 805d6907d1..0eb954bbaa 100644 --- a/Themes/_fallback/metrics.ini +++ b/Themes/_fallback/metrics.ini @@ -368,6 +368,10 @@ PrevGroup=GetCodeForGame("PrevGroup") CloseCurrentFolder=GetCodeForGame("CloseCurrentFolder") Hidden=GetCodeForGame("Hidden") RandomVanish=GetCodeForGame("RandomVanish") +# OptionsList (if enabled) +PrevOptionsList=GetCodeForGame("PrevOptionsList") +NextOptionsList=GetCodeForGame("NextOptionsList") +# Evaluation screen SaveScreenshot1=GetCodeForGame("SaveScreenshot1") SaveScreenshot2=GetCodeForGame("SaveScreenshot2") # on the player options menu. diff --git a/src/CodeDetector.cpp b/src/CodeDetector.cpp index d35a3a00c2..42780e0805 100644 --- a/src/CodeDetector.cpp +++ b/src/CodeDetector.cpp @@ -53,6 +53,8 @@ const char *CodeNames[] = { "CancelAllPlayerOptions", "BackInEventMode", "CloseCurrentFolder", + "PrevOptionsList", + "NextOptionsList" }; XToString( Code ); @@ -116,6 +118,15 @@ bool CodeDetector::EnteredModeMenu( GameController controller ) return EnteredCode(controller,CODE_MODE_MENU1) || EnteredCode(controller,CODE_MODE_MENU2); } +bool CodeDetector::EnteredPrevOpList( GameController controller ) +{ + return EnteredCode(controller,CODE_PREV_OPLIST); +} +bool CodeDetector::EnteredNextOpList( GameController controller ) +{ + return EnteredCode(controller,CODE_NEXT_OPLIST); +} + #define TOGGLE(v,a,b) if(v!=a) v=a; else v=b; #define FLOAT_TOGGLE(v) if(v!=1.f) v=1.f; else v=0.f; // XXX: Read the metrics file instead! diff --git a/src/CodeDetector.h b/src/CodeDetector.h index d9b6089fbb..f54616af8c 100644 --- a/src/CodeDetector.h +++ b/src/CodeDetector.h @@ -47,6 +47,8 @@ enum Code { CODE_CANCEL_ALL_PLAYER_OPTIONS, CODE_BACK_IN_EVENT_MODE, CODE_CLOSE_CURRENT_FOLDER, + CODE_NEXT_OPLIST, + CODE_PREV_OPLIST, NUM_Code // leave this at the end }; @@ -63,6 +65,8 @@ public: static bool EnteredPrevGroup( GameController controller ); static bool EnteredNextGroup( GameController controller ); static bool EnteredCloseFolder( GameController controller ); + static bool EnteredPrevOpList( GameController controller ); + static bool EnteredNextOpList( GameController controller ); // todo: move to PlayerOptions.h -aj void ChangeScrollSpeed( GameController controller, bool bIncrement ); diff --git a/src/OptionsList.cpp b/src/OptionsList.cpp index 4ebde8728b..109cfecbad 100644 --- a/src/OptionsList.cpp +++ b/src/OptionsList.cpp @@ -188,8 +188,6 @@ void OptionsList::Load( RString sType, PlayerNumber pn ) m_pn = pn; m_bStartIsDown = false; - m_GameButtonPreviousMenu = INPUTMAPPER->GetInputScheme()->ButtonNameToIndex( THEME->GetMetric( m_sName,"PrevMenuButton" ) ); - m_GameButtonNextMenu = INPUTMAPPER->GetInputScheme()->ButtonNameToIndex( THEME->GetMetric( m_sName,"NextMenuButton" ) ); m_GameButtonPreviousItem = INPUTMAPPER->GetInputScheme()->ButtonNameToIndex( THEME->GetMetric( m_sName,"PrevItemButton" ) ); m_GameButtonNextItem = INPUTMAPPER->GetInputScheme()->ButtonNameToIndex( THEME->GetMetric( m_sName,"NextItemButton" ) ); @@ -450,13 +448,13 @@ bool OptionsList::Input( const InputEventPlus &input ) MESSAGEMAN->Broadcast( lMsg ); return true; } - else if ( input.MenuI == m_GameButtonPreviousMenu ) + else if ( CodeDetector::EnteredPrevOpList(input.GameI.controller) ) { if( input.type == IET_FIRST_PRESS ) SwitchMenu( -1 ); return true; } - else if ( input.MenuI == m_GameButtonNextMenu ) + else if ( CodeDetector::EnteredNextOpList(input.GameI.controller) ) { if( input.type == IET_FIRST_PRESS ) SwitchMenu( +1 ); diff --git a/src/OptionsList.h b/src/OptionsList.h index 017caba714..783e1d77c2 100644 --- a/src/OptionsList.h +++ b/src/OptionsList.h @@ -102,8 +102,6 @@ private: vector m_asMenuStack; int m_iMenuStackSelection; protected: - GameButton m_GameButtonPreviousMenu; - GameButton m_GameButtonNextMenu; GameButton m_GameButtonPreviousItem; GameButton m_GameButtonNextItem; };