diff --git a/Themes/default/Graphics/LifeMeterBattery lives/_lives 1x10.png b/Themes/default/Graphics/LifeMeterBattery lives/_lives 1x10.png new file mode 100755 index 0000000000..53e6a0ace5 Binary files /dev/null and b/Themes/default/Graphics/LifeMeterBattery lives/_lives 1x10.png differ diff --git a/Themes/default/Graphics/LifeMeterBattery lives/default.lua b/Themes/default/Graphics/LifeMeterBattery lives/default.lua old mode 100644 new mode 100755 index 8a5f507f38..16cd3a5963 --- a/Themes/default/Graphics/LifeMeterBattery lives/default.lua +++ b/Themes/default/Graphics/LifeMeterBattery lives/default.lua @@ -1,24 +1,47 @@ local player = Var "Player" local blinkTime = 1.2 +local barWidth = 256; +local barHeight = 32; local t = Def.ActorFrame{ + Def.Quad{ + InitCommand=cmd(diffuse,color("#666666");zoomto,barWidth,barHeight); + }; + Def.Quad{ + InitCommand=cmd(diffuse,color("#000000");zoomto,barWidth,barHeight;fadetop,1); + }; LoadActor("_lives")..{ - -- xxx: assumes course is 4lives (or more) - InitCommand=cmd(pause;setstate,3); + InitCommand=cmd(pause;horizalign,left;x,-(barWidth/2)); + BeginCommand=function(self,param) + local screen = SCREENMAN:GetTopScreen(); + local glifemeter = screen:GetLifeMeter(player); + self:setstate(glifemeter:GetTotalLives()-1); + + if glifemeter:GetTotalLives() <= 4 then + self:zoomx(barWidth/(4*64)); + else + self:zoomx(barWidth/((glifemeter:GetTotalLives())*64)); + end + self:cropright((640-(((glifemeter:GetTotalLives())*64)))/640); + end; LifeChangedMessageCommand=function(self,param) if param.Player == player then if param.LivesLeft == 0 then self:visible(false) - elseif param.LivesLeft <= 4 then - self:setstate( math.max(param.LivesLeft-1,0) ) - self:visible(true) else - self:setstate(3) + self:setstate( math.max(param.LivesLeft-1,0) ) self:visible(true) end end end; + StartCommand=function(self,param) + if param.Player == player then + self:setstate( math.max(param.LivesLeft-1,0) ); + end + end; + FinishCommand=cmd(playcommand,"Start"); }; + }; return t; \ No newline at end of file