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
|
Drunk=Drunk
|
||||||
Dynamic Random=Dynamic Random
|
Dynamic Random=Dynamic Random
|
||||||
Echo=Echo
|
Echo=Echo
|
||||||
End of Song=End of Song
|
EndOfSong=End of Song
|
||||||
FailAtEnd=Fail at end
|
FailAtEnd=Fail at end
|
||||||
EffectSpeed=Speed
|
EffectSpeed=Speed
|
||||||
EffectPitch=Pitch
|
EffectPitch=Pitch
|
||||||
|
|||||||
@@ -10,28 +10,6 @@ function AreStageSongModsForced()
|
|||||||
return GAMESTATE:IsAnExtraStage() or bOni or bBattle or bRave
|
return GAMESTATE:IsAnExtraStage() or bOni or bBattle or bRave
|
||||||
end
|
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()
|
function ScreenSelectMusic:setupmusicstagemods()
|
||||||
Trace( "setupmusicstagemods" )
|
Trace( "setupmusicstagemods" )
|
||||||
local pm = GAMESTATE:GetPlayMode()
|
local pm = GAMESTATE:GetPlayMode()
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
function InitGamePrefs()
|
function InitGamePrefs()
|
||||||
local Prefs =
|
local Prefs =
|
||||||
{
|
{
|
||||||
{ "DefaultFail", "Immediate" },
|
|
||||||
};
|
};
|
||||||
|
|
||||||
local BPrefs =
|
local BPrefs =
|
||||||
@@ -150,82 +149,3 @@ end;
|
|||||||
--[[ end themeoption rows ]]
|
--[[ end themeoption rows ]]
|
||||||
|
|
||||||
--[[ game option 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"
|
PrevScreen="ScreenInit"
|
||||||
NextScreen="ScreenInit"
|
NextScreen="ScreenInit"
|
||||||
#
|
#
|
||||||
ScreenBeginCommand=%ResetDefaultFail
|
ScreenBeginCommand=
|
||||||
StopMusicOnBack=true
|
StopMusicOnBack=true
|
||||||
#
|
#
|
||||||
CoinModeChangeScreen=Branch.TitleMenu()
|
CoinModeChangeScreen=Branch.TitleMenu()
|
||||||
@@ -2955,7 +2955,7 @@ Line6="conf,SoundVolume"
|
|||||||
Line7="conf,TimingWindowScale"
|
Line7="conf,TimingWindowScale"
|
||||||
Line8="conf,LifeDifficulty"
|
Line8="conf,LifeDifficulty"
|
||||||
Line9="conf,AllowW1"
|
Line9="conf,AllowW1"
|
||||||
LineFA="lua,GamePrefDefaultFail()"
|
LineFA="conf,DefaultFailType"
|
||||||
Line10="conf,AutogenSteps"
|
Line10="conf,AutogenSteps"
|
||||||
Line11="conf,ShowBanners"
|
Line11="conf,ShowBanners"
|
||||||
Line12="conf,ShowCaution"
|
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()"
|
#LineScore="lua,UserPrefScoringMode()"
|
||||||
Line3="conf,TimingWindowScale"
|
Line3="conf,TimingWindowScale"
|
||||||
Line4="conf,LifeDifficulty"
|
Line4="conf,LifeDifficulty"
|
||||||
Line8="lua,GamePrefDefaultFail()"
|
Line8="conf,DefaultFailType"
|
||||||
LineSI="lua,SpeedModIncSize()"
|
LineSI="lua,SpeedModIncSize()"
|
||||||
LineSM="lua,SpeedModIncLarge()"
|
LineSM="lua,SpeedModIncLarge()"
|
||||||
Line11="conf,AllowW1"
|
Line11="conf,AllowW1"
|
||||||
@@ -3198,7 +3198,6 @@ LineNames="1,2,3,4,5,6,7,8,9,10"
|
|||||||
Line1="list,LifeType"
|
Line1="list,LifeType"
|
||||||
Line2="list,BarDrain"
|
Line2="list,BarDrain"
|
||||||
Line3="list,BatLives"
|
Line3="list,BatLives"
|
||||||
##Line4="lua,GamePrefDefaultFail()"
|
|
||||||
Line5="list,Assist"
|
Line5="list,Assist"
|
||||||
Line6="list,Rate"
|
Line6="list,Rate"
|
||||||
Line7="list,SoundEffect"
|
Line7="list,SoundEffect"
|
||||||
@@ -3206,7 +3205,7 @@ Line8="list,AutoAdjust"
|
|||||||
Line9="list,Background"
|
Line9="list,Background"
|
||||||
Line10="list,SaveScores"
|
Line10="list,SaveScores"
|
||||||
Line11="list,SaveReplays"
|
Line11="list,SaveReplays"
|
||||||
Line4="lua,SongPrefFail()"
|
Line4="list,Fail"
|
||||||
|
|
||||||
[ScreenSplash]
|
[ScreenSplash]
|
||||||
Class="ScreenSplash"
|
Class="ScreenSplash"
|
||||||
|
|||||||
@@ -499,6 +499,7 @@ static const char *FailTypeNames[] = {
|
|||||||
};
|
};
|
||||||
XToString( FailType );
|
XToString( FailType );
|
||||||
XToLocalizedString( FailType );
|
XToLocalizedString( FailType );
|
||||||
|
StringToX( FailType );
|
||||||
LuaXType( FailType );
|
LuaXType( FailType );
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ void PlayerOptions::Init()
|
|||||||
ZERO( m_bTurns );
|
ZERO( m_bTurns );
|
||||||
ZERO( m_bTransforms );
|
ZERO( m_bTransforms );
|
||||||
m_bMuteOnError = false;
|
m_bMuteOnError = false;
|
||||||
m_FailType = FailType_Immediate;
|
m_FailType = PREFSMAN->m_DefaultFailType;
|
||||||
m_sNoteSkin = "";
|
m_sNoteSkin = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -286,6 +286,7 @@ PrefsManager::PrefsManager() :
|
|||||||
m_sCoursesToShowRanking ( "CoursesToShowRanking", "" ),
|
m_sCoursesToShowRanking ( "CoursesToShowRanking", "" ),
|
||||||
|
|
||||||
m_bQuirksMode ( "QuirksMode", false ),
|
m_bQuirksMode ( "QuirksMode", false ),
|
||||||
|
m_DefaultFailType("DefaultFailtype", FailType_ImmediateContinue),
|
||||||
|
|
||||||
/* Debug: */
|
/* Debug: */
|
||||||
m_bLogToDisk ( "LogToDisk", true ),
|
m_bLogToDisk ( "LogToDisk", true ),
|
||||||
|
|||||||
+2
-1
@@ -2,6 +2,7 @@
|
|||||||
#define PREFSMANAGER_H
|
#define PREFSMANAGER_H
|
||||||
|
|
||||||
#include "Preference.h"
|
#include "Preference.h"
|
||||||
|
#include "GameConstantsAndTypes.h"
|
||||||
|
|
||||||
class IniFile;
|
class IniFile;
|
||||||
|
|
||||||
@@ -293,7 +294,7 @@ public:
|
|||||||
|
|
||||||
/** @brief Enable some quirky behavior used by some older versions of StepMania. */
|
/** @brief Enable some quirky behavior used by some older versions of StepMania. */
|
||||||
Preference<bool> m_bQuirksMode;
|
Preference<bool> m_bQuirksMode;
|
||||||
// Preference<RString> m_sDefaultFailType; // XXX: Fix fail bug?
|
Preference<FailType> m_DefaultFailType;
|
||||||
|
|
||||||
// Debug:
|
// Debug:
|
||||||
Preference<bool> m_bLogToDisk;
|
Preference<bool> m_bLogToDisk;
|
||||||
|
|||||||
@@ -480,37 +480,6 @@ static int GetLifeDifficulty()
|
|||||||
LuaFunction( GetLifeDifficulty, 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
|
// Graphic options
|
||||||
struct res_t
|
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( "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( "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( "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( "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( "Premium", MovePref<Premium>, "Off","Double for 1 Credit","2 Players for 1 Credit" ) );
|
||||||
ADD( ConfOption( "JointPremium", JointPremium, "Off","2 Players for 1 Credit" ) );
|
ADD( ConfOption( "JointPremium", JointPremium, "Off","2 Players for 1 Credit" ) );
|
||||||
|
|||||||
Reference in New Issue
Block a user