diff --git a/Core/Libraries/Source/WWVegas/WW3D2/htree.cpp b/Core/Libraries/Source/WWVegas/WW3D2/htree.cpp index 3abc52fb0bc..2a8ffc84557 100644 --- a/Core/Libraries/Source/WWVegas/WW3D2/htree.cpp +++ b/Core/Libraries/Source/WWVegas/WW3D2/htree.cpp @@ -609,18 +609,6 @@ void HTreeClass::Anim_Update(const Matrix3D & root,HAnimClass * motion,float fra For use by 'Generals' -MW*/ void HTreeClass::Anim_Update_Without_Interpolation(const Matrix3D & root,HRawAnimClass * motion,float frame) { - if (WW3D::Get_Sync_Frame_Time() == 0 && (int)motion->Get_Frame_Rate() == WWSyncPerSecond) - { - // TheSuperHackers @tweak Keep the animation frame step in sync with the ww3d frame step if they can align. - // @todo This needs improving if the WWSyncPerSecond is changed or the animation frame rates can be larger. -#if defined(GENERALS_ONLINE) - static_assert(WWSyncPerSecond == GENERALS_ONLINE_HIGH_FPS_LIMIT, "This is currently catered to a 60/30 fps sync (depending on define)"); -#else - static_assert(WWSyncPerSecond == 30, "This is currently catered to a 30 fps sync"); -#endif - return; - } - PivotClass *pivot,*endpivot,*lastAnimPivot; Pivot[0].Transform = root; diff --git a/Generals/Code/Libraries/Source/WWVegas/WW3D2/animobj.cpp b/Generals/Code/Libraries/Source/WWVegas/WW3D2/animobj.cpp index 4cf15ff8292..0d4e780af7a 100644 --- a/Generals/Code/Libraries/Source/WWVegas/WW3D2/animobj.cpp +++ b/Generals/Code/Libraries/Source/WWVegas/WW3D2/animobj.cpp @@ -1104,6 +1104,9 @@ void Animatable3DObjClass::Set_HTree(HTreeClass * new_htree) // just assign it... delete HTree; HTree = W3DNEW HTreeClass(*new_htree); + + // Mark hierarchy as invalid to force transform recalculation + Set_Hierarchy_Valid(false); } diff --git a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/animobj.cpp b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/animobj.cpp index 15e089a0bab..849f039fa92 100644 --- a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/animobj.cpp +++ b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/animobj.cpp @@ -1112,6 +1112,9 @@ void Animatable3DObjClass::Set_HTree(HTreeClass * new_htree) // just assign it... delete HTree; HTree = W3DNEW HTreeClass(*new_htree); + + // Mark hierarchy as invalid to force transform recalculation + Set_Hierarchy_Valid(false); }