mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2024-12-22 17:49:43 +01:00
Reset warp directions when exiting playtesting
This fixes a bug where if warpdir() was used during in-editor playtesting, the changed warp direction would persist even when leaving playtesting. This would be very annoying to correct back every time you playtested and warpdir() was used, so I've added some kludge to store the actual warp direction of each room when entering playtesting, and then set the warp directions back when leaving playtesting.
This commit is contained in:
parent
98151b4c2f
commit
4be6d58b82
4 changed files with 18 additions and 0 deletions
|
@ -1913,6 +1913,14 @@ void gameinput(KeyPoll& key, Graphics& dwgfx, Game& game, mapclass& map,
|
|||
|
||||
dwgfx.backgrounddrawn=false;
|
||||
music.fadeout();
|
||||
//If warpdir() is used during playtesting, we need to set it back after!
|
||||
for (int j = 0; j < ed.maxheight; j++)
|
||||
{
|
||||
for (int i = 0; i < ed.maxwidth; i++)
|
||||
{
|
||||
ed.level[i+(j*ed.maxwidth)].warpdir=ed.kludgewarpdir[i+(j*ed.maxwidth)];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3181,6 +3181,14 @@ void scriptclass::startgamemode( int t, KeyPoll& key, Graphics& dwgfx, Game& gam
|
|||
game.gamestate = GAMEMODE;
|
||||
music.fadeout();
|
||||
hardreset(key, dwgfx, game, map, obj, help, music);
|
||||
//If warpdir() is used during playtesting, we need to set it back after!
|
||||
for (int j = 0; j < ed.maxheight; j++)
|
||||
{
|
||||
for (int i = 0; i < ed.maxwidth; i++)
|
||||
{
|
||||
ed.kludgewarpdir[i+(j*ed.maxwidth)]=ed.level[i+(j*ed.maxwidth)].warpdir;
|
||||
}
|
||||
}
|
||||
game.customstart(obj, music);
|
||||
game.jumpheld = true;
|
||||
|
||||
|
|
|
@ -309,6 +309,7 @@ void editorclass::reset()
|
|||
level[i+(j*maxwidth)].enemyy2=240;
|
||||
level[i+(j*maxwidth)].enemytype=0;
|
||||
level[i+(j*maxwidth)].directmode=0;
|
||||
kludgewarpdir[i+(j*maxwidth)]=0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -158,6 +158,7 @@ class editorclass{
|
|||
int numtrinkets;
|
||||
int numcrewmates;
|
||||
edlevelclass level[400]; //Maxwidth*maxheight
|
||||
int kludgewarpdir[400]; //Also maxwidth*maxheight
|
||||
|
||||
int temp;
|
||||
int notedelay;
|
||||
|
|
Loading…
Reference in a new issue