Code cleanup.
authorCameron Ball <c.ball1729@gmail.com>
Thu, 5 Dec 2013 07:36:04 +0000 (15:36 +0800)
committerCameron Ball <c.ball1729@gmail.com>
Thu, 5 Dec 2013 07:36:04 +0000 (15:36 +0800)
Themes/GrooveNights/BGAnimations/ScreenEvaluation overlay.xml
Themes/GrooveNights/BGAnimations/ScreenSelectMusic overlay.xml
Themes/GrooveNights/Scripts/GrooveNights.lua
Themes/GrooveNights/Scripts/Other.lua

index f21dbea..dfb981f 100644 (file)
@@ -226,10 +226,10 @@ end">
        <BitmapText Font="_eurostile normal" Text=""
        Condition="GAMESTATE:IsPlayerEnabled(PLAYER_1)"
        OnCommand="%function(self)
-       if curRate ~= 1 or gnRateRestore == 1 then
+       if GetRateMod() ~= '1' or gnRateRestore == 1 then
                GAMESTATE:ApplyGameCommand('mod, 1.0xmusic',1);
                self:hidden(1);
-               self:settext(curRate..'X Rate');
+               self:settext(GetRateMod()..'X Rate');
                self:zoom(0.5);
                        self:x(SCREEN_CENTER_X-154);
                        self:y(SCREEN_CENTER_Y-92);
@@ -243,10 +243,10 @@ end">
        <BitmapText Font="_eurostile normal" Text=""
        Condition="GAMESTATE:IsPlayerEnabled(PLAYER_2)"
        OnCommand="%function(self)
-       if curRate ~= 1 or gnRateRestore == 1 then
+       if GetRateMod() ~= '1' or gnRateRestore == 1 then
                GAMESTATE:ApplyGameCommand('mod, 1.0xmusic',2);
                self:hidden(1);
-               self:settext(curRate..'X Rate');
+               self:settext(GetRateMod() .. 'X Rate');
                self:zoom(0.5);
                        self:x(SCREEN_CENTER_X+155);
                        self:y(SCREEN_CENTER_Y-92);
@@ -260,7 +260,7 @@ end">
        
        <BitmapText Font="_eurostile normal" Text=""
        OnCommand="%function(self)
-       if curRate ~= 1 then
+       if GetRateMod() ~= '1' then
                curRate = 1;
                end
        end"
@@ -299,47 +299,24 @@ end">
                        OnCommand="horizalign,center;shadowlength,0;zoom,0.5;"
                        
                        InitCommand="%function(self)
-                       self:x(SCREEN_CENTER_X);
-                       self:y(SCREEN_CENTER_Y-146+60+4);
-                       gnBPMDisplay = 0;
-                       gnHighRoundBPM = 0;
-                       gnLowRoundBPM = 0;
-                       if lowBPM == highBPM then
-                               if highBPM == 0 then
-                                       gnBPMDisplay = '...';
-                                       else
-                                       gnHighRoundBPM = highBPM*curRate;
-                                       gnHighRoundBPM = math.floor(gnHighRoundBPM);
-                                       gnBPMDisplay = gnHighRoundBPM;
-                                       end
-                               else
-                               gnLowRoundBPM = lowBPM*curRate;
-                               gnLowRoundBPM = math.floor(gnLowRoundBPM);
-                               gnHighRoundBPM = highBPM*curRate;
-                               gnHighRoundBPM = math.floor(gnHighRoundBPM);
-                               gnBPMDisplay = gnLowRoundBPM..'-'..gnHighRoundBPM;
-                               end     
-                       if GAMESTATE:IsPlayerEnabled(PLAYER_2) and not GAMESTATE:IsPlayerEnabled(PLAYER_1) then
-                               if curRate ~= 1 then
-                                       gnSongLengthDisplay = string.gsub(gnSongLength,'Patched','Length Patched');
-                                       gnSongLengthDisplay = string.gsub(gnSongLength,'Length Length Patched','Length Patched');
-                                       self:settext(DisplayBPM(2, true, false)..' BPM ('..curRate..'x Music Rate) - '..gnSongLengthDisplay);
-                                       else
-                                       gnSongLengthDisplay = string.gsub(gnSongLength,'Patched','Length Patched');
-                                       gnSongLengthDisplay = string.gsub(gnSongLength,'Length Length Patched','Length Patched');
-                                       self:settext(DisplayBPM(2, true, false)..' BPM - '..gnSongLengthDisplay);
-                                       end
-                               else
-                               if curRate ~= 1 then
-                                       gnSongLengthDisplay = string.gsub(gnSongLength,'Patched','Length Patched');
-                                       gnSongLengthDisplay = string.gsub(gnSongLength,'Length Length Patched','Length Patched');
-                                       self:settext(DisplayBPM(1, true, false)..' BPM ('..curRate..'x Music Rate) - '..gnSongLengthDisplay);
-                                       else
-                                       gnSongLengthDisplay = string.gsub(gnSongLength,'Patched','Length Patched');
-                                       gnSongLengthDisplay = string.gsub(gnSongLength,'Length Length Patched','Length Patched');
-                                       self:settext(DisplayBPM(1, true, false)..' BPM - '..gnSongLengthDisplay);
-                                       end
-                               end
+                            self:x(SCREEN_CENTER_X);
+                            self:y(SCREEN_CENTER_Y-146+60+4);
+
+                            local pn = 1
+                            
+                            if GAMESTATE:IsPlayerEnabled(PLAYER_2) then pn = 2 end
+
+                            local bpm = DisplayBPM(pn, true, false)
+
+                            if GetRateMod() ~= '1' then
+                                gnSongLengthDisplay = string.gsub(gnSongLength,'Patched','Length Patched');
+                                gnSongLengthDisplay = string.gsub(gnSongLength,'Length Length Patched','Length Patched');
+                                self:settext(bpm .. ' BPM ('..GetRateMod()..'x Music Rate) - '..gnSongLengthDisplay);
+                            else
+                                gnSongLengthDisplay = string.gsub(gnSongLength,'Patched','Length Patched');
+                                gnSongLengthDisplay = string.gsub(gnSongLength,'Length Length Patched','Length Patched');
+                                self:settext(bpm .. ' BPM - '..gnSongLengthDisplay);
+                            end
                        end"
                />
 
index 4d3387e..af1e87e 100644 (file)
@@ -3,46 +3,26 @@ if GAMESTATE:GetEnv('Vibrate') == 'On' then
        self:vibrate();
        end
 end"> <children>
-<!-- Determine BPM -->
-               <BitmapText
-                       Text=""
-                       File="_eurostile blue glow"
-                       InitCommand="%function(self)  self:x(100) self:shadowlength(0) self:draworder(10000); self:addy(20); self:queuecommand('loop'); end"
-                       OnCommand="Zoom,1"
-                       loopCommand="%function(self)
-                       lowBPM = tostring(SCREENMAN:GetTopScreen():GetChild('BPMDisplay'):GetChild('Text'):GetText());
-                       
-                       if lowBPM == nil then
-                               lowBPM = '0';
-                               end
-                       
-                       if lowBPM == '...' then
-                               lowBPM = '0';
-                               end
-                               
-                       if lowBPM == 'Various' then
-                               lowBPM = '0';
-                               end
-                               
-                       highBPM = lowBPM
-                        
-                       delimPos = string.find(lowBPM, '-')
-                       if delimPos==1 then
-                               delimPos = string.find(lowBPM, '-',2)
+    
+<!--Capture BPM-->
+<Layer Type="Quad"
+       InitCommand="queuecommand,BPMCapture;" 
+       BPMCaptureCommand="%function(self)
+               songBPM = SCREENMAN:GetTopScreen():GetChild('BPMDisplay'):GetChild('Text'):GetText();
+               bpm[1] = string.gsub(songBPM,'-%d+','');
+               bpm[2] = string.gsub(songBPM,'%d+-','');
+                       if bpm[2] == bpm[1] then bpm[2] = '';
                        end
-                        
-                       if delimPos then
-                               lowBPM = string.sub(lowBPM, 1, delimPos-1)
-                               highBPM = string.sub(highBPM, delimPos+1, string.len(highBPM))
+               bpm[3] = SCREENMAN:GetTopScreen():GetChild('BPMDisplay'):GetChild('Text'):GetText();
+                       if not OPENITG then bpm[3] = math.floor(bpm[3] * modRate + 0.5)
                        end
-                       
-                       self:stoptweening();
-                       self:sleep(0.1);
-                       self:queuecommand('loop');
-                       end"
-               />
-               
-       <ActorFrame OnCommand="y,SCREEN_BOTTOM-17-18"> <children>
+               end"
+       CurrentSongChangedMessageCommand="queuecommand,BPMCapture"
+       CurrentStepsP1ChangedMessageCommand="queuecommand,BPMCapture"
+       CurrentStepsP2ChangedMessageCommand="queuecommand,BPMCapture"
+/>
+    
+<ActorFrame OnCommand="y,SCREEN_BOTTOM-17-18"> <children>
                <Layer
                        Type="BitmapText"
                        Font="_eurostile normal"
@@ -56,6 +36,8 @@ end"> <children>
                <ActorFrame
                        OnCommand="%function(self) if ModeMenuAvailable() then self:x(SCREEN_CENTER_X-225) else self:x(SCREEN_CENTER_X-125) end end"
                > <children>
+                    
+                    
                        <Layer
                                Type="BitmapText"
                                Font="_eurostile normal"
index c08a772..ea7e318 100644 (file)
@@ -1249,8 +1249,8 @@ return 0;
 end
 
        
-       bpm = { "1", "2", "3" }
-       Rate = { "1.0x", "1.1x", "1.2x", "1.3x", "1.4x", "1.5x", "1.6x", "1.7x", "2.0x"}
+bpm = { "1", "2", "3" }
+Rate = { "1.0x", "1.1x", "1.2x", "1.3x", "1.4x", "1.5x", "1.6x", "1.7x", "2.0x"}
 
 function RateMods()
        local modList = Rate
index f40ba30..d3bc9db 100644 (file)
@@ -434,27 +434,27 @@ end
 
 
 function GetRateMod()
-   if GetRateModHelper('1.0xmusic') then curRate = 1; return '1'
-   elseif GetRateModHelper('1.1xmusic') then curRate = 1.1; return '1.1' 
-   elseif GetRateModHelper('1.2xmusic') then curRate = 1.2; return '1.2' 
-   elseif GetRateModHelper('1.3xmusic') then curRate = 1.3; return '1.3' 
-   elseif GetRateModHelper('1.4xmusic') then curRate = 1.4;  return '1.4' 
-   elseif GetRateModHelper('1.5xmusic') then curRate = 1.5;  return '1.5' 
-   elseif GetRateModHelper('1.6xmusic') then curRate = 1.6;  return '1.6' 
-   elseif GetRateModHelper('1.7xmusic') then curRate = 1.7;  return '1.7' 
-   elseif GetRateModHelper('1.8xmusic') then curRate = 1.8;  return '1.8' 
-   elseif GetRateModHelper('1.9xmusic') then curRate = 1.9;  return '1.9' 
-   elseif GetRateModHelper('2.0xmusic') then curRate = 2;  return '2' 
-   elseif GetRateModHelper('0.1xmusic') then curRate = 0.1; return '0.1' 
-   elseif GetRateModHelper('0.2xmusic') then curRate = 0.2; return '0.2' 
-   elseif GetRateModHelper('0.3xmusic') then curRate = 0.3; return '0.3' 
-   elseif GetRateModHelper('0.4xmusic') then curRate = 0.4;  return '0.4' 
-   elseif GetRateModHelper('0.5xmusic') then curRate = 0.5;  return '0.5' 
-   elseif GetRateModHelper('0.6xmusic') then curRate = 0.6;  return '0.6' 
-   elseif GetRateModHelper('0.7xmusic') then curRate = 0.7;  return '0.7' 
-   elseif GetRateModHelper('0.8xmusic') then curRate = 0.8;  return '0.8' 
-   elseif GetRateModHelper('0.9xmusic') then curRate = 0.9;  return '0.9' 
-   else curRate = 1; return '(Unknown rate mod)' end
+   if GetRateModHelper('1.0xmusic') then return '1'
+   elseif GetRateModHelper('1.1xmusic') then return '1.1' 
+   elseif GetRateModHelper('1.2xmusic') then return '1.2' 
+   elseif GetRateModHelper('1.3xmusic') then return '1.3' 
+   elseif GetRateModHelper('1.4xmusic') then return '1.4' 
+   elseif GetRateModHelper('1.5xmusic') then return '1.5' 
+   elseif GetRateModHelper('1.6xmusic') then return '1.6' 
+   elseif GetRateModHelper('1.7xmusic') then return '1.7' 
+   elseif GetRateModHelper('1.8xmusic') then return '1.8' 
+   elseif GetRateModHelper('1.9xmusic') then return '1.9' 
+   elseif GetRateModHelper('2.0xmusic') then return '2' 
+   elseif GetRateModHelper('0.1xmusic') then return '0.1' 
+   elseif GetRateModHelper('0.2xmusic') then return '0.2' 
+   elseif GetRateModHelper('0.3xmusic') then return '0.3' 
+   elseif GetRateModHelper('0.4xmusic') then return '0.4' 
+   elseif GetRateModHelper('0.5xmusic') then return '0.5' 
+   elseif GetRateModHelper('0.6xmusic') then return '0.6' 
+   elseif GetRateModHelper('0.7xmusic') then return '0.7' 
+   elseif GetRateModHelper('0.8xmusic') then return '0.8' 
+   elseif GetRateModHelper('0.9xmusic') then return '0.9' 
+   else return '(Unknown rate mod)' end
 end
 
 function oitgACoptions()
@@ -616,85 +616,83 @@ function InitSpeedMods()
     end
 end
 
-function DisplayBPM(pn, includeRate, includeSpeed)      
+function DisplayBPM(pn, includeRate, includeSpeed) 
         local lowBPM = bpm[1]
-        local highBPM = bpm[2]
-               local speedMod = 1
-               local rateMod = 1
-               
-               if includeRate then rateMod = modRate end
-               
-               if includeSpeed then
-                       speedMod = modSpeed[pn]
-                       speedMod = string.gsub(speedMod,'x','')
-                       speedMod = string.gsub(speedMod,'c','')
-                       speedMod = string.gsub(speedMod,'m','')
-               end
+        local highBPM = bpm[2]        
+        local rateMod = modRate
+        local speedMod = modSpeed[pn]
 
-        if modType[pn] == "x-mod" then
+        speedMod = string.gsub(speedMod,'x','')
+        speedMod = string.gsub(speedMod,'c','')
+        speedMod = string.gsub(speedMod,'m','')
 
-                if lowBPM == "Various" or lowBPM == "..." or lowBPM == nil then
-                return "???"
-                end
-                
-                lowScrollBPM = lowBPM * speedMod * rateMod
-        
-                if string.sub(lowScrollBPM, 2, 2) == "." then
-                lowScrollBPM = string.sub(lowScrollBPM, 1, 1)
-                end
-                
-                if string.sub(lowScrollBPM, 3, 3) == "." then
-                lowScrollBPM = string.sub(lowScrollBPM, 1, 2)
-                end
-        
-                if string.sub(lowScrollBPM, 4, 4) == "." then
-                lowScrollBPM = string.sub(lowScrollBPM, 1, 3)
-                end
-                
-                if string.sub(lowScrollBPM, 5, 5) == "." then
-                lowScrollBPM = string.sub(lowScrollBPM, 1, 4)
-                end
-                
-                if string.sub(lowScrollBPM, 6, 6) == "." then
-                lowScrollBPM = string.sub(lowScrollBPM, 1, 5)
-                end
+        if not includeRate then rateMod = 1 end
+        if not includeSpeed then speedMod = 1 end
+
+        if lowBPM == "Various" or lowBPM == "..." or lowBPM == nil then
+            return "???"
+        end
 
-                if highBPM ~= "" then
+        lowScrollBPM = lowBPM * speedMod * rateMod
 
-                        highScrollBPM = highBPM * speedMod * rateMod
-                
-                        if string.sub(highScrollBPM, 2, 2) == "." then
-                        highScrollBPM = string.sub(highScrollBPM, 1, 1)
-                        end
+        if string.sub(lowScrollBPM, 2, 2) == "." then
+        lowScrollBPM = string.sub(lowScrollBPM, 1, 1)
+        end
 
-                        if string.sub(highScrollBPM, 3, 3) == "." then
-                        highScrollBPM = string.sub(highScrollBPM, 1, 2)
-                        end
+        if string.sub(lowScrollBPM, 3, 3) == "." then
+        lowScrollBPM = string.sub(lowScrollBPM, 1, 2)
+        end
 
-                        if string.sub(highScrollBPM, 4, 4) == "." then
-                        highScrollBPM = string.sub(highScrollBPM, 1, 3)
-                        end
-        
-                        if string.sub(highScrollBPM, 5, 5) == "." then
-                        highScrollBPM = string.sub(highScrollBPM, 1, 4)
-                        end
-                
-                        if string.sub(highScrollBPM, 6, 6) == "." then
-                        highScrollBPM = string.sub(highScrollBPM, 1, 5)
-                        end
-                
+        if string.sub(lowScrollBPM, 4, 4) == "." then
+        lowScrollBPM = string.sub(lowScrollBPM, 1, 3)
+        end
+
+        if string.sub(lowScrollBPM, 5, 5) == "." then
+        lowScrollBPM = string.sub(lowScrollBPM, 1, 4)
+        end
+
+        if string.sub(lowScrollBPM, 6, 6) == "." then
+        lowScrollBPM = string.sub(lowScrollBPM, 1, 5)
+        end
+
+        if highBPM ~= "" then
+
+                highScrollBPM = highBPM * speedMod * rateMod
+
+                if string.sub(highScrollBPM, 2, 2) == "." then
+                highScrollBPM = string.sub(highScrollBPM, 1, 1)
                 end
 
-                if highBPM == "" then
-                return lowScrollBPM
-                else
-                return lowScrollBPM .. "-" .. highScrollBPM
+                if string.sub(highScrollBPM, 3, 3) == "." then
+                highScrollBPM = string.sub(highScrollBPM, 1, 2)
+                end
+
+                if string.sub(highScrollBPM, 4, 4) == "." then
+                highScrollBPM = string.sub(highScrollBPM, 1, 3)
+                end
+
+                if string.sub(highScrollBPM, 5, 5) == "." then
+                highScrollBPM = string.sub(highScrollBPM, 1, 4)
+                end
+
+                if string.sub(highScrollBPM, 6, 6) == "." then
+                highScrollBPM = string.sub(highScrollBPM, 1, 5)
                 end
         end
 
-        if modType[pn] == "c-mod" or modType[pn] == "m-mod" then
-        return speedMod
+        --[[
+        If we want to include rate and speed but we also have a c or m mod, we
+        can just return the speedMod as that will be the scroll speed regardless
+        of the rate/speed mod chosen
+        ]]--
+        if includeRate and includeSpeed and (modType[pn] == "m-mod" or modType[pn] == "c-mod") then
+            return speedMod
         end
 
-        return "???"
+        -- In every other case we return the bpm range adjusted for the speed and rate.
+        if highBPM == "" then
+            return lowScrollBPM
+        else
+            return lowScrollBPM .. "-" .. highScrollBPM
+        end
 end
\ No newline at end of file