From 40cedc8c94a0665db16907cddaa33431d48a8d19 Mon Sep 17 00:00:00 2001 From: Misa Date: Tue, 28 Apr 2020 21:06:56 -0700 Subject: [PATCH] Move general oldxp/oldyp updating to just before gameinput() This has to be done in order to fix rendering when on a conveyor or moving platform and actively moving with or against it. Pretty sure this shouldn't break anything, oldxp/oldyp is mostly visual after all (and by the time it's used for gravity line collision checking, updateentitylogic() would've already gotten around to it anyway). Incidentally, this also fixes a jitter that would occur if you were moving at the time you died or collected a trinket or custom crewmate, due to the game temporarily freezing and either doing deathsequence or completestop. --- desktop_version/src/Entity.cpp | 3 --- desktop_version/src/main.cpp | 7 +++++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/desktop_version/src/Entity.cpp b/desktop_version/src/Entity.cpp index 3c6e3d34..90b7761e 100644 --- a/desktop_version/src/Entity.cpp +++ b/desktop_version/src/Entity.cpp @@ -4343,9 +4343,6 @@ void entityclass::updateentitylogic( int t ) return; } - entities[t].oldxp = entities[t].xp; - entities[t].oldyp = entities[t].yp; - entities[t].vx = entities[t].vx + entities[t].ax; entities[t].vy = entities[t].vy + entities[t].ay; entities[t].ax = 0; diff --git a/desktop_version/src/main.cpp b/desktop_version/src/main.cpp index 0610dc82..f19a3139 100644 --- a/desktop_version/src/main.cpp +++ b/desktop_version/src/main.cpp @@ -417,6 +417,13 @@ int main(int argc, char *argv[]) script.run(); } + //Update old positions of entities - has to be done BEFORE gameinput! + for (size_t i = 0; i < obj.entities.size(); i++) + { + obj.entities[i].oldxp = obj.entities[i].xp; + obj.entities[i].oldyp = obj.entities[i].yp; + } + gameinput(); gamelogic();