Skip to content

Commit 4d8febf

Browse files
SamuraiOndo0x5abe
andcommitted
ClassManager_Z and most required classes
Co-Authored-By: Sebastián Meljem <95201472+0x5abe@users.noreply.github.com>
1 parent 45b3132 commit 4d8febf

File tree

122 files changed

+2633
-343
lines changed

Some content is hidden

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

122 files changed

+2633
-343
lines changed

configure.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -858,7 +858,7 @@ def MatchingFor(*versions):
858858
Object(Matching, "Engine/BitArray_Z.cpp"),
859859
Object(NonMatching, "Engine/CameraZone_Z.cpp"),
860860
Object(Matching, "Engine/String_Z.cpp"),
861-
Object(NonMatching, "Engine/StreamManager_Z.cpp"),
861+
Object(Matching, "Engine/StreamManager_Z.cpp"),
862862
Object(NonMatching, "Engine/GameManagerCmd_Z.cpp"),
863863
Object(Matching, "Engine/Animation_Z.cpp"),
864864
Object(NonMatching, "Engine/LodMoveCollCling_Z.cpp"),

src/Engine/ABC_ScriptManager.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ void InitEngineScriptClasses() {
3737
ABC_ScriptManager::ABC_ScriptManager()
3838
: m_MsgEnum(64) {
3939
m_DisplayMaxUsageTime = 0.0f;
40-
m_IsPaused = false;
40+
m_IsPaused = FALSE;
4141
m_TimedMessages = NULL;
4242
m_ScriptTime = 0.0f;
4343
m_CycleDuration = 0.0f;

src/Engine/AnimationManagerMes_Z.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ void AnimationManager_Z::ReserveMsgArray() {
1818
m_DfltSkelMsg.m_BoneNodePtr = NULL;
1919
m_DfltSkelMsg.m_VsBoneNodePtr = NULL;
2020
m_DfltSkelMsg.m_VsAgentPtr = NULL;
21-
m_DfltSkelMsg.m_CanVsSphereCollide = false;
22-
m_DfltSkelMsg.m_CanSphereCollide = false;
21+
m_DfltSkelMsg.m_CanVsSphereCollide = FALSE;
22+
m_DfltSkelMsg.m_CanSphereCollide = FALSE;
2323
m_AnimMsg = NewL_Z(17) RegMessage_Z[MAX_REGMSG_ARRAY_SIZE];
2424
m_BufAnimMsg = NewL_Z(18) RegMessage_Z[MAX_REGMSG_ARRAY_SIZE];
2525
m_BufAnimMsgNb = 0;

src/Engine/BoneNode_Z.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "BoneNode_Z.h"
22
#include "Program_Z.h"
3+
#include "MatrixCache_Z.h"
34

45
BoneNode_Z::BoneNode_Z() {
56
}

src/Engine/ClassManager_Z.cpp

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,111 @@
11
#include "ClassManager_Z.h"
2+
#include "Console_Z.h"
3+
#include "Program_Z.h"
4+
5+
#ifdef __MWERKS__ // TODO: Should check for GC instead of metrowerks
6+
#define BIGFILE_EXTENSION ".DGC"
7+
#define BIGFILE_NAME_EXTENSION ".NGC"
8+
#define BIGFILE_PLATFORM_VERSION ".01"
9+
#else
10+
// $SABE: If this gets hit define a bigfile extension and version for the platform you're building on
11+
#define BIGFILE_EXTENSION ".DXX"
12+
#define BIGFILE_NAME_EXTENSION ".NXX"
13+
#define BIGFILE_PLATFORM_VERSION ".99"
14+
#endif
15+
16+
#define BIGFILE_STREAM_EXTENSION ".STR"
17+
18+
ClassManager_Z::ClassManager_Z() {
19+
m_UnkS32_0x16c = -1;
20+
REGISTERCOMMANDC("OpenBF", OpenBF, " [BigFileName] [StreamAgentInherit=Default StreamAgent_Z]");
21+
REGISTERCOMMANDC("OpenBFS", OpenBFS, " [BigFileName]");
22+
REGISTERCOMMAND("ForceBF", ForceBF);
23+
REGISTERCOMMAND("CloseBF", CloseBF);
24+
REGISTERCOMMANDC("CloneClass", CloneClass, " ClonedClassName ClassName");
25+
m_BfPathWrite.Empty();
26+
m_BfPathRead.Empty();
27+
m_BfCreate = FALSE;
28+
m_BfRead = FALSE;
29+
m_BfOpened = FALSE;
30+
m_BfExtension.StrCpy(BIGFILE_EXTENSION);
31+
m_BfNameExtension.StrCpy(BIGFILE_NAME_EXTENSION);
32+
m_BfStreamExtension.StrCpy(BIGFILE_STREAM_EXTENSION);
33+
m_BfVersion.Sprintf(BIGFILE_VERSION_STRING, User_BFVersion, BIGFILE_PATCH_VERSION, BIGFILE_PLATFORM_VERSION);
34+
m_BfHeader.StrCpy(m_BfVersion);
35+
m_BfHeader.StrCat(BIGFILE_VERSION_COPYRIGHT);
36+
}
37+
38+
void ClassManager_Z::RegisterClass(const Char* i_ClassName, const Char* i_ParentClassName, NewObjectProc i_NewObject) {
39+
Name_Z l_ClassName(i_ClassName);
40+
Name_Z l_ParentClassName(i_ParentClassName);
41+
S32 l_ClassId = m_ClassList.GetSize();
42+
43+
S32Hash_Z l_NameToId(l_ClassName.GetID(), l_ClassId);
44+
m_ClassNameToIndex.Insert(l_NameToId);
45+
46+
ClassDesc_Z l_ClassDesc(l_ClassName, l_ParentClassName, i_NewObject, -1);
47+
m_ClassList.Add(l_ClassDesc);
48+
}
49+
50+
void ClassManager_Z::RegisterClassType(const Char* i_ClassName, U8 i_AddFlag, U8 i_RemoveFlag) {
51+
Name_Z l_ClassName(i_ClassName);
52+
S32Hash_Z l_NameToId(l_ClassName.GetID());
53+
const S32Hash_Z* l_Result = m_ClassNameToIndex.Search(l_NameToId);
54+
55+
ASSERTLE_Z(l_Result, "", 151, "pResult");
56+
57+
m_ClassList[l_Result->m_Ref].m_Flag |= i_AddFlag;
58+
m_ClassList[l_Result->m_Ref].m_Flag &= ~i_RemoveFlag;
59+
}
60+
61+
Bool ClassManager_Z::IsObjectInherit(const Name_Z& i_ClassName, const Name_Z& i_ParentClassName) {
62+
S32 l_ClassId = GetClassIndex(Name_Z(i_ClassName));
63+
while (l_ClassId > 0) {
64+
if (m_ClassList[l_ClassId].m_ParentClassName == i_ParentClassName) {
65+
return TRUE;
66+
}
67+
l_ClassId = GetClassIndex(m_ClassList[l_ClassId].m_ParentClassName);
68+
}
69+
return FALSE;
70+
}
71+
72+
const BaseObject_ZHdl& ClassManager_Z::NewObject(const Name_Z& i_ClassName, const Name_Z& i_Name) {
73+
S16 l_ClassId = GetClassIndex(i_ClassName);
74+
if (l_ClassId < 0) {
75+
return m_NullHandle;
76+
}
77+
return NewObject(l_ClassId, i_Name);
78+
}
79+
80+
const BaseObject_ZHdl& ClassManager_Z::NewObject(const Name_Z& i_ClassName) {
81+
S16 l_ClassId = GetClassIndex(i_ClassName);
82+
if (l_ClassId < 0) {
83+
return m_NullHandle;
84+
}
85+
String_Z<ARRAY_CHAR_MAX> l_ObjectNameString;
86+
fsprintfID(l_ObjectNameString, l_ClassId, m_ClassList[l_ClassId].m_Id);
87+
Name_Z l_ObjectName(l_ObjectNameString);
88+
return NewObject(l_ClassId, l_ObjectName);
89+
}
90+
91+
const BaseObject_ZHdl& ClassManager_Z::NewObject(const Char* i_ClassName) {
92+
S16 l_ClassId = GetClassIndex(i_ClassName);
93+
if (l_ClassId < 0) {
94+
return m_NullHandle;
95+
}
96+
String_Z<ARRAY_CHAR_MAX> l_ObjectNameString;
97+
fsprintfID(l_ObjectNameString, l_ClassId, m_ClassList[l_ClassId].m_Id);
98+
m_ClassList[l_ClassId].m_Id++;
99+
Name_Z l_ObjectName(l_ObjectNameString);
100+
return NewObject(l_ClassId, l_ObjectName);
101+
}
102+
103+
const BaseObject_ZHdl& ClassManager_Z::NewObject(S16 i_ClassId, const Name_Z& i_Name) {
104+
m_ClassList[i_ClassId].m_Id++;
105+
return CreateNewHandle(m_ClassList[i_ClassId].m_NewObject(), i_Name, i_ClassId);
106+
}
107+
108+
const BaseObject_ZHdl& ClassManager_Z::NewResource(const Name_Z& i_ClassName, const Name_Z& i_Name) {
109+
S16 l_ClassId = GetClassIndex(i_ClassName);
110+
return CreateNewHandle(m_ClassList[l_ClassId].m_NewObject(), i_Name, l_ClassId, HandleRec_Z::RSC);
111+
}

src/Engine/ConsoleCommand_Z.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,8 @@ Bool Console_Z::LaunchCommand(const Char* a1, const Char* i_CommandStr, U32 i_De
8888
FIXDEBUGINLINING_Z();
8989
}
9090

91-
void Console_Z::NewCommand(const Char* i_CommandStr, U32 i_Depth) {
92-
InterpCommandLine(i_CommandStr, i_Depth);
91+
Bool Console_Z::NewCommand(const Char* i_CommandStr, U32 i_Depth) {
92+
return InterpCommandLine(i_CommandStr, i_Depth);
9393
}
9494

9595
void Console_Z::PushCommand(const Char* i_CommandLine, Bool i_Unk) {

0 commit comments

Comments
 (0)