1
0
Fork 0
mirror of https://github.com/TerryCavanagh/VVVVVV.git synced 2024-12-23 10:09:43 +01:00

Ensure oldfadeamount is updated when fadeamount is

Like cutscene bars, I've added Graphics::setfade(), to ensure that no
deltaframe rendering glitches happen due to oldfadeamount not being
updated properly.

And indeed, this fixes a deltaframe rendering glitch that happens if you
return to the editor from playtesting on a faded-out screen, then fade
out again (by either re-entering playtesting and then cause a fadeout to
happen again, or by quitting from the editor afterwards). The same
glitch also happens outside of in-editor playtesting if you exit to the
menu while the screen is faded out.
This commit is contained in:
Misa 2021-03-19 23:09:11 -07:00 committed by Ethan Lee
parent f22756dd99
commit f6ecf83190
3 changed files with 11 additions and 5 deletions

View file

@ -95,8 +95,7 @@ void Graphics::init(void)
//Fading stuff
SDL_memset(fadebars, 0, sizeof(fadebars));
fadeamount = 0;
oldfadeamount = 0;
setfade(0);
fademode = 0;
// initialize everything else to zero
@ -1354,7 +1353,7 @@ void Graphics::processfade(void)
{
fadebars[i] = -int(fRandom() * 12) * 8;
}
fadeamount = 0;
setfade(0);
fademode = 3;
}
else if (fademode == 3)
@ -1372,7 +1371,7 @@ void Graphics::processfade(void)
{
fadebars[i] = 320 + int(fRandom() * 12) * 8;
}
fadeamount = 416;
setfade(416);
fademode = 5;
}
else if (fademode == 5)
@ -1386,6 +1385,12 @@ void Graphics::processfade(void)
}
}
void Graphics::setfade(const int amount)
{
fadeamount = amount;
oldfadeamount = amount;
}
void Graphics::drawmenu( int cr, int cg, int cb, bool levelmenu /*= false*/ )
{
for (size_t i = 0; i < game.menuoptions.size(); i++)

View file

@ -45,6 +45,7 @@ public:
void drawmenu(int cr, int cg, int cb, bool levelmenu = false);
void processfade(void);
void setfade(const int amount);
void drawfade(void);

View file

@ -1498,7 +1498,7 @@ void scriptclass::run(void)
}
else if (words[0] == "befadein")
{
graphics.fadeamount = 0;
graphics.setfade(0);
graphics.fademode= 0;
}
else if (words[0] == "fadein")