From 4f388c3589292bb7305760770eef623d6c22b8c6 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Tue, 13 Dec 2022 13:46:30 +0100 Subject: [PATCH] - fixed bad direction setup for vertically moving SE 0. This also adds missing interpolation for this case. --- source/games/duke/src/actors.cpp | 2 +- source/games/duke/src/spawn.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/source/games/duke/src/actors.cpp b/source/games/duke/src/actors.cpp index 95cc57852..329ff1335 100644 --- a/source/games/duke/src/actors.cpp +++ b/source/games/duke/src/actors.cpp @@ -727,7 +727,7 @@ void handle_se00(DDukeActor* actor) if (sect->floorz > actor->spr.pos.Z) //z's are touching { sect->addfloorz(-2); - zchange = 2; + zchange = -2; if (sect->floorz < actor->spr.pos.Z) sect->setfloorz(actor->spr.pos.Z); } diff --git a/source/games/duke/src/spawn.cpp b/source/games/duke/src/spawn.cpp index 85cf13e12..178ff8041 100644 --- a/source/games/duke/src/spawn.cpp +++ b/source/games/duke/src/spawn.cpp @@ -863,6 +863,7 @@ void spawneffector(DDukeActor* actor, TArray* actors) case SE_15_SLIDING_DOOR: case SE_16_REACTOR: case SE_26: + if(actor->spr.lotag == SE_0_ROTATING_SECTOR) StartInterpolation(actor->sector(), Interp_Sect_Floorz); setsectinterpolate(actor->sector()); break;