diff --git a/src/p_enemy.c b/src/p_enemy.c index c3f6944d9..0edfbb5e8 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -4334,8 +4334,11 @@ void A_OverlayThink(mobj_t *actor) actor->z = actor->target->z + actor->target->height - mobjinfo[actor->type].height - ((var2>>16) ? -1 : 1)*(var2&0xFFFF)*FRACUNIT; else actor->z = actor->target->z + ((var2>>16) ? -1 : 1)*(var2&0xFFFF)*FRACUNIT; - actor->angle = actor->target->angle + actor->movedir; - actor->eflags = actor->target->eflags; + actor->angle = (actor->target->player ? actor->target->player->drawangle : actor->target->angle) + actor->movedir; + actor->rollangle = actor->target->rollangle; + actor->pitch = actor->target->pitch; + actor->roll = actor->target->roll; + actor->eflags = (actor->eflags & ~MFE_VERTICALFLIP) | (actor->target->eflags & MFE_VERTICALFLIP); actor->momx = actor->target->momx; actor->momy = actor->target->momy; diff --git a/src/p_mobj.c b/src/p_mobj.c index 9432d5625..9a4c28ea4 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -4976,7 +4976,7 @@ void P_RunOverlays(void) mo->eflags = (mo->eflags & ~MFE_VERTICALFLIP) | (mo->target->eflags & MFE_VERTICALFLIP); mo->scale = mo->destscale = mo->target->scale; - mo->angle = mo->target->angle + mo->movedir; + mo->angle = (mo->target->player ? mo->target->player->drawangle : mo->target->angle) + mo->movedir; mo->rollangle = mo->target->rollangle; mo->pitch = mo->target->pitch; mo->roll = mo->target->roll;