aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/poser_charlesslow.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/poser_charlesslow.c b/src/poser_charlesslow.c
index 080ad6a..96442b3 100644
--- a/src/poser_charlesslow.c
+++ b/src/poser_charlesslow.c
@@ -169,6 +169,7 @@ int PoserCharlesSlow( SurviveObject * so, PoserData * pd )
copy3d( ctx->bsd[lh].Pose.Pos, LighthousePos );
quatcopy( ctx->bsd[lh].Pose.Rot, LighthouseQuat );
#define ALT_COORDS
+
#ifdef ALT_COORDS
so->FromLHPose[lh].Pos[0] = LighthousePos[0];
so->FromLHPose[lh].Pos[1] = LighthousePos[1];
@@ -188,6 +189,11 @@ int PoserCharlesSlow( SurviveObject * so, PoserData * pd )
so->FromLHPose[lh].Rot[2] = LighthouseQuat[2];
so->FromLHPose[lh].Rot[3] = LighthouseQuat[3];
#endif
+
+ const FLT rt[4] = {0, 0, 1, 0};
+ FLT tmp[4];
+ quatrotateabout(tmp, so->ctx->bsd[lh].Pose.Rot, rt);
+ memcpy(so->ctx->bsd[lh].Pose.Rot, tmp, sizeof(FLT) * 4);
}
return 0;