From 91468542a9bfde0b11a3a198270214d424137269 Mon Sep 17 00:00:00 2001 From: Misa Date: Fri, 1 May 2020 17:40:14 -0700 Subject: [PATCH] Fix ZZT centipedes (or ASCII snakes) zipping around This is because their oldxp wasn't being updated when they move (or rather, teleport) and wrap around the screen. These enemies are ZZT centipedes, but they're referred to as ASCII snakes in comments in the code. --- desktop_version/src/Entity.cpp | 2 ++ desktop_version/src/Logic.cpp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/desktop_version/src/Entity.cpp b/desktop_version/src/Entity.cpp index 5da74fb8..06d6ba96 100644 --- a/desktop_version/src/Entity.cpp +++ b/desktop_version/src/Entity.cpp @@ -2376,6 +2376,7 @@ bool entityclass::updateentities( int i ) { entities[i].statedelay = 6; entities[i].xp -= int(entities[i].para); + entities[i].oldxp -= int(entities[i].para); } break; case 18: //Special for ASCII Snake (right) @@ -2383,6 +2384,7 @@ bool entityclass::updateentities( int i ) { entities[i].statedelay = 6; entities[i].xp += int(entities[i].para); + entities[i].oldxp += int(entities[i].para); } break; } diff --git a/desktop_version/src/Logic.cpp b/desktop_version/src/Logic.cpp index 6bd30b65..6d89e303 100644 --- a/desktop_version/src/Logic.cpp +++ b/desktop_version/src/Logic.cpp @@ -1022,11 +1022,13 @@ void gamelogic() { if (obj.entities[i].isplatform) obj.removeblockat(obj.entities[i].xp, obj.entities[i].yp); obj.entities[i].xp += 400; + obj.entities[i].oldxp += 400; } else if (obj.entities[i].xp > 320) { if (obj.entities[i].isplatform) obj.removeblockat(obj.entities[i].xp, obj.entities[i].yp); obj.entities[i].xp -= 400; + obj.entities[i].oldxp -= 400; } } else