diff --git a/desktop_version/src/Entity.cpp b/desktop_version/src/Entity.cpp index 1292d8ee..27bb6d5f 100644 --- a/desktop_version/src/Entity.cpp +++ b/desktop_version/src/Entity.cpp @@ -4728,7 +4728,7 @@ void entityclass::entitycollisioncheck() } } } - if (entities[j].rule == 5) //Player vs vertical line! + if (entities[j].rule == 5) //Player vs vertical gravity/warp line! { if(game.deathseq==-1) { @@ -4758,6 +4758,16 @@ void entityclass::entitycollisioncheck() } } } + if (entities[j].rule == 7) // Player versus horizontal warp line, pre-2.1 + { + if (game.glitchrunnermode + && game.deathseq == -1 + && entities[j].onentity > 0 + && entityhlinecollide(i, j)) + { + entities[j].state = entities[j].onentity; + } + } } } } diff --git a/desktop_version/src/Logic.cpp b/desktop_version/src/Logic.cpp index 62daf06b..f6a5e6d5 100644 --- a/desktop_version/src/Logic.cpp +++ b/desktop_version/src/Logic.cpp @@ -1022,16 +1022,18 @@ void gamelogic() //Using warplines? if (obj.customwarpmode) { - //Rewritten system for mobile update: basically, the new logic is to - //check if the player is leaving the map, and if so do a special check against - //warp lines for collision - obj.customwarpmodehon = false; - obj.customwarpmodevon = false; + if (!game.glitchrunnermode) { + //Rewritten system for mobile update: basically, the new logic is to + //check if the player is leaving the map, and if so do a special check against + //warp lines for collision + obj.customwarpmodehon = false; + obj.customwarpmodevon = false; - int i = obj.getplayer(); - if (i > -1 && ((game.door_down > -2 && obj.entities[i].yp >= 226-16) || (game.door_up > -2 && obj.entities[i].yp < -2+16) || (game.door_left > -2 && obj.entities[i].xp < -14+16) || (game.door_right > -2 && obj.entities[i].xp >= 308-16))){ - //Player is leaving room - obj.customwarplinecheck(i); + int i = obj.getplayer(); + if (i > -1 && ((game.door_down > -2 && obj.entities[i].yp >= 226-16) || (game.door_up > -2 && obj.entities[i].yp < -2+16) || (game.door_left > -2 && obj.entities[i].xp < -14+16) || (game.door_right > -2 && obj.entities[i].xp >= 308-16))){ + //Player is leaving room + obj.customwarplinecheck(i); + } } if(obj.customwarpmodehon){ map.warpy=true;