diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index 9c9503cb..86703289 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -973,6 +973,7 @@ d/col/bg/d_bg_s_acch.cpp: d/col/bg/d_bg_s_chk.cpp: .text start:0x80341300 end:0x80341488 + .data start:0x80547868 end:0x80547898 d/col/bg/d_bg_s_gnd_chk.cpp: .text start:0x80341490 end:0x80341D68 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index 92a12ffb..17db7bc6 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -19246,11 +19246,11 @@ __ct__8dBgS_ChkFv = .text:0x80341300; // type:function size:0x4C __dt__8dBgS_ChkFv = .text:0x80341350; // type:function size:0x68 GetPolyPassChkInfo__8dBgS_ChkFv = .text:0x803413C0; // type:function size:0x4 GetGrpPassChkInfo__8dBgS_ChkFv = .text:0x803413D0; // type:function size:0x10 -fn_803413E0 = .text:0x803413E0; // type:function size:0x10 -fn_803413F0 = .text:0x803413F0; // type:function size:0x40 -fn_80341430 = .text:0x80341430; // type:function size:0x10 -fn_80341440 = .text:0x80341440; // type:function size:0x40 -fn_80341480 = .text:0x80341480; // type:function size:0x8 +__ct__15cBgS_GrpPassChkFv = .text:0x803413E0; // type:function size:0x10 +__dt__15cBgS_GrpPassChkFv = .text:0x803413F0; // type:function size:0x40 +__ct__16cBgS_PolyPassChkFv = .text:0x80341430; // type:function size:0x10 +__dt__16cBgS_PolyPassChkFv = .text:0x80341440; // type:function size:0x40 +@16@__dt__8dBgS_ChkFv = .text:0x80341480; // type:function size:0x8 __ct__11dBgS_GndChkFv = .text:0x80341490; // type:function size:0x6C __dt__11dBgS_GndChkFv = .text:0x80341500; // type:function size:0x68 fn_80341570 = .text:0x80341570; // type:function size:0x44 @@ -19290,8 +19290,8 @@ fn_80341D30 = .text:0x80341D30; // type:function size:0x8 fn_80341D40 = .text:0x80341D40; // type:function size:0x8 fn_80341D50 = .text:0x80341D50; // type:function size:0x8 fn_80341D60 = .text:0x80341D60; // type:function size:0x8 -fn_80341D70 = .text:0x80341D70; // type:function size:0x44 -fn_80341DC0 = .text:0x80341DC0; // type:function size:0x58 +__ct__15dBgS_GrpPassChkFv = .text:0x80341D70; // type:function size:0x44 +__dt__15dBgS_GrpPassChkFv = .text:0x80341DC0; // type:function size:0x58 fn_80341E20 = .text:0x80341E20; // type:function size:0x6C fn_80341E90 = .text:0x80341E90; // type:function size:0x68 fn_80341F00 = .text:0x80341F00; // type:function size:0x18 @@ -19355,8 +19355,8 @@ fn_80342C60 = .text:0x80342C60; // type:function size:0x8 fn_80342C70 = .text:0x80342C70; // type:function size:0x8 fn_80342C80 = .text:0x80342C80; // type:function size:0x8 fn_80342C90 = .text:0x80342C90; // type:function size:0x8 -fn_80342CA0 = .text:0x80342CA0; // type:function size:0x6C -fn_80342D10 = .text:0x80342D10; // type:function size:0x58 +__ct__16dBgS_PolyPassChkFv = .text:0x80342CA0; // type:function size:0x6C +__dt__16dBgS_PolyPassChkFv = .text:0x80342D10; // type:function size:0x58 __ct__12dBgS_RoofChkFv = .text:0x80342D70; // type:function size:0xC0 __dt__12dBgS_RoofChkFv = .text:0x80342E30; // type:function size:0x68 SetPos__12dBgS_RoofChkFPC7mVec3_c = .text:0x80342EA0; // type:function size:0x1C @@ -36101,9 +36101,9 @@ __vt__12dBgS_ObjAcch = .data:0x80547808; // type:object size:0x24 __vt__9dBgS_Acch = .data:0x8054782C; // type:object size:0x24 __vt__12dBgS_AcchCir = .data:0x80547850; // type:object size:0xC __vt__8cM3dGCir = .data:0x8054785C; // type:object size:0xC -lbl_80547868 = .data:0x80547868; // type:object size:0x18 -lbl_80547880 = .data:0x80547880; // type:object size:0xC -lbl_8054788C = .data:0x8054788C; // type:object size:0xC +__vt__8dBgS_Chk = .data:0x80547868; // type:object size:0x18 +__vt__15cBgS_GrpPassChk = .data:0x80547880; // type:object size:0xC +__vt__16cBgS_PolyPassChk = .data:0x8054788C; // type:object size:0xC lbl_80547898 = .data:0x80547898; // type:object size:0x24 lbl_805478BC = .data:0x805478BC; // type:object size:0x24 lbl_805478E0 = .data:0x805478E0; // type:object size:0x24 diff --git a/configure.py b/configure.py index 326fed53..a77f828b 100644 --- a/configure.py +++ b/configure.py @@ -411,7 +411,7 @@ def nw4rLib(lib_name, objects, extra_cflags=[]): Object(Matching, "d/col/bg/d_bg_plc.cpp"), Object(NonMatching, "d/col/bg/d_bg_s.cpp"), Object(NonMatching, "d/col/bg/d_bg_s_acch.cpp"), - Object(NonMatching, "d/col/bg/d_bg_s_chk.cpp"), + Object(Matching, "d/col/bg/d_bg_s_chk.cpp"), Object(NonMatching, "d/col/bg/d_bg_s_gnd_chk.cpp"), Object(NonMatching, "d/col/bg/d_bg_s_grp_pass_chk.cpp"), Object(NonMatching, "d/col/bg/d_bg_s_lin_chk.cpp"), diff --git a/include/d/col/bg/d_bg_s_chk.h b/include/d/col/bg/d_bg_s_chk.h index 983456e0..de76d735 100644 --- a/include/d/col/bg/d_bg_s_chk.h +++ b/include/d/col/bg/d_bg_s_chk.h @@ -1,14 +1,17 @@ #ifndef D_BG_S_CHK_H #define D_BG_S_CHK_H -#include "d/col/bg/d_bg_s_grp_pass_chk.h" +// Include order matters here +// clang-format off #include "d/col/bg/d_bg_s_poly_pass_chk.h" +#include "d/col/bg/d_bg_s_grp_pass_chk.h" +// clang-format on class dBgS_Chk : public dBgS_PolyPassChk, public dBgS_GrpPassChk { public: dBgS_Chk(); - cBgS_PolyPassChk *GetPolyPassChkInfo(); cBgS_GrpPassChk *GetGrpPassChkInfo(); + cBgS_PolyPassChk *GetPolyPassChkInfo(); virtual ~dBgS_Chk(); }; diff --git a/include/d/col/bg/d_bg_s_poly_pass_chk.h b/include/d/col/bg/d_bg_s_poly_pass_chk.h index a60cc4e2..e6017323 100644 --- a/include/d/col/bg/d_bg_s_poly_pass_chk.h +++ b/include/d/col/bg/d_bg_s_poly_pass_chk.h @@ -3,7 +3,8 @@ class cBgS_PolyPassChk { public: - virtual ~cBgS_PolyPassChk() {} + cBgS_PolyPassChk(); + virtual ~cBgS_PolyPassChk(); }; class dBgS_PolyPassChk : public cBgS_PolyPassChk { diff --git a/include/d/col/bg/d_bg_w.h b/include/d/col/bg/d_bg_w.h index d5d8b5eb..8d82d118 100644 --- a/include/d/col/bg/d_bg_w.h +++ b/include/d/col/bg/d_bg_w.h @@ -219,7 +219,9 @@ class cBgW : public dBgW_Base { /* 0x10C */ virtual void ClassifyPlane(); u32 GetOldInvMtx(mMtx_c *m); + // MtxP GetBaseMtxP() { return pm_base; } + bool ChkNoCalcVtx() { return mFlags & NO_CALC_VTX_e; } diff --git a/include/d/col/c/c_bg_s_chk.h b/include/d/col/c/c_bg_s_chk.h index 072ddd65..a85f6a42 100644 --- a/include/d/col/c/c_bg_s_chk.h +++ b/include/d/col/c/c_bg_s_chk.h @@ -10,7 +10,8 @@ struct cBgD_Vtx_t : public Vec {}; class cBgS_GrpPassChk { public: - virtual ~cBgS_GrpPassChk() {} + cBgS_GrpPassChk(); + virtual ~cBgS_GrpPassChk(); }; class cBgS_PolyPassChk; diff --git a/src/d/col/bg/d_bg_s_chk.cpp b/src/d/col/bg/d_bg_s_chk.cpp index e69de29b..6b770ee8 100644 --- a/src/d/col/bg/d_bg_s_chk.cpp +++ b/src/d/col/bg/d_bg_s_chk.cpp @@ -0,0 +1,20 @@ +#include "d/col/bg/d_bg_s_chk.h" + +dBgS_Chk::dBgS_Chk() {} + +dBgS_Chk::~dBgS_Chk() {} + +cBgS_PolyPassChk *dBgS_Chk::GetPolyPassChkInfo() { + return this; +} +cBgS_GrpPassChk *dBgS_Chk::GetGrpPassChkInfo() { + return this; +} + +cBgS_GrpPassChk::cBgS_GrpPassChk() {} + +cBgS_GrpPassChk::~cBgS_GrpPassChk() {} + +cBgS_PolyPassChk::cBgS_PolyPassChk() {} + +cBgS_PolyPassChk::~cBgS_PolyPassChk() {}