Added AllowHoldForOptions preference.

Back button now only backs out of a screen on a press.
Updated changelog.
This commit is contained in:
Kyzentun Keeslala
2016-06-24 16:55:01 -06:00
parent 019ef5728a
commit 7bd64c32af
13 changed files with 97 additions and 13 deletions
+7
View File
@@ -16,6 +16,13 @@ Example:
This means that three strings were added to the "ScreenDebugOverlay" section,
"Mute actions", "Mute actions on", and "Mute actions off".
2016/06/24
----------
* [OptionNames] Double Tap
* [OptionTitles] AllowHoldForOptions
* [OptionExplanations] AllowHoldForOptions
* [ScreenGameplay] GiveUpSelectText
2016/01/18
----------
* [ScreenEdit] Clear timing in region
+29
View File
@@ -4,6 +4,35 @@ The StepMania 5 Changelog covers all post-sm-ssc changes. For a list of changes
from StepMania 4 alpha 5 to sm-ssc v1.2.5, see Changelog_sm-ssc.txt.
________________________________________________________________________________
2016/06/24
----------
* [SelectMusic] Added AllowHoldForOptions preference to disable holding start
to go to the player options screen. [kyzentun]
* [General] Back button will only back out of the screen on a press, not when
it is still being held from the previous screen. [kyzentun]
2016/06/12
----------
* [ScreenSyncOverlay] Moved actors to lua to make them themable. [kyzentun]
2016/06/09
----------
* [Gameplay] Ready and Go announcer sounds no longer play simultaneously. If
the Ready animation doesn't exist and the Go animation exists, only the
Go announcer sound is played. If neither animation exists, only the Ready
announcer sound is played. [kyzentun]
2016/06/07
----------
* [NotesWriterSM] Stops, delays, and warps that occur on the same row are now
summed correctly. Fixes bug that deleted warps that were on the same row
as a stop. [kyzentun]
* [Sound] Ignore invalid SoundDriver preference. [kyzentun]
2016/06/06
----------
* [Language] Traditional Chinese translation added. [ddrtime]
2016/05/25
----------
* [MemoryCards] Fixed bug that caused loading profiles from usb drives to
+3
View File
@@ -342,6 +342,7 @@ Not Supported=Mode not supported while networked.
[OptionExplanations]
Accel=Accelerate, Decelerate or otherwise adjust the arrow speed.
AllowExtraStage=When enabled (and Event Mode isn't on), allows the player to earn extra stages after completing certain requirements.
AllowHoldForOptions=If set to double tap, holding start when selecting a song will not go to the options screen.
AllowSongDeletion=Allow players to permanently delete songs from the system by pressing Ctrl+Backspace when browsing the music wheel.
AllowW1=Enable or disable fantastic judgement. NEVER - never show Fantastic, COURSES ONLY - only during nonstop/oni modes, ALWAYS - all modes of play.
AllowMultipleHighScoreWithSameName=If turned off, only the highest score with a given name will be saved. If turned on, it will allow mutliple high scores with a given name to be saved.
@@ -747,6 +748,7 @@ Distant=Distant
Dizzy=Dizzy
Don'tSave=Don't Save
Double for 1 Credit=Double for 1 Credit
Double Tap=Double Tap
Drunk=Drunk
Dynamic Random=Dynamic Random
Echo=Echo
@@ -945,6 +947,7 @@ Add Mod=Add Mod
Air=Air
All timing=All timing
AllowExtraStage=Allow Extra Stage
AllowHoldForOptions=Allow Hold For Options
AllowSongDeletion=Allow Song Deletion
AllowW1=Fantastic Timing
AllowMultipleHighScoreWithSameName=Competitive Mode
+3 -1
View File
@@ -3133,10 +3133,11 @@ Line14="conf,ShowSongOptions"
Fallback="ScreenOptionsServiceChild"
NextScreen="ScreenOptionsService"
PrevScreen="ScreenOptionsService"
LineNames="1,2,3,4,5,6,7,8"
LineNames="1,2,3,AH,4,5,6,7,8"
Line1="conf,AutoMapOnJoyChange"
Line2="conf,OnlyDedicatedMenuButtons"
Line3="conf,DelayedBack"
LineAH="conf,AllowHoldForOptions"
Line4="conf,ArcadeOptionsNavigation"
Line5="conf,ThreeKeyNavigation"
Line6="conf,MusicWheelSwitchSpeed"
@@ -3464,6 +3465,7 @@ PlayerInitCommand=y,SCREEN_CENTER_Y;zoom,(THEME:GetMetric("Common","ScreenHeight
StartGivesUp=true
BackGivesUp=false
GiveUpSeconds=2.5
UsePauseMenuInsteadOfGiveUp=false
# rage
AllowCenter1Player=true
#
+31 -4
View File
@@ -1,6 +1,13 @@
gameplay_pause_count= 0
course_stopped_by_pause_menu= false
local prompt_text= {
Start= THEME:GetString("ScreenGameplay", "GiveUpStartText"),
Select= THEME:GetString("ScreenGameplay", "GiveUpSelectText"),
Back= THEME:GetString("ScreenGameplay", "GiveUpBackText"),
}
local prompt_actor= false
local pause_buttons= {Start= false, Select= true, Back= true}
local pause_double_tap_time= 1
local tap_debounce_time= .1
@@ -178,13 +185,18 @@ local function pause_and_show(pn)
old_fg_visible= fg:GetVisible()
fg:visible(false)
end
local prompt_text= screen_gameplay:GetChild("Debug")
if prompt_text then
prompt_text:playcommand("TweenOff")
end
prompt_actor:playcommand("Hide")
show_menu(pn)
end
local function show_prompt(button)
prompt_actor:playcommand("Show", {text= prompt_text[button]})
end
local function hide_prompt()
prompt_actor:playcommand("Hide")
end
local function input(event)
local pn= event.PlayerNumber
if not enabled_players[pn] then return end
@@ -222,13 +234,16 @@ local function input(event)
if time_since_press <= pause_double_tap_time then
pause_and_show(pn)
else
show_prompt(button)
pause_press_times[pn]= GetTimeSinceStart()
end
end
else
show_prompt(button)
pause_press_times[pn]= GetTimeSinceStart()
end
else
hide_prompt()
pause_press_times[pn]= nil
end
end
@@ -239,6 +254,18 @@ local frame= Def.ActorFrame{
screen_gameplay= SCREENMAN:GetTopScreen()
screen_gameplay:AddInputCallback(input)
end,
Def.BitmapText{
Font= "Common Normal", InitCommand= function(self)
prompt_actor= self
self:xy(_screen.cx, _screen.h*.75):zoom(.75):diffusealpha(0)
end,
ShowCommand= function(self, param)
self:stoptweening():settext(param.text):accelerate(.25):diffusealpha(1)
end,
HideCommand= function(self)
self:stoptweening():decelerate(.25):diffusealpha(0)
end,
},
}
for i, pn in ipairs(GAMESTATE:GetEnabledPlayers()) do
+1 -1
View File
@@ -85,8 +85,8 @@ HelpText=
[ScreenGameplay]
GiveUpAbortedText=
GiveUpStartText=Double tap &START; to access menu
GiveUpSelectText=Double tap &SELECT; to access menu
GiveUpBackText=Double tap &BACK; to access menu
SkipSongText=Double tap &SELECT; to access menu
HelpText=
[PauseMenu]
+1
View File
@@ -1424,6 +1424,7 @@ HelpOnCommand=visible,false
# 05 # C
[ScreenGameplay]
UsePauseMenuInsteadOfGiveUp=true
#
SongMeterDisplayX=SCREEN_CENTER_X
SongMeterDisplayY=SCREEN_TOP+50
+1
View File
@@ -211,6 +211,7 @@ PrefsManager::PrefsManager() :
m_bMercifulBeginner ( "MercifulBeginner", false ),
m_bMercifulSuperMeter ( "MercifulSuperMeter", true ),
m_bDelayedBack ( "DelayedBack", true ),
m_AllowHoldForOptions("AllowHoldForOptions", true),
m_bShowInstructions ( "ShowInstructions", true ),
m_bShowCaution ( "ShowCaution", true ),
m_bShowNativeLanguage ( "ShowNativeLanguage", true ),
+1
View File
@@ -203,6 +203,7 @@ public:
Preference<bool> m_bMercifulBeginner; // don't subtract from percent score or grade DP, larger W5 window
Preference<bool> m_bMercifulSuperMeter; // negative super deltas are scaled by the players life percentage
Preference<bool> m_bDelayedBack;
Preference<bool> m_AllowHoldForOptions;
Preference<bool> m_bShowInstructions; // how to play a mode
Preference<bool> m_bShowCaution;
Preference<bool> m_bShowNativeLanguage;
+4 -2
View File
@@ -213,8 +213,10 @@ bool Screen::Input( const InputEventPlus &input )
case GAME_BUTTON_MENULEFT: return this->MenuLeft ( input );
case GAME_BUTTON_MENURIGHT: return this->MenuRight( input );
case GAME_BUTTON_BACK:
// Don't make the user hold the back button if they're pressing escape and escape is the back button.
if( !PREFSMAN->m_bDelayedBack || input.type==IET_REPEAT || (input.DeviceI.device == DEVICE_KEYBOARD && input.DeviceI.button == KEY_ESC) )
// Only go back on first press. If somebody is backing out of the
// options screen, they might still be holding it when select music
// appears, and accidentally back out of that too. -Kyz
if(input.type == IET_FIRST_PRESS)
{
if( HANDLE_BACK_BUTTON )
return this->MenuBack( input );
+11 -4
View File
@@ -67,6 +67,7 @@
#define SHOW_SCORE_IN_RAVE THEME->GetMetricB(m_sName,"ShowScoreInRave")
#define SONG_POSITION_METER_WIDTH THEME->GetMetricF(m_sName,"SongPositionMeterWidth")
#define STOP_COURSE_EARLY THEME->GetMetricB(m_sName,"StopCourseEarly") // evaluate this every time it's used
#define USE_PAUSE_MENU_INSTEAD_OF_GIVE_UP THEME->GetMetricB(m_sName, "UsePauseMenuInsteadOfGiveUp")
static ThemeMetric<float> INITIAL_BACKGROUND_BRIGHTNESS ("ScreenGameplay","InitialBackgroundBrightness");
static ThemeMetric<float> SECONDS_BETWEEN_COMMENTS ("ScreenGameplay","SecondsBetweenComments");
@@ -904,6 +905,8 @@ void ScreenGameplay::Init()
m_GiveUpTimer.SetZero();
m_SkipSongTimer.SetZero();
m_gave_up= false;
m_skipped_song= false;
}
bool ScreenGameplay::Center1Player() const
@@ -1933,9 +1936,13 @@ void ScreenGameplay::Update( float fDeltaTime )
}
// update give up
bool bGiveUpTimerFired = !m_GiveUpTimer.IsZero() && m_GiveUpTimer.Ago() > GIVE_UP_SECONDS;
m_gave_up= bGiveUpTimerFired;
m_skipped_song= !m_SkipSongTimer.IsZero() && m_SkipSongTimer.Ago() > GIVE_UP_SECONDS;
bool bGiveUpTimerFired = false;
if(!USE_PAUSE_MENU_INSTEAD_OF_GIVE_UP)
{
bGiveUpTimerFired= !m_GiveUpTimer.IsZero() && m_GiveUpTimer.Ago() > GIVE_UP_SECONDS;
m_gave_up= bGiveUpTimerFired;
m_skipped_song= !m_SkipSongTimer.IsZero() && m_SkipSongTimer.Ago() > GIVE_UP_SECONDS;
}
bool bAllHumanHaveBigMissCombo = true;
@@ -2444,7 +2451,7 @@ bool ScreenGameplay::Input( const InputEventPlus &input )
return false;
}
if( m_DancingState != STATE_OUTRO &&
if(!USE_PAUSE_MENU_INSTEAD_OF_GIVE_UP && m_DancingState != STATE_OUTRO &&
GAMESTATE->IsHumanPlayer(input.pn) &&
!m_Cancel.IsTransitioning() )
{
+1
View File
@@ -783,6 +783,7 @@ static void InitializeConfOptions()
ADD( ConfOption( "OnlyDedicatedMenuButtons", MovePref<bool>, "Use Gameplay Buttons","Only Dedicated Buttons" ) );
ADD( ConfOption( "AutoPlay", MovePref<PlayerController>, "Off","On","CPU-Controlled" ) );
ADD( ConfOption( "DelayedBack", MovePref<bool>, "Instant","Hold" ) );
ADD( ConfOption( "AllowHoldForOptions", MovePref<bool>, "Double Tap", "Hold"));
ADD( ConfOption( "ArcadeOptionsNavigation", MovePref<bool>, "StepMania Style","Arcade Style" ) );
ADD( ConfOption( "ThreeKeyNavigation", MovePref<bool>, "Five Key Menu", "Three Key Menu" ) );
ADD( ConfOption( "MusicWheelSwitchSpeed", MusicWheelSwitchSpeed, "Slow","Normal","Fast","Really Fast" ) );
+4 -1
View File
@@ -1517,7 +1517,10 @@ bool ScreenSelectMusic::MenuStart( const InputEventPlus &input )
* hit accidentally. Accept an initial START right away, though,
* so we don't ignore deliberate fast presses (which would be
* annoying). */
this->PostScreenMessage( SM_AllowOptionsMenuRepeat, 0.5f );
if(PREFSMAN->m_AllowHoldForOptions.Get())
{
this->PostScreenMessage( SM_AllowOptionsMenuRepeat, 0.5f );
}
StartTransitioningScreen( SM_None );
float fTime = max( SHOW_OPTIONS_MESSAGE_SECONDS, this->GetTweenTimeLeft() );