Merge pull request #316 from kyzentun/DefaultFailPref
Reinstate DefaultFailType preference
This commit is contained in:
@@ -659,7 +659,7 @@ Double for 1 Credit=Double for 1 Credit
|
||||
Drunk=Drunk
|
||||
Dynamic Random=Dynamic Random
|
||||
Echo=Echo
|
||||
End of Song=End of Song
|
||||
EndOfSong=End of Song
|
||||
FailAtEnd=Fail at end
|
||||
EffectSpeed=Speed
|
||||
EffectPitch=Pitch
|
||||
|
||||
@@ -10,28 +10,6 @@ function AreStageSongModsForced()
|
||||
return GAMESTATE:IsAnExtraStage() or bOni or bBattle or bRave
|
||||
end
|
||||
|
||||
local default_fail_applied= {}
|
||||
|
||||
function ResetDefaultFail()
|
||||
default_fail_applied= {}
|
||||
end
|
||||
|
||||
function SetFail()
|
||||
local sFail = ""
|
||||
if GetGamePref("DefaultFail") then
|
||||
sFail = string.format("FailType_%s", GetGamePref("DefaultFail"))
|
||||
else
|
||||
sFail = "FailType_Off"
|
||||
end
|
||||
for pn in ivalues(GAMESTATE:GetHumanPlayers()) do
|
||||
if not default_fail_applied[pn] then
|
||||
GAMESTATE:GetPlayerState(pn):GetPlayerOptions("ModsLevel_Preferred"):FailSetting(sFail)
|
||||
default_fail_applied[pn]= true
|
||||
MESSAGEMAN:Broadcast( "PlayerOptionsChanged", {PlayerNumber = pn} )
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function ScreenSelectMusic:setupmusicstagemods()
|
||||
Trace( "setupmusicstagemods" )
|
||||
local pm = GAMESTATE:GetPlayMode()
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
function InitGamePrefs()
|
||||
local Prefs =
|
||||
{
|
||||
{ "DefaultFail", "Immediate" },
|
||||
};
|
||||
|
||||
local BPrefs =
|
||||
@@ -150,82 +149,3 @@ end;
|
||||
--[[ end themeoption rows ]]
|
||||
|
||||
--[[ game option rows ]]
|
||||
local fail_choices= { "Immediate","ImmediateContinue", "EndOfSong", "Off" }
|
||||
function GamePrefDefaultFail()
|
||||
return {
|
||||
Name = "GamePrefDefaultFail";
|
||||
LayoutType = "ShowAllInRow";
|
||||
SelectType = "SelectOne";
|
||||
OneChoiceForAllPlayers = true;
|
||||
ExportOnChange = false;
|
||||
Choices = fail_choices;
|
||||
LoadSelections = function(self, list, pn)
|
||||
if ReadGamePrefFromFile("DefaultFail") ~= nil then
|
||||
local default= GetGamePref("DefaultFail")
|
||||
if default then
|
||||
if default == "Immediate" then
|
||||
list[1] = true
|
||||
elseif default == "ImmediateContinue" then
|
||||
list[2] = true
|
||||
elseif default == "EndOfSong" or default == "AtEnd" then
|
||||
list[3] = true
|
||||
elseif default == "Off" then
|
||||
list[4] = true
|
||||
else
|
||||
list[1] = true
|
||||
end
|
||||
else
|
||||
list[1] = true
|
||||
end
|
||||
else
|
||||
WriteGamePrefToFile("DefaultFail","Immediate")
|
||||
list[1] = true
|
||||
end
|
||||
end;
|
||||
SaveSelections = function(self, list, pn)
|
||||
local val
|
||||
if list[1] then
|
||||
val = fail_choices[1]
|
||||
elseif list[2] then
|
||||
val = fail_choices[2]
|
||||
elseif list[3] then
|
||||
val = fail_choices[3]
|
||||
elseif list[4] then
|
||||
val = fail_choices[4]
|
||||
else
|
||||
val = fail_choices[1]
|
||||
end
|
||||
WriteGamePrefToFile("DefaultFail",val)
|
||||
MESSAGEMAN:Broadcast("PreferenceSet", { Message == "Set Preference" } )
|
||||
THEME:ReloadMetrics()
|
||||
end;
|
||||
}
|
||||
end
|
||||
|
||||
function SongPrefFail()
|
||||
-- Apply the default fail type to any players that haven't had it applied.
|
||||
SetFail()
|
||||
return {
|
||||
Name= "Fail",
|
||||
LayoutType= "ShowAllInRow",
|
||||
SelectType= "SelectOne",
|
||||
OneChoiceForAllPlayers= false,
|
||||
ExportOnChange= false,
|
||||
Choices= fail_choices,
|
||||
LoadSelections= function(self, list, pn)
|
||||
local fail= GAMESTATE:GetPlayerState(pn):GetPlayerOptions("ModsLevel_Preferred"):FailSetting():sub(10)
|
||||
for i, c in ipairs(self.Choices) do
|
||||
if c == fail then
|
||||
list[i]= true
|
||||
end
|
||||
end
|
||||
end,
|
||||
SaveSelections= function(self, list, pn)
|
||||
for i, c in ipairs(self.Choices) do
|
||||
if list[i] then
|
||||
GAMESTATE:GetPlayerState(pn):GetPlayerOptions("ModsLevel_Preferred"):FailSetting("FailType_" .. c)
|
||||
end
|
||||
end
|
||||
end
|
||||
}
|
||||
end
|
||||
|
||||
@@ -1816,7 +1816,7 @@ Fallback="ScreenSelectMaster"
|
||||
PrevScreen="ScreenInit"
|
||||
NextScreen="ScreenInit"
|
||||
#
|
||||
ScreenBeginCommand=%ResetDefaultFail
|
||||
ScreenBeginCommand=
|
||||
StopMusicOnBack=true
|
||||
#
|
||||
CoinModeChangeScreen=Branch.TitleMenu()
|
||||
@@ -2955,7 +2955,7 @@ Line6="conf,SoundVolume"
|
||||
Line7="conf,TimingWindowScale"
|
||||
Line8="conf,LifeDifficulty"
|
||||
Line9="conf,AllowW1"
|
||||
LineFA="lua,GamePrefDefaultFail()"
|
||||
LineFA="conf,DefaultFailType"
|
||||
Line10="conf,AutogenSteps"
|
||||
Line11="conf,ShowBanners"
|
||||
Line12="conf,ShowCaution"
|
||||
@@ -3005,7 +3005,7 @@ LineNames="3,4,8,SI,SM,11,13,14,15,16,28,29,30,31"
|
||||
#LineScore="lua,UserPrefScoringMode()"
|
||||
Line3="conf,TimingWindowScale"
|
||||
Line4="conf,LifeDifficulty"
|
||||
Line8="lua,GamePrefDefaultFail()"
|
||||
Line8="conf,DefaultFailType"
|
||||
LineSI="lua,SpeedModIncSize()"
|
||||
LineSM="lua,SpeedModIncLarge()"
|
||||
Line11="conf,AllowW1"
|
||||
@@ -3198,7 +3198,6 @@ LineNames="1,2,3,4,5,6,7,8,9,10"
|
||||
Line1="list,LifeType"
|
||||
Line2="list,BarDrain"
|
||||
Line3="list,BatLives"
|
||||
##Line4="lua,GamePrefDefaultFail()"
|
||||
Line5="list,Assist"
|
||||
Line6="list,Rate"
|
||||
Line7="list,SoundEffect"
|
||||
@@ -3206,7 +3205,7 @@ Line8="list,AutoAdjust"
|
||||
Line9="list,Background"
|
||||
Line10="list,SaveScores"
|
||||
Line11="list,SaveReplays"
|
||||
Line4="lua,SongPrefFail()"
|
||||
Line4="list,Fail"
|
||||
|
||||
[ScreenSplash]
|
||||
Class="ScreenSplash"
|
||||
|
||||
@@ -499,6 +499,7 @@ static const char *FailTypeNames[] = {
|
||||
};
|
||||
XToString( FailType );
|
||||
XToLocalizedString( FailType );
|
||||
StringToX( FailType );
|
||||
LuaXType( FailType );
|
||||
|
||||
/*
|
||||
|
||||
@@ -74,7 +74,7 @@ void PlayerOptions::Init()
|
||||
ZERO( m_bTurns );
|
||||
ZERO( m_bTransforms );
|
||||
m_bMuteOnError = false;
|
||||
m_FailType = FailType_Immediate;
|
||||
m_FailType = PREFSMAN->m_DefaultFailType;
|
||||
m_sNoteSkin = "";
|
||||
}
|
||||
|
||||
|
||||
@@ -286,6 +286,7 @@ PrefsManager::PrefsManager() :
|
||||
m_sCoursesToShowRanking ( "CoursesToShowRanking", "" ),
|
||||
|
||||
m_bQuirksMode ( "QuirksMode", false ),
|
||||
m_DefaultFailType("DefaultFailtype", FailType_ImmediateContinue),
|
||||
|
||||
/* Debug: */
|
||||
m_bLogToDisk ( "LogToDisk", true ),
|
||||
|
||||
+2
-1
@@ -2,6 +2,7 @@
|
||||
#define PREFSMANAGER_H
|
||||
|
||||
#include "Preference.h"
|
||||
#include "GameConstantsAndTypes.h"
|
||||
|
||||
class IniFile;
|
||||
|
||||
@@ -293,7 +294,7 @@ public:
|
||||
|
||||
/** @brief Enable some quirky behavior used by some older versions of StepMania. */
|
||||
Preference<bool> m_bQuirksMode;
|
||||
// Preference<RString> m_sDefaultFailType; // XXX: Fix fail bug?
|
||||
Preference<FailType> m_DefaultFailType;
|
||||
|
||||
// Debug:
|
||||
Preference<bool> m_bLogToDisk;
|
||||
|
||||
@@ -480,37 +480,6 @@ static int GetLifeDifficulty()
|
||||
LuaFunction( GetLifeDifficulty, GetLifeDifficulty() );
|
||||
|
||||
|
||||
static void DefaultFailType( int &sel, bool ToSel, const ConfOption *pConfOption )
|
||||
{
|
||||
if( ToSel )
|
||||
{
|
||||
PlayerOptions po;
|
||||
po.FromString( PREFSMAN->m_sDefaultModifiers );
|
||||
sel = po.m_FailType;
|
||||
}
|
||||
else
|
||||
{
|
||||
PlayerOptions po;
|
||||
SongOptions so;
|
||||
GetPrefsDefaultModifiers( po, so );
|
||||
|
||||
switch( sel )
|
||||
{
|
||||
case 0: po.m_FailType = FailType_Immediate; break;
|
||||
case 1: po.m_FailType = FailType_ImmediateContinue; break;
|
||||
case 2: po.m_FailType = FailType_EndOfSong; break;
|
||||
case 3: po.m_FailType = FailType_Off; break;
|
||||
default:
|
||||
{
|
||||
LOG->Warn("Invalid fail type %d! Going to use the default...", sel);
|
||||
po.m_FailType = FailType_Immediate; break;
|
||||
}
|
||||
}
|
||||
|
||||
SetPrefsDefaultModifiers( po, so );
|
||||
}
|
||||
}
|
||||
|
||||
// Graphic options
|
||||
struct res_t
|
||||
{
|
||||
@@ -739,7 +708,7 @@ static void InitializeConfOptions()
|
||||
ADD( ConfOption( "ProgressiveLifebar", MovePref<int>, "Off","|1","|2","|3","|4","|5","|6","|7","|8") );
|
||||
ADD( ConfOption( "ProgressiveStageLifebar", MovePref<int>, "Off","|1","|2","|3","|4","|5","|6","|7","|8","Insanity") );
|
||||
ADD( ConfOption( "ProgressiveNonstopLifebar", MovePref<int>, "Off","|1","|2","|3","|4","|5","|6","|7","|8","Insanity") );
|
||||
ADD( ConfOption( "DefaultFailType", DefaultFailType, "Immediate","ImmediateContinue","EndOfSong","Off" ) );
|
||||
ADD( ConfOption( "DefaultFailType", MovePref<FailType>, "Immediate","ImmediateContinue","EndOfSong","Off" ) );
|
||||
ADD( ConfOption( "CoinsPerCredit", CoinsPerCredit, "|1","|2","|3","|4","|5","|6","|7","|8","|9","|10","|11","|12","|13","|14","|15","|16" ) );
|
||||
ADD( ConfOption( "Premium", MovePref<Premium>, "Off","Double for 1 Credit","2 Players for 1 Credit" ) );
|
||||
ADD( ConfOption( "JointPremium", JointPremium, "Off","2 Players for 1 Credit" ) );
|
||||
|
||||
Reference in New Issue
Block a user