mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2026-01-29 17:38:16 +03:00
Don't redraw H/V warp BG if gotorooming to same room in customs
This has two benefits:
(1) The game uses less resources when it is asked to gotoroom to the
same room because it is no longer redrawing the warp background
every single frame, which is very wasteful.
(2) The warp background no longer freezes or flickers if the player is
standing inside a gotoroom script box (which calls gotoroom every
frame or every other frame, because every time the gotoroom happens
the script box gets reloaded).
This commit is contained in:
@@ -1059,9 +1059,18 @@ void mapclass::gotoroom(int rx, int ry, Graphics& dwgfx, Game& game, entityclass
|
||||
loadlevel(game.roomx, game.roomy, dwgfx, game, obj, music);
|
||||
|
||||
|
||||
dwgfx.backgrounddrawn = false; //Used for background caching speedup
|
||||
//Do we need to reload the background?
|
||||
bool redrawbg = game.roomx != game.prevroomx || game.roomy != game.prevroomy;
|
||||
|
||||
if(redrawbg)
|
||||
{
|
||||
dwgfx.backgrounddrawn = false; //Used for background caching speedup
|
||||
}
|
||||
dwgfx.foregrounddrawn = false; //Used for background caching speedup
|
||||
|
||||
game.prevroomx = game.roomx;
|
||||
game.prevroomy = game.roomy;
|
||||
|
||||
//a very special case: if entering the communication room, room 13,4 before tag 5 is set, set the game state to a background
|
||||
//textbox thingy. if tag five is not set when changing room, reset the game state. (tag 5 is set when you get back to the ship)
|
||||
if(!game.intimetrial && !custommode)
|
||||
@@ -1605,7 +1614,10 @@ void mapclass::loadlevel(int rx, int ry, Graphics& dwgfx, Game& game, entityclas
|
||||
}
|
||||
|
||||
//If screen warping, then override all that:
|
||||
dwgfx.backgrounddrawn = false;
|
||||
bool redrawbg = game.roomx != game.prevroomx || game.roomy != game.prevroomy;
|
||||
if(redrawbg){
|
||||
dwgfx.backgrounddrawn = false;
|
||||
}
|
||||
if(ed.level[curlevel].warpdir>0){
|
||||
if(ed.level[curlevel].warpdir==1){
|
||||
warpx=true;
|
||||
|
||||
Reference in New Issue
Block a user