- fixed bad direction setup for vertically moving SE 0.

This also adds missing interpolation for this case.
This commit is contained in:
Christoph Oelckers 2022-12-13 13:46:30 +01:00
parent ee5832048f
commit a12da3c415
2 changed files with 2 additions and 1 deletions

View file

@ -1787,7 +1787,7 @@ void handle_se00(DDukeActor* actor)
if (sect->floorz > actor->spr.pos.Z) //z's are touching if (sect->floorz > actor->spr.pos.Z) //z's are touching
{ {
sect->addfloorz(-2); sect->addfloorz(-2);
zchange = 2; zchange = -2;
if (sect->floorz < actor->spr.pos.Z) if (sect->floorz < actor->spr.pos.Z)
sect->setfloorz(actor->spr.pos.Z); sect->setfloorz(actor->spr.pos.Z);
} }

View file

@ -968,6 +968,7 @@ void spawneffector(DDukeActor* actor, TArray<DDukeActor*>* actors)
case SE_15_SLIDING_DOOR: case SE_15_SLIDING_DOOR:
case SE_16_REACTOR: case SE_16_REACTOR:
case SE_26: case SE_26:
if(actor->spr.lotag == SE_0_ROTATING_SECTOR) StartInterpolation(actor->sector(), Interp_Sect_Floorz);
setsectinterpolate(actor->sector()); setsectinterpolate(actor->sector());
break; break;