From f6ac43d040259856a016d1c30b0cf27f53178c01 Mon Sep 17 00:00:00 2001 From: LHoG <1476261+lhog@users.noreply.github.com> Date: Sat, 12 Oct 2024 22:12:03 +0200 Subject: [PATCH] Probably a better fix compared to https://github.com/beyond-all-reason/spring/commit/9138c3f15af182e16f3af880954e490619542c38. Should fix https://github.com/beyond-all-reason/spring/issues/1726 --- rts/Sim/Objects/SolidObject.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rts/Sim/Objects/SolidObject.h b/rts/Sim/Objects/SolidObject.h index dc8777612b..df210c7c48 100644 --- a/rts/Sim/Objects/SolidObject.h +++ b/rts/Sim/Objects/SolidObject.h @@ -235,15 +235,15 @@ class CSolidObject: public CWorldObject { // these transform a point or vector to object-space - float3 GetObjectSpaceVec(const float3& v) const { return ( (frontdir * v.z) - (rightdir * v.x) + (updir * v.y)); } - float3 GetObjectSpacePos(const float3& p) const { return (pos + (frontdir * p.z) - (rightdir * p.x) + (updir * p.y)); } + float3 GetObjectSpaceVec(const float3& v) const { return ( (frontdir * v.z) + (rightdir * v.x) + (updir * v.y)); } + float3 GetObjectSpacePos(const float3& p) const { return (pos + (frontdir * p.z) + (rightdir * p.x) + (updir * p.y)); } // note: requires drawPos to have been set first float3 GetObjectSpaceDrawPos(const float3& p) const { return (drawPos + GetObjectSpaceVec(p)); } // unsynced mid-{position,vector}s - float3 GetMdlDrawMidPos() const { return (GetObjectSpaceDrawPos(localModel.GetRelMidPos())); } - float3 GetObjDrawMidPos() const { return (GetObjectSpaceDrawPos( relMidPos )); } + float3 GetMdlDrawMidPos() const { return (GetObjectSpaceDrawPos(WORLD_TO_OBJECT_SPACE * localModel.GetRelMidPos())); } + float3 GetObjDrawMidPos() const { return (GetObjectSpaceDrawPos(WORLD_TO_OBJECT_SPACE * relMidPos )); } int2 GetMapPos() const { return (GetMapPos(pos)); }