end
function DisplayScrollSpeed(pn)
+ local rateMod = string.gsub(GetRateMod(),'x','')
+ local speedMod = GetSpeedMod(pn)
local lowBPM = GetGlobal("LowBPM")
local highBPM = GetGlobal("HighBPM")
+ local SpeedModType = GetSpeedModType(speedMod)
if lowBPM == highBPM then highBPM = nil end
-
- local rateMod = string.gsub(GetRateMod(),'x','')
- local speedMod = GetSpeedMod(pn)
speedMod = string.gsub(speedMod,'x','')
speedMod = string.gsub(speedMod,'c','')
speedMod = string.gsub(speedMod,'m','')
- if GetSpeedModType(pn) == "c-mod" or GetSpeedModType(pn) == "m-mod" then return speedMod end
+ if SpeedModType == "c-mod" or SpeedModType == "m-mod" then return speedMod end
if lowBPM == "Various" or lowBPM == "..." or lowBPM == nil then
return "???"
function DisplaySongLength()
local RateMod = string.gsub(GetRateMod(), "x" ,"")
local ratio = 1/RateMod
+ local seconds = GetGlobal('TotalTimeSeconds')
+ local minutes = GetGlobal('TotalTimeMinutes')
+
+ if not seconds and not minutes then return "" end
- local seconds = (GetGlobal('TotalTimeSeconds') + (GetGlobal('TotalTimeMinutes')*60))*ratio
+ seconds = (seconds + (minutes*60))*ratio
return string.format("%.2d:%.2d", math.mod(seconds/60,60), math.mod(seconds,60))
end
\ No newline at end of file
return "m0"\r
end\r
\r
-function GetSpeedModBase(pn)\r
- local SpeedMod = GetSpeedMod(pn)\r
- \r
+function GetSpeedModBase(SpeedMod) \r
+ local SpeedModType = GetSpeedModType(SpeedMod)\r
+\r
SpeedMod = string.gsub(SpeedMod, 'c', '')\r
SpeedMod = string.gsub(SpeedMod, 'm', '')\r
SpeedMod = string.gsub(SpeedMod, 'x', '')\r
\r
- if GetSpeedModType(pn) == 'c-mod' or GetSpeedModType(pn) == 'm-mod' then SpeedMod = SpeedMod/100 end\r
+ if SpeedModType == 'c-mod' or SpeedModType == 'm-mod' then SpeedMod = SpeedMod/100 end\r
\r
return tostring(math.floor(SpeedMod)) -- Consistency: all the others return a string due to concatenation or w/e\r
end\r
\r
-function GetSpeedModExtra(pn)\r
- local SpeedMod = GetSpeedMod(pn)\r
+function GetSpeedModExtra(SpeedMod)\r
+ local SpeedModType = GetSpeedModType(SpeedMod)\r
+\r
SpeedMod = string.gsub(SpeedMod, 'c', '')\r
SpeedMod = string.gsub(SpeedMod, 'm', '')\r
SpeedMod = string.gsub(SpeedMod, 'x', '')\r
\r
- if GetSpeedModType(pn) == 'c-mod' or GetSpeedModType(pn) == 'm-mod' then SpeedMod = SpeedMod/100 end\r
+ if SpeedModType == 'c-mod' or SpeedModType == 'm-mod' then SpeedMod = SpeedMod/100 end\r
\r
return '+' .. SpeedMod - math.floor(SpeedMod)\r
end\r
\r
-function GetSpeedModType(pn)\r
- local SpeedMod = GetSpeedMod(pn)\r
-\r
+function GetSpeedModType(SpeedMod)\r
if string.find(SpeedMod, "x") ~= nil then return 'x-mod' end\r
if string.find(SpeedMod, "c") ~= nil then return 'c-mod' end\r
if string.find(SpeedMod, "m") ~= nil then return 'm-mod' end\r
local function Load(self, list, pn)\r
-- default to the first item in the list\r
list[1] = true\r
+ local SpeedMod = GetSpeedMod(pn)\r
+ local ModBase = GetSpeedModBase(SpeedMod)\r
+ local ModExtra = GetSpeedModExtra(SpeedMod)\r
+ local ModType = GetSpeedModType(SpeedMod)\r
\r
-- now loop through everything else in the list and see if it is set to true\r
for i=2, table.getn(modList) do\r
if name == "Base" then\r
- if modList[i] == GetSpeedModBase(pn) then list[i] = true; list[1] = false else list[i] = false end\r
+ if modList[i] == ModBase then list[i] = true; list[1] = false else list[i] = false end\r
end\r
\r
if name == "Extra" then\r
- if string.gsub(modList[i], 'x', '') == GetSpeedModExtra(pn) then list[i] = true; list[1] = false else list[i] = false end\r
+ if string.gsub(modList[i], 'x', '') == ModExtra then list[i] = true; list[1] = false else list[i] = false end\r
end\r
\r
if name == "Type" then \r
- if modList[i] == GetSpeedModType(pn) then list[i] = true; list[1] = false else list[i] = false end\r
+ if modList[i] == ModType then list[i] = true; list[1] = false else list[i] = false end\r
end\r
end\r
end\r
\r
local function Save(self, list, pn)\r
local SpeedMod = GetSpeedMod(pn)\r
- local ModBase = GetSpeedModBase(pn)\r
- local ModExtra = GetSpeedModExtra(pn)\r
- local ModType = GetSpeedModType(pn)\r
+ local ModBase = GetSpeedModBase(SpeedMod)\r
+ local ModExtra = GetSpeedModExtra(SpeedMod)\r
+ local ModType = GetSpeedModType(SpeedMod)\r
\r
for i = 1, table.getn(modList) do\r
if list[i] then\r
GAMESTATE:ApplyGameCommand('mod,' .. ModBase, pn+1)\r
MESSAGEMAN:Broadcast('SpeedModChangedP' .. pn+1)\r
else\r
- SpeedMod = ModBase + ModExtra\r
+ local SpeedMod = ModBase + ModExtra\r
\r
if ModType == 'c-mod' then SpeedMod = 'c' .. SpeedMod*100 end\r
if ModType == 'm-mod' then SpeedMod = 'm' .. SpeedMod*100 end\r
--easter eggs
-local function BlazeIt(Params)
- local ScrollSpeed = DisplayScrollSpeed(Params.pn)
+local function BPMEasterEggs(Params)
+ local ScrollSpeed = DisplayScrollSpeed(Params.pn)
local spaces = string.rep(" ", string.len(ScrollSpeed))
- if ScrollSpeed == '420' then
- Params.Actor:settext(spaces .. " Blaze It!")
+ if ScrollSpeed == '420' or ScrollSpeed == '360' then
+ if ScrollSpeed == '420' then Params.Actor:settext(spaces .. " Blaze It!") else Params.Actor:settext(spaces .. " No Scope!") end
Params.Actor:diffusealpha(1)
Params.Actor:rainbow()
else
end
end
-local function NoScope(Params)
- local ScrollSpeed = DisplayScrollSpeed(Params.pn)
- local spaces = string.rep(" ", string.len(ScrollSpeed))
-
- if ScrollSpeed == '360' then
- Params.Actor:settext(spaces .. " No Scope!")
- Params.Actor:diffusealpha(1)
- Params.Actor:rainbow()
- else
- Params.Actor:diffusealpha(0)
- end
-end
-
-RegisterEasterEgg("BlazeIt", BlazeIt)
-RegisterEasterEgg("NoScope", NoScope)
+RegisterEasterEgg("BlazeIt", BPMEasterEggs)
+RegisterEasterEgg("NoScope", BPMEasterEggs)
--global variable callbacks
local function LowBPM( BPMDisplay )
BPMDisplay = BPMDisplay:GetText()
local pos = string.find(BPMDisplay, "-")
- if pos ~= nil then return string.sub(BPMDisplay,1,pos-1) else return BPMDisplay end
+ if pos then return string.sub(BPMDisplay,1,pos-1) else return BPMDisplay end
end
local function HighBPM( BPMDisplay )
BPMDisplay = BPMDisplay:GetText()
local pos = string.find(BPMDisplay, "-")
- if pos ~= nil then return string.sub(BPMDisplay,pos+1) else return BPMDisplay end
+ if pos then return string.sub(BPMDisplay,pos+1) else return BPMDisplay end
end
local function TotalTimeMinutes( TimeDisplay )
TimeDisplay = TimeDisplay:GetText()
-
local pos = string.find(TimeDisplay, ':')
- if not pos then return 0 end
-
- return string.sub(TimeDisplay, 1, pos-1)
+
+ if pos then return string.sub(TimeDisplay, 1, pos-1) end
end
local function TotalTimeSeconds( TimeDisplay )
TimeDisplay = TimeDisplay:GetText()
-
local pos = string.find(TimeDisplay, ':')
- if not pos then return 0 end
-
- return string.sub(TimeDisplay, pos+1)
+
+ if pos then return string.sub(TimeDisplay, pos+1) end
end
RegisterGlobalCallback("HighBPM", HighBPM)