diff --git a/Themes/default/Scripts/03 ThemePrefs.lua b/Themes/default/Scripts/03 ThemePrefs.lua index 91dbaada9e..b19f12ea4a 100644 --- a/Themes/default/Scripts/03 ThemePrefs.lua +++ b/Themes/default/Scripts/03 ThemePrefs.lua @@ -243,18 +243,17 @@ function UserPrefSpecialScoringMode() Choices = { 'DDR 1stMIX', 'DDR 3rdMIX', 'DDR 4thMIX', 'DDR SuperNOVA', 'DDR SuperNOVA 2' }; LoadSelections = function(self, list, pn) if ReadPrefFromFile("UserPrefSpecialScoringMode") ~= nil then - list[GetUserPref("UserPrefSpecialScoringMode")] = true; + local theValue = ReadPrefFromFile("UserPrefSpecialScoringMode"); + local success = false; + for k,v in ipairs(t.Choices) do if v == theValue then list[k] = true success = true break end end; + if success = false then list[1] = true end; else - WritePrefToFile("UserPrefSpecialScoringMode",1); + WritePrefToFile("UserPrefSpecialScoringMode", 'DDR 1stMIX'); list[1] = true; end; end; SaveSelections = function(self, list, pn) - local val; - for k,v in ipairs(list) do if v then val = k end end; - WritePrefToFile("UserPrefSpecialScoringMode",val); - MESSAGEMAN:Broadcast("PreferenceSet", { Message == "Set Preference" } ); - THEME:ReloadMetrics(); + for k,v in ivalues(list) do if v then WritePrefToFile("UserPrefSpecialScoringMode", t.Choices[k]) break end end; end; }; setmetatable( t, t ); diff --git a/Themes/default/Scripts/04 SpecialScoring.lua b/Themes/default/Scripts/04 SpecialScoring.lua index c44aa795ec..6f330166e8 100644 --- a/Themes/default/Scripts/04 SpecialScoring.lua +++ b/Themes/default/Scripts/04 SpecialScoring.lua @@ -5,7 +5,7 @@ local ZeroIfNotFound = { _index = function() return 0 end; }; ----------------------------------------------------------- --DDR 1st Mix and 2nd Mix Scoring ----------------------------------------------------------- -r[1] = function(params, pss) +r['DDR 1stMIX'] = function(params, pss) local dCombo = math.floor(pss:GetCurrentCombo()/4); local bScore = (m^2+1) * 100; local multLookup = { ['TapNoteScore_W1']=3, ['TapNoteScore_W2']=3, ['TapNoteScore_W3']=1 }; @@ -15,7 +15,7 @@ end; ----------------------------------------------------------- --DDR 3rd Mix and USA Scoring ----------------------------------------------------------- -r[2] = function(params, pss) +r['DDR 3rdMIX'] = function(params, pss) local totalSteps = GAMESTATE:GetCurrentSteps(params.Player):GetRadarValues():GetValue('RadarCategory_TapsAndHolds'); if totalSteps == 0 then pss:SetScore(0) return nil end local baseScore = math.round(1000000/((totalSteps*(totalSteps+1))/2)); @@ -29,7 +29,7 @@ end; ----------------------------------------------------------- --DDR 4th Mix/Extra Mix/Konamix/GB3/DDRPC Scoring ----------------------------------------------------------- -r[3] = function(params, pss) +r['DDR 4thMIX'] = function(params, pss) local scoreLookupTable = { ['TapNoteScore_W1']=777, ['TapNoteScore_W2']=777, ['TapNoteScore_W3']=555 }; setmetatable(scoreLookupTable, ZeroIfNotFound); local comboBonusForThisStep = pss:GetCurrentCombo()*333; @@ -38,7 +38,7 @@ end; ----------------------------------------------------------- --DDR SuperNOVA(-esque) scoring ----------------------------------------------------------- -r[4] = function(params, pss) +r['DDR SuperNOVA'] = function(params, pss) local dp = pss:GetPossibleDancePoints(); if dp == 0 then pss:SetScore(0) return nil end pss:SetScore(math.round((pss:GetActualDancePoints()/dp)*1000000)); @@ -46,7 +46,7 @@ end; ----------------------------------------------------------- --DDR SuperNOVA 2(-esque) scoring ----------------------------------------------------------- -r[5] = function(params, pss) +r['DDR SuperNOVA 2'] = function(params, pss) local dp = pss:GetPossibleDancePoints(); if dp == 0 then pss:SetScore(0) return nil end pss:SetScore(math.round((pss:GetActualDancePoints()/dp)*100000)*10);