Skip to content

Commit c7e43fe

Browse files
committed
merge: Merge WW3D2/animobj
- Modified conditions and logic for simple animations
1 parent f6a7b85 commit c7e43fe

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed

Generals/Code/Libraries/Source/WWVegas/WW3D2/animobj.cpp

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
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
@@ -26,9 +26,9 @@
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
}

Generals/Code/Libraries/Source/WWVegas/WW3D2/animobj.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
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

0 commit comments

Comments
 (0)