Interpolate bringing up and down quit/pause/teleporter screen

Now it's really, really smooth. Except for like the last frame when it
goes down, which I sometimes didn't notice (but maybe it didn't happen
every time due to being lucky on the delta timesteps or something,
whatevs.)
This commit is contained in:
Misa
2020-04-28 20:46:33 -07:00
committed by Ethan Lee
parent 45c7292096
commit 3b41721563
5 changed files with 36 additions and 7 deletions

View File

@@ -84,6 +84,7 @@ void Graphics::init()
crewframe = 0;
crewframedelay = 4;
menuoffset = 0;
oldmenuoffset = 0;
resumegamemode = false;
//Fading stuff
@@ -2609,6 +2610,7 @@ void Graphics::menuoffrender()
int usethisoffset = lerp(oldmenuoffset, menuoffset);
if(flipmode)
{
// flipmatrix.translate(0, menuoffset);
@@ -2620,7 +2622,7 @@ void Graphics::menuoffrender()
BlitSurfaceStandard(tempbufferFlipped, NULL, backBuffer, NULL);
SDL_FreeSurface(tempbufferFlipped);
SDL_Rect offsetRect;
setRect (offsetRect, 0, menuoffset, backBuffer->w ,backBuffer->h);
setRect (offsetRect, 0, usethisoffset, backBuffer->w ,backBuffer->h);
SDL_Surface* temp = FlipSurfaceVerticle(menubuffer);
BlitSurfaceStandard(temp,NULL,backBuffer,&offsetRect);
SDL_FreeSurface(temp);
@@ -2631,7 +2633,7 @@ void Graphics::menuoffrender()
BlitSurfaceStandard(tempBuffer, NULL, backBuffer, NULL);
SDL_Rect offsetRect;
setRect (offsetRect, 0, menuoffset, backBuffer->w ,backBuffer->h);
setRect (offsetRect, 0, usethisoffset, backBuffer->w ,backBuffer->h);
BlitSurfaceStandard(menubuffer,NULL,backBuffer,&offsetRect);
}