Files
itgmania212121/Themes/default/Scripts/02 ThemePrefs.lua
T

195 lines
4.3 KiB
Lua

-- 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',
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 ]]