Skip to content

Commit df301c4

Browse files
committed
Animation_Z: Setup, and matched some funcs. General: Formatting
1 parent f294575 commit df301c4

35 files changed

+950
-182
lines changed

src/Engine/AnimationLoad_Z.cpp

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#include "Animation_Z.h"
2+
#include "Sys_Z.h"
3+
4+
void Animation_Z::Load(void** i_Data) {
5+
MEMCPYFROM_Z(&m_MaxTime, *i_Data, sizeof(m_MaxTime));
6+
MEMCPYFROM_Z(&m_SmoothRatio, *i_Data, sizeof(m_SmoothRatio));
7+
MEMCPYFROM_Z(&m_Flag, *i_Data, sizeof(m_Flag));
8+
9+
AnimationNode_Z::Load(m_NodeKfr, i_Data);
10+
AnimationMaterial_Z::Load(m_MtlKfr, i_Data);
11+
AnimationMesh_Z::Load(m_MeshKfr, i_Data);
12+
AnimationMorph_Z::Load(m_MorphKfr, i_Data);
13+
S32 l_Nb;
14+
MEMCPYFROM_Z(&l_Nb, *i_Data, 4);
15+
m_NodeCct.SetSize(l_Nb);
16+
MEMCPYFROM_Z(m_NodeCct.GetArrayPtr(), *i_Data, l_Nb * sizeof(AnimationConcatNode_Z));
17+
MEMCPYFROM_Z(&l_Nb, *i_Data, 4);
18+
m_MtlCct.SetSize(l_Nb);
19+
MEMCPYFROM_Z(m_MtlCct.GetArrayPtr(), *i_Data, l_Nb * sizeof(AnimationConcatMtl_Z));
20+
MEMCPYFROM_Z(&l_Nb, *i_Data, 4);
21+
m_MeshCct.SetSize(l_Nb);
22+
MEMCPYFROM_Z(m_MeshCct.GetArrayPtr(), *i_Data, l_Nb * sizeof(AnimationConcat_Z));
23+
MEMCPYFROM_Z(&l_Nb, *i_Data, 4);
24+
m_MorphCct.SetSize(l_Nb);
25+
MEMCPYFROM_Z(m_MorphCct.GetArrayPtr(), *i_Data, l_Nb * sizeof(AnimationConcat_Z));
26+
if (GetMaxTime() <= 0.0f) {
27+
GetDebugName();
28+
}
29+
}

src/Engine/AnimationMaterial_Z.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#include "AnimationMaterial_Z.h"
2+
#include "Sys_Z.h"
3+
4+
void AnimationMaterial_Z::Load(AnimationMtlData_Z& i_AnimData, void** i_Data) {
5+
i_AnimData.m_TransUKfr.Load(i_Data);
6+
i_AnimData.m_TransVKfr.Load(i_Data);
7+
i_AnimData.m_DiffuseColorKfr.Load(i_Data);
8+
i_AnimData.m_EmissiveColorKfr.Load(i_Data);
9+
i_AnimData.m_RotKfr.Load(i_Data);
10+
}

src/Engine/AnimationMesh_Z.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#include "Animation_Z.h"
2+
#include "AnimationMesh_Z.h"
3+
#include "Skel_Z.h"
4+
5+
// $SABE TODO: Finish matching
6+
void AnimationMesh_Z::UpdateCct(Float i_Time, const AnimationMeshData_Z& i_AnimData, const AnimationConcat_Z& i_Cct, AnimationMeshKeyId_Z& i_KeyId, Skel_Z* i_Skel) {
7+
if (i_AnimData.m_VisibilityKfr.GetNbKeys()) {
8+
S32 l_StartKfr = i_Cct.m_StartKfr;
9+
S32 l_NbKfr = i_Cct.m_NbKfr;
10+
Float l_Visibility;
11+
i_KeyId.m_CurVisibility = i_AnimData.m_VisibilityKfr.GetCctValue(l_NbKfr, l_StartKfr, i_Time, l_Visibility, i_KeyId.m_CurVisibility);
12+
if (l_Visibility != 0.0f) {
13+
i_Skel->UnhideObjectNamed(i_Cct.m_ObjectName, FALSE);
14+
}
15+
else {
16+
i_Skel->HideObjectNamed(i_Cct.m_ObjectName, FALSE);
17+
}
18+
}
19+
}
20+
21+
void AnimationMesh_Z::Load(AnimationMeshData_Z& i_AnimData, void** i_Data) {
22+
i_AnimData.m_VisibilityKfr.Load(i_Data);
23+
}

src/Engine/AnimationMorph_Z.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#include "Animation_Z.h"
2+
#include "AnimationMorph_Z.h"
3+
#include "MeshMorph_Z.h"
4+
#include "Types_Z.h"
5+
6+
// $SABE TODO: Finish matching
7+
void AnimationMorph_Z::UpdateCct(Float i_Time, const AnimationMorphData_Z& i_AnimData, const AnimationConcat_Z& i_Cct, AnimationMorphKeyId_Z& i_KeyId, MorphTarget_Z& i_MorphTarget) {
8+
if (i_AnimData.m_MorphKfr.GetNbKeys()) {
9+
S32 l_CurMorph = i_KeyId.m_CurMorph;
10+
S32 l_StartKfr = i_Cct.m_StartKfr;
11+
S32 l_NbKfr = i_Cct.m_NbKfr;
12+
Float l_Morph;
13+
i_KeyId.m_CurMorph = i_AnimData.m_MorphKfr.GetCctValue(l_NbKfr, l_StartKfr, i_Time, l_Morph, l_CurMorph);
14+
i_MorphTarget.m_Morph = l_Morph;
15+
}
16+
}
17+
18+
void AnimationMorph_Z::Load(AnimationMorphData_Z& i_AnimData, void** i_Data) {
19+
i_AnimData.m_MorphKfr.Load(i_Data);
20+
}

src/Engine/AnimationNode_Z.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#include "AnimationNode_Z.h"
2+
#include "Sys_Z.h"
3+
4+
void AnimationNode_Z::Load(AnimationNodeData_Z& i_AnimData, void** i_Data) {
5+
MEMCPYFROM_Z(&i_AnimData.m_Flag, *i_Data, sizeof(i_AnimData.m_Flag));
6+
i_AnimData.m_RotKfr.Load(i_Data);
7+
i_AnimData.m_BezierRotKfr.Load(i_Data);
8+
i_AnimData.m_ScaleKfr.Load(i_Data);
9+
i_AnimData.m_TransKfr.Load(i_Data);
10+
i_AnimData.m_MsgKfr.Load(i_Data);
11+
}

src/Engine/Handle_Z.cpp

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,6 @@ HandleManager_Z::HandleManager_Z() {
1616
m_ForbidCheckHandles = FALSE;
1717
}
1818

19-
S32 HandleManager_Z::HandleToU32(const BaseObject_ZHdl& i_Hdl) {
20-
return i_Hdl.m_RealID.GblID;
21-
}
22-
2319
const BaseObject_ZHdl& HandleManager_Z::CreateNewHandle(BaseObject_Z* i_ObjPtr, const Name_Z& i_Name, S16 i_ClassID, U8 i_Flag) {
2420
if (!m_NbFree) {
2521
ExpandSize();
@@ -73,7 +69,6 @@ void HandleManager_Z::DeleteHandle(const BaseObject_ZHdl& i_Hdl) {
7369
m_FreeRecDA[m_NbFree++] = l_ID;
7470
}
7571

76-
// $SABE TODO: Fix match %, believed cause is inlined BitArray_Z::GetBit in HashTableBase_Z::Supress
7772
void HandleManager_Z::RemoveResourceRef(const HandleRec_Z& i_HandleRec) {
7873
if (i_HandleRec.m_Flag & 0x8) {
7974
S32Hash_Z l_HashElt(i_HandleRec.m_Name.GetID());
@@ -90,22 +85,20 @@ void HandleManager_Z::AddResourceRef(const HandleRec_Z& i_HandleRec, S32 i_Index
9085
}
9186
}
9287

93-
// $SABE TODO: Fix match %, believed cause is inlined BitArray_Z::GetBit in HashTableBase_Z::Search
9488
S32 HandleManager_Z::IsResourceRef(S32 i_Hdl) {
9589
S32Hash_Z l_HashElt(i_Hdl);
9690
const S32Hash_Z* l_Result = m_HandleIdHT.Search(l_HashElt);
9791
if (l_Result) {
98-
return l_Result->m_Value;
92+
return l_Result->m_Ref;
9993
}
10094
return -1;
10195
}
10296

10397
S32 HandleManager_Z::ChangeHandleName(const BaseObject_ZHdl& i_Hdl, const Name_Z& i_Name) {
104-
int l_ID = i_Hdl.GetID();
105-
int l_Key = i_Hdl.GetKey();
98+
S32 l_ID = i_Hdl.GetID();
10699

107-
if (CheckKey(l_ID, l_Key)) {
108-
HandleRec_Z l_HandleRec = m_HandleRecDA[i_Hdl.GetID()];
100+
if (CheckKey(l_ID, i_Hdl.GetKey())) {
101+
HandleRec_Z& l_HandleRec = m_HandleRecDA[l_ID];
109102
ASSERTLE_Z(!(l_HandleRec.m_Flag & HandleRec_Z::RSC), "", 157, "!(HdlRec.Flag&HandleRec_Z::RSC)");
110103
l_HandleRec.m_Name = i_Name;
111104
return TRUE;
@@ -114,19 +107,19 @@ S32 HandleManager_Z::ChangeHandleName(const BaseObject_ZHdl& i_Hdl, const Name_Z
114107
}
115108

116109
void HandleManager_Z::MarkU32Handle(U32 i_Hdl) {
117-
Bool l_Result = FALSE;
118-
int l_ID;
119-
S8 l_Key;
120-
121-
l_ID = ((BaseObject_ZHdl*)&i_Hdl)->GetID();
122-
if (l_ID < m_HandleRecDA.GetSize()) {
123-
l_Key = ((BaseObject_ZHdl*)&i_Hdl)->GetKey();
124-
if (l_Key == m_HandleRecDA[l_ID].m_Key) {
125-
l_Result = TRUE;
126-
}
127-
}
128-
if (l_Result) {
110+
BaseObject_ZHdl l_Hdl = *((BaseObject_ZHdl*)&i_Hdl);
111+
S32 l_ID = l_Hdl.GetID();
112+
if (CheckKey(l_ID, l_Hdl.GetKey())) {
129113
m_HandleRecDA[l_ID].m_ObjPtr->MarkHandles();
130114
}
131-
return;
115+
}
116+
117+
S32 HandleManager_Z::HandleToU32(const BaseObject_ZHdl& i_Hdl) {
118+
return i_Hdl.m_RealID.GblID;
119+
}
120+
121+
BaseObject_ZHdl HandleManager_Z::U32ToHandle(S32 i_Hdl) {
122+
BaseObject_ZHdl l_Hdl;
123+
l_Hdl.m_RealID.GblID = i_Hdl;
124+
return l_Hdl;
132125
}

src/Engine/KeyframerRot_Z.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#include "Keyframer_Z.h"
2+
#include "Types_Z.h"
3+
4+
void KeyRot_Z::Set(const Quat& i_Value) {
5+
Float l_NewX = i_Value.v.x * KEY_QUAT_COMP_FACTOR + 0.5f;
6+
m_ValueX = l_NewX >= 0.0f ? (int)l_NewX : -((int)-l_NewX);
7+
Float l_NewY = i_Value.v.y * KEY_QUAT_COMP_FACTOR + 0.5f;
8+
m_ValueY = l_NewY >= 0.0f ? (int)l_NewY : -((int)-l_NewY);
9+
Float l_NewZ = i_Value.v.z * KEY_QUAT_COMP_FACTOR + 0.5f;
10+
m_ValueZ = l_NewZ >= 0.0f ? (int)l_NewZ : -((int)-l_NewZ);
11+
Float l_NewW = i_Value.w * KEY_QUAT_COMP_FACTOR + 0.5f;
12+
m_ValueW = l_NewW >= 0.0f ? (int)l_NewW : -((int)-l_NewW);
13+
}

src/Engine/KeyframerrVec3f_Z.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#include "Keyframer_Z.h"
2+
3+
// $SABE TODO: Finish matching
4+
void KeyVec3fComp_Z::Set(Vec3f const& i_Value, Vec3f const& i_TgtIn, Vec3f const& i_TgtOut) {
5+
m_ValueX = i_Value.x * KEY_VEC_COMP_FACTOR;
6+
m_ValueY = i_Value.y * KEY_VEC_COMP_FACTOR;
7+
m_ValueZ = i_Value.z * KEY_VEC_COMP_FACTOR;
8+
m_TgtInX = i_TgtIn.x * KEY_VEC_COMP_FACTOR;
9+
m_TgtInY = i_TgtIn.y * KEY_VEC_COMP_FACTOR;
10+
m_TgtInZ = i_TgtIn.z * KEY_VEC_COMP_FACTOR;
11+
m_TgtOutX = i_TgtOut.x * KEY_VEC_COMP_FACTOR;
12+
m_TgtOutY = i_TgtOut.y * KEY_VEC_COMP_FACTOR;
13+
m_TgtOutZ = i_TgtOut.z * KEY_VEC_COMP_FACTOR;
14+
}

src/Engine/MeshMorph_Z.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include "Mesh_Z.h"
1+
#include "MeshMorph_Z.h"
22
#include "Sys_Z.h"
33
#include "Program_Z.h"
44

src/Engine/includes/AnimMessage_Z.h

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,26 @@
11
#ifndef _ANIMMESSAGE_Z_H_
22
#define _ANIMMESSAGE_Z_H_
3+
#include "DynArray_Z.h"
34
#include "Types_Z.h"
45
#include "Name_Z.h"
56

67
class Skel_Z;
78
class BoneNode_Z;
89
class Node_Z;
910
class AnimatedAgent_Z;
11+
class Message_Z;
1012

11-
class Message_Z {
13+
typedef DynArray_Z<Message_Z, 4, 0, 1> Message_ZDA;
14+
15+
struct Message_Z {
1216
U32 m_Id;
1317
U32 m_U32Param;
1418
U32 m_FlagParam;
1519
Float m_FloatParam;
1620
Name_Z m_NameParam;
1721
};
1822

19-
class RegMessage_Z {
23+
struct RegMessage_Z {
2024
U32 m_Id;
2125
U32 m_U32Param;
2226
U32 m_FlagParam;
@@ -29,8 +33,7 @@ class RegMessage_Z {
2933
Node_Z* m_NodePtr;
3034
};
3135

32-
class SkelMessage_Z {
33-
36+
struct SkelMessage_Z {
3437
U32 m_NextId;
3538
U32 m_SphereId;
3639
U32 m_VsSphereId;

0 commit comments

Comments
 (0)