-- StepMania 5 Default Theme Preferences Handler local function OptionNameString(str) return THEME:GetString('OptionNames',str) end -- Example usage of new system (not fully implemented yet) local Prefs = { AutoSetStyle = { Default = true, Choices = { OptionNameString('Off'), OptionNameString('On') }, Values = { false, true } }, GameplayShowStepsDisplay = { Default = true, Choices = { OptionNameString('Off'), OptionNameString('On') }, Values = { false, true } }, GameplayShowScore = { Default = false, Choices = { OptionNameString('Off'), OptionNameString('On') }, Values = { false, true } }, ShowLotsaOptions = { Default = true, Choices = { OptionNameString('Many'), OptionNameString('Few') }, Values = { true, false } }, LongFail = { Default = false, Choices = { OptionNameString('Short'), OptionNameString('Long') }, Values = { false, true } }, NotePosition = { Default = true, Choices = { OptionNameString('Normal'), OptionNameString('Lower') }, Values = { true, false } }, ComboOnRolls = { Default = false, Choices = { OptionNameString('Off'), OptionNameString('On') }, Values = { false, true } }, FlashyCombo = { Default = false, Choices = { OptionNameString('Off'), OptionNameString('On') }, Values = { false, true } }, ComboUnderField = { Default = true, Choices = { OptionNameString('Off'), OptionNameString('On') }, Values = { false, true } }, FancyUIBG = { Default = false, Choices = { OptionNameString('Off'), OptionNameString('On') }, Values = { false, true } }, TimingDisplay = { Default = true, Choices = { OptionNameString('Off'), OptionNameString('On') }, Values = { false, true } }, GameplayFooter = { Default = false, Choices = { OptionNameString('Off'), OptionNameString('On') }, Values = { false, true } }, --[[ ProtimingP1, ProtimingP2, UserPrefScoringMode = 'DDR Extreme' --]] } ThemePrefs.InitAll(Prefs) function InitUserPrefs() local Prefs = { UserPrefScoringMode = 'DDR Extreme', UserPrefSoundPack = 'default', UserPrefProtimingP1 = false, UserPrefProtimingP2 = false, } for k, v in pairs(Prefs) do -- kind of xxx local GetPref = type(v) == "boolean" and GetUserPrefB or GetUserPref if GetPref(k) == nil then SetUserPref(k, v) end end -- screen filter setenv("ScreenFilterP1",0) setenv("ScreenFilterP2",0) end function GetProTiming(pn) local pname = ToEnumShortString(pn) if GetUserPref("ProTiming"..pname) then return GetUserPrefB("ProTiming"..pname) else SetUserPref("ProTiming"..pname,false) return false end end --[[ option rows ]] -- screen filter function OptionRowScreenFilter() local t = { Name="ScreenFilter", LayoutType = "ShowAllInRow", SelectType = "SelectOne", OneChoiceForAllPlayers = false, ExportOnChange = false, Choices = { THEME:GetString('OptionNames','Off'), '0.1', '0.2', '0.3', '0.4', '0.5', '0.6', '0.7', '0.8', '0.9', '1.0', }, LoadSelections = function(self, list, pn) local pName = ToEnumShortString(pn) local filterValue = getenv("ScreenFilter"..pName) if filterValue ~= nil then local val = scale(tonumber(filterValue),0,1,1,#list ) list[val] = true else setenv("ScreenFilter"..pName,0) list[1] = true end end, SaveSelections = function(self, list, pn) local pName = ToEnumShortString(pn) local found = false for i=1,#list do if not found then if list[i] == true then local val = scale(i,1,#list,0,1) setenv("ScreenFilter"..pName,val) found = true end end end end, }; setmetatable(t, t) return t end -- protiming function OptionRowProTiming() local t = { Name = "ProTiming", LayoutType = "ShowAllInRow", SelectType = "SelectOne", OneChoiceForAllPlayers = false, ExportOnChange = false, Choices = { THEME:GetString('OptionNames','Off'), THEME:GetString('OptionNames','On') }, LoadSelections = function(self, list, pn) if GetUserPrefB("UserPrefProtiming" .. ToEnumShortString(pn)) then local bShow = GetUserPrefB("UserPrefProtiming" .. ToEnumShortString(pn)) if bShow then list[2] = true else list[1] = true end else list[1] = true end end, SaveSelections = function(self, list, pn) local bSave = list[2] and true or false SetUserPref("UserPrefProtiming" .. ToEnumShortString(pn), bSave) end } setmetatable(t, t) return t end --[[ end option rows ]]