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

View file

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