From 4d5b9676cb94e32295cebbf87ad9a04e3eeac84b Mon Sep 17 00:00:00 2001 From: TakaRikka <38417346+TakaRikka@users.noreply.github.com> Date: Fri, 1 Jan 2021 22:46:34 -0800 Subject: [PATCH] most daMidna_c (#43) * most daMidna_c done * setLinkState ok * format * remove asm Co-authored-by: Pheenoh --- include/d/d_a/d_a_alink/asm/func_800C8700.s | 12 +++---- include/d/d_a/d_a_alink/asm/func_80141988.s | 2 -- include/d/d_a/d_a_alink/asm/func_801419F4.s | 4 --- include/d/d_a/d_a_alink/asm/func_80141A04.s | 3 -- include/d/d_a/d_a_alink/asm/func_80141A10.s | 3 -- include/d/d_a/d_a_alink/asm/func_80141A84.s | 4 --- include/d/d_a/d_a_alink/d_a_alink.h | 14 ++++++++ include/functions.h | 10 +++--- include/variables.h | 2 +- src/d/d_a/d_a_alink.cpp | 36 +++++++-------------- 10 files changed, 37 insertions(+), 53 deletions(-) delete mode 100644 include/d/d_a/d_a_alink/asm/func_80141988.s delete mode 100644 include/d/d_a/d_a_alink/asm/func_801419F4.s delete mode 100644 include/d/d_a/d_a_alink/asm/func_80141A04.s delete mode 100644 include/d/d_a/d_a_alink/asm/func_80141A10.s delete mode 100644 include/d/d_a/d_a_alink/asm/func_80141A84.s diff --git a/include/d/d_a/d_a_alink/asm/func_800C8700.s b/include/d/d_a/d_a_alink/asm/func_800C8700.s index d53834202e..ce558495c6 100644 --- a/include/d/d_a/d_a_alink/asm/func_800C8700.s +++ b/include/d/d_a/d_a_alink/asm/func_800C8700.s @@ -17,7 +17,7 @@ /* 800C8740 000C5680 80 6D 8A 98 */ lwz r3, lbl_80451018-_SDA_BASE_(r13) /* 800C8744 000C5684 28 03 00 00 */ cmplwi r3, 0 /* 800C8748 000C5688 41 82 00 08 */ beq lbl_800C8750 -/* 800C874C 000C568C 48 07 93 39 */ bl daMidna_c_NS_onNoServiceWait +/* 800C874C 000C568C 48 07 93 39 */ bl onNoServiceWait__9daMidna_cFv lbl_800C8750: /* 800C8750 000C5690 A0 1F 30 FE */ lhz r0, 0x30fe(r31) /* 800C8754 000C5694 28 00 00 00 */ cmplwi r0, 0 @@ -1835,12 +1835,12 @@ lbl_800CA150: /* 800CA164 000C70A4 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 800CA168 000C70A8 40 82 00 14 */ bne lbl_800CA17C /* 800CA16C 000C70AC 7F 63 DB 78 */ mr r3, r27 -/* 800CA170 000C70B0 48 07 78 A1 */ bl daMidna_c_NS_checkForceTiredColor +/* 800CA170 000C70B0 48 07 78 A1 */ bl checkForceTiredColor__9daMidna_cCFv /* 800CA174 000C70B4 28 03 00 00 */ cmplwi r3, 0 /* 800CA178 000C70B8 41 82 00 68 */ beq lbl_800CA1E0 lbl_800CA17C: /* 800CA17C 000C70BC 7F 63 DB 78 */ mr r3, r27 -/* 800CA180 000C70C0 48 07 78 85 */ bl daMidna_c_NS_checkForceNormalColor +/* 800CA180 000C70C0 48 07 78 85 */ bl checkForceNormalColor__9daMidna_cCFv /* 800CA184 000C70C4 28 03 00 00 */ cmplwi r3, 0 /* 800CA188 000C70C8 40 82 00 58 */ bne lbl_800CA1E0 /* 800CA18C 000C70CC 80 7F 07 9C */ lwz r3, 0x79c(r31) @@ -2201,7 +2201,7 @@ lbl_800CA684: /* 800CA6B0 000C75F0 28 03 00 00 */ cmplwi r3, 0 /* 800CA6B4 000C75F4 41 82 00 0C */ beq lbl_800CA6C0 /* 800CA6B8 000C75F8 80 6D 8A 98 */ lwz r3, lbl_80451018-_SDA_BASE_(r13) -/* 800CA6BC 000C75FC 48 07 73 39 */ bl daMidna_c_NS_onForcePanic +/* 800CA6BC 000C75FC 48 07 73 39 */ bl onForcePanic__9daMidna_cFv lbl_800CA6C0: /* 800CA6C0 000C7600 38 00 00 00 */ li r0, 0 /* 800CA6C4 000C7604 B0 1F 30 FE */ sth r0, 0x30fe(r31) @@ -2256,7 +2256,7 @@ lbl_800CA744: /* 800CA780 000C76C0 4E 80 04 21 */ bctrl /* 800CA784 000C76C4 38 7F 2C A8 */ addi r3, r31, 0x2ca8 /* 800CA788 000C76C8 38 80 00 05 */ li r4, 5 -/* 800CA78C 000C76CC 48 07 71 FD */ bl Z2CreatureLink_NS_setLinkState +/* 800CA78C 000C76CC 48 07 71 FD */ bl setLinkState__14Z2CreatureLinkFUc /* 800CA790 000C76D0 48 00 00 50 */ b lbl_800CA7E0 lbl_800CA794: /* 800CA794 000C76D4 48 07 71 FD */ bl dComIfGs_getRupee @@ -2277,7 +2277,7 @@ lbl_800CA794: /* 800CA7D0 000C7710 4E 80 04 21 */ bctrl /* 800CA7D4 000C7714 38 7F 2C A8 */ addi r3, r31, 0x2ca8 /* 800CA7D8 000C7718 38 80 00 04 */ li r4, 4 -/* 800CA7DC 000C771C 48 07 71 AD */ bl Z2CreatureLink_NS_setLinkState +/* 800CA7DC 000C771C 48 07 71 AD */ bl setLinkState__14Z2CreatureLinkFUc lbl_800CA7E0: /* 800CA7E0 000C7720 7F E3 FB 78 */ mr r3, r31 /* 800CA7E4 000C7724 48 07 6B E9 */ bl daPy_py_c_NS_checkWolf diff --git a/include/d/d_a/d_a_alink/asm/func_80141988.s b/include/d/d_a/d_a_alink/asm/func_80141988.s deleted file mode 100644 index b84cabc55c..0000000000 --- a/include/d/d_a/d_a_alink/asm/func_80141988.s +++ /dev/null @@ -1,2 +0,0 @@ -/* 80141988 0013E8C8 98 83 00 C0 */ stb r4, 0xc0(r3) -/* 8014198C 0013E8CC 4E 80 00 20 */ blr diff --git a/include/d/d_a/d_a_alink/asm/func_801419F4.s b/include/d/d_a/d_a_alink/asm/func_801419F4.s deleted file mode 100644 index 3db72580d8..0000000000 --- a/include/d/d_a/d_a_alink/asm/func_801419F4.s +++ /dev/null @@ -1,4 +0,0 @@ -/* 801419F4 0013E934 80 03 08 98 */ lwz r0, 0x898(r3) -/* 801419F8 0013E938 60 00 00 08 */ ori r0, r0, 8 -/* 801419FC 0013E93C 90 03 08 98 */ stw r0, 0x898(r3) -/* 80141A00 0013E940 4E 80 00 20 */ blr diff --git a/include/d/d_a/d_a_alink/asm/func_80141A04.s b/include/d/d_a/d_a_alink/asm/func_80141A04.s deleted file mode 100644 index 4c1f242525..0000000000 --- a/include/d/d_a/d_a_alink/asm/func_80141A04.s +++ /dev/null @@ -1,3 +0,0 @@ -/* 80141A04 0013E944 80 03 08 94 */ lwz r0, 0x894(r3) -/* 80141A08 0013E948 54 03 07 38 */ rlwinm r3, r0, 0, 0x1c, 0x1c -/* 80141A0C 0013E94C 4E 80 00 20 */ blr diff --git a/include/d/d_a/d_a_alink/asm/func_80141A10.s b/include/d/d_a/d_a_alink/asm/func_80141A10.s deleted file mode 100644 index 53e33145d8..0000000000 --- a/include/d/d_a/d_a_alink/asm/func_80141A10.s +++ /dev/null @@ -1,3 +0,0 @@ -/* 80141A10 0013E950 80 03 08 94 */ lwz r0, 0x894(r3) -/* 80141A14 0013E954 54 03 07 7A */ rlwinm r3, r0, 0, 0x1d, 0x1d -/* 80141A18 0013E958 4E 80 00 20 */ blr diff --git a/include/d/d_a/d_a_alink/asm/func_80141A84.s b/include/d/d_a/d_a_alink/asm/func_80141A84.s deleted file mode 100644 index b3491710f1..0000000000 --- a/include/d/d_a/d_a_alink/asm/func_80141A84.s +++ /dev/null @@ -1,4 +0,0 @@ -/* 80141A84 0013E9C4 80 03 08 98 */ lwz r0, 0x898(r3) -/* 80141A88 0013E9C8 60 00 00 80 */ ori r0, r0, 0x80 -/* 80141A8C 0013E9CC 90 03 08 98 */ stw r0, 0x898(r3) -/* 80141A90 0013E9D0 4E 80 00 20 */ blr diff --git a/include/d/d_a/d_a_alink/d_a_alink.h b/include/d/d_a/d_a_alink/d_a_alink.h index 984abbcfa3..f687c9ac60 100644 --- a/include/d/d_a/d_a_alink/d_a_alink.h +++ b/include/d/d_a/d_a_alink/d_a_alink.h @@ -201,6 +201,20 @@ private: u8 unk[14268]; }; +class daMidna_c { +public: + void onForcePanic(void); + u32 checkForceNormalColor(void) const; + u32 checkForceTiredColor(void) const; + bool checkMidnaTired(void); + void onNoServiceWait(void); + +private: + u8 unk[0x893]; + u32 unk2196; + u32 unk2200; +}; + extern "C" { void tgHitCallback__9daAlink_cFP10fopAc_ac_cP12dCcD_GObjInfP12dCcD_GObjInf(fopAc_ac_c*, dCcD_GObjInf*, diff --git a/include/functions.h b/include/functions.h index e5cfc5abdc..6bd077977c 100644 --- a/include/functions.h +++ b/include/functions.h @@ -1167,7 +1167,7 @@ void daAlink_c_NS_checkPlayerGuardAndAttack(void); void daAlink_c_NS_checkMidnaUseAbility(void); void daAlink_c_NS_setItemAction(void); void dBgS_NS_ChkPolyHSStick(void); -void Z2CreatureLink_NS_setLinkState(void); +void setLinkState__14Z2CreatureLinkFUc(void); void func_800D09EC(void); void dPa_control_c_NS_set_X1_(void); void daAlink_c_NS_checkWolfRopeHit(void); @@ -1230,7 +1230,7 @@ void func_8011D6D0(void); void func_800C7690(void); void setRoom__13dSv_restart_cFRC4cXyzsSc(void); void daPy_py_c_NS_checkWolf(void); -void daMidna_c_NS_checkForceNormalColor(void); +void checkForceNormalColor__9daMidna_cCFv(void); void daAlink_c_NS_setWolfDigEffect(void); void daAlink_c_NS_procCutLargeJumpLandInit(void); void dBgS_Acch_NS_CrrPos(void); @@ -2073,7 +2073,7 @@ void func_800D0A14(void); void dBgS_NS_GetExitId(void); void func_800D0CDC(void); void daAlink_c_NS_commonCutAction(void); -void daMidna_c_NS_onForcePanic(void); +void onForcePanic__9daMidna_cFv(void); void daAlink_c_NS_checkCanoeRideTandem(void); void dComIfGp_TransportWarp_check(void); void daAlink_c_NS_procCoHorseCallWaitInit(void); @@ -3405,7 +3405,7 @@ void daAlink_c_NS_checkRAction(void); void daAlink_c_NS_setSwordAtCollision(void); void daAlink_c_NS_searchPeepObj(void); void daAlink_c_NS_checkNextActionFromButton(void); -void daMidna_c_NS_checkForceTiredColor(void); +void checkForceTiredColor__9daMidna_cCFv(void); void daAlink_c_NS_checkCastleTown(void); void daAlink_c_NS_resetFairyEffect(void); void d_GameOver_Create(void); @@ -3520,7 +3520,7 @@ void dEvt_control_c_NS_reset_X1_(void); void daAlink_c_NS_checkSpecialNpc(void); void daAlink_createHeap(void); void daAlink_c_NS_setDemoRightHandIndex(void); -void daMidna_c_NS_onNoServiceWait(void); +void onNoServiceWait__9daMidna_cFv(void); void func_80105728(void); void daAlink_searchNightStalker(void); void func_80107418(void); diff --git a/include/variables.h b/include/variables.h index 58c0a2d0db..301676ab28 100644 --- a/include/variables.h +++ b/include/variables.h @@ -443,7 +443,7 @@ extern u8 lbl_80453330; extern u8 lbl_804255D4; extern u8 lbl_8045324C; extern u8 lbl_80452E08; -extern u8 lbl_80452EAC; +extern float lbl_80452EAC; extern u8 lbl_804532B8; extern u8 lbl_8038DB40; extern u8 lbl_80452E10; diff --git a/src/d/d_a/d_a_alink.cpp b/src/d/d_a/d_a_alink.cpp index 67c220071e..fe0e09956f 100644 --- a/src/d/d_a/d_a_alink.cpp +++ b/src/d/d_a/d_a_alink.cpp @@ -1,6 +1,7 @@ #include "d/d_a/d_a_alink/d_a_alink.h" #include "SComponent/c_bg_w.h" #include "SComponent/c_phase.h" +#include "Z2AudioLib/Z2LinkMgr/Z2LinkMgr.h" #include "Z2AudioLib/Z2SeMgr/Z2SeMgr.h" #include "Z2AudioLib/Z2SeqMgr/Z2SeqMgr.h" #include "f/f_pc/f_pc_manager.h" @@ -15050,11 +15051,8 @@ asm void dMeter2Info_offUseButton(void) { #include "d/d_a/d_a_alink/asm/func_8014196C.s" } -// setLinkState__14Z2CreatureLinkFUc -// Z2CreatureLink::setLinkState(unsigned char) -asm void Z2CreatureLink_NS_setLinkState(void) { - nofralloc -#include "d/d_a/d_a_alink/asm/func_80141988.s" +void Z2CreatureLink::setLinkState(u8 state) { + link_state = state; } // dComIfGs_getRupee__Fv @@ -15077,25 +15075,16 @@ asm void dMeter2Info_setFloatingMessage(void) { #include "d/d_a/d_a_alink/asm/func_801419B8.s" } -// onForcePanic__9daMidna_cFv -// daMidna_c::onForcePanic(void) -asm void daMidna_c_NS_onForcePanic(void) { - nofralloc -#include "d/d_a/d_a_alink/asm/func_801419F4.s" +void daMidna_c::onForcePanic(void) { + unk2200 |= 8; } -// checkForceNormalColor__9daMidna_cCFv -// daMidna_c::checkForceNormalColor(const void) -asm void daMidna_c_NS_checkForceNormalColor(void) { - nofralloc -#include "d/d_a/d_a_alink/asm/func_80141A04.s" +u32 daMidna_c::checkForceNormalColor(void) const { + return unk2196 & 8; } -// checkForceTiredColor__9daMidna_cCFv -// daMidna_c::checkForceTiredColor(const void) -asm void daMidna_c_NS_checkForceTiredColor(void) { - nofralloc -#include "d/d_a/d_a_alink/asm/func_80141A10.s" +u32 daMidna_c::checkForceTiredColor(void) const { + return unk2196 & 4; } // checkMidnaTired__9daMidna_cFv @@ -15105,11 +15094,8 @@ asm void daMidna_c_NS_checkMidnaTired(void) { #include "d/d_a/d_a_alink/asm/func_80141A1C.s" } -// onNoServiceWait__9daMidna_cFv -// daMidna_c::onNoServiceWait(void) -asm void daMidna_c_NS_onNoServiceWait(void) { - nofralloc -#include "d/d_a/d_a_alink/asm/func_80141A84.s" +void daMidna_c::onNoServiceWait(void) { + unk2200 |= 128; } // setControllActorData__8daCrod_cFv