Skip to content

Commit 5426b84

Browse files
committed
AnimFrame_Z: Almost match. Agent System: Whole lot of work
1 parent 2d85c84 commit 5426b84

File tree

107 files changed

+3420
-236
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

107 files changed

+3420
-236
lines changed

configure.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -799,12 +799,12 @@ def MatchingFor(*versions):
799799
Object(NonMatching, "Engine/MatrixCache_Z.cpp"),
800800
Object(NonMatching, "Engine/SurfaceCache_Z.cpp"),
801801
Object(Matching, "Engine/ABC_Category.cpp"),
802-
Object(NonMatching, "Engine/AnimatedMsgAgent_Z.cpp"),
802+
Object(Matching, "Engine/AnimatedMsgAgent_Z.cpp"),
803803
Object(NonMatching, "Engine/StreamAgent_Z.cpp"),
804804
Object(NonMatching, "Engine/ObjectMoveCollShadow_Z.cpp"),
805805
Object(NonMatching, "Engine/SystemDatas_Z.cpp"),
806806
Object(NonMatching, "Engine/ParticlesLoad_Z.cpp"),
807-
Object(NonMatching, "Engine/SkinAgent_Z.cpp"),
807+
Object(Matching, "Engine/SkinAgent_Z.cpp"),
808808
Object(NonMatching, "Engine/MeshCollision_Z.cpp"),
809809
Object(NonMatching, "Engine/CameraAgent_Z.cpp"),
810810
Object(NonMatching, "Engine/InputEngine_Z.cpp"),
@@ -988,7 +988,7 @@ def MatchingFor(*versions):
988988
Object(NonMatching, "Engine/LodCollisionSphere_Z.cpp"),
989989
Object(NonMatching, "Engine/ABC_ScriptManagerReserve_Z.cpp"),
990990
Object(NonMatching, "Engine/ObjectsMoveCollNode_Z.cpp"),
991-
Object(NonMatching, "Engine/LodDynAgent_Z.cpp"),
991+
Object(Matching, "Engine/LodDynAgent_Z.cpp"),
992992
Object(NonMatching, "Engine/LodMoveCollCarrying_Z.cpp"),
993993
Object(NonMatching, "Engine/Particles_Z.cpp"),
994994
Object(Matching, "Engine/AnimationNode_Z.cpp"),

src/Engine/ABC_Agent.cpp

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,45 @@
11
#include "ABC_Agent.h"
2+
#include "Program_Z.h"
3+
#include "ABC_ScriptManager.h"
4+
5+
ABC_Behavior* ABC_Agent::currentBehavior = NULL;
6+
S32 behaviorLocalVariablesSize;
7+
void* behaviorLocalData;
8+
S32 sequenceCurrentNesting;
29

310
ABC_Agent::ABC_Agent() {
4-
m_AgentState = agent_neverActivated;
5-
m_UnkAgent = NULL;
6-
m_UnkAgent2 = NULL;
11+
m_State = agent_neverActivated;
12+
m_Next = NULL;
13+
m_Prev = NULL;
714
m_Sender = 0;
815
m_MessageListHead = NULL;
916
m_MessageListTail = NULL;
1017
m_BufferMessageListHead = NULL;
1118
m_BufferMessageListTail = NULL;
1219
m_BehaviorListHead = NULL;
13-
m_AbcAgentFlags = NULL;
20+
m_Flags = NULL;
1421
}
1522

16-
ABC_Agent::~ABC_Agent() { }
23+
ABC_Agent::~ABC_Agent() {
24+
if (gData.ScriptMgr) {
25+
ReleaseMessageList();
26+
SwapMessageList();
27+
ReleaseMessageList();
28+
ReleaseBehaviors();
29+
ABC_AgentHdl& l_Hdl = (ABC_AgentHdl&)GetHandle();
30+
gData.ScriptMgr->RemoveAgent(l_Hdl);
31+
}
32+
}
1733

18-
void ABC_Agent::GetBehavior(behaviorMethodPtr i_Behav) {
34+
ABC_Behavior* ABC_Agent::GetBehavior(behaviorMethodPtr i_BhvMethod) {
35+
ABC_Behavior* l_CurBhv = m_BehaviorListHead;
36+
while (l_CurBhv) {
37+
if (i_BhvMethod == l_CurBhv->m_Method) {
38+
return l_CurBhv;
39+
}
40+
else {
41+
l_CurBhv = l_CurBhv->m_Next;
42+
}
43+
}
44+
return NULL;
1945
}

src/Engine/ABC_ScriptManager.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,29 @@
11
#include "ABC_ScriptManager.h"
2+
#include "LodDynAgent_Z.h"
3+
#include "Program_Z.h"
4+
#include "CameraAgent_Z.h"
5+
#include "SkinAgent_Z.h"
6+
#include "StreamAgent_Z.h"
7+
#include "LodAgent_Z.h"
8+
#include "Breakable_Z.h"
9+
#include "RtcAgent_Z.h"
10+
#include "SubLevelVolumeAgent_Z.h"
11+
#include "ParticlesAgent_Z.h"
12+
13+
void InitEngineScriptClasses() {
14+
INIT_AGENT_CLASS(CameraAgent_Z)
15+
INIT_AGENT_CLASS(Agent_Z)
16+
INIT_AGENT_CLASS(StreamAgent_Z)
17+
INIT_AGENT_CLASS(AnimatedMsgAgent_Z)
18+
INIT_AGENT_CLASS(AnimatedAgent_Z)
19+
INIT_AGENT_CLASS(LodDynAgent_Z)
20+
INIT_AGENT_CLASS(SkinAgent_Z)
21+
INIT_AGENT_CLASS(MovingAgent_Z)
22+
INIT_AGENT_CLASS(Throwable_Z)
23+
INIT_AGENT_CLASS(LodAgent_Z)
24+
INIT_AGENT_CLASS(Breakable_Z)
25+
INIT_AGENT_CLASS(RtcAgent_Z)
26+
INIT_AGENT_CLASS(VolumeAgent_Z)
27+
INIT_AGENT_CLASS(SubLevelVolumeAgent_Z)
28+
INIT_AGENT_CLASS(ParticlesAgent_Z)
29+
}

src/Engine/Agent_Z.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#include "Agent_Z.h"
2+
3+
BEGIN_INIT_AGENT_CLASS(Agent_Z, ABC_Agent)
4+
END_INIT_AGENT_CLASS
5+
6+
Agent_Z::Agent_Z() {
7+
m_AgentFlags = 0;
8+
EnableFlag(FL_AGENT_UNK_0x200000);
9+
m_ClassSoundIndex = -1;
10+
m_MaxSqrDistActive = User_DefaultAgentMaxSqrDistActive;
11+
m_MinSqrDistActive = User_DefaultAgentMinSqrDistActive;
12+
}

src/Engine/AnimFrameLoad_Z.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
// TODO: Finish matching
55
void AnimFrame_Z::Load(void** i_Data) {
6-
gData.ClassMgr->LoadLink(m_NodeHdl, i_Data);
6+
gData.ClassMgr->LoadLink(m_AnimatedNodeHdl, i_Data);
77
LOAD_Z(m_MaxTime);
88
m_TransKfr.Load(i_Data);
99
m_RotKfr.Load(i_Data);
@@ -43,7 +43,7 @@ void AnimFrame_Z::EndLoad() {
4343
S32 i;
4444
S32 j;
4545
m_ResObjLink.EndLoad();
46-
gData.ClassMgr->UpdateLink(m_NodeHdl);
46+
gData.ClassMgr->UpdateLink(m_AnimatedNodeHdl);
4747
for (i = 0; i < m_FollowSplineKfr.GetNbKeys(); i++) {
4848
gData.ClassMgr->UpdateLink(m_FollowSplineKfr.m_Keys[i].m_NodeHdl);
4949
}

0 commit comments

Comments
 (0)