diff --git a/Themes/Til Death/BGAnimations/ScreenSelectMusic overlay/default.lua b/Themes/Til Death/BGAnimations/ScreenSelectMusic overlay/default.lua index c016bf51fe..3a36da003a 100644 --- a/Themes/Til Death/BGAnimations/ScreenSelectMusic overlay/default.lua +++ b/Themes/Til Death/BGAnimations/ScreenSelectMusic overlay/default.lua @@ -44,4 +44,19 @@ GAMESTATE:UpdateDiscordMenu( ": " .. string.format("%5.2f", GetPlayerOrMachineProfile(PLAYER_1):GetPlayerRating()) ) +t[#t + 1] = + Widg.Button { + text = "Options", + width = 50, + height = 25, + border = false, + bgColor = BoostColor(getMainColor("frames"), 7.5), + highlight = {color = BoostColor(getMainColor("frames"), 10)}, + x = SCREEN_WIDTH / 2, + y = 5, + onClick = function(self) + SCREENMAN:GetTopScreen():OpenOptions() + end +} + return t diff --git a/Themes/_fallback/metrics.ini b/Themes/_fallback/metrics.ini index 642aaf5397..eb0037c210 100644 --- a/Themes/_fallback/metrics.ini +++ b/Themes/_fallback/metrics.ini @@ -1,4 +1,4 @@ -# This probably is hard to understand from the way it was made in the first + get it to work and put it anywher# This probably is hard to understand from the way it was made in the first # place, so instead just pay attention to each group, which has tons of notes. # 01 # Global @@ -2068,6 +2068,8 @@ Fallback="ScreenWithMenuElements" NextScreen=Branch.PlayerOptions() PrevScreen=Branch.TitleMenu() # +PlayerOptionsScreen="ScreenPlayerOptions" +# MusicWheelType="MusicWheel" Codes="" # diff --git a/src/ScreenNetSelectMusic.cpp b/src/ScreenNetSelectMusic.cpp index b624cce407..3af3017e68 100644 --- a/src/ScreenNetSelectMusic.cpp +++ b/src/ScreenNetSelectMusic.cpp @@ -56,7 +56,6 @@ ScreenNetSelectMusic::Init() GAMESTATE->m_bPlayingMulti = true; SAMPLE_MUSIC_PREVIEW_MODE.Load(m_sName, "SampleMusicPreviewMode"); MUSIC_WHEEL_TYPE.Load(m_sName, "MusicWheelType"); - PLAYER_OPTIONS_SCREEN.Load(m_sName, "PlayerOptionsScreen"); // todo: handle me theme-side -aj FOREACH_EnabledPlayer(p) @@ -407,6 +406,15 @@ ScreenNetSelectMusic::MenuRight(const InputEventPlus& input) return true; } +void +ScreenNetSelectMusic::OpenOptions() +{ + NSMAN->OnOptions(); + GAMESTATE->m_EditMode = EditMode_Full; + SCREENMAN->AddNewScreenToTop(PLAYER_OPTIONS_SCREEN, + SM_BackFromPlayerOptions); +} + bool ScreenNetSelectMusic::MenuStart(const InputEventPlus& input) { diff --git a/src/ScreenNetSelectMusic.h b/src/ScreenNetSelectMusic.h index a2e9dc59a6..b3b77327d4 100644 --- a/src/ScreenNetSelectMusic.h +++ b/src/ScreenNetSelectMusic.h @@ -27,6 +27,8 @@ class ScreenNetSelectMusic : public ScreenSelectMusic void StartSelectedSong(); bool SelectCurrent(); + void OpenOptions() override; + MusicWheel* GetMusicWheel(); // Lua void PushSelf(lua_State* L) override; @@ -51,7 +53,6 @@ class ScreenNetSelectMusic : public ScreenSelectMusic RString m_sRandomMusicPath; ThemeMetric MUSIC_WHEEL_TYPE; - ThemeMetric PLAYER_OPTIONS_SCREEN; ThemeMetric SAMPLE_MUSIC_FALLBACK_FADE_IN_SECONDS; ThemeMetric SAMPLE_MUSIC_FADE_OUT_SECONDS; diff --git a/src/ScreenSelectMusic.cpp b/src/ScreenSelectMusic.cpp index 1b00ae5920..de794fffe4 100644 --- a/src/ScreenSelectMusic.cpp +++ b/src/ScreenSelectMusic.cpp @@ -107,6 +107,7 @@ ScreenSelectMusic::Init() ROULETTE_TIMER_SECONDS.Load(m_sName, "RouletteTimerSeconds"); ALIGN_MUSIC_BEATS.Load(m_sName, "AlignMusicBeat"); CODES.Load(m_sName, "Codes"); + PLAYER_OPTIONS_SCREEN.Load(m_sName, "PlayerOptionsScreen"); MUSIC_WHEEL_TYPE.Load(m_sName, "MusicWheelType"); SELECT_MENU_AVAILABLE.Load(m_sName, "SelectMenuAvailable"); MODE_MENU_AVAILABLE.Load(m_sName, "ModeMenuAvailable"); @@ -376,6 +377,12 @@ ScreenSelectMusic::Update(float fDeltaTime) CheckBackgroundRequests(false); } +void +ScreenSelectMusic::OpenOptions() +{ + SCREENMAN->AddNewScreenToTop(PLAYER_OPTIONS_SCREEN, + SM_BackFromPlayerOptions); +} void ScreenSelectMusic::DifferentialReload() { @@ -1981,8 +1988,14 @@ class LunaScreenSelectMusic : public Luna p->ChangeSteps(PLAYER_1, IArg(1)); return 0; } + static int OpenOptions(T* p, lua_State* L) + { + p->OpenOptions(); + return 0; + } LunaScreenSelectMusic() { + ADD_METHOD(OpenOptions); ADD_METHOD(GetGoToOptions); ADD_METHOD(GetMusicWheel); ADD_METHOD(OpenOptionsList); diff --git a/src/ScreenSelectMusic.h b/src/ScreenSelectMusic.h index 9979c362aa..5d81d32715 100644 --- a/src/ScreenSelectMusic.h +++ b/src/ScreenSelectMusic.h @@ -50,6 +50,7 @@ class ScreenSelectMusic : public ScreenWithMenuElements // ScreenWithMenuElements override: never play music here; we do it ourself. void StartPlayingMusic() override {} + virtual void OpenOptions(); bool GetGoToOptions() const { return m_bGoToOptions; } MusicWheel* GetMusicWheel() { return &m_MusicWheel; } @@ -100,6 +101,7 @@ class ScreenSelectMusic : public ScreenWithMenuElements RageTimer m_timerIdleComment; ThemeMetric IDLE_COMMENT_SECONDS; + ThemeMetric PLAYER_OPTIONS_SCREEN; ThemeMetric SAMPLE_MUSIC_DELAY_INIT; ThemeMetric SAMPLE_MUSIC_DELAY; ThemeMetric SAMPLE_MUSIC_LOOPS;