summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorPheenoh <pheenoh@gmail.com>2024-06-10 01:34:52 -0600
committerGitHub <noreply@github.com>2024-06-10 00:34:52 -0700
commit3a2e38dc5c3e1f9b5440cbfa065bd33a22b55e43 (patch)
treef7a47d2b1321a6917e5fbd2f030009a8ee9071f1 /tools
parent946b2e81d99f2373f8c3845e6725e277a1bf1023 (diff)
Setup d_a_b + misc actors (#2166)
* setup d_a_b actors * misc actor checkpoint * misc actor finish * add d_a_b class comments * add misc actor class comments wip * add misc actor class comments
Diffstat (limited to 'tools')
-rw-r--r--tools/add_class_comments.py2
-rw-r--r--tools/setup_actor.py68
-rw-r--r--tools/setup_profile.py2
3 files changed, 61 insertions, 11 deletions
diff --git a/tools/add_class_comments.py b/tools/add_class_comments.py
index 74f3e6db6d..df85e38ca5 100644
--- a/tools/add_class_comments.py
+++ b/tools/add_class_comments.py
@@ -31,7 +31,7 @@ def process_file(file_path):
class_name = match.group(1)
# Check if Doxygen comment is missing
if not doxygen_comment_pattern.search(''.join(lines[max(0, i-3):i])):
- doxygen_comment = f"""/**\n * @ingroup actors-tags\n * @class {class_name}\n * @brief\n *\n * @details\n *\n */\n"""
+ doxygen_comment = f"""/**\n * @ingroup actors-unsorted\n * @class {class_name}\n * @brief\n *\n * @details\n *\n */\n"""
lines.insert(i, doxygen_comment)
# Stop after processing the first class declaration
diff --git a/tools/setup_actor.py b/tools/setup_actor.py
index 48e986fc0b..fd11d7d537 100644
--- a/tools/setup_actor.py
+++ b/tools/setup_actor.py
@@ -139,7 +139,20 @@ weak_funcs = {
"asm void daNpcT_JntAnm_c::lookActor(fopAc_ac_c* param_0, f32 param_1, u8 param_2)" : "lookActor__15daNpcT_JntAnm_cFP10fopAc_ac_cfUc",
"asm daNpcCd_c::~daNpcCd_c()": "__dt__9daNpcCd_cFv",
"asm void daNpcT_Path_c::getDstPos(cXyz param_0, cXyz* param_1)": "getDstPos__13daNpcT_Path_cF4cXyzP4cXyz",
- "asm void daDitem_c::setOffsetPos(cXyz param_0)": "setOffsetPos__9daDitem_cF4cXyz"
+ "asm void daDitem_c::setOffsetPos(cXyz param_0)": "setOffsetPos__9daDitem_cF4cXyz",
+ "asm void mDoMtx_stack_c::multVecZero(Vec* param_0)": "multVecZero__14mDoMtx_stack_cFP3Vec",
+ "asm void csXyz::operator=(csXyz const& param_0": "__as__5csXyzFRC5csXyz",
+ "asm void fopEn_enemy_c::setDownPos(cXyz const* param_0)": "setDownPos__13fopEn_enemy_cFPC4cXyz",
+ "asm mDoExt_3DlineMat1_c::mDoExt_3DlineMat1_c()": "__ct__19mDoExt_3DlineMat1_cFv",
+ "asm Z2SoundObjSimple::~Z2SoundObjSimple()": "__dt__16Z2SoundObjSimpleFv",
+ "asm void mDoCPd_c::getTrigA(u32 param_0)": "getTrigA__8mDoCPd_cFUl",
+ "asm void J3DModel::getAnmMtx(int param_0)": "getAnmMtx__8J3DModelFi",
+ "asm void daHorse_c::changeDemoMode(u32 param_0, int param_1)": "changeDemoMode__9daHorse_cFUli",
+ "asm void daHorse_c::changeOriginalDemo()": "changeOriginalDemo__9daHorse_cFv",
+ "asm void dCcD_Sph::operator=(dCcD_Sph const& param_0)": "__as__8dCcD_SphFRC8dCcD_Sph",
+ "asm dCcD_Stts::dCcD_Stts()": "__ct__9dCcD_SttsFv",
+ "asm dCcD_Stts::~dCcD_Stts()": "__dt__9dCcD_SttsFv",
+ "asm void cXyz::abs(Vec const& param_0) const": "abs__4cXyzCFRC3Vec"
}
# list of known external references to be replaced to avoid symbol collision
@@ -219,12 +232,16 @@ external_refs = [
"extern \"C\" void C_MTXLightOrtho();",
"extern \"C\" void strcat();",
"extern \"C\" void pow();",
- "extern \"C\" extern u8 mStayNo__20dStage_roomControl_c[4];",
+ # "extern \"C\" extern u8 mStayNo__20dStage_roomControl_c[4];",
"extern \"C\" void OSReport_Error();",
- "extern \"C\" extern u32 g_blackColor;",
+ # "extern \"C\" extern u32 g_blackColor;",
"extern \"C\" void PSMTXMultVecSR();",
"extern \"C\" void strlen();",
- "extern \"C\" extern u32 g_saftyWhiteColor;",
+ # "extern \"C\" extern u32 g_saftyWhiteColor;",
+ "extern \"C\" void PSMTXQuat();",
+ "extern \"C\" void GXInitTexObjCI();",
+ "extern \"C\" void GXInitTlutObj();",
+ "extern \"C\" void GXLoadTlut();",
]
types = [
@@ -465,6 +482,39 @@ types = [
"struct daNpc_Len_c",
"struct dSv_player_status_b_c",
"struct daNpc_Maro_c",
+ "struct dSv_restart_c",
+ "struct J3DSkinDeform",
+ "struct J3DDeformData",
+ "struct J3DAnmCluster",
+ "struct mDoExt_blkAnm",
+ "struct daMP_c",
+ "struct dDemo_actor_c",
+ "struct dStage_roomControl_c",
+ "struct dDemo_object_c",
+ "struct dDemo_c",
+ "struct J3DMaterial",
+ "struct leafdraw_class",
+ "struct mDoExt_MtxCalcOldFrame",
+ "struct mDoExt_AnmRatioPack",
+ "struct daPy_frameCtrl_c",
+ "struct daPy_actorKeep_c",
+ "struct Quaternion",
+ "struct J3DTransformInfo",
+ "struct J3DMtxCalcNoAnmBase",
+ "struct J3DMtxCalcNoAnm",
+ "struct J3DMtxCalcNoAnm__template0",
+ "struct J3DMtxCalcJ3DSysInitMaya",
+ "struct J3DMtxCalcCalcTransformMaya",
+ "struct J3DMtxCalc",
+ "struct daTagWaterFall_c",
+ "struct daObj_Balloon_c",
+ "struct daE_YM_c",
+ "struct daBalloon2D_c",
+ "struct daObjLife_c",
+ "struct daAlink_c",
+ "struct dSv_player_item_record_c",
+ "struct dSv_player_item_max_c",
+ "struct dSv_fishing_info_c",
]
class ActorSetupManager:
@@ -522,9 +572,9 @@ class ActorSetupManager:
for line in self.lines:
if any(ref in line for ref in external_refs):
# leave calc_mtx in unless d_camera was included
- # if "extern \"C\" extern void* calc_mtx[1 + 1 /* padding */];" in line and not any("d/d_camera.h" in header for header in self.include_headers):
- # new_lines.append(line)
- # continue
+ if "extern \"C\" extern void* calc_mtx[1 + 1 /* padding */];" in line and not any("d/d_camera.h" in header for header in self.include_headers):
+ new_lines.append(line)
+ continue
# leave g_dComIfG_gameInfo in unless npc actor
if "extern \"C\" extern u8 g_dComIfG_gameInfo[122384];" in line and "npc" not in self.filename and not any("d/a/obj/d_a_obj_carry/d_a_obj_carry.h" in header for header in self.include_headers):
@@ -579,7 +629,7 @@ class ActorSetupManager:
# might fail if a tu has more than 1 actor
self.actor_name = stripped_line.split(" ")[1]
- if "d_a_e" in self.filename:
+ if "d_a_e" in self.filename or "d_a_b" in self.filename:
self.actor_class_type = "enemy"
stripped_line = stripped_line.replace(" {"," : public fopEn_enemy_c {")
else:
@@ -675,7 +725,7 @@ class ActorSetupManager:
elif self.actor_class_type == "actor":
new_lines.append(f" /* 0x568 */ u8 field_0x568[{final_class_size} - 0x568];\n")
- new_lines.append("};\n")
+ new_lines.append("};\n\n")
new_lines.append(f"STATIC_ASSERT(sizeof({self.actor_name}) == {final_class_size});\n")
else:
in_class = True
diff --git a/tools/setup_profile.py b/tools/setup_profile.py
index a253de5ffb..11dba6a31e 100644
--- a/tools/setup_profile.py
+++ b/tools/setup_profile.py
@@ -1038,4 +1038,4 @@ def setup_profile_cli(file_path):
setup_profile(file_path)
if __name__ == "__main__":
- setup_profile()
+ setup_profile_cli()