forcing me to commit this untested code

This commit is contained in:
AJ Kelly
2011-06-02 12:35:22 -05:00
parent 56620dc993
commit 9cd07b8df7
@@ -1,8 +1,62 @@
return Def.SongBPMDisplay {
-- check if players are playing steps with different timingdata.
local numPlayers = GAMESTATE:GetNumPlayersEnabled()
local displaySingle = Def.SongBPMDisplay {
File=THEME:GetPathF("BPMDisplay", "bpm");
Name="BPMDisplay";
InitCommand=cmd(zoom,0.675;shadowlength,1);
SetCommand=function(self) self:SetFromGameState() end;
CurrentSongChangedMessageCommand=cmd(playcommand,"Set");
CurrentCourseChangedMessageCommand=cmd(playcommand,"Set");
};
};
if numPlayers == 1 then
return displaySingle
else
-- check if both players are playing the same steps
local stepsP1 = GAMESTATE:GetCurrentSteps(PLAYER_1)
local stepsP2 = GAMESTATE:GetCurrentSteps(PLAYER_2)
local stP1 = stepsP1:GetStepsType()
local stP2 = stepsP2:GetStepsType()
local diffP1 = stepsP1:GetDifficulty()
local diffP2 = stepsP2:GetDifficulty()
if stP1 == stP2 and diffP1 == diffP2 then
-- both players are using the same steps; only need one.
return displaySingle
end
-- otherwise, we have some more work to do.
local timingP1 = stepsP1:GetTimingData()
local timingP2 = stepsP2:GetTimingData()
local function UpdateBPM(self)
local dispP1 = self:GetChild("DisplayP1")
local dispP2 = self:GetChild("DisplayP2")
-- needs current bpm for p1 and p2
for pn in ivalues(PlayerNumber) do
local bpmDisplay = (pn == PLAYER_1) and dispP1 or dispP2
local pState = GAMESTATE:GetPlayerState(pn);
local songPosition = pState:GetSongPosition()
local bpm = songPosition:GetCurBPS() * 60
bpmDisplay:SetText( string.format(%.2f,bpm) )
end
end
local displayTwoPlayers = Def.ActorFrame{
-- manual bpm displays
LoadFont("BPMDisplay", "bpm")..{
Name="DisplayP1";
InitCommand=cmd(zoom,0.675;shadowlength,1);
};
LoadFont("BPMDisplay", "bpm")..{
Name="DisplayP2";
InitCommand=cmd(zoom,0.675;shadowlength,1);
};
};
displayTwoPlayers.InitCommand=cmd(SetUpdateFunction,UpdateBPM);
end