From 4b5b30a81b6a4c7f17a379a5576232b9e092981c Mon Sep 17 00:00:00 2001 From: Nico de Poel Date: Thu, 15 Jul 2021 17:44:28 +0200 Subject: [PATCH] Detect fixed poses and completely disable animation blending in that case. Fixes entities sometimes reappearing in the wrong pose (e.g. a dead enemy) when lerping is enabled. --- engine/Quake/r_alias.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/engine/Quake/r_alias.c b/engine/Quake/r_alias.c index 6e1b01f..f787047 100644 --- a/engine/Quake/r_alias.c +++ b/engine/Quake/r_alias.c @@ -642,7 +642,10 @@ void R_DrawAliasModel (entity_t *e) R_SetupEntityTransform (e, &lerpdata); UQ_Game_SetEntityTransform(e->num, lerpdata.origin, lerpdata.angles); - UQ_Game_UpdateEntityAnimation(e->num, (float)lerpdata.pose1 + lerpdata.blend); + if (lerpdata.pose1 == lerpdata.pose2) + UQ_Game_UpdateEntityAnimation(e->num, (float)lerpdata.pose1); // Fixed pose, don't lerp + else + UQ_Game_UpdateEntityAnimation(e->num, (float)lerpdata.pose1 + lerpdata.blend); // // cull it