From bcff62a8ba1be77b3055488005e1fb83a5689abb Mon Sep 17 00:00:00 2001 From: Aetias Date: Sat, 6 Apr 2024 11:49:42 +0200 Subject: [PATCH] Add `LinkStateMove` --- asm/ov00/Player/LinkStateMove.inc | 21 +++ asm/ov00/Player/LinkStateMove.s | 224 ++++++++++++++++++++++++ asm/ov00/ov00_020a8e04.inc | 14 -- asm/ov00/ov00_020a8e04.s | 250 --------------------------- asm/ov00/ov00_020b1498.inc | 4 +- asm/ov00/ov00_020b1498.s | 8 +- asm/ov05.inc | 2 +- asm/ov05.s | 2 +- include/Player/LinkStateMove.hpp | 3 + src/00_Core/Player/LinkStateMove.cpp | 14 ++ tools/lcf.py | 2 + 11 files changed, 272 insertions(+), 272 deletions(-) create mode 100644 asm/ov00/Player/LinkStateMove.inc create mode 100644 asm/ov00/Player/LinkStateMove.s create mode 100644 src/00_Core/Player/LinkStateMove.cpp diff --git a/asm/ov00/Player/LinkStateMove.inc b/asm/ov00/Player/LinkStateMove.inc new file mode 100644 index 00000000..30c98815 --- /dev/null +++ b/asm/ov00/Player/LinkStateMove.inc @@ -0,0 +1,21 @@ +#pragma once +.extern _ZN10PlayerBase13GetEquipSwordEv +.extern _ZN13LinkStateBase12GetEquipItemEi +.extern _ZN13LinkStateBase12OnStateLeaveEi +.extern _ZN13LinkStateBase18GetDebugHierarchy0Ev +.extern _ZN13LinkStateBase8vfunc_20Ei +.extern _ZN13LinkStateBase8vfunc_24Ei +.extern _ZN13LinkStateBase8vfunc_28Ev +.extern _ZN13LinkStateBase8vfunc_34EP5Vec3p +.extern _ZN13LinkStateBase9GetHealthEv +.extern data_ov00_020eec9c +.extern data_ov04_021113dc +.extern func_ov00_020c06b0 +.extern func_ov00_020d77e4 +.extern func_ov04_0210aef4 +.extern func_ov04_0210af00 +.extern func_ov05_0210f704 +.extern func_ov05_0210f708 +.extern func_ov05_0210f70c +.extern func_ov05_0210f71c +.extern func_ov05_02111a98 diff --git a/asm/ov00/Player/LinkStateMove.s b/asm/ov00/Player/LinkStateMove.s new file mode 100644 index 00000000..0ca3780b --- /dev/null +++ b/asm/ov00/Player/LinkStateMove.s @@ -0,0 +1,224 @@ + .include "ov00/Player/LinkStateMove.inc" + .include "macros/function.inc" + + .text + + .global _ZN13LinkStateMove8vfunc_00Ev + thumb_func_start _ZN13LinkStateMove8vfunc_00Ev +_ZN13LinkStateMove8vfunc_00Ev: ; 0x020a8e04 + bx lr + .align 2, 0 + thumb_func_end _ZN13LinkStateMove8vfunc_00Ev + + .global _ZN13LinkStateMove5GetIdEv + arm_func_start _ZN13LinkStateMove5GetIdEv +_ZN13LinkStateMove5GetIdEv: ; 0x020a8e08 + mov r0, #0 + bx lr + arm_func_end _ZN13LinkStateMove5GetIdEv + + .global _ZN13LinkStateMove20CreateDebugHierarchyEv + thumb_func_start _ZN13LinkStateMove20CreateDebugHierarchyEv +_ZN13LinkStateMove20CreateDebugHierarchyEv: ; 0x020a8e10 + push {r4, r5, lr} + sub sp, #0x14 + ldr r5, _020a8e4c ; =data_ov00_020e5744 + blx _ZN13LinkStateBase18GetDebugHierarchy0Ev + ldr r3, [r0] + ldr r1, _020a8e50 ; =0x4c4d4f56 + ldr r2, _020a8e54 ; =data_ov00_020e56f0 + ldr r3, [r3, #0x3c] + add r4, r0, #0 + blx r3 + ldr r0, _020a8e54 ; =data_ov00_020e56f0 + mov r1, #0 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + str r1, [sp, #8] + lsl r0, r0, #9 + str r0, [sp, #0xc] + str r1, [sp, #0x10] + add r0, r4, #0 + ldr r4, [r0] + ldr r3, _020a8e50 ; =0x4c4d4f56 + ldr r4, [r4, #0x34] + mov r1, #1 + add r2, r5, #0 + blx r4 + add sp, #0x14 + pop {r4, r5, pc} + nop + thumb_func_end _ZN13LinkStateMove20CreateDebugHierarchyEv +_020a8e4c: .word data_ov00_020e5744 +_020a8e50: .word 0x4c4d4f56 +_020a8e54: .word data_ov00_020e56f0 + + .global _ZN13LinkStateMove12OnStateEnterEv + arm_func_start _ZN13LinkStateMove12OnStateEnterEv +_ZN13LinkStateMove12OnStateEnterEv: ; 0x020a8e58 + stmdb sp!, {r4, lr} + mov r4, r0 + mov r1, #0 + str r1, [r4, #0xc] + strh r1, [r4, #0x10] + strh r1, [r4, #0x12] + ldrb r2, [r4, #0x14] + cmp r2, #0 + ldmeqia sp!, {r4, pc} + bl _ZN13LinkStateBase12GetEquipItemEi + ldr r2, [r0] + mov r1, #1 + ldr r2, [r2, #0x28] + blx r2 + mov r0, r4 + mov r1, #1 + bl _ZN13LinkStateBase12GetEquipItemEi + ldr r2, [r0] + mov r1, #1 + ldr r2, [r2, #0x28] + blx r2 + bl _ZN10PlayerBase13GetEquipSwordEv + mvn r1, #0 + bl func_ov00_020c06b0 + ldr r0, _020a8ec8 ; =data_ov00_020eec9c + mov r1, #0xd + bl func_ov00_020d77e4 + ldmia sp!, {r4, pc} + .align 2, 0 + arm_func_end _ZN13LinkStateMove12OnStateEnterEv +_020a8ec8: .word data_ov00_020eec9c + + .global _ZN13LinkStateMove12OnStateLeaveEi + arm_func_start _ZN13LinkStateMove12OnStateLeaveEi +_ZN13LinkStateMove12OnStateLeaveEi: ; 0x020a8ecc + stmdb sp!, {r4, lr} + mov r4, r0 + bl _ZN13LinkStateBase12OnStateLeaveEi + mov r0, #0 + strb r0, [r4, #0x14] + strb r0, [r4, #0x15] + strb r0, [r4, #0x16] + ldmia sp!, {r4, pc} + arm_func_end _ZN13LinkStateMove12OnStateLeaveEi + + .global _ZN13LinkStateMove8vfunc_24Ei + arm_func_start _ZN13LinkStateMove8vfunc_24Ei +_ZN13LinkStateMove8vfunc_24Ei: ; 0x020a8eec + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + bl _ZN13LinkStateBase9GetHealthEv + cmp r0, #0 + ble _020a8f14 + mov r0, r5 + mov r1, r4 + bl _ZN13LinkStateBase8vfunc_24Ei + ldmia sp!, {r3, r4, r5, pc} +_020a8f14: + cmp r4, #2 + bne _020a8f24 + mov r0, #1 + ldmia sp!, {r3, r4, r5, pc} +_020a8f24: + mov r0, #0 + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN13LinkStateMove8vfunc_24Ei + + .global _ZN13LinkStateMove18func_ov00_020a8f2cEv + arm_func_start _ZN13LinkStateMove18func_ov00_020a8f2cEv +_ZN13LinkStateMove18func_ov00_020a8f2cEv: ; 0x020a8f2c + ldr r1, _020a8f48 ; =data_ov00_020e56f0 + ldr r2, [r0, #0xc] + ldr r0, [r1, #4] + cmp r2, r0 + movgt r0, #1 + movle r0, #0 + bx lr + .align 2, 0 + arm_func_end _ZN13LinkStateMove18func_ov00_020a8f2cEv +_020a8f48: .word data_ov00_020e56f0 + + .global _ZN13LinkStateMove18func_ov00_020a8f4cEv + arm_func_start _ZN13LinkStateMove18func_ov00_020a8f4cEv +_ZN13LinkStateMove18func_ov00_020a8f4cEv: ; 0x020a8f4c + ldrb r1, [r0, #0x15] + cmp r1, #0 + movne r0, #0 + bxne lr + mov r2, #1 + strb r2, [r0, #0x15] + mov r1, #0 + strb r1, [r0, #0x16] + mov r0, r2 + bx lr + arm_func_end _ZN13LinkStateMove18func_ov00_020a8f4cEv + + .data + .global data_ov00_020e56f0 +data_ov00_020e56f0: ; 0x020e56f0 + .byte 0x00, 0x08, 0x00, 0x00 + .global data_ov00_020e56f4 +data_ov00_020e56f4: ; 0x020e56f4 + .byte 0x00, 0x01, 0x00, 0x00 + .global data_ov00_020e56f8 +data_ov00_020e56f8: ; 0x020e56f8 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e56fc +data_ov00_020e56fc: ; 0x020e56fc + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e5700 +data_ov00_020e5700: ; 0x020e5700 + .word _ZN13LinkStateMove8vfunc_00Ev + .global data_ov00_020e5704 +data_ov00_020e5704: ; 0x020e5704 + .word func_ov04_0210aef4 ; data_ov07_0210aef4 + .global data_ov00_020e5708 +data_ov00_020e5708: ; 0x020e5708 + .word func_ov04_0210af00 ; data_ov07_0210af00 + .global data_ov00_020e570c +data_ov00_020e570c: ; 0x020e570c + .word _ZN13LinkStateMove5GetIdEv - 1 + .global data_ov00_020e5710 +data_ov00_020e5710: ; 0x020e5710 + .word _ZN13LinkStateMove20CreateDebugHierarchyEv + .global data_ov00_020e5714 +data_ov00_020e5714: ; 0x020e5714 + .word _ZN13LinkStateMove12OnStateEnterEv - 1 + .global data_ov00_020e5718 +data_ov00_020e5718: ; 0x020e5718 + .word _ZN13LinkStateMove12OnStateLeaveEi - 1 + .global data_ov00_020e571c +data_ov00_020e571c: ; 0x020e571c + .word data_ov04_021113dc ; func_ov05_021113dc + .global data_ov00_020e5720 +data_ov00_020e5720: ; 0x020e5720 + .word _ZN13LinkStateBase8vfunc_20Ei + .global data_ov00_020e5724 +data_ov00_020e5724: ; 0x020e5724 + .word _ZN13LinkStateMove8vfunc_24Ei - 1 + .global data_ov00_020e5728 +data_ov00_020e5728: ; 0x020e5728 + .word _ZN13LinkStateBase8vfunc_28Ev + .global data_ov00_020e572c +data_ov00_020e572c: ; 0x020e572c + .word func_ov05_0210f704 + .global data_ov00_020e5730 +data_ov00_020e5730: ; 0x020e5730 + .word func_ov05_0210f708 + .global data_ov00_020e5734 +data_ov00_020e5734: ; 0x020e5734 + .word _ZN13LinkStateBase8vfunc_34EP5Vec3p + .global data_ov00_020e5738 +data_ov00_020e5738: ; 0x020e5738 + .word func_ov05_0210f70c + .global data_ov00_020e573c +data_ov00_020e573c: ; 0x020e573c + .word func_ov05_02111a98 + .global data_ov00_020e5740 +data_ov00_020e5740: ; 0x020e5740 + .word func_ov05_0210f71c + .global data_ov00_020e5744 +data_ov00_020e5744: ; 0x020e5744 + .ascii "息吹きボリューム低下率" + .byte 0x00, 0x00 diff --git a/asm/ov00/ov00_020a8e04.inc b/asm/ov00/ov00_020a8e04.inc index 4d16ff8a..044de702 100644 --- a/asm/ov00/ov00_020a8e04.inc +++ b/asm/ov00/ov00_020a8e04.inc @@ -1,16 +1,10 @@ #pragma once .extern _ZN10PlayerBase13GetEquipSwordEv -.extern _ZN13LinkStateBase12GetEquipItemEi .extern _ZN13LinkStateBase12GetPlayerPosEv .extern _ZN13LinkStateBase12GetPlayerVelEv .extern _ZN13LinkStateBase12OnStateLeaveEi -.extern _ZN13LinkStateBase18GetDebugHierarchy0Ev .extern _ZN13LinkStateBase18func_ov00_020a8d40Ev -.extern _ZN13LinkStateBase8vfunc_20Ei .extern _ZN13LinkStateBase8vfunc_24Ei -.extern _ZN13LinkStateBase8vfunc_28Ev -.extern _ZN13LinkStateBase8vfunc_34EP5Vec3p -.extern _ZN13LinkStateBase9GetHealthEv .extern _ZN13PlayerControl13StopFollowingEv .extern _ZN13PlayerControl18func_ov00_020af01cEPc .extern _ZN9SysObjectdlEPv @@ -27,8 +21,6 @@ .extern data_027e0e60 .extern data_027e0fb8 .extern data_ov00_020e9360 -.extern data_ov00_020eec9c -.extern data_ov04_021113dc .extern func_01ff80d4 .extern func_01ff81f8 .extern func_01ff8230 @@ -69,26 +61,20 @@ .extern func_ov00_020840c4 .extern func_ov00_020b3ea8 .extern func_ov00_020b3eac -.extern func_ov00_020c06b0 .extern func_ov00_020c0c08 .extern func_ov00_020c0c40 .extern func_ov00_020c0d70 .extern func_ov00_020c0e94 .extern func_ov00_020c0ea0 -.extern func_ov00_020d77e4 .extern func_ov04_0210ad94 .extern func_ov04_0210adb0 .extern func_ov04_0210adf8 -.extern func_ov04_0210aef4 -.extern func_ov04_0210af00 .extern func_ov05_0210b57c .extern func_ov05_0210b97c .extern func_ov05_0210c20c .extern func_ov05_0210c990 -.extern func_ov05_0210f704 .extern func_ov05_0210f708 .extern func_ov05_0210f70c .extern func_ov05_0210f714 .extern func_ov05_0210f71c -.extern func_ov05_02111a98 .extern func_ov14_0214bd08 diff --git a/asm/ov00/ov00_020a8e04.s b/asm/ov00/ov00_020a8e04.s index 90e875ea..b5058c15 100644 --- a/asm/ov00/ov00_020a8e04.s +++ b/asm/ov00/ov00_020a8e04.s @@ -3,157 +3,6 @@ .text - .global func_ov00_020a8e04 - thumb_func_start func_ov00_020a8e04 -func_ov00_020a8e04: ; 0x020a8e04 - bx lr - .align 2, 0 - thumb_func_end func_ov00_020a8e04 - - .global func_ov00_020a8e08 - arm_func_start func_ov00_020a8e08 -func_ov00_020a8e08: ; 0x020a8e08 - mov r0, #0 - bx lr - arm_func_end func_ov00_020a8e08 - - .global func_ov00_020a8e10 - thumb_func_start func_ov00_020a8e10 -func_ov00_020a8e10: ; 0x020a8e10 - push {r4, r5, lr} - sub sp, #0x14 - ldr r5, _020a8e4c ; =data_ov00_020e5744 - blx _ZN13LinkStateBase18GetDebugHierarchy0Ev - ldr r3, [r0] - ldr r1, _020a8e50 ; =0x4c4d4f56 - ldr r2, _020a8e54 ; =data_ov00_020e56f0 - ldr r3, [r3, #0x3c] - add r4, r0, #0 - blx r3 - ldr r0, _020a8e54 ; =data_ov00_020e56f0 - mov r1, #0 - str r0, [sp] - mov r0, #8 - str r0, [sp, #4] - str r1, [sp, #8] - lsl r0, r0, #9 - str r0, [sp, #0xc] - str r1, [sp, #0x10] - add r0, r4, #0 - ldr r4, [r0] - ldr r3, _020a8e50 ; =0x4c4d4f56 - ldr r4, [r4, #0x34] - mov r1, #1 - add r2, r5, #0 - blx r4 - add sp, #0x14 - pop {r4, r5, pc} - nop - thumb_func_end func_ov00_020a8e10 -_020a8e4c: .word data_ov00_020e5744 -_020a8e50: .word 0x4c4d4f56 -_020a8e54: .word data_ov00_020e56f0 - - .global func_ov00_020a8e58 - arm_func_start func_ov00_020a8e58 -func_ov00_020a8e58: ; 0x020a8e58 - stmdb sp!, {r4, lr} - mov r4, r0 - mov r1, #0 - str r1, [r4, #0xc] - strh r1, [r4, #0x10] - strh r1, [r4, #0x12] - ldrb r2, [r4, #0x14] - cmp r2, #0 - ldmeqia sp!, {r4, pc} - bl _ZN13LinkStateBase12GetEquipItemEi - ldr r2, [r0] - mov r1, #1 - ldr r2, [r2, #0x28] - blx r2 - mov r0, r4 - mov r1, #1 - bl _ZN13LinkStateBase12GetEquipItemEi - ldr r2, [r0] - mov r1, #1 - ldr r2, [r2, #0x28] - blx r2 - bl _ZN10PlayerBase13GetEquipSwordEv - mvn r1, #0 - bl func_ov00_020c06b0 - ldr r0, _020a8ec8 ; =data_ov00_020eec9c - mov r1, #0xd - bl func_ov00_020d77e4 - ldmia sp!, {r4, pc} - .align 2, 0 - arm_func_end func_ov00_020a8e58 -_020a8ec8: .word data_ov00_020eec9c - - .global func_ov00_020a8ecc - arm_func_start func_ov00_020a8ecc -func_ov00_020a8ecc: ; 0x020a8ecc - stmdb sp!, {r4, lr} - mov r4, r0 - bl _ZN13LinkStateBase12OnStateLeaveEi - mov r0, #0 - strb r0, [r4, #0x14] - strb r0, [r4, #0x15] - strb r0, [r4, #0x16] - ldmia sp!, {r4, pc} - arm_func_end func_ov00_020a8ecc - - .global func_ov00_020a8eec - arm_func_start func_ov00_020a8eec -func_ov00_020a8eec: ; 0x020a8eec - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - bl _ZN13LinkStateBase9GetHealthEv - cmp r0, #0 - ble _020a8f14 - mov r0, r5 - mov r1, r4 - bl _ZN13LinkStateBase8vfunc_24Ei - ldmia sp!, {r3, r4, r5, pc} -_020a8f14: - cmp r4, #2 - bne _020a8f24 - mov r0, #1 - ldmia sp!, {r3, r4, r5, pc} -_020a8f24: - mov r0, #0 - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_020a8eec - - .global func_ov00_020a8f2c - arm_func_start func_ov00_020a8f2c -func_ov00_020a8f2c: ; 0x020a8f2c - ldr r1, _020a8f48 ; =data_ov00_020e56f0 - ldr r2, [r0, #0xc] - ldr r0, [r1, #4] - cmp r2, r0 - movgt r0, #1 - movle r0, #0 - bx lr - .align 2, 0 - arm_func_end func_ov00_020a8f2c -_020a8f48: .word data_ov00_020e56f0 - - .global func_ov00_020a8f4c - arm_func_start func_ov00_020a8f4c -func_ov00_020a8f4c: ; 0x020a8f4c - ldrb r1, [r0, #0x15] - cmp r1, #0 - movne r0, #0 - bxne lr - mov r2, #1 - strb r2, [r0, #0x15] - mov r1, #0 - strb r1, [r0, #0x16] - mov r0, r2 - bx lr - arm_func_end func_ov00_020a8f4c - .global func_ov00_020a8f74 thumb_func_start func_ov00_020a8f74 func_ov00_020a8f74: ; 0x020a8f74 @@ -1983,105 +1832,6 @@ _020aa280: _020aa328: .word data_ov00_020e9360 .data - .global data_ov00_020e56f0 -data_ov00_020e56f0: ; 0x020e56f0 - .byte 0x00, 0x08, 0x00, 0x00 - .global data_ov00_020e56f4 -data_ov00_020e56f4: ; 0x020e56f4 - .byte 0x00, 0x01, 0x00, 0x00 - .global data_ov00_020e56f8 -data_ov00_020e56f8: ; 0x020e56f8 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e56fc -data_ov00_020e56fc: ; 0x020e56fc - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5700 -data_ov00_020e5700: ; 0x020e5700 - .word func_ov00_020a8e04 - .global data_ov00_020e5704 -data_ov00_020e5704: ; 0x020e5704 - .word func_ov04_0210aef4 ; data_ov07_0210aef4 - .global data_ov00_020e5708 -data_ov00_020e5708: ; 0x020e5708 - .word func_ov04_0210af00 ; data_ov07_0210af00 - .global data_ov00_020e570c -data_ov00_020e570c: ; 0x020e570c - .word func_ov00_020a8e08 - 1 - .global data_ov00_020e5710 -data_ov00_020e5710: ; 0x020e5710 - .word func_ov00_020a8e10 - .global data_ov00_020e5714 -data_ov00_020e5714: ; 0x020e5714 - .word func_ov00_020a8e58 - 1 - .global data_ov00_020e5718 -data_ov00_020e5718: ; 0x020e5718 - .word func_ov00_020a8ecc - 1 - .global data_ov00_020e571c -data_ov00_020e571c: ; 0x020e571c - .word data_ov04_021113dc ; func_ov05_021113dc - .global data_ov00_020e5720 -data_ov00_020e5720: ; 0x020e5720 - .word _ZN13LinkStateBase8vfunc_20Ei - .global data_ov00_020e5724 -data_ov00_020e5724: ; 0x020e5724 - .word func_ov00_020a8eec - 1 - .global data_ov00_020e5728 -data_ov00_020e5728: ; 0x020e5728 - .word _ZN13LinkStateBase8vfunc_28Ev - .global data_ov00_020e572c -data_ov00_020e572c: ; 0x020e572c - .word func_ov05_0210f704 - .global data_ov00_020e5730 -data_ov00_020e5730: ; 0x020e5730 - .word func_ov05_0210f708 - .global data_ov00_020e5734 -data_ov00_020e5734: ; 0x020e5734 - .word _ZN13LinkStateBase8vfunc_34EP5Vec3p - .global data_ov00_020e5738 -data_ov00_020e5738: ; 0x020e5738 - .word func_ov05_0210f70c - .global data_ov00_020e573c -data_ov00_020e573c: ; 0x020e573c - .word func_ov05_02111a98 - .global data_ov00_020e5740 -data_ov00_020e5740: ; 0x020e5740 - .word func_ov05_0210f71c - .global data_ov00_020e5744 -data_ov00_020e5744: ; 0x020e5744 - .byte 0x91, 0xa7 - .global data_ov00_020e5746 -data_ov00_020e5746: ; 0x020e5746 - .byte 0x90, 0x81 - .global data_ov00_020e5748 -data_ov00_020e5748: ; 0x020e5748 - .byte 0x82, 0xab - .global data_ov00_020e574a -data_ov00_020e574a: ; 0x020e574a - .byte 0x83, 0x7b - .global data_ov00_020e574c -data_ov00_020e574c: ; 0x020e574c - .byte 0x83, 0x8a - .global data_ov00_020e574e -data_ov00_020e574e: ; 0x020e574e - .byte 0x83, 0x85 - .global data_ov00_020e5750 -data_ov00_020e5750: ; 0x020e5750 - .byte 0x81, 0x5b - .global data_ov00_020e5752 -data_ov00_020e5752: ; 0x020e5752 - .byte 0x83, 0x80 - .global data_ov00_020e5754 -data_ov00_020e5754: ; 0x020e5754 - .byte 0x92, 0xe1 - .global data_ov00_020e5756 -data_ov00_020e5756: ; 0x020e5756 - .byte 0x89, 0xba - .global data_ov00_020e5758 -data_ov00_020e5758: ; 0x020e5758 - .byte 0x97, 0xa6 - .global data_ov00_020e575a -data_ov00_020e575a: ; 0x020e575a - .byte 0x00, 0x00 .global data_ov00_020e575c data_ov00_020e575c: ; 0x020e575c .ascii "brg" diff --git a/asm/ov00/ov00_020b1498.inc b/asm/ov00/ov00_020b1498.inc index 3724b2d0..7ba8b689 100644 --- a/asm/ov00/ov00_020b1498.inc +++ b/asm/ov00/ov00_020b1498.inc @@ -46,6 +46,8 @@ .extern _ZN13LinkStateBase8vfunc_34EP5Vec3p .extern _ZN13LinkStateItem16GetLinkStateMoveEv .extern _ZN13LinkStateItem16IsHammerEquippedEv +.extern _ZN13LinkStateMove18func_ov00_020a8f2cEv +.extern _ZN13LinkStateMove18func_ov00_020a8f4cEv .extern _ZN13PlayerControl13GetTouchAngleEv .extern _ZN13PlayerControl13StopFollowingEv .extern _ZN13PlayerControl18func_ov00_020aeef8Ev @@ -497,8 +499,6 @@ .extern func_ov00_020a5e9c .extern func_ov00_020a5ef8 .extern func_ov00_020a6110 -.extern func_ov00_020a8f2c -.extern func_ov00_020a8f4c .extern func_ov00_020a914c .extern func_ov00_020a956c .extern func_ov00_020a9588 diff --git a/asm/ov00/ov00_020b1498.s b/asm/ov00/ov00_020b1498.s index 36692b4c..4f932693 100644 --- a/asm/ov00/ov00_020b1498.s +++ b/asm/ov00/ov00_020b1498.s @@ -13029,27 +13029,27 @@ _020bb9c4: .word func_ov00_020b45e0 arm_func_start func_ov00_020bb9c8 func_ov00_020bb9c8: ; 0x020bb9c8 ldr r0, _020bb9dc ; =data_027e0fdc - ldr ip, _020bb9e0 ; =func_ov00_020a8f2c + ldr ip, _020bb9e0 ; =_ZN13LinkStateMove18func_ov00_020a8f2cEv ldr r0, [r0] ldr r0, [r0] bx ip .align 2, 0 arm_func_end func_ov00_020bb9c8 _020bb9dc: .word data_027e0fdc -_020bb9e0: .word func_ov00_020a8f2c +_020bb9e0: .word _ZN13LinkStateMove18func_ov00_020a8f2cEv .global func_ov00_020bb9e4 arm_func_start func_ov00_020bb9e4 func_ov00_020bb9e4: ; 0x020bb9e4 ldr r0, _020bb9f8 ; =data_027e0fdc - ldr ip, _020bb9fc ; =func_ov00_020a8f4c + ldr ip, _020bb9fc ; =_ZN13LinkStateMove18func_ov00_020a8f4cEv ldr r0, [r0] ldr r0, [r0] bx ip .align 2, 0 arm_func_end func_ov00_020bb9e4 _020bb9f8: .word data_027e0fdc -_020bb9fc: .word func_ov00_020a8f4c +_020bb9fc: .word _ZN13LinkStateMove18func_ov00_020a8f4cEv .global func_ov00_020bba00 arm_func_start func_ov00_020bba00 diff --git a/asm/ov05.inc b/asm/ov05.inc index 0a182681..76185a50 100644 --- a/asm/ov05.inc +++ b/asm/ov05.inc @@ -74,6 +74,7 @@ .extern _ZN13LinkStateBase9AddHealthEs .extern _ZN13LinkStateBase9GetHealthEv .extern _ZN13LinkStateItem18func_ov00_020abf70Ev +.extern _ZN13LinkStateMove18func_ov00_020a8f2cEv .extern _ZN13LinkStateRoll18func_ov00_020aee58Est .extern _ZN13LinkStateRoll18func_ov00_020aee84Ev .extern _ZN13PlayerControl13GetTouchAngleEv @@ -392,7 +393,6 @@ .extern func_ov00_020a4e30 .extern func_ov00_020a4f38 .extern func_ov00_020a5e9c -.extern func_ov00_020a8f2c .extern func_ov00_020a8f80 .extern func_ov00_020a9180 .extern func_ov00_020a9210 diff --git a/asm/ov05.s b/asm/ov05.s index fbec707c..d88cc1ef 100644 --- a/asm/ov05.s +++ b/asm/ov05.s @@ -19748,7 +19748,7 @@ _02111594: bl _ZN13PlayerControl18func_ov00_020b0418Ev mov r7, r0 mov r0, r5 - bl func_ov00_020a8f2c + bl _ZN13LinkStateMove18func_ov00_020a8f2cEv cmp r0, #0 bne _021115cc cmp r7, #0 diff --git a/include/Player/LinkStateMove.hpp b/include/Player/LinkStateMove.hpp index ef5473a4..e56eee3c 100644 --- a/include/Player/LinkStateMove.hpp +++ b/include/Player/LinkStateMove.hpp @@ -26,4 +26,7 @@ public: /* 24 */ virtual bool vfunc_24(s32 param1) override; /* 3c */ virtual bool vfunc_3c() override; /* 44 */ + + bool func_ov00_020a8f2c(); + bool func_ov00_020a8f4c(); }; diff --git a/src/00_Core/Player/LinkStateMove.cpp b/src/00_Core/Player/LinkStateMove.cpp new file mode 100644 index 00000000..586a331e --- /dev/null +++ b/src/00_Core/Player/LinkStateMove.cpp @@ -0,0 +1,14 @@ +#include "Player/LinkStateMove.hpp" + +#ifdef STUBS + +void LinkStateMove::vfunc_00() {} +LinkStateId LinkStateMove::GetId() {} +void LinkStateMove::CreateDebugHierarchy() {} +void LinkStateMove::OnStateEnter() {} +void LinkStateMove::OnStateLeave(s32 param1) {} +bool LinkStateMove::vfunc_24(s32 param1) {} +bool LinkStateMove::func_ov00_020a8f2c() {} +bool LinkStateMove::func_ov00_020a8f4c() {} + +#endif diff --git a/tools/lcf.py b/tools/lcf.py index 9538536b..5d776303 100644 --- a/tools/lcf.py +++ b/tools/lcf.py @@ -34,6 +34,8 @@ ov00 = Overlay(name='ov00', after='ARM9', objects=[ 'asm/ov00/Player/PlayerBase.s', 'src/00_Core/Player/LinkStateBase.cpp', 'asm/ov00/Player/LinkStateBase.s', + 'src/00_Core/Player/LinkStateMove.cpp', + 'asm/ov00/Player/LinkStateMove.s', 'asm/ov00/ov00_020a8e04.s',