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:
parent
f22756dd99
commit
f6ecf83190
3 changed files with 11 additions and 5 deletions
|
@ -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++)
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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")
|
||||||
|
|
Loading…
Reference in a new issue