From 9f4104aca8ed6ba44875b543b130adddf39c2760 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 22 Jan 2021 05:44:03 -0500 Subject: [PATCH] dBgS: Initial splitting of dBgS_PolyPassChk code --- include/d/d_bg/d_bg_s/d_bg_s_poly_pass_chk.h | 42 +++++ .../d_bg/d_bg_s/polypass/asm/func_80078D64.s | 19 ++ .../d_bg/d_bg_s/polypass/asm/func_80078DB0.s | 25 +++ .../d_bg/d_bg_s/polypass/asm/func_80078E0C.s | 23 +++ .../d_bg/d_bg_s/polypass/asm/func_80078E68.s | 3 + .../d_bg/d_bg_s/polypass/asm/func_80078E74.s | 3 + .../d_bg/d_bg_s/polypass/asm/func_80078E80.s | 3 + .../d_bg/d_bg_s/polypass/asm/func_80078E8C.s | 3 + .../d_bg/d_bg_s/polypass/asm/func_80078E98.s | 3 + .../d_bg/d_bg_s/polypass/asm/func_80078EA4.s | 3 + .../d_bg/d_bg_s/polypass/asm/func_80078EB0.s | 3 + .../d_bg/d_bg_s/polypass/asm/func_80078EBC.s | 3 + .../d_bg/d_bg_s/polypass/asm/func_80078EC8.s | 3 + .../d_bg/d_bg_s/polypass/asm/func_80078ED4.s | 3 + .../d_bg/d_bg_s/polypass/asm/func_80078EE0.s | 3 + .../d_bg/d_bg_s/polypass/asm/func_80078EEC.s | 3 + .../d_bg/d_bg_s/polypass/asm/func_80078EF8.s | 3 + .../d_bg/d_bg_s/polypass/asm/func_80078F04.s | 32 ++++ .../d_bg/d_bg_s/polypass/asm/func_80078F7C.s | 3 + .../d_bg/d_bg_s/polypass/asm/func_80078F88.s | 3 + .../d_bg/d_bg_s/polypass/asm/func_80078F94.s | 3 + .../d_bg/d_bg_s/polypass/asm/func_80078FA0.s | 3 + .../d_bg/d_bg_s/polypass/asm/func_80078FAC.s | 19 ++ include/functions.h | 12 -- ldscript.lcf | 2 + obj_files.mk | 2 +- src/d/d_a/d_a_alink.cpp | 1 + src/d/d_bg/d_bg_s_poly_pass_chk.cpp | 162 +++++++++++++++++- src/d/d_camera.cpp | 1 + src/d/d_kankyo/d_kankyo_rain.cpp | 1 + 30 files changed, 378 insertions(+), 14 deletions(-) create mode 100644 include/d/d_bg/d_bg_s/d_bg_s_poly_pass_chk.h create mode 100644 include/d/d_bg/d_bg_s/polypass/asm/func_80078D64.s create mode 100644 include/d/d_bg/d_bg_s/polypass/asm/func_80078DB0.s create mode 100644 include/d/d_bg/d_bg_s/polypass/asm/func_80078E0C.s create mode 100644 include/d/d_bg/d_bg_s/polypass/asm/func_80078E68.s create mode 100644 include/d/d_bg/d_bg_s/polypass/asm/func_80078E74.s create mode 100644 include/d/d_bg/d_bg_s/polypass/asm/func_80078E80.s create mode 100644 include/d/d_bg/d_bg_s/polypass/asm/func_80078E8C.s create mode 100644 include/d/d_bg/d_bg_s/polypass/asm/func_80078E98.s create mode 100644 include/d/d_bg/d_bg_s/polypass/asm/func_80078EA4.s create mode 100644 include/d/d_bg/d_bg_s/polypass/asm/func_80078EB0.s create mode 100644 include/d/d_bg/d_bg_s/polypass/asm/func_80078EBC.s create mode 100644 include/d/d_bg/d_bg_s/polypass/asm/func_80078EC8.s create mode 100644 include/d/d_bg/d_bg_s/polypass/asm/func_80078ED4.s create mode 100644 include/d/d_bg/d_bg_s/polypass/asm/func_80078EE0.s create mode 100644 include/d/d_bg/d_bg_s/polypass/asm/func_80078EEC.s create mode 100644 include/d/d_bg/d_bg_s/polypass/asm/func_80078EF8.s create mode 100644 include/d/d_bg/d_bg_s/polypass/asm/func_80078F04.s create mode 100644 include/d/d_bg/d_bg_s/polypass/asm/func_80078F7C.s create mode 100644 include/d/d_bg/d_bg_s/polypass/asm/func_80078F88.s create mode 100644 include/d/d_bg/d_bg_s/polypass/asm/func_80078F94.s create mode 100644 include/d/d_bg/d_bg_s/polypass/asm/func_80078FA0.s create mode 100644 include/d/d_bg/d_bg_s/polypass/asm/func_80078FAC.s diff --git a/include/d/d_bg/d_bg_s/d_bg_s_poly_pass_chk.h b/include/d/d_bg/d_bg_s/d_bg_s_poly_pass_chk.h new file mode 100644 index 00000000000..224cecc402c --- /dev/null +++ b/include/d/d_bg/d_bg_s/d_bg_s_poly_pass_chk.h @@ -0,0 +1,42 @@ +#ifndef D_BG_S_POLY_PASS_CHK_H_ +#define D_BG_S_POLY_PASS_CHK_H_ + +#include "dolphin/types.h" + +// Additional symbols needed for d_bg_s_poly_pass_chk.cpp +// autogenerated by split.py v0.3 at 2021-01-22 10:32:31.026275 +extern u8 lbl_803ABA38; +extern u8 lbl_803ABA44; + +// Additional symbols needed for d_bg_s_poly_pass_chk.cpp +// autogenerated by split.py v0.3 at 2021-01-22 10:32:31.090542 +extern "C" { +void dBgS_PolyPassChk(void); +void dBgS_PolyPassChk_NS_dtor(void); + +void dBgS_PolyPassChk_NS_ChkNoHorse(void); + +void dBgS_PolyPassChk_NS_ClrBomb(void); +void dBgS_PolyPassChk_NS_ClrCam(void); +void dBgS_PolyPassChk_NS_ClrLink(void); +void dBgS_PolyPassChk_NS_ClrObj(void); +void dBgS_PolyPassChk_NS_ClrStatue(void); + +void dBgS_PolyPassChk_NS_SetArrow(void); +void dBgS_PolyPassChk_NS_SetBomb(void); +void dBgS_PolyPassChk_NS_SetBoomerang(void); +void dBgS_PolyPassChk_NS_SetCam(void); +void dBgS_PolyPassChk_NS_SetHorse(void); +void dBgS_PolyPassChk_NS_SetIronBall(void); +void dBgS_PolyPassChk_NS_SetLink(void); +void dBgS_PolyPassChk_NS_SetObj(void); +void dBgS_PolyPassChk_NS_SetPassChkInfo(void); +void dBgS_PolyPassChk_NS_SetRope(void); +void dBgS_PolyPassChk_NS_SetStatue(void); +void dBgS_PolyPassChk_NS_SetUnderwaterRoof(void); + +void func_80078FA0(void); +void func_80078FAC(void); +} + +#endif // D_BG_S_POLY_PASS_CHK_H_ diff --git a/include/d/d_bg/d_bg_s/polypass/asm/func_80078D64.s b/include/d/d_bg/d_bg_s/polypass/asm/func_80078D64.s new file mode 100644 index 00000000000..0e69b6aa8e5 --- /dev/null +++ b/include/d/d_bg/d_bg_s/polypass/asm/func_80078D64.s @@ -0,0 +1,19 @@ +/* 80078D64 00075CA4 3C 80 80 3B */ lis r4, lbl_803ABA44@ha +/* 80078D68 00075CA8 38 04 BA 44 */ addi r0, r4, lbl_803ABA44@l +/* 80078D6C 00075CAC 90 03 00 00 */ stw r0, 0(r3) +/* 80078D70 00075CB0 3C 80 80 3B */ lis r4, lbl_803ABA38@ha +/* 80078D74 00075CB4 38 04 BA 38 */ addi r0, r4, lbl_803ABA38@l +/* 80078D78 00075CB8 90 03 00 00 */ stw r0, 0(r3) +/* 80078D7C 00075CBC 38 00 00 00 */ li r0, 0 +/* 80078D80 00075CC0 98 03 00 04 */ stb r0, 4(r3) +/* 80078D84 00075CC4 98 03 00 05 */ stb r0, 5(r3) +/* 80078D88 00075CC8 98 03 00 06 */ stb r0, 6(r3) +/* 80078D8C 00075CCC 98 03 00 07 */ stb r0, 7(r3) +/* 80078D90 00075CD0 98 03 00 08 */ stb r0, 8(r3) +/* 80078D94 00075CD4 98 03 00 09 */ stb r0, 9(r3) +/* 80078D98 00075CD8 98 03 00 0A */ stb r0, 0xa(r3) +/* 80078D9C 00075CDC 98 03 00 0B */ stb r0, 0xb(r3) +/* 80078DA0 00075CE0 98 03 00 0C */ stb r0, 0xc(r3) +/* 80078DA4 00075CE4 98 03 00 0D */ stb r0, 0xd(r3) +/* 80078DA8 00075CE8 98 03 00 0E */ stb r0, 0xe(r3) +/* 80078DAC 00075CEC 4E 80 00 20 */ blr diff --git a/include/d/d_bg/d_bg_s/polypass/asm/func_80078DB0.s b/include/d/d_bg/d_bg_s/polypass/asm/func_80078DB0.s new file mode 100644 index 00000000000..51174a11b6f --- /dev/null +++ b/include/d/d_bg/d_bg_s/polypass/asm/func_80078DB0.s @@ -0,0 +1,25 @@ +/* 80078DB0 00075CF0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80078DB4 00075CF4 7C 08 02 A6 */ mflr r0 +/* 80078DB8 00075CF8 90 01 00 14 */ stw r0, 0x14(r1) +/* 80078DBC 00075CFC 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80078DC0 00075D00 7C 7F 1B 79 */ or. r31, r3, r3 +/* 80078DC4 00075D04 41 82 00 30 */ beq lbl_80078DF4 +/* 80078DC8 00075D08 3C 60 80 3B */ lis r3, lbl_803ABA38@ha +/* 80078DCC 00075D0C 38 03 BA 38 */ addi r0, r3, lbl_803ABA38@l +/* 80078DD0 00075D10 90 1F 00 00 */ stw r0, 0(r31) +/* 80078DD4 00075D14 41 82 00 10 */ beq lbl_80078DE4 +/* 80078DD8 00075D18 3C 60 80 3B */ lis r3, lbl_803ABA44@ha +/* 80078DDC 00075D1C 38 03 BA 44 */ addi r0, r3, lbl_803ABA44@l +/* 80078DE0 00075D20 90 1F 00 00 */ stw r0, 0(r31) +lbl_80078DE4: +/* 80078DE4 00075D24 7C 80 07 35 */ extsh. r0, r4 +/* 80078DE8 00075D28 40 81 00 0C */ ble lbl_80078DF4 +/* 80078DEC 00075D2C 7F E3 FB 78 */ mr r3, r31 +/* 80078DF0 00075D30 48 25 5F 4D */ bl __dl__FPv +lbl_80078DF4: +/* 80078DF4 00075D34 7F E3 FB 78 */ mr r3, r31 +/* 80078DF8 00075D38 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80078DFC 00075D3C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80078E00 00075D40 7C 08 03 A6 */ mtlr r0 +/* 80078E04 00075D44 38 21 00 10 */ addi r1, r1, 0x10 +/* 80078E08 00075D48 4E 80 00 20 */ blr diff --git a/include/d/d_bg/d_bg_s/polypass/asm/func_80078E0C.s b/include/d/d_bg/d_bg_s/polypass/asm/func_80078E0C.s new file mode 100644 index 00000000000..e8c0130aee4 --- /dev/null +++ b/include/d/d_bg/d_bg_s/polypass/asm/func_80078E0C.s @@ -0,0 +1,23 @@ +/* 80078E0C 00075D4C 88 04 00 04 */ lbz r0, 4(r4) +/* 80078E10 00075D50 98 03 00 04 */ stb r0, 4(r3) +/* 80078E14 00075D54 88 04 00 05 */ lbz r0, 5(r4) +/* 80078E18 00075D58 98 03 00 05 */ stb r0, 5(r3) +/* 80078E1C 00075D5C 88 04 00 06 */ lbz r0, 6(r4) +/* 80078E20 00075D60 98 03 00 06 */ stb r0, 6(r3) +/* 80078E24 00075D64 88 04 00 07 */ lbz r0, 7(r4) +/* 80078E28 00075D68 98 03 00 07 */ stb r0, 7(r3) +/* 80078E2C 00075D6C 88 04 00 08 */ lbz r0, 8(r4) +/* 80078E30 00075D70 98 03 00 08 */ stb r0, 8(r3) +/* 80078E34 00075D74 88 04 00 09 */ lbz r0, 9(r4) +/* 80078E38 00075D78 98 03 00 09 */ stb r0, 9(r3) +/* 80078E3C 00075D7C 88 04 00 0A */ lbz r0, 0xa(r4) +/* 80078E40 00075D80 98 03 00 0A */ stb r0, 0xa(r3) +/* 80078E44 00075D84 88 04 00 0B */ lbz r0, 0xb(r4) +/* 80078E48 00075D88 98 03 00 0B */ stb r0, 0xb(r3) +/* 80078E4C 00075D8C 88 04 00 0C */ lbz r0, 0xc(r4) +/* 80078E50 00075D90 98 03 00 0C */ stb r0, 0xc(r3) +/* 80078E54 00075D94 88 04 00 0D */ lbz r0, 0xd(r4) +/* 80078E58 00075D98 98 03 00 0D */ stb r0, 0xd(r3) +/* 80078E5C 00075D9C 88 04 00 0E */ lbz r0, 0xe(r4) +/* 80078E60 00075DA0 98 03 00 0E */ stb r0, 0xe(r3) +/* 80078E64 00075DA4 4E 80 00 20 */ blr diff --git a/include/d/d_bg/d_bg_s/polypass/asm/func_80078E68.s b/include/d/d_bg/d_bg_s/polypass/asm/func_80078E68.s new file mode 100644 index 00000000000..5b62843804f --- /dev/null +++ b/include/d/d_bg/d_bg_s/polypass/asm/func_80078E68.s @@ -0,0 +1,3 @@ +/* 80078E68 00075DA8 38 00 00 01 */ li r0, 1 +/* 80078E6C 00075DAC 98 03 00 04 */ stb r0, 4(r3) +/* 80078E70 00075DB0 4E 80 00 20 */ blr diff --git a/include/d/d_bg/d_bg_s/polypass/asm/func_80078E74.s b/include/d/d_bg/d_bg_s/polypass/asm/func_80078E74.s new file mode 100644 index 00000000000..268c9fdbc61 --- /dev/null +++ b/include/d/d_bg/d_bg_s/polypass/asm/func_80078E74.s @@ -0,0 +1,3 @@ +/* 80078E74 00075DB4 38 00 00 00 */ li r0, 0 +/* 80078E78 00075DB8 98 03 00 04 */ stb r0, 4(r3) +/* 80078E7C 00075DBC 4E 80 00 20 */ blr diff --git a/include/d/d_bg/d_bg_s/polypass/asm/func_80078E80.s b/include/d/d_bg/d_bg_s/polypass/asm/func_80078E80.s new file mode 100644 index 00000000000..314ce622f9a --- /dev/null +++ b/include/d/d_bg/d_bg_s/polypass/asm/func_80078E80.s @@ -0,0 +1,3 @@ +/* 80078E80 00075DC0 38 00 00 01 */ li r0, 1 +/* 80078E84 00075DC4 98 03 00 05 */ stb r0, 5(r3) +/* 80078E88 00075DC8 4E 80 00 20 */ blr diff --git a/include/d/d_bg/d_bg_s/polypass/asm/func_80078E8C.s b/include/d/d_bg/d_bg_s/polypass/asm/func_80078E8C.s new file mode 100644 index 00000000000..3c1acf6bc4f --- /dev/null +++ b/include/d/d_bg/d_bg_s/polypass/asm/func_80078E8C.s @@ -0,0 +1,3 @@ +/* 80078E8C 00075DCC 38 00 00 00 */ li r0, 0 +/* 80078E90 00075DD0 98 03 00 05 */ stb r0, 5(r3) +/* 80078E94 00075DD4 4E 80 00 20 */ blr diff --git a/include/d/d_bg/d_bg_s/polypass/asm/func_80078E98.s b/include/d/d_bg/d_bg_s/polypass/asm/func_80078E98.s new file mode 100644 index 00000000000..3df7be2908c --- /dev/null +++ b/include/d/d_bg/d_bg_s/polypass/asm/func_80078E98.s @@ -0,0 +1,3 @@ +/* 80078E98 00075DD8 38 00 00 01 */ li r0, 1 +/* 80078E9C 00075DDC 98 03 00 06 */ stb r0, 6(r3) +/* 80078EA0 00075DE0 4E 80 00 20 */ blr diff --git a/include/d/d_bg/d_bg_s/polypass/asm/func_80078EA4.s b/include/d/d_bg/d_bg_s/polypass/asm/func_80078EA4.s new file mode 100644 index 00000000000..61fa9c62fac --- /dev/null +++ b/include/d/d_bg/d_bg_s/polypass/asm/func_80078EA4.s @@ -0,0 +1,3 @@ +/* 80078EA4 00075DE4 38 00 00 00 */ li r0, 0 +/* 80078EA8 00075DE8 98 03 00 06 */ stb r0, 6(r3) +/* 80078EAC 00075DEC 4E 80 00 20 */ blr diff --git a/include/d/d_bg/d_bg_s/polypass/asm/func_80078EB0.s b/include/d/d_bg/d_bg_s/polypass/asm/func_80078EB0.s new file mode 100644 index 00000000000..eedd2cc2012 --- /dev/null +++ b/include/d/d_bg/d_bg_s/polypass/asm/func_80078EB0.s @@ -0,0 +1,3 @@ +/* 80078EB0 00075DF0 38 00 00 01 */ li r0, 1 +/* 80078EB4 00075DF4 98 03 00 07 */ stb r0, 7(r3) +/* 80078EB8 00075DF8 4E 80 00 20 */ blr diff --git a/include/d/d_bg/d_bg_s/polypass/asm/func_80078EBC.s b/include/d/d_bg/d_bg_s/polypass/asm/func_80078EBC.s new file mode 100644 index 00000000000..8b33698729f --- /dev/null +++ b/include/d/d_bg/d_bg_s/polypass/asm/func_80078EBC.s @@ -0,0 +1,3 @@ +/* 80078EBC 00075DFC 38 00 00 01 */ li r0, 1 +/* 80078EC0 00075E00 98 03 00 08 */ stb r0, 8(r3) +/* 80078EC4 00075E04 4E 80 00 20 */ blr diff --git a/include/d/d_bg/d_bg_s/polypass/asm/func_80078EC8.s b/include/d/d_bg/d_bg_s/polypass/asm/func_80078EC8.s new file mode 100644 index 00000000000..0e2834f402f --- /dev/null +++ b/include/d/d_bg/d_bg_s/polypass/asm/func_80078EC8.s @@ -0,0 +1,3 @@ +/* 80078EC8 00075E08 38 00 00 00 */ li r0, 0 +/* 80078ECC 00075E0C 98 03 00 08 */ stb r0, 8(r3) +/* 80078ED0 00075E10 4E 80 00 20 */ blr diff --git a/include/d/d_bg/d_bg_s/polypass/asm/func_80078ED4.s b/include/d/d_bg/d_bg_s/polypass/asm/func_80078ED4.s new file mode 100644 index 00000000000..a77120fccaa --- /dev/null +++ b/include/d/d_bg/d_bg_s/polypass/asm/func_80078ED4.s @@ -0,0 +1,3 @@ +/* 80078ED4 00075E14 38 00 00 01 */ li r0, 1 +/* 80078ED8 00075E18 98 03 00 09 */ stb r0, 9(r3) +/* 80078EDC 00075E1C 4E 80 00 20 */ blr diff --git a/include/d/d_bg/d_bg_s/polypass/asm/func_80078EE0.s b/include/d/d_bg/d_bg_s/polypass/asm/func_80078EE0.s new file mode 100644 index 00000000000..c3d34718ed9 --- /dev/null +++ b/include/d/d_bg/d_bg_s/polypass/asm/func_80078EE0.s @@ -0,0 +1,3 @@ +/* 80078EE0 00075E20 38 00 00 01 */ li r0, 1 +/* 80078EE4 00075E24 98 03 00 0A */ stb r0, 0xa(r3) +/* 80078EE8 00075E28 4E 80 00 20 */ blr diff --git a/include/d/d_bg/d_bg_s/polypass/asm/func_80078EEC.s b/include/d/d_bg/d_bg_s/polypass/asm/func_80078EEC.s new file mode 100644 index 00000000000..228c4091a5d --- /dev/null +++ b/include/d/d_bg/d_bg_s/polypass/asm/func_80078EEC.s @@ -0,0 +1,3 @@ +/* 80078EEC 00075E2C 38 00 00 01 */ li r0, 1 +/* 80078EF0 00075E30 98 03 00 0B */ stb r0, 0xb(r3) +/* 80078EF4 00075E34 4E 80 00 20 */ blr diff --git a/include/d/d_bg/d_bg_s/polypass/asm/func_80078EF8.s b/include/d/d_bg/d_bg_s/polypass/asm/func_80078EF8.s new file mode 100644 index 00000000000..8caeac7a7a5 --- /dev/null +++ b/include/d/d_bg/d_bg_s/polypass/asm/func_80078EF8.s @@ -0,0 +1,3 @@ +/* 80078EF8 00075E38 38 00 00 01 */ li r0, 1 +/* 80078EFC 00075E3C 98 03 00 0C */ stb r0, 0xc(r3) +/* 80078F00 00075E40 4E 80 00 20 */ blr diff --git a/include/d/d_bg/d_bg_s/polypass/asm/func_80078F04.s b/include/d/d_bg/d_bg_s/polypass/asm/func_80078F04.s new file mode 100644 index 00000000000..1d391e802b5 --- /dev/null +++ b/include/d/d_bg/d_bg_s/polypass/asm/func_80078F04.s @@ -0,0 +1,32 @@ +/* 80078F04 00075E44 88 03 00 04 */ lbz r0, 4(r3) +/* 80078F08 00075E48 28 00 00 00 */ cmplwi r0, 0 +/* 80078F0C 00075E4C 40 82 00 58 */ bne lbl_80078F64 +/* 80078F10 00075E50 88 03 00 05 */ lbz r0, 5(r3) +/* 80078F14 00075E54 28 00 00 00 */ cmplwi r0, 0 +/* 80078F18 00075E58 40 82 00 4C */ bne lbl_80078F64 +/* 80078F1C 00075E5C 88 03 00 06 */ lbz r0, 6(r3) +/* 80078F20 00075E60 28 00 00 00 */ cmplwi r0, 0 +/* 80078F24 00075E64 40 82 00 40 */ bne lbl_80078F64 +/* 80078F28 00075E68 88 03 00 07 */ lbz r0, 7(r3) +/* 80078F2C 00075E6C 28 00 00 00 */ cmplwi r0, 0 +/* 80078F30 00075E70 40 82 00 34 */ bne lbl_80078F64 +/* 80078F34 00075E74 88 03 00 08 */ lbz r0, 8(r3) +/* 80078F38 00075E78 28 00 00 00 */ cmplwi r0, 0 +/* 80078F3C 00075E7C 40 82 00 28 */ bne lbl_80078F64 +/* 80078F40 00075E80 88 03 00 09 */ lbz r0, 9(r3) +/* 80078F44 00075E84 28 00 00 00 */ cmplwi r0, 0 +/* 80078F48 00075E88 40 82 00 1C */ bne lbl_80078F64 +/* 80078F4C 00075E8C 88 03 00 0A */ lbz r0, 0xa(r3) +/* 80078F50 00075E90 28 00 00 00 */ cmplwi r0, 0 +/* 80078F54 00075E94 40 82 00 10 */ bne lbl_80078F64 +/* 80078F58 00075E98 88 03 00 0B */ lbz r0, 0xb(r3) +/* 80078F5C 00075E9C 28 00 00 00 */ cmplwi r0, 0 +/* 80078F60 00075EA0 41 82 00 0C */ beq lbl_80078F6C +lbl_80078F64: +/* 80078F64 00075EA4 38 60 00 01 */ li r3, 1 +/* 80078F68 00075EA8 4E 80 00 20 */ blr +lbl_80078F6C: +/* 80078F6C 00075EAC 88 03 00 0C */ lbz r0, 0xc(r3) +/* 80078F70 00075EB0 7C 00 00 34 */ cntlzw r0, r0 +/* 80078F74 00075EB4 54 03 D9 7E */ srwi r3, r0, 5 +/* 80078F78 00075EB8 4E 80 00 20 */ blr diff --git a/include/d/d_bg/d_bg_s/polypass/asm/func_80078F7C.s b/include/d/d_bg/d_bg_s/polypass/asm/func_80078F7C.s new file mode 100644 index 00000000000..345d3954796 --- /dev/null +++ b/include/d/d_bg/d_bg_s/polypass/asm/func_80078F7C.s @@ -0,0 +1,3 @@ +/* 80078F7C 00075EBC 38 00 00 01 */ li r0, 1 +/* 80078F80 00075EC0 98 03 00 0D */ stb r0, 0xd(r3) +/* 80078F84 00075EC4 4E 80 00 20 */ blr diff --git a/include/d/d_bg/d_bg_s/polypass/asm/func_80078F88.s b/include/d/d_bg/d_bg_s/polypass/asm/func_80078F88.s new file mode 100644 index 00000000000..93f965d9528 --- /dev/null +++ b/include/d/d_bg/d_bg_s/polypass/asm/func_80078F88.s @@ -0,0 +1,3 @@ +/* 80078F88 00075EC8 38 00 00 00 */ li r0, 0 +/* 80078F8C 00075ECC 98 03 00 0D */ stb r0, 0xd(r3) +/* 80078F90 00075ED0 4E 80 00 20 */ blr diff --git a/include/d/d_bg/d_bg_s/polypass/asm/func_80078F94.s b/include/d/d_bg/d_bg_s/polypass/asm/func_80078F94.s new file mode 100644 index 00000000000..3494326297c --- /dev/null +++ b/include/d/d_bg/d_bg_s/polypass/asm/func_80078F94.s @@ -0,0 +1,3 @@ +/* 80078F94 00075ED4 38 00 00 01 */ li r0, 1 +/* 80078F98 00075ED8 98 03 00 0E */ stb r0, 0xe(r3) +/* 80078F9C 00075EDC 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/d/d_bg/d_bg_s/polypass/asm/func_80078FA0.s b/include/d/d_bg/d_bg_s/polypass/asm/func_80078FA0.s new file mode 100644 index 00000000000..7322295e25e --- /dev/null +++ b/include/d/d_bg/d_bg_s/polypass/asm/func_80078FA0.s @@ -0,0 +1,3 @@ +/* 80078FA0 00075EE0 38 00 00 00 */ li r0, 0 +/* 80078FA4 00075EE4 98 03 00 0E */ stb r0, 0xe(r3) +/* 80078FA8 00075EE8 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/d/d_bg/d_bg_s/polypass/asm/func_80078FAC.s b/include/d/d_bg/d_bg_s/polypass/asm/func_80078FAC.s new file mode 100644 index 00000000000..17be966d725 --- /dev/null +++ b/include/d/d_bg/d_bg_s/polypass/asm/func_80078FAC.s @@ -0,0 +1,19 @@ +/* 80078FAC 00075EEC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80078FB0 00075EF0 7C 08 02 A6 */ mflr r0 +/* 80078FB4 00075EF4 90 01 00 14 */ stw r0, 0x14(r1) +/* 80078FB8 00075EF8 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80078FBC 00075EFC 7C 7F 1B 79 */ or. r31, r3, r3 +/* 80078FC0 00075F00 41 82 00 1C */ beq lbl_80078FDC +/* 80078FC4 00075F04 3C A0 80 3B */ lis r5, lbl_803ABA44@ha +/* 80078FC8 00075F08 38 05 BA 44 */ addi r0, r5, lbl_803ABA44@l +/* 80078FCC 00075F0C 90 1F 00 00 */ stw r0, 0(r31) +/* 80078FD0 00075F10 7C 80 07 35 */ extsh. r0, r4 +/* 80078FD4 00075F14 40 81 00 08 */ ble lbl_80078FDC +/* 80078FD8 00075F18 48 25 5D 65 */ bl __dl__FPv +lbl_80078FDC: +/* 80078FDC 00075F1C 7F E3 FB 78 */ mr r3, r31 +/* 80078FE0 00075F20 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80078FE4 00075F24 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80078FE8 00075F28 7C 08 03 A6 */ mtlr r0 +/* 80078FEC 00075F2C 38 21 00 10 */ addi r1, r1, 0x10 +/* 80078FF0 00075F30 4E 80 00 20 */ blr diff --git a/include/functions.h b/include/functions.h index 3a3d17ccb6b..4b63894dbdc 100644 --- a/include/functions.h +++ b/include/functions.h @@ -1240,7 +1240,6 @@ void daAlink_footData_c_NS_dtor(void); void daAlink_c_NS_setDeadRideSyncPos(void); void func_8011E8E0(void); void func_8014163C(void); -void dBgS_PolyPassChk_NS_ClrBomb(void); void fopAc_ac_c_NS_ctor(void); void func_801418D4(void); void func_8014175C(void); @@ -1700,7 +1699,6 @@ void func_800D05AC(void); void func_800D087C(void); void dAttHint_c_NS_convPId(void); void dMsgFlow_c_NS_dtor(void); -void dBgS_PolyPassChk_NS_SetLink(void); void startWolfHowlSound__13Z2WolfHowlMgrFffbf(void); void daAlink_c_NS_setGrabItemActor(void); void fopKyM_createWpillar(void); @@ -1765,7 +1763,6 @@ void csXyz_NS_ctor(void); void func_80141734(void); void daAlink_c_NS_checkNotItemSinkLimit(void); void daAlink_c_NS_checkHorseSwordUpSpped(void); -void dBgS_PolyPassChk_NS_ClrObj(void); void daAlink_c_NS_procWolfEnemyThrowInit(void); void daAlink_c_NS_procCanoeBoomerangMoveInit(void); void daPy_py_c_NS_checkSwordGet(void); @@ -1890,7 +1887,6 @@ void func_800F1BA4(void); void daAlink_c_NS_orderTalk(void); void func_800D41FC(void); void daAlink_c_NS_commonKandelaarPour(void); -void dBgS_PolyPassChk_NS_SetBomb(void); void func_8011D3CC(void); void daAlink_c_NS_setCopyRodModel(void); void daAlink_c_NS_checkNextActionWolf(void); @@ -1910,7 +1906,6 @@ void Z2SeqMgr_NS_taktModeMuteOff(void); void daPy_py_c_NS_setParamData(void); void daAlink_c_NS_checkRoofRestart(void); void dRes_control_c_NS_getRes(void); -void dBgS_PolyPassChk_NS_SetIronBall(void); void dDemo_object_c_NS_getActor(void); void dCamera_c_NS_GetCameraTypeFromCameraName(void); void daAlink_c_NS_procWaitInit(void); @@ -2033,7 +2028,6 @@ void daAlink_c_NS_procWolfGetSmellInit(void); void daAlink_c_NS_procWolfScreamWaitInit(void); void daAlink_c_NS_setUnderAnimeMorf(void); void daAlink_c_NS_checkSpecialDemoMode(void); -void dBgS_PolyPassChk_NS_ClrStatue(void); void func_8013DE70(void); void fopAcIt_Judge(void); void daAlink_c_NS_procBoardWaitInit(void); @@ -2272,7 +2266,6 @@ void func_80112304(void); void daAlink_c_NS_setOldRootQuaternion(void); void atan2sX_Z__4cXyzCFv(void); void daAlink_c_NS_getCopyRodCameraActor(void); -void dBgS_PolyPassChk_NS_ClrLink(void); void daAlink_c_NS_resetFacePriAnime(void); void dComIfGp_getHorseActor(void); void func_8011F460(void); @@ -3009,7 +3002,6 @@ void daAlink_c_NS_initStatusWindow(void); void daPy_anmHeap_c_NS_loadDataIdx(void); void func_800D4A74(void); void daAlink_c_NS_procSwimDamageInit(void); -void dBgS_PolyPassChk_NS_SetStatue(void); void daPy_py_c_NS_checkMasterSwordEquip(void); void daAlink_c_NS_getCrawlMoveAnmSpeed(void); void daAlink_c_NS_procWolfDownAttackInit(void); @@ -3788,7 +3780,6 @@ void dBgS_Acch(void); void daAlink_c_NS_checkHeavyStateOn(void); void daAlink_c_NS_setSpeedAndAngleWolf(void); void func_800D57F8(void); -void dBgS_PolyPassChk_NS_SetObj(void); void func_800D01A0(void); // manual @@ -5286,7 +5277,6 @@ void func_80182260(void); void cDegree_NS_dtor(void); void dCamParam_c_NS_dtor(void); void daAlink_c_NS_getHsSubChainTopPos(void); -void dBgS_PolyPassChk_NS_SetCam(void); void func_80176E00(void); void dCamera_c_NS_setEventRecoveryTrans(void); void func_80181F70(void); @@ -5324,7 +5314,6 @@ void fopAcM_GetParam(void); void dCamera_c_NS_chaseCamera(void); void Val__7cSGlobeFfss(void); void dCamera_c_NS_Set_X1_(void); -void dBgS_PolyPassChk_NS_SetUnderwaterRoof(void); void dCamera_c_NS_initialize(void); void daPy_py_c_NS_getMidnaActor(void); void dCamera_c_NS_setView(void); @@ -5558,7 +5547,6 @@ void dCamSetup_c_NS_ChargeTimer(void); void dCamera_c_NS_setRoomMapToolData(void); void dCamMath_NS_zoomFovy(void); void func_801821E0(void); -void dBgS_PolyPassChk_NS_ClrCam(void); void cM_rnd_c_NS_init(void); void cM3d_Cross_LinSph_CrossPos__FRC8cM3dGSphRC8cM3dGLinP3VecP3Vec(void); diff --git a/ldscript.lcf b/ldscript.lcf index 7ea0b4d4f66..4eb110b36f3 100644 --- a/ldscript.lcf +++ b/ldscript.lcf @@ -3138,6 +3138,8 @@ func_8002CB30 func_8002CAF0 __ct__14JAISoundHandleFv dispose__14Z2SoundObjBaseFv +func_80078FAC +func_80078FA0 } /* .init 80003100 - 80005600 diff --git a/obj_files.mk b/obj_files.mk index 0b5f500c225..5148ba297bf 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -125,7 +125,7 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/d/bg/s/movebg/d_bg_s_movebg_actor.o \ $(BUILD_DIR)/asm/d/bg/s/sph/d_bg_s_sph_chk.o \ $(BUILD_DIR)/asm/d/bg/s/spl/grp/d_bg_s_spl_grp_chk.o \ - $(BUILD_DIR)/asm/d/bg/s/poly/pass/d_bg_s_poly_pass_chk.o \ + $(BUILD_DIR)/src/d/d_bg/d_bg_s_poly_pass_chk.o \ $(BUILD_DIR)/asm/d/bg/s/roof/d_bg_s_roof_chk.o \ $(BUILD_DIR)/asm/d/bg/s/wtr/d_bg_s_wtr_chk.o \ $(BUILD_DIR)/asm/d/bg/d_bg_w.o \ diff --git a/src/d/d_a/d_a_alink.cpp b/src/d/d_a/d_a_alink.cpp index afe63d9718a..0a7108a12bb 100644 --- a/src/d/d_a/d_a_alink.cpp +++ b/src/d/d_a/d_a_alink.cpp @@ -4,6 +4,7 @@ #include "Z2AudioLib/Z2LinkMgr/Z2LinkMgr.h" #include "Z2AudioLib/Z2SeMgr/Z2SeMgr.h" #include "Z2AudioLib/Z2SeqMgr/Z2SeqMgr.h" +#include "d/d_bg/d_bg_s/d_bg_s_poly_pass_chk.h" #include "f/f_pc/f_pc_manager.h" #include "f/f_pc/f_pc_searcher.h" #include "m_Do/m_Do_controller_pad/m_Do_controller_pad.h" diff --git a/src/d/d_bg/d_bg_s_poly_pass_chk.cpp b/src/d/d_bg/d_bg_s_poly_pass_chk.cpp index 4bf93c8658d..da1b57b5080 100644 --- a/src/d/d_bg/d_bg_s_poly_pass_chk.cpp +++ b/src/d/d_bg/d_bg_s_poly_pass_chk.cpp @@ -1 +1,161 @@ -// ok +/* d_bg_s_poly_pass_chk.cpp autogenerated by split.py v0.3 at 2021-01-22 10:32:31.099373 */ + +#include "d/d_bg/d_bg_s/d_bg_s_poly_pass_chk.h" +#include "global.h" + +extern "C" { +// __ct__16dBgS_PolyPassChkFv +// dBgS_PolyPassChk::dBgS_PolyPassChk(void) +asm void dBgS_PolyPassChk(void) { + nofralloc + #include "d/d_bg/d_bg_s/polypass/asm/func_80078D64.s" +} + +// __dt__16dBgS_PolyPassChkFv +// dBgS_PolyPassChk::~dBgS_PolyPassChk(void) +asm void dBgS_PolyPassChk_NS_dtor(void) { + nofralloc + #include "d/d_bg/d_bg_s/polypass/asm/func_80078DB0.s" +} + +// SetPassChkInfo__16dBgS_PolyPassChkFR16dBgS_PolyPassChk +// dBgS_PolyPassChk::SetPassChkInfo(dBgS_PolyPassChk&) +asm void dBgS_PolyPassChk_NS_SetPassChkInfo(void) { + nofralloc + #include "d/d_bg/d_bg_s/polypass/asm/func_80078E0C.s" +} + +// SetObj__16dBgS_PolyPassChkFv +// dBgS_PolyPassChk::SetObj(void) +asm void dBgS_PolyPassChk_NS_SetObj(void) { + nofralloc + #include "d/d_bg/d_bg_s/polypass/asm/func_80078E68.s" +} + +// ClrObj__16dBgS_PolyPassChkFv +// dBgS_PolyPassChk::ClrObj(void) +asm void dBgS_PolyPassChk_NS_ClrObj(void) { + nofralloc + #include "d/d_bg/d_bg_s/polypass/asm/func_80078E74.s" +} + +// SetCam__16dBgS_PolyPassChkFv +// dBgS_PolyPassChk::SetCam(void) +asm void dBgS_PolyPassChk_NS_SetCam(void) { + nofralloc + #include "d/d_bg/d_bg_s/polypass/asm/func_80078E80.s" +} + +// ClrCam__16dBgS_PolyPassChkFv +// dBgS_PolyPassChk::ClrCam(void) +asm void dBgS_PolyPassChk_NS_ClrCam(void) { + nofralloc + #include "d/d_bg/d_bg_s/polypass/asm/func_80078E8C.s" +} + +// SetLink__16dBgS_PolyPassChkFv +// dBgS_PolyPassChk::SetLink(void) +asm void dBgS_PolyPassChk_NS_SetLink(void) { + nofralloc + #include "d/d_bg/d_bg_s/polypass/asm/func_80078E98.s" +} + +// ClrLink__16dBgS_PolyPassChkFv +// dBgS_PolyPassChk::ClrLink(void) +asm void dBgS_PolyPassChk_NS_ClrLink(void) { + nofralloc + #include "d/d_bg/d_bg_s/polypass/asm/func_80078EA4.s" +} + +// SetArrow__16dBgS_PolyPassChkFv +// dBgS_PolyPassChk::SetArrow(void) +asm void dBgS_PolyPassChk_NS_SetArrow(void) { + nofralloc + #include "d/d_bg/d_bg_s/polypass/asm/func_80078EB0.s" +} + +// SetBomb__16dBgS_PolyPassChkFv +// dBgS_PolyPassChk::SetBomb(void) +asm void dBgS_PolyPassChk_NS_SetBomb(void) { + nofralloc + #include "d/d_bg/d_bg_s/polypass/asm/func_80078EBC.s" +} + +// ClrBomb__16dBgS_PolyPassChkFv +// dBgS_PolyPassChk::ClrBomb(void) +asm void dBgS_PolyPassChk_NS_ClrBomb(void) { + nofralloc + #include "d/d_bg/d_bg_s/polypass/asm/func_80078EC8.s" +} + +// SetBoomerang__16dBgS_PolyPassChkFv +// dBgS_PolyPassChk::SetBoomerang(void) +asm void dBgS_PolyPassChk_NS_SetBoomerang(void) { + nofralloc + #include "d/d_bg/d_bg_s/polypass/asm/func_80078ED4.s" +} + +// SetRope__16dBgS_PolyPassChkFv +// dBgS_PolyPassChk::SetRope(void) +asm void dBgS_PolyPassChk_NS_SetRope(void) { + nofralloc + #include "d/d_bg/d_bg_s/polypass/asm/func_80078EE0.s" +} + +// SetUnderwaterRoof__16dBgS_PolyPassChkFv +// dBgS_PolyPassChk::SetUnderwaterRoof(void) +asm void dBgS_PolyPassChk_NS_SetUnderwaterRoof(void) { + nofralloc + #include "d/d_bg/d_bg_s/polypass/asm/func_80078EEC.s" +} + +// SetHorse__16dBgS_PolyPassChkFv +// dBgS_PolyPassChk::SetHorse(void) +asm void dBgS_PolyPassChk_NS_SetHorse(void) { + nofralloc + #include "d/d_bg/d_bg_s/polypass/asm/func_80078EF8.s" +} + +// ChkNoHorse__16dBgS_PolyPassChkFv +// dBgS_PolyPassChk::ChkNoHorse(void) +asm void dBgS_PolyPassChk_NS_ChkNoHorse(void) { + nofralloc + #include "d/d_bg/d_bg_s/polypass/asm/func_80078F04.s" +} + +// SetStatue__16dBgS_PolyPassChkFv +// dBgS_PolyPassChk::SetStatue(void) +asm void dBgS_PolyPassChk_NS_SetStatue(void) { + nofralloc + #include "d/d_bg/d_bg_s/polypass/asm/func_80078F7C.s" +} + +// ClrStatue__16dBgS_PolyPassChkFv +// dBgS_PolyPassChk::ClrStatue(void) +asm void dBgS_PolyPassChk_NS_ClrStatue(void) { + nofralloc + #include "d/d_bg/d_bg_s/polypass/asm/func_80078F88.s" +} + +// SetIronBall__16dBgS_PolyPassChkFv +// dBgS_PolyPassChk::SetIronBall(void) +asm void dBgS_PolyPassChk_NS_SetIronBall(void) { + nofralloc + #include "d/d_bg/d_bg_s/polypass/asm/func_80078F94.s" +} + +// ClrIronBall__16dBgS_PolyPassChkFv +// dBgS_PolyPassChk::ClrIronBall(void) +asm void func_80078FA0(void) { + nofralloc + #include "d/d_bg/d_bg_s/polypass/asm/func_80078FA0.s" +} + +// __dt__16cBgS_PolyPassChkFv +// cBgS_PolyPassChk::~cBgS_PolyPassChk(void) +asm void func_80078FAC(void) { + nofralloc +#include "d/d_bg/d_bg_s/polypass/asm/func_80078FAC.s" +} + +}; diff --git a/src/d/d_camera.cpp b/src/d/d_camera.cpp index 1f57b00e04d..3bc0ecf2174 100644 --- a/src/d/d_camera.cpp +++ b/src/d/d_camera.cpp @@ -3,6 +3,7 @@ #include "SComponent/c_bg_w.h" #include "SComponent/c_xyz.h" #include "Z2AudioLib/Z2SeMgr/Z2SeMgr.h" +#include "d/d_bg/d_bg_s/d_bg_s_poly_pass_chk.h" #include "d/d_com/d_com_inf_game/d_com_inf_game.h" #include "f/f_pc/f_pc_searcher.h" #include "global.h" diff --git a/src/d/d_kankyo/d_kankyo_rain.cpp b/src/d/d_kankyo/d_kankyo_rain.cpp index 98052316a7f..5a380542ebc 100644 --- a/src/d/d_kankyo/d_kankyo_rain.cpp +++ b/src/d/d_kankyo/d_kankyo_rain.cpp @@ -1,6 +1,7 @@ /* d_kankyo_rain.cpp autogenerated by split.py v0.3 at 2021-01-01 22:35:45.009983 */ #include "SComponent/c_math.h" +#include "d/d_bg/d_bg_s/d_bg_s_poly_pass_chk.h" #include "d/d_com/d_com_inf_game/d_com_inf_game.h" #include "global.h"