From 5994aae4f2d87e066cb4c834dad4309544072396 Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Mon, 18 May 2026 18:28:29 -0500 Subject: [PATCH] properly handle looping shapes moving backwards cameras too --- Engine/source/T3D/pathCamera.cpp | 4 +++- Engine/source/T3D/pathShape.cpp | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Engine/source/T3D/pathCamera.cpp b/Engine/source/T3D/pathCamera.cpp index bb14db972..eede59c86 100644 --- a/Engine/source/T3D/pathCamera.cpp +++ b/Engine/source/T3D/pathCamera.cpp @@ -275,7 +275,9 @@ void PathCamera::advancePosition(S32 ms) } // Script callbacks - if (int(mPosition) != int(delta.timeVec)) + if ((mState == Backward) && (int(mPosition) == 0) && (mSpline.advanceTime(delta.timeVec - mNodeBase, -ms) < TickSec)) + onNode(0); + else if (int(mPosition) > 0 && int(mPosition) != int(delta.timeVec)) onNode(int(mPosition)); // Set frame interpolation diff --git a/Engine/source/T3D/pathShape.cpp b/Engine/source/T3D/pathShape.cpp index 9370c09e5..a829f70ef 100644 --- a/Engine/source/T3D/pathShape.cpp +++ b/Engine/source/T3D/pathShape.cpp @@ -229,7 +229,9 @@ void PathShape::advancePosition(S32 ms) } // Script callbacks - if (int(mPosition) != int(delta.timeVec)) + if ((mState == Backward) && (int(mPosition) == 0) && (mSpline.advanceTime(delta.timeVec - mNodeBase, -ms) < TickSec)) + onNode(0); + else if (int(mPosition)>0 && int(mPosition) != int(delta.timeVec)) onNode(int(mPosition)); // Set frame interpolation