diff --git a/asm/ov00/Actor/Actor.s b/asm/ov00/Actor/Actor.s index 29b99f9c..79a800db 100644 --- a/asm/ov00/Actor/Actor.s +++ b/asm/ov00/Actor/Actor.s @@ -1314,9 +1314,9 @@ _ZN5Actor18func_ov00_020c23d4EP8ActorRefPS_P8Cylinder: ; 0x020c23d4 _020c2438: .word gActorManager arm_func_end _ZN5Actor18func_ov00_020c23d4EP8ActorRefPS_P8Cylinder - .global _ZN5Actor18func_ov00_020c243cEPjPi - arm_func_start _ZN5Actor18func_ov00_020c243cEPjPi -_ZN5Actor18func_ov00_020c243cEPjPi: ; 0x020c243c + .global _ZN5Actor18func_ov00_020c243cEPjPPS_ + arm_func_start _ZN5Actor18func_ov00_020c243cEPjPPS_ +_ZN5Actor18func_ov00_020c243cEPjPPS_: ; 0x020c243c stmdb sp!, {r3, r4, r5, r6, r7, lr} sub sp, sp, #0x18 movs r6, r2 @@ -1534,7 +1534,7 @@ _020c2734: .word 0x54534248 _020c2738: .word 0x54415255 _020c273c: .word 0x54535542 _020c2740: .word 0x564c5230 - arm_func_end _ZN5Actor18func_ov00_020c243cEPjPi + arm_func_end _ZN5Actor18func_ov00_020c243cEPjPPS_ .global _ZN5Actor12CollidesWithEPKS_ arm_func_start _ZN5Actor12CollidesWithEPKS_ diff --git a/asm/ov00/ov00_020c3e54.inc b/asm/ov00/ov00_020c3e54.inc index ee938f6a..47cc2182 100644 --- a/asm/ov00/ov00_020c3e54.inc +++ b/asm/ov00/ov00_020c3e54.inc @@ -63,7 +63,7 @@ .extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c1cf8Ev .extern _ZN5Actor18func_ov00_020c1fc8Ej -.extern _ZN5Actor18func_ov00_020c243cEPjPi +.extern _ZN5Actor18func_ov00_020c243cEPjPPS_ .extern _ZN5Actor18func_ov00_020c29ecEi .extern _ZN5Actor18func_ov00_020c3118Es .extern _ZN5Actor18func_ov00_020c313cEj diff --git a/asm/ov00/ov00_020c3e54.s b/asm/ov00/ov00_020c3e54.s index 9aa28adf..b57f6f5b 100644 --- a/asm/ov00/ov00_020c3e54.s +++ b/asm/ov00/ov00_020c3e54.s @@ -9468,7 +9468,7 @@ func_ov00_020cb58c: ; 0x020cb58c mov r1, #0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 beq _020cb604 _020cb5fc: diff --git a/asm/ov14/ov14_0211f640.inc b/asm/ov14/ov14_0211f640.inc index df0a73b6..d7c56d44 100644 --- a/asm/ov14/ov14_0211f640.inc +++ b/asm/ov14/ov14_0211f640.inc @@ -84,7 +84,7 @@ .extern _ZN5Actor18func_ov00_020c1f5cEP5Vec3pS1_iS1_hi .extern _ZN5Actor18func_ov00_020c1fc8Ej .extern _ZN5Actor18func_ov00_020c23c4EP8ActorRefPS_ -.extern _ZN5Actor18func_ov00_020c243cEPjPi +.extern _ZN5Actor18func_ov00_020c243cEPjPPS_ .extern _ZN5Actor18func_ov00_020c2c0cEv .extern _ZN5Actor18func_ov00_020c2c70Ev .extern _ZN5Actor18func_ov00_020c2d54Ev diff --git a/asm/ov14/ov14_0211f640.s b/asm/ov14/ov14_0211f640.s index 83e14e1c..d0db3112 100644 --- a/asm/ov14/ov14_0211f640.s +++ b/asm/ov14/ov14_0211f640.s @@ -935,7 +935,7 @@ func_ov14_02120118: ; 0x02120118 _02120154: ldr r1, _0212017c ; =data_ov14_02153b54 mov r2, #0 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 ldmeqia sp!, {r4, pc} mov r0, r4 @@ -3566,7 +3566,7 @@ _021225a4: ldr r1, _02122aec ; =data_ov14_02153bdc mov r0, r5 mov r2, #0 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 beq _021225cc mov r0, r5 @@ -3577,7 +3577,7 @@ _021225cc: ldr r1, _02122af0 ; =data_ov14_02153be8 add r2, sp, #8 mov r0, r5 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 beq _02122650 ldr r1, [sp, #8] @@ -6159,7 +6159,7 @@ _021247b0: ldr r1, _02124c5c ; =data_ov14_02153bfc mov r0, r5 mov r2, #0 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 beq _021247d8 mov r0, r5 diff --git a/asm/ov15.inc b/asm/ov15.inc index 69523c1a..45f7ad81 100644 --- a/asm/ov15.inc +++ b/asm/ov15.inc @@ -101,7 +101,7 @@ .extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p .extern _ZN5Actor18func_ov00_020c23c4EP8ActorRefPS_ .extern _ZN5Actor18func_ov00_020c23d4EP8ActorRefPS_P8Cylinder -.extern _ZN5Actor18func_ov00_020c243cEPjPi +.extern _ZN5Actor18func_ov00_020c243cEPjPPS_ .extern _ZN5Actor18func_ov00_020c313cEj .extern _ZN5Actor20IncreaseActiveFramesEv .extern _ZN5Actor4KillEv diff --git a/asm/ov15.s b/asm/ov15.s index 441b0acf..0507d52a 100644 --- a/asm/ov15.s +++ b/asm/ov15.s @@ -5033,7 +5033,7 @@ func_ov15_02123a9c: ; 0x02123a9c ldr r1, [r5, #0x158] mov r0, r5 mov r2, #0 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 bne _02123b10 mov r0, r5 @@ -6716,7 +6716,7 @@ func_ov15_02125210: ; 0x02125210 ble _02125270 add r2, sp, #0 mov r1, r4 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 beq _02125270 ldr r1, [sp] @@ -23361,7 +23361,7 @@ func_ov15_02133094: ; 0x02133094 ldr r3, [r5, #0x50] mov r2, r1 str r3, [r5, #0x5c] - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ mov r0, r5 ldr r1, [r0] ldr r1, [r1, #0xb4] @@ -25459,7 +25459,7 @@ func_ov15_02134d6c: ; 0x02134d6c bne _02134dd0 ldr r1, _02135104 ; =data_ov15_02185ea0 mov r2, #0 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 beq _02134dd0 ldrb r0, [r4, #0x217] @@ -34572,7 +34572,7 @@ _0213cbd8: mov r1, #0 mov r0, r5 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ _0213cbf0: ldr r0, [r5, #0x284] sub r0, r0, #1 @@ -37704,7 +37704,7 @@ func_ov15_0213f5cc: ; 0x0213f5cc str r3, [r4, #0x64] ldr r3, [r5, #0x68] str r3, [r4, #0x68] - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ _0213f658: ldr r0, [r5, #0x130] ldr r1, _0213f7b0 ; =data_ov15_02185fcc @@ -39727,7 +39727,7 @@ func_ov15_021411c4: ; 0x021411c4 ldr r3, [sp, #8] mov r2, r1 str r3, [r4, #0x50] - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ add sp, sp, #0xc ldmia sp!, {r3, r4, pc} .align 2, 0 @@ -56084,7 +56084,7 @@ func_ov15_0214ed58: ; 0x0214ed58 ldr r3, [r4, #0x50] mov r2, r1 str r3, [r4, #0x5c] - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ mov r0, r4 ldr r1, [r0] ldr r1, [r1, #0xb4] @@ -58086,7 +58086,7 @@ _02150954: ldr r3, [r5, #0x50] mov r2, r1 str r3, [r5, #0x5c] - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ mov r0, r5 ldr r1, [r0] ldr r1, [r1, #0xb4] @@ -64373,7 +64373,7 @@ _02156144: mov r1, #0 mov r0, r6 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ _02156154: add r0, r6, #0x1b4 bl func_ov00_020c5e20 @@ -76967,7 +76967,7 @@ _02160d04: ldr r3, [r5, #0x50] mov r2, r1 str r3, [r5, #0x5c] - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ mov r0, r5 ldr r1, [r0] ldr r1, [r1, #0xb4] @@ -83046,7 +83046,7 @@ func_ov15_0216629c: ; 0x0216629c ldr r1, _02166390 ; =data_ov15_021867f0 mov r0, r5 mov r2, #0 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 beq _0216633c _02166328: @@ -86817,7 +86817,7 @@ _02169544: mov r0, r10 mov r2, r1 str r3, [r10, #0x2d4] - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ ldr r0, [r10, #0x130] cmp r0, #3 beq _02169648 @@ -89524,12 +89524,12 @@ _0216b9c0: .word data_027e0d78 .global func_ov15_0216b9c4 arm_func_start func_ov15_0216b9c4 func_ov15_0216b9c4: ; 0x0216b9c4 - ldr ip, _0216b9d4 ; =_ZN5Actor18func_ov00_020c243cEPjPi + ldr ip, _0216b9d4 ; =_ZN5Actor18func_ov00_020c243cEPjPPS_ ldr r1, _0216b9d8 ; =data_ov15_02186a38 mov r2, #0 bx ip .align 2, 0 -_0216b9d4: .word _ZN5Actor18func_ov00_020c243cEPjPi +_0216b9d4: .word _ZN5Actor18func_ov00_020c243cEPjPPS_ _0216b9d8: .word data_ov15_02186a38 arm_func_end func_ov15_0216b9c4 @@ -95226,7 +95226,7 @@ _02170790: ldr r1, _021707e0 ; =data_ov15_02186c7c mov r0, r4 mov r2, #0 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ mov r0, r4 bl func_ov15_021724d0 add r0, r4, #0x158 @@ -98811,7 +98811,7 @@ _02173a50: mov r1, #0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 beq _02173b28 ldr r0, [r4, #0x160] @@ -104096,7 +104096,7 @@ _02178204: ldr r3, [r4, #0x50] mov r2, r1 str r3, [r4, #0x5c] - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ mov r0, r4 ldr r1, [r0] ldr r1, [r1, #0xb4] @@ -107908,7 +107908,7 @@ func_ov15_0217b7d8: ; 0x0217b7d8 ldr r3, [r4, #0x50] mov r2, r1 str r3, [r4, #0x5c] - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ mov r0, r4 bl func_ov15_0217b3cc ldmia sp!, {r4, pc} @@ -109070,7 +109070,7 @@ _0217c7a4: mov r1, #0 mov r0, r5 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ mov r0, r5 bl _ZN5Actor12ApplyGravityEv add r0, r5, #0x48 diff --git a/asm/ov18.inc b/asm/ov18.inc index 3d2154ae..7e58e54d 100644 --- a/asm/ov18.inc +++ b/asm/ov18.inc @@ -29,7 +29,7 @@ .extern _ZN5Actor18func_Ov00_020c1bfcEi .extern _ZN5Actor18func_ov00_020c1cf8Ev .extern _ZN5Actor18func_ov00_020c1fc8Ej -.extern _ZN5Actor18func_ov00_020c243cEPjPi +.extern _ZN5Actor18func_ov00_020c243cEPjPPS_ .extern _ZN5Actor18func_ov00_020c313cEj .extern _ZN5Actor6GetPosEv .extern _ZN5Actor8vfunc_0cEv diff --git a/asm/ov18.s b/asm/ov18.s index fa18ebfd..a03dbada 100644 --- a/asm/ov18.s +++ b/asm/ov18.s @@ -12729,7 +12729,7 @@ func_ov18_0216585c: ; 0x0216585c mov r1, #0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 ldmneia sp!, {r4, pc} mov r0, r4 diff --git a/asm/ov19.inc b/asm/ov19.inc index 70f32de3..27da97c6 100644 --- a/asm/ov19.inc +++ b/asm/ov19.inc @@ -53,7 +53,7 @@ .extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p .extern _ZN5Actor18func_ov00_020c23c4EP8ActorRefPS_ .extern _ZN5Actor18func_ov00_020c23d4EP8ActorRefPS_P8Cylinder -.extern _ZN5Actor18func_ov00_020c243cEPjPi +.extern _ZN5Actor18func_ov00_020c243cEPjPPS_ .extern _ZN5Actor18func_ov00_020c29ecEi .extern _ZN5Actor18func_ov00_020c313cEj .extern _ZN5Actor18func_ov00_020c31c0Ei diff --git a/asm/ov19.s b/asm/ov19.s index 9ab6c502..90235654 100644 --- a/asm/ov19.s +++ b/asm/ov19.s @@ -1671,7 +1671,7 @@ _0216ec94: mov r0, r4 mov r2, r1 str r3, [r4, #0x88] - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ b _0216ece8 _0216ecbc: ldr r2, [r4, #0x158] @@ -9216,7 +9216,7 @@ _02174fa8: add r2, sp, #8 mov r0, r4 str r3, [r4, #0x88] - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 beq _02174ff8 mov r0, r4 diff --git a/asm/ov23.inc b/asm/ov23.inc index d4cf227a..6dfbe2f5 100644 --- a/asm/ov23.inc +++ b/asm/ov23.inc @@ -83,7 +83,7 @@ .extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p .extern _ZN5Actor18func_ov00_020c1ef8EP8CylinderP5Vec3pii -.extern _ZN5Actor18func_ov00_020c243cEPjPi +.extern _ZN5Actor18func_ov00_020c243cEPjPPS_ .extern _ZN5Actor18func_ov00_020c313cEj .extern _ZN5Actor4KillEv .extern _ZN5Actor6GetPosEv diff --git a/asm/ov23.s b/asm/ov23.s index 3feffc3f..a5affa82 100644 --- a/asm/ov23.s +++ b/asm/ov23.s @@ -9572,7 +9572,7 @@ _021754bc: add r2, sp, #0 ldr r1, [r0, #0x20] mov r0, r6 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 beq _021755b8 ldr r1, [sp] diff --git a/asm/ov27.inc b/asm/ov27.inc index fbe21426..b7f3e861 100644 --- a/asm/ov27.inc +++ b/asm/ov27.inc @@ -37,7 +37,7 @@ .extern _ZN5Actor18func_ov00_020c1ef8EP8CylinderP5Vec3pii .extern _ZN5Actor18func_ov00_020c1f5cEP5Vec3pS1_iS1_hi .extern _ZN5Actor18func_ov00_020c1fc8Ej -.extern _ZN5Actor18func_ov00_020c243cEPjPi +.extern _ZN5Actor18func_ov00_020c243cEPjPPS_ .extern _ZN5Actor18func_ov00_020c313cEj .extern _ZN5Actor20IncreaseActiveFramesEv .extern _ZN5Actor6GetPosEv diff --git a/asm/ov27.s b/asm/ov27.s index 05d26975..0464b595 100644 --- a/asm/ov27.s +++ b/asm/ov27.s @@ -2155,7 +2155,7 @@ _0216f544: mov r1, #0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ add sp, sp, #0x20 ldmia sp!, {r4, pc} .align 2, 0 @@ -9234,7 +9234,7 @@ _02175454: mov r1, #0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ _021754a4: ldr r0, _02175554 ; =gMapManager ldrh r1, [r4, #0x20] diff --git a/asm/ov28.inc b/asm/ov28.inc index 0ea5f847..da41af76 100644 --- a/asm/ov28.inc +++ b/asm/ov28.inc @@ -40,7 +40,7 @@ .extern _ZN5Actor18func_ov00_020c198cEv .extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c1fc8Ej -.extern _ZN5Actor18func_ov00_020c243cEPjPi +.extern _ZN5Actor18func_ov00_020c243cEPjPPS_ .extern _ZN5Actor18func_ov00_020c3094Ev .extern _ZN5Actor18func_ov00_020c313cEj .extern _ZN5Actor20IncreaseActiveFramesEv diff --git a/asm/ov28.s b/asm/ov28.s index 8ed5e872..91a4f18d 100644 --- a/asm/ov28.s +++ b/asm/ov28.s @@ -4339,12 +4339,12 @@ _02170f08: .global func_ov28_02170f10 arm_func_start func_ov28_02170f10 func_ov28_02170f10: ; 0x02170f10 - ldr ip, _02170f20 ; =_ZN5Actor18func_ov00_020c243cEPjPi + ldr ip, _02170f20 ; =_ZN5Actor18func_ov00_020c243cEPjPPS_ mov r1, #0 mov r2, r1 bx ip .align 2, 0 -_02170f20: .word _ZN5Actor18func_ov00_020c243cEPjPi +_02170f20: .word _ZN5Actor18func_ov00_020c243cEPjPPS_ arm_func_end func_ov28_02170f10 .global func_ov28_02170f24 @@ -7501,7 +7501,7 @@ func_ov28_021736d0: ; 0x021736d0 mov r1, #0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 ldmneia sp!, {r4, pc} mov r0, r4 @@ -9383,7 +9383,7 @@ func_ov28_02174ec4: ; 0x02174ec4 mov r1, #0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 bne _02174f18 mov r0, r4 diff --git a/asm/ov29.inc b/asm/ov29.inc index fd0e0485..022d0e59 100644 --- a/asm/ov29.inc +++ b/asm/ov29.inc @@ -30,7 +30,7 @@ .extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p .extern _ZN5Actor18func_ov00_020c1f5cEP5Vec3pS1_iS1_hi .extern _ZN5Actor18func_ov00_020c1fc8Ej -.extern _ZN5Actor18func_ov00_020c243cEPjPi +.extern _ZN5Actor18func_ov00_020c243cEPjPPS_ .extern _ZN5Actor18func_ov00_020c2ebcEv .extern _ZN5Actor18func_ov00_020c313cEj .extern _ZN5Actor6GetPosEv diff --git a/asm/ov29.s b/asm/ov29.s index c0f17c91..4eb23e5e 100644 --- a/asm/ov29.s +++ b/asm/ov29.s @@ -5194,7 +5194,7 @@ _02171bfc: mov r1, #0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ ldmia sp!, {r4, pc} arm_func_end func_ov29_02171bd8 @@ -5227,7 +5227,7 @@ _02171c68: mov r1, #0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ ldmia sp!, {r4, pc} _02171ca4: ldrb r0, [r4, #0x334] @@ -5390,7 +5390,7 @@ _02171eb8: mov r1, #0 mov r0, r6 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ add sp, sp, #0x18 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 @@ -5498,7 +5498,7 @@ _02172028: mov r1, #0 mov r0, r5 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ _0217204c: add r0, r5, #0x290 bl func_0202e58c @@ -6767,7 +6767,7 @@ func_ov29_02173098: ; 0x02173098 mov r1, #0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ _02173108: ldr r0, [r4, #0x284] cmp r0, #0 diff --git a/asm/ov34.inc b/asm/ov34.inc index 5b948f5c..4002a5f3 100644 --- a/asm/ov34.inc +++ b/asm/ov34.inc @@ -21,7 +21,7 @@ .extern _ZN5Actor18func_ov00_020c1f5cEP5Vec3pS1_iS1_hi .extern _ZN5Actor18func_ov00_020c1fc8Ej .extern _ZN5Actor18func_ov00_020c23c4EP8ActorRefPS_ -.extern _ZN5Actor18func_ov00_020c243cEPjPi +.extern _ZN5Actor18func_ov00_020c243cEPjPPS_ .extern _ZN5Actor18func_ov00_020c2e7cEv .extern _ZN5Actor18func_ov00_020c313cEj .extern _ZN5Actor4KillEv diff --git a/asm/ov34.s b/asm/ov34.s index b7551405..d4d0dacc 100644 --- a/asm/ov34.s +++ b/asm/ov34.s @@ -9439,7 +9439,7 @@ _02184310: mov r1, #0 mov r0, r5 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 bne _0218434c mov r0, r5 diff --git a/asm/ov35.inc b/asm/ov35.inc index fc58d2ff..54625854 100644 --- a/asm/ov35.inc +++ b/asm/ov35.inc @@ -34,7 +34,7 @@ .extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p .extern _ZN5Actor18func_ov00_020c1fc8Ej .extern _ZN5Actor18func_ov00_020c23c4EP8ActorRefPS_ -.extern _ZN5Actor18func_ov00_020c243cEPjPi +.extern _ZN5Actor18func_ov00_020c243cEPjPPS_ .extern _ZN5Actor18func_ov00_020c313cEj .extern _ZN5Actor18func_ov00_020c3200Ei .extern _ZN5Actor20IncreaseActiveFramesEv diff --git a/asm/ov35.s b/asm/ov35.s index 45905eea..18d85087 100644 --- a/asm/ov35.s +++ b/asm/ov35.s @@ -673,7 +673,7 @@ _0217c6b0: mov r1, #0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ ldr r0, _0217c700 ; =data_027e0ff4 mov r1, r4 ldr r0, [r0] @@ -8306,7 +8306,7 @@ func_ov35_0218307c: ; 0x0218307c ldr r1, _021830c0 ; =data_ov35_02185374 mov r0, r5 mov r2, #0 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ orrs r0, r4, r0 movne r0, #1 moveq r0, #0 @@ -10226,7 +10226,7 @@ func_ov35_02184aa4: ; 0x02184aa4 ldr r1, _02184b10 ; =data_ov35_02185640 mov r0, r4 mov r2, #0 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ ldmia sp!, {r4, pc} .align 2, 0 _02184b10: .word data_ov35_02185640 diff --git a/asm/ov36.inc b/asm/ov36.inc index 7fc36b2f..40eb0de0 100644 --- a/asm/ov36.inc +++ b/asm/ov36.inc @@ -25,7 +25,7 @@ .extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p .extern _ZN5Actor18func_ov00_020c1fc8Ej .extern _ZN5Actor18func_ov00_020c23c4EP8ActorRefPS_ -.extern _ZN5Actor18func_ov00_020c243cEPjPi +.extern _ZN5Actor18func_ov00_020c243cEPjPPS_ .extern _ZN5Actor18func_ov00_020c313cEj .extern _ZN5Actor20IncreaseActiveFramesEv .extern _ZN5Actor20KillPickupItemActorsEv diff --git a/asm/ov36.s b/asm/ov36.s index df3131d4..573786b4 100644 --- a/asm/ov36.s +++ b/asm/ov36.s @@ -11190,7 +11190,7 @@ _02185a24: mov r1, #0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 bne _021859d0 ldr r1, [sp, #0x28] @@ -11215,7 +11215,7 @@ _02185a24: mov r1, #0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ add sp, sp, #0x34 ldmia sp!, {r3, r4, pc} _02185af4: @@ -11224,7 +11224,7 @@ _02185af4: mov r1, #0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ add sp, sp, #0x34 ldmia sp!, {r3, r4, pc} .align 2, 0 @@ -12023,7 +12023,7 @@ _021865f4: ldr r1, _02186644 ; =data_ov36_02186ba8 mov r0, r5 mov r2, #0 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ _02186620: mov r1, r4 add r0, r5, #0xa4 diff --git a/asm/ov37.inc b/asm/ov37.inc index c1b9b463..8f09d789 100644 --- a/asm/ov37.inc +++ b/asm/ov37.inc @@ -28,7 +28,7 @@ .extern _ZN5Actor18func_ov00_020c1ef8EP8CylinderP5Vec3pii .extern _ZN5Actor18func_ov00_020c1f5cEP5Vec3pS1_iS1_hi .extern _ZN5Actor18func_ov00_020c1fc8Ej -.extern _ZN5Actor18func_ov00_020c243cEPjPi +.extern _ZN5Actor18func_ov00_020c243cEPjPPS_ .extern _ZN5Actor18func_ov00_020c313cEj .extern _ZN5Actor20IncreaseActiveFramesEv .extern _ZN5Actor20KillPickupItemActorsEv diff --git a/asm/ov37.s b/asm/ov37.s index 1a476c63..6dd4ade5 100644 --- a/asm/ov37.s +++ b/asm/ov37.s @@ -10545,7 +10545,7 @@ func_ov37_021850cc: ; 0x021850cc mov r1, #0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 beq _02185104 _021850fc: @@ -13034,7 +13034,7 @@ _021870d0: mov r1, #0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 beq _0218738c _021871e8: diff --git a/asm/ov38.inc b/asm/ov38.inc index 49fc037f..c4ae7916 100644 --- a/asm/ov38.inc +++ b/asm/ov38.inc @@ -25,7 +25,7 @@ .extern _ZN5Actor18func_ov00_020c198cEv .extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p .extern _ZN5Actor18func_ov00_020c1fc8Ej -.extern _ZN5Actor18func_ov00_020c243cEPjPi +.extern _ZN5Actor18func_ov00_020c243cEPjPPS_ .extern _ZN5Actor18func_ov00_020c2e7cEv .extern _ZN5Actor18func_ov00_020c313cEj .extern _ZN5Actor6GetPosEv diff --git a/asm/ov38.s b/asm/ov38.s index 9295c880..fc4c7a1f 100644 --- a/asm/ov38.s +++ b/asm/ov38.s @@ -4026,7 +4026,7 @@ _0217f608: mov r1, #0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ mov r0, r4 mov r1, #0x1a bl _ZN5Actor18func_ov00_020c1fc8Ej @@ -4394,7 +4394,7 @@ _0217fb24: mov r1, #0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ mov r0, r4 mov r1, #0x1a bl _ZN5Actor18func_ov00_020c1fc8Ej @@ -4506,7 +4506,7 @@ _0217fc7c: mov r0, r4 mov r2, r1 strb r1, [r3, #0xa7] - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ mov r0, r4 mov r1, #0x1a bl _ZN5Actor18func_ov00_020c1fc8Ej @@ -6863,7 +6863,7 @@ _02181dbc: mov r1, #0 mov r0, r5 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ add r1, r5, #0x1000 add r0, r5, #0x38 ldr r1, [r1, #0x3c] @@ -7386,7 +7386,7 @@ _02182528: mov r1, #0 mov r0, r6 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 @@ -8655,7 +8655,7 @@ _021836c8: mov r1, #0 mov r0, r5 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ _0218376c: mov r0, r5 bl func_ov38_02182db8 diff --git a/asm/ov39.inc b/asm/ov39.inc index d95af18c..3647cea4 100644 --- a/asm/ov39.inc +++ b/asm/ov39.inc @@ -32,7 +32,7 @@ .extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p .extern _ZN5Actor18func_ov00_020c1ef8EP8CylinderP5Vec3pii .extern _ZN5Actor18func_ov00_020c1fc8Ej -.extern _ZN5Actor18func_ov00_020c243cEPjPi +.extern _ZN5Actor18func_ov00_020c243cEPjPPS_ .extern _ZN5Actor18func_ov00_020c313cEj .extern _ZN5Actor20IncreaseActiveFramesEv .extern _ZN5Actor6GetPosEv diff --git a/asm/ov39.s b/asm/ov39.s index 93258df7..0641e62a 100644 --- a/asm/ov39.s +++ b/asm/ov39.s @@ -1999,7 +1999,7 @@ _0217d83c: mov r1, #0 mov r0, r5 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ _0217d86c: ldr r0, [r5, #0x158] tst r0, #0x40 @@ -3128,7 +3128,7 @@ func_ov39_0217e82c: ; 0x0217e82c mov r1, #0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ ldr r0, [r4, #0x130] cmp r0, #0x10 ldmneia sp!, {r4, pc} diff --git a/asm/ov41.inc b/asm/ov41.inc index fa3438e1..154dc42d 100644 --- a/asm/ov41.inc +++ b/asm/ov41.inc @@ -25,7 +25,7 @@ .extern _ZN5Actor18func_Ov00_020c1bfcEi .extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p .extern _ZN5Actor18func_ov00_020c1fc8Ej -.extern _ZN5Actor18func_ov00_020c243cEPjPi +.extern _ZN5Actor18func_ov00_020c243cEPjPPS_ .extern _ZN5Actor18func_ov00_020c313cEj .extern _ZN5Actor18func_ov00_020c31c0Ei .extern _ZN5Actor4KillEv diff --git a/asm/ov41.s b/asm/ov41.s index 73151b32..10b91bd3 100644 --- a/asm/ov41.s +++ b/asm/ov41.s @@ -1254,7 +1254,7 @@ func_ov41_0218a4d8: ; 0x0218a4d8 mov r1, #0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 beq _0218a510 _0218a508: @@ -2405,7 +2405,7 @@ func_ov41_0218b34c: ; 0x0218b34c mov r1, #0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 beq _0218b384 _0218b37c: diff --git a/asm/ov42.inc b/asm/ov42.inc index 75711826..4d170504 100644 --- a/asm/ov42.inc +++ b/asm/ov42.inc @@ -14,7 +14,7 @@ .extern _ZN5Actor15IsHitboxTouchedEb .extern _ZN5Actor15TrySetTransformEP9Transform .extern _ZN5Actor16CollidesWithLinkEv -.extern _ZN5Actor18func_ov00_020c243cEPjPi +.extern _ZN5Actor18func_ov00_020c243cEPjPPS_ .extern _ZN5Actor18func_ov00_020c313cEj .extern _ZN5Actor6GetPosEv .extern _ZN5Actor8vfunc_08Ev diff --git a/asm/ov42.s b/asm/ov42.s index 73575e6b..b9ef5dd0 100644 --- a/asm/ov42.s +++ b/asm/ov42.s @@ -1689,12 +1689,12 @@ func_ov42_0218aab0: ; 0x0218aab0 .global func_ov42_0218aad4 arm_func_start func_ov42_0218aad4 func_ov42_0218aad4: ; 0x0218aad4 - ldr ip, _0218aae4 ; =_ZN5Actor18func_ov00_020c243cEPjPi + ldr ip, _0218aae4 ; =_ZN5Actor18func_ov00_020c243cEPjPPS_ mov r1, #0 mov r2, r1 bx ip .align 2, 0 -_0218aae4: .word _ZN5Actor18func_ov00_020c243cEPjPi +_0218aae4: .word _ZN5Actor18func_ov00_020c243cEPjPPS_ arm_func_end func_ov42_0218aad4 .global func_ov42_0218aae8 @@ -3813,7 +3813,7 @@ func_ov42_0218c620: ; 0x0218c620 ldmneia sp!, {r3, pc} ldr r1, _0218c640 ; =data_ov42_0218c73c mov r2, #0 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ ldmia sp!, {r3, pc} .align 2, 0 _0218c640: .word data_ov42_0218c73c diff --git a/asm/ov46.inc b/asm/ov46.inc index db6e8475..b21ef5bb 100644 --- a/asm/ov46.inc +++ b/asm/ov46.inc @@ -21,7 +21,7 @@ .extern _ZN5Actor16CollidesWithLinkEv .extern _ZN5Actor18func_ov00_020c1ef8EP8CylinderP5Vec3pii .extern _ZN5Actor18func_ov00_020c1fc8Ej -.extern _ZN5Actor18func_ov00_020c243cEPjPi +.extern _ZN5Actor18func_ov00_020c243cEPjPPS_ .extern _ZN5Actor18func_ov00_020c313cEj .extern _ZN5Actor6GetPosEv .extern _ZN5Actor8vfunc_0cEv diff --git a/asm/ov46.s b/asm/ov46.s index 6b718d02..80dcf6cb 100644 --- a/asm/ov46.s +++ b/asm/ov46.s @@ -4088,7 +4088,7 @@ func_ov46_02193574: ; 0x02193574 mov r1, #0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 bne _0219367c ldr r0, [r4, #0x158] diff --git a/asm/ov48.inc b/asm/ov48.inc index 3da259b5..a042a3fe 100644 --- a/asm/ov48.inc +++ b/asm/ov48.inc @@ -22,7 +22,7 @@ .extern _ZN5Actor18func_ov00_020c1d58Ev .extern _ZN5Actor18func_ov00_020c1f5cEP5Vec3pS1_iS1_hi .extern _ZN5Actor18func_ov00_020c1fc8Ej -.extern _ZN5Actor18func_ov00_020c243cEPjPi +.extern _ZN5Actor18func_ov00_020c243cEPjPPS_ .extern _ZN5Actor18func_ov00_020c313cEj .extern _ZN5Actor18func_ov00_020c3200Ei .extern _ZN5Actor20IncreaseActiveFramesEv @@ -82,7 +82,7 @@ .extern _ZN5Actor18func_ov00_020c1d58Ev .extern _ZN5Actor18func_ov00_020c1f5cEP5Vec3pS1_iS1_hi .extern _ZN5Actor18func_ov00_020c1fc8Ej -.extern _ZN5Actor18func_ov00_020c243cEPjPi +.extern _ZN5Actor18func_ov00_020c243cEPjPPS_ .extern _ZN5Actor18func_ov00_020c313cEj .extern _ZN5Actor18func_ov00_020c3200Ei .extern _ZN5Actor20IncreaseActiveFramesEv diff --git a/asm/ov48.s b/asm/ov48.s index 94b07a1f..17874aa1 100644 --- a/asm/ov48.s +++ b/asm/ov48.s @@ -1796,7 +1796,7 @@ func_ov48_02191478: ; 0x02191478 mov r1, #0 ldr r0, [r4, #0x530] mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 beq _021915f8 ldr r2, [r4, #0x530] @@ -3340,7 +3340,7 @@ _02192804: mov r1, #0 mov r0, r8 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 beq _02192b5c _0219283c: @@ -4818,7 +4818,7 @@ _02193b5c: mov r0, r10 mov r1, r3 mov r2, #0 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ mov r2, #0 add r1, sp, #0x258 mvn r3, #0 diff --git a/asm/ov51.inc b/asm/ov51.inc index 4b79a5db..5d30026d 100644 --- a/asm/ov51.inc +++ b/asm/ov51.inc @@ -17,7 +17,7 @@ .extern _ZN5Actor18func_ov00_020c1ef8EP8CylinderP5Vec3pii .extern _ZN5Actor18func_ov00_020c1fc8Ej .extern _ZN5Actor18func_ov00_020c23c4EP8ActorRefPS_ -.extern _ZN5Actor18func_ov00_020c243cEPjPi +.extern _ZN5Actor18func_ov00_020c243cEPjPPS_ .extern _ZN5Actor18func_ov00_020c313cEj .extern _ZN5Actor18func_ov00_020c3200Ei .extern _ZN5Actor20IncreaseActiveFramesEv diff --git a/asm/ov51.s b/asm/ov51.s index d1fe8719..80c9eb91 100644 --- a/asm/ov51.s +++ b/asm/ov51.s @@ -653,7 +653,7 @@ _02195d14: mov r1, #0 mov r0, r5 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ cmp r0, #0 bne _02195e80 mov r0, r5 @@ -2417,7 +2417,7 @@ func_ov51_02197314: ; 0x02197314 mov r1, r3 mov r0, r4 mov r2, #0 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ _021973d8: add r0, r4, #0x100 ldrsh r1, [r0, #0xd6] diff --git a/asm/ov52.inc b/asm/ov52.inc index 585ceddd..1adb57dc 100644 --- a/asm/ov52.inc +++ b/asm/ov52.inc @@ -23,7 +23,7 @@ .extern _ZN5Actor16CollidesWithLinkEv .extern _ZN5Actor18func_ov00_020c1cf8Ev .extern _ZN5Actor18func_ov00_020c1fc8Ej -.extern _ZN5Actor18func_ov00_020c243cEPjPi +.extern _ZN5Actor18func_ov00_020c243cEPjPPS_ .extern _ZN5Actor18func_ov00_020c313cEj .extern _ZN5Actor6GetPosEv .extern _ZN5Actor8vfunc_08Ev diff --git a/asm/ov52.s b/asm/ov52.s index 0bbd684b..45fb2304 100644 --- a/asm/ov52.s +++ b/asm/ov52.s @@ -1634,7 +1634,7 @@ func_ov52_0219699c: ; 0x0219699c mov r1, #0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c243cEPjPi + bl _ZN5Actor18func_ov00_020c243cEPjPPS_ ldmia sp!, {r4, pc} arm_func_end func_ov52_0219699c diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp index 59b6f93f..43bf8b43 100644 --- a/include/Actor/Actor.hpp +++ b/include/Actor/Actor.hpp @@ -212,7 +212,7 @@ public: bool CollidesWithPlayer(PlayerCollide flags); static void func_ov00_020c23c4(ActorRef *ref, Actor *actor); static void func_ov00_020c23d4(ActorRef *ref, Actor *actor, Cylinder *cylinder); - bool func_ov00_020c243c(ActorTypeId *actorTypes, s32 *param2); + bool func_ov00_020c243c(ActorTypeId *actorTypes, Actor **result); bool func_ov00_020c27a8(unk32 param1); bool IsFollowedByLink(); void StopLinkFollow(); diff --git a/include/Actor/ActorType.hpp b/include/Actor/ActorType.hpp index ed6a3b74..ca8c6558 100644 --- a/include/Actor/ActorType.hpp +++ b/include/Actor/ActorType.hpp @@ -34,7 +34,6 @@ #define __ACTOR_TYPE_2 '2' #define __ACTOR_TYPE_3 '3' #define __ACTOR_TYPE_4 '4' -#define __ACTOR_TYPE_4 '4' #define __ACTOR_TYPE_5 '5' #define __ACTOR_TYPE_6 '6' #define __ACTOR_TYPE_7 '7' @@ -106,13 +105,25 @@ enum ActorTypeId_ { ActorTypeId_Mailbox = __ACTOR_TYPE_ID(P,O,S,T), ActorTypeId_Postman = __ACTOR_TYPE_ID(P,S,T,M), + ActorTypeId_BIGR = __ACTOR_TYPE_ID(B,I,G,R), + ActorTypeId_BKEY = __ACTOR_TYPE_ID(B,K,E,Y), + ActorTypeId_BLST = __ACTOR_TYPE_ID(B,L,S,T), ActorTypeId_BMRN = __ACTOR_TYPE_ID(B,M,R,N), ActorTypeId_BMTY = __ACTOR_TYPE_ID(B,M,T,Y), + ActorTypeId_BTRF = __ACTOR_TYPE_ID(B,T,R,F), + ActorTypeId_CBLS = __ACTOR_TYPE_ID(C,B,L,S), ActorTypeId_FLAL = __ACTOR_TYPE_ID(F,L,A,L), ActorTypeId_FLBM = __ACTOR_TYPE_ID(F,L,B,M), ActorTypeId_FLBT = __ACTOR_TYPE_ID(F,L,B,T), + ActorTypeId_FLTB = __ACTOR_TYPE_ID(F,L,T,B), ActorTypeId_FLTM = __ACTOR_TYPE_ID(F,L,T,M), + ActorTypeId_FORC = __ACTOR_TYPE_ID(F,O,R,C), + ActorTypeId_ROPE = __ACTOR_TYPE_ID(R,O,P,E), ActorTypeId_SBEM = __ACTOR_TYPE_ID(S,B,E,M), + ActorTypeId_STNE = __ACTOR_TYPE_ID(S,T,N,E), + ActorTypeId_TARU = __ACTOR_TYPE_ID(T,A,R,U), + ActorTypeId_TSBH = __ACTOR_TYPE_ID(T,S,B,H), + ActorTypeId_TSUB = __ACTOR_TYPE_ID(T,S,U,B), ActorTypeId_VLR0 = __ACTOR_TYPE_ID(V,L,R,0), }; diff --git a/src/00_Core/Actor/Actor.cpp b/src/00_Core/Actor/Actor.cpp index 788a41f7..36b9cf57 100644 --- a/src/00_Core/Actor/Actor.cpp +++ b/src/00_Core/Actor/Actor.cpp @@ -421,34 +421,96 @@ void Actor::func_ov00_020c23d4(ActorRef *ref, Actor *actor, Cylinder *cylinder) gActorManager->func_ov00_020c399c(actor->mRef.index, cylinder); } -bool Actor::func_ov00_020c243c(ActorTypeId *actorTypes, s32 *param2) { - if (param2) *param2 = 0; +bool Actor::func_ov00_020c243c(ActorTypeId *actorTypes, Actor **result) { + if (result) *result = NULL; if (gAdventureFlags->func_ov00_02097738()) return false; - if (mHitbox.size < 0) return false; - Actor *actor = gActorManager->func_ov00_020c39ac(mRef.index, actorTypes, false); - if (!actor) return false; - - Knockback knockback; - knockback.mUnk_10 = 0xb; + if (mHitbox.size >= 0) { + Actor *actor = gActorManager->func_ov00_020c39ac(mRef.index, actorTypes, false); + if (actor) { + Knockback knockback; + knockback.mUnk_10 = 0xb; + knockback.mUnk_00 = 0; + knockback.mUnk_14 = 0; - Vec3p vec; - if (actor->mType != ActorTypeId_Arrow && actor->mType != ActorTypeId_SBEM) { - Vec3p_Sub(&mPos, &actor->mPrevPos, &vec); - } else { - vec.x = SIN(actor->mAngle); - vec.z = COS(actor->mAngle); - vec.y = 0; - } + Vec3p vec; + if (actor->mType != ActorTypeId_Arrow && actor->mType != ActorTypeId_SBEM) { + Vec3p_Sub(&mPos, &actor->mPrevPos, &vec); + } else { + vec.x = SIN(actor->mAngle); + vec.z = COS(actor->mAngle); + vec.y = 0; + } - switch (actor->mType) { - case ActorTypeId_VLR0: { - knockback.mUnk_10 = 4; - } break; - } - this->vfunc_48(&knockback); + switch (actor->mType) { + case ActorTypeId_SBEM: { + knockback.mUnk_10 = 1; + } break; + + case ActorTypeId_Arrow: { + knockback.mUnk_10 = 7; + } break; + + case ActorTypeId_BMRN: { + knockback.mUnk_10 = 5; + } break; + + case ActorTypeId_ROPE: { + knockback.mUnk_10 = 8; + } break; + + case ActorTypeId_Bomb: + case ActorTypeId_BLST: + case ActorTypeId_BMTY: + case ActorTypeId_CBLS: { + knockback.mUnk_10 = 6; + } break; + + case ActorTypeId_TSBH: + case ActorTypeId_BIGR: + case ActorTypeId_BTRF: + case ActorTypeId_STNE: + case ActorTypeId_TARU: + case ActorTypeId_BKEY: + case ActorTypeId_FORC: + case ActorTypeId_FLTB: + { + knockback.mUnk_10 = 10; + } break; + + case ActorTypeId_VLR0: { + knockback.mUnk_10 = 4; + } break; + + case ActorTypeId_TSUB: { + knockback.mUnk_10 = 11; + } break; + } + + if (this->vfunc_48(&knockback)) { + actor->mUnk_040 = this->mRef; + if (result) *result = actor; + return true; + } + } + } + return false; +} + +bool Actor::CollidesWith(const Actor *other) { + // bool collides = false; + // if (other->mAlive) { + // if (other->mHitbox.size >= 0 && mHitbox.size >= 0) { + // Cylinder a, b; + // this->GetHitbox(&a); + // other->GetHitbox(&b); + // if (a.Overlaps(&b)) { + // collides = true; + // } + // } + // } + // return collides; } -bool Actor::CollidesWith(const Actor *other) {} bool Actor::func_ov00_020c27a8(unk32 param1) {} bool Actor::CollidesWithLink() {} bool Actor::IsFollowedByLink() {}