From 7d0a02de523bd568ec2c7fa25b09659b87ef381f Mon Sep 17 00:00:00 2001 From: TakaRikka <38417346+TakaRikka@users.noreply.github.com> Date: Wed, 8 Nov 2023 05:52:54 -0800 Subject: [PATCH] work on daAlink horse, hvyboots, cut (#1981) * work on alink_cut, alink_horse, alink_hvyboots * remove asm --- .../d_a_alink/boarForceGetOff__9daAlink_cFv.s | 15 - ...checkHorseServiceWaitAnime__9daAlink_cFv.s | 27 - .../checkHorseSpecialProc__9daAlink_cFv.s | 81 - .../checkHorseSwordUpSpped__9daAlink_cFv.s | 12 - .../checkHorseZeldaBowMode__9daAlink_cFv.s | 20 - .../checkNextActionHorse__9daAlink_cFv.s | 96 - .../daAlink_searchBoar__FP10fopAc_ac_cPv.s | 17 - .../d_a_alink/horseGetOffEnd__9daAlink_cFv.s | 50 - .../initForceRideBoar__9daAlink_cFv.s | 46 - ...procHorseBoomerangMoveInit__9daAlink_cFv.s | 32 - .../procHorseBoomerangMove__9daAlink_cFv.s | 60 - ...cHorseBoomerangSubjectInit__9daAlink_cFv.s | 32 - .../procHorseBoomerangSubject__9daAlink_cFv.s | 69 - .../procHorseBottleDrink__9daAlink_cFv.s | 32 - .../procHorseBowMoveInit__9daAlink_cFv.s | 26 - .../procHorseBowMove__9daAlink_cFv.s | 40 - .../procHorseBowSubjectInit__9daAlink_cFv.s | 28 - .../procHorseBowSubject__9daAlink_cFv.s | 43 - .../procHorseComebackInit__9daAlink_cFv.s | 27 - .../procHorseComeback__9daAlink_cFv.s | 70 - ...rocHorseCutChargeReadyInit__9daAlink_cFv.s | 48 - .../procHorseGetKeyInit__9daAlink_cFv.s | 31 - .../d_a_alink/procHorseGetKey__9daAlink_cFv.s | 54 - .../procHorseGrabMoveInit__9daAlink_cFv.s | 26 - .../procHorseGrabMove__9daAlink_cFv.s | 56 - .../procHorseHookshotMoveInit__9daAlink_cFv.s | 32 - .../procHorseHookshotMove__9daAlink_cFv.s | 45 - ...ocHorseHookshotSubjectInit__9daAlink_cFv.s | 34 - .../procHorseHookshotSubject__9daAlink_cFv.s | 52 - .../procHorseJumpInit__9daAlink_cFv.s | 40 - .../a/d_a_alink/procHorseJump__9daAlink_cFv.s | 42 - .../procHorseLandInit__9daAlink_cFv.s | 33 - .../a/d_a_alink/procHorseLand__9daAlink_cFv.s | 42 - .../procHorseLookDownInit__9daAlink_cFv.s | 35 - .../procHorseLookDown__9daAlink_cFv.s | 23 - .../procHorseSubjectivityInit__9daAlink_cFv.s | 27 - .../procHorseSubjectivity__9daAlink_cFv.s | 63 - .../procHorseTurnInit__9daAlink_cFv.s | 32 - asm/d/a/d_a_alink/rideGetOff__9daAlink_cFv.s | 122 -- .../d_a_alink/setHorseGetOff__9daAlink_cFi.s | 60 - .../d_a_alink/setHorseSwordUp__9daAlink_cFi.s | 57 - .../setHorseTurnUpperAnime__9daAlink_cFi.s | 36 - .../setHorseZeldaDamage__9daAlink_cFv.s | 12 - .../d_a_alink/setSyncBoarPos__9daAlink_cFv.s | 106 -- .../setSyncBoarRunPos__9daAlink_cFv.s | 76 - asm/d/a/d_a_alink/setSyncRide__9daAlink_cFi.s | 127 -- include/d/a/d_a_alink.h | 58 +- include/d/a/d_a_player.h | 10 + include/f_op/f_op_actor.h | 3 + include/m_Do/m_Do_audio.h | 4 + include/m_Do/m_Do_mtx.h | 4 + include/rel/d/a/b/d_a_b_gnd/d_a_b_gnd.h | 180 +- include/rel/d/a/d_a_horse/d_a_horse.h | 38 +- include/rel/d/a/d_a_hozelda/d_a_hozelda.h | 89 + include/rel/d/a/d_a_spinner/d_a_spinner.h | 2 + include/rel/d/a/e/d_a_e_wb/d_a_e_wb.h | 16 +- .../d/a/obj/d_a_obj_iceleaf/d_a_obj_iceleaf.h | 50 +- include/std/cmath.h | 4 + rel/d/a/b/d_a_b_gnd/d_a_b_gnd.cpp | 2 +- rel/d/a/d_a_hozelda/d_a_hozelda.cpp | 3 +- .../a/obj/d_a_obj_iceleaf/d_a_obj_iceleaf.cpp | 3 +- src/d/a/d_a_alink.cpp | 44 +- src/d/a/d_a_alink_cut.inc | 547 +++++- src/d/a/d_a_alink_grab.inc | 2 +- src/d/a/d_a_alink_horse.inc | 1633 +++++++++++++---- src/d/a/d_a_alink_hvyboots.inc | 333 +++- src/d/a/d_a_horse_static.cpp | 2 +- src/d/a/d_a_player.cpp | 2 +- src/d/d_camera.cpp | 3 +- 69 files changed, 2600 insertions(+), 2566 deletions(-) delete mode 100644 asm/d/a/d_a_alink/boarForceGetOff__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/checkHorseServiceWaitAnime__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/checkHorseSpecialProc__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/checkHorseSwordUpSpped__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/checkHorseZeldaBowMode__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/checkNextActionHorse__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/daAlink_searchBoar__FP10fopAc_ac_cPv.s delete mode 100644 asm/d/a/d_a_alink/horseGetOffEnd__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/initForceRideBoar__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseBoomerangMoveInit__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseBoomerangMove__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseBoomerangSubjectInit__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseBoomerangSubject__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseBottleDrink__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseBowMoveInit__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseBowMove__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseBowSubjectInit__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseBowSubject__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseComebackInit__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseComeback__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseCutChargeReadyInit__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseGetKeyInit__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseGetKey__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseGrabMoveInit__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseGrabMove__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseHookshotMoveInit__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseHookshotMove__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseHookshotSubjectInit__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseHookshotSubject__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseJumpInit__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseJump__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseLandInit__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseLand__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseLookDownInit__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseLookDown__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseSubjectivityInit__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseSubjectivity__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHorseTurnInit__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/rideGetOff__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/setHorseGetOff__9daAlink_cFi.s delete mode 100644 asm/d/a/d_a_alink/setHorseSwordUp__9daAlink_cFi.s delete mode 100644 asm/d/a/d_a_alink/setHorseTurnUpperAnime__9daAlink_cFi.s delete mode 100644 asm/d/a/d_a_alink/setHorseZeldaDamage__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/setSyncBoarPos__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/setSyncBoarRunPos__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/setSyncRide__9daAlink_cFi.s diff --git a/asm/d/a/d_a_alink/boarForceGetOff__9daAlink_cFv.s b/asm/d/a/d_a_alink/boarForceGetOff__9daAlink_cFv.s deleted file mode 100644 index 32ad30c163..0000000000 --- a/asm/d/a/d_a_alink/boarForceGetOff__9daAlink_cFv.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_800EF35C: -/* 800EF35C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800EF360 7C 08 02 A6 */ mflr r0 -/* 800EF364 90 01 00 14 */ stw r0, 0x14(r1) -/* 800EF368 38 80 FF FC */ li r4, -4 -/* 800EF36C 38 A0 00 01 */ li r5, 1 -/* 800EF370 38 C0 00 00 */ li r6, 0 -/* 800EF374 38 E0 00 00 */ li r7, 0 -/* 800EF378 39 00 00 00 */ li r8, 0 -/* 800EF37C 39 20 00 00 */ li r9, 0 -/* 800EF380 4B FE A3 5D */ bl procCoLargeDamageInit__9daAlink_cFiissP12dCcD_GObjInfi -/* 800EF384 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800EF388 7C 08 03 A6 */ mtlr r0 -/* 800EF38C 38 21 00 10 */ addi r1, r1, 0x10 -/* 800EF390 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/checkHorseServiceWaitAnime__9daAlink_cFv.s b/asm/d/a/d_a_alink/checkHorseServiceWaitAnime__9daAlink_cFv.s deleted file mode 100644 index c0b378ba63..0000000000 --- a/asm/d/a/d_a_alink/checkHorseServiceWaitAnime__9daAlink_cFv.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_800EDE8C: -/* 800EDE8C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800EDE90 7C 08 02 A6 */ mflr r0 -/* 800EDE94 90 01 00 14 */ stw r0, 0x14(r1) -/* 800EDE98 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800EDE9C 93 C1 00 08 */ stw r30, 8(r1) -/* 800EDEA0 7C 7E 1B 78 */ mr r30, r3 -/* 800EDEA4 3B E0 00 00 */ li r31, 0 -/* 800EDEA8 38 80 00 51 */ li r4, 0x51 -/* 800EDEAC 4B FB E6 AD */ bl checkUnderMove0BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM -/* 800EDEB0 2C 03 00 00 */ cmpwi r3, 0 -/* 800EDEB4 40 82 00 18 */ bne lbl_800EDECC -/* 800EDEB8 7F C3 F3 78 */ mr r3, r30 -/* 800EDEBC 38 80 00 52 */ li r4, 0x52 -/* 800EDEC0 4B FB E6 99 */ bl checkUnderMove0BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM -/* 800EDEC4 2C 03 00 00 */ cmpwi r3, 0 -/* 800EDEC8 41 82 00 08 */ beq lbl_800EDED0 -lbl_800EDECC: -/* 800EDECC 3B E0 00 01 */ li r31, 1 -lbl_800EDED0: -/* 800EDED0 57 E3 06 3E */ clrlwi r3, r31, 0x18 -/* 800EDED4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800EDED8 83 C1 00 08 */ lwz r30, 8(r1) -/* 800EDEDC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800EDEE0 7C 08 03 A6 */ mtlr r0 -/* 800EDEE4 38 21 00 10 */ addi r1, r1, 0x10 -/* 800EDEE8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/checkHorseSpecialProc__9daAlink_cFv.s b/asm/d/a/d_a_alink/checkHorseSpecialProc__9daAlink_cFv.s deleted file mode 100644 index 7da6b8f195..0000000000 --- a/asm/d/a/d_a_alink/checkHorseSpecialProc__9daAlink_cFv.s +++ /dev/null @@ -1,81 +0,0 @@ -lbl_800EDD6C: -/* 800EDD6C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800EDD70 7C 08 02 A6 */ mflr r0 -/* 800EDD74 90 01 00 14 */ stw r0, 0x14(r1) -/* 800EDD78 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800EDD7C 93 C1 00 08 */ stw r30, 8(r1) -/* 800EDD80 7C 7E 1B 78 */ mr r30, r3 -/* 800EDD84 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800EDD88 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800EDD8C 83 E4 5D B8 */ lwz r31, 0x5db8(r4) -/* 800EDD90 81 83 06 28 */ lwz r12, 0x628(r3) -/* 800EDD94 81 8C 01 88 */ lwz r12, 0x188(r12) -/* 800EDD98 7D 89 03 A6 */ mtctr r12 -/* 800EDD9C 4E 80 04 21 */ bctrl -/* 800EDDA0 28 03 00 00 */ cmplwi r3, 0 -/* 800EDDA4 40 82 00 0C */ bne lbl_800EDDB0 -/* 800EDDA8 38 60 00 00 */ li r3, 0 -/* 800EDDAC 48 00 00 C8 */ b lbl_800EDE74 -lbl_800EDDB0: -/* 800EDDB0 80 1E 05 90 */ lwz r0, 0x590(r30) -/* 800EDDB4 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e -/* 800EDDB8 41 82 00 28 */ beq lbl_800EDDE0 -/* 800EDDBC C0 1F 04 D0 */ lfs f0, 0x4d0(r31) -/* 800EDDC0 D0 1E 04 D0 */ stfs f0, 0x4d0(r30) -/* 800EDDC4 C0 1F 04 D4 */ lfs f0, 0x4d4(r31) -/* 800EDDC8 D0 1E 04 D4 */ stfs f0, 0x4d4(r30) -/* 800EDDCC C0 1F 04 D8 */ lfs f0, 0x4d8(r31) -/* 800EDDD0 D0 1E 04 D8 */ stfs f0, 0x4d8(r30) -/* 800EDDD4 7F C3 F3 78 */ mr r3, r30 -/* 800EDDD8 4B FD 55 E1 */ bl procWaitInit__9daAlink_cFv -/* 800EDDDC 48 00 00 98 */ b lbl_800EDE74 -lbl_800EDDE0: -/* 800EDDE0 88 9F 16 B4 */ lbz r4, 0x16b4(r31) -/* 800EDDE4 28 04 00 02 */ cmplwi r4, 2 -/* 800EDDE8 41 82 00 28 */ beq lbl_800EDE10 -/* 800EDDEC 38 60 00 00 */ li r3, 0 -/* 800EDDF0 28 04 00 03 */ cmplwi r4, 3 -/* 800EDDF4 40 82 00 14 */ bne lbl_800EDE08 -/* 800EDDF8 A8 1F 17 20 */ lha r0, 0x1720(r31) -/* 800EDDFC 2C 00 00 00 */ cmpwi r0, 0 -/* 800EDE00 40 82 00 08 */ bne lbl_800EDE08 -/* 800EDE04 38 60 00 01 */ li r3, 1 -lbl_800EDE08: -/* 800EDE08 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800EDE0C 41 82 00 28 */ beq lbl_800EDE34 -lbl_800EDE10: -/* 800EDE10 80 1F 17 4C */ lwz r0, 0x174c(r31) -/* 800EDE14 54 00 05 EF */ rlwinm. r0, r0, 0, 0x17, 0x17 -/* 800EDE18 40 82 00 1C */ bne lbl_800EDE34 -/* 800EDE1C 80 1F 17 44 */ lwz r0, 0x1744(r31) -/* 800EDE20 54 00 00 85 */ rlwinm. r0, r0, 0, 2, 2 -/* 800EDE24 40 82 00 10 */ bne lbl_800EDE34 -/* 800EDE28 7F C3 F3 78 */ mr r3, r30 -/* 800EDE2C 48 00 2E 41 */ bl procHorseTurnInit__9daAlink_cFv -/* 800EDE30 48 00 00 44 */ b lbl_800EDE74 -lbl_800EDE34: -/* 800EDE34 28 04 00 04 */ cmplwi r4, 4 -/* 800EDE38 40 82 00 10 */ bne lbl_800EDE48 -/* 800EDE3C 7F C3 F3 78 */ mr r3, r30 -/* 800EDE40 48 00 32 21 */ bl procHorseJumpInit__9daAlink_cFv -/* 800EDE44 48 00 00 30 */ b lbl_800EDE74 -lbl_800EDE48: -/* 800EDE48 A0 1E 2F E8 */ lhz r0, 0x2fe8(r30) -/* 800EDE4C 28 00 00 3C */ cmplwi r0, 0x3c -/* 800EDE50 41 82 00 20 */ beq lbl_800EDE70 -/* 800EDE54 28 00 00 41 */ cmplwi r0, 0x41 -/* 800EDE58 41 82 00 18 */ beq lbl_800EDE70 -/* 800EDE5C 28 00 00 42 */ cmplwi r0, 0x42 -/* 800EDE60 41 82 00 10 */ beq lbl_800EDE70 -/* 800EDE64 80 1F 17 4C */ lwz r0, 0x174c(r31) -/* 800EDE68 60 00 00 10 */ ori r0, r0, 0x10 -/* 800EDE6C 90 1F 17 4C */ stw r0, 0x174c(r31) -lbl_800EDE70: -/* 800EDE70 38 60 00 00 */ li r3, 0 -lbl_800EDE74: -/* 800EDE74 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800EDE78 83 C1 00 08 */ lwz r30, 8(r1) -/* 800EDE7C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800EDE80 7C 08 03 A6 */ mtlr r0 -/* 800EDE84 38 21 00 10 */ addi r1, r1, 0x10 -/* 800EDE88 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/checkHorseSwordUpSpped__9daAlink_cFv.s b/asm/d/a/d_a_alink/checkHorseSwordUpSpped__9daAlink_cFv.s deleted file mode 100644 index f784477b95..0000000000 --- a/asm/d/a/d_a_alink/checkHorseSwordUpSpped__9daAlink_cFv.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_800EEE30: -/* 800EEE30 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800EEE34 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800EEE38 80 63 5D B8 */ lwz r3, 0x5db8(r3) -/* 800EEE3C C0 43 05 2C */ lfs f2, 0x52c(r3) -/* 800EEE40 C0 22 94 D0 */ lfs f1, lit_18847(r2) -/* 800EEE44 C0 03 17 90 */ lfs f0, 0x1790(r3) -/* 800EEE48 EC 01 00 32 */ fmuls f0, f1, f0 -/* 800EEE4C FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 800EEE50 7C 00 00 26 */ mfcr r0 -/* 800EEE54 54 03 17 FE */ rlwinm r3, r0, 2, 0x1f, 0x1f -/* 800EEE58 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/checkHorseZeldaBowMode__9daAlink_cFv.s b/asm/d/a/d_a_alink/checkHorseZeldaBowMode__9daAlink_cFv.s deleted file mode 100644 index da4ed4cb7b..0000000000 --- a/asm/d/a/d_a_alink/checkHorseZeldaBowMode__9daAlink_cFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_800EC76C: -/* 800EC76C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800EC770 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800EC774 80 63 5D B8 */ lwz r3, 0x5db8(r3) -/* 800EC778 28 03 00 00 */ cmplwi r3, 0 -/* 800EC77C 40 82 00 0C */ bne lbl_800EC788 -/* 800EC780 38 60 00 00 */ li r3, 0 -/* 800EC784 4E 80 00 20 */ blr -lbl_800EC788: -/* 800EC788 80 83 12 58 */ lwz r4, 0x1258(r3) -/* 800EC78C 38 60 00 00 */ li r3, 0 -/* 800EC790 28 04 00 00 */ cmplwi r4, 0 -/* 800EC794 41 82 00 14 */ beq lbl_800EC7A8 -/* 800EC798 88 04 06 D8 */ lbz r0, 0x6d8(r4) -/* 800EC79C 28 00 00 00 */ cmplwi r0, 0 -/* 800EC7A0 41 82 00 08 */ beq lbl_800EC7A8 -/* 800EC7A4 38 60 00 01 */ li r3, 1 -lbl_800EC7A8: -/* 800EC7A8 54 63 06 3E */ clrlwi r3, r3, 0x18 -/* 800EC7AC 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/checkNextActionHorse__9daAlink_cFv.s b/asm/d/a/d_a_alink/checkNextActionHorse__9daAlink_cFv.s deleted file mode 100644 index 9d706ce58c..0000000000 --- a/asm/d/a/d_a_alink/checkNextActionHorse__9daAlink_cFv.s +++ /dev/null @@ -1,96 +0,0 @@ -lbl_800EF450: -/* 800EF450 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800EF454 7C 08 02 A6 */ mflr r0 -/* 800EF458 90 01 00 14 */ stw r0, 0x14(r1) -/* 800EF45C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800EF460 7C 7F 1B 78 */ mr r31, r3 -/* 800EF464 4B FF 48 39 */ bl checkGrabAnimeAndThrow__9daAlink_cCFv -/* 800EF468 2C 03 00 00 */ cmpwi r3, 0 -/* 800EF46C 41 82 00 10 */ beq lbl_800EF47C -/* 800EF470 A0 1F 2F E8 */ lhz r0, 0x2fe8(r31) -/* 800EF474 28 00 00 47 */ cmplwi r0, 0x47 -/* 800EF478 40 82 00 1C */ bne lbl_800EF494 -lbl_800EF47C: -/* 800EF47C 7F E3 FB 78 */ mr r3, r31 -/* 800EF480 4B FC A8 AD */ bl checkNextActionFromButton__9daAlink_cFv -/* 800EF484 2C 03 00 00 */ cmpwi r3, 0 -/* 800EF488 41 82 00 0C */ beq lbl_800EF494 -/* 800EF48C 38 60 00 01 */ li r3, 1 -/* 800EF490 48 00 00 F4 */ b lbl_800EF584 -lbl_800EF494: -/* 800EF494 7F E3 FB 78 */ mr r3, r31 -/* 800EF498 4B FE F5 51 */ bl checkBowAnime__9daAlink_cCFv -/* 800EF49C 2C 03 00 00 */ cmpwi r3, 0 -/* 800EF4A0 41 82 00 10 */ beq lbl_800EF4B0 -/* 800EF4A4 7F E3 FB 78 */ mr r3, r31 -/* 800EF4A8 4B FF 03 6D */ bl checkNextActionBow__9daAlink_cFv -/* 800EF4AC 48 00 00 D8 */ b lbl_800EF584 -lbl_800EF4B0: -/* 800EF4B0 7F E3 FB 78 */ mr r3, r31 -/* 800EF4B4 4B FF 0F 8D */ bl checkBoomerangAnime__9daAlink_cCFv -/* 800EF4B8 2C 03 00 00 */ cmpwi r3, 0 -/* 800EF4BC 41 82 00 10 */ beq lbl_800EF4CC -/* 800EF4C0 7F E3 FB 78 */ mr r3, r31 -/* 800EF4C4 4B FF 17 21 */ bl checkNextActionBoomerang__9daAlink_cFv -/* 800EF4C8 48 00 00 BC */ b lbl_800EF584 -lbl_800EF4CC: -/* 800EF4CC 38 60 00 00 */ li r3, 0 -/* 800EF4D0 A0 1F 1F BC */ lhz r0, 0x1fbc(r31) -/* 800EF4D4 28 00 01 8D */ cmplwi r0, 0x18d -/* 800EF4D8 41 82 00 10 */ beq lbl_800EF4E8 -/* 800EF4DC 54 00 04 3E */ clrlwi r0, r0, 0x10 -/* 800EF4E0 28 00 01 8C */ cmplwi r0, 0x18c -/* 800EF4E4 40 82 00 08 */ bne lbl_800EF4EC -lbl_800EF4E8: -/* 800EF4E8 38 60 00 01 */ li r3, 1 -lbl_800EF4EC: -/* 800EF4EC 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800EF4F0 41 82 00 10 */ beq lbl_800EF500 -/* 800EF4F4 7F E3 FB 78 */ mr r3, r31 -/* 800EF4F8 48 01 A0 D1 */ bl checkNextActionHookshot__9daAlink_cFv -/* 800EF4FC 48 00 00 88 */ b lbl_800EF584 -lbl_800EF500: -/* 800EF500 7F E3 FB 78 */ mr r3, r31 -/* 800EF504 4B FF 47 99 */ bl checkGrabAnimeAndThrow__9daAlink_cCFv -/* 800EF508 2C 03 00 00 */ cmpwi r3, 0 -/* 800EF50C 41 82 00 10 */ beq lbl_800EF51C -/* 800EF510 7F E3 FB 78 */ mr r3, r31 -/* 800EF514 48 00 2E 21 */ bl procHorseGrabMoveInit__9daAlink_cFv -/* 800EF518 48 00 00 6C */ b lbl_800EF584 -lbl_800EF51C: -/* 800EF51C A0 9F 2F E8 */ lhz r4, 0x2fe8(r31) -/* 800EF520 28 04 00 4D */ cmplwi r4, 0x4d -/* 800EF524 40 82 00 10 */ bne lbl_800EF534 -/* 800EF528 7F E3 FB 78 */ mr r3, r31 -/* 800EF52C 48 00 38 59 */ bl procHorseComebackInit__9daAlink_cFv -/* 800EF530 48 00 00 54 */ b lbl_800EF584 -lbl_800EF534: -/* 800EF534 28 04 00 3E */ cmplwi r4, 0x3e -/* 800EF538 40 82 00 2C */ bne lbl_800EF564 -/* 800EF53C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800EF540 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800EF544 80 63 5D B8 */ lwz r3, 0x5db8(r3) -/* 800EF548 28 03 00 00 */ cmplwi r3, 0 -/* 800EF54C 41 82 00 18 */ beq lbl_800EF564 -/* 800EF550 88 03 16 B4 */ lbz r0, 0x16b4(r3) -/* 800EF554 28 00 00 04 */ cmplwi r0, 4 -/* 800EF558 40 82 00 0C */ bne lbl_800EF564 -/* 800EF55C 38 60 00 01 */ li r3, 1 -/* 800EF560 48 00 00 24 */ b lbl_800EF584 -lbl_800EF564: -/* 800EF564 28 04 00 3D */ cmplwi r4, 0x3d -/* 800EF568 41 82 00 0C */ beq lbl_800EF574 -/* 800EF56C 28 04 00 43 */ cmplwi r4, 0x43 -/* 800EF570 40 82 00 0C */ bne lbl_800EF57C -lbl_800EF574: -/* 800EF574 38 60 00 00 */ li r3, 0 -/* 800EF578 48 00 00 0C */ b lbl_800EF584 -lbl_800EF57C: -/* 800EF57C 7F E3 FB 78 */ mr r3, r31 -/* 800EF580 48 00 14 01 */ bl procHorseWaitInit__9daAlink_cFv -lbl_800EF584: -/* 800EF584 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800EF588 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800EF58C 7C 08 03 A6 */ mtlr r0 -/* 800EF590 38 21 00 10 */ addi r1, r1, 0x10 -/* 800EF594 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/daAlink_searchBoar__FP10fopAc_ac_cPv.s b/asm/d/a/d_a_alink/daAlink_searchBoar__FP10fopAc_ac_cPv.s deleted file mode 100644 index c44706dad6..0000000000 --- a/asm/d/a/d_a_alink/daAlink_searchBoar__FP10fopAc_ac_cPv.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_800EC724: -/* 800EC724 A8 03 00 08 */ lha r0, 8(r3) -/* 800EC728 2C 00 00 EF */ cmpwi r0, 0xef -/* 800EC72C 40 82 00 24 */ bne lbl_800EC750 -/* 800EC730 80 83 05 E0 */ lwz r4, 0x5e0(r3) -/* 800EC734 28 04 00 00 */ cmplwi r4, 0 -/* 800EC738 41 82 00 0C */ beq lbl_800EC744 -/* 800EC73C 80 04 00 04 */ lwz r0, 4(r4) -/* 800EC740 48 00 00 08 */ b lbl_800EC748 -lbl_800EC744: -/* 800EC744 38 00 00 00 */ li r0, 0 -lbl_800EC748: -/* 800EC748 28 00 00 00 */ cmplwi r0, 0 -/* 800EC74C 4C 82 00 20 */ bnelr -lbl_800EC750: -/* 800EC750 38 60 00 00 */ li r3, 0 -/* 800EC754 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/horseGetOffEnd__9daAlink_cFv.s b/asm/d/a/d_a_alink/horseGetOffEnd__9daAlink_cFv.s deleted file mode 100644 index 955ee52a45..0000000000 --- a/asm/d/a/d_a_alink/horseGetOffEnd__9daAlink_cFv.s +++ /dev/null @@ -1,50 +0,0 @@ -lbl_800EF394: -/* 800EF394 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800EF398 7C 08 02 A6 */ mflr r0 -/* 800EF39C 90 01 00 14 */ stw r0, 0x14(r1) -/* 800EF3A0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800EF3A4 7C 7F 1B 78 */ mr r31, r3 -/* 800EF3A8 88 03 2F C0 */ lbz r0, 0x2fc0(r3) -/* 800EF3AC 28 00 00 00 */ cmplwi r0, 0 -/* 800EF3B0 40 82 00 34 */ bne lbl_800EF3E4 -/* 800EF3B4 A8 9F 04 E6 */ lha r4, 0x4e6(r31) -/* 800EF3B8 38 04 C0 00 */ addi r0, r4, -16384 -/* 800EF3BC B0 1F 04 E6 */ sth r0, 0x4e6(r31) -/* 800EF3C0 38 80 00 00 */ li r4, 0 -/* 800EF3C4 38 A0 40 00 */ li r5, 0x4000 -/* 800EF3C8 38 C0 00 00 */ li r6, 0 -/* 800EF3CC 4B FB E7 AD */ bl setOldRootQuaternion__9daAlink_cFsss -/* 800EF3D0 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 800EF3D4 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 800EF3D8 38 80 C0 00 */ li r4, -16384 -/* 800EF3DC 4B F1 D0 01 */ bl mDoMtx_YrotS__FPA4_fs -/* 800EF3E0 48 00 00 30 */ b lbl_800EF410 -lbl_800EF3E4: -/* 800EF3E4 A8 9F 04 E6 */ lha r4, 0x4e6(r31) -/* 800EF3E8 38 04 40 00 */ addi r0, r4, 0x4000 -/* 800EF3EC B0 1F 04 E6 */ sth r0, 0x4e6(r31) -/* 800EF3F0 38 80 00 00 */ li r4, 0 -/* 800EF3F4 38 A0 C0 00 */ li r5, -16384 -/* 800EF3F8 38 C0 00 00 */ li r6, 0 -/* 800EF3FC 4B FB E7 7D */ bl setOldRootQuaternion__9daAlink_cFsss -/* 800EF400 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 800EF404 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 800EF408 38 80 40 00 */ li r4, 0x4000 -/* 800EF40C 4B F1 CF D1 */ bl mDoMtx_YrotS__FPA4_fs -lbl_800EF410: -/* 800EF410 80 7F 20 60 */ lwz r3, 0x2060(r31) -/* 800EF414 80 83 00 1C */ lwz r4, 0x1c(r3) -/* 800EF418 3C 60 80 42 */ lis r3, l_waitBaseAnime@ha /* 0x80425514@ha */ -/* 800EF41C C4 03 55 14 */ lfsu f0, l_waitBaseAnime@l(r3) /* 0x80425514@l */ -/* 800EF420 D0 04 00 14 */ stfs f0, 0x14(r4) -/* 800EF424 C0 03 00 08 */ lfs f0, 8(r3) -/* 800EF428 D0 04 00 1C */ stfs f0, 0x1c(r4) -/* 800EF42C A8 1F 04 E6 */ lha r0, 0x4e6(r31) -/* 800EF430 B0 1F 04 DE */ sth r0, 0x4de(r31) -/* 800EF434 A8 1F 04 E6 */ lha r0, 0x4e6(r31) -/* 800EF438 B0 1F 2F E4 */ sth r0, 0x2fe4(r31) -/* 800EF43C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800EF440 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800EF444 7C 08 03 A6 */ mtlr r0 -/* 800EF448 38 21 00 10 */ addi r1, r1, 0x10 -/* 800EF44C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/initForceRideBoar__9daAlink_cFv.s b/asm/d/a/d_a_alink/initForceRideBoar__9daAlink_cFv.s deleted file mode 100644 index 848b3e0d1e..0000000000 --- a/asm/d/a/d_a_alink/initForceRideBoar__9daAlink_cFv.s +++ /dev/null @@ -1,46 +0,0 @@ -lbl_800ECAAC: -/* 800ECAAC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800ECAB0 7C 08 02 A6 */ mflr r0 -/* 800ECAB4 90 01 00 14 */ stw r0, 0x14(r1) -/* 800ECAB8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800ECABC 93 C1 00 08 */ stw r30, 8(r1) -/* 800ECAC0 7C 7E 1B 78 */ mr r30, r3 -/* 800ECAC4 3C 60 80 0F */ lis r3, daAlink_searchBoar__FP10fopAc_ac_cPv@ha /* 0x800EC724@ha */ -/* 800ECAC8 38 63 C7 24 */ addi r3, r3, daAlink_searchBoar__FP10fopAc_ac_cPv@l /* 0x800EC724@l */ -/* 800ECACC 38 80 00 00 */ li r4, 0 -/* 800ECAD0 4B F2 CD 29 */ bl fopAcIt_Judge__FPFPvPv_PvPv -/* 800ECAD4 7C 7F 1B 79 */ or. r31, r3, r3 -/* 800ECAD8 40 82 00 0C */ bne lbl_800ECAE4 -/* 800ECADC 38 60 00 00 */ li r3, 0 -/* 800ECAE0 48 00 00 60 */ b lbl_800ECB40 -lbl_800ECAE4: -/* 800ECAE4 7F C3 F3 78 */ mr r3, r30 -/* 800ECAE8 4B FF FF 55 */ bl commonInitForceRideRein__9daAlink_cFv -/* 800ECAEC C0 1E 04 D0 */ lfs f0, 0x4d0(r30) -/* 800ECAF0 D0 1F 04 D0 */ stfs f0, 0x4d0(r31) -/* 800ECAF4 C0 1E 04 D4 */ lfs f0, 0x4d4(r30) -/* 800ECAF8 D0 1F 04 D4 */ stfs f0, 0x4d4(r31) -/* 800ECAFC C0 1E 04 D8 */ lfs f0, 0x4d8(r30) -/* 800ECB00 D0 1F 04 D8 */ stfs f0, 0x4d8(r31) -/* 800ECB04 A8 1E 04 E6 */ lha r0, 0x4e6(r30) -/* 800ECB08 B0 1F 04 E6 */ sth r0, 0x4e6(r31) -/* 800ECB0C A8 1E 04 E6 */ lha r0, 0x4e6(r30) -/* 800ECB10 B0 1F 04 DE */ sth r0, 0x4de(r31) -/* 800ECB14 38 00 00 02 */ li r0, 2 -/* 800ECB18 98 1E 2F AA */ stb r0, 0x2faa(r30) -/* 800ECB1C 38 7E 28 14 */ addi r3, r30, 0x2814 -/* 800ECB20 7F E4 FB 78 */ mr r4, r31 -/* 800ECB24 48 07 21 95 */ bl setData__16daPy_actorKeep_cFP10fopAc_ac_c -/* 800ECB28 3C 60 80 42 */ lis r3, l_boarBaseAnime@ha /* 0x804255A4@ha */ -/* 800ECB2C 38 03 55 A4 */ addi r0, r3, l_boarBaseAnime@l /* 0x804255A4@l */ -/* 800ECB30 90 1E 38 4C */ stw r0, 0x384c(r30) -/* 800ECB34 7F E3 FB 78 */ mr r3, r31 -/* 800ECB38 4B F4 B1 79 */ bl setPlayerRide__10e_wb_classFv -/* 800ECB3C 38 60 00 01 */ li r3, 1 -lbl_800ECB40: -/* 800ECB40 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800ECB44 83 C1 00 08 */ lwz r30, 8(r1) -/* 800ECB48 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800ECB4C 7C 08 03 A6 */ mtlr r0 -/* 800ECB50 38 21 00 10 */ addi r1, r1, 0x10 -/* 800ECB54 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseBoomerangMoveInit__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseBoomerangMoveInit__9daAlink_cFv.s deleted file mode 100644 index 99df589680..0000000000 --- a/asm/d/a/d_a_alink/procHorseBoomerangMoveInit__9daAlink_cFv.s +++ /dev/null @@ -1,32 +0,0 @@ -lbl_800F25B4: -/* 800F25B4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F25B8 7C 08 02 A6 */ mflr r0 -/* 800F25BC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F25C0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F25C4 7C 7F 1B 78 */ mr r31, r3 -/* 800F25C8 38 80 00 49 */ li r4, 0x49 -/* 800F25CC 4B FD 07 D9 */ bl commonProcInitNotSameProc__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 800F25D0 2C 03 00 00 */ cmpwi r3, 0 -/* 800F25D4 40 82 00 0C */ bne lbl_800F25E0 -/* 800F25D8 38 60 00 00 */ li r3, 0 -/* 800F25DC 48 00 00 38 */ b lbl_800F2614 -lbl_800F25E0: -/* 800F25E0 7F E3 FB 78 */ mr r3, r31 -/* 800F25E4 4B FF B4 41 */ bl setSyncRidePos__9daAlink_cFv -/* 800F25E8 7F E3 FB 78 */ mr r3, r31 -/* 800F25EC 4B FF C7 AD */ bl setBaseRideAnime__9daAlink_cFv -/* 800F25F0 7F E3 FB 78 */ mr r3, r31 -/* 800F25F4 38 80 00 00 */ li r4, 0 -/* 800F25F8 4B FE DD D9 */ bl initBoomerangUpperAnimeSpeed__9daAlink_cFi -/* 800F25FC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800F2600 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800F2604 80 03 5F 18 */ lwz r0, 0x5f18(r3) -/* 800F2608 64 00 00 08 */ oris r0, r0, 8 -/* 800F260C 90 03 5F 18 */ stw r0, 0x5f18(r3) -/* 800F2610 38 60 00 01 */ li r3, 1 -lbl_800F2614: -/* 800F2614 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F2618 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F261C 7C 08 03 A6 */ mtlr r0 -/* 800F2620 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F2624 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseBoomerangMove__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseBoomerangMove__9daAlink_cFv.s deleted file mode 100644 index 7595838ddc..0000000000 --- a/asm/d/a/d_a_alink/procHorseBoomerangMove__9daAlink_cFv.s +++ /dev/null @@ -1,60 +0,0 @@ -lbl_800F2628: -/* 800F2628 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F262C 7C 08 02 A6 */ mflr r0 -/* 800F2630 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F2634 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F2638 7C 7F 1B 78 */ mr r31, r3 -/* 800F263C 4B FC 4C A9 */ bl checkItemActorPointer__9daAlink_cFv -/* 800F2640 2C 03 00 00 */ cmpwi r3, 0 -/* 800F2644 40 82 00 0C */ bne lbl_800F2650 -/* 800F2648 38 60 00 01 */ li r3, 1 -/* 800F264C 48 00 00 94 */ b lbl_800F26E0 -lbl_800F2650: -/* 800F2650 38 60 00 00 */ li r3, 0 -/* 800F2654 A0 1F 2F DC */ lhz r0, 0x2fdc(r31) -/* 800F2658 28 00 00 40 */ cmplwi r0, 0x40 -/* 800F265C 41 82 00 0C */ beq lbl_800F2668 -/* 800F2660 28 00 01 02 */ cmplwi r0, 0x102 -/* 800F2664 40 82 00 14 */ bne lbl_800F2678 -lbl_800F2668: -/* 800F2668 A0 1F 1F BC */ lhz r0, 0x1fbc(r31) -/* 800F266C 28 00 00 54 */ cmplwi r0, 0x54 -/* 800F2670 40 82 00 08 */ bne lbl_800F2678 -/* 800F2674 38 60 00 01 */ li r3, 1 -lbl_800F2678: -/* 800F2678 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800F267C 41 82 00 10 */ beq lbl_800F268C -/* 800F2680 7F E3 FB 78 */ mr r3, r31 -/* 800F2684 38 80 00 12 */ li r4, 0x12 -/* 800F2688 4B FC 0B C9 */ bl setDoStatus__9daAlink_cFUc -lbl_800F268C: -/* 800F268C 7F E3 FB 78 */ mr r3, r31 -/* 800F2690 4B FF B3 95 */ bl setSyncRidePos__9daAlink_cFv -/* 800F2694 2C 03 00 00 */ cmpwi r3, 0 -/* 800F2698 40 82 00 0C */ bne lbl_800F26A4 -/* 800F269C 38 60 00 01 */ li r3, 1 -/* 800F26A0 48 00 00 40 */ b lbl_800F26E0 -lbl_800F26A4: -/* 800F26A4 7F E3 FB 78 */ mr r3, r31 -/* 800F26A8 4B FF B6 C5 */ bl checkHorseSpecialProc__9daAlink_cFv -/* 800F26AC 2C 03 00 00 */ cmpwi r3, 0 -/* 800F26B0 41 82 00 0C */ beq lbl_800F26BC -/* 800F26B4 38 60 00 01 */ li r3, 1 -/* 800F26B8 48 00 00 28 */ b lbl_800F26E0 -lbl_800F26BC: -/* 800F26BC 7F E3 FB 78 */ mr r3, r31 -/* 800F26C0 4B FF C6 D9 */ bl setBaseRideAnime__9daAlink_cFv -/* 800F26C4 7F E3 FB 78 */ mr r3, r31 -/* 800F26C8 4B FF CD 89 */ bl checkNextActionHorse__9daAlink_cFv -/* 800F26CC 2C 03 00 00 */ cmpwi r3, 0 -/* 800F26D0 40 82 00 0C */ bne lbl_800F26DC -/* 800F26D4 7F E3 FB 78 */ mr r3, r31 -/* 800F26D8 4B FF C9 79 */ bl setBodyAngleRideReadyAnime__9daAlink_cFv -lbl_800F26DC: -/* 800F26DC 38 60 00 01 */ li r3, 1 -lbl_800F26E0: -/* 800F26E0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F26E4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F26E8 7C 08 03 A6 */ mtlr r0 -/* 800F26EC 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F26F0 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseBoomerangSubjectInit__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseBoomerangSubjectInit__9daAlink_cFv.s deleted file mode 100644 index ae557a981f..0000000000 --- a/asm/d/a/d_a_alink/procHorseBoomerangSubjectInit__9daAlink_cFv.s +++ /dev/null @@ -1,32 +0,0 @@ -lbl_800F2454: -/* 800F2454 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F2458 7C 08 02 A6 */ mflr r0 -/* 800F245C 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F2460 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F2464 7C 7F 1B 78 */ mr r31, r3 -/* 800F2468 38 80 00 48 */ li r4, 0x48 -/* 800F246C 4B FD 09 39 */ bl commonProcInitNotSameProc__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 800F2470 2C 03 00 00 */ cmpwi r3, 0 -/* 800F2474 40 82 00 0C */ bne lbl_800F2480 -/* 800F2478 38 60 00 00 */ li r3, 0 -/* 800F247C 48 00 00 38 */ b lbl_800F24B4 -lbl_800F2480: -/* 800F2480 7F E3 FB 78 */ mr r3, r31 -/* 800F2484 4B FF B5 A1 */ bl setSyncRidePos__9daAlink_cFv -/* 800F2488 7F E3 FB 78 */ mr r3, r31 -/* 800F248C 4B FF C9 0D */ bl setBaseRideAnime__9daAlink_cFv -/* 800F2490 7F E3 FB 78 */ mr r3, r31 -/* 800F2494 38 80 00 01 */ li r4, 1 -/* 800F2498 4B FE DF 39 */ bl initBoomerangUpperAnimeSpeed__9daAlink_cFi -/* 800F249C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800F24A0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800F24A4 80 03 5F 18 */ lwz r0, 0x5f18(r3) -/* 800F24A8 64 00 00 08 */ oris r0, r0, 8 -/* 800F24AC 90 03 5F 18 */ stw r0, 0x5f18(r3) -/* 800F24B0 38 60 00 01 */ li r3, 1 -lbl_800F24B4: -/* 800F24B4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F24B8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F24BC 7C 08 03 A6 */ mtlr r0 -/* 800F24C0 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F24C4 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseBoomerangSubject__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseBoomerangSubject__9daAlink_cFv.s deleted file mode 100644 index c8fdc0971e..0000000000 --- a/asm/d/a/d_a_alink/procHorseBoomerangSubject__9daAlink_cFv.s +++ /dev/null @@ -1,69 +0,0 @@ -lbl_800F24C8: -/* 800F24C8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F24CC 7C 08 02 A6 */ mflr r0 -/* 800F24D0 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F24D4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F24D8 7C 7F 1B 78 */ mr r31, r3 -/* 800F24DC 4B FC 4E 09 */ bl checkItemActorPointer__9daAlink_cFv -/* 800F24E0 2C 03 00 00 */ cmpwi r3, 0 -/* 800F24E4 40 82 00 0C */ bne lbl_800F24F0 -/* 800F24E8 38 60 00 01 */ li r3, 1 -/* 800F24EC 48 00 00 B4 */ b lbl_800F25A0 -lbl_800F24F0: -/* 800F24F0 38 60 00 00 */ li r3, 0 -/* 800F24F4 A0 1F 2F DC */ lhz r0, 0x2fdc(r31) -/* 800F24F8 28 00 00 40 */ cmplwi r0, 0x40 -/* 800F24FC 41 82 00 0C */ beq lbl_800F2508 -/* 800F2500 28 00 01 02 */ cmplwi r0, 0x102 -/* 800F2504 40 82 00 14 */ bne lbl_800F2518 -lbl_800F2508: -/* 800F2508 A0 1F 1F BC */ lhz r0, 0x1fbc(r31) -/* 800F250C 28 00 00 54 */ cmplwi r0, 0x54 -/* 800F2510 40 82 00 08 */ bne lbl_800F2518 -/* 800F2514 38 60 00 01 */ li r3, 1 -lbl_800F2518: -/* 800F2518 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800F251C 41 82 00 10 */ beq lbl_800F252C -/* 800F2520 7F E3 FB 78 */ mr r3, r31 -/* 800F2524 38 80 00 12 */ li r4, 0x12 -/* 800F2528 4B FC 0D 29 */ bl setDoStatus__9daAlink_cFUc -lbl_800F252C: -/* 800F252C 7F E3 FB 78 */ mr r3, r31 -/* 800F2530 4B FF B4 F5 */ bl setSyncRidePos__9daAlink_cFv -/* 800F2534 2C 03 00 00 */ cmpwi r3, 0 -/* 800F2538 40 82 00 0C */ bne lbl_800F2544 -/* 800F253C 38 60 00 01 */ li r3, 1 -/* 800F2540 48 00 00 60 */ b lbl_800F25A0 -lbl_800F2544: -/* 800F2544 7F E3 FB 78 */ mr r3, r31 -/* 800F2548 4B FF B8 25 */ bl checkHorseSpecialProc__9daAlink_cFv -/* 800F254C 2C 03 00 00 */ cmpwi r3, 0 -/* 800F2550 41 82 00 0C */ beq lbl_800F255C -/* 800F2554 38 60 00 01 */ li r3, 1 -/* 800F2558 48 00 00 48 */ b lbl_800F25A0 -lbl_800F255C: -/* 800F255C 7F E3 FB 78 */ mr r3, r31 -/* 800F2560 4B FF C8 39 */ bl setBaseRideAnime__9daAlink_cFv -/* 800F2564 7F E3 FB 78 */ mr r3, r31 -/* 800F2568 4B FF CE E9 */ bl checkNextActionHorse__9daAlink_cFv -/* 800F256C 2C 03 00 00 */ cmpwi r3, 0 -/* 800F2570 40 82 00 24 */ bne lbl_800F2594 -/* 800F2574 7F E3 FB 78 */ mr r3, r31 -/* 800F2578 A8 9F 04 DE */ lha r4, 0x4de(r31) -/* 800F257C 4B FF C9 B5 */ bl setRideSubjectAngle__9daAlink_cFs -/* 800F2580 2C 03 00 00 */ cmpwi r3, 0 -/* 800F2584 41 82 00 18 */ beq lbl_800F259C -/* 800F2588 7F E3 FB 78 */ mr r3, r31 -/* 800F258C 4B FE E8 D9 */ bl setBoomerangSight__9daAlink_cFv -/* 800F2590 48 00 00 0C */ b lbl_800F259C -lbl_800F2594: -/* 800F2594 38 00 00 00 */ li r0, 0 -/* 800F2598 98 1F 20 68 */ stb r0, 0x2068(r31) -lbl_800F259C: -/* 800F259C 38 60 00 01 */ li r3, 1 -lbl_800F25A0: -/* 800F25A0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F25A4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F25A8 7C 08 03 A6 */ mtlr r0 -/* 800F25AC 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F25B0 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseBottleDrink__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseBottleDrink__9daAlink_cFv.s deleted file mode 100644 index d3d1c7e323..0000000000 --- a/asm/d/a/d_a_alink/procHorseBottleDrink__9daAlink_cFv.s +++ /dev/null @@ -1,32 +0,0 @@ -lbl_800F2AD8: -/* 800F2AD8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F2ADC 7C 08 02 A6 */ mflr r0 -/* 800F2AE0 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F2AE4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F2AE8 7C 7F 1B 78 */ mr r31, r3 -/* 800F2AEC 4B FF AF 39 */ bl setSyncRidePos__9daAlink_cFv -/* 800F2AF0 2C 03 00 00 */ cmpwi r3, 0 -/* 800F2AF4 40 82 00 2C */ bne lbl_800F2B20 -/* 800F2AF8 7F E3 FB 78 */ mr r3, r31 -/* 800F2AFC 38 80 00 02 */ li r4, 2 -/* 800F2B00 C0 22 92 C4 */ lfs f1, lit_6109(r2) -/* 800F2B04 4B FB AC 21 */ bl resetUpperAnime__9daAlink_cFQ29daAlink_c13daAlink_UPPERf -/* 800F2B08 7F E3 FB 78 */ mr r3, r31 -/* 800F2B0C 4B FC CD 79 */ bl returnKeepItemData__9daAlink_cFv -/* 800F2B10 7F E3 FB 78 */ mr r3, r31 -/* 800F2B14 48 02 51 7D */ bl resetSpecialEvent__9daAlink_cFv -/* 800F2B18 38 60 00 01 */ li r3, 1 -/* 800F2B1C 48 00 00 1C */ b lbl_800F2B38 -lbl_800F2B20: -/* 800F2B20 7F E3 FB 78 */ mr r3, r31 -/* 800F2B24 4B FF C2 75 */ bl setBaseRideAnime__9daAlink_cFv -/* 800F2B28 7F E3 FB 78 */ mr r3, r31 -/* 800F2B2C 38 80 00 01 */ li r4, 1 -/* 800F2B30 48 01 BF 95 */ bl commonBottleDrink__9daAlink_cFi -/* 800F2B34 38 60 00 01 */ li r3, 1 -lbl_800F2B38: -/* 800F2B38 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F2B3C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F2B40 7C 08 03 A6 */ mtlr r0 -/* 800F2B44 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F2B48 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseBowMoveInit__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseBowMoveInit__9daAlink_cFv.s deleted file mode 100644 index bcb3c6d5ff..0000000000 --- a/asm/d/a/d_a_alink/procHorseBowMoveInit__9daAlink_cFv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_800F224C: -/* 800F224C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F2250 7C 08 02 A6 */ mflr r0 -/* 800F2254 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F2258 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F225C 7C 7F 1B 78 */ mr r31, r3 -/* 800F2260 38 80 00 46 */ li r4, 0x46 -/* 800F2264 4B FD 0B 41 */ bl commonProcInitNotSameProc__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 800F2268 2C 03 00 00 */ cmpwi r3, 0 -/* 800F226C 40 82 00 0C */ bne lbl_800F2278 -/* 800F2270 38 60 00 00 */ li r3, 0 -/* 800F2274 48 00 00 20 */ b lbl_800F2294 -lbl_800F2278: -/* 800F2278 7F E3 FB 78 */ mr r3, r31 -/* 800F227C 4B FF B7 A9 */ bl setSyncRidePos__9daAlink_cFv -/* 800F2280 7F E3 FB 78 */ mr r3, r31 -/* 800F2284 4B FF CB 15 */ bl setBaseRideAnime__9daAlink_cFv -/* 800F2288 7F E3 FB 78 */ mr r3, r31 -/* 800F228C 4B FE C9 01 */ bl setBowOrSlingStatus__9daAlink_cFv -/* 800F2290 38 60 00 01 */ li r3, 1 -lbl_800F2294: -/* 800F2294 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F2298 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F229C 7C 08 03 A6 */ mtlr r0 -/* 800F22A0 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F22A4 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseBowMove__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseBowMove__9daAlink_cFv.s deleted file mode 100644 index ae61454015..0000000000 --- a/asm/d/a/d_a_alink/procHorseBowMove__9daAlink_cFv.s +++ /dev/null @@ -1,40 +0,0 @@ -lbl_800F22A8: -/* 800F22A8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F22AC 7C 08 02 A6 */ mflr r0 -/* 800F22B0 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F22B4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F22B8 7C 7F 1B 78 */ mr r31, r3 -/* 800F22BC 38 80 00 12 */ li r4, 0x12 -/* 800F22C0 4B FC 0F 91 */ bl setDoStatus__9daAlink_cFUc -/* 800F22C4 7F E3 FB 78 */ mr r3, r31 -/* 800F22C8 4B FF B7 5D */ bl setSyncRidePos__9daAlink_cFv -/* 800F22CC 2C 03 00 00 */ cmpwi r3, 0 -/* 800F22D0 40 82 00 0C */ bne lbl_800F22DC -/* 800F22D4 38 60 00 01 */ li r3, 1 -/* 800F22D8 48 00 00 48 */ b lbl_800F2320 -lbl_800F22DC: -/* 800F22DC 7F E3 FB 78 */ mr r3, r31 -/* 800F22E0 4B FF BA 8D */ bl checkHorseSpecialProc__9daAlink_cFv -/* 800F22E4 2C 03 00 00 */ cmpwi r3, 0 -/* 800F22E8 41 82 00 0C */ beq lbl_800F22F4 -/* 800F22EC 38 60 00 01 */ li r3, 1 -/* 800F22F0 48 00 00 30 */ b lbl_800F2320 -lbl_800F22F4: -/* 800F22F4 7F E3 FB 78 */ mr r3, r31 -/* 800F22F8 4B FF CA A1 */ bl setBaseRideAnime__9daAlink_cFv -/* 800F22FC 7F E3 FB 78 */ mr r3, r31 -/* 800F2300 4B FE CB 1D */ bl cancelBowMove__9daAlink_cFv -/* 800F2304 7F E3 FB 78 */ mr r3, r31 -/* 800F2308 4B FF D1 49 */ bl checkNextActionHorse__9daAlink_cFv -/* 800F230C 2C 03 00 00 */ cmpwi r3, 0 -/* 800F2310 40 82 00 0C */ bne lbl_800F231C -/* 800F2314 7F E3 FB 78 */ mr r3, r31 -/* 800F2318 4B FF CD 39 */ bl setBodyAngleRideReadyAnime__9daAlink_cFv -lbl_800F231C: -/* 800F231C 38 60 00 01 */ li r3, 1 -lbl_800F2320: -/* 800F2320 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F2324 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F2328 7C 08 03 A6 */ mtlr r0 -/* 800F232C 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F2330 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseBowSubjectInit__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseBowSubjectInit__9daAlink_cFv.s deleted file mode 100644 index 7afd9322c3..0000000000 --- a/asm/d/a/d_a_alink/procHorseBowSubjectInit__9daAlink_cFv.s +++ /dev/null @@ -1,28 +0,0 @@ -lbl_800F2150: -/* 800F2150 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F2154 7C 08 02 A6 */ mflr r0 -/* 800F2158 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F215C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F2160 7C 7F 1B 78 */ mr r31, r3 -/* 800F2164 38 80 00 45 */ li r4, 0x45 -/* 800F2168 4B FD 0C 3D */ bl commonProcInitNotSameProc__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 800F216C 2C 03 00 00 */ cmpwi r3, 0 -/* 800F2170 40 82 00 0C */ bne lbl_800F217C -/* 800F2174 38 60 00 00 */ li r3, 0 -/* 800F2178 48 00 00 28 */ b lbl_800F21A0 -lbl_800F217C: -/* 800F217C 7F E3 FB 78 */ mr r3, r31 -/* 800F2180 4B FF B8 A5 */ bl setSyncRidePos__9daAlink_cFv -/* 800F2184 7F E3 FB 78 */ mr r3, r31 -/* 800F2188 4B FF CC 11 */ bl setBaseRideAnime__9daAlink_cFv -/* 800F218C 38 00 00 00 */ li r0, 0 -/* 800F2190 B0 1F 30 0C */ sth r0, 0x300c(r31) -/* 800F2194 7F E3 FB 78 */ mr r3, r31 -/* 800F2198 4B FE C9 F5 */ bl setBowOrSlingStatus__9daAlink_cFv -/* 800F219C 38 60 00 01 */ li r3, 1 -lbl_800F21A0: -/* 800F21A0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F21A4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F21A8 7C 08 03 A6 */ mtlr r0 -/* 800F21AC 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F21B0 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseBowSubject__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseBowSubject__9daAlink_cFv.s deleted file mode 100644 index 95fb8267e8..0000000000 --- a/asm/d/a/d_a_alink/procHorseBowSubject__9daAlink_cFv.s +++ /dev/null @@ -1,43 +0,0 @@ -lbl_800F21B4: -/* 800F21B4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F21B8 7C 08 02 A6 */ mflr r0 -/* 800F21BC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F21C0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F21C4 7C 7F 1B 78 */ mr r31, r3 -/* 800F21C8 38 80 00 12 */ li r4, 0x12 -/* 800F21CC 4B FC 10 85 */ bl setDoStatus__9daAlink_cFUc -/* 800F21D0 7F E3 FB 78 */ mr r3, r31 -/* 800F21D4 4B FF B8 51 */ bl setSyncRidePos__9daAlink_cFv -/* 800F21D8 2C 03 00 00 */ cmpwi r3, 0 -/* 800F21DC 40 82 00 0C */ bne lbl_800F21E8 -/* 800F21E0 38 60 00 01 */ li r3, 1 -/* 800F21E4 48 00 00 54 */ b lbl_800F2238 -lbl_800F21E8: -/* 800F21E8 7F E3 FB 78 */ mr r3, r31 -/* 800F21EC 4B FF BB 81 */ bl checkHorseSpecialProc__9daAlink_cFv -/* 800F21F0 2C 03 00 00 */ cmpwi r3, 0 -/* 800F21F4 41 82 00 0C */ beq lbl_800F2200 -/* 800F21F8 38 60 00 01 */ li r3, 1 -/* 800F21FC 48 00 00 3C */ b lbl_800F2238 -lbl_800F2200: -/* 800F2200 7F E3 FB 78 */ mr r3, r31 -/* 800F2204 4B FF CB 95 */ bl setBaseRideAnime__9daAlink_cFv -/* 800F2208 7F E3 FB 78 */ mr r3, r31 -/* 800F220C 4B FF D2 45 */ bl checkNextActionHorse__9daAlink_cFv -/* 800F2210 2C 03 00 00 */ cmpwi r3, 0 -/* 800F2214 40 82 00 20 */ bne lbl_800F2234 -/* 800F2218 7F E3 FB 78 */ mr r3, r31 -/* 800F221C A8 9F 04 DE */ lha r4, 0x4de(r31) -/* 800F2220 4B FF CD 11 */ bl setRideSubjectAngle__9daAlink_cFs -/* 800F2224 2C 03 00 00 */ cmpwi r3, 0 -/* 800F2228 41 82 00 0C */ beq lbl_800F2234 -/* 800F222C 7F E3 FB 78 */ mr r3, r31 -/* 800F2230 4B FE DA A9 */ bl setBowSight__9daAlink_cFv -lbl_800F2234: -/* 800F2234 38 60 00 01 */ li r3, 1 -lbl_800F2238: -/* 800F2238 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F223C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F2240 7C 08 03 A6 */ mtlr r0 -/* 800F2244 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F2248 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseComebackInit__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseComebackInit__9daAlink_cFv.s deleted file mode 100644 index 7650f9313f..0000000000 --- a/asm/d/a/d_a_alink/procHorseComebackInit__9daAlink_cFv.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_800F2D84: -/* 800F2D84 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F2D88 7C 08 02 A6 */ mflr r0 -/* 800F2D8C 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F2D90 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F2D94 7C 7F 1B 78 */ mr r31, r3 -/* 800F2D98 38 80 00 4D */ li r4, 0x4d -/* 800F2D9C 4B FD 00 09 */ bl commonProcInitNotSameProc__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 800F2DA0 2C 03 00 00 */ cmpwi r3, 0 -/* 800F2DA4 40 82 00 0C */ bne lbl_800F2DB0 -/* 800F2DA8 38 60 00 00 */ li r3, 0 -/* 800F2DAC 48 00 00 24 */ b lbl_800F2DD0 -lbl_800F2DB0: -/* 800F2DB0 7F E3 FB 78 */ mr r3, r31 -/* 800F2DB4 38 80 00 53 */ li r4, 0x53 -/* 800F2DB8 4B FB A1 C9 */ bl setSingleAnimeBase__9daAlink_cFQ29daAlink_c11daAlink_ANM -/* 800F2DBC 38 00 00 00 */ li r0, 0 -/* 800F2DC0 98 1F 2F AB */ stb r0, 0x2fab(r31) -/* 800F2DC4 7F E3 FB 78 */ mr r3, r31 -/* 800F2DC8 4B FF AC 5D */ bl setSyncRidePos__9daAlink_cFv -/* 800F2DCC 38 60 00 01 */ li r3, 1 -lbl_800F2DD0: -/* 800F2DD0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F2DD4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F2DD8 7C 08 03 A6 */ mtlr r0 -/* 800F2DDC 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F2DE0 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseComeback__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseComeback__9daAlink_cFv.s deleted file mode 100644 index 2ca2525626..0000000000 --- a/asm/d/a/d_a_alink/procHorseComeback__9daAlink_cFv.s +++ /dev/null @@ -1,70 +0,0 @@ -lbl_800F2DE4: -/* 800F2DE4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F2DE8 7C 08 02 A6 */ mflr r0 -/* 800F2DEC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F2DF0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F2DF4 93 C1 00 08 */ stw r30, 8(r1) -/* 800F2DF8 7C 7E 1B 78 */ mr r30, r3 -/* 800F2DFC 3B FE 1F D0 */ addi r31, r30, 0x1fd0 -/* 800F2E00 4B FF AC 25 */ bl setSyncRidePos__9daAlink_cFv -/* 800F2E04 7F E3 FB 78 */ mr r3, r31 -/* 800F2E08 48 06 B6 C5 */ bl checkAnmEnd__16daPy_frameCtrl_cFv -/* 800F2E0C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800F2E10 41 82 00 18 */ beq lbl_800F2E28 -/* 800F2E14 38 00 00 13 */ li r0, 0x13 -/* 800F2E18 98 1E 2F AB */ stb r0, 0x2fab(r30) -/* 800F2E1C 7F C3 F3 78 */ mr r3, r30 -/* 800F2E20 4B FF DB 61 */ bl procHorseWaitInit__9daAlink_cFv -/* 800F2E24 48 00 00 A4 */ b lbl_800F2EC8 -lbl_800F2E28: -/* 800F2E28 C0 3F 00 10 */ lfs f1, 0x10(r31) -/* 800F2E2C C0 02 94 20 */ lfs f0, lit_14619(r2) -/* 800F2E30 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 800F2E34 4C 41 13 82 */ cror 2, 1, 2 -/* 800F2E38 40 82 00 14 */ bne lbl_800F2E4C -/* 800F2E3C 88 1E 2F AB */ lbz r0, 0x2fab(r30) -/* 800F2E40 60 00 00 02 */ ori r0, r0, 2 -/* 800F2E44 98 1E 2F AB */ stb r0, 0x2fab(r30) -/* 800F2E48 48 00 00 7C */ b lbl_800F2EC4 -lbl_800F2E4C: -/* 800F2E4C C0 02 94 80 */ lfs f0, lit_16036(r2) -/* 800F2E50 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 800F2E54 4C 41 13 82 */ cror 2, 1, 2 -/* 800F2E58 40 82 00 1C */ bne lbl_800F2E74 -/* 800F2E5C 38 00 00 05 */ li r0, 5 -/* 800F2E60 98 1E 2F 93 */ stb r0, 0x2f93(r30) -/* 800F2E64 88 1E 2F AB */ lbz r0, 0x2fab(r30) -/* 800F2E68 60 00 00 10 */ ori r0, r0, 0x10 -/* 800F2E6C 98 1E 2F AB */ stb r0, 0x2fab(r30) -/* 800F2E70 48 00 00 54 */ b lbl_800F2EC4 -lbl_800F2E74: -/* 800F2E74 C0 02 94 F8 */ lfs f0, lit_20303(r2) -/* 800F2E78 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 800F2E7C 4C 41 13 82 */ cror 2, 1, 2 -/* 800F2E80 40 82 00 14 */ bne lbl_800F2E94 -/* 800F2E84 88 1E 2F AB */ lbz r0, 0x2fab(r30) -/* 800F2E88 60 00 00 01 */ ori r0, r0, 1 -/* 800F2E8C 98 1E 2F AB */ stb r0, 0x2fab(r30) -/* 800F2E90 48 00 00 34 */ b lbl_800F2EC4 -lbl_800F2E94: -/* 800F2E94 7F E3 FB 78 */ mr r3, r31 -/* 800F2E98 C0 22 93 78 */ lfs f1, lit_8676(r2) -/* 800F2E9C 48 23 55 91 */ bl checkPass__12J3DFrameCtrlFf -/* 800F2EA0 2C 03 00 00 */ cmpwi r3, 0 -/* 800F2EA4 41 82 00 20 */ beq lbl_800F2EC4 -/* 800F2EA8 7F C3 F3 78 */ mr r3, r30 -/* 800F2EAC 3C 80 00 01 */ lis r4, 0x0001 /* 0x0001000E@ha */ -/* 800F2EB0 38 84 00 0E */ addi r4, r4, 0x000E /* 0x0001000E@l */ -/* 800F2EB4 81 9E 06 28 */ lwz r12, 0x628(r30) -/* 800F2EB8 81 8C 01 14 */ lwz r12, 0x114(r12) -/* 800F2EBC 7D 89 03 A6 */ mtctr r12 -/* 800F2EC0 4E 80 04 21 */ bctrl -lbl_800F2EC4: -/* 800F2EC4 38 60 00 01 */ li r3, 1 -lbl_800F2EC8: -/* 800F2EC8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F2ECC 83 C1 00 08 */ lwz r30, 8(r1) -/* 800F2ED0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F2ED4 7C 08 03 A6 */ mtlr r0 -/* 800F2ED8 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F2EDC 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseCutChargeReadyInit__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseCutChargeReadyInit__9daAlink_cFv.s deleted file mode 100644 index b089a47220..0000000000 --- a/asm/d/a/d_a_alink/procHorseCutChargeReadyInit__9daAlink_cFv.s +++ /dev/null @@ -1,48 +0,0 @@ -lbl_800F1894: -/* 800F1894 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F1898 7C 08 02 A6 */ mflr r0 -/* 800F189C 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F18A0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F18A4 7C 7F 1B 78 */ mr r31, r3 -/* 800F18A8 38 80 00 42 */ li r4, 0x42 -/* 800F18AC 4B FD 06 C1 */ bl commonProcInit__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 800F18B0 7F E3 FB 78 */ mr r3, r31 -/* 800F18B4 38 80 00 96 */ li r4, 0x96 -/* 800F18B8 38 A0 00 02 */ li r5, 2 -/* 800F18BC 3C C0 80 39 */ lis r6, m__25daAlinkHIO_hoCutCharge_c0@ha /* 0x8038DC9C@ha */ -/* 800F18C0 38 C6 DC 9C */ addi r6, r6, m__25daAlinkHIO_hoCutCharge_c0@l /* 0x8038DC9C@l */ -/* 800F18C4 4B FB BE 2D */ bl setUpperAnimeParam__9daAlink_cFUsQ29daAlink_c13daAlink_UPPERPC16daAlinkHIO_anm_c -/* 800F18C8 7F E3 FB 78 */ mr r3, r31 -/* 800F18CC 38 80 00 E8 */ li r4, 0xe8 -/* 800F18D0 38 A0 00 01 */ li r5, 1 -/* 800F18D4 3C C0 00 01 */ lis r6, 0x0001 /* 0x0000FFFF@ha */ -/* 800F18D8 38 C6 FF FF */ addi r6, r6, 0xFFFF /* 0x0000FFFF@l */ -/* 800F18DC 4B FB DB D5 */ bl setFaceBck__9daAlink_cFUsiUs -/* 800F18E0 38 00 00 02 */ li r0, 2 -/* 800F18E4 98 1F 2F 96 */ stb r0, 0x2f96(r31) -/* 800F18E8 7F E3 FB 78 */ mr r3, r31 -/* 800F18EC 38 80 00 01 */ li r4, 1 -/* 800F18F0 4B FF D0 29 */ bl setSyncRide__9daAlink_cFi -/* 800F18F4 A0 1F 1F 80 */ lhz r0, 0x1f80(r31) -/* 800F18F8 28 00 00 19 */ cmplwi r0, 0x19 -/* 800F18FC 40 82 00 14 */ bne lbl_800F1910 -/* 800F1900 7F E3 FB 78 */ mr r3, r31 -/* 800F1904 38 80 00 02 */ li r4, 2 -/* 800F1908 C0 22 92 BC */ lfs f1, lit_6041(r2) -/* 800F190C 4B FB C1 E1 */ bl resetUnderAnime__9daAlink_cFQ29daAlink_c13daAlink_UNDERf -lbl_800F1910: -/* 800F1910 3C 60 80 39 */ lis r3, m__17daAlinkHIO_cut_c0@ha /* 0x8038DE8C@ha */ -/* 800F1914 38 63 DE 8C */ addi r3, r3, m__17daAlinkHIO_cut_c0@l /* 0x8038DE8C@l */ -/* 800F1918 A8 03 00 56 */ lha r0, 0x56(r3) -/* 800F191C B0 1F 30 0C */ sth r0, 0x300c(r31) -/* 800F1920 38 00 00 00 */ li r0, 0 -/* 800F1924 B0 1F 30 04 */ sth r0, 0x3004(r31) -/* 800F1928 80 1F 05 74 */ lwz r0, 0x574(r31) -/* 800F192C 64 00 10 00 */ oris r0, r0, 0x1000 -/* 800F1930 90 1F 05 74 */ stw r0, 0x574(r31) -/* 800F1934 38 60 00 01 */ li r3, 1 -/* 800F1938 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F193C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F1940 7C 08 03 A6 */ mtlr r0 -/* 800F1944 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F1948 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseGetKeyInit__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseGetKeyInit__9daAlink_cFv.s deleted file mode 100644 index 228ca480de..0000000000 --- a/asm/d/a/d_a_alink/procHorseGetKeyInit__9daAlink_cFv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_800F36E4: -/* 800F36E4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F36E8 7C 08 02 A6 */ mflr r0 -/* 800F36EC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F36F0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F36F4 7C 7F 1B 78 */ mr r31, r3 -/* 800F36F8 38 80 00 51 */ li r4, 0x51 -/* 800F36FC 4B FC F6 A9 */ bl commonProcInitNotSameProc__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 800F3700 2C 03 00 00 */ cmpwi r3, 0 -/* 800F3704 40 82 00 0C */ bne lbl_800F3710 -/* 800F3708 38 60 00 00 */ li r3, 0 -/* 800F370C 48 00 00 34 */ b lbl_800F3740 -lbl_800F3710: -/* 800F3710 7F E3 FB 78 */ mr r3, r31 -/* 800F3714 38 80 00 00 */ li r4, 0 -/* 800F3718 38 A0 00 00 */ li r5, 0 -/* 800F371C 4B FC DB C1 */ bl deleteEquipItem__9daAlink_cFii -/* 800F3720 7F E3 FB 78 */ mr r3, r31 -/* 800F3724 38 80 01 7E */ li r4, 0x17e -/* 800F3728 4B FB 98 59 */ bl setSingleAnimeBase__9daAlink_cFQ29daAlink_c11daAlink_ANM -/* 800F372C 7F E3 FB 78 */ mr r3, r31 -/* 800F3730 4B FF A2 F5 */ bl setSyncRidePos__9daAlink_cFv -/* 800F3734 38 00 00 00 */ li r0, 0 -/* 800F3738 B0 1F 30 0C */ sth r0, 0x300c(r31) -/* 800F373C 38 60 00 01 */ li r3, 1 -lbl_800F3740: -/* 800F3740 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F3744 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F3748 7C 08 03 A6 */ mtlr r0 -/* 800F374C 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F3750 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseGetKey__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseGetKey__9daAlink_cFv.s deleted file mode 100644 index 2699e2e3ff..0000000000 --- a/asm/d/a/d_a_alink/procHorseGetKey__9daAlink_cFv.s +++ /dev/null @@ -1,54 +0,0 @@ -lbl_800F3754: -/* 800F3754 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F3758 7C 08 02 A6 */ mflr r0 -/* 800F375C 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F3760 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F3764 93 C1 00 08 */ stw r30, 8(r1) -/* 800F3768 7C 7E 1B 78 */ mr r30, r3 -/* 800F376C 3B FE 1F D0 */ addi r31, r30, 0x1fd0 -/* 800F3770 4B FF A2 B5 */ bl setSyncRidePos__9daAlink_cFv -/* 800F3774 7F E3 FB 78 */ mr r3, r31 -/* 800F3778 48 06 AD 55 */ bl checkAnmEnd__16daPy_frameCtrl_cFv -/* 800F377C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800F3780 41 82 00 1C */ beq lbl_800F379C -/* 800F3784 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800F3788 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800F378C 38 63 4F F8 */ addi r3, r3, 0x4ff8 -/* 800F3790 80 9E 31 84 */ lwz r4, 0x3184(r30) -/* 800F3794 4B F5 49 E9 */ bl cutEnd__16dEvent_manager_cFi -/* 800F3798 48 00 00 64 */ b lbl_800F37FC -lbl_800F379C: -/* 800F379C C0 3F 00 10 */ lfs f1, 0x10(r31) -/* 800F37A0 C0 02 94 88 */ lfs f0, lit_16038(r2) -/* 800F37A4 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 800F37A8 4C 41 13 82 */ cror 2, 1, 2 -/* 800F37AC 40 82 00 1C */ bne lbl_800F37C8 -/* 800F37B0 38 00 00 FE */ li r0, 0xfe -/* 800F37B4 98 1E 2F 92 */ stb r0, 0x2f92(r30) -/* 800F37B8 98 1E 2F 93 */ stb r0, 0x2f93(r30) -/* 800F37BC 38 00 00 01 */ li r0, 1 -/* 800F37C0 B0 1E 30 0C */ sth r0, 0x300c(r30) -/* 800F37C4 48 00 00 38 */ b lbl_800F37FC -lbl_800F37C8: -/* 800F37C8 C0 02 93 1C */ lfs f0, lit_7448(r2) -/* 800F37CC FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 800F37D0 4C 41 13 82 */ cror 2, 1, 2 -/* 800F37D4 40 82 00 10 */ bne lbl_800F37E4 -/* 800F37D8 38 00 00 02 */ li r0, 2 -/* 800F37DC 98 1E 2F 92 */ stb r0, 0x2f92(r30) -/* 800F37E0 48 00 00 1C */ b lbl_800F37FC -lbl_800F37E4: -/* 800F37E4 C0 02 93 3C */ lfs f0, lit_7808(r2) -/* 800F37E8 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 800F37EC 4C 41 13 82 */ cror 2, 1, 2 -/* 800F37F0 40 82 00 0C */ bne lbl_800F37FC -/* 800F37F4 38 00 00 03 */ li r0, 3 -/* 800F37F8 98 1E 2F 92 */ stb r0, 0x2f92(r30) -lbl_800F37FC: -/* 800F37FC 38 60 00 01 */ li r3, 1 -/* 800F3800 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F3804 83 C1 00 08 */ lwz r30, 8(r1) -/* 800F3808 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F380C 7C 08 03 A6 */ mtlr r0 -/* 800F3810 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F3814 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseGrabMoveInit__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseGrabMoveInit__9daAlink_cFv.s deleted file mode 100644 index 8b173aaee5..0000000000 --- a/asm/d/a/d_a_alink/procHorseGrabMoveInit__9daAlink_cFv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_800F2334: -/* 800F2334 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F2338 7C 08 02 A6 */ mflr r0 -/* 800F233C 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F2340 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F2344 7C 7F 1B 78 */ mr r31, r3 -/* 800F2348 38 80 00 47 */ li r4, 0x47 -/* 800F234C 4B FD 0A 59 */ bl commonProcInitNotSameProc__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 800F2350 2C 03 00 00 */ cmpwi r3, 0 -/* 800F2354 40 82 00 0C */ bne lbl_800F2360 -/* 800F2358 38 60 00 00 */ li r3, 0 -/* 800F235C 48 00 00 20 */ b lbl_800F237C -lbl_800F2360: -/* 800F2360 7F E3 FB 78 */ mr r3, r31 -/* 800F2364 4B FF B6 C1 */ bl setSyncRidePos__9daAlink_cFv -/* 800F2368 7F E3 FB 78 */ mr r3, r31 -/* 800F236C 4B FF CA 2D */ bl setBaseRideAnime__9daAlink_cFv -/* 800F2370 38 00 00 00 */ li r0, 0 -/* 800F2374 B0 1F 30 04 */ sth r0, 0x3004(r31) -/* 800F2378 38 60 00 01 */ li r3, 1 -lbl_800F237C: -/* 800F237C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F2380 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F2384 7C 08 03 A6 */ mtlr r0 -/* 800F2388 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F238C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseGrabMove__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseGrabMove__9daAlink_cFv.s deleted file mode 100644 index 29a7d04fd6..0000000000 --- a/asm/d/a/d_a_alink/procHorseGrabMove__9daAlink_cFv.s +++ /dev/null @@ -1,56 +0,0 @@ -lbl_800F2390: -/* 800F2390 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F2394 7C 08 02 A6 */ mflr r0 -/* 800F2398 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F239C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F23A0 7C 7F 1B 78 */ mr r31, r3 -/* 800F23A4 4B FF B6 81 */ bl setSyncRidePos__9daAlink_cFv -/* 800F23A8 2C 03 00 00 */ cmpwi r3, 0 -/* 800F23AC 40 82 00 0C */ bne lbl_800F23B8 -/* 800F23B0 38 60 00 01 */ li r3, 1 -/* 800F23B4 48 00 00 8C */ b lbl_800F2440 -lbl_800F23B8: -/* 800F23B8 7F E3 FB 78 */ mr r3, r31 -/* 800F23BC 4B FF B9 B1 */ bl checkHorseSpecialProc__9daAlink_cFv -/* 800F23C0 2C 03 00 00 */ cmpwi r3, 0 -/* 800F23C4 41 82 00 0C */ beq lbl_800F23D0 -/* 800F23C8 38 60 00 01 */ li r3, 1 -/* 800F23CC 48 00 00 74 */ b lbl_800F2440 -lbl_800F23D0: -/* 800F23D0 80 1F 28 30 */ lwz r0, 0x2830(r31) -/* 800F23D4 28 00 00 00 */ cmplwi r0, 0 -/* 800F23D8 40 82 00 24 */ bne lbl_800F23FC -/* 800F23DC 7F E3 FB 78 */ mr r3, r31 -/* 800F23E0 4B FF 18 8D */ bl checkGrabAnime__9daAlink_cCFv -/* 800F23E4 2C 03 00 00 */ cmpwi r3, 0 -/* 800F23E8 41 82 00 14 */ beq lbl_800F23FC -/* 800F23EC 7F E3 FB 78 */ mr r3, r31 -/* 800F23F0 38 80 00 02 */ li r4, 2 -/* 800F23F4 C0 22 93 24 */ lfs f1, lit_7450(r2) -/* 800F23F8 4B FB B3 2D */ bl resetUpperAnime__9daAlink_cFQ29daAlink_c13daAlink_UPPERf -lbl_800F23FC: -/* 800F23FC 7F E3 FB 78 */ mr r3, r31 -/* 800F2400 4B FF C9 99 */ bl setBaseRideAnime__9daAlink_cFv -/* 800F2404 7F E3 FB 78 */ mr r3, r31 -/* 800F2408 4B FF 18 15 */ bl checkGrabThrowAnime__9daAlink_cCFv -/* 800F240C 2C 03 00 00 */ cmpwi r3, 0 -/* 800F2410 41 82 00 24 */ beq lbl_800F2434 -/* 800F2414 7F E3 FB 78 */ mr r3, r31 -/* 800F2418 C0 22 93 24 */ lfs f1, lit_7450(r2) -/* 800F241C 4B FF 33 91 */ bl checkUpperGrabItemThrow__9daAlink_cFf -/* 800F2420 2C 03 00 00 */ cmpwi r3, 0 -/* 800F2424 41 82 00 18 */ beq lbl_800F243C -/* 800F2428 7F E3 FB 78 */ mr r3, r31 -/* 800F242C 4B FF E5 55 */ bl procHorseWaitInit__9daAlink_cFv -/* 800F2430 48 00 00 0C */ b lbl_800F243C -lbl_800F2434: -/* 800F2434 7F E3 FB 78 */ mr r3, r31 -/* 800F2438 4B FF D0 19 */ bl checkNextActionHorse__9daAlink_cFv -lbl_800F243C: -/* 800F243C 38 60 00 01 */ li r3, 1 -lbl_800F2440: -/* 800F2440 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F2444 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F2448 7C 08 03 A6 */ mtlr r0 -/* 800F244C 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F2450 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseHookshotMoveInit__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseHookshotMoveInit__9daAlink_cFv.s deleted file mode 100644 index 59c7eb1ea6..0000000000 --- a/asm/d/a/d_a_alink/procHorseHookshotMoveInit__9daAlink_cFv.s +++ /dev/null @@ -1,32 +0,0 @@ -lbl_800F2824: -/* 800F2824 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F2828 7C 08 02 A6 */ mflr r0 -/* 800F282C 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F2830 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F2834 7C 7F 1B 78 */ mr r31, r3 -/* 800F2838 38 80 00 4B */ li r4, 0x4b -/* 800F283C 4B FD 05 69 */ bl commonProcInitNotSameProc__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 800F2840 2C 03 00 00 */ cmpwi r3, 0 -/* 800F2844 40 82 00 0C */ bne lbl_800F2850 -/* 800F2848 38 60 00 00 */ li r3, 0 -/* 800F284C 48 00 00 38 */ b lbl_800F2884 -lbl_800F2850: -/* 800F2850 7F E3 FB 78 */ mr r3, r31 -/* 800F2854 4B FF B1 D1 */ bl setSyncRidePos__9daAlink_cFv -/* 800F2858 7F E3 FB 78 */ mr r3, r31 -/* 800F285C 4B FF C5 3D */ bl setBaseRideAnime__9daAlink_cFv -/* 800F2860 7F E3 FB 78 */ mr r3, r31 -/* 800F2864 38 80 00 00 */ li r4, 0 -/* 800F2868 48 01 68 85 */ bl initHookshotUpperAnimeSpeed__9daAlink_cFi -/* 800F286C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800F2870 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800F2874 80 03 5F 18 */ lwz r0, 0x5f18(r3) -/* 800F2878 60 00 40 00 */ ori r0, r0, 0x4000 -/* 800F287C 90 03 5F 18 */ stw r0, 0x5f18(r3) -/* 800F2880 38 60 00 01 */ li r3, 1 -lbl_800F2884: -/* 800F2884 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F2888 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F288C 7C 08 03 A6 */ mtlr r0 -/* 800F2890 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F2894 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseHookshotMove__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseHookshotMove__9daAlink_cFv.s deleted file mode 100644 index e0e55881c3..0000000000 --- a/asm/d/a/d_a_alink/procHorseHookshotMove__9daAlink_cFv.s +++ /dev/null @@ -1,45 +0,0 @@ -lbl_800F2898: -/* 800F2898 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F289C 7C 08 02 A6 */ mflr r0 -/* 800F28A0 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F28A4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F28A8 7C 7F 1B 78 */ mr r31, r3 -/* 800F28AC 48 01 66 B9 */ bl cancelHookshotMove__9daAlink_cFv -/* 800F28B0 7F E3 FB 78 */ mr r3, r31 -/* 800F28B4 48 01 61 65 */ bl checkHookshotWait__9daAlink_cCFv -/* 800F28B8 2C 03 00 00 */ cmpwi r3, 0 -/* 800F28BC 41 82 00 10 */ beq lbl_800F28CC -/* 800F28C0 7F E3 FB 78 */ mr r3, r31 -/* 800F28C4 38 80 00 12 */ li r4, 0x12 -/* 800F28C8 4B FC 09 89 */ bl setDoStatus__9daAlink_cFUc -lbl_800F28CC: -/* 800F28CC 7F E3 FB 78 */ mr r3, r31 -/* 800F28D0 4B FF B1 55 */ bl setSyncRidePos__9daAlink_cFv -/* 800F28D4 2C 03 00 00 */ cmpwi r3, 0 -/* 800F28D8 40 82 00 0C */ bne lbl_800F28E4 -/* 800F28DC 38 60 00 01 */ li r3, 1 -/* 800F28E0 48 00 00 40 */ b lbl_800F2920 -lbl_800F28E4: -/* 800F28E4 7F E3 FB 78 */ mr r3, r31 -/* 800F28E8 4B FF B4 85 */ bl checkHorseSpecialProc__9daAlink_cFv -/* 800F28EC 2C 03 00 00 */ cmpwi r3, 0 -/* 800F28F0 41 82 00 0C */ beq lbl_800F28FC -/* 800F28F4 38 60 00 01 */ li r3, 1 -/* 800F28F8 48 00 00 28 */ b lbl_800F2920 -lbl_800F28FC: -/* 800F28FC 7F E3 FB 78 */ mr r3, r31 -/* 800F2900 4B FF C4 99 */ bl setBaseRideAnime__9daAlink_cFv -/* 800F2904 7F E3 FB 78 */ mr r3, r31 -/* 800F2908 4B FF CB 49 */ bl checkNextActionHorse__9daAlink_cFv -/* 800F290C 2C 03 00 00 */ cmpwi r3, 0 -/* 800F2910 40 82 00 0C */ bne lbl_800F291C -/* 800F2914 7F E3 FB 78 */ mr r3, r31 -/* 800F2918 4B FF C7 39 */ bl setBodyAngleRideReadyAnime__9daAlink_cFv -lbl_800F291C: -/* 800F291C 38 60 00 01 */ li r3, 1 -lbl_800F2920: -/* 800F2920 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F2924 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F2928 7C 08 03 A6 */ mtlr r0 -/* 800F292C 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F2930 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseHookshotSubjectInit__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseHookshotSubjectInit__9daAlink_cFv.s deleted file mode 100644 index a861e072b2..0000000000 --- a/asm/d/a/d_a_alink/procHorseHookshotSubjectInit__9daAlink_cFv.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_800F26F4: -/* 800F26F4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F26F8 7C 08 02 A6 */ mflr r0 -/* 800F26FC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F2700 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F2704 7C 7F 1B 78 */ mr r31, r3 -/* 800F2708 38 80 00 4A */ li r4, 0x4a -/* 800F270C 4B FD 06 99 */ bl commonProcInitNotSameProc__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 800F2710 2C 03 00 00 */ cmpwi r3, 0 -/* 800F2714 40 82 00 0C */ bne lbl_800F2720 -/* 800F2718 38 60 00 00 */ li r3, 0 -/* 800F271C 48 00 00 40 */ b lbl_800F275C -lbl_800F2720: -/* 800F2720 7F E3 FB 78 */ mr r3, r31 -/* 800F2724 4B FF B3 01 */ bl setSyncRidePos__9daAlink_cFv -/* 800F2728 7F E3 FB 78 */ mr r3, r31 -/* 800F272C 4B FF C6 6D */ bl setBaseRideAnime__9daAlink_cFv -/* 800F2730 7F E3 FB 78 */ mr r3, r31 -/* 800F2734 38 80 00 01 */ li r4, 1 -/* 800F2738 48 01 69 B5 */ bl initHookshotUpperAnimeSpeed__9daAlink_cFi -/* 800F273C 7F E3 FB 78 */ mr r3, r31 -/* 800F2740 48 01 69 31 */ bl setHookshotReadyMaterial__9daAlink_cFv -/* 800F2744 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800F2748 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800F274C 80 03 5F 18 */ lwz r0, 0x5f18(r3) -/* 800F2750 60 00 40 00 */ ori r0, r0, 0x4000 -/* 800F2754 90 03 5F 18 */ stw r0, 0x5f18(r3) -/* 800F2758 38 60 00 01 */ li r3, 1 -lbl_800F275C: -/* 800F275C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F2760 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F2764 7C 08 03 A6 */ mtlr r0 -/* 800F2768 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F276C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseHookshotSubject__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseHookshotSubject__9daAlink_cFv.s deleted file mode 100644 index d3ea5a876a..0000000000 --- a/asm/d/a/d_a_alink/procHorseHookshotSubject__9daAlink_cFv.s +++ /dev/null @@ -1,52 +0,0 @@ -lbl_800F2770: -/* 800F2770 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F2774 7C 08 02 A6 */ mflr r0 -/* 800F2778 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F277C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F2780 7C 7F 1B 78 */ mr r31, r3 -/* 800F2784 48 01 62 95 */ bl checkHookshotWait__9daAlink_cCFv -/* 800F2788 2C 03 00 00 */ cmpwi r3, 0 -/* 800F278C 41 82 00 10 */ beq lbl_800F279C -/* 800F2790 7F E3 FB 78 */ mr r3, r31 -/* 800F2794 38 80 00 12 */ li r4, 0x12 -/* 800F2798 4B FC 0A B9 */ bl setDoStatus__9daAlink_cFUc -lbl_800F279C: -/* 800F279C 7F E3 FB 78 */ mr r3, r31 -/* 800F27A0 4B FF B2 85 */ bl setSyncRidePos__9daAlink_cFv -/* 800F27A4 2C 03 00 00 */ cmpwi r3, 0 -/* 800F27A8 40 82 00 0C */ bne lbl_800F27B4 -/* 800F27AC 38 60 00 01 */ li r3, 1 -/* 800F27B0 48 00 00 60 */ b lbl_800F2810 -lbl_800F27B4: -/* 800F27B4 7F E3 FB 78 */ mr r3, r31 -/* 800F27B8 4B FF B5 B5 */ bl checkHorseSpecialProc__9daAlink_cFv -/* 800F27BC 2C 03 00 00 */ cmpwi r3, 0 -/* 800F27C0 41 82 00 0C */ beq lbl_800F27CC -/* 800F27C4 38 60 00 01 */ li r3, 1 -/* 800F27C8 48 00 00 48 */ b lbl_800F2810 -lbl_800F27CC: -/* 800F27CC 7F E3 FB 78 */ mr r3, r31 -/* 800F27D0 4B FF C5 C9 */ bl setBaseRideAnime__9daAlink_cFv -/* 800F27D4 7F E3 FB 78 */ mr r3, r31 -/* 800F27D8 4B FF CC 79 */ bl checkNextActionHorse__9daAlink_cFv -/* 800F27DC 2C 03 00 00 */ cmpwi r3, 0 -/* 800F27E0 40 82 00 24 */ bne lbl_800F2804 -/* 800F27E4 7F E3 FB 78 */ mr r3, r31 -/* 800F27E8 A8 9F 04 DE */ lha r4, 0x4de(r31) -/* 800F27EC 4B FF C7 45 */ bl setRideSubjectAngle__9daAlink_cFs -/* 800F27F0 2C 03 00 00 */ cmpwi r3, 0 -/* 800F27F4 41 82 00 18 */ beq lbl_800F280C -/* 800F27F8 7F E3 FB 78 */ mr r3, r31 -/* 800F27FC 48 01 65 B9 */ bl setHookshotSight__9daAlink_cFv -/* 800F2800 48 00 00 0C */ b lbl_800F280C -lbl_800F2804: -/* 800F2804 38 00 00 00 */ li r0, 0 -/* 800F2808 98 1F 20 68 */ stb r0, 0x2068(r31) -lbl_800F280C: -/* 800F280C 38 60 00 01 */ li r3, 1 -lbl_800F2810: -/* 800F2810 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F2814 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F2818 7C 08 03 A6 */ mtlr r0 -/* 800F281C 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F2820 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseJumpInit__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseJumpInit__9daAlink_cFv.s deleted file mode 100644 index ca4c3c6a5e..0000000000 --- a/asm/d/a/d_a_alink/procHorseJumpInit__9daAlink_cFv.s +++ /dev/null @@ -1,40 +0,0 @@ -lbl_800F1060: -/* 800F1060 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F1064 7C 08 02 A6 */ mflr r0 -/* 800F1068 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F106C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F1070 7C 7F 1B 78 */ mr r31, r3 -/* 800F1074 38 80 00 3E */ li r4, 0x3e -/* 800F1078 4B FD 0E F5 */ bl commonProcInit__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 800F107C 7F E3 FB 78 */ mr r3, r31 -/* 800F1080 81 9F 06 28 */ lwz r12, 0x628(r31) -/* 800F1084 81 8C 01 88 */ lwz r12, 0x188(r12) -/* 800F1088 7D 89 03 A6 */ mtctr r12 -/* 800F108C 4E 80 04 21 */ bctrl -/* 800F1090 28 03 00 00 */ cmplwi r3, 0 -/* 800F1094 41 82 00 14 */ beq lbl_800F10A8 -/* 800F1098 7F E3 FB 78 */ mr r3, r31 -/* 800F109C 38 80 00 02 */ li r4, 2 -/* 800F10A0 C0 22 92 BC */ lfs f1, lit_6041(r2) -/* 800F10A4 4B FB CA 49 */ bl resetUnderAnime__9daAlink_cFQ29daAlink_c13daAlink_UNDERf -lbl_800F10A8: -/* 800F10A8 7F E3 FB 78 */ mr r3, r31 -/* 800F10AC 4B FF C9 79 */ bl setSyncRidePos__9daAlink_cFv -/* 800F10B0 38 00 00 00 */ li r0, 0 -/* 800F10B4 B0 1F 30 04 */ sth r0, 0x3004(r31) -/* 800F10B8 B0 1F 30 02 */ sth r0, 0x3002(r31) -/* 800F10BC 7F E3 FB 78 */ mr r3, r31 -/* 800F10C0 4B FF C9 B9 */ bl setHorseTurnAnime__9daAlink_cFv -/* 800F10C4 7F E3 FB 78 */ mr r3, r31 -/* 800F10C8 3C 80 00 01 */ lis r4, 0x0001 /* 0x00010006@ha */ -/* 800F10CC 38 84 00 06 */ addi r4, r4, 0x0006 /* 0x00010006@l */ -/* 800F10D0 81 9F 06 28 */ lwz r12, 0x628(r31) -/* 800F10D4 81 8C 01 14 */ lwz r12, 0x114(r12) -/* 800F10D8 7D 89 03 A6 */ mtctr r12 -/* 800F10DC 4E 80 04 21 */ bctrl -/* 800F10E0 38 60 00 01 */ li r3, 1 -/* 800F10E4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F10E8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F10EC 7C 08 03 A6 */ mtlr r0 -/* 800F10F0 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F10F4 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseJump__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseJump__9daAlink_cFv.s deleted file mode 100644 index be807b641b..0000000000 --- a/asm/d/a/d_a_alink/procHorseJump__9daAlink_cFv.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_800F10F8: -/* 800F10F8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F10FC 7C 08 02 A6 */ mflr r0 -/* 800F1100 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F1104 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F1108 93 C1 00 08 */ stw r30, 8(r1) -/* 800F110C 7C 7E 1B 78 */ mr r30, r3 -/* 800F1110 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800F1114 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800F1118 83 E4 5D B8 */ lwz r31, 0x5db8(r4) -/* 800F111C 4B FF C9 09 */ bl setSyncRidePos__9daAlink_cFv -/* 800F1120 2C 03 00 00 */ cmpwi r3, 0 -/* 800F1124 40 82 00 0C */ bne lbl_800F1130 -/* 800F1128 38 60 00 01 */ li r3, 1 -/* 800F112C 48 00 00 44 */ b lbl_800F1170 -lbl_800F1130: -/* 800F1130 38 60 00 00 */ li r3, 0 -/* 800F1134 88 1F 16 B4 */ lbz r0, 0x16b4(r31) -/* 800F1138 28 00 00 05 */ cmplwi r0, 5 -/* 800F113C 40 82 00 14 */ bne lbl_800F1150 -/* 800F1140 A8 1F 17 1A */ lha r0, 0x171a(r31) -/* 800F1144 2C 00 00 00 */ cmpwi r0, 0 -/* 800F1148 40 82 00 08 */ bne lbl_800F1150 -/* 800F114C 38 60 00 01 */ li r3, 1 -lbl_800F1150: -/* 800F1150 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800F1154 41 82 00 10 */ beq lbl_800F1164 -/* 800F1158 7F C3 F3 78 */ mr r3, r30 -/* 800F115C 48 00 00 2D */ bl procHorseLandInit__9daAlink_cFv -/* 800F1160 48 00 00 0C */ b lbl_800F116C -lbl_800F1164: -/* 800F1164 7F C3 F3 78 */ mr r3, r30 -/* 800F1168 4B FF C9 11 */ bl setHorseTurnAnime__9daAlink_cFv -lbl_800F116C: -/* 800F116C 38 60 00 01 */ li r3, 1 -lbl_800F1170: -/* 800F1170 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F1174 83 C1 00 08 */ lwz r30, 8(r1) -/* 800F1178 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F117C 7C 08 03 A6 */ mtlr r0 -/* 800F1180 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F1184 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseLandInit__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseLandInit__9daAlink_cFv.s deleted file mode 100644 index 48872bc175..0000000000 --- a/asm/d/a/d_a_alink/procHorseLandInit__9daAlink_cFv.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_800F1188: -/* 800F1188 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F118C 7C 08 02 A6 */ mflr r0 -/* 800F1190 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F1194 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F1198 7C 7F 1B 78 */ mr r31, r3 -/* 800F119C 38 80 00 3F */ li r4, 0x3f -/* 800F11A0 4B FD 0D CD */ bl commonProcInit__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 800F11A4 7F E3 FB 78 */ mr r3, r31 -/* 800F11A8 81 9F 06 28 */ lwz r12, 0x628(r31) -/* 800F11AC 81 8C 01 88 */ lwz r12, 0x188(r12) -/* 800F11B0 7D 89 03 A6 */ mtctr r12 -/* 800F11B4 4E 80 04 21 */ bctrl -/* 800F11B8 28 03 00 00 */ cmplwi r3, 0 -/* 800F11BC 41 82 00 14 */ beq lbl_800F11D0 -/* 800F11C0 7F E3 FB 78 */ mr r3, r31 -/* 800F11C4 38 80 00 02 */ li r4, 2 -/* 800F11C8 C0 22 92 BC */ lfs f1, lit_6041(r2) -/* 800F11CC 4B FB C9 21 */ bl resetUnderAnime__9daAlink_cFQ29daAlink_c13daAlink_UNDERf -lbl_800F11D0: -/* 800F11D0 7F E3 FB 78 */ mr r3, r31 -/* 800F11D4 4B FF C8 51 */ bl setSyncRidePos__9daAlink_cFv -/* 800F11D8 38 00 00 00 */ li r0, 0 -/* 800F11DC B0 1F 30 04 */ sth r0, 0x3004(r31) -/* 800F11E0 B0 1F 30 02 */ sth r0, 0x3002(r31) -/* 800F11E4 7F E3 FB 78 */ mr r3, r31 -/* 800F11E8 4B FF C8 91 */ bl setHorseTurnAnime__9daAlink_cFv -/* 800F11EC 38 60 00 01 */ li r3, 1 -/* 800F11F0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F11F4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F11F8 7C 08 03 A6 */ mtlr r0 -/* 800F11FC 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F1200 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseLand__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseLand__9daAlink_cFv.s deleted file mode 100644 index 28c9db09b1..0000000000 --- a/asm/d/a/d_a_alink/procHorseLand__9daAlink_cFv.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_800F1204: -/* 800F1204 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F1208 7C 08 02 A6 */ mflr r0 -/* 800F120C 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F1210 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F1214 93 C1 00 08 */ stw r30, 8(r1) -/* 800F1218 7C 7E 1B 78 */ mr r30, r3 -/* 800F121C 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800F1220 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800F1224 83 E4 5D B8 */ lwz r31, 0x5db8(r4) -/* 800F1228 4B FF C7 FD */ bl setSyncRidePos__9daAlink_cFv -/* 800F122C 2C 03 00 00 */ cmpwi r3, 0 -/* 800F1230 40 82 00 0C */ bne lbl_800F123C -/* 800F1234 38 60 00 01 */ li r3, 1 -/* 800F1238 48 00 00 44 */ b lbl_800F127C -lbl_800F123C: -/* 800F123C 38 60 00 00 */ li r3, 0 -/* 800F1240 88 1F 16 B4 */ lbz r0, 0x16b4(r31) -/* 800F1244 28 00 00 05 */ cmplwi r0, 5 -/* 800F1248 40 82 00 14 */ bne lbl_800F125C -/* 800F124C A8 1F 17 1A */ lha r0, 0x171a(r31) -/* 800F1250 2C 00 00 00 */ cmpwi r0, 0 -/* 800F1254 40 82 00 08 */ bne lbl_800F125C -/* 800F1258 38 60 00 01 */ li r3, 1 -lbl_800F125C: -/* 800F125C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800F1260 40 82 00 10 */ bne lbl_800F1270 -/* 800F1264 7F C3 F3 78 */ mr r3, r30 -/* 800F1268 4B FF F7 19 */ bl procHorseWaitInit__9daAlink_cFv -/* 800F126C 48 00 00 0C */ b lbl_800F1278 -lbl_800F1270: -/* 800F1270 7F C3 F3 78 */ mr r3, r30 -/* 800F1274 4B FF C8 05 */ bl setHorseTurnAnime__9daAlink_cFv -lbl_800F1278: -/* 800F1278 38 60 00 01 */ li r3, 1 -lbl_800F127C: -/* 800F127C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F1280 83 C1 00 08 */ lwz r30, 8(r1) -/* 800F1284 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F1288 7C 08 03 A6 */ mtlr r0 -/* 800F128C 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F1290 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseLookDownInit__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseLookDownInit__9daAlink_cFv.s deleted file mode 100644 index 5bda7946b1..0000000000 --- a/asm/d/a/d_a_alink/procHorseLookDownInit__9daAlink_cFv.s +++ /dev/null @@ -1,35 +0,0 @@ -lbl_800F3818: -/* 800F3818 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F381C 7C 08 02 A6 */ mflr r0 -/* 800F3820 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F3824 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F3828 7C 7F 1B 78 */ mr r31, r3 -/* 800F382C 38 80 00 52 */ li r4, 0x52 -/* 800F3830 4B FC F5 75 */ bl commonProcInitNotSameProc__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 800F3834 2C 03 00 00 */ cmpwi r3, 0 -/* 800F3838 40 82 00 0C */ bne lbl_800F3844 -/* 800F383C 38 60 00 00 */ li r3, 0 -/* 800F3840 48 00 00 40 */ b lbl_800F3880 -lbl_800F3844: -/* 800F3844 A0 1F 2F DC */ lhz r0, 0x2fdc(r31) -/* 800F3848 28 00 01 03 */ cmplwi r0, 0x103 -/* 800F384C 41 82 00 1C */ beq lbl_800F3868 -/* 800F3850 7F E3 FB 78 */ mr r3, r31 -/* 800F3854 38 80 00 00 */ li r4, 0 -/* 800F3858 38 A0 00 00 */ li r5, 0 -/* 800F385C 4B FC DA 81 */ bl deleteEquipItem__9daAlink_cFii -/* 800F3860 7F E3 FB 78 */ mr r3, r31 -/* 800F3864 4B FD DA 05 */ bl setSwordModel__9daAlink_cFv -lbl_800F3868: -/* 800F3868 7F E3 FB 78 */ mr r3, r31 -/* 800F386C 38 80 01 99 */ li r4, 0x199 -/* 800F3870 4B FB 97 11 */ bl setSingleAnimeBase__9daAlink_cFQ29daAlink_c11daAlink_ANM -/* 800F3874 7F E3 FB 78 */ mr r3, r31 -/* 800F3878 4B FF A1 AD */ bl setSyncRidePos__9daAlink_cFv -/* 800F387C 38 60 00 01 */ li r3, 1 -lbl_800F3880: -/* 800F3880 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F3884 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F3888 7C 08 03 A6 */ mtlr r0 -/* 800F388C 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F3890 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseLookDown__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseLookDown__9daAlink_cFv.s deleted file mode 100644 index 0d6069ebce..0000000000 --- a/asm/d/a/d_a_alink/procHorseLookDown__9daAlink_cFv.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_800F3894: -/* 800F3894 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F3898 7C 08 02 A6 */ mflr r0 -/* 800F389C 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F38A0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F38A4 7C 7F 1B 78 */ mr r31, r3 -/* 800F38A8 4B FF A1 7D */ bl setSyncRidePos__9daAlink_cFv -/* 800F38AC 38 7F 1F D0 */ addi r3, r31, 0x1fd0 -/* 800F38B0 48 06 AC 1D */ bl checkAnmEnd__16daPy_frameCtrl_cFv -/* 800F38B4 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800F38B8 41 82 00 18 */ beq lbl_800F38D0 -/* 800F38BC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800F38C0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800F38C4 38 63 4F F8 */ addi r3, r3, 0x4ff8 -/* 800F38C8 80 9F 31 84 */ lwz r4, 0x3184(r31) -/* 800F38CC 4B F5 48 B1 */ bl cutEnd__16dEvent_manager_cFi -lbl_800F38D0: -/* 800F38D0 38 60 00 01 */ li r3, 1 -/* 800F38D4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F38D8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F38DC 7C 08 03 A6 */ mtlr r0 -/* 800F38E0 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F38E4 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseSubjectivityInit__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseSubjectivityInit__9daAlink_cFv.s deleted file mode 100644 index 9fe6aec7d7..0000000000 --- a/asm/d/a/d_a_alink/procHorseSubjectivityInit__9daAlink_cFv.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_800F1294: -/* 800F1294 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F1298 7C 08 02 A6 */ mflr r0 -/* 800F129C 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F12A0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F12A4 7C 7F 1B 78 */ mr r31, r3 -/* 800F12A8 38 80 00 40 */ li r4, 0x40 -/* 800F12AC 4B FD 0C C1 */ bl commonProcInit__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 800F12B0 A0 1F 1F 80 */ lhz r0, 0x1f80(r31) -/* 800F12B4 28 00 00 19 */ cmplwi r0, 0x19 -/* 800F12B8 40 82 00 14 */ bne lbl_800F12CC -/* 800F12BC 7F E3 FB 78 */ mr r3, r31 -/* 800F12C0 38 80 00 02 */ li r4, 2 -/* 800F12C4 C0 22 92 BC */ lfs f1, lit_6041(r2) -/* 800F12C8 4B FB C8 25 */ bl resetUnderAnime__9daAlink_cFQ29daAlink_c13daAlink_UNDERf -lbl_800F12CC: -/* 800F12CC 7F E3 FB 78 */ mr r3, r31 -/* 800F12D0 38 80 00 00 */ li r4, 0 -/* 800F12D4 4B FF D6 45 */ bl setSyncRide__9daAlink_cFi -/* 800F12D8 7F E3 FB 78 */ mr r3, r31 -/* 800F12DC 4B FD D8 19 */ bl setSubjectMode__9daAlink_cFv -/* 800F12E0 38 60 00 01 */ li r3, 1 -/* 800F12E4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F12E8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F12EC 7C 08 03 A6 */ mtlr r0 -/* 800F12F0 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F12F4 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseSubjectivity__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseSubjectivity__9daAlink_cFv.s deleted file mode 100644 index e25ad888a5..0000000000 --- a/asm/d/a/d_a_alink/procHorseSubjectivity__9daAlink_cFv.s +++ /dev/null @@ -1,63 +0,0 @@ -lbl_800F12F8: -/* 800F12F8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800F12FC 7C 08 02 A6 */ mflr r0 -/* 800F1300 90 01 00 24 */ stw r0, 0x24(r1) -/* 800F1304 39 61 00 20 */ addi r11, r1, 0x20 -/* 800F1308 48 27 0E D1 */ bl _savegpr_28 -/* 800F130C 7C 7C 1B 78 */ mr r28, r3 -/* 800F1310 80 03 05 80 */ lwz r0, 0x580(r3) -/* 800F1314 64 00 04 00 */ oris r0, r0, 0x400 -/* 800F1318 90 03 05 80 */ stw r0, 0x580(r3) -/* 800F131C AB E3 04 E6 */ lha r31, 0x4e6(r3) -/* 800F1320 AB C3 04 DE */ lha r30, 0x4de(r3) -/* 800F1324 83 A3 31 90 */ lwz r29, 0x3190(r3) -/* 800F1328 38 80 00 00 */ li r4, 0 -/* 800F132C 4B FF D5 ED */ bl setSyncRide__9daAlink_cFi -/* 800F1330 2C 03 00 00 */ cmpwi r3, 0 -/* 800F1334 40 82 00 0C */ bne lbl_800F1340 -/* 800F1338 38 60 00 01 */ li r3, 1 -/* 800F133C 48 00 00 84 */ b lbl_800F13C0 -lbl_800F1340: -/* 800F1340 B3 FC 04 E6 */ sth r31, 0x4e6(r28) -/* 800F1344 7F 83 E3 78 */ mr r3, r28 -/* 800F1348 38 80 00 01 */ li r4, 1 -/* 800F134C 4B FD D8 8D */ bl checkSubjectEnd__9daAlink_cFi -/* 800F1350 2C 03 00 00 */ cmpwi r3, 0 -/* 800F1354 41 82 00 10 */ beq lbl_800F1364 -/* 800F1358 7F 83 E3 78 */ mr r3, r28 -/* 800F135C 4B FF F6 25 */ bl procHorseWaitInit__9daAlink_cFv -/* 800F1360 48 00 00 5C */ b lbl_800F13BC -lbl_800F1364: -/* 800F1364 7F 83 E3 78 */ mr r3, r28 -/* 800F1368 4B FC 89 C5 */ bl checkNextActionFromButton__9daAlink_cFv -/* 800F136C 2C 03 00 00 */ cmpwi r3, 0 -/* 800F1370 41 82 00 40 */ beq lbl_800F13B0 -/* 800F1374 7F 83 E3 78 */ mr r3, r28 -/* 800F1378 4B FC 9C 09 */ bl checkUpperReadyThrowAnime__9daAlink_cCFv -/* 800F137C 2C 03 00 00 */ cmpwi r3, 0 -/* 800F1380 41 82 00 28 */ beq lbl_800F13A8 -/* 800F1384 93 BC 31 90 */ stw r29, 0x3190(r28) -/* 800F1388 80 1C 31 90 */ lwz r0, 0x3190(r28) -/* 800F138C B0 1C 05 9E */ sth r0, 0x59e(r28) -/* 800F1390 A8 1C 05 9C */ lha r0, 0x59c(r28) -/* 800F1394 B0 1C 31 0A */ sth r0, 0x310a(r28) -/* 800F1398 A8 7C 04 E6 */ lha r3, 0x4e6(r28) -/* 800F139C 80 1C 31 90 */ lwz r0, 0x3190(r28) -/* 800F13A0 7C 03 02 14 */ add r0, r3, r0 -/* 800F13A4 B0 1C 31 0C */ sth r0, 0x310c(r28) -lbl_800F13A8: -/* 800F13A8 38 60 00 01 */ li r3, 1 -/* 800F13AC 48 00 00 14 */ b lbl_800F13C0 -lbl_800F13B0: -/* 800F13B0 7F 83 E3 78 */ mr r3, r28 -/* 800F13B4 7F C4 F3 78 */ mr r4, r30 -/* 800F13B8 4B FF DB 79 */ bl setRideSubjectAngle__9daAlink_cFs -lbl_800F13BC: -/* 800F13BC 38 60 00 01 */ li r3, 1 -lbl_800F13C0: -/* 800F13C0 39 61 00 20 */ addi r11, r1, 0x20 -/* 800F13C4 48 27 0E 61 */ bl _restgpr_28 -/* 800F13C8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 800F13CC 7C 08 03 A6 */ mtlr r0 -/* 800F13D0 38 21 00 20 */ addi r1, r1, 0x20 -/* 800F13D4 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHorseTurnInit__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHorseTurnInit__9daAlink_cFv.s deleted file mode 100644 index 54a7724914..0000000000 --- a/asm/d/a/d_a_alink/procHorseTurnInit__9daAlink_cFv.s +++ /dev/null @@ -1,32 +0,0 @@ -lbl_800F0C6C: -/* 800F0C6C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800F0C70 7C 08 02 A6 */ mflr r0 -/* 800F0C74 90 01 00 14 */ stw r0, 0x14(r1) -/* 800F0C78 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800F0C7C 7C 7F 1B 78 */ mr r31, r3 -/* 800F0C80 38 80 00 3D */ li r4, 0x3d -/* 800F0C84 4B FD 12 E9 */ bl commonProcInit__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 800F0C88 7F E3 FB 78 */ mr r3, r31 -/* 800F0C8C 81 9F 06 28 */ lwz r12, 0x628(r31) -/* 800F0C90 81 8C 01 88 */ lwz r12, 0x188(r12) -/* 800F0C94 7D 89 03 A6 */ mtctr r12 -/* 800F0C98 4E 80 04 21 */ bctrl -/* 800F0C9C 28 03 00 00 */ cmplwi r3, 0 -/* 800F0CA0 41 82 00 14 */ beq lbl_800F0CB4 -/* 800F0CA4 7F E3 FB 78 */ mr r3, r31 -/* 800F0CA8 38 80 00 02 */ li r4, 2 -/* 800F0CAC C0 22 92 BC */ lfs f1, lit_6041(r2) -/* 800F0CB0 4B FB CE 3D */ bl resetUnderAnime__9daAlink_cFQ29daAlink_c13daAlink_UNDERf -lbl_800F0CB4: -/* 800F0CB4 7F E3 FB 78 */ mr r3, r31 -/* 800F0CB8 4B FF CD 6D */ bl setSyncRidePos__9daAlink_cFv -/* 800F0CBC 38 00 00 00 */ li r0, 0 -/* 800F0CC0 B0 1F 30 04 */ sth r0, 0x3004(r31) -/* 800F0CC4 7F E3 FB 78 */ mr r3, r31 -/* 800F0CC8 4B FF CD B1 */ bl setHorseTurnAnime__9daAlink_cFv -/* 800F0CCC 38 60 00 01 */ li r3, 1 -/* 800F0CD0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800F0CD4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800F0CD8 7C 08 03 A6 */ mtlr r0 -/* 800F0CDC 38 21 00 10 */ addi r1, r1, 0x10 -/* 800F0CE0 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/rideGetOff__9daAlink_cFv.s b/asm/d/a/d_a_alink/rideGetOff__9daAlink_cFv.s deleted file mode 100644 index 3aa49ce9d5..0000000000 --- a/asm/d/a/d_a_alink/rideGetOff__9daAlink_cFv.s +++ /dev/null @@ -1,122 +0,0 @@ -lbl_800ECBD0: -/* 800ECBD0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800ECBD4 7C 08 02 A6 */ mflr r0 -/* 800ECBD8 90 01 00 14 */ stw r0, 0x14(r1) -/* 800ECBDC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800ECBE0 7C 7F 1B 78 */ mr r31, r3 -/* 800ECBE4 81 83 06 28 */ lwz r12, 0x628(r3) -/* 800ECBE8 81 8C 01 88 */ lwz r12, 0x188(r12) -/* 800ECBEC 7D 89 03 A6 */ mtctr r12 -/* 800ECBF0 4E 80 04 21 */ bctrl -/* 800ECBF4 28 03 00 00 */ cmplwi r3, 0 -/* 800ECBF8 41 82 00 34 */ beq lbl_800ECC2C -/* 800ECBFC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800ECC00 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800ECC04 80 63 5D B8 */ lwz r3, 0x5db8(r3) -/* 800ECC08 28 03 00 00 */ cmplwi r3, 0 -/* 800ECC0C 41 82 00 10 */ beq lbl_800ECC1C -/* 800ECC10 39 83 18 F8 */ addi r12, r3, 0x18f8 -/* 800ECC14 48 27 54 71 */ bl __ptmf_scall -/* 800ECC18 60 00 00 00 */ nop -lbl_800ECC1C: -/* 800ECC1C 38 7F 2C A8 */ addi r3, r31, 0x2ca8 -/* 800ECC20 38 80 00 00 */ li r4, 0 -/* 800ECC24 48 1D 6E 49 */ bl setRiding__14Z2CreatureLinkFb -/* 800ECC28 48 00 00 FC */ b lbl_800ECD24 -lbl_800ECC2C: -/* 800ECC2C 7F E3 FB 78 */ mr r3, r31 -/* 800ECC30 81 9F 06 28 */ lwz r12, 0x628(r31) -/* 800ECC34 81 8C 01 8C */ lwz r12, 0x18c(r12) -/* 800ECC38 7D 89 03 A6 */ mtctr r12 -/* 800ECC3C 4E 80 04 21 */ bctrl -/* 800ECC40 28 03 00 00 */ cmplwi r3, 0 -/* 800ECC44 41 82 00 18 */ beq lbl_800ECC5C -/* 800ECC48 80 7F 28 18 */ lwz r3, 0x2818(r31) -/* 800ECC4C 28 03 00 00 */ cmplwi r3, 0 -/* 800ECC50 41 82 00 D4 */ beq lbl_800ECD24 -/* 800ECC54 4B F4 B0 A1 */ bl getOff__10e_wb_classFv -/* 800ECC58 48 00 00 CC */ b lbl_800ECD24 -lbl_800ECC5C: -/* 800ECC5C 7F E3 FB 78 */ mr r3, r31 -/* 800ECC60 81 9F 06 28 */ lwz r12, 0x628(r31) -/* 800ECC64 81 8C 01 98 */ lwz r12, 0x198(r12) -/* 800ECC68 7D 89 03 A6 */ mtctr r12 -/* 800ECC6C 4E 80 04 21 */ bctrl -/* 800ECC70 28 03 00 00 */ cmplwi r3, 0 -/* 800ECC74 41 82 00 38 */ beq lbl_800ECCAC -/* 800ECC78 80 7F 28 18 */ lwz r3, 0x2818(r31) -/* 800ECC7C 28 03 00 00 */ cmplwi r3, 0 -/* 800ECC80 41 82 00 0C */ beq lbl_800ECC8C -/* 800ECC84 38 00 00 01 */ li r0, 1 -/* 800ECC88 98 03 0A 71 */ stb r0, 0xa71(r3) -lbl_800ECC8C: -/* 800ECC8C 7F E3 FB 78 */ mr r3, r31 -/* 800ECC90 3C 80 00 02 */ lis r4, 0x0002 /* 0x00020077@ha */ -/* 800ECC94 38 84 00 77 */ addi r4, r4, 0x0077 /* 0x00020077@l */ -/* 800ECC98 81 9F 06 28 */ lwz r12, 0x628(r31) -/* 800ECC9C 81 8C 01 18 */ lwz r12, 0x118(r12) -/* 800ECCA0 7D 89 03 A6 */ mtctr r12 -/* 800ECCA4 4E 80 04 21 */ bctrl -/* 800ECCA8 48 00 00 7C */ b lbl_800ECD24 -lbl_800ECCAC: -/* 800ECCAC 7F E3 FB 78 */ mr r3, r31 -/* 800ECCB0 81 9F 06 28 */ lwz r12, 0x628(r31) -/* 800ECCB4 81 8C 01 90 */ lwz r12, 0x190(r12) -/* 800ECCB8 7D 89 03 A6 */ mtctr r12 -/* 800ECCBC 4E 80 04 21 */ bctrl -/* 800ECCC0 28 03 00 00 */ cmplwi r3, 0 -/* 800ECCC4 41 82 00 1C */ beq lbl_800ECCE0 -/* 800ECCC8 A0 1F 2F DC */ lhz r0, 0x2fdc(r31) -/* 800ECCCC 28 00 01 0B */ cmplwi r0, 0x10b -/* 800ECCD0 40 82 00 54 */ bne lbl_800ECD24 -/* 800ECCD4 38 00 00 FF */ li r0, 0xff -/* 800ECCD8 B0 1F 2F DC */ sth r0, 0x2fdc(r31) -/* 800ECCDC 48 00 00 48 */ b lbl_800ECD24 -lbl_800ECCE0: -/* 800ECCE0 7F E3 FB 78 */ mr r3, r31 -/* 800ECCE4 81 9F 06 28 */ lwz r12, 0x628(r31) -/* 800ECCE8 81 8C 01 94 */ lwz r12, 0x194(r12) -/* 800ECCEC 7D 89 03 A6 */ mtctr r12 -/* 800ECCF0 4E 80 04 21 */ bctrl -/* 800ECCF4 28 03 00 00 */ cmplwi r3, 0 -/* 800ECCF8 41 82 00 2C */ beq lbl_800ECD24 -/* 800ECCFC 38 00 00 00 */ li r0, 0 -/* 800ECD00 80 7F 28 18 */ lwz r3, 0x2818(r31) -/* 800ECD04 98 03 09 60 */ stb r0, 0x960(r3) -/* 800ECD08 7F E3 FB 78 */ mr r3, r31 -/* 800ECD0C 48 02 8F 15 */ bl checkEventRun__9daAlink_cCFv -/* 800ECD10 2C 03 00 00 */ cmpwi r3, 0 -/* 800ECD14 41 82 00 10 */ beq lbl_800ECD24 -/* 800ECD18 38 00 00 01 */ li r0, 1 -/* 800ECD1C 80 7F 28 18 */ lwz r3, 0x2818(r31) -/* 800ECD20 98 03 09 62 */ stb r0, 0x962(r3) -lbl_800ECD24: -/* 800ECD24 7F E3 FB 78 */ mr r3, r31 -/* 800ECD28 81 9F 06 28 */ lwz r12, 0x628(r31) -/* 800ECD2C 81 8C 01 94 */ lwz r12, 0x194(r12) -/* 800ECD30 7D 89 03 A6 */ mtctr r12 -/* 800ECD34 4E 80 04 21 */ bctrl -/* 800ECD38 28 03 00 00 */ cmplwi r3, 0 -/* 800ECD3C 41 82 00 14 */ beq lbl_800ECD50 -/* 800ECD40 7F E3 FB 78 */ mr r3, r31 -/* 800ECD44 48 02 8E DD */ bl checkEventRun__9daAlink_cCFv -/* 800ECD48 2C 03 00 00 */ cmpwi r3, 0 -/* 800ECD4C 41 82 00 0C */ beq lbl_800ECD58 -lbl_800ECD50: -/* 800ECD50 38 7F 28 14 */ addi r3, r31, 0x2814 -/* 800ECD54 48 07 1F A9 */ bl clearData__16daPy_actorKeep_cFv -lbl_800ECD58: -/* 800ECD58 38 60 00 00 */ li r3, 0 -/* 800ECD5C 98 7F 2F AA */ stb r3, 0x2faa(r31) -/* 800ECD60 80 1F 05 74 */ lwz r0, 0x574(r31) -/* 800ECD64 54 00 05 64 */ rlwinm r0, r0, 0, 0x15, 0x12 -/* 800ECD68 90 1F 05 74 */ stw r0, 0x574(r31) -/* 800ECD6C 38 00 00 0A */ li r0, 0xa -/* 800ECD70 B0 1F 05 4E */ sth r0, 0x54e(r31) -/* 800ECD74 B0 7F 04 E4 */ sth r3, 0x4e4(r31) -/* 800ECD78 B0 7F 04 E8 */ sth r3, 0x4e8(r31) -/* 800ECD7C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800ECD80 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800ECD84 7C 08 03 A6 */ mtlr r0 -/* 800ECD88 38 21 00 10 */ addi r1, r1, 0x10 -/* 800ECD8C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setHorseGetOff__9daAlink_cFi.s b/asm/d/a/d_a_alink/setHorseGetOff__9daAlink_cFi.s deleted file mode 100644 index 2bca3169d0..0000000000 --- a/asm/d/a/d_a_alink/setHorseGetOff__9daAlink_cFi.s +++ /dev/null @@ -1,60 +0,0 @@ -lbl_800EF884: -/* 800EF884 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800EF888 7C 08 02 A6 */ mflr r0 -/* 800EF88C 90 01 00 24 */ stw r0, 0x24(r1) -/* 800EF890 39 61 00 20 */ addi r11, r1, 0x20 -/* 800EF894 48 27 29 49 */ bl _savegpr_29 -/* 800EF898 7C 7D 1B 78 */ mr r29, r3 -/* 800EF89C 7C 9E 23 78 */ mr r30, r4 -/* 800EF8A0 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800EF8A4 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800EF8A8 83 E4 5D B8 */ lwz r31, 0x5db8(r4) -/* 800EF8AC 88 04 5E 24 */ lbz r0, 0x5e24(r4) -/* 800EF8B0 28 00 00 32 */ cmplwi r0, 0x32 -/* 800EF8B4 40 82 00 8C */ bne lbl_800EF940 -/* 800EF8B8 88 1D 2F 8D */ lbz r0, 0x2f8d(r29) -/* 800EF8BC 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b -/* 800EF8C0 41 82 00 80 */ beq lbl_800EF940 -/* 800EF8C4 81 83 06 28 */ lwz r12, 0x628(r3) -/* 800EF8C8 81 8C 01 88 */ lwz r12, 0x188(r12) -/* 800EF8CC 7D 89 03 A6 */ mtctr r12 -/* 800EF8D0 4E 80 04 21 */ bctrl -/* 800EF8D4 28 03 00 00 */ cmplwi r3, 0 -/* 800EF8D8 41 82 00 10 */ beq lbl_800EF8E8 -/* 800EF8DC 80 1F 17 48 */ lwz r0, 0x1748(r31) -/* 800EF8E0 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e -/* 800EF8E4 40 82 00 14 */ bne lbl_800EF8F8 -lbl_800EF8E8: -/* 800EF8E8 7F A3 EB 78 */ mr r3, r29 -/* 800EF8EC 4B FF D6 19 */ bl checkHorseLieAnime__9daAlink_cCFv -/* 800EF8F0 2C 03 00 00 */ cmpwi r3, 0 -/* 800EF8F4 41 82 00 3C */ beq lbl_800EF930 -lbl_800EF8F8: -/* 800EF8F8 7F A3 EB 78 */ mr r3, r29 -/* 800EF8FC 38 80 00 02 */ li r4, 2 -/* 800EF900 C0 22 92 BC */ lfs f1, lit_6041(r2) -/* 800EF904 4B FB DE 21 */ bl resetUpperAnime__9daAlink_cFQ29daAlink_c13daAlink_UPPERf -/* 800EF908 7F A3 EB 78 */ mr r3, r29 -/* 800EF90C 38 80 00 00 */ li r4, 0 -/* 800EF910 4B FD 5E 95 */ bl procBackJumpInit__9daAlink_cFi -/* 800EF914 C0 3D 04 D4 */ lfs f1, 0x4d4(r29) -/* 800EF918 3C 60 80 39 */ lis r3, m__22daAlinkHIO_backJump_c0@ha /* 0x8038D82C@ha */ -/* 800EF91C 38 63 D8 2C */ addi r3, r3, m__22daAlinkHIO_backJump_c0@l /* 0x8038D82C@l */ -/* 800EF920 C0 03 00 2C */ lfs f0, 0x2c(r3) -/* 800EF924 EC 01 00 2A */ fadds f0, f1, f0 -/* 800EF928 D0 1D 04 D4 */ stfs f0, 0x4d4(r29) -/* 800EF92C 48 00 00 14 */ b lbl_800EF940 -lbl_800EF930: -/* 800EF930 7F A3 EB 78 */ mr r3, r29 -/* 800EF934 7F C4 F3 78 */ mr r4, r30 -/* 800EF938 48 00 0A 55 */ bl procHorseGetOffInit__9daAlink_cFi -/* 800EF93C 48 00 00 08 */ b lbl_800EF944 -lbl_800EF940: -/* 800EF940 38 60 00 00 */ li r3, 0 -lbl_800EF944: -/* 800EF944 39 61 00 20 */ addi r11, r1, 0x20 -/* 800EF948 48 27 28 E1 */ bl _restgpr_29 -/* 800EF94C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 800EF950 7C 08 03 A6 */ mtlr r0 -/* 800EF954 38 21 00 20 */ addi r1, r1, 0x20 -/* 800EF958 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setHorseSwordUp__9daAlink_cFi.s b/asm/d/a/d_a_alink/setHorseSwordUp__9daAlink_cFi.s deleted file mode 100644 index 78d82ba1e3..0000000000 --- a/asm/d/a/d_a_alink/setHorseSwordUp__9daAlink_cFi.s +++ /dev/null @@ -1,57 +0,0 @@ -lbl_800EEE5C: -/* 800EEE5C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800EEE60 7C 08 02 A6 */ mflr r0 -/* 800EEE64 90 01 00 14 */ stw r0, 0x14(r1) -/* 800EEE68 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800EEE6C 93 C1 00 08 */ stw r30, 8(r1) -/* 800EEE70 7C 7E 1B 78 */ mr r30, r3 -/* 800EEE74 7C 9F 23 78 */ mr r31, r4 -/* 800EEE78 81 83 06 28 */ lwz r12, 0x628(r3) -/* 800EEE7C 81 8C 01 88 */ lwz r12, 0x188(r12) -/* 800EEE80 7D 89 03 A6 */ mtctr r12 -/* 800EEE84 4E 80 04 21 */ bctrl -/* 800EEE88 28 03 00 00 */ cmplwi r3, 0 -/* 800EEE8C 41 82 00 80 */ beq lbl_800EEF0C -/* 800EEE90 7F C3 F3 78 */ mr r3, r30 -/* 800EEE94 4B FC A3 C1 */ bl checkNoUpperAnime__9daAlink_cCFv -/* 800EEE98 2C 03 00 00 */ cmpwi r3, 0 -/* 800EEE9C 41 82 00 70 */ beq lbl_800EEF0C -/* 800EEEA0 A0 1E 2F DC */ lhz r0, 0x2fdc(r30) -/* 800EEEA4 28 00 01 03 */ cmplwi r0, 0x103 -/* 800EEEA8 40 82 00 64 */ bne lbl_800EEF0C -/* 800EEEAC 4B FF D8 C1 */ bl checkHorseZeldaBowMode__9daAlink_cFv -/* 800EEEB0 2C 03 00 00 */ cmpwi r3, 0 -/* 800EEEB4 40 82 00 58 */ bne lbl_800EEF0C -/* 800EEEB8 2C 1F 00 00 */ cmpwi r31, 0 -/* 800EEEBC 41 82 00 14 */ beq lbl_800EEED0 -/* 800EEEC0 7F C3 F3 78 */ mr r3, r30 -/* 800EEEC4 4B FF FF 6D */ bl checkHorseSwordUpSpped__9daAlink_cFv -/* 800EEEC8 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800EEECC 40 82 00 28 */ bne lbl_800EEEF4 -lbl_800EEED0: -/* 800EEED0 2C 1F 00 00 */ cmpwi r31, 0 -/* 800EEED4 40 82 00 38 */ bne lbl_800EEF0C -/* 800EEED8 80 7E 27 EC */ lwz r3, 0x27ec(r30) -/* 800EEEDC 4B FE D6 6D */ bl checkEnemyGroup__9daAlink_cFP10fopAc_ac_c -/* 800EEEE0 2C 03 00 00 */ cmpwi r3, 0 -/* 800EEEE4 41 82 00 28 */ beq lbl_800EEF0C -/* 800EEEE8 80 1E 05 74 */ lwz r0, 0x574(r30) -/* 800EEEEC 54 00 05 29 */ rlwinm. r0, r0, 0, 0x14, 0x14 -/* 800EEEF0 41 82 00 1C */ beq lbl_800EEF0C -lbl_800EEEF4: -/* 800EEEF4 7F C3 F3 78 */ mr r3, r30 -/* 800EEEF8 4B FF E0 A5 */ bl setHorseSwordUpAnime__9daAlink_cFv -/* 800EEEFC 3C 60 80 39 */ lis r3, m__19daAlinkHIO_horse_c0@ha /* 0x8038E5A4@ha */ -/* 800EEF00 38 63 E5 A4 */ addi r3, r3, m__19daAlinkHIO_horse_c0@l /* 0x8038E5A4@l */ -/* 800EEF04 A8 03 00 50 */ lha r0, 0x50(r3) -/* 800EEF08 B0 1E 30 02 */ sth r0, 0x3002(r30) -lbl_800EEF0C: -/* 800EEF0C 80 1E 05 74 */ lwz r0, 0x574(r30) -/* 800EEF10 54 00 05 66 */ rlwinm r0, r0, 0, 0x15, 0x13 -/* 800EEF14 90 1E 05 74 */ stw r0, 0x574(r30) -/* 800EEF18 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800EEF1C 83 C1 00 08 */ lwz r30, 8(r1) -/* 800EEF20 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800EEF24 7C 08 03 A6 */ mtlr r0 -/* 800EEF28 38 21 00 10 */ addi r1, r1, 0x10 -/* 800EEF2C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setHorseTurnUpperAnime__9daAlink_cFi.s b/asm/d/a/d_a_alink/setHorseTurnUpperAnime__9daAlink_cFi.s deleted file mode 100644 index 38bdbaf3e8..0000000000 --- a/asm/d/a/d_a_alink/setHorseTurnUpperAnime__9daAlink_cFi.s +++ /dev/null @@ -1,36 +0,0 @@ -lbl_800ECFF4: -/* 800ECFF4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800ECFF8 7C 08 02 A6 */ mflr r0 -/* 800ECFFC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800ED000 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800ED004 93 C1 00 08 */ stw r30, 8(r1) -/* 800ED008 7C 7E 1B 78 */ mr r30, r3 -/* 800ED00C 7C 9F 23 78 */ mr r31, r4 -/* 800ED010 48 00 00 65 */ bl checkHorseNoUpperAnime__9daAlink_cCFv -/* 800ED014 2C 03 00 00 */ cmpwi r3, 0 -/* 800ED018 40 82 00 2C */ bne lbl_800ED044 -/* 800ED01C 2C 1F 00 00 */ cmpwi r31, 0 -/* 800ED020 40 82 00 10 */ bne lbl_800ED030 -/* 800ED024 A0 1E 1F BC */ lhz r0, 0x1fbc(r30) -/* 800ED028 28 00 02 4D */ cmplwi r0, 0x24d -/* 800ED02C 41 82 00 18 */ beq lbl_800ED044 -lbl_800ED030: -/* 800ED030 2C 1F 00 01 */ cmpwi r31, 1 -/* 800ED034 40 82 00 28 */ bne lbl_800ED05C -/* 800ED038 A0 1E 1F BC */ lhz r0, 0x1fbc(r30) -/* 800ED03C 28 00 02 4C */ cmplwi r0, 0x24c -/* 800ED040 40 82 00 1C */ bne lbl_800ED05C -lbl_800ED044: -/* 800ED044 7F C3 F3 78 */ mr r3, r30 -/* 800ED048 30 1F FF FF */ addic r0, r31, -1 -/* 800ED04C 7C 80 01 10 */ subfe r4, r0, r0 -/* 800ED050 38 84 02 4D */ addi r4, r4, 0x24d -/* 800ED054 C0 22 93 24 */ lfs f1, lit_7450(r2) -/* 800ED058 4B FC 03 1D */ bl setUpperAnimeBaseMorf__9daAlink_cFUsf -lbl_800ED05C: -/* 800ED05C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800ED060 83 C1 00 08 */ lwz r30, 8(r1) -/* 800ED064 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800ED068 7C 08 03 A6 */ mtlr r0 -/* 800ED06C 38 21 00 10 */ addi r1, r1, 0x10 -/* 800ED070 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setHorseZeldaDamage__9daAlink_cFv.s b/asm/d/a/d_a_alink/setHorseZeldaDamage__9daAlink_cFv.s deleted file mode 100644 index ee2ea12eb9..0000000000 --- a/asm/d/a/d_a_alink/setHorseZeldaDamage__9daAlink_cFv.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_800EC7B0: -/* 800EC7B0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800EC7B4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800EC7B8 80 63 5D B8 */ lwz r3, 0x5db8(r3) -/* 800EC7BC 28 03 00 00 */ cmplwi r3, 0 -/* 800EC7C0 4D 82 00 20 */ beqlr -/* 800EC7C4 80 63 12 58 */ lwz r3, 0x1258(r3) -/* 800EC7C8 28 03 00 00 */ cmplwi r3, 0 -/* 800EC7CC 4D 82 00 20 */ beqlr -/* 800EC7D0 38 00 00 01 */ li r0, 1 -/* 800EC7D4 98 03 06 DB */ stb r0, 0x6db(r3) -/* 800EC7D8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setSyncBoarPos__9daAlink_cFv.s b/asm/d/a/d_a_alink/setSyncBoarPos__9daAlink_cFv.s deleted file mode 100644 index 15fd770283..0000000000 --- a/asm/d/a/d_a_alink/setSyncBoarPos__9daAlink_cFv.s +++ /dev/null @@ -1,106 +0,0 @@ -lbl_800ED78C: -/* 800ED78C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800ED790 7C 08 02 A6 */ mflr r0 -/* 800ED794 90 01 00 24 */ stw r0, 0x24(r1) -/* 800ED798 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 800ED79C 93 C1 00 18 */ stw r30, 0x18(r1) -/* 800ED7A0 7C 7F 1B 78 */ mr r31, r3 -/* 800ED7A4 80 83 28 18 */ lwz r4, 0x2818(r3) -/* 800ED7A8 7C 9E 23 78 */ mr r30, r4 -/* 800ED7AC 28 04 00 00 */ cmplwi r4, 0 -/* 800ED7B0 40 82 00 34 */ bne lbl_800ED7E4 -/* 800ED7B4 A0 1F 2F E8 */ lhz r0, 0x2fe8(r31) -/* 800ED7B8 28 00 01 50 */ cmplwi r0, 0x150 -/* 800ED7BC 41 82 00 0C */ beq lbl_800ED7C8 -/* 800ED7C0 28 00 01 48 */ cmplwi r0, 0x148 -/* 800ED7C4 40 82 00 0C */ bne lbl_800ED7D0 -lbl_800ED7C8: -/* 800ED7C8 38 60 00 01 */ li r3, 1 -/* 800ED7CC 48 00 01 28 */ b lbl_800ED8F4 -lbl_800ED7D0: -/* 800ED7D0 4B FF F4 01 */ bl rideGetOff__9daAlink_cFv -/* 800ED7D4 7F E3 FB 78 */ mr r3, r31 -/* 800ED7D8 4B FC 81 15 */ bl checkWaitAction__9daAlink_cFv -/* 800ED7DC 38 60 00 00 */ li r3, 0 -/* 800ED7E0 48 00 01 14 */ b lbl_800ED8F4 -lbl_800ED7E4: -/* 800ED7E4 C0 04 05 2C */ lfs f0, 0x52c(r4) -/* 800ED7E8 FC 00 02 10 */ fabs f0, f0 -/* 800ED7EC FC 20 00 18 */ frsp f1, f0 -/* 800ED7F0 C0 02 93 E4 */ lfs f0, lit_12328(r2) -/* 800ED7F4 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 800ED7F8 40 80 00 14 */ bge lbl_800ED80C -/* 800ED7FC 80 1F 31 A0 */ lwz r0, 0x31a0(r31) -/* 800ED800 60 00 00 01 */ ori r0, r0, 1 -/* 800ED804 90 1F 31 A0 */ stw r0, 0x31a0(r31) -/* 800ED808 48 00 00 10 */ b lbl_800ED818 -lbl_800ED80C: -/* 800ED80C 80 1F 31 A0 */ lwz r0, 0x31a0(r31) -/* 800ED810 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e -/* 800ED814 90 1F 31 A0 */ stw r0, 0x31a0(r31) -lbl_800ED818: -/* 800ED818 A0 1F 2F E8 */ lhz r0, 0x2fe8(r31) -/* 800ED81C 28 00 01 50 */ cmplwi r0, 0x150 -/* 800ED820 41 82 00 60 */ beq lbl_800ED880 -/* 800ED824 28 00 01 48 */ cmplwi r0, 0x148 -/* 800ED828 41 82 00 58 */ beq lbl_800ED880 -/* 800ED82C 28 1E 00 00 */ cmplwi r30, 0 -/* 800ED830 41 82 00 14 */ beq lbl_800ED844 -/* 800ED834 7F C3 F3 78 */ mr r3, r30 -/* 800ED838 4B F4 A5 31 */ bl checkDownDamage__10e_wb_classFv -/* 800ED83C 2C 03 00 00 */ cmpwi r3, 0 -/* 800ED840 41 82 00 14 */ beq lbl_800ED854 -lbl_800ED844: -/* 800ED844 7F E3 FB 78 */ mr r3, r31 -/* 800ED848 48 00 1B 15 */ bl boarForceGetOff__9daAlink_cFv -/* 800ED84C 38 60 00 00 */ li r3, 0 -/* 800ED850 48 00 00 A4 */ b lbl_800ED8F4 -lbl_800ED854: -/* 800ED854 7F C3 F3 78 */ mr r3, r30 -/* 800ED858 4B F4 A5 3D */ bl checkNormalRideMode__10e_wb_classCFv -/* 800ED85C 2C 03 00 00 */ cmpwi r3, 0 -/* 800ED860 40 82 00 20 */ bne lbl_800ED880 -/* 800ED864 A0 1F 2F E8 */ lhz r0, 0x2fe8(r31) -/* 800ED868 28 00 00 53 */ cmplwi r0, 0x53 -/* 800ED86C 41 82 00 14 */ beq lbl_800ED880 -/* 800ED870 7F E3 FB 78 */ mr r3, r31 -/* 800ED874 48 00 60 75 */ bl procBoarRunInit__9daAlink_cFv -/* 800ED878 38 60 00 00 */ li r3, 0 -/* 800ED87C 48 00 00 78 */ b lbl_800ED8F4 -lbl_800ED880: -/* 800ED880 80 7E 05 E0 */ lwz r3, 0x5e0(r30) -/* 800ED884 80 63 00 04 */ lwz r3, 4(r3) -/* 800ED888 80 63 00 84 */ lwz r3, 0x84(r3) -/* 800ED88C 80 63 00 0C */ lwz r3, 0xc(r3) -/* 800ED890 3B C3 02 D0 */ addi r30, r3, 0x2d0 -/* 800ED894 38 00 00 60 */ li r0, 0x60 -/* 800ED898 98 1F 2F 99 */ stb r0, 0x2f99(r31) -/* 800ED89C 7F C3 F3 78 */ mr r3, r30 -/* 800ED8A0 3C 80 80 42 */ lis r4, l_localBoarRidePos@ha /* 0x804255D4@ha */ -/* 800ED8A4 38 84 55 D4 */ addi r4, r4, l_localBoarRidePos@l /* 0x804255D4@l */ -/* 800ED8A8 38 BF 04 D0 */ addi r5, r31, 0x4d0 -/* 800ED8AC 48 25 94 C1 */ bl PSMTXMultVec -/* 800ED8B0 7F C3 F3 78 */ mr r3, r30 -/* 800ED8B4 38 81 00 08 */ addi r4, r1, 8 -/* 800ED8B8 4B F1 F3 49 */ bl mDoMtx_MtxToRot__FPA4_CfP5csXyz -/* 800ED8BC A8 01 00 0C */ lha r0, 0xc(r1) -/* 800ED8C0 7C 00 00 D0 */ neg r0, r0 -/* 800ED8C4 B0 1F 04 E4 */ sth r0, 0x4e4(r31) -/* 800ED8C8 A8 61 00 0A */ lha r3, 0xa(r1) -/* 800ED8CC 38 03 40 00 */ addi r0, r3, 0x4000 -/* 800ED8D0 B0 1F 04 E6 */ sth r0, 0x4e6(r31) -/* 800ED8D4 A8 01 00 08 */ lha r0, 8(r1) -/* 800ED8D8 B0 1F 04 E8 */ sth r0, 0x4e8(r31) -/* 800ED8DC A8 1F 04 E6 */ lha r0, 0x4e6(r31) -/* 800ED8E0 B0 1F 04 DE */ sth r0, 0x4de(r31) -/* 800ED8E4 80 7F 28 18 */ lwz r3, 0x2818(r31) -/* 800ED8E8 C0 03 05 2C */ lfs f0, 0x52c(r3) -/* 800ED8EC D0 1F 33 98 */ stfs f0, 0x3398(r31) -/* 800ED8F0 38 60 00 01 */ li r3, 1 -lbl_800ED8F4: -/* 800ED8F4 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 800ED8F8 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 800ED8FC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 800ED900 7C 08 03 A6 */ mtlr r0 -/* 800ED904 38 21 00 20 */ addi r1, r1, 0x20 -/* 800ED908 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setSyncBoarRunPos__9daAlink_cFv.s b/asm/d/a/d_a_alink/setSyncBoarRunPos__9daAlink_cFv.s deleted file mode 100644 index 0fe0233a30..0000000000 --- a/asm/d/a/d_a_alink/setSyncBoarRunPos__9daAlink_cFv.s +++ /dev/null @@ -1,76 +0,0 @@ -lbl_800ED90C: -/* 800ED90C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800ED910 7C 08 02 A6 */ mflr r0 -/* 800ED914 90 01 00 24 */ stw r0, 0x24(r1) -/* 800ED918 39 61 00 20 */ addi r11, r1, 0x20 -/* 800ED91C 48 27 48 C1 */ bl _savegpr_29 -/* 800ED920 7C 7E 1B 78 */ mr r30, r3 -/* 800ED924 83 E3 28 18 */ lwz r31, 0x2818(r3) -/* 800ED928 28 1F 00 00 */ cmplwi r31, 0 -/* 800ED92C 41 82 00 14 */ beq lbl_800ED940 -/* 800ED930 7F E3 FB 78 */ mr r3, r31 -/* 800ED934 4B F4 A4 35 */ bl checkDownDamage__10e_wb_classFv -/* 800ED938 2C 03 00 00 */ cmpwi r3, 0 -/* 800ED93C 41 82 00 14 */ beq lbl_800ED950 -lbl_800ED940: -/* 800ED940 7F C3 F3 78 */ mr r3, r30 -/* 800ED944 48 00 1A 19 */ bl boarForceGetOff__9daAlink_cFv -/* 800ED948 38 60 00 00 */ li r3, 0 -/* 800ED94C 48 00 00 C0 */ b lbl_800EDA0C -lbl_800ED950: -/* 800ED950 7F E3 FB 78 */ mr r3, r31 -/* 800ED954 4B F4 A4 41 */ bl checkNormalRideMode__10e_wb_classCFv -/* 800ED958 2C 03 00 00 */ cmpwi r3, 0 -/* 800ED95C 41 82 00 14 */ beq lbl_800ED970 -/* 800ED960 7F C3 F3 78 */ mr r3, r30 -/* 800ED964 48 00 30 1D */ bl procHorseWaitInit__9daAlink_cFv -/* 800ED968 38 60 00 00 */ li r3, 0 -/* 800ED96C 48 00 00 A0 */ b lbl_800EDA0C -lbl_800ED970: -/* 800ED970 80 7F 05 E0 */ lwz r3, 0x5e0(r31) -/* 800ED974 80 63 00 04 */ lwz r3, 4(r3) -/* 800ED978 80 63 00 84 */ lwz r3, 0x84(r3) -/* 800ED97C 80 63 00 0C */ lwz r3, 0xc(r3) -/* 800ED980 3B A3 02 D0 */ addi r29, r3, 0x2d0 -/* 800ED984 38 00 00 60 */ li r0, 0x60 -/* 800ED988 98 1E 2F 99 */ stb r0, 0x2f99(r30) -/* 800ED98C 7F A3 EB 78 */ mr r3, r29 -/* 800ED990 3C 80 80 39 */ lis r4, localOffset_18237@ha /* 0x8039196C@ha */ -/* 800ED994 38 84 19 6C */ addi r4, r4, localOffset_18237@l /* 0x8039196C@l */ -/* 800ED998 38 BE 04 D0 */ addi r5, r30, 0x4d0 -/* 800ED99C 48 25 93 D1 */ bl PSMTXMultVec -/* 800ED9A0 7F A3 EB 78 */ mr r3, r29 -/* 800ED9A4 38 81 00 08 */ addi r4, r1, 8 -/* 800ED9A8 4B F1 F2 59 */ bl mDoMtx_MtxToRot__FPA4_CfP5csXyz -/* 800ED9AC A8 01 00 0C */ lha r0, 0xc(r1) -/* 800ED9B0 7C 00 00 D0 */ neg r0, r0 -/* 800ED9B4 B0 1E 04 E4 */ sth r0, 0x4e4(r30) -/* 800ED9B8 A8 61 00 0A */ lha r3, 0xa(r1) -/* 800ED9BC 38 03 40 00 */ addi r0, r3, 0x4000 -/* 800ED9C0 B0 1E 04 E6 */ sth r0, 0x4e6(r30) -/* 800ED9C4 A8 01 00 08 */ lha r0, 8(r1) -/* 800ED9C8 B0 1E 04 E8 */ sth r0, 0x4e8(r30) -/* 800ED9CC A8 1E 04 E6 */ lha r0, 0x4e6(r30) -/* 800ED9D0 B0 1E 04 DE */ sth r0, 0x4de(r30) -/* 800ED9D4 A0 1E 2F E8 */ lhz r0, 0x2fe8(r30) -/* 800ED9D8 28 00 00 53 */ cmplwi r0, 0x53 -/* 800ED9DC 40 82 00 2C */ bne lbl_800EDA08 -/* 800ED9E0 A8 1E 30 0E */ lha r0, 0x300e(r30) -/* 800ED9E4 2C 00 00 00 */ cmpwi r0, 0 -/* 800ED9E8 41 82 00 20 */ beq lbl_800EDA08 -/* 800ED9EC 80 7F 05 E0 */ lwz r3, 0x5e0(r31) -/* 800ED9F0 C0 03 00 1C */ lfs f0, 0x1c(r3) -/* 800ED9F4 D0 1E 1F E0 */ stfs f0, 0x1fe0(r30) -/* 800ED9F8 80 7F 05 E0 */ lwz r3, 0x5e0(r31) -/* 800ED9FC C0 03 00 1C */ lfs f0, 0x1c(r3) -/* 800EDA00 80 7E 1F 2C */ lwz r3, 0x1f2c(r30) -/* 800EDA04 D0 03 00 08 */ stfs f0, 8(r3) -lbl_800EDA08: -/* 800EDA08 38 60 00 01 */ li r3, 1 -lbl_800EDA0C: -/* 800EDA0C 39 61 00 20 */ addi r11, r1, 0x20 -/* 800EDA10 48 27 48 19 */ bl _restgpr_29 -/* 800EDA14 80 01 00 24 */ lwz r0, 0x24(r1) -/* 800EDA18 7C 08 03 A6 */ mtlr r0 -/* 800EDA1C 38 21 00 20 */ addi r1, r1, 0x20 -/* 800EDA20 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setSyncRide__9daAlink_cFi.s b/asm/d/a/d_a_alink/setSyncRide__9daAlink_cFi.s deleted file mode 100644 index 4599a55910..0000000000 --- a/asm/d/a/d_a_alink/setSyncRide__9daAlink_cFi.s +++ /dev/null @@ -1,127 +0,0 @@ -lbl_800EE918: -/* 800EE918 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800EE91C 7C 08 02 A6 */ mflr r0 -/* 800EE920 90 01 00 14 */ stw r0, 0x14(r1) -/* 800EE924 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800EE928 93 C1 00 08 */ stw r30, 8(r1) -/* 800EE92C 7C 7E 1B 78 */ mr r30, r3 -/* 800EE930 2C 04 00 00 */ cmpwi r4, 0 -/* 800EE934 41 82 00 5C */ beq lbl_800EE990 -/* 800EE938 88 1E 2F B2 */ lbz r0, 0x2fb2(r30) -/* 800EE93C 28 00 00 00 */ cmplwi r0, 0 -/* 800EE940 40 82 00 50 */ bne lbl_800EE990 -/* 800EE944 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800EE948 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800EE94C 88 04 5E 24 */ lbz r0, 0x5e24(r4) -/* 800EE950 28 00 00 00 */ cmplwi r0, 0 -/* 800EE954 40 82 00 3C */ bne lbl_800EE990 -/* 800EE958 81 83 06 28 */ lwz r12, 0x628(r3) -/* 800EE95C 81 8C 01 88 */ lwz r12, 0x188(r12) -/* 800EE960 7D 89 03 A6 */ mtctr r12 -/* 800EE964 4E 80 04 21 */ bctrl -/* 800EE968 28 03 00 00 */ cmplwi r3, 0 -/* 800EE96C 41 82 00 1C */ beq lbl_800EE988 -/* 800EE970 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800EE974 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800EE978 80 63 5D B8 */ lwz r3, 0x5db8(r3) -/* 800EE97C A0 03 16 C4 */ lhz r0, 0x16c4(r3) -/* 800EE980 28 00 00 07 */ cmplwi r0, 7 -/* 800EE984 41 82 00 0C */ beq lbl_800EE990 -lbl_800EE988: -/* 800EE988 3B E0 00 01 */ li r31, 1 -/* 800EE98C 48 00 00 08 */ b lbl_800EE994 -lbl_800EE990: -/* 800EE990 3B E0 00 00 */ li r31, 0 -lbl_800EE994: -/* 800EE994 7F C3 F3 78 */ mr r3, r30 -/* 800EE998 4B FC 5E 1D */ bl checkServiceWaitMode__9daAlink_cFv -/* 800EE99C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800EE9A0 41 82 00 F0 */ beq lbl_800EEA90 -/* 800EE9A4 7F C3 F3 78 */ mr r3, r30 -/* 800EE9A8 81 9E 06 28 */ lwz r12, 0x628(r30) -/* 800EE9AC 81 8C 01 88 */ lwz r12, 0x188(r12) -/* 800EE9B0 7D 89 03 A6 */ mtctr r12 -/* 800EE9B4 4E 80 04 21 */ bctrl -/* 800EE9B8 28 03 00 00 */ cmplwi r3, 0 -/* 800EE9BC 41 82 00 D4 */ beq lbl_800EEA90 -/* 800EE9C0 A0 1E 2F E8 */ lhz r0, 0x2fe8(r30) -/* 800EE9C4 28 00 00 3C */ cmplwi r0, 0x3c -/* 800EE9C8 40 82 00 C8 */ bne lbl_800EEA90 -/* 800EE9CC 7F C3 F3 78 */ mr r3, r30 -/* 800EE9D0 A0 9E 2F DC */ lhz r4, 0x2fdc(r30) -/* 800EE9D4 4B FE FD AD */ bl checkBowAndSlingItem__9daAlink_cFi -/* 800EE9D8 2C 03 00 00 */ cmpwi r3, 0 -/* 800EE9DC 40 82 00 B4 */ bne lbl_800EEA90 -/* 800EE9E0 7F C3 F3 78 */ mr r3, r30 -/* 800EE9E4 4B FC 4F 21 */ bl checkZeroSpeedF__9daAlink_cCFv -/* 800EE9E8 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800EE9EC 41 82 00 A4 */ beq lbl_800EEA90 -/* 800EE9F0 7F C3 F3 78 */ mr r3, r30 -/* 800EE9F4 38 80 00 5A */ li r4, 0x5a -/* 800EE9F8 4B FB DB 61 */ bl checkUnderMove0BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM -/* 800EE9FC 2C 03 00 00 */ cmpwi r3, 0 -/* 800EEA00 40 82 00 90 */ bne lbl_800EEA90 -/* 800EEA04 7F C3 F3 78 */ mr r3, r30 -/* 800EEA08 38 80 00 5B */ li r4, 0x5b -/* 800EEA0C 4B FB DB 4D */ bl checkUnderMove0BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM -/* 800EEA10 2C 03 00 00 */ cmpwi r3, 0 -/* 800EEA14 40 82 00 7C */ bne lbl_800EEA90 -/* 800EEA18 7F C3 F3 78 */ mr r3, r30 -/* 800EEA1C 38 80 00 4D */ li r4, 0x4d -/* 800EEA20 4B FB DB 39 */ bl checkUnderMove0BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM -/* 800EEA24 2C 03 00 00 */ cmpwi r3, 0 -/* 800EEA28 40 82 00 68 */ bne lbl_800EEA90 -/* 800EEA2C 80 1E 31 A0 */ lwz r0, 0x31a0(r30) -/* 800EEA30 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 800EEA34 41 82 00 5C */ beq lbl_800EEA90 -/* 800EEA38 A8 7E 30 CA */ lha r3, 0x30ca(r30) -/* 800EEA3C 2C 03 00 00 */ cmpwi r3, 0 -/* 800EEA40 41 82 00 10 */ beq lbl_800EEA50 -/* 800EEA44 38 03 FF FF */ addi r0, r3, -1 -/* 800EEA48 B0 1E 30 CA */ sth r0, 0x30ca(r30) -/* 800EEA4C 48 00 00 4C */ b lbl_800EEA98 -lbl_800EEA50: -/* 800EEA50 48 17 8E 1D */ bl cM_rnd__Fv -/* 800EEA54 C0 02 92 98 */ lfs f0, lit_5943(r2) -/* 800EEA58 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 800EEA5C 40 80 00 18 */ bge lbl_800EEA74 -/* 800EEA60 7F C3 F3 78 */ mr r3, r30 -/* 800EEA64 38 80 00 51 */ li r4, 0x51 -/* 800EEA68 C0 22 93 24 */ lfs f1, lit_7450(r2) -/* 800EEA6C 4B FB E5 45 */ bl setSingleAnimeBaseMorf__9daAlink_cFQ29daAlink_c11daAlink_ANMf -/* 800EEA70 48 00 00 14 */ b lbl_800EEA84 -lbl_800EEA74: -/* 800EEA74 7F C3 F3 78 */ mr r3, r30 -/* 800EEA78 38 80 00 52 */ li r4, 0x52 -/* 800EEA7C C0 22 93 24 */ lfs f1, lit_7450(r2) -/* 800EEA80 4B FB E5 31 */ bl setSingleAnimeBaseMorf__9daAlink_cFQ29daAlink_c11daAlink_ANMf -lbl_800EEA84: -/* 800EEA84 7F C3 F3 78 */ mr r3, r30 -/* 800EEA88 4B FC 4D BD */ bl initServiceWaitTime__9daAlink_cFv -/* 800EEA8C 48 00 00 0C */ b lbl_800EEA98 -lbl_800EEA90: -/* 800EEA90 7F C3 F3 78 */ mr r3, r30 -/* 800EEA94 4B FC 4D B1 */ bl initServiceWaitTime__9daAlink_cFv -lbl_800EEA98: -/* 800EEA98 7F C3 F3 78 */ mr r3, r30 -/* 800EEA9C 81 9E 06 28 */ lwz r12, 0x628(r30) -/* 800EEAA0 81 8C 01 88 */ lwz r12, 0x188(r12) -/* 800EEAA4 7D 89 03 A6 */ mtctr r12 -/* 800EEAA8 4E 80 04 21 */ bctrl -/* 800EEAAC 28 03 00 00 */ cmplwi r3, 0 -/* 800EEAB0 41 82 00 14 */ beq lbl_800EEAC4 -/* 800EEAB4 7F C3 F3 78 */ mr r3, r30 -/* 800EEAB8 7F E4 FB 78 */ mr r4, r31 -/* 800EEABC 4B FF F4 31 */ bl setSyncHorse__9daAlink_cFi -/* 800EEAC0 48 00 00 10 */ b lbl_800EEAD0 -lbl_800EEAC4: -/* 800EEAC4 7F C3 F3 78 */ mr r3, r30 -/* 800EEAC8 7F E4 FB 78 */ mr r4, r31 -/* 800EEACC 4B FF FB 81 */ bl setSyncBoar__9daAlink_cFi -lbl_800EEAD0: -/* 800EEAD0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800EEAD4 83 C1 00 08 */ lwz r30, 8(r1) -/* 800EEAD8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800EEADC 7C 08 03 A6 */ mtlr r0 -/* 800EEAE0 38 21 00 10 */ addi r1, r1, 0x10 -/* 800EEAE4 4E 80 00 20 */ blr diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h index 3a73feb858..ab1acab141 100644 --- a/include/d/a/d_a_alink.h +++ b/include/d/a/d_a_alink.h @@ -634,6 +634,7 @@ public: /* 0x19B */ ANM_DIVE, /* 0x19C */ ANM_ODOROKU, // ? /* 0x19D */ ANM_ASHIMOTO, // ? + /* 0x19E */ ANM_MAX, }; enum daAlink_UPPER { @@ -1910,12 +1911,12 @@ public: /* 800E23FC */ void concatMagneBootMtx(); /* 800E243C */ void concatMagneBootInvMtx(); /* 800E247C */ void multVecMagneBootInvMtx(cXyz*); - /* 800E24B0 */ int commonMagneLineCheck(cXyz*, cXyz*); + /* 800E24B0 */ bool commonMagneLineCheck(cXyz*, cXyz*); /* 800E251C */ BOOL checkBootsMoveAnime(int); - /* 800E2580 */ void setHeavyBoots(int); + /* 800E2580 */ int setHeavyBoots(int); /* 800E2738 */ s16 getMagneBootsLocalAngleY(s16, int); /* 800E2808 */ void setMagneBootsMtx(cBgS_PolyInfo*, int); - /* 800E2DC4 */ void cancelMagneBootsOn(); + /* 800E2DC4 */ int cancelMagneBootsOn(); /* 800E2F88 */ int checkMagneBootsFly(); /* 800E3048 */ int procBootsEquipInit(); /* 800E30DC */ int procBootsEquip(); @@ -1953,7 +1954,7 @@ public: /* 800E5170 */ void checkNextActionGrab(); /* 800E53AC */ void initGrabNextMode(); /* 800E53F8 */ void setGrabItemThrow(); - /* 800E57AC */ void checkUpperGrabItemThrow(f32); + /* 800E57AC */ BOOL checkUpperGrabItemThrow(f32); /* 800E5830 */ void putObjLineCheck(dBgS_LinChk&, cXyz*, fopAc_ac_c*); /* 800E5B6C */ void grabLineCheck(cXyz*, cXyz*); /* 800E5BB4 */ void setGrabItemActor(fopAc_ac_c*); @@ -2033,14 +2034,14 @@ public: /* 800EC3D8 */ int procSumouWinLose(); /* 800EC538 */ int procSumouShikoInit(); /* 800EC5F4 */ int procSumouShiko(); - /* 800EC76C */ void checkHorseZeldaBowMode(); - /* 800EC7B0 */ void setHorseZeldaDamage(); - /* 800EC7DC */ BOOL checkHorseDashAccept(); - /* 800EC814 */ BOOL checkCowGame(); + /* 800EC76C */ static BOOL checkHorseZeldaBowMode(); + /* 800EC7B0 */ static void setHorseZeldaDamage(); + /* 800EC7DC */ static BOOL checkHorseDashAccept(); + /* 800EC814 */ static BOOL checkCowGame(); /* 800EC87C */ int getReinRideDirection(); - /* 800EC8F8 */ void checkReinRideBgCheck(); + /* 800EC8F8 */ int checkReinRideBgCheck(); /* 800ECA3C */ void commonInitForceRideRein(); - /* 800ECAAC */ void initForceRideBoar(); + /* 800ECAAC */ int initForceRideBoar(); /* 800ECB58 */ void initForceRideHorse(); /* 800ECBD0 */ void rideGetOff(); /* 800ECD90 */ BOOL checkHorseNotDamageReaction() const; @@ -2056,32 +2057,32 @@ public: /* 800ED1F0 */ void checkHorseNotGrab() const; /* 800ED310 */ void setHorseStirrup(); /* 800ED4B8 */ void changeBoarRunRide(); - /* 800ED4DC */ void setSyncHorsePos(); - /* 800ED78C */ void setSyncBoarPos(); - /* 800ED90C */ void setSyncBoarRunPos(); - /* 800EDA24 */ void setSyncRidePos(); + /* 800ED4DC */ int setSyncHorsePos(); + /* 800ED78C */ int setSyncBoarPos(); + /* 800ED90C */ int setSyncBoarRunPos(); + /* 800EDA24 */ BOOL setSyncRidePos(); /* 800EDA78 */ void setHorseTurnAnime(); /* 800EDB48 */ void getBaseHorseAnime(daAlink_c::daAlink_ANM*); - /* 800EDD6C */ void checkHorseSpecialProc(); - /* 800EDE8C */ void checkHorseServiceWaitAnime(); - /* 800EDEEC */ void setSyncHorse(int); - /* 800EE64C */ void setSyncBoar(int); - /* 800EE918 */ void setSyncRide(int); + /* 800EDD6C */ int checkHorseSpecialProc(); + /* 800EDE8C */ BOOL checkHorseServiceWaitAnime(); + /* 800EDEEC */ int setSyncHorse(int); + /* 800EE64C */ int setSyncBoar(int); + /* 800EE918 */ int setSyncRide(int); /* 800EEAE8 */ void setBaseHorseAnimeFrame(); /* 800EEC98 */ void setBaseBoarAnime(); /* 800EED98 */ void setBaseRideAnime(); - /* 800EEE30 */ void checkHorseSwordUpSpped(); + /* 800EEE30 */ bool checkHorseSwordUpSpped(); /* 800EEE5C */ void setHorseSwordUp(int); - /* 800EEF30 */ void setRideSubjectAngle(s16); + /* 800EEF30 */ int setRideSubjectAngle(s16); /* 800EF050 */ void setBodyAngleRideReadyAnime(); - /* 800EF0E8 */ void checkHorseGetOffWallCheck(cXyz*, cXyz*, s16); - /* 800EF198 */ void checkHorseGetOffDirection(); + /* 800EF0E8 */ BOOL checkHorseGetOffWallCheck(cXyz*, cXyz*, s16); + /* 800EF198 */ int checkHorseGetOffDirection(); /* 800EF35C */ void boarForceGetOff(); /* 800EF394 */ void horseGetOffEnd(); - /* 800EF450 */ void checkNextActionHorse(); - /* 800EF598 */ void checkHorseGetOff(); + /* 800EF450 */ int checkNextActionHorse(); + /* 800EF598 */ BOOL checkHorseGetOff(); /* 800EF6B0 */ void checkHorseGetOffAndSetDoStatus(); - /* 800EF884 */ void setHorseGetOff(int); + /* 800EF884 */ int setHorseGetOff(int); /* 800EF95C */ int procHorseRideInit(); /* 800EFDC4 */ int procHorseRide(); /* 800F038C */ int procHorseGetOffInit(int); @@ -3167,9 +3168,12 @@ public: BOOL checkGrabAnimeSide() const { return checkUpperAnime(0x50); } BOOL checkGrabAnimeCarry() const { return checkUpperAnime(0x60); } bool checkHorseUnderDashStartAnime() const { return checkUnderAnime(0xDD); } + bool checkHorseUnderLashAnime() const { return checkUnderAnime(0x1B3); } bool checkUpperHorseLieAnime() const { return checkUpperAnime(0x265); } bool checkHorseTiredAnime() const { return checkUpperAnime(0x263); } bool checkHorseSwordUpAnime() const { return checkUpperAnime(0xCC); } + bool checkHorseUnderItemAnime() const { return checkUnderAnime(0x19); } + bool checkHorseWalkStartAnm() const { return checkUnderMove0BckNoArc(ANM_WSTARTH); } bool checkIronBallPreSwingAnime() const { return checkUpperAnime(0x19A); } bool checkIronBallSwingAnime() const { return checkUpperAnime(0x19B); } bool checkDashDamageAnime() const { return checkUpperAnime(0xAD); } @@ -3389,7 +3393,7 @@ private: /* 0x006D4 */ void* field_0x06d4; /* 0x006D8 */ void* field_0x06d8; /* 0x006DC */ void* field_0x06dc; - /* 0x006E0 */ void* field_0x06e0; + /* 0x006E0 */ J3DShape* field_0x06e0; /* 0x006E4 */ J3DShape* field_0x06e4; /* 0x006E8 */ J3DShape* field_0x06e8; /* 0x006EC */ J3DShape* field_0x06ec; diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h index 3573bce813..93bf56084b 100644 --- a/include/d/a/d_a_player.h +++ b/include/d/a/d_a_player.h @@ -249,6 +249,8 @@ public: FLG1_UNK_8000 = 0x8000, FLG1_THROW_DAMAGE = 0x4000, FLG1_UNK_2000 = 0x2000, + FLG1_UNK_1000 = 0x1000, + FLG1_UNK_800 = 0x800, FLG1_UNK_80 = 0x80, FLG1_UNK_40 = 0x40, FLG1_UNK_20 = 0x20, @@ -256,6 +258,8 @@ public: FLG1_UNK_4 = 4, FLG1_UNK_2 = 2, FLG1_UNK_1 = 1, + + FLG1_UNK_1800 = 0x1800, }; enum daPy_FLG2 { @@ -304,6 +308,7 @@ public: FLG3_UNK_4000 = 0x4000, FLG3_UNK_200 = 0x200, FLG3_UNK_100 = 0x100, + FLG3_UNK_80 = 0x80, FLG3_UNK_40 = 0x40, FLG3_UNK_20 = 0x20, FLG3_UNK_10 = 0x10, @@ -360,6 +365,7 @@ public: ERFLG2_UNK_100 = 0x100, ERFLG2_UNK_40 = 0x40, ERFLG2_UNK_20 = 0x20, + ERFLG2_UNK_2 = 2, }; enum daPy_RFLG0 { @@ -369,6 +375,7 @@ public: RFLG0_FRONT_ROLL_CRASH = 0x2000, RFLG0_ENEMY_ATTN_LOCK = 0x1000, RFLG0_UNK_400 = 0x400, + RFLG0_UNK_200 = 0x200, RFLG0_UNK_100 = 0x100, RFLG0_UNK_80 = 0x80, RFLG0_UNK_40 = 0x40, @@ -750,6 +757,7 @@ public: void i_offNoResetFlg3(int pFlg) { mNoResetFlg3 &= ~pFlg; } void i_offResetFlg0(int flag) { mResetFlg0 &= ~flag; } + void i_offResetFlg1(int flag) { mResetFlg1 &= ~flag; } void i_onResetFlg0(int flag) { mResetFlg0 |= flag; } void i_onResetFlg1(int flag) { mResetFlg1 |= flag; } @@ -818,4 +826,6 @@ public: static daMidna_c* m_midnaActor; }; +int daPy_addCalcShort(s16* param_0, s16 param_1, s16 param_2, s16 param_3, s16 param_4); + #endif /* D_A_D_A_PLAYER_H */ diff --git a/include/f_op/f_op_actor.h b/include/f_op/f_op_actor.h index 0225e145b1..c528f9af6c 100644 --- a/include/f_op/f_op_actor.h +++ b/include/f_op/f_op_actor.h @@ -249,6 +249,9 @@ public: bool checkHeadLockFlg() const { return mFlags & 0x80; } bool checkDownFlg() const { return mFlags & 0x1; } cXyz& getDownPos() { return mDownPos; } + cXyz& getHeadLockPos() { return mHeadLockPos; } + + void onCutDownHitFlg() { mFlags |= 2; } /* 0x568 */ cXyz mDownPos; /* 0x574 */ cXyz mHeadLockPos; diff --git a/include/m_Do/m_Do_audio.h b/include/m_Do/m_Do_audio.h index 621566f609..1e19e0875b 100644 --- a/include/m_Do/m_Do_audio.h +++ b/include/m_Do/m_Do_audio.h @@ -125,6 +125,10 @@ inline void mDoAud_startFogWipeTrigger(const Vec* param_0) { g_mEnvSeMgr.startFogWipeTrigger((Vec*)param_0); } +inline void mDoAud_changeSubBgmStatus(s32 param_0) { + Z2AudioMgr::getInterface()->changeSubBgmStatus(param_0); +} + inline void mDoAud_mEnvse_framework() { g_mEnvSeMgr.framework(); } diff --git a/include/m_Do/m_Do_mtx.h b/include/m_Do/m_Do_mtx.h index c40dc272c8..5cf53276db 100644 --- a/include/m_Do/m_Do_mtx.h +++ b/include/m_Do/m_Do_mtx.h @@ -314,6 +314,10 @@ public: */ static void copy(const Mtx m) { MTXCopy(m, now); } + static void rotAxisRadS(const Vec* axis, f32 rad) { + MTXRotAxisRad(now, axis, rad); + } + static Mtx now; static Mtx buffer[16]; static Mtx* next; diff --git a/include/rel/d/a/b/d_a_b_gnd/d_a_b_gnd.h b/include/rel/d/a/b/d_a_b_gnd/d_a_b_gnd.h index 6baffa6924..f22becbb72 100644 --- a/include/rel/d/a/b/d_a_b_gnd/d_a_b_gnd.h +++ b/include/rel/d/a/b/d_a_b_gnd/d_a_b_gnd.h @@ -1,6 +1,184 @@ #ifndef D_A_B_GND_H #define D_A_B_GND_H -#include "dolphin/types.h" +#include "d/bg/d_bg_s_acch.h" +#include "d/cc/d_cc_d.h" +#include "d/cc/d_cc_uty.h" +#include "d/msg/d_msg_flow.h" +#include "f_op/f_op_actor_mng.h" + +struct g_himo_s { + /* 80601D40 */ ~g_himo_s(); + /* 80601DA0 */ g_himo_s(); + + /* 0x0 */ cXyz field_0x0[16]; +}; + +class b_gnd_class : public fopEn_enemy_c { +public: + /* 80601960 */ b_gnd_class(); + + bool checkAttackChance() { return field_0x2740 != 0; } + + /* 0x05AC */ request_of_phase_process_class mPhaseReq; + /* 0x05B4 */ request_of_phase_process_class mHorsePhaseReq; + /* 0x05BC */ s16 field_0x05bc; + /* 0x05BE */ u8 field_0x05be; + /* 0x05BF */ u8 field_0x05BF[0x05C0 - 0x05BF]; + /* 0x05C0 */ cXyz field_0x05c0; + /* 0x05CC */ s16 field_0x05cc; + /* 0x05CE */ u8 field_0x05CE[0x05D0 - 0x05CE]; + /* 0x05D0 */ mDoExt_McaMorfSO* mpMorf; + /* 0x05D4 */ mDoExt_McaMorfSO* mpHorseMorf; + /* 0x05D8 */ mDoExt_McaMorf* field_0x05d8; + /* 0x05DC */ Z2CreatureEnemy mZ2Creature; + /* 0x0680 */ Z2CreatureEnemy field_0x0680; + /* 0x0724 */ mDoExt_brkAnm* field_0x0724; + /* 0x0728 */ mDoExt_btkAnm* field_0x0728[6]; + /* 0x0740 */ u8 field_0x0740[0x0744 - 0x0740]; + /* 0x0744 */ mDoExt_btpAnm* field_0x0744; + /* 0x0748 */ int field_0x0748; + /* 0x074C */ mDoExt_btpAnm* field_0x074c; + /* 0x0750 */ mDoExt_btkAnm* field_0x0750; + /* 0x0754 */ u8 field_0x0754[0x0758 - 0x0754]; + /* 0x0758 */ int mAnmID; + /* 0x075C */ int mHorseAnmID; + /* 0x0760 */ f32 field_0x0760; + /* 0x0764 */ u8 field_0x0764[0x0768 - 0x0764]; + /* 0x0768 */ J3DModel* field_0x0768; + /* 0x076C */ J3DModel* field_0x076c; + /* 0x0770 */ u8 field_0x0770[0x0772 - 0x0770]; + /* 0x0772 */ s16 field_0x0772; + /* 0x0774 */ dKy_tevstr_c field_0x0774; + /* 0x0AFC */ s16 field_0x0afc; + /* 0x0AFE */ s16 mActionID; + /* 0x0B00 */ s16 field_0x0b00; + /* 0x0B02 */ u8 field_0x0B02[0x0B94 - 0x0B02]; + /* 0x0B94 */ J3DModel* field_0x0b94[36]; + /* 0x0C24 */ s16 field_0x0c24; + /* 0x0C26 */ s16 field_0x0c26; + /* 0x0C28 */ s16 field_0x0c28; + /* 0x0C2A */ u8 field_0x0C2A[0x0C2C - 0x0C2A]; + /* 0x0C2C */ J3DModel* field_0x0c2c[2]; + /* 0x0C34 */ u8 field_0x0C34[0x0C38 - 0x0C34]; + /* 0x0C38 */ f32 field_0x0c38; + /* 0x0C3C */ s16 field_0x0c3c; + /* 0x0C3E */ u8 field_0x0C3E[0x0C40 - 0x0C3E]; + /* 0x0C40 */ u32 field_0x0c40; + /* 0x0C44 */ s16 field_0x0c44[10]; + /* 0x0C58 */ s16 field_0x0c58; + /* 0x0C5A */ s16 field_0x0c5a; + /* 0x0C5C */ u8 field_0x0C5C[0x0C60 - 0x0C5C]; + /* 0x0C60 */ int field_0x0c60; + /* 0x0C64 */ int field_0x0c64; + /* 0x0C68 */ s16 field_0x0c68; + /* 0x0C6A */ s16 field_0x0c6a; + /* 0x0C6C */ f32 field_0x0c6c; + /* 0x0C70 */ s16 field_0x0c70; + /* 0x0C72 */ s16 field_0x0c72; + /* 0x0C74 */ s16 field_0x0c74; + /* 0x0C76 */ u8 field_0x0C76[0x0C7D - 0x0C76]; + /* 0x0C7D */ u8 field_0x0c7d; + /* 0x0C7E */ u8 field_0x0C7E[0x0C80 - 0x0C7E]; + /* 0x0C80 */ cXyz field_0x0c80; + /* 0x0C8C */ s16 field_0x0c8c; + /* 0x0C8E */ s16 field_0x0c8e; + /* 0x0C90 */ s16 field_0x0c90; + /* 0x0C92 */ s16 field_0x0c92; + /* 0x0C94 */ dBgS_AcchCir field_0x0c94; + /* 0x0CD4 */ dBgS_ObjAcch field_0x0cd4; + /* 0x0EAC */ s16 field_0x0eac; + /* 0x0EAE */ u8 field_0x0EAE[0x0EB0 - 0x0EAE]; + /* 0x0EB0 */ f32 field_0x0eb0; + /* 0x0EB4 */ cXyz field_0x0eb4; + /* 0x0EC0 */ csXyz field_0x0ec0; + /* 0x0EC6 */ u8 field_0x0EC6[0x0EC8 - 0x0EC6]; + /* 0x0EC8 */ dCcD_Stts field_0x0ec8; + /* 0x0F04 */ dCcD_Sph field_0x0f04[2]; + /* 0x1174 */ dCcD_Sph field_0x1174[4]; + /* 0x1654 */ dCcD_Stts field_0x1654; + /* 0x1690 */ dCcD_Sph field_0x1690[3]; + /* 0x1A38 */ dCcD_Sph field_0x1a38; + /* 0x1B70 */ dCcD_Sph field_0x1b70; + /* 0x1CA8 */ dCcD_Cyl field_0x1ca8; + /* 0x1DE4 */ dCcU_AtInfo mAtInfo; + /* 0x1E08 */ u8 field_0x1E08[0x1E0A - 0x1E08]; + /* 0x1E0A */ u16 field_0x1e0a; + /* 0x1E0C */ u16 field_0x1e0c; + /* 0x1E0E */ u8 field_0x1E0E[0x1E0F - 0x1E0E]; + /* 0x1E0F */ s8 field_0x1e0f; + /* 0x1E10 */ f32 field_0x1e10; + /* 0x1E14 */ cXyz field_0x1e14; + /* 0x1E20 */ cXyz field_0x1e20; + /* 0x1E2C */ Z2SoundObjSimple field_0x1e2c; + /* 0x1E4C */ f32 field_0x1e4c; + /* 0x1E50 */ csXyz field_0x1e50; + /* 0x1E56 */ u8 field_0x1e56[5]; + /* 0x1E5B */ u8 field_0x1E5B[0x1E5C - 0x1E5B]; + /* 0x1E5C */ cXyz field_0x1e5c[5]; + /* 0x1E98 */ cXyz field_0x1e98[5]; + /* 0x1ED4 */ cXyz field_0x1ed4[5]; + /* 0x1F10 */ Z2SoundObjSimple field_0x1f10[5]; + /* 0x1FB0 */ u8 field_0x1FB0[0x1FB4 - 0x1FB0]; + /* 0x1FB4 */ fopAc_ac_c* mMantChild; + /* 0x1FB8 */ cXyz field_0x1fb8; + /* 0x1FC4 */ int field_0x1fc4; + /* 0x1FC8 */ s16 field_0x1fc8; + /* 0x1FCA */ s16 field_0x1fca; + /* 0x1FCC */ s16 field_0x1fcc; + /* 0x1FCE */ u8 field_0x1FCE[0x1FD0 - 0x1FCE]; + /* 0x1FD0 */ f32 field_0x1fd0; + /* 0x1FD4 */ s16 field_0x1fd4; + /* 0x1FD6 */ s16 field_0x1fd6; + /* 0x1FD8 */ cXyz field_0x1fd8[2]; + /* 0x1FF0 */ g_himo_s field_0x1ff0[2]; + /* 0x2170 */ mDoExt_3DlineMat1_c field_0x2170[2]; + /* 0x21E8 */ mDoExt_3DlineMat1_c field_0x21e8; + /* 0x2224 */ dKy_tevstr_c field_0x2224; + /* 0x25AC */ u32 field_0x25ac; + /* 0x25B0 */ u32 field_0x25b0; + /* 0x25B4 */ u32 field_0x25b4; + /* 0x25B8 */ u32 field_0x25b8; + /* 0x25BC */ u32 field_0x25bc; + /* 0x25C0 */ u32 field_0x25c0; + /* 0x25C4 */ u32 field_0x25c4; + /* 0x25C8 */ u32 field_0x25c8; + /* 0x25CC */ u32 field_0x25cc; + /* 0x25D0 */ u32 field_0x25d0; + /* 0x25D4 */ u8 field_0x25D4[0x25D8 - 0x25D4]; + /* 0x25D8 */ u32 field_0x25d8; + /* 0x25DC */ u32 field_0x25dc; + /* 0x25E0 */ u32 field_0x25e0; + /* 0x25E4 */ u32 field_0x25e4[3]; + /* 0x25F0 */ u8 field_0x25F0[0x2688 - 0x25F0]; + /* 0x2688 */ u32 field_0x2688; + /* 0x268C */ u32 field_0x268c[3]; + /* 0x2698 */ u8 field_0x2698[0x269C - 0x2698]; + /* 0x269C */ cXyz field_0x269c; + /* 0x26A8 */ cXyz field_0x26a8[2]; + /* 0x26C0 */ s16 field_0x26c0; + /* 0x26C2 */ s16 field_0x26c2; + /* 0x26C4 */ s16 field_0x26c4; + /* 0x26C6 */ s16 field_0x26c6; + /* 0x26C8 */ cXyz field_0x26c8; + /* 0x26D4 */ cXyz field_0x26d4; + /* 0x26E0 */ cXyz field_0x26e0; + /* 0x26EC */ cXyz field_0x26ec; + /* 0x26F8 */ cXyz field_0x26f8; + /* 0x2704 */ cXyz field_0x2704; + /* 0x2710 */ cXyz field_0x2710; + /* 0x271C */ s16 field_0x271c; + /* 0x271E */ u8 field_0x271E[0x272C - 0x271E]; + /* 0x272C */ s16 field_0x272c; + /* 0x272E */ u8 field_0x272E[0x2730 - 0x272E]; + /* 0x2730 */ f32 field_0x2730; + /* 0x2734 */ f32 field_0x2734; + /* 0x2738 */ u8 field_0x2738; + /* 0x2739 */ u8 field_0x2739[0x273C - 0x2739]; + /* 0x273C */ f32 field_0x273c; + /* 0x2740 */ u8 field_0x2740; + /* 0x2741 */ u8 field_0x2741[0x2744 - 0x2741]; + /* 0x2744 */ dMsgFlow_c mMsgFlow; +}; #endif /* D_A_B_GND_H */ diff --git a/include/rel/d/a/d_a_horse/d_a_horse.h b/include/rel/d/a/d_a_horse/d_a_horse.h index d11c9b28a4..30b1349515 100644 --- a/include/rel/d/a/d_a_horse/d_a_horse.h +++ b/include/rel/d/a/d_a_horse/d_a_horse.h @@ -34,6 +34,7 @@ private: /* 0x0 */ u8 field_0x0[0xE4]; }; // Size: 0xE4 +class daHoZelda_c; class daHorse_c : public fopAc_ac_c { public: enum daHorse_ERFLG0 { @@ -41,6 +42,8 @@ public: /* 0x010 */ MOVE_ACCEPT = 0x10, /* 0x080 */ RIDE_RUN_FLG = 0x80, /* 0x100 */ CUT_TURN_CANCEL = 0x100, + + ERFLG0_UNK_18 = 0x18, }; enum daHorse_RFLG0 { @@ -153,7 +156,7 @@ public: bool checkNoBombProc() const { return field_0x16b4 == 0 || field_0x16b4 == 1; } bool checkResetStateFlg0(daHorse_RFLG0 flag) const { return mResetStateFlg0 & flag; } - bool checkEndResetStateFlg0(daHorse_ERFLG0 flag) { return mEndResetStateFlg0 & flag; } + bool checkEndResetStateFlg0(daHorse_ERFLG0 flag) const { return mEndResetStateFlg0 & flag; } bool checkStateFlg0(daHorse_FLG0 flag) const { return mStateFlg0 & flag; } f32 getNormalMaxSpeedF() { return mNormalMaxSpeedF; } f32 getLashMaxSpeedF() { return mLashMaxSpeedF; } @@ -169,10 +172,29 @@ public: void onEndResetStateFlg0(daHorse_ERFLG0 i_flag) { mEndResetStateFlg0 |= i_flag;} void offNoDrawWait() { offStateFlg0(NO_DRAW_WAIT); } int checkSpecialWallHit(const cXyz& param_0) { return (this->*mpCheckSpecialWallHitFn)(param_0); } + MtxP getSaddleMtx() { return field_0x570->i_getAnmMtx(21); } + MtxP getRootMtx() { return field_0x570->i_getAnmMtx(0); } + f32 getAnmFrameMax(int i_idx) const { return field_0x5b0[i_idx].getEnd(); } + f32 getAnmFrame(int i_idx) const { return field_0x5b0[i_idx].getFrame(); } + s16 getAimNeckAngleY() const { return mAimNeckAngleY; } + f32 getMorfFrame() const { return mMorfFrame; } + f32 getBlendRate() { return field_0x594[1].getRatio(); } + u16 getAnmIdx(int i_idx) const { return mAnmIdx[i_idx]; } + + daHoZelda_c* i_getZeldaActor() { return (daHoZelda_c*)mZeldaActorKeep.getActor(); } bool checkTurnStandCamera() const { return checkResetStateFlg0(TURN_STAND_CAMERA); } bool checkTurnStand() const { return checkResetStateFlg0(TURN_STAND); } bool checkRodeoMode() const { return checkStateFlg0(RODEO_MODE); } + bool checkCutTurnCancel() const { return checkEndResetStateFlg0(CUT_TURN_CANCEL); } + bool checkTurnCancelKeep() const { return checkStateFlg0(TURN_CANCEL_KEEP); } + bool checkTurn() const { return field_0x16b4 == 3 && field_0x1720 == 0; } + bool checkStop() const { return field_0x16b4 == 2; } + bool checkJump() const { return field_0x16b4 == 4; } + bool checkWait() const { return field_0x16b4 == 0; } + bool checkLand() const { return field_0x16b4 == 5 && field_0x171a == 0; } + bool checkGetOff() const { return fabsf(speedF) < 3.0f; } + bool checkEnemySearch() { return checkResetStateFlg0(ENEMY_SEARCH); } void onTagJump(f32 param_0, f32 param_1, f32 param_2) { field_0x1768 = param_0; @@ -181,6 +203,10 @@ public: onEndResetStateFlg0(ERFLG0_UNK_1); } + void onMoveAccept() { onEndResetStateFlg0(MOVE_ACCEPT); } + void onPlayerLash() { onEndResetStateFlg0(ERFLG0_UNK_18); } + void offPlayerBackRideLash() { offStateFlg0(PLAYER_BACK_RIDE_LASH); } + static u8 const m_footJointTable[8]; static f32 const m_callLimitDistance2; @@ -216,7 +242,9 @@ public: /* 0x16B8 */ u8 field_0x16b8; /* 0x16B9 */ u8 field_0x16b9[2]; /* 0x16BB */ u8 mRodeoPointCnt; - /* 0x16BC */ u8 field_0x16bc[0x36]; + /* 0x16BC */ u8 field_0x16bc[0x16C4 - 0x16BC]; + /* 0x16C4 */ u16 mAnmIdx[3]; + /* 0x16CA */ u8 field_0x16ca[0x16F2 - 0x16CA]; /* 0x16F2 */ s16 mAimNeckAngleY; /* 0x16F4 */ u8 field_0x16f4[0x8]; /* 0x16FC */ s16 mDemoMoveAngle; @@ -225,7 +253,11 @@ public: /* 0x1704 */ u8 field_0x1704[2]; /* 0x1706 */ s16 mCowHitAngle; /* 0x1708 */ s16 mCowHit; - /* 0x170A */ u8 field_0x170a[0x1E]; + /* 0x170A */ u8 field_0x170a[0x171A - 0x170A]; + /* 0x171A */ s16 field_0x171a; + /* 0x171C */ u8 field_0x171c[0x1720 - 0x171C]; + /* 0x1720 */ s16 field_0x1720; + /* 0x1722 */ u8 field_0x1722[0x1728 - 0x1722]; /* 0x1728 */ int field_0x1728; /* 0x172C */ u8 field_0x172c[0x14]; /* 0x1740 */ u32 field_0x1740; diff --git a/include/rel/d/a/d_a_hozelda/d_a_hozelda.h b/include/rel/d/a/d_a_hozelda/d_a_hozelda.h index 5c6dedc3b9..4cb4e4feb0 100644 --- a/include/rel/d/a/d_a_hozelda/d_a_hozelda.h +++ b/include/rel/d/a/d_a_hozelda/d_a_hozelda.h @@ -2,5 +2,94 @@ #define D_A_HOZELDA_H #include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +class daHoZelda_matAnm_c : public J3DMaterialAnm { +public: + /* 80845EAC */ void init(); + + /* 80848D54 */ virtual ~daHoZelda_matAnm_c(); + /* 80845EDC */ virtual void calc(J3DMaterial*) const; + + static bool mEyeMoveFlg; + static u8 mMorfFrame; + + /* 0x0F4 */ f32 field_0xf4; + /* 0x0F8 */ f32 field_0xf8; + /* 0x0FC */ f32 mNowOffsetX; + /* 0x100 */ f32 mNowOffsetY; +}; + +class daHoZelda_hio_c; + +class daHoZelda_c : public fopAc_ac_c { +public: + /* 80846000 */ void createHeap(); + /* 80846718 */ void modelCallBack(u16); + /* 808469B0 */ void create(); + /* 80846DB0 */ ~daHoZelda_c(); + /* 80846F4C */ void setDoubleAnime(f32, f32, f32, u16, u16, f32); + /* 8084718C */ void setUpperAnime(u16); + /* 80847234 */ void resetUpperAnime(); + /* 808472C0 */ void setSingleAnime(u16, f32, f32, s16, f32); + /* 80847430 */ void animePlay(); + /* 80847574 */ void setEyeBtp(u16); + /* 808475F0 */ void setEyeBtk(u16, u8); + /* 80847670 */ void setNormalFace(); + /* 808476B0 */ void setAnm(); + /* 80847E44 */ void setBowModel(); + /* 80847F54 */ void setMatrix(); + /* 80848058 */ void shootArrow(); + /* 80848090 */ void deleteArrow(); + /* 80848118 */ void setBowBck(u16); + /* 8084819C */ void setRideOffset(); + /* 80848204 */ void clearEyeMove(); + /* 80848254 */ void setEyeMove(cXyz const*, s16, s16); + /* 808484B8 */ void setNeckAngle(); + /* 80848774 */ void searchBodyAngle(); + /* 808489CC */ void execute(); + /* 80848B64 */ void draw(); + + u8 checkBowMode() const { return field_0x6d8; } + void setDamageInit() { field_0x6db = 1; } + + /* 0x568 */ request_of_phase_process_class mPhase; + /* 0x570 */ J3DModel* mpZeldaModel; + /* 0x574 */ J3DModel* mpBowModel; + /* 0x578 */ mDoExt_btpAnm mEyeBtp; + /* 0x590 */ mDoExt_btkAnm mEyeBtk; + /* 0x5A8 */ mDoExt_MtxCalcAnmBlendTblOld* field_0x5a8; + /* 0x5AC */ mDoExt_AnmRatioPack field_0x5ac[3]; + /* 0x5C4 */ mDoExt_MtxCalcOldFrame* field_0x5c4; + /* 0x5C8 */ daPy_frameCtrl_c field_0x5c8[3]; + /* 0x610 */ daHoZelda_matAnm_c* field_0x610[2]; + /* 0x618 */ Z2Creature mSound; + /* 0x6A8 */ mDoExt_bckAnm mBowBck; + /* 0x6C4 */ daPy_actorKeep_c mArrowAcKeep; + /* 0x6CC */ daPy_actorKeep_c field_0x6cc; + /* 0x6D4 */ daHoZelda_hio_c* mpHIO; + /* 0x6D8 */ u8 field_0x6d8; + /* 0x6D9 */ u8 field_0x6d9; + /* 0x6DA */ u8 field_0x6da; + /* 0x6DB */ u8 field_0x6db; + /* 0x6DC */ u8 field_0x6DC[0x6DD - 0x6DC]; + /* 0x6DD */ u8 field_0x6dd; + /* 0x6DE */ u8 field_0x6de; + /* 0x6DF */ u8 field_0x6df; + /* 0x6E0 */ s8 mReverb; + /* 0x6E1 */ u8 field_0x6E1[0x6E4 - 0x6E1]; + /* 0x6E4 */ u16 field_0x6e4; + /* 0x6E6 */ u16 field_0x6e6; + /* 0x6E8 */ u16 mUpperAnmID; + /* 0x6EA */ s16 mBowAnmID; + /* 0x6EC */ s16 field_0x6ec; + /* 0x6EE */ s16 field_0x6ee; + /* 0x6F0 */ u8 field_0x6F0[0x6F2 - 0x6F0]; + /* 0x6F2 */ s16 field_0x6f2; + /* 0x6F4 */ s16 field_0x6f4; + /* 0x6F6 */ u8 field_0x6F6[0x6F8 - 0x6F6]; + /* 0x6F8 */ Vec field_0x6f8; + /* 0x704 */ Vec* mpRideOffset; +}; #endif /* D_A_HOZELDA_H */ diff --git a/include/rel/d/a/d_a_spinner/d_a_spinner.h b/include/rel/d/a/d_a_spinner/d_a_spinner.h index 1dd62d83a2..418ae6d453 100644 --- a/include/rel/d/a/d_a_spinner/d_a_spinner.h +++ b/include/rel/d/a/d_a_spinner/d_a_spinner.h @@ -80,6 +80,8 @@ public: s16 getAngleY() { return shape_angle.y + field_0xa7e; } + void forceDelete() { mDeleteFlg = 1; } + private: /* 0x568 */ J3DModel* mpModel; /* 0x56C */ mDoExt_bckAnm mBck; diff --git a/include/rel/d/a/e/d_a_e_wb/d_a_e_wb.h b/include/rel/d/a/e/d_a_e_wb/d_a_e_wb.h index 0489bd65a3..17db7837ef 100644 --- a/include/rel/d/a/e/d_a_e_wb/d_a_e_wb.h +++ b/include/rel/d/a/e/d_a_e_wb/d_a_e_wb.h @@ -19,9 +19,22 @@ public: void setPlayerRide(); void getOff(); BOOL checkDownDamage(); - u8 checkNormalRideMode() const; + BOOL checkNormalRideMode() const; void setRunRideMode(); + MtxP getRideMtx() { return field_0x5e0->getModel()->i_getAnmMtx(15); } + f32 nowAnimeFrame() const { return field_0x5e0->getFrame(); } + s16 getWaitRollAngle() const { return mWaitRollAngle; } + bool checkGetOff() const { return speedF < 3.0f; } + + J3DModel* getModel() { + if (field_0x5e0 != NULL) { + return field_0x5e0->getModel(); + } + + return NULL; + } + private: /* 0x05AC */ request_of_phase_process_class mPhase; /* 0x05B4 */ s16 field_0x5b4; @@ -144,6 +157,7 @@ private: /* 0x1722 */ s8 field_0x1722; /* 0x1723 */ u8 field_0x1723[0x17c4 - 0x1723]; /* 0x17C4 */ u32 field_0x17c4; + /* 0x17C8 */ u8 field_0x17c8[0x17D0 - 0x17C8]; /* 0x17D0 */ u32 field_0x17d0[4]; /* 0x17E0 */ u8 field_0x17e0; /* 0x17E1 */ u8 field_0x17e1; diff --git a/include/rel/d/a/obj/d_a_obj_iceleaf/d_a_obj_iceleaf.h b/include/rel/d/a/obj/d_a_obj_iceleaf/d_a_obj_iceleaf.h index e0bc3ffa27..7b19a4c879 100644 --- a/include/rel/d/a/obj/d_a_obj_iceleaf/d_a_obj_iceleaf.h +++ b/include/rel/d/a/obj/d_a_obj_iceleaf/d_a_obj_iceleaf.h @@ -1,6 +1,54 @@ #ifndef D_A_OBJ_ICELEAF_H #define D_A_OBJ_ICELEAF_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" +#include "d/cc/d_cc_d.h" + +class daObjIceLeaf_c : public fopAc_ac_c { +public: + /* 80C24738 */ void initBaseMtx(); + /* 80C24774 */ void setBaseMtx(); + /* 80C249E4 */ void Create(); + /* 80C24BC4 */ void setAnmPos(); + /* 80C24C9C */ void CreateHeap(); + /* 80C24E14 */ void create(); + /* 80C25158 */ void execute(); + /* 80C25360 */ void action(); + /* 80C2541C */ void modeDropWait(); + /* 80C25614 */ void modeDrop(); + /* 80C258F8 */ void modePlayerWait(); + /* 80C25904 */ void modeRide(); + /* 80C25908 */ void event_proc_call(); + /* 80C259C4 */ void actionWait(); + /* 80C259C8 */ void actionOrderEvent(); + /* 80C25A68 */ void actionEvent(); + /* 80C25AC4 */ void actionDead(); + /* 80C25AC8 */ void setFallSE(); + /* 80C25BB8 */ void draw(); + /* 80C25C50 */ void _delete(); + + void offRide() { mRide = false; } + void setBreakEffect() { mBreakEffect = true; } + + /* 0x568 */ request_of_phase_process_class mPhase; + /* 0x570 */ J3DModel* mpModel; + /* 0x574 */ dBgS_ObjAcch mAcch; + /* 0x74C */ dBgS_AcchCir mAcchCir; + /* 0x78C */ dCcD_Stts mStts; + /* 0x7C8 */ dCcD_Cyl mCyl; + /* 0x904 */ mDoExt_bckAnm* mpBck; + /* 0x908 */ J3DTransformInfo field_0x908; + /* 0x928 */ u8 mAction; + /* 0x929 */ u8 field_0x929; + /* 0x92A */ u8 field_0x92a; + /* 0x92B */ u8 field_0x92b; + /* 0x92C */ s16 mEventID; + /* 0x930 */ Mtx field_0x930; + /* 0x960 */ u8 mRide; + /* 0x961 */ u8 field_0x961; + /* 0x962 */ u8 mBreakEffect; + /* 0x964 */ cXyz field_0x964; + /* 0x970 */ cXyz field_0x970; +}; #endif /* D_A_OBJ_ICELEAF_H */ diff --git a/include/std/cmath.h b/include/std/cmath.h index 9a9e342f91..6de737b779 100644 --- a/include/std/cmath.h +++ b/include/std/cmath.h @@ -6,6 +6,10 @@ namespace std { float fabs(float num) { return fabsf(num); } + +float abs(float num) { + return fabsf(num); +} } // namespace std #endif diff --git a/rel/d/a/b/d_a_b_gnd/d_a_b_gnd.cpp b/rel/d/a/b/d_a_b_gnd/d_a_b_gnd.cpp index 9c6135e487..13351161e3 100644 --- a/rel/d/a/b/d_a_b_gnd/d_a_b_gnd.cpp +++ b/rel/d/a/b/d_a_b_gnd/d_a_b_gnd.cpp @@ -3,7 +3,7 @@ // Translation Unit: d_a_b_gnd // -#include "rel/d/a/b/d_a_b_gnd/d_a_b_gnd.h" +// #include "rel/d/a/b/d_a_b_gnd/d_a_b_gnd.h" #include "d/cc/d_cc_d.h" #include "dol2asm.h" diff --git a/rel/d/a/d_a_hozelda/d_a_hozelda.cpp b/rel/d/a/d_a_hozelda/d_a_hozelda.cpp index 5cda7b6f41..114043db17 100644 --- a/rel/d/a/d_a_hozelda/d_a_hozelda.cpp +++ b/rel/d/a/d_a_hozelda/d_a_hozelda.cpp @@ -3,7 +3,8 @@ // Translation Unit: d_a_hozelda // -#include "rel/d/a/d_a_hozelda/d_a_hozelda.h" +// #include "rel/d/a/d_a_hozelda/d_a_hozelda.h" +#include "dolphin/types.h" #include "dol2asm.h" // diff --git a/rel/d/a/obj/d_a_obj_iceleaf/d_a_obj_iceleaf.cpp b/rel/d/a/obj/d_a_obj_iceleaf/d_a_obj_iceleaf.cpp index 5f4c535888..be114102c2 100644 --- a/rel/d/a/obj/d_a_obj_iceleaf/d_a_obj_iceleaf.cpp +++ b/rel/d/a/obj/d_a_obj_iceleaf/d_a_obj_iceleaf.cpp @@ -3,7 +3,8 @@ // Translation Unit: d_a_obj_iceleaf // -#include "rel/d/a/obj/d_a_obj_iceleaf/d_a_obj_iceleaf.h" +// #include "rel/d/a/obj/d_a_obj_iceleaf/d_a_obj_iceleaf.h" +#include "dolphin/types.h" #include "d/cc/d_cc_d.h" #include "dol2asm.h" diff --git a/src/d/a/d_a_alink.cpp b/src/d/a/d_a_alink.cpp index 0885adcd19..d8a7f51392 100644 --- a/src/d/a/d_a_alink.cpp +++ b/src/d/a/d_a_alink.cpp @@ -5698,65 +5698,57 @@ COMPILER_STRIP_GATE(0x8039190C, &daAlink_c::m_handRightInSidePos); /* 80391918-80391924 01DF78 000C+00 0/1 0/0 0/0 .rodata horseLocalLeft$17678 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const horseLocalLeft[12] = { - 0x41, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +static const Vec horseLocalLeft = { + 20.0f, 0.0f, 0.0f }; -COMPILER_STRIP_GATE(0x80391918, &horseLocalLeft); #pragma pop /* 80391924-80391930 01DF84 000C+00 0/1 0/0 0/0 .rodata horseLocalRight$17679 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const horseLocalRight[12] = { - 0xC1, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +static const Vec horseLocalRight = { + -20.0f, 0.0f, 0.0f }; -COMPILER_STRIP_GATE(0x80391924, &horseLocalRight); #pragma pop /* 80391930-8039193C 01DF90 000C+00 0/1 0/0 0/0 .rodata horseLocalBack$17680 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const horseLocalBack[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x48, 0x00, 0x00, +static const Vec horseLocalBack = { + 0.0f, 0.0f, -200.0f }; -COMPILER_STRIP_GATE(0x80391930, &horseLocalBack); #pragma pop /* 8039193C-80391948 01DF9C 000C+00 0/1 0/0 0/0 .rodata boarLocalLeft$17681 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const boarLocalLeft[12] = { - 0x43, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x90, 0x00, 0x00, +static const Vec boarLocalLeft = { + 200.0f, 0.0f, -18.0f }; -COMPILER_STRIP_GATE(0x8039193C, &boarLocalLeft); #pragma pop /* 80391948-80391954 01DFA8 000C+00 0/1 0/0 0/0 .rodata boarLocalRight$17682 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const boarLocalRight[12] = { - 0xC3, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x90, 0x00, 0x00, +static const Vec boarLocalRight = { + -200.0f, 0.0f, -18.0f }; -COMPILER_STRIP_GATE(0x80391948, &boarLocalRight); #pragma pop /* 80391954-80391960 01DFB4 000C+00 1/1 0/0 0/0 .rodata localHorseRun$18095 */ -SECTION_RODATA static u8 const localHorseRun_18095[12] = { - 0x41, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0x34, 0x00, 0x00, +static const Vec localHorseRun_18095 = { + 15.0f, 0.0f, -45.0f }; -COMPILER_STRIP_GATE(0x80391954, &localHorseRun_18095); /* 80391960-8039196C 01DFC0 000C+00 1/1 0/0 0/0 .rodata localHorseRun$18103 */ -SECTION_RODATA static u8 const localHorseRun_18103[12] = { - 0x41, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00, +static const Vec localHorseRun_18103 = { + 30.0f, 0.0f, -10.0f }; -COMPILER_STRIP_GATE(0x80391960, &localHorseRun_18103); /* 8039196C-80391978 01DFCC 000C+00 1/1 0/0 0/0 .rodata localOffset$18237 */ -SECTION_RODATA static u8 const localOffset_18237[12] = { - 0xC1, 0xF0, 0x00, 0x00, 0xC1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +static const Vec localOffset_18237 = { + -30.0f, -18.0f, 0.0f }; -COMPILER_STRIP_GATE(0x8039196C, &localOffset_18237); /* 80391978-80391984 01DFD8 000C+00 1/1 0/0 0/0 .rodata @18938 */ SECTION_RODATA static u8 const lit_18938[12] = { @@ -13190,7 +13182,7 @@ static u8 lit_4416[12]; #pragma pop /* 804255BC-804255C8 0522DC 000C+00 1/3 0/0 0/0 .bss l_localHorseRidePos */ -static u8 l_localHorseRidePos[12]; +static Vec l_localHorseRidePos; /* 804255C8-804255D4 0522E8 000C+00 0/1 0/0 0/0 .bss @4417 */ #pragma push @@ -13199,7 +13191,7 @@ static u8 lit_4417[12]; #pragma pop /* 804255D4-804255E0 0522F4 000C+00 1/3 0/0 0/0 .bss l_localBoarRidePos */ -static u8 l_localBoarRidePos[12]; +static Vec l_localBoarRidePos; /* 804255E0-804255EC 052300 000C+00 0/1 0/0 0/0 .bss @4418 */ #pragma push diff --git a/src/d/a/d_a_alink_cut.inc b/src/d/a/d_a_alink_cut.inc index ed00c573f5..a07a62907c 100644 --- a/src/d/a/d_a_alink_cut.inc +++ b/src/d/a/d_a_alink_cut.inc @@ -3,8 +3,29 @@ * Player Sword action handling */ +#include "rel/d/a/b/d_a_b_gnd/d_a_b_gnd.h" + /* 800D0D38-800D0E08 0CB678 00D0+00 1/1 0/0 0/0 .text daAlink_searchNightStalker__FP10fopAc_ac_cPv */ +// matches with literals +#ifdef NONMATCHING +static fopAc_ac_c* daAlink_searchNightStalker(fopAc_ac_c* i_actor, void*) { + if (fopAcM_GetName(i_actor) == PROC_E_S1) { + daPy_py_c* player_p = daPy_getLinkPlayerActorClass(); + if (player_p->current.pos.abs2XZ(i_actor->current.pos) < 250000.0f && + fabsf(player_p->current.pos.y - i_actor->current.pos.y) < 300.0f) + { + return i_actor; + } + } else if (fopAcM_GetName(i_actor) == PROC_B_GND && + static_cast(i_actor)->checkAttackChance()) + { + return i_actor; + } + + return NULL; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -13,6 +34,7 @@ static asm void daAlink_searchNightStalker(fopAc_ac_c* param_0, void* param_1) { #include "asm/d/a/d_a_alink/daAlink_searchNightStalker__FP10fopAc_ac_cPv.s" } #pragma pop +#endif /* 800D0E08-800D0E98 0CB748 0090+00 1/1 0/0 0/0 .text checkLightSwordMtrl__9daAlink_cFv */ @@ -21,7 +43,8 @@ void daAlink_c::checkLightSwordMtrl() { stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); if (i_dStage_stagInfo_GetSaveTbl(stag_info) == 0x17 || - fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchNightStalker, NULL)) { + fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchNightStalker, NULL)) + { i_onNoResetFlg3(FLG3_UNK_100000); return; } @@ -93,6 +116,38 @@ void daAlink_c::changeCutFast() { } /* 800D10E0-800D1268 0CBA20 0188+00 1/1 0/0 0/0 .text checkCutFastReady__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +bool daAlink_c::checkCutFastReady() { + if (mProcID == PROC_CUT_FAST_READY) { + return true; + } + + if (checkNotBattleStage()) { + return false; + } + + fopAc_ac_c* target_p = mAttention->LockonTarget(0); + + if (mEquipItem == NO_ITEM && (i_dComIfGs_isEventBit(0x2A80) || i_checkNoResetFlg3(FLG3_UNK_80))) + { + if (i_checkModeFlg(1) && !i_checkRideOn() && i_checkSwordGet() && i_checkModeFlg(4) && + !i_checkModeFlg(0x40000) && mTargetedActor == NULL && checkEnemyGroup(target_p)) + { + f32 xz_dist = target_p->mEyePos.abs2XZ(current.pos); + f32 y_dist = fabsf(target_p->mEyePos.y - current.pos.y); + + if ((xz_dist < 160000.0f && y_dist < 300.0f) || + (i_checkNoResetFlg0(FLG0_UNK_1000000) && xz_dist < 202500.0f && y_dist < 350.0f)) + { + return true; + } + } + } + + return false; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -101,6 +156,7 @@ asm bool daAlink_c::checkCutFastReady() { #include "asm/d/a/d_a_alink/checkCutFastReady__9daAlink_cFv.s" } #pragma pop +#endif /* 800D1268-800D1310 0CBBA8 00A8+00 9/9 0/0 0/0 .text setSwordModel__9daAlink_cFv */ void daAlink_c::setSwordModel() { @@ -161,9 +217,11 @@ void daAlink_c::resetCombo(int param_0) { void daAlink_c::checkComboCnt() { if ((mEquipItem == EQUIP_SWORD && mComboCutCount == 2) && (i_checkAttentionLock() && - (mAtCps[0].ChkAtHit() || mAtCps[1].ChkAtHit() || mAtCps[2].ChkAtHit()))) { + (mAtCps[0].ChkAtHit() || mAtCps[1].ChkAtHit() || mAtCps[2].ChkAtHit()))) + { i_onNoResetFlg0(FLG0_UNK_8000); } + if (field_0x307e > 0) { field_0x307e--; } else { @@ -300,7 +358,8 @@ BOOL daAlink_c::setSwordHitVibration(dCcD_GObjInf* i_gobj) { var_r4 = 3; } } else if (field_0x2fd0 == 2 || - (i_gobj->GetAtHitAc() != NULL && fopAcM_GetGroup(i_gobj->GetAtHitAc()) == 3)) { + (i_gobj->GetAtHitAc() != NULL && fopAcM_GetGroup(i_gobj->GetAtHitAc()) == 3)) + { var_r4 = 2; } else if (field_0x2fd0 == 1) { var_r4 = 4; @@ -634,7 +693,8 @@ BOOL daAlink_c::checkDownAttackState() { (i_checkWolf() && (fopAcM_GetName(mTargetedActor) == PROC_E_PO || fopAcM_GetName(mTargetedActor) == PROC_E_HP) && - enemy->getDownPos().abs2(current.pos) < lit_7174)))) { + enemy->getDownPos().abs2(current.pos) < lit_7174)))) + { return true; } @@ -835,7 +895,8 @@ int daAlink_c::procCutNormal() { if ((cutDir == DIR_RIGHT && mCutType == CUT_TYPE_NM_LEFT && frameCtrl->getFrame() > lit_7448) || (cutDir == DIR_LEFT && mCutType == CUT_TYPE_NM_RIGHT && - frameCtrl->getFrame() > lit_7448)) { + frameCtrl->getFrame() > lit_7448)) + { field_0x300a = cutDir; } } @@ -849,7 +910,8 @@ int daAlink_c::procCutNormal() { checkNextAction(0); } } else if ((!(frameCtrl->getFrame() > field_0x3484) && field_0x300a == 4) || - !checkCutCancelNextMode(3)) { + !checkCutCancelNextMode(3)) + { if (frameCtrl->getFrame() > field_0x3484) { resetCombo(1); } @@ -1011,6 +1073,79 @@ int daAlink_c::procCutFinishInit(int i_type) { } /* 800D382C-800D3ADC 0CE16C 02B0+00 1/0 0/0 0/0 .text procCutFinish__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procCutFinish() { + if (checkGroundSpecialMode()) { + return 1; + } + + daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; + + setBodyAngleXReadyAnime(1); + cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_move_c0::m.mDeceleration); + i_onEndResetFlg0(ERFLG0_UNK_8000000); + setComboReserb(); + + checkCutTurnCharge(); + checkCutAtnActorChange(); + + if (mCutType == CUT_TYPE_MORTAL_DRAW_A || mCutType == CUT_TYPE_FINISH_STAB) { + field_0x2f99 = 5; + } else { + field_0x2f99 = 4; + } + + if (frameCtrl_p->getFrame() >= field_0x300e.x) { + onModeFlg(0x100); + } else if (frameCtrl_p->getFrame() >= field_0x300c) { + offModeFlg(0x100); + } + + if (checkAnmEnd(frameCtrl_p)) { + resetCombo(1); + + if (field_0x3008 > 0) { + if (!(frameCtrl_p->getFrame() > field_0x3484) || !checkCutCancelNextMode(3)) { + field_0x3008--; + } + } else if (mDemo.getDemoMode() == 0x24 || mDemo.getDemoMode() == 0x54) { + dComIfGp_evmng_cutEnd(field_0x3184); + } else { + mNormalSpeed = 0.0f; + field_0x2f98 = 2; + checkNextAction(0); + } + } else if (!(frameCtrl_p->getFrame() > field_0x3484) || !checkCutCancelNextMode(3)) { + if (frameCtrl_p->getFrame() > field_0x3484) { + resetCombo(1); + } + + if (changeCutReverseProc((daAlink_ANM)field_0x3198)) { + return 1; + } + + setShapeAngleToAtnActor(field_0x300e.y); + + if (cLib_distanceAngleS(getShapeAngleYAtnActor(), shape_angle.y) < 0x800) { + field_0x300e.y = 1; + } + + current.angle.y = shape_angle.y; + + if (frameCtrl_p->getFrame() >= field_0x3478 && frameCtrl_p->getFrame() < field_0x347c) { + if (!i_checkNoResetFlg0(FLG0_UNK_40)) { + seStartSwordCut(field_0x32d0); + mNormalSpeed = field_0x3480; + } + + i_onResetFlg0(RFLG0_UNK_2); + } + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1019,6 +1154,7 @@ asm int daAlink_c::procCutFinish() { #include "asm/d/a/d_a_alink/procCutFinish__9daAlink_cFv.s" } #pragma pop +#endif /* 800D3ADC-800D3CCC 0CE41C 01F0+00 2/2 0/0 0/0 .text procCutFinishJumpUpInit__9daAlink_cFv */ int daAlink_c::procCutFinishJumpUpInit() { @@ -1055,8 +1191,8 @@ int daAlink_c::procCutFinishJumpUpInit() { field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration; f32 var_f31 = daAlinkHIO_cutFnJU_c0::m.mCutAnm.mStartFrame; - setCylAtParam(getSwordAtType(), dCcG_At_Spl_UNK_1, 3, 1, 3, daAlinkHIO_cutFnJU_c0::m.mAttackRadius, - lit_7625); + setCylAtParam(getSwordAtType(), dCcG_At_Spl_UNK_1, 3, 1, 3, + daAlinkHIO_cutFnJU_c0::m.mAttackRadius, lit_7625); field_0x32cc = Z2SE_AL_SWORD_SWING_L; setSingleAnime(ANM_CUT_TWIRL, daAlinkHIO_cutFnJU_c0::m.mCutAnm.mSpeed, var_f31, @@ -1089,12 +1225,14 @@ int daAlink_c::procCutFinishJumpUp() { } if (mDemo.getDemoMode() != 0x52 && - current.pos.y < mLastJumpPos.y - daAlinkHIO_cutFnJU_c0::m.mFallHeight) { + current.pos.y < mLastJumpPos.y - daAlinkHIO_cutFnJU_c0::m.mFallHeight) + { return procFallInit(2, daAlinkHIO_cutFnJU_c0::m.mFallInterpolation); } if (frameCtrl->getFrame() >= daAlinkHIO_cutFnJU_c0::m.mAttackStartFrame && - frameCtrl->getFrame() < daAlinkHIO_cutFnJU_c0::m.mAttackEndFrame) { + frameCtrl->getFrame() < daAlinkHIO_cutFnJU_c0::m.mAttackEndFrame) + { if (!i_checkNoResetFlg0(FLG0_UNK_40)) { seStartSwordCut(field_0x32cc); } @@ -1210,7 +1348,8 @@ int daAlink_c::procCutReverseInit(daAlink_c::daAlink_ANM i_anmID) { int temp_r3; if (mCutType == CUT_TYPE_MORTAL_DRAW_A || mCutType == CUT_TYPE_MORTAL_DRAW_B || - mCutType == CUT_TYPE_JUMP) { + mCutType == CUT_TYPE_JUMP) + { temp_r3 = 5; } else { temp_r3 = 3; @@ -1359,8 +1498,8 @@ int daAlink_c::procCutJumpLand() { if (frameCtrl->checkAnmEnd()) { checkNextAction(0); - } else if (frameCtrl->getFrame() > daAlinkHIO_cutJump_c0::m.mJumpSpinDelay && - field_0x3198 != 2) { + } else if (frameCtrl->getFrame() > daAlinkHIO_cutJump_c0::m.mJumpSpinDelay && field_0x3198 != 2) + { procCutTurnInit(1, field_0x3198); } else { if (frameCtrl->getFrame() > daAlinkHIO_cutJump_c0::m.mLandAnm.mCheckFrame) { @@ -1619,6 +1758,133 @@ int daAlink_c::procCutTurnMoveInit(int param_0) { } /* 800D4EFC-800D53C8 0CF83C 04CC+00 1/0 0/0 0/0 .text procCutTurnMove__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procCutTurnMove() { + setShapeAngleToAtnActor(0); + + if (!checkWoodSwordEquip()) { + simpleAnmPlay(m_nSwordBtk); + } else { + field_0x3008++; + if (field_0x3008 >= 14.0f) { + field_0x3008 = 100; + } + } + + field_0x2fe4 = shape_angle.y; + i_onNoResetFlg1(FLG1_UNK_10000000); + + if (checkGroundSpecialMode()) { + return 1; + } + + BOOL var_r4 = m_nSwordBtk->getFrame() >= 14.0f || field_0x3008 >= 14.0f; + + if (field_0x300c != 0) { + if (checkDownAttackState() && !var_r4) { + setDoStatusEmphasys(0x30); + } else if (checkCutHeadState() && !var_r4) { + setDoStatusEmphasys(0x77); + } else { + setDoStatus(0x86); + } + } else { + field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration; + } + + if (mDemo.getDemoMode() == 0x5B || mDemo.getDemoMode() == 0x5C) { + if (var_r4) { + dComIfGp_evmng_cutEnd(field_0x3184); + } + } else if ((field_0x300c == 0 && swordButton()) || (field_0x300c != 0 && doButton())) { + f32 var_f30 = 0.0f; + i_onResetFlg0(RFLG0_UNK_10); + + if (checkInputOnR()) { + int direction = getDirectionFromAngle(field_0x2fe2 - field_0x2fe4); + daAlink_ANM anm = ANM_MAX; + + cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, 4, 12000, 0x2000); + + f32 var_f31; + if (field_0x2f98 == 0 || field_0x2f98 == 1) { + if (direction == DIR_LEFT || direction == DIR_RIGHT) { + anm = ANM_CUT_TURN_CHARGE_MOVE; + var_f31 = daAlinkHIO_cutTurn_c0::m.mMoveLRInterpolation; + mNormalSpeed *= 0.5f; + } else if (field_0x2f98 != direction) { + mNormalSpeed *= -0.5f; + current.angle.y = field_0x2fe2; + } + } else if (direction == DIR_FORWARD || direction == DIR_BACKWARD) { + anm = ANM_CUT_TURN_CHARGE; + var_f31 = daAlinkHIO_cutTurn_c0::m.mMoveFBInterpolation; + mNormalSpeed *= 0.5f; + } else if (field_0x2f98 != direction) { + mNormalSpeed *= -0.5f; + current.angle.y = field_0x2fe2; + } + + if (field_0x2f98 == direction) { + var_f30 = daAlinkHIO_cutTurn_c0::m.mChargeMoveAccel * field_0x33ac; + } else { + field_0x2f98 = direction; + } + + if (anm != ANM_MAX) { + setSingleAnimeBaseSpeed(anm, 0.0f, var_f31); + } + } + + setNormalSpeedF(var_f30, daAlinkHIO_cutTurn_c0::m.mChargeMoveDecel); + + f32 var_f31_2; + if (field_0x2f98 == DIR_FORWARD) { + var_f31_2 = daAlinkHIO_cutTurn_c0::m.mMoveFBAnmSpeed; + } else if (field_0x2f98 == DIR_BACKWARD) { + var_f31_2 = -daAlinkHIO_cutTurn_c0::m.mMoveFBAnmSpeed; + } else if (field_0x2f98 == DIR_RIGHT) { + var_f31_2 = -daAlinkHIO_cutTurn_c0::m.mMoveLRAnmSpeed; + } else { + var_f31_2 = daAlinkHIO_cutTurn_c0::m.mMoveLRAnmSpeed; + } + + daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; + + f32 temp_f0 = mNormalSpeed / field_0x594; + setWaterInAnmRate(frameCtrl_p, temp_f0 * var_f31_2); + + if (var_f31_2 >= 0.0f) { + frameCtrl_p->setLoop(frameCtrl_p->getStart()); + } else { + frameCtrl_p->setLoop(frameCtrl_p->getEnd()); + } + + initBasAnime(); + + if (checkZeroSpeedF()) { + onModeFlg(1); + mSpeedModifier = 0.0f; + } else { + offModeFlg(1); + mSpeedModifier = 1.0f; + } + } else if (var_r4) { + if (field_0x300c != 0) { + procCutLargeJumpInit(); + } else { + procCutTurnInit(0, 1); + } + } else if (field_0x300c != 0) { + checkDoCutAction(); + } else { + cancelCutCharge(); + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1627,8 +1893,89 @@ asm int daAlink_c::procCutTurnMove() { #include "asm/d/a/d_a_alink/procCutTurnMove__9daAlink_cFv.s" } #pragma pop +#endif /* 800D53C8-800D57F8 0CFD08 0430+00 2/1 0/0 0/0 .text procCutDownInit__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procCutDownInit() { + if (mDemo.getDemoMode() == 0x51 && (mProcID == PROC_CUT_DOWN || mProcID == PROC_CUT_DOWN_LAND)) + { + return 1; + } + + commonProcInit(PROC_CUT_DOWN); + resetCombo(1); + + cXyz sp2C; + field_0x300e.x = 0; + + if (mTargetedActor != NULL) { + sp2C = static_cast(mTargetedActor)->getDownPos(); + field_0x280c.setData(mTargetedActor); + + if (fopAcM_GetName(mTargetedActor) == PROC_B_GND) { + field_0x300e.x = 1; + } + } else { + sp2C.set(current.pos.x + cM_ssin(shape_angle.y) * 100.0f, current.pos.y, + current.pos.z + cM_scos(shape_angle.y) * 100.0f); + field_0x280c.clearData(); + } + + if (field_0x300e.x != 0) { + mNormalSpeed = 0.0f; + speed.y = 0.0f; + offModeFlg(2); + } else { + setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_JUMP, &daAlinkHIO_cutDown_c0::m.mJumpAnm); + sp2C.y += 50.0f; + + if (fopAcM_gc_c::gndCheck(&sp2C)) { + sp2C.y = fopAcM_gc_c::getGroundY(); + } else { + sp2C.y -= 50.0f; + } + + shape_angle.y = cLib_targetAngleY(¤t.pos, &sp2C); + current.angle.y = shape_angle.y; + + sp2C.x -= cM_ssin(shape_angle.y) * 95.0f; + sp2C.z -= cM_scos(shape_angle.y) * 95.0f; + + f32 var_f31 = current.pos.absXZ(sp2C); + if (var_f31 > 800.0f) { + var_f31 = 800.0f; + } + + speed.y = daAlinkHIO_cutDown_c0::m.mRecoverSpeedH; + + if (i_checkNoResetFlg0(FLG0_UNDERWATER)) { + mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX; + speed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY; + } else if (checkHeavyStateOn(1, 1)) { + speed.y *= 1.5f; + } + + f32 var_f4 = speed.y + mGravity; + f32 var_f5 = 1.0f / mGravity; + + f32 temp_f1 = sp2C.y - (current.pos.y - var_f5 * (var_f4 * var_f4) * 0.5f); + if (temp_f1 > 0.0f) { + temp_f1 = 0.0f; + } + + temp_f1 = JMAFastSqrt(temp_f1 * 2.0f * var_f5); + mNormalSpeed = var_f31 / (temp_f1 - var_f4 * var_f5); + field_0x300c = 0; + } + + setSwordVoiceSe(Z2SE_AL_V_TODOME_JUMP); + setCutType(CUT_TYPE_DOWN); + dComIfGp_setPlayerStatus1(0, 0x400000); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1637,6 +1984,7 @@ asm int daAlink_c::procCutDownInit() { #include "asm/d/a/d_a_alink/procCutDownInit__9daAlink_cFv.s" } #pragma pop +#endif /* 800D57F8-800D58A0 0D0138 00A8+00 1/0 0/0 0/0 .text procCutDown__9daAlink_cFv */ int daAlink_c::procCutDown() { @@ -1656,6 +2004,52 @@ int daAlink_c::procCutDown() { /* 800D58A0-800D5ADC 0D01E0 023C+00 1/1 0/0 0/0 .text * procCutDownLandInit__9daAlink_cFP13fopEn_enemy_c */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procCutDownLandInit(fopEn_enemy_c* i_enemy) { + commonProcInit(PROC_CUT_DOWN_LAND); + checkCutLandDamage(); + setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_STAB, &daAlinkHIO_cutDown_c0::m.mLandAnm); + + u32 var_r30; + if (mDemo.getDemoMode() == 0x51 || (i_enemy != NULL && i_enemy->checkDownFlg() && + mSwordTopPos.abs2XZ(i_enemy->getDownPos()) < 10000.0f && + fabsf(i_enemy->current.pos.y - current.pos.y) < 100.0f)) + { + field_0x300e.x = 1; + if (i_enemy != NULL) { + i_enemy->onCutDownHitFlg(); + + csXyz angle(0x4000, shape_angle.y, 0); + i_dComIfGp_setHitMark(3, NULL, &i_enemy->getDownPos(), &angle, NULL, 0); + } + + var_r30 = 0x20; + field_0x3008 = daAlinkHIO_cutDown_c0::m.mSuccessStopTime; + dComIfGp_getVibration().StartShock(4, 31, cXyz(0.0f, 1.0f, 0.0f)); + } else { + var_r30 = mPolySound; + field_0x300e.x = 0; + field_0x3008 = daAlinkHIO_cutDown_c0::m.mFailStopTime; + } + + mZ2Link.startCollisionSE(Z2SE_HIT_SWORD_STAB, var_r30); + field_0x300c = 0; + mNormalSpeed = 0.0f; + + i_offResetFlg0(RFLG0_UNK_8000000); + field_0x2f9d = 4; + + setFootEffectProcType(2); + i_onResetFlg1(RFLG1_UNK_30); + field_0x300e.y = 0; + + dComIfGp_setPlayerStatus1(0, 0x400000); + field_0x3588 = l_halfAtnWaitBaseAnime; + field_0x2f99 = 4; + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1664,8 +2058,61 @@ asm int daAlink_c::procCutDownLandInit(fopEn_enemy_c* param_0) { #include "asm/d/a/d_a_alink/procCutDownLandInit__9daAlink_cFP13fopEn_enemy_c.s" } #pragma pop +#endif /* 800D5ADC-800D5C88 0D041C 01AC+00 1/0 0/0 0/0 .text procCutDownLand__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procCutDownLand() { + if (checkGroundSpecialMode()) { + return 1; + } + + daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; + field_0x2f99 = 4; + + if (field_0x300c != 0) { + i_onEndResetFlg0(ERFLG0_UNK_8000000); + } + + if (checkAnmEnd(frameCtrl_p)) { + if (field_0x300c == 0) { + if (field_0x3008 != 0) { + field_0x3008--; + } else if (field_0x300e.x != 0) { + if (mDemo.getDemoMode() == 0x51) { + dComIfGp_evmng_cutEnd(field_0x3184); + } else { + procBackJumpInit(1); + } + } else { + setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_MISS, + &daAlinkHIO_cutDown_c0::m.mMissAnm); + field_0x300c = 1; + } + } else { + checkNextAction(0); + } + } else if (field_0x300c != 0) { + if (frameCtrl_p->getFrame() >= 37.0f) { + field_0x300e.y = 0; + } else if (frameCtrl_p->getFrame() >= 30.0f) { + field_0x300e.y = 254; + } + + if (frameCtrl_p->checkPass(54.0f)) { + seStartSwordCut(Z2SE_SWORD_STICK_PULLOUT); + } + + if (frameCtrl_p->getFrame() > daAlinkHIO_cutDown_c0::m.mMissAnm.mCheckFrame) { + onModeFlg(4); + checkNextAction(1); + } + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1674,8 +2121,57 @@ asm int daAlink_c::procCutDownLand() { #include "asm/d/a/d_a_alink/procCutDownLand__9daAlink_cFv.s" } #pragma pop +#endif /* 800D5C88-800D5FC8 0D05C8 0340+00 2/1 0/0 0/0 .text procCutHeadInit__9daAlink_cFv */ +// small regalloc +#ifdef NONMATCHING +int daAlink_c::procCutHeadInit() { + fopEn_enemy_c* enemy_p = (fopEn_enemy_c*)mTargetedActor; + + if (mDemo.getDemoMode() == 0x53 && (mProcID == PROC_CUT_HEAD || mProcID == PROC_CUT_HEAD_LAND)) + { + return 1; + } + + commonProcInit(PROC_CUT_HEAD); + resetCombo(1); + setSingleAnimeParam(ANM_CUT_HEAD_JUMP, &daAlinkHIO_cutHead_c0::m.mJumpAnm); + setSpecialGravity(daAlinkHIO_cutHead_c0::m.mGravity, mMaxFallSpeed, 0); + + cXyz sp2C; + if (enemy_p != NULL) { + sp2C = enemy_p->getHeadLockPos() - current.pos; + field_0x280c.setData(enemy_p); + } else { + sp2C.set(cM_ssin(shape_angle.y) * 200.0f, 200.0f, cM_scos(shape_angle.y) * 200.0f); + field_0x280c.clearData(); + } + + f32 fvar9 = cLib_minMaxLimit(sp2C.y, 30.0f, daAlinkHIO_cutHead_c0::m.mMaxHeight); + f32 fvar10 = JMAFastSqrt((fvar9 * -2.0f) / mGravity); + speed.y = fvar10 * -mGravity; + + f32 fvar5 = sp2C.absXZ(); + if (fvar5 > daAlinkHIO_cutHead_c0::m.mMaxDistance) { + fvar5 = daAlinkHIO_cutHead_c0::m.mMaxDistance; + } + + field_0x3478 = (fvar5 * 2.0f) / (fvar10 * 3.0f * fvar10); + mNormalSpeed = field_0x3478 * fvar10 * 2.0f; + field_0x300e.x = 0; + + current.angle.y = sp2C.atan2sX_Z(); + shape_angle.y = current.angle.y; + + setSwordVoiceSe(Z2SE_AL_V_KABUTO_JUMP); + setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 3, daAlinkHIO_cutHead_c0::m.mSwordLength, + daAlinkHIO_cutHead_c0::m.mSwordRadius); + setCutType(5); + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1684,6 +2180,7 @@ asm int daAlink_c::procCutHeadInit() { #include "asm/d/a/d_a_alink/procCutHeadInit__9daAlink_cFv.s" } #pragma pop +#endif /* 800D5FC8-800D6130 0D0908 0168+00 1/0 0/0 0/0 .text procCutHead__9daAlink_cFv */ int daAlink_c::procCutHead() { @@ -1711,7 +2208,8 @@ int daAlink_c::procCutHead() { } if (frameCtrl->getFrame() >= daAlinkHIO_cutHead_c0::m.mAttackStartFrame && - frameCtrl->getFrame() < daAlinkHIO_cutHead_c0::m.mAttackEndFrame) { + frameCtrl->getFrame() < daAlinkHIO_cutHead_c0::m.mAttackEndFrame) + { if (!i_checkNoResetFlg0(FLG0_UNK_40)) { seStartSwordCut(Z2SE_AL_SWORD_SWING_L); } @@ -1794,7 +2292,8 @@ int daAlink_c::procCutLargeJumpCharge() { */ int daAlink_c::procCutLargeJumpInit() { if (mDemo.getDemoMode() == 0x56 && - (mProcID == PROC_CUT_LARGE_JUMP || mProcID == PROC_CUT_LARGE_JUMP_LAND)) { + (mProcID == PROC_CUT_LARGE_JUMP || mProcID == PROC_CUT_LARGE_JUMP_LAND)) + { return 1; } @@ -1847,7 +2346,8 @@ int daAlink_c::procCutLargeJump() { } if (frameCtrl->getFrame() >= daAlinkHIO_cutLargeJump_c0::m.mJumpAttackStartFrame && - frameCtrl->getFrame() < daAlinkHIO_cutLargeJump_c0::m.mJumpAttackEndFrame) { + frameCtrl->getFrame() < daAlinkHIO_cutLargeJump_c0::m.mJumpAttackEndFrame) + { if (!i_checkNoResetFlg0(FLG0_UNK_40)) { seStartSwordCut(Z2SE_AL_SWORD_SWING_S); } @@ -1922,7 +2422,9 @@ int daAlink_c::procCutLargeJumpLand() { } else { checkNextAction(0); } - } else if (frameCtrl->getFrame() > daAlinkHIO_cutLargeJump_c0::m.mSpinSlashCheckFrame && field_0x3198 != 2) { + } else if (frameCtrl->getFrame() > daAlinkHIO_cutLargeJump_c0::m.mSpinSlashCheckFrame && + field_0x3198 != 2) + { procCutTurnInit(1, field_0x3198); } else if (frameCtrl->getFrame() > daAlinkHIO_cutLargeJump_c0::m.mLandAnm.mCheckFrame) { checkNextAction(1); @@ -1997,10 +2499,13 @@ int daAlink_c::procSwordUnequipSp() { } } else { field_0x3198 = 1; - setSingleAnimeBaseSpeed(ANM_FINISH_END, daAlinkHIO_cut_c0::m.mFlourishEndAnmSpeed, lit_6109); + setSingleAnimeBaseSpeed(ANM_FINISH_END, daAlinkHIO_cut_c0::m.mFlourishEndAnmSpeed, + lit_6109); } } else if (field_0x3198 != 0) { - if (!(frameCtrl->getFrame() > daAlinkHIO_cut_c0::m.mFlourishControlStartFrame) || !checkNextAction(1)) { + if (!(frameCtrl->getFrame() > daAlinkHIO_cut_c0::m.mFlourishControlStartFrame) || + !checkNextAction(1)) + { if (frameCtrl->getFrame() >= lit_8779) { field_0x2f92 = 1; } else if (frameCtrl->getFrame() >= lit_8780) { @@ -2031,7 +2536,9 @@ int daAlink_c::procSwordUnequipSp() { if (frameCtrl->checkPass(lit_8502) || frameCtrl->checkPass(lit_8781)) { seStartSwordCut(0x20006); - } else if (frameCtrl->checkPass(lit_8784) || frameCtrl->checkPass(lit_8785) || frameCtrl->checkPass(lit_8786)) { + } else if (frameCtrl->checkPass(lit_8784) || frameCtrl->checkPass(lit_8785) || + frameCtrl->checkPass(lit_8786)) + { seStartSwordCut(0x20007); } } diff --git a/src/d/a/d_a_alink_grab.inc b/src/d/a/d_a_alink_grab.inc index 31d741dadf..332840f11b 100644 --- a/src/d/a/d_a_alink_grab.inc +++ b/src/d/a/d_a_alink_grab.inc @@ -301,7 +301,7 @@ asm void daAlink_c::setGrabItemThrow() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkUpperGrabItemThrow(f32 param_0) { +asm BOOL daAlink_c::checkUpperGrabItemThrow(f32 param_0) { nofralloc #include "asm/d/a/d_a_alink/checkUpperGrabItemThrow__9daAlink_cFf.s" } diff --git a/src/d/a/d_a_alink_horse.inc b/src/d/a/d_a_alink_horse.inc index eb41b83c4f..1932e1403d 100644 --- a/src/d/a/d_a_alink_horse.inc +++ b/src/d/a/d_a_alink_horse.inc @@ -3,45 +3,53 @@ * Player Epona riding handling */ +#include "rel/d/a/d_a_horse/d_a_horse.h" +#include "rel/d/a/d_a_hozelda/d_a_hozelda.h" +#include "rel/d/a/e/d_a_e_wb/d_a_e_wb.h" +#include "rel/d/a/obj/d_a_obj_iceleaf/d_a_obj_iceleaf.h" + /* 800EC724-800EC758 0E7064 0034+00 3/3 0/0 0/0 .text daAlink_searchBoar__FP10fopAc_ac_cPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void* daAlink_searchBoar(fopAc_ac_c* param_0, void* param_1) { - nofralloc -#include "asm/d/a/d_a_alink/daAlink_searchBoar__FP10fopAc_ac_cPv.s" +static void* daAlink_searchBoar(fopAc_ac_c* i_actor, void*) { + if (fopAcM_GetName(i_actor) == PROC_E_WB) { + e_wb_class* e_wb_p = (e_wb_class*)i_actor; + + if (e_wb_p->getModel() != NULL) { + return i_actor; + } + } + + return NULL; } -#pragma pop /* 800EC758-800EC76C 0E7098 0014+00 1/1 0/0 0/0 .text daAlink_searchCoach__FP10fopAc_ac_cPv */ -static fopAc_ac_c* daAlink_searchCoach(fopAc_ac_c* param_0, void* param_1) { - if (fopAcM_GetName(param_0) == PROC_NPC_COACH) { - return param_0; +static fopAc_ac_c* daAlink_searchCoach(fopAc_ac_c* i_actor, void*) { + if (fopAcM_GetName(i_actor) == PROC_NPC_COACH) { + return i_actor; } return NULL; } /* 800EC76C-800EC7B0 0E70AC 0044+00 3/3 0/0 0/0 .text checkHorseZeldaBowMode__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkHorseZeldaBowMode() { - nofralloc -#include "asm/d/a/d_a_alink/checkHorseZeldaBowMode__9daAlink_cFv.s" +BOOL daAlink_c::checkHorseZeldaBowMode() { + if (i_dComIfGp_getHorseActor() == NULL) { + return false; + } + + daHoZelda_c* zelda_p = i_dComIfGp_getHorseActor()->i_getZeldaActor(); + return zelda_p != NULL && zelda_p->checkBowMode(); } -#pragma pop /* 800EC7B0-800EC7DC 0E70F0 002C+00 4/4 0/0 0/0 .text setHorseZeldaDamage__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setHorseZeldaDamage() { - nofralloc -#include "asm/d/a/d_a_alink/setHorseZeldaDamage__9daAlink_cFv.s" +void daAlink_c::setHorseZeldaDamage() { + if (i_dComIfGp_getHorseActor() != NULL) { + daHoZelda_c* zelda_p = i_dComIfGp_getHorseActor()->i_getZeldaActor(); + if (zelda_p != NULL) { + zelda_p->setDamageInit(); + } + } } -#pragma pop /* 800EC7DC-800EC814 0E711C 0038+00 2/2 0/0 0/0 .text checkHorseDashAccept__9daAlink_cFv */ @@ -71,14 +79,65 @@ int daAlink_c::getReinRideDirection() { /* 800EC8F8-800ECA3C 0E7238 0144+00 1/1 0/0 0/0 .text checkReinRideBgCheck__9daAlink_cFv */ +// issue with sp38 member setting +#ifdef NONMATCHING +int daAlink_c::checkReinRideBgCheck() { + int direction = getReinRideDirection(); + + fopAc_ac_c* temp_r4 = field_0x27f4; + const Vec* offset_p; + if (fopAcM_GetName(temp_r4) == PROC_HORSE) { + if (direction == DIR_BACKWARD) { + offset_p = &horseLocalBack; + } else if (direction == DIR_LEFT) { + offset_p = &horseLocalLeft; + } else { + offset_p = &horseLocalRight; + } + } else if (direction == DIR_LEFT) { + offset_p = &boarLocalLeft; + } else { + offset_p = &boarLocalRight; + } + + cXyz sp2C; + cXyz sp38(temp_r4->current.pos.x, temp_r4->current.pos.y, temp_r4->current.pos.z); + + mDoMtx_stack_c::transS(field_0x27f4->current.pos); + mDoMtx_stack_c::YrotM(field_0x27f4->shape_angle.y); + mDoMtx_stack_c::multVec(offset_p, &sp2C); + + dBgS_AcchCir* acchcir_p = field_0x18B0; + for (int i = 0; i < 6; i++) { + sp38.y = acchcir_p->GetWallH(); + sp38.y += current.pos.y; + sp2C.y = sp38.y; + + if (commonLineCheck(&sp2C, &sp38)) { + return 0; + } + + if (i == 2) { + acchcir_p = field_0x18B0; + sp2C.x = current.pos.x; + sp2C.z = current.pos.z; + } else { + acchcir_p++; + } + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkReinRideBgCheck() { +asm int daAlink_c::checkReinRideBgCheck() { nofralloc #include "asm/d/a/d_a_alink/checkReinRideBgCheck__9daAlink_cFv.s" } #pragma pop +#endif /* 800ECA3C-800ECAAC 0E737C 0070+00 3/3 0/0 0/0 .text commonInitForceRideRein__9daAlink_cFv */ void daAlink_c::commonInitForceRideRein() { @@ -96,14 +155,23 @@ void daAlink_c::commonInitForceRideRein() { } /* 800ECAAC-800ECB58 0E73EC 00AC+00 1/1 0/0 0/0 .text initForceRideBoar__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::initForceRideBoar() { - nofralloc -#include "asm/d/a/d_a_alink/initForceRideBoar__9daAlink_cFv.s" +int daAlink_c::initForceRideBoar() { + e_wb_class* e_wb = (e_wb_class*)fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchBoar, NULL); + if (e_wb == NULL) { + return 0; + } + + commonInitForceRideRein(); + e_wb->current.pos = current.pos; + e_wb->shape_angle.y = shape_angle.y; + e_wb->current.angle.y = shape_angle.y; + mRideStatus = 2; + + mRideAcKeep.setData(e_wb); + field_0x384c = (cXyz*)&l_boarBaseAnime; + e_wb->setPlayerRide(); + return 1; } -#pragma pop /* 800ECB58-800ECBD0 0E7498 0078+00 4/4 0/0 0/0 .text initForceRideHorse__9daAlink_cFv */ void daAlink_c::initForceRideHorse() { @@ -116,14 +184,48 @@ void daAlink_c::initForceRideHorse() { } /* 800ECBD0-800ECD90 0E7510 01C0+00 5/5 0/0 0/0 .text rideGetOff__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::rideGetOff() { - nofralloc -#include "asm/d/a/d_a_alink/rideGetOff__9daAlink_cFv.s" +void daAlink_c::rideGetOff() { + if (checkHorseRide()) { + daHorse_c* horse_p = i_dComIfGp_getHorseActor(); + if (horse_p != NULL) { + horse_p->offRideFlg(); + } + + mZ2Link.setRiding(false); + } else if (checkBoarRide()) { + e_wb_class* boar_p = (e_wb_class*)mRideAcKeep.getActor(); + if (boar_p != NULL) { + boar_p->getOff(); + } + } else if (checkSpinnerRide()) { + daSpinner_c* spinner_p = (daSpinner_c*)mRideAcKeep.getActor(); + if (spinner_p != NULL) { + spinner_p->forceDelete(); + } + + seStartOnlyReverb(Z2SE_AL_SPINNER_END); + } else if (checkCanoeRide()) { + if (mEquipItem == 0x10B) { + mEquipItem = NO_ITEM; + } + } else if (checkBoardRide()) { + static_cast(mRideAcKeep.getActor())->offRide(); + + if (checkEventRun()) { + static_cast(mRideAcKeep.getActor())->setBreakEffect(); + } + } + + if (!checkBoardRide() || checkEventRun()) { + mRideAcKeep.clearData(); + } + + mRideStatus = 0; + i_offNoResetFlg1(FLG1_UNK_1800); + mAttentionInfo.field_0xa = 10; + shape_angle.x = 0; + shape_angle.z = 0; } -#pragma pop /* 800ECD90-800ECDC4 0E76D0 0034+00 1/1 0/0 0/0 .text checkHorseNotDamageReaction__9daAlink_cCFv */ @@ -167,19 +269,19 @@ BOOL daAlink_c::checkHorseSubjectivity() const { /* 800ECF9C-800ECFF4 0E78DC 0058+00 2/2 0/0 0/0 .text setHorseSwordUpAnime__9daAlink_cFv */ void daAlink_c::setHorseSwordUpAnime() { - setUpperAnimeBaseSpeed(0xCC, daAlinkHIO_horse_c0::m.mSwordUpAnmSpeed, daAlinkHIO_horse_c0::m.mSwordUpInterpolation); + setUpperAnimeBaseSpeed(0xCC, daAlinkHIO_horse_c0::m.mSwordUpAnmSpeed, + daAlinkHIO_horse_c0::m.mSwordUpInterpolation); setFaceBck(0xE8, 1, 0xFFFF); } /* 800ECFF4-800ED074 0E7934 0080+00 1/1 0/0 0/0 .text setHorseTurnUpperAnime__9daAlink_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setHorseTurnUpperAnime(int param_0) { - nofralloc -#include "asm/d/a/d_a_alink/setHorseTurnUpperAnime__9daAlink_cFi.s" +void daAlink_c::setHorseTurnUpperAnime(int i_useLAnime) { + if (checkHorseNoUpperAnime() || (i_useLAnime == FALSE && checkHorseTurnRAnime()) || + (i_useLAnime == TRUE && checkHorseTurnLAnime())) + { + setUpperAnimeBaseMorf(!i_useLAnime ? (u16)0x24C : (u16)0x24D, lit_7450); + } } -#pragma pop /* 800ED074-800ED0D4 0E79B4 0060+00 9/9 0/0 0/0 .text checkHorseNoUpperAnime__9daAlink_cCFv */ BOOL daAlink_c::checkHorseNoUpperAnime() const { @@ -223,41 +325,168 @@ void daAlink_c::changeBoarRunRide() { } /* 800ED4DC-800ED78C 0E7E1C 02B0+00 7/7 0/0 0/0 .text setSyncHorsePos__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::setSyncHorsePos() { + daHorse_c* horse_p = i_dComIfGp_getHorseActor(); + + if (horse_p == NULL) { + if (mProcID == PROC_DEAD || mProcID == PROC_GET_ITEM) { + return 1; + } + + rideGetOff(); + checkWaitAction(); + return 0; + } + + field_0x2f99 = 0x60; + + if (mProcID == PROC_HORSE_RUN || mProcID == PROC_HORSE_HANG || + checkUnderMove0BckNoArc(ANM_HORSE_CROUCH) || checkUnderMove0BckNoArc(ANM_HORSE_TURN_LEFT) || + checkUnderMove0BckNoArc(ANM_HORSE_TURN_RIGHT)) + { + if (mProcID == PROC_HORSE_RUN) { + mDoMtx_multVec(horse_p->getSaddleMtx(), &localHorseRun_18095, ¤t.pos); + + if (!horse_p->checkTurn() && !horse_p->checkStop()) { + f32 frame = horse_p->getAnmFrame(0) / horse_p->getAnmFrameMax(0) + 0.5f; + if (frame > 1.0f) { + frame -= 1.0f; + } + + f32 var_f0 = frame * (f32)mUnderFrameCtrl[0].getEnd(); + mUnderFrameCtrl[0].setFrame(var_f0); + getNowAnmPackUnder(UNDER_0)->setFrame(var_f0); + } + } else { + mDoMtx_multVec(horse_p->getSaddleMtx(), &localHorseRun_18103, ¤t.pos); + } + + csXyz sp58; + mDoMtx_MtxToRot(horse_p->getSaddleMtx(), &sp58); + shape_angle.x = sp58.x; + shape_angle.y = sp58.y; + shape_angle.z = sp58.z + -0x4000; + } else { + if (dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x20)) { + current.pos.set(horse_p->current.pos.x, horse_p->current.pos.y + 230.0f, + horse_p->current.pos.z); + } else { + mDoMtx_multVec(horse_p->getRootMtx(), &l_localHorseRidePos, ¤t.pos); + } + + shape_angle = horse_p->shape_angle; + } + + current.angle.y = shape_angle.y; + mNormalSpeed = fabsf(horse_p->speedF); + + if (checkZeroSpeedF()) { + onModeFlg(1); + } else { + offModeFlg(1); + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::setSyncHorsePos() { +asm int daAlink_c::setSyncHorsePos() { nofralloc #include "asm/d/a/d_a_alink/setSyncHorsePos__9daAlink_cFv.s" } #pragma pop +#endif /* 800ED78C-800ED90C 0E80CC 0180+00 4/4 0/0 0/0 .text setSyncBoarPos__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setSyncBoarPos() { - nofralloc -#include "asm/d/a/d_a_alink/setSyncBoarPos__9daAlink_cFv.s" +int daAlink_c::setSyncBoarPos() { + e_wb_class* e_wb_p = static_cast(mRideAcKeep.getActor()); + if (e_wb_p == NULL) { + if (mProcID == PROC_DEAD || mProcID == PROC_GET_ITEM) { + return 1; + } + + rideGetOff(); + checkWaitAction(); + return 0; + } + + if (fabsf(mRideAcKeep.getActor()->speedF) < lit_12328) { + onModeFlg(1); + } else { + offModeFlg(1); + } + + if (mProcID != PROC_DEAD && mProcID != PROC_GET_ITEM) { + if (e_wb_p == NULL || e_wb_p->checkDownDamage()) { + boarForceGetOff(); + return 0; + } + + if (!e_wb_p->checkNormalRideMode() && mProcID != PROC_BOAR_RUN) { + procBoarRunInit(); + return 0; + } + } + + MtxP ride_mtx = e_wb_p->getRideMtx(); + field_0x2f99 = 0x60; + + mDoMtx_multVec(ride_mtx, &l_localBoarRidePos, ¤t.pos); + + csXyz sp18; + mDoMtx_MtxToRot(ride_mtx, &sp18); + shape_angle.x = -sp18.z; + shape_angle.y = sp18.y + 0x4000; + shape_angle.z = sp18.x; + current.angle.y = shape_angle.y; + + mNormalSpeed = mRideAcKeep.getActor()->speedF; + return 1; } -#pragma pop /* 800ED90C-800EDA24 0E824C 0118+00 1/1 0/0 0/0 .text setSyncBoarRunPos__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setSyncBoarRunPos() { - nofralloc -#include "asm/d/a/d_a_alink/setSyncBoarRunPos__9daAlink_cFv.s" +int daAlink_c::setSyncBoarRunPos() { + e_wb_class* e_wb_p = static_cast(mRideAcKeep.getActor()); + if (e_wb_p == NULL || e_wb_p->checkDownDamage()) { + boarForceGetOff(); + return 0; + } + + if (e_wb_p->checkNormalRideMode()) { + procHorseWaitInit(); + return 0; + } + + MtxP ride_mtx = e_wb_p->getRideMtx(); + field_0x2f99 = 0x60; + + mDoMtx_multVec(ride_mtx, &localOffset_18237, ¤t.pos); + + csXyz sp28; + mDoMtx_MtxToRot(ride_mtx, &sp28); + shape_angle.x = -sp28.z; + shape_angle.y = sp28.y + 0x4000; + shape_angle.z = sp28.x; + current.angle.y = shape_angle.y; + + if (mProcID == PROC_BOAR_RUN && field_0x300e.x != 0) { + mUnderFrameCtrl[0].setFrame(e_wb_p->nowAnimeFrame()); + getNowAnmPackUnder(UNDER_0)->setFrame(e_wb_p->nowAnimeFrame()); + } + + return 1; } -#pragma pop /* 800EDA24-800EDA78 0E8364 0054+00 33/33 0/0 0/0 .text setSyncRidePos__9daAlink_cFv */ -void daAlink_c::setSyncRidePos() { +BOOL daAlink_c::setSyncRidePos() { if (checkHorseRide()) { - setSyncHorsePos(); + return setSyncHorsePos(); } else { - setSyncBoarPos(); + return setSyncBoarPos(); } } @@ -284,54 +513,336 @@ asm void daAlink_c::getBaseHorseAnime(daAlink_c::daAlink_ANM* param_0) { /* 800EDD6C-800EDE8C 0E86AC 0120+00 9/9 0/0 0/0 .text checkHorseSpecialProc__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkHorseSpecialProc() { - nofralloc -#include "asm/d/a/d_a_alink/checkHorseSpecialProc__9daAlink_cFv.s" +int daAlink_c::checkHorseSpecialProc() { + daHorse_c* horse_p = i_dComIfGp_getHorseActor(); + + if (!checkHorseRide()) { + return 0; + } + + if (i_checkEndResetFlg2(ERFLG2_UNK_2)) { + current.pos = horse_p->current.pos; + return procWaitInit(); + } + + if ((horse_p->checkStop() || horse_p->checkTurn()) && !horse_p->checkCutTurnCancel() && + !horse_p->checkTurnCancelKeep()) + { + return procHorseTurnInit(); + } + + if (horse_p->checkJump()) { + return procHorseJumpInit(); + } + + if (mProcID != PROC_HORSE_WAIT && mProcID != PROC_HORSE_CUT && + mProcID != PROC_HORSE_CUT_CHARGE_READY) + { + horse_p->onMoveAccept(); + } + + return 0; } -#pragma pop /* 800EDE8C-800EDEEC 0E87CC 0060+00 2/2 0/0 0/0 .text checkHorseServiceWaitAnime__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkHorseServiceWaitAnime() { - nofralloc -#include "asm/d/a/d_a_alink/checkHorseServiceWaitAnime__9daAlink_cFv.s" +BOOL daAlink_c::checkHorseServiceWaitAnime() { + return checkUnderMove0BckNoArc(ANM_HORSE_WAIT_A) || checkUnderMove0BckNoArc(ANM_HORSE_WAIT_B); } -#pragma pop /* 800EDEEC-800EE64C 0E882C 0760+00 1/1 0/0 0/0 .text setSyncHorse__9daAlink_cFi */ +// matches with literals? +#ifdef NONMATCHING +int daAlink_c::setSyncHorse(int param_0) { + daHorse_c* horse_p = i_dComIfGp_getHorseActor(); + BOOL mode_1 = i_checkModeFlg(1); + + setSyncHorsePos(); + if (checkHorseSpecialProc()) { + return 0; + } + + daAlink_ANM sp8[2]; + getBaseHorseAnime(sp8); + + if (fabsf(horse_p->speedF) < 0.001f) { + if (!mode_1) { + field_0x3004 = 0; + } else if (checkInputOnR() && horse_p->checkWait() && mProcID != PROC_HORSE_SUBJECTIVITY && + mProcID != PROC_HORSE_CUT_TURN && sp8[0] != ANM_HORSE_TURN_LEFT && + sp8[0] != ANM_HORSE_TURN_RIGHT && field_0x3004 == 0 && + getDirectionFromShapeAngle() == DIR_FORWARD) + { + field_0x3004 = daAlinkHIO_horse_c0::m.mNoWalkTime; + setSingleAnimeParam(ANM_WSTARTH, &daAlinkHIO_horse_c0::m.mWalkAnm); + i_offNoResetFlg1(FLG1_UNK_1000); + } + } + + if ((checkHorseUnderDashStartAnime() || checkHorseUnderLashAnime()) && + checkAnmEnd(&mUnderFrameCtrl[2])) + { + resetUnderAnime(UNDER_2, 4.0f); + } + + if (checkHorseWalkStartAnm() && spActionButton()) { + if (checkNoUpperAnime()) { + setUpperAnimeBase(getMainBckData(ANM_HORSE_CROUCH)->m_upperID); + } + } else if (checkUpperHorseLieAnime()) { + resetUpperAnime(UPPER_2, 3.0f); + } + + if (param_0 && field_0x30a6 == 0 && horse_p->speedF >= 0.0f && + horse_p->getAimNeckAngleY() == 0 && sp8[0] != ANM_HORSE_TURN_LEFT && + sp8[0] != ANM_HORSE_TURN_RIGHT && + (field_0x2f8c == 10 && + (checkHorseNoUpperAnime() || checkEquipAnime() || checkUpperGuardAnime()) || + (mProcID == PROC_HORSE_CUT || mProcID == PROC_HORSE_CUT_TURN || + mProcID == PROC_HORSE_CUT_CHARGE_READY))) + { + if (checkCowGame()) { + if (checkHorseNoUpperAnime()) { + setDoStatus(40); + + if (doTrigger()) { + i_onResetFlg0(RFLG0_UNK_200); + voiceStart(Z2SE_AL_V_RUSH_HORSE); + field_0x30a6 = daAlinkHIO_horse_c0::m.mWhipWaitTime; + setHorseSwordUpAnime(); + field_0x3002 = -daAlinkHIO_horse_c0::m.mWhipWaitTime; + } + } + } else if (checkHorseDashAccept()) { + setDoStatus(9); + + if (doTrigger()) { + field_0x3004 = daAlinkHIO_horse_c0::m.mNoWalkTime; + const daAlinkHIO_anm_c* anmparam_p = &daAlinkHIO_horse_c0::m.mWhipAnm; + + if (mProcID != PROC_HORSE_CUT && mProcID != PROC_HORSE_CUT_TURN && + mProcID != PROC_HORSE_CUT_CHARGE_READY) + { + setSingleAnimeParam(ANM_HORSE_LASH, anmparam_p); + } + + setUnderAnimeParam(getMainBckData(ANM_HORSE_LASH)->m_underID, UNDER_2, + &daAlinkHIO_horse_c0::m.mWhipAnm); + i_onNoResetFlg1(FLG1_UNK_1000); + horse_p->offPlayerBackRideLash(); + voiceStart(Z2SE_AL_V_RUSH_HORSE); + + if (horse_p->speedF <= horse_p->getNormalMaxSpeedF()) { + i_onNoResetFlg1(FLG1_UNK_800); + } + + field_0x30a6 = daAlinkHIO_horse_c0::m.mWhipWaitTime; + } + } + } + + if ((checkHorseWalkStartAnm() && + mUnderFrameCtrl[0].getFrame() > daAlinkHIO_horse_c0::m.mHorseWalkStartFrame) || + (checkHorseWaitLashAnime() && mUnderFrameCtrl[2].getFrame() > 13.0f)) + { + horse_p->onMoveAccept(); + } + + if (i_checkNoResetFlg1(FLG1_UNK_1000) && + ((checkHorseUnderDashStartAnime() && mUnderFrameCtrl[2].getFrame() > 13.0f) || + (checkHorseUnderLashAnime() && mUnderFrameCtrl[2].getFrame() > 13.0f))) + { + i_offNoResetFlg1(FLG1_UNK_1000); + horse_p->onPlayerLash(); + } + + if (checkHorseSwordUpAnime()) { + if (checkHorseZeldaBowMode()) { + resetUpperAnime(UPPER_2, daAlinkHIO_horse_c0::m.mSwordUpInterpolation); + field_0x3002 = 0; + } else if (field_0x3002 > 0) { + field_0x3002--; + + if (field_0x3002 == 0 || horse_p->speedF < horse_p->getNormalMaxSpeedF()) { + resetUpperAnime(UPPER_2, daAlinkHIO_horse_c0::m.mSwordUpInterpolation); + field_0x3002 = 0; + } + } else { + field_0x30ec = daAlinkHIO_horse_c0::m.mSwordUpInterpolation; + field_0x3002++; + + if (field_0x3002 == 0) { + resetUpperAnime(UPPER_2, daAlinkHIO_horse_c0::m.mSwordUpInterpolation); + field_0x30ec = daAlinkHIO_horse_c0::m.mSwordUpInterpolation; + } + } + } + + BOOL var_r28 = + checkAnmEnd(mUnderFrameCtrl) || + (checkHorseServiceWaitAnime() && + (!checkNoUpperAnime() || horse_p->getAimNeckAngleY() != 0 || !i_checkModeFlg(1))); + + if (((var_r28 || sp8[0] == ANM_HORSE_TURN_LEFT || sp8[0] == ANM_HORSE_TURN_RIGHT || + sp8[0] == ANM_HORSE_DASH_START || + (spActionButton() && !checkHorseWalkStartAnm() && !checkHorseWaitLashAnime())) && + mProcID != PROC_HORSE_CUT_TURN) || + field_0x2f8c == 10) + { + if ((var_r28 || field_0x3004 != daAlinkHIO_horse_c0::m.mNoWalkTime) && field_0x3004 != 0) { + field_0x3004--; + } + + f32 var_f31; + if (var_r28 && horse_p->getMorfFrame() < 4.0f) { + var_f31 = 4.0f; + } else { + var_f31 = horse_p->getMorfFrame(); + } + + f32 var_f30; + if (sp8[0] == ANM_HORSE_TURN_LEFT || sp8[0] == ANM_HORSE_TURN_B || + sp8[0] == ANM_HORSE_TURN_RIGHT) + { + var_f30 = 0.0f; + } else { + var_f30 = horse_p->getBlendRate(); + } + + if (sp8[0] == ANM_HORSE_DASH_START && !checkUnderMove0BckNoArc(ANM_HORSE_DASH_START)) { + voiceStart(Z2SE_AL_V_RUSH_HORSE); + } + + setDoubleAnime(var_f30, 1.0f, 1.0f, sp8[0], sp8[1], 10, var_f31); + setBaseHorseAnimeFrame(); + if (var_r28) { + setHorseSwordUp(0); + } + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::setSyncHorse(int param_0) { +asm int daAlink_c::setSyncHorse(int param_0) { nofralloc #include "asm/d/a/d_a_alink/setSyncHorse__9daAlink_cFi.s" } #pragma pop +#endif /* 800EE64C-800EE918 0E8F8C 02CC+00 1/1 0/0 0/0 .text setSyncBoar__9daAlink_cFi */ +// regalloc, equivalent? +#ifdef NONMATCHING +int daAlink_c::setSyncBoar(int param_0) { + e_wb_class* e_wb_p = static_cast(mRideAcKeep.getActor()); + BOOL mode_1 = i_checkModeFlg(1); + + if (!setSyncBoarPos()) { + return 0; + } + + if (fabsf(e_wb_p->speedF) < 0.001f && mode_1 && checkInputOnR() && e_wb_p->checkWait() && + mProcID != PROC_HORSE_SUBJECTIVITY && field_0x3004 == 0) + { + int direction = getDirectionFromShapeAngle(); + if (direction == DIR_FORWARD || direction == DIR_BACKWARD) { + field_0x3004 = daAlinkHIO_horse_c0::m.mNoWalkTime; + setSingleAnimeParam(ANM_WSTARTH, &daAlinkHIO_horse_c0::m.mWalkAnm); + } + } + + if (param_0 && e_wb_p->getWaitRollAngle() == 0 && checkHorseNoUpperAnime()) { + setDoStatus(9); + if (doTrigger()) { + changeBoarRunRide(); + } + } + + if ((checkAnmEnd(mUnderFrameCtrl) && mProcID != PROC_HORSE_CUT_TURN) || + (checkHorseServiceWaitAnime() && (!checkNoUpperAnime() || !i_checkModeFlg(1)))) + { + setBaseBoarAnime(); + } else if (mUnderAnmHeap[0].getIdx() == 0x1B3) { + if (mUnderFrameCtrl[0].checkPass(10.0f)) { + changeBoarRunRide(); + } + } else if (!checkHorseServiceWaitAnime() && mProcID != PROC_HORSE_CUT_TURN) { + setBaseBoarAnime(); + } + + if (mUnderAnmHeap[0].getIdx() != 0x1B3) { + if (e_wb_p->getWaitRollAngle() > 0) { + setHorseTurnUpperAnime(FALSE); + } else if (e_wb_p->getWaitRollAngle() < 0) { + setHorseTurnUpperAnime(TRUE); + } + } + + if (checkHorseTurnAnime()) { + if (e_wb_p->getWaitRollAngle() == 0) { + resetUpperAnime(UPPER_2, 4.0f); + field_0x33f0 = 0.0f; + } else { + field_0x33f0 = cLib_minMaxLimit(e_wb_p->getWaitRollAngle() * 0.002f, -1.0f, 1.0f); + // supposed to be std::abs + mNowAnmPackUpper[2].setRatio(fabsf(field_0x33f0)); + } + } else { + field_0x33f0 = 0.0f; + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::setSyncBoar(int param_0) { +asm int daAlink_c::setSyncBoar(int param_0) { nofralloc #include "asm/d/a/d_a_alink/setSyncBoar__9daAlink_cFi.s" } #pragma pop +#endif /* 800EE918-800EEAE8 0E9258 01D0+00 12/12 0/0 0/0 .text setSyncRide__9daAlink_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setSyncRide(int param_0) { - nofralloc -#include "asm/d/a/d_a_alink/setSyncRide__9daAlink_cFi.s" +int daAlink_c::setSyncRide(int param_0) { + BOOL var_r31; + if (param_0 && mMidnaTalkDelayTimer == 0 && i_dComIfGp_getDoStatus() == 0 && + (!checkHorseRide() || i_dComIfGp_getHorseActor()->getAnmIdx(0) != 7)) + { + var_r31 = TRUE; + } else { + var_r31 = FALSE; + } + + if (checkServiceWaitMode() && checkHorseRide() && mProcID == PROC_HORSE_WAIT && + !checkBowAndSlingItem(mEquipItem) && checkZeroSpeedF() && + !checkUnderMove0BckNoArc(ANM_HORSE_TURN_LEFT) && + !checkUnderMove0BckNoArc(ANM_HORSE_TURN_RIGHT) && !checkUnderMove0BckNoArc(ANM_WSTARTH) && + i_checkModeFlg(1)) + { + if (field_0x30ca != 0) { + field_0x30ca--; + } else { + if (cM_rnd() < lit_5943) { + setSingleAnimeBaseMorf(ANM_HORSE_WAIT_A, lit_7450); + } else { + setSingleAnimeBaseMorf(ANM_HORSE_WAIT_B, lit_7450); + } + initServiceWaitTime(); + } + } else { + initServiceWaitTime(); + } + + if (checkHorseRide()) { + return setSyncHorse(var_r31); + } else { + return setSyncBoar(var_r31); + } } -#pragma pop /* 800EEAE8-800EEC98 0E9428 01B0+00 2/2 0/0 0/0 .text setBaseHorseAnimeFrame__9daAlink_cFv */ #pragma push @@ -354,6 +865,21 @@ asm void daAlink_c::setBaseBoarAnime() { #pragma pop /* 800EED98-800EEE30 0E96D8 0098+00 18/18 0/0 0/0 .text setBaseRideAnime__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +void daAlink_c::setBaseRideAnime() { + if (checkHorseRide()) { + daHorse_c* horse_p = i_dComIfGp_getHorseActor(); + daAlink_ANM sp8[2]; + getBaseHorseAnime(sp8); + setDoubleAnime(horse_p->getBlendRate(), 1.0f, 1.0f, sp8[0], sp8[1], 10, + horse_p->getMorfFrame()); + setBaseHorseAnimeFrame(); + } else { + setBaseBoarAnime(); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -362,39 +888,57 @@ asm void daAlink_c::setBaseRideAnime() { #include "asm/d/a/d_a_alink/setBaseRideAnime__9daAlink_cFv.s" } #pragma pop +#endif /* 800EEE30-800EEE5C 0E9770 002C+00 1/1 0/0 0/0 .text checkHorseSwordUpSpped__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkHorseSwordUpSpped() { - nofralloc -#include "asm/d/a/d_a_alink/checkHorseSwordUpSpped__9daAlink_cFv.s" +bool daAlink_c::checkHorseSwordUpSpped() { + daHorse_c* horse_p = i_dComIfGp_getHorseActor(); + return horse_p->speedF > horse_p->getLashMaxSpeedF() * lit_18847; } -#pragma pop /* 800EEE5C-800EEF30 0E979C 00D4+00 2/2 0/0 0/0 .text setHorseSwordUp__9daAlink_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setHorseSwordUp(int param_0) { - nofralloc -#include "asm/d/a/d_a_alink/setHorseSwordUp__9daAlink_cFi.s" +void daAlink_c::setHorseSwordUp(int param_0) { + if (checkHorseRide() && checkNoUpperAnime() && mEquipItem == 0x103 && + !checkHorseZeldaBowMode() && + ((param_0 && checkHorseSwordUpSpped()) || + (!param_0 && checkEnemyGroup(mTargetedActor) && i_checkNoResetFlg1(FLG1_UNK_800)))) + { + setHorseSwordUpAnime(); + field_0x3002 = daAlinkHIO_horse_c0::m.mSwordUpTime; + } + + i_offNoResetFlg1(FLG1_UNK_800); } -#pragma pop /* 800EEF30-800EF050 0E9870 0120+00 9/9 0/0 0/0 .text setRideSubjectAngle__9daAlink_cFs */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::setRideSubjectAngle(s16 param_0) { +asm int daAlink_c::setRideSubjectAngle(s16 param_0) { nofralloc #include "asm/d/a/d_a_alink/setRideSubjectAngle__9daAlink_cFs.s" } #pragma pop /* 800EF050-800EF0E8 0E9990 0098+00 7/7 0/0 0/0 .text setBodyAngleRideReadyAnime__9daAlink_cFv */ +// missing mr, probably issue with cLib_minMaxLimit implementation +#ifdef NONMATCHING +void daAlink_c::setBodyAngleRideReadyAnime() { + setBodyAngleXReadyAnime(0); + + s16 angle; + if (mTargetedActor != NULL) { + angle = cLib_minMaxLimit( + (s16)(cLib_targetAngleY(¤t.pos, &mTargetedActor->mEyePos) - shape_angle.y), + (s16)-0x3800, (s16)0x3800); + } else { + angle = 0; + } + + daPy_addCalcShort(&mBodyAngle.y, angle, 4, 0xC00, 0x180); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -403,67 +947,183 @@ asm void daAlink_c::setBodyAngleRideReadyAnime() { #include "asm/d/a/d_a_alink/setBodyAngleRideReadyAnime__9daAlink_cFv.s" } #pragma pop +#endif /* 800EF0E8-800EF198 0E9A28 00B0+00 1/1 0/0 0/0 .text * checkHorseGetOffWallCheck__9daAlink_cFP4cXyzP4cXyzs */ +// matches with literals +#ifdef NONMATCHING +BOOL daAlink_c::checkHorseGetOffWallCheck(cXyz* i_lineStartPos, cXyz* i_lineEndPos, s16 param_2) { + if (!commonLineCheck(i_lineStartPos, i_lineEndPos)) { + return FALSE; + } + + if (dBgS_CheckBWallPoly(mLinkLinChk)) { + return TRUE; + } + + if (getGroundAngle(&mLinkLinChk, param_2) < -cM_deg2s(daAlinkHIO_wlSlide_c0::m.field_0x5C)) { + return TRUE; + } + + return FALSE; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkHorseGetOffWallCheck(cXyz* param_0, cXyz* param_1, s16 param_2) { +asm BOOL daAlink_c::checkHorseGetOffWallCheck(cXyz* param_0, cXyz* param_1, s16 param_2) { nofralloc #include "asm/d/a/d_a_alink/checkHorseGetOffWallCheck__9daAlink_cFP4cXyzP4cXyzs.s" } #pragma pop +#endif /* 800EF198-800EF35C 0E9AD8 01C4+00 2/2 0/0 0/0 .text checkHorseGetOffDirection__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::checkHorseGetOffDirection() { + fopAc_ac_c* ride_actor_p = mRideAcKeep.getActor(); + + cXyz lin_start_pos(ride_actor_p->current.pos.x, current.pos.y, ride_actor_p->current.pos.z); + cXyz lin_end_pos; + + s16 var_r28; + if (field_0x2fc0 == 0) { + var_r28 = shape_angle.y + 0x4000; + } else { + var_r28 = shape_angle.y - 0x4000; + } + + lin_end_pos.set(ride_actor_p->current.pos.x + cM_ssin(var_r28) * 125.0f, lin_start_pos.y, + ride_actor_p->current.pos.z + cM_scos(var_r28) * 125.0f); + + f32 check_y[3] = {0.0f, 0.0f, 0.0f}; + check_y[0] = current.pos.y; + check_y[1] = ride_actor_p->current.pos.y + (current.pos.y - ride_actor_p->current.pos.y) * 0.5f; + check_y[2] = ride_actor_p->current.pos.y + l_autoUpHeight; + + int check_no; + int i; + for (i = 0; i < 2; i++) { + for (check_no = 0; check_no < 3; check_no++) { + lin_start_pos.y = check_y[check_no]; + lin_end_pos.y = lin_start_pos.y; + + if (checkHorseGetOffWallCheck(&lin_start_pos, &lin_end_pos, var_r28)) { + break; + } + } + + if (check_no == 3) { + if (i == 0) { + return field_0x2fc0; + } + return field_0x2fc0 ^ 1; + } + + lin_end_pos.x = lin_start_pos.x * 2.0f - lin_end_pos.x; + lin_end_pos.z = lin_start_pos.z * 2.0f - lin_end_pos.z; + var_r28 += 0x8000; + } + + return 2; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkHorseGetOffDirection() { +asm int daAlink_c::checkHorseGetOffDirection() { nofralloc #include "asm/d/a/d_a_alink/checkHorseGetOffDirection__9daAlink_cFv.s" } #pragma pop +#endif /* 800EF35C-800EF394 0E9C9C 0038+00 4/4 0/0 0/0 .text boarForceGetOff__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::boarForceGetOff() { - nofralloc -#include "asm/d/a/d_a_alink/boarForceGetOff__9daAlink_cFv.s" +void daAlink_c::boarForceGetOff() { + procCoLargeDamageInit(-4, 1, 0, 0, NULL, 0); } -#pragma pop /* 800EF394-800EF450 0E9CD4 00BC+00 2/2 0/0 0/0 .text horseGetOffEnd__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::horseGetOffEnd() { - nofralloc -#include "asm/d/a/d_a_alink/horseGetOffEnd__9daAlink_cFv.s" +void daAlink_c::horseGetOffEnd() { + if (field_0x2fc0 == 0) { + shape_angle.y -= 0x4000; + setOldRootQuaternion(0, 0x4000, 0); + mDoMtx_stack_c::YrotS(-0x4000); + } else { + shape_angle.y += 0x4000; + setOldRootQuaternion(0, -0x4000, 0); + mDoMtx_stack_c::YrotS(0x4000); + } + + J3DTransformInfo* transinfo_p = field_0x2060->getOldFrameTransInfo(0); + transinfo_p->mTranslate.x = l_waitBaseAnime.x; + transinfo_p->mTranslate.z = l_waitBaseAnime.z; + current.angle.y = shape_angle.y; + field_0x2fe4 = shape_angle.y; } -#pragma pop /* 800EF450-800EF598 0E9D90 0148+00 12/12 0/0 0/0 .text checkNextActionHorse__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkNextActionHorse() { - nofralloc -#include "asm/d/a/d_a_alink/checkNextActionHorse__9daAlink_cFv.s" +int daAlink_c::checkNextActionHorse() { + if ((!checkGrabAnimeAndThrow() || mProcID == PROC_HORSE_GRAB_MOVE) && + checkNextActionFromButton()) + { + return 1; + } + + if (checkBowAnime()) { + return checkNextActionBow(); + } + + if (checkBoomerangAnimeAndReturnWait()) { + return checkNextActionBoomerang(); + } + + if (checkHookshotAnime()) { + return checkNextActionHookshot(); + } + + if (checkGrabAnimeAndThrow()) { + return procHorseGrabMoveInit(); + } + + if (mProcID == PROC_HORSE_COMEBACK) { + return procHorseComebackInit(); + } + + if (mProcID == PROC_HORSE_JUMP && i_dComIfGp_getHorseActor() != NULL && + i_dComIfGp_getHorseActor()->checkJump()) + { + return 1; + } + + if (mProcID == PROC_HORSE_TURN || mProcID == PROC_HORSE_CUT_TURN) { + return 0; + } + + return procHorseWaitInit(); } -#pragma pop /* 800EF598-800EF6B0 0E9ED8 0118+00 2/2 0/0 0/0 .text checkHorseGetOff__9daAlink_cFv */ +// regalloc +#ifdef NONMATCHING +BOOL daAlink_c::checkHorseGetOff() { + return (checkHorseRide() && i_dComIfGp_getHorseActor() != NULL && + i_dComIfGp_getHorseActor()->checkGetOff()) || + (checkBoarRide() && static_cast(mRideAcKeep.getActor()) != NULL && + static_cast(mRideAcKeep.getActor())->checkGetOff()); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkHorseGetOff() { +asm BOOL daAlink_c::checkHorseGetOff() { nofralloc #include "asm/d/a/d_a_alink/checkHorseGetOff__9daAlink_cFv.s" } #pragma pop +#endif /* 800EF6B0-800EF884 0E9FF0 01D4+00 3/3 0/0 0/0 .text checkHorseGetOffAndSetDoStatus__9daAlink_cFv */ @@ -477,14 +1137,21 @@ asm void daAlink_c::checkHorseGetOffAndSetDoStatus() { #pragma pop /* 800EF884-800EF95C 0EA1C4 00D8+00 2/2 0/0 0/0 .text setHorseGetOff__9daAlink_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setHorseGetOff(int param_0) { - nofralloc -#include "asm/d/a/d_a_alink/setHorseGetOff__9daAlink_cFi.s" +int daAlink_c::setHorseGetOff(int param_0) { + daHorse_c* horse_p = i_dComIfGp_getHorseActor(); + + if (i_dComIfGp_getDoStatus() == 0x32 && doTrigger()) { + if ((checkHorseRide() && horse_p->checkEnemySearch()) || checkHorseLieAnime()) { + resetUpperAnime(UPPER_2, lit_6041); + procBackJumpInit(0); + current.pos.y += daAlinkHIO_backJump_c0::m.mBackflipSpeedV; + } else { + return procHorseGetOffInit(param_0); + } + } + + return 0; } -#pragma pop /* 800EF95C-800EFDC4 0EA29C 0468+00 1/1 0/0 0/0 .text procHorseRideInit__9daAlink_cFv */ #pragma push @@ -549,14 +1216,18 @@ asm int daAlink_c::procHorseWait() { #pragma pop /* 800F0C6C-800F0CE4 0EB5AC 0078+00 1/1 0/0 0/0 .text procHorseTurnInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseTurnInit() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseTurnInit__9daAlink_cFv.s" +int daAlink_c::procHorseTurnInit() { + commonProcInit(PROC_HORSE_TURN); + + if (checkHorseRide()) { + resetUnderAnime(UNDER_2, lit_6041); + } + + setSyncRidePos(); + field_0x3004 = 0; + setHorseTurnAnime(); + return 1; } -#pragma pop /* 800F0CE4-800F1060 0EB624 037C+00 1/0 0/0 0/0 .text procHorseTurn__9daAlink_cFv */ #pragma push @@ -569,65 +1240,111 @@ asm int daAlink_c::procHorseTurn() { #pragma pop /* 800F1060-800F10F8 0EB9A0 0098+00 1/1 0/0 0/0 .text procHorseJumpInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseJumpInit() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseJumpInit__9daAlink_cFv.s" +int daAlink_c::procHorseJumpInit() { + commonProcInit(PROC_HORSE_JUMP); + + if (checkHorseRide()) { + resetUnderAnime(UNDER_2, lit_6041); + } + + setSyncRidePos(); + field_0x3004 = 0; + field_0x3002 = 0; + setHorseTurnAnime(); + voiceStart(Z2SE_AL_V_JUMP_L); + return 1; } -#pragma pop /* 800F10F8-800F1188 0EBA38 0090+00 1/0 0/0 0/0 .text procHorseJump__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseJump() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseJump__9daAlink_cFv.s" +int daAlink_c::procHorseJump() { + daHorse_c* horse_p = i_dComIfGp_getHorseActor(); + + if (!setSyncRidePos()) { + return 1; + } + + if (horse_p->checkLand()) { + procHorseLandInit(); + } else { + setHorseTurnAnime(); + } + + return 1; } -#pragma pop /* 800F1188-800F1204 0EBAC8 007C+00 1/1 0/0 0/0 .text procHorseLandInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseLandInit() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseLandInit__9daAlink_cFv.s" +int daAlink_c::procHorseLandInit() { + commonProcInit(PROC_HORSE_LAND); + + if (checkHorseRide()) { + resetUnderAnime(UNDER_2, lit_6041); + } + + setSyncRidePos(); + field_0x3004 = 0; + field_0x3002 = 0; + setHorseTurnAnime(); + return 1; } -#pragma pop /* 800F1204-800F1294 0EBB44 0090+00 1/0 0/0 0/0 .text procHorseLand__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseLand() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseLand__9daAlink_cFv.s" +int daAlink_c::procHorseLand() { + daHorse_c* horse_p = i_dComIfGp_getHorseActor(); + + if (!setSyncRidePos()) { + return 1; + } + + if (!horse_p->checkLand()) { + procHorseWaitInit(); + } else { + setHorseTurnAnime(); + } + + return 1; } -#pragma pop /* 800F1294-800F12F8 0EBBD4 0064+00 1/1 0/0 0/0 .text procHorseSubjectivityInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseSubjectivityInit() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseSubjectivityInit__9daAlink_cFv.s" +int daAlink_c::procHorseSubjectivityInit() { + commonProcInit(PROC_HORSE_SUBJECTIVITY); + if (checkHorseUnderItemAnime()) { + resetUnderAnime(UNDER_2, lit_6041); + } + + setSyncRide(0); + setSubjectMode(); + return 1; } -#pragma pop /* 800F12F8-800F13D8 0EBC38 00E0+00 1/0 0/0 0/0 .text procHorseSubjectivity__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseSubjectivity() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseSubjectivity__9daAlink_cFv.s" +int daAlink_c::procHorseSubjectivity() { + i_onResetFlg0(RFLG0_UNK_4000000); + s16 old_shape_angle = shape_angle.y; + s16 old_angle = current.angle.y; + int old_3190 = field_0x3190; + + if (!setSyncRide(0)) { + return 1; + } + + shape_angle.y = old_shape_angle; + if (checkSubjectEnd(1)) { + procHorseWaitInit(); + } else if (checkNextActionFromButton()) { + if (checkUpperReadyThrowAnime()) { + field_0x3190 = old_3190; + mBodyAngle.y = field_0x3190; + field_0x310a = mBodyAngle.x; + field_0x310c = shape_angle.y + field_0x3190; + } + return 1; + } else { + setRideSubjectAngle(old_angle); + } + + return 1; } -#pragma pop /* 800F13D8-800F1688 0EBD18 02B0+00 1/1 0/0 0/0 .text procHorseCutInit__9daAlink_cFv */ #pragma push @@ -650,14 +1367,22 @@ asm int daAlink_c::procHorseCut() { #pragma pop /* 800F1894-800F194C 0EC1D4 00B8+00 3/3 0/0 0/0 .text procHorseCutChargeReadyInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseCutChargeReadyInit() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseCutChargeReadyInit__9daAlink_cFv.s" +int daAlink_c::procHorseCutChargeReadyInit() { + commonProcInit(PROC_HORSE_CUT_CHARGE_READY); + setUpperAnimeParam(0x96, UPPER_2, &daAlinkHIO_hoCutCharge_c0::m.field_0x0); + setFacePriBck(0xE8); + field_0x2f96 = 2; + + setSyncRide(1); + if (checkHorseUnderItemAnime()) { + resetUnderAnime(UNDER_2, lit_6041); + } + + field_0x300c = daAlinkHIO_cut_c0::m.mNormalSwingDuration; + field_0x3004 = 0; + i_onNoResetFlg1(FLG1_UNK_10000000); + return 1; } -#pragma pop /* 800F194C-800F1AAC 0EC28C 0160+00 1/0 0/0 0/0 .text procHorseCutChargeReady__9daAlink_cFv */ #pragma push @@ -671,6 +1396,27 @@ asm int daAlink_c::procHorseCutChargeReady() { /* 800F1AAC-800F1BA4 0EC3EC 00F8+00 3/3 0/0 0/0 .text procHorseCutTurnInit__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procHorseCutTurnInit() { + commonProcInit(PROC_HORSE_CUT_TURN); + + if (checkHorseUnderItemAnime()) { + resetUnderAnime(UNDER_2, -1.0f); + } + + setSingleAnimeParam(ANM_HORSE_CUT_TURN, &daAlinkHIO_hoCutCharge_c0::m.field_0x28); + setCutType(43); + setSyncRide(1); + field_0x3478 = daAlinkHIO_hoCutCharge_c0::m.field_0x50; + setCylAtParam(getSwordAtType(), dCcG_At_Spl_UNK_1, 3, 1, 3, field_0x3478 * 0.5f, 200.0f); + field_0x300e.y = daAlinkHIO_hoCutCharge_c0::m.field_0x3E; + voiceStart(Z2SE_AL_V_KAITEN); + setCutWaterDropEffect(); + setHorseZeldaDamage(); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -679,6 +1425,7 @@ asm int daAlink_c::procHorseCutTurnInit() { #include "asm/d/a/d_a_alink/procHorseCutTurnInit__9daAlink_cFv.s" } #pragma pop +#endif /* 800F1BA4-800F1D18 0EC4E4 0174+00 1/0 0/0 0/0 .text procHorseCutTurn__9daAlink_cFv */ #pragma push @@ -712,150 +1459,280 @@ asm int daAlink_c::procHorseDamage() { #pragma pop /* 800F2150-800F21B4 0ECA90 0064+00 1/1 0/0 0/0 .text procHorseBowSubjectInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseBowSubjectInit() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseBowSubjectInit__9daAlink_cFv.s" +int daAlink_c::procHorseBowSubjectInit() { + if (!commonProcInitNotSameProc(PROC_HORSE_BOW_SUBJECT)) { + return 0; + } + + setSyncRidePos(); + setBaseRideAnime(); + field_0x300c = 0; + setBowOrSlingStatus(); + return 1; } -#pragma pop /* 800F21B4-800F224C 0ECAF4 0098+00 1/0 0/0 0/0 .text procHorseBowSubject__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseBowSubject() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseBowSubject__9daAlink_cFv.s" +int daAlink_c::procHorseBowSubject() { + setDoStatus(0x12); + + if (!setSyncRidePos()) { + return 1; + } + + if (checkHorseSpecialProc()) { + return 1; + } + + setBaseRideAnime(); + + if (!checkNextActionHorse() && setRideSubjectAngle(current.angle.y)) { + setBowSight(); + } + + return 1; } -#pragma pop /* 800F224C-800F22A8 0ECB8C 005C+00 1/1 0/0 0/0 .text procHorseBowMoveInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseBowMoveInit() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseBowMoveInit__9daAlink_cFv.s" +int daAlink_c::procHorseBowMoveInit() { + if (!commonProcInitNotSameProc(PROC_HORSE_BOW_MOVE)) { + return 0; + } + + setSyncRidePos(); + setBaseRideAnime(); + setBowOrSlingStatus(); + return 1; } -#pragma pop /* 800F22A8-800F2334 0ECBE8 008C+00 1/0 0/0 0/0 .text procHorseBowMove__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseBowMove() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseBowMove__9daAlink_cFv.s" +int daAlink_c::procHorseBowMove() { + setDoStatus(0x12); + + if (!setSyncRidePos()) { + return 1; + } + + if (checkHorseSpecialProc()) { + return 1; + } + + setBaseRideAnime(); + cancelBowMove(); + + if (!checkNextActionHorse()) { + setBodyAngleRideReadyAnime(); + } + + return 1; } -#pragma pop /* 800F2334-800F2390 0ECC74 005C+00 2/2 0/0 0/0 .text procHorseGrabMoveInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseGrabMoveInit() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseGrabMoveInit__9daAlink_cFv.s" +int daAlink_c::procHorseGrabMoveInit() { + if (!commonProcInitNotSameProc(PROC_HORSE_GRAB_MOVE)) { + return 0; + } + + setSyncRidePos(); + setBaseRideAnime(); + field_0x3004 = 0; + return 1; } -#pragma pop /* 800F2390-800F2454 0ECCD0 00C4+00 1/0 0/0 0/0 .text procHorseGrabMove__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseGrabMove() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseGrabMove__9daAlink_cFv.s" +int daAlink_c::procHorseGrabMove() { + if (!setSyncRidePos()) { + return 1; + } + + if (checkHorseSpecialProc()) { + return 1; + } + + if (mGrabItemAcKeep.getActor() == NULL && checkGrabAnime()) { + resetUpperAnime(UPPER_2, lit_7450); + } + + setBaseRideAnime(); + + if (checkGrabThrowAnime()) { + if (checkUpperGrabItemThrow(lit_7450)) { + procHorseWaitInit(); + } + } else { + checkNextActionHorse(); + } + + return 1; } -#pragma pop /* 800F2454-800F24C8 0ECD94 0074+00 1/1 0/0 0/0 .text procHorseBoomerangSubjectInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseBoomerangSubjectInit() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseBoomerangSubjectInit__9daAlink_cFv.s" +int daAlink_c::procHorseBoomerangSubjectInit() { + if (!commonProcInitNotSameProc(PROC_HORSE_BOOMERANG_SUBJECT)) { + return 0; + } + + setSyncRidePos(); + setBaseRideAnime(); + initBoomerangUpperAnimeSpeed(1); + dComIfGp_setPlayerStatus0(0, 0x80000); + return 1; } -#pragma pop /* 800F24C8-800F25B4 0ECE08 00EC+00 1/0 0/0 0/0 .text procHorseBoomerangSubject__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseBoomerangSubject() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseBoomerangSubject__9daAlink_cFv.s" +int daAlink_c::procHorseBoomerangSubject() { + if (!checkItemActorPointer()) { + return 1; + } + + if (checkBoomerangReadyAnime()) { + setDoStatus(0x12); + } + + if (!setSyncRidePos()) { + return 1; + } + + if (checkHorseSpecialProc()) { + return 1; + } + + setBaseRideAnime(); + + if (!checkNextActionHorse()) { + if (setRideSubjectAngle(current.angle.y)) { + setBoomerangSight(); + } + } else { + mSight.offDrawFlg(); + } + + return 1; } -#pragma pop /* 800F25B4-800F2628 0ECEF4 0074+00 1/1 0/0 0/0 .text procHorseBoomerangMoveInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseBoomerangMoveInit() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseBoomerangMoveInit__9daAlink_cFv.s" +int daAlink_c::procHorseBoomerangMoveInit() { + if (!commonProcInitNotSameProc(PROC_HORSE_BOOMERANG_MOVE)) { + return 0; + } + + setSyncRidePos(); + setBaseRideAnime(); + initBoomerangUpperAnimeSpeed(0); + dComIfGp_setPlayerStatus0(0, 0x80000); + return 1; } -#pragma pop /* 800F2628-800F26F4 0ECF68 00CC+00 1/0 0/0 0/0 .text procHorseBoomerangMove__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseBoomerangMove() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseBoomerangMove__9daAlink_cFv.s" +int daAlink_c::procHorseBoomerangMove() { + if (!checkItemActorPointer()) { + return 1; + } + + if (checkBoomerangReadyAnime()) { + setDoStatus(0x12); + } + + if (!setSyncRidePos()) { + return 1; + } + + if (checkHorseSpecialProc()) { + return 1; + } + + setBaseRideAnime(); + + if (!checkNextActionHorse()) { + setBodyAngleRideReadyAnime(); + } + + return 1; } -#pragma pop /* 800F26F4-800F2770 0ED034 007C+00 1/1 0/0 0/0 .text procHorseHookshotSubjectInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseHookshotSubjectInit() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseHookshotSubjectInit__9daAlink_cFv.s" +int daAlink_c::procHorseHookshotSubjectInit() { + if (!commonProcInitNotSameProc(PROC_HORSE_HOOKSHOT_SUBJECT)) { + return 0; + } + + setSyncRidePos(); + setBaseRideAnime(); + initHookshotUpperAnimeSpeed(1); + setHookshotReadyMaterial(); + dComIfGp_setPlayerStatus0(0, 0x4000); + return 1; } -#pragma pop /* 800F2770-800F2824 0ED0B0 00B4+00 1/0 0/0 0/0 .text procHorseHookshotSubject__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseHookshotSubject() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseHookshotSubject__9daAlink_cFv.s" +int daAlink_c::procHorseHookshotSubject() { + if (checkHookshotWait()) { + setDoStatus(0x12); + } + + if (!setSyncRidePos()) { + return 1; + } + + if (checkHorseSpecialProc()) { + return 1; + } + + setBaseRideAnime(); + + if (!checkNextActionHorse()) { + if (setRideSubjectAngle(current.angle.y)) { + setHookshotSight(); + } + } else { + mSight.offDrawFlg(); + } + + return 1; } -#pragma pop /* 800F2824-800F2898 0ED164 0074+00 1/1 0/0 0/0 .text procHorseHookshotMoveInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseHookshotMoveInit() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseHookshotMoveInit__9daAlink_cFv.s" +int daAlink_c::procHorseHookshotMoveInit() { + if (!commonProcInitNotSameProc(PROC_HORSE_HOOKSHOT_MOVE)) { + return 0; + } + + setSyncRidePos(); + setBaseRideAnime(); + initHookshotUpperAnimeSpeed(0); + dComIfGp_setPlayerStatus0(0, 0x4000); + return 1; } -#pragma pop /* 800F2898-800F2934 0ED1D8 009C+00 1/0 0/0 0/0 .text procHorseHookshotMove__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseHookshotMove() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseHookshotMove__9daAlink_cFv.s" +int daAlink_c::procHorseHookshotMove() { + cancelHookshotMove(); + + if (checkHookshotWait()) { + setDoStatus(0x12); + } + + if (!setSyncRidePos()) { + return 1; + } + + if (checkHorseSpecialProc()) { + return 1; + } + + setBaseRideAnime(); + + if (!checkNextActionHorse()) { + setBodyAngleRideReadyAnime(); + } + + return 1; } -#pragma pop /* 800F2934-800F2AD8 0ED274 01A4+00 1/1 0/0 0/0 .text procHorseBottleDrinkInit__9daAlink_cFUs */ #pragma push @@ -869,14 +1746,20 @@ asm int daAlink_c::procHorseBottleDrinkInit(u16 param_0) { /* 800F2AD8-800F2B4C 0ED418 0074+00 1/0 0/0 0/0 .text procHorseBottleDrink__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseBottleDrink() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseBottleDrink__9daAlink_cFv.s" +int daAlink_c::procHorseBottleDrink() { + i_dComIfGp_getHorseActor(); + + if (!setSyncRidePos()) { + resetUpperAnime(UPPER_2, lit_6109); + returnKeepItemData(); + resetSpecialEvent(); + return 1; + } + + setBaseRideAnime(); + commonBottleDrink(1); + return 1; } -#pragma pop /* 800F2B4C-800F2C78 0ED48C 012C+00 1/1 0/0 0/0 .text procHorseKandelaarPourInit__9daAlink_cFv */ #pragma push @@ -900,26 +1783,62 @@ asm int daAlink_c::procHorseKandelaarPour() { /* 800F2D84-800F2DE4 0ED6C4 0060+00 2/2 0/0 0/0 .text procHorseComebackInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseComebackInit() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseComebackInit__9daAlink_cFv.s" +int daAlink_c::procHorseComebackInit() { + if (!commonProcInitNotSameProc(PROC_HORSE_COMEBACK)) { + return 0; + } + + setSingleAnimeBase(ANM_HORSE_DIE_RECOVER); + field_0x2fab = 0; + setSyncRidePos(); + return 1; } -#pragma pop /* 800F2DE4-800F2EE0 0ED724 00FC+00 1/0 0/0 0/0 .text procHorseComeback__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseComeback() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseComeback__9daAlink_cFv.s" +int daAlink_c::procHorseComeback() { + daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; + + setSyncRidePos(); + if (checkAnmEnd(frameCtrl_p)) { + field_0x2fab = 0x13; + return procHorseWaitInit(); + } else if (frameCtrl_p->getFrame() >= lit_14619) { + field_0x2fab |= 2; + } else if (frameCtrl_p->getFrame() >= lit_16036) { + field_0x2f93 = 5; + field_0x2fab |= 0x10; + } else if (frameCtrl_p->getFrame() >= lit_20303) { + field_0x2fab |= 1; + } else if (frameCtrl_p->checkPass(lit_8676)) { + voiceStart(Z2SE_AL_V_LANDING_FAIL_2); + } + + return 1; } -#pragma pop /* 800F2EE0-800F2F98 0ED820 00B8+00 2/2 0/0 0/0 .text procHorseRunInit__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procHorseRunInit() { + commonProcInit(PROC_HORSE_RUN); + initForceRideHorse(); + deleteEquipItem(TRUE, FALSE); + setSingleAnimeBaseMorf(ANM_HORSE_TAME_WAIT_B, -1.0f); + setSyncHorsePos(); + field_0x2fab = 0; + field_0x300e.y = 0; + field_0x300e.z = 0; + + field_0x3478 = 1000.0f - cM_rndF(500.0f); + field_0x300c = 0; + field_0x300e.x = 30; + field_0x3004 = 0; + field_0x3002 = 0; + mDoAud_changeSubBgmStatus(2); + field_0x32cc = 0; + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -928,6 +1847,7 @@ asm int daAlink_c::procHorseRunInit() { #include "asm/d/a/d_a_alink/procHorseRunInit__9daAlink_cFv.s" } #pragma pop +#endif /* 800F2F98-800F3430 0ED8D8 0498+00 1/0 0/0 0/0 .text procHorseRun__9daAlink_cFv */ #pragma push @@ -962,47 +1882,85 @@ asm int daAlink_c::procHorseHang() { /* 800F36E4-800F3754 0EE024 0070+00 1/0 0/0 0/0 .text procHorseGetKeyInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseGetKeyInit() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseGetKeyInit__9daAlink_cFv.s" +int daAlink_c::procHorseGetKeyInit() { + if (!commonProcInitNotSameProc(PROC_HORSE_GET_KEY)) { + return 0; + } + + deleteEquipItem(FALSE, FALSE); + setSingleAnimeBase(ANM_KEY_CATCH); + setSyncRidePos(); + field_0x300c = 0; + return 1; } -#pragma pop /* 800F3754-800F3818 0EE094 00C4+00 1/0 0/0 0/0 .text procHorseGetKey__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseGetKey() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseGetKey__9daAlink_cFv.s" +int daAlink_c::procHorseGetKey() { + daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; + + setSyncRidePos(); + if (checkAnmEnd(frameCtrl_p)) { + dComIfGp_evmng_cutEnd(field_0x3184); + } else if (frameCtrl_p->getFrame() >= lit_16038) { + field_0x2f92 = 254; + field_0x2f93 = 254; + field_0x300c = 1; + } else if (frameCtrl_p->getFrame() >= lit_7448) { + field_0x2f92 = 2; + } else if (frameCtrl_p->getFrame() >= lit_7808) { + field_0x2f92 = 3; + } + + return 1; } -#pragma pop /* 800F3818-800F3894 0EE158 007C+00 1/0 0/0 0/0 .text procHorseLookDownInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseLookDownInit() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseLookDownInit__9daAlink_cFv.s" +int daAlink_c::procHorseLookDownInit() { + if (!commonProcInitNotSameProc(PROC_HORSE_LOOK_DOWN)) { + return 0; + } + + if (mEquipItem != 0x103) { + deleteEquipItem(FALSE, FALSE); + setSwordModel(); + } + + setSingleAnimeBase(ANM_GANON_ON_HORSE); + setSyncRidePos(); + return 1; } -#pragma pop /* 800F3894-800F38E8 0EE1D4 0054+00 1/0 0/0 0/0 .text procHorseLookDown__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHorseLookDown() { - nofralloc -#include "asm/d/a/d_a_alink/procHorseLookDown__9daAlink_cFv.s" +int daAlink_c::procHorseLookDown() { + setSyncRidePos(); + + if (checkAnmEnd(mUnderFrameCtrl)) { + dComIfGp_evmng_cutEnd(field_0x3184); + } + return 1; } -#pragma pop /* 800F38E8-800F3998 0EE228 00B0+00 1/1 0/0 0/0 .text procBoarRunInit__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procBoarRunInit() { + commonProcInit(PROC_BOAR_RUN); + resetUpperAnime(UPPER_2, -1.0f); + resetUnderAnime(UNDER_2, -1.0f); + + field_0x300e.y = 0; + field_0x300e.z = 0; + field_0x3478 = 3000.0f - cM_rndF(1500.0f); + setSingleAnimeBaseSpeed(ANM_HORSE_TAME_WAIT_A_TO_B, 1.0f, 4.0f); + field_0x300e.x = 0; + + setSyncBoarPos(); + field_0x300c = 0; + deleteEquipItem(FALSE, FALSE); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1011,6 +1969,7 @@ asm int daAlink_c::procBoarRunInit() { #include "asm/d/a/d_a_alink/procBoarRunInit__9daAlink_cFv.s" } #pragma pop +#endif /* 800F3998-800F3BB0 0EE2D8 0218+00 1/0 0/0 0/0 .text procBoarRun__9daAlink_cFv */ #pragma push diff --git a/src/d/a/d_a_alink_hvyboots.inc b/src/d/a/d_a_alink_hvyboots.inc index 039d5be5c4..1ecc3f6ecb 100644 --- a/src/d/a/d_a_alink_hvyboots.inc +++ b/src/d/a/d_a_alink_hvyboots.inc @@ -27,31 +27,88 @@ void daAlink_c::multVecMagneBootInvMtx(cXyz* vec) { /* 800E24B0-800E251C 0DCDF0 006C+00 2/2 0/0 0/0 .text * commonMagneLineCheck__9daAlink_cFP4cXyzP4cXyz */ -int daAlink_c::commonMagneLineCheck(cXyz* i_start, cXyz* i_end) { +bool daAlink_c::commonMagneLineCheck(cXyz* i_start, cXyz* i_end) { mMagneLineChk.Set(i_start, i_end, this); if (dComIfG_Bgsp().LineCross(&mMagneLineChk) && daTagMagne_c::checkMagnetCode(mMagneLineChk)) { - return 1; + return true; } - return 0; + return false; } /* 800E251C-800E2580 0DCE5C 0064+00 2/2 0/0 0/0 .text checkBootsMoveAnime__9daAlink_cFi */ BOOL daAlink_c::checkBootsMoveAnime(int param_0) { - return (checkHeavyStateOn(param_0, 1) && !i_checkNoResetFlg0(FLG0_UNDERWATER)) || checkDkCaught2Anime(); + return (checkHeavyStateOn(param_0, 1) && !i_checkNoResetFlg0(FLG0_UNDERWATER)) || + checkDkCaught2Anime(); } /* 800E2580-800E2738 0DCEC0 01B8+00 17/17 0/0 0/0 .text setHeavyBoots__9daAlink_cFi */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::setHeavyBoots(int param_0) { + if (i_checkEquipHeavyBoots()) { + i_offNoResetFlg0(FLG0_EQUIP_HVY_BOOTS); + mZ2Link.setLinkBootsType(0); + + if (field_0x06e0 != NULL) { + field_0x06e0->show(); + + if (checkZoraWearMaskDraw()) { + field_0x06e4->show(); + } + } + + if (i_checkModeFlg(0x40000) && !checkHookshotItem(mEquipItem)) { + deleteEquipItem(TRUE, FALSE); + } + + if (i_checkNoResetFlg0(FLG0_UNDERWATER) && !i_dComIfGp_checkPlayerStatus1(0, 0x2000000)) { + return procSwimWaitInit(0); + } + + if (i_checkMagneBootsOn()) { + if (cancelMagneBootsOn()) { + return procFallInit(1, 5.0f); + } + + if (mProcID != PROC_BOOTS_EQUIP) { + procWaitInit(); + field_0x2060->initOldFrameMorf(3.0f, 0, 35); + return 1; + } + } + } else if (param_0) { + i_onNoResetFlg0(FLG0_EQUIP_HVY_BOOTS); + mZ2Link.setLinkBootsType(1); + + if (field_0x06e0 != NULL) { + field_0x06e0->hide(); + + if (field_0x06e4 != NULL) { + field_0x06e4->hide(); + } + } + + if (i_checkModeFlg(0x40000)) { + i_offNoResetFlg0(FLG0_UNK_100); + mZ2Link.setInWater(true); + } + } + + return 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::setHeavyBoots(int param_0) { +asm int daAlink_c::setHeavyBoots(int param_0) { nofralloc #include "asm/d/a/d_a_alink/setHeavyBoots__9daAlink_cFi.s" } #pragma pop +#endif /* 800E2738-800E2808 0DD078 00D0+00 2/2 0/0 0/0 .text getMagneBootsLocalAngleY__9daAlink_cFsi */ // matches with literals @@ -82,6 +139,101 @@ asm s16 daAlink_c::getMagneBootsLocalAngleY(s16 param_0, int param_1) { /* 800E2808-800E2DC4 0DD148 05BC+00 3/3 0/0 0/0 .text * setMagneBootsMtx__9daAlink_cFP13cBgS_PolyInfoi */ +// matches with literals +#ifdef NONMATCHING +void daAlink_c::setMagneBootsMtx(cBgS_PolyInfo* i_polyinfo, int param_1) { + cM3dGPla poly; + dComIfG_Bgsp().GetTriPla(*i_polyinfo, &poly); + + s16 var_r28 = cM_atan2s(poly.mNormal.absXZ(), poly.mNormal.y); + int temp_r3_2 = abs(var_r28); + if (temp_r3_2 < 500) { + var_r28 = 0; + } else if (temp_r3_2 > 0x7E0B) { + var_r28 = -0x8000; + } + + if (var_r28 != 0 && var_r28 != -0x8000) { + field_0x3116 = poly.mNormal.atan2sX_Z(); + } else if (param_1) { + field_0x3116 = 0; + } + + if (param_1) { + if (mProcID == PROC_MAGNE_BOOTS_FLY) { + cLib_addCalcAngleS(&field_0x3114, var_r28, 5, 0x1000, 0x100); + } else { + field_0x3114 = var_r28; + } + } else { + // D_MN54 is the E3 Goron Mines Demo map + if (checkStageName("D_MN54") && getMoveBGActorName(*i_polyinfo, 1) == PROC_Obj_MagneArm) { + i_fopAcM_onSwitch(this, 0x93); + } + + field_0x3114 = var_r28; + + f32 temp_f1 = mMagneBootsTopVec.inprod(poly.mNormal); + if (!(fabsf(temp_f1) > 0.9999f)) { + cXyz sp44 = mMagneBootsTopVec.outprod(poly.mNormal); + sp44.normalizeZP(); + + f32 var_f1_2 = JMAFastSqrt(1.0f - temp_f1 * temp_f1); + f32 temp_f1_2 = cM_atan2f(var_f1_2, temp_f1); + f32 var_f2 = temp_f1_2 * 0.2f; + + if (var_f2 > 0.4f) { + var_f2 = 0.4f; + } else if (var_f2 < 0.025f) { + var_f2 = 0.025f; + + if (0.025f > temp_f1_2) { + var_f2 = temp_f1_2; + } + } + + cXyz sp40; + mDoMtx_stack_c::rotAxisRadS(&sp44, var_f2); + mDoMtx_stack_c::concat(mMagneBootMtx); + mDoMtx_copy(mDoMtx_stack_c::get(), mMagneBootMtx); + mDoMtx_multVec(mMagneBootMtx, &cXyz::BaseY, &sp40); + + field_0x3114 = cM_atan2s(sp40.absXZ(), sp40.y); + + int temp_r3_4 = abs(field_0x3114); + if (temp_r3_4 < 500) { + field_0x3114 = 0; + } else if (temp_r3_4 > 0x7E0B) { + field_0x3114 = -0x8000; + } + + if (field_0x3114 != 0 && field_0x3114 != -0x8000) { + field_0x3116 = sp40.atan2sX_Z(); + } else { + field_0x3116 = 0; + } + + mDoMtx_stack_c::YrotS(field_0x3116); + mDoMtx_stack_c::XrotM(-field_0x3114); + mDoMtx_stack_c::YrotM(-field_0x3116); + mDoMtx_stack_c::concat(mMagneBootMtx); + mDoMtx_stack_c::multVecSR(&cXyz::BaseZ, &sp40); + + s16 angle = sp40.atan2sX_Z(); + shape_angle.y += angle; + current.angle.y += angle; + field_0x2fe6 += angle; + field_0x310c += angle; + } + } + + mDoMtx_YrotS(mMagneBootMtx, field_0x3116); + mDoMtx_XrotM(mMagneBootMtx, field_0x3114); + mDoMtx_YrotM(mMagneBootMtx, -field_0x3116); + mDoMtx_inverse(mMagneBootMtx, mMagneBootInvMtx); + mDoMtx_multVec(mMagneBootMtx, &cXyz::BaseY, &mMagneBootsTopVec); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -90,23 +242,69 @@ asm void daAlink_c::setMagneBootsMtx(cBgS_PolyInfo* param_0, int param_1) { #include "asm/d/a/d_a_alink/setMagneBootsMtx__9daAlink_cFP13cBgS_PolyInfoi.s" } #pragma pop +#endif /* 800E2DC4-800E2F88 0DD704 01C4+00 7/7 0/0 0/0 .text cancelMagneBootsOn__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::cancelMagneBootsOn() { + i_offNoResetFlg0(FLG0_MAGNE_BOOTS_ON); + mZ2Link.setMagnetized(false); + + if (field_0x3114 == -0x8000) { + setOldRootQuaternion(field_0x3114, 0, 0); + } else { + s16 var_r31 = shape_angle.y - field_0x3116; + setOldRootQuaternion(0, var_r31, 0); + setOldRootQuaternion(field_0x3114, 0, 0); + setOldRootQuaternion(0, -var_r31, 0); + } + + field_0x3114 = 0; + + if (!cBgW_CheckBGround(mMagneBootsTopVec.y)) { + current.pos += mMagneBootsTopVec * 100.0f; + mLinkGndChk.SetPos(¤t.pos); + + f32 gnd_cross = dComIfG_Bgsp().GroundCross(&mLinkGndChk); + current.pos.y -= 100.0f; + if (gnd_cross > current.pos.y) { + current.pos.y = gnd_cross; + } + + next.pos = current.pos; + field_0x3798 = current.pos; + mMagneBootsTopVec = cXyz::BaseY; + + if (checkUpperReadyThrowAnime()) { + resetUpperAnime(UPPER_2, 3.0f); + } + + return 1; + } + + mMagneBootsTopVec = cXyz::BaseY; + return 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::cancelMagneBootsOn() { +asm int daAlink_c::cancelMagneBootsOn() { nofralloc #include "asm/d/a/d_a_alink/cancelMagneBootsOn__9daAlink_cFv.s" } #pragma pop +#endif /* 800E2F88-800E3048 0DD8C8 00C0+00 1/1 0/0 0/0 .text checkMagneBootsFly__9daAlink_cFv */ int daAlink_c::checkMagneBootsFly() { - if (field_0x2fb8 != 0 && i_checkEquipHeavyBoots() && !checkDeadHP() && mProcID != PROC_MAGNE_BOOTS_FLY && !checkEventRun()) { + if (field_0x2fb8 != 0 && i_checkEquipHeavyBoots() && !checkDeadHP() && + mProcID != PROC_MAGNE_BOOTS_FLY && !checkEventRun()) + { cXyz vec(field_0x369c); vec.normalizeZP(); - + if (mMagneBootsTopVec.getDotProduct(vec) > lit_8131 && procMagneBootsFlyInit()) { return 1; } @@ -132,6 +330,33 @@ int daAlink_c::procBootsEquipInit() { } /* 800E30DC-800E3218 0DDA1C 013C+00 1/0 0/0 0/0 .text procBootsEquip__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procBootsEquip() { + daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; + i_onEndResetFlg0(ERFLG0_UNK_8000000); + + if (checkAnmEnd(frameCtrl_p)) { + checkNextAction(0); + } else if (frameCtrl_p->checkPass(10.0f)) { + setHeavyBoots(1); + } else if (frameCtrl_p->checkPass(16.0f)) { + if (i_checkNoResetFlg0(FLG0_EQUIP_HVY_BOOTS)) { + dComIfGp_getVibration().StartShock(3, 1, cXyz(0.0f, 1.0f, 0.0f)); + } + + offModeFlg(2); + } else if (frameCtrl_p->getFrame() > daAlinkHIO_magneBoots_c0::m.mEquipAnm.mCheckFrame) { + onModeFlg(4); + checkNextAction(1); + } else if (frameCtrl_p->getFrame() >= 5.0f) { + field_0x2f92 = 1; + field_0x2f93 = 6; + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -140,9 +365,57 @@ asm int daAlink_c::procBootsEquip() { #include "asm/d/a/d_a_alink/procBootsEquip__9daAlink_cFv.s" } #pragma pop +#endif /* 800E3218-800E3454 0DDB58 023C+00 1/1 0/0 0/0 .text procMagneBootsFlyInit__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procMagneBootsFlyInit() { + cXyz sp44 = field_0x369c.normZP(); + cM3dGPla sp50(&sp44, -sp44.inprod(field_0x3834)); + sp44 = field_0x36b4 + field_0x369c; + + cXyz sp38; + if (!sp50.crossInfLin(field_0x36b4, sp44, sp38)) { + return 0; + } + + sp44 = sp38 + (field_0x369c * 2.0f); + + if (!commonMagneLineCheck(&sp38, &sp44)) { + return 0; + } + + if (i_checkMagneBootsOn()) { + i_offNoResetFlg0(FLG0_MAGNE_BOOTS_ON); + mZ2Link.setMagnetized(true); + } + + commonProcInit(PROC_MAGNE_BOOTS_FLY); + + dComIfG_Bgsp().GetTriPla(mMagneLineChk, &sp50); + mPolyInfo2.SetPolyInfo(mMagneLineChk); + field_0x37c8 = mMagneLineChk.i_GetCross(); + + setSpecialGravity(0.0f, mMaxFallSpeed, 0); + speed.y = 0.0f; + mNormalSpeed = 0.0f; + + setSingleAnimeBase(ANM_MG_KICK); + if (mEquipItem != 0x103 && !checkBowItem(mEquipItem)) { + deleteEquipItem(FALSE, TRUE); + } else { + offKandelaarModel(); + } + + field_0x3478 = 0.0f; + field_0x594 = daAlinkHIO_magneBoots_c0::m.mMaxMagneFlySpeed; + field_0x300c = 0; + voiceStart(Z2SE_AL_V_MAGNET_CAUGHT); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -151,8 +424,49 @@ asm int daAlink_c::procMagneBootsFlyInit() { #include "asm/d/a/d_a_alink/procMagneBootsFlyInit__9daAlink_cFv.s" } #pragma pop +#endif /* 800E3454-800E3760 0DDD94 030C+00 1/0 0/0 0/0 .text procMagneBootsFly__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procMagneBootsFly() { + field_0x3478 += daAlinkHIO_magneBoots_c0::m.mMagneFlyAccelRate; + if (field_0x3478 > field_0x594) { + field_0x3478 = field_0x594; + } + + if (dComIfG_Bgsp().ChkPolySafe(mPolyInfo2) && i_checkEquipHeavyBoots()) { + if (dComIfG_Bgsp().ChkMoveBG(mPolyInfo2)) { + cXyz old_37c8(field_0x37c8); + dComIfG_Bgsp().MoveBgTransPos(mPolyInfo2, true, &field_0x37c8, NULL, NULL); + current.pos += field_0x37c8 - old_37c8; + } + + setMagneBootsMtx(&mPolyInfo2, 1); + } else { + cancelMagneBootsOn(); + return procFallInit(1, 5.0f); + } + + cLib_chasePos(¤t.pos, field_0x37c8, field_0x3478); + if (field_0x37c8.abs(current.pos) < 50.0f) { + current.pos = field_0x37c8; + i_onNoResetFlg0(FLG0_MAGNE_BOOTS_ON); + mZ2Link.setMagnetized(true); + procLandDamageInit(0); + } else { + cXyz sp24; + mDoMtx_multVecZero(mpLinkModel->i_getAnmMtx(0), &sp24); + sp24 = field_0x37c8 - sp24; + + cLib_addCalcAngleS(&shape_angle.x, sp24.atan2sY_XZ() + -0x4000, 5, 0x1000, 0x100); + cLib_addCalcAngleS(&shape_angle.y, sp24.atan2sX_Z(), 5, 0x1000, 0x100); + field_0x300c += 0x1C00; + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -160,4 +474,5 @@ asm int daAlink_c::procMagneBootsFly() { nofralloc #include "asm/d/a/d_a_alink/procMagneBootsFly__9daAlink_cFv.s" } -#pragma pop \ No newline at end of file +#pragma pop +#endif diff --git a/src/d/a/d_a_horse_static.cpp b/src/d/a/d_a_horse_static.cpp index f60f568bf5..8d387143e1 100644 --- a/src/d/a/d_a_horse_static.cpp +++ b/src/d/a/d_a_horse_static.cpp @@ -40,7 +40,7 @@ BOOL e_wb_class::checkDownDamage() { return mActionID != ACT_PL_RIDE && mActionID != 0x66 && mActionID != ACT_S_DAMAGE; } -u8 e_wb_class::checkNormalRideMode() const { +BOOL e_wb_class::checkNormalRideMode() const { return mActionID != 0x66 || field_0x5b4 < 1; } diff --git a/src/d/a/d_a_player.cpp b/src/d/a/d_a_player.cpp index d7b2d6dbcc..987bf5129c 100644 --- a/src/d/a/d_a_player.cpp +++ b/src/d/a/d_a_player.cpp @@ -679,7 +679,7 @@ int daPy_addCalcShort(s16* param_0, s16 param_1, s16 param_2, s16 param_3, s16 p #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daPy_addCalcShort(s16* param_0, s16 param_1, s16 param_2, s16 param_3, s16 param_4) { +asm int daPy_addCalcShort(s16* param_0, s16 param_1, s16 param_2, s16 param_3, s16 param_4) { nofralloc #include "asm/d/a/d_a_player/daPy_addCalcShort__FPsssss.s" } diff --git a/src/d/d_camera.cpp b/src/d/d_camera.cpp index edf77aaddd..54ba7c6d3b 100644 --- a/src/d/d_camera.cpp +++ b/src/d/d_camera.cpp @@ -4440,7 +4440,8 @@ asm void daHorse_c::getLashDashStart() const { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void std::fabs(f32 param_0) { +// asm void std::fabs(f32 param_0) { +extern "C" asm void fabs__3stdFf() { nofralloc #include "asm/d/d_camera/fabs__3stdFf.s" }