diff --git a/src/p_map.cpp b/src/p_map.cpp index 923799668..d1fc77268 100644 --- a/src/p_map.cpp +++ b/src/p_map.cpp @@ -2535,7 +2535,11 @@ bool P_CheckMove(AActor *thing, const DVector2 &pos, int flags) } else if ((flags & PCM_DROPOFF) && !(thing->flags & (MF_FLOAT|MF_DROPOFF))) { - if (newz - tm.dropoffz > thing->MaxDropOffHeight) + const DVector3 oldpos = thing->Pos(); + thing->SetOrigin(pos.X, pos.Y, newz, true); + bool hcheck = (newz - thing->dropoffz > thing->MaxDropOffHeight); + thing->SetOrigin(oldpos, true); + if (hcheck) { return false; } @@ -4840,7 +4844,7 @@ void P_AimCamera(AActor *t1, DVector3 &campos, DAngle &camangle, sector_t *&Came } else { - campos = trace.HitPos; + campos = trace.HitPos - trace.HitVector * 1/256.; } CameraSector = trace.Sector; unlinked = trace.unlinked;