From fa0bc9582325834c8416e5eac9dae7e7960519d6 Mon Sep 17 00:00:00 2001 From: Steve Checkoway Date: Fri, 18 Aug 2006 01:27:14 +0000 Subject: [PATCH] Stage mods. --- .../Themes/default/Scripts/StageMods.lua | 55 ++++++++++--------- stepmania/Themes/default/metrics.ini | 2 + 2 files changed, 31 insertions(+), 26 deletions(-) diff --git a/stepmania/Themes/default/Scripts/StageMods.lua b/stepmania/Themes/default/Scripts/StageMods.lua index af61edb4da..48c058f099 100644 --- a/stepmania/Themes/default/Scripts/StageMods.lua +++ b/stepmania/Themes/default/Scripts/StageMods.lua @@ -1,31 +1,34 @@ -function SetupStageMods() - if GAMESTATE:IsAnExtraStage() then - if GAMESTATE:GetPreferredSongGroup() == "---Group All---" and - not PREFSMAN:GetPreference("PickExtraStage") then - local song = GAMESTATE:GetCurrentSong() - GAMESTATE:SetPreferredSongGroup( song:GetGroupName() ) - end +function AreStageModsForced() + if GAMESTATE:IsAnExtraStage() then return true end + return false +end - local bExtra2 = GAMESTATE:IsExtraStage2() - local style = GAMESTATE:GetCurrentStyle() - local song, steps, po, so = SONGMAN:GetExtraStageInfo( bExtra2, style ) - local difficulty = steps:GetDifficulty() - - GAMESTATE:SetCurrentSong( song ) - GAMESTATE:SetPreferredSong( song ) - - local fun = function( dummy, pn ) - GAMESTATE:SetCurrentSteps( pn, steps ) - GAMESTATE:GetPlayerState(pn):SetPlayerOptions( ModsLevel_Stage, po ) - GAMESTATE:SetPreferredDifficulty( pn, difficulty ) - MESSAGEMAN:Broadcast( "PlayerOptionsChangedP" .. (pn+1) ) - end - - table.foreach( GAMESTATE:GetHumanPlayers(), fun ) - GAMESTATE:SetSongOptions( ModsLevel_Stage, so ) - MESSAGEMAN:Broadcast( "SongOptionsChanged" ) - return +function ScreenSelectMusic:setupstagemods() + if not GAMESTATE:IsAnExtraStage() then return end + if GAMESTATE:GetPreferredSongGroup() == "---Group All---" and + not PREFSMAN:GetPreference("PickExtraStage") then + local song = GAMESTATE:GetCurrentSong() + GAMESTATE:SetPreferredSongGroup( song:GetGroupName() ) end + + local bExtra2 = GAMESTATE:IsExtraStage2() + local style = GAMESTATE:GetCurrentStyle() + local song, steps, po, so = SONGMAN:GetExtraStageInfo( bExtra2, style ) + local difficulty = steps:GetDifficulty() + + GAMESTATE:SetCurrentSong( song ) + GAMESTATE:SetPreferredSong( song ) + + local fun = function( dummy, pn ) + GAMESTATE:SetCurrentSteps( pn, steps ) + GAMESTATE:GetPlayerState(pn):SetPlayerOptions( ModsLevel_Stage, po ) + GAMESTATE:SetPreferredDifficulty( pn, difficulty ) + MESSAGEMAN:Broadcast( "PlayerOptionsChangedP" .. (pn+1) ) + end + + table.foreach( GAMESTATE:GetHumanPlayers(), fun ) + GAMESTATE:SetSongOptions( ModsLevel_Stage, so ) + MESSAGEMAN:Broadcast( "SongOptionsChanged" ) end -- -- (c) 2006 Steve Checkoway diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index f96b878f09..1d5806476b 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -516,6 +516,7 @@ Codes= OptionsMenuAvailable=OptionsMenuAvailable() SelectMenuAvailable=false ModeMenuAvailable=ModeMenuAvailable() +ScreenBeginCommand=setupstagemods [ScreenSelectCourse] Class=ScreenSelectMusic @@ -4387,6 +4388,7 @@ Answer3Of3OffCommand= UseNameBlacklist=0 DefaultSort=Group DefaultSong= +AreStageModsForced=AreStageModsForced [ScreenMiniMenuContext] Fallback=ScreenMiniMenu