195 lines
4.3 KiB
Lua
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 ]]
|