11/*
2- ** Command & Conquer Generals(tm)
2+ ** Command & Conquer Generals Zero Hour (tm)
33** Copyright 2025 Electronic Arts Inc.
44**
55** This program is free software: you can redistribute it and/or modify
2626 * *
2727 * Author:: Greg_h *
2828 * *
29- * $Modtime:: 8/28 /01 12:12p $*
29+ * $Modtime:: 12/13 /01 6:56p $*
3030 * *
31- * $Revision:: 7 $*
31+ * $Revision:: 10 $*
3232 * *
3333 *---------------------------------------------------------------------------------------------*
3434 * Functions: *
@@ -498,7 +498,6 @@ void Animatable3DObjClass::Set_Animation(HAnimClass * motion, float frame, int m
498498 Set_Hierarchy_Valid (false );
499499}
500500
501-
502501/* **********************************************************************************************
503502 * Animatable3DObjClass::Set_Animation -- set the animation state to a blend of two anims *
504503 * *
@@ -869,8 +868,10 @@ bool Animatable3DObjClass::Simple_Evaluate_Bone(int boneindex, Matrix3D *tm) con
869868 //
870869 // Only do this for simple animations
871870 //
872- if (CurMotionMode == SINGLE_ANIM) {
873-
871+ if ( CurMotionMode == NONE ||
872+ CurMotionMode == BASE_POSE ||
873+ CurMotionMode == SINGLE_ANIM)
874+ {
874875 //
875876 // Determine which frame we should be on, then use this
876877 // information to determine the bone's transform.
@@ -880,7 +881,8 @@ bool Animatable3DObjClass::Simple_Evaluate_Bone(int boneindex, Matrix3D *tm) con
880881
881882 } else {
882883
883- *tm = Transform;
884+ const_cast <Animatable3DObjClass *>(this )->Update_Sub_Object_Transforms ();
885+ *tm = HTree->Get_Transform (boneindex);
884886
885887 }
886888
@@ -909,9 +911,15 @@ bool Animatable3DObjClass::Simple_Evaluate_Bone(int boneindex, float frame, Matr
909911 // Only do this for simple animations
910912 //
911913 if (HTree != NULL ) {
914+
912915 if (CurMotionMode == SINGLE_ANIM) {
913916 retval = HTree->Simple_Evaluate_Pivot (ModeAnim.Motion , boneindex, frame, Get_Transform (), tm);
917+ } else if (CurMotionMode == NONE || CurMotionMode == BASE_POSE) {
918+ retval = HTree->Simple_Evaluate_Pivot (boneindex, Get_Transform (), tm);
919+ } else {
920+ *tm = Transform;
914921 }
922+
915923 } else {
916924 *tm = Transform;
917925 }
0 commit comments