diff -r 02a13be714d2 -r aab4767d9a50 hedgewars/uWorld.pas --- a/hedgewars/uWorld.pas Wed Jan 20 00:57:09 2016 +0100 +++ b/hedgewars/uWorld.pas Sat Jan 23 07:53:57 2016 +0100 @@ -1382,6 +1382,36 @@ // this scale is used to keep the various widgets at the same dimension at all zoom levels SetScale(cDefaultZoomLevel); +// cinematic effects +if InCinematicMode + and ((CurrentHedgehog = nil) or CurrentHedgehog^.Team^.ExtDriven + or (CurrentHedgehog^.BotLevel <> 0) or (GameType = gmtDemo)) then + begin + inc(CinematicSteps, Lag); + if CinematicSteps > 300 then + CinematicSteps:= 300; + end +else if CinematicSteps > 0 then + begin + dec(CinematicSteps, Lag); + if CinematicSteps < 0 then + CinematicSteps:= 0; + end; + +// render black bars +if CinematicSteps > 0 then + begin + r.x:= ViewLeftX; + r.w:= ViewWidth; + r.y:= ViewTopY; + CinematicBarH:= (ViewHeight * CinematicSteps) div 2048; + r.h:= CinematicBarH; + DrawRect(r, 0, 0, 0, $FF, true); + r.y:= ViewBottomY - r.h; + DrawRect(r, 0, 0, 0, $FF, true); + end; + + // Turn time if UIDisplay <> uiNone then begin @@ -1751,7 +1781,7 @@ WorldDx:= WorldDx + LongInt(rightX) - leftX; end; -wdy:= trunc(cScreenHeight / cScaleFactor) + cScreenHeight div 2 - cWaterLine - cVisibleWater; +wdy:= trunc(cScreenHeight / cScaleFactor) + cScreenHeight div 2 - cWaterLine - (cVisibleWater + CinematicBarH); if WorldDy < wdy then WorldDy:= wdy;