diff --git a/asm/ov00/Actor/Actor.s b/asm/ov00/Actor/Actor.s index 5e20a1e5..4fee7155 100644 --- a/asm/ov00/Actor/Actor.s +++ b/asm/ov00/Actor/Actor.s @@ -525,9 +525,9 @@ _020c1a28: .word gPlayer _020c1a2c: .word gPlayerLink arm_func_end _ZN5Actor18func_ov00_020c198cEv - .global _ZN20KillPickupItemActors6FilterEP5Actor - arm_func_start _ZN20KillPickupItemActors6FilterEP5Actor -_ZN20KillPickupItemActors6FilterEP5Actor: ; 0x020c1a30 + .global _ZN17KillPickupsFilter6FilterEP5Actor + arm_func_start _ZN17KillPickupsFilter6FilterEP5Actor +_ZN17KillPickupsFilter6FilterEP5Actor: ; 0x020c1a30 stmdb sp!, {r3, lr} ldr ip, [r1, #4] ldr r3, _020c1af8 ; =0x464c414c @@ -595,7 +595,7 @@ _020c1b08: .word 0x424f4d42 _020c1b0c: .word 0x464c544d _020c1b10: .word 0x48415254 _020c1b14: .word 0x52555059 - arm_func_end _ZN20KillPickupItemActors6FilterEP5Actor + arm_func_end _ZN17KillPickupsFilter6FilterEP5Actor .global _ZN5Actor20KillPickupItemActorsEv arm_func_start _ZN5Actor20KillPickupItemActorsEv @@ -612,7 +612,7 @@ _020c1b2c: cmp r2, r0 blo _020c1b2c ldr r0, _020c1b64 ; =gActorManager - ldr r3, _020c1b68 ; =_ZTV20KillPickupItemActors + ldr r3, _020c1b68 ; =_ZTV17KillPickupsFilter ldr r0, [r0] add r1, sp, #0 mov r2, #0 @@ -622,7 +622,7 @@ _020c1b2c: ldmia sp!, {pc} .align 2, 0 _020c1b64: .word gActorManager -_020c1b68: .word _ZTV20KillPickupItemActors +_020c1b68: .word _ZTV17KillPickupsFilter arm_func_end _ZN5Actor20KillPickupItemActorsEv .global _ZN5Actor15TrySetTransformEP9Transform @@ -691,9 +691,9 @@ _020c1c18: .word gMapManager _020c1c1c: .word _ZN10MapManager18func_ov00_02084be0Eii arm_func_end _ZN5Actor18func_Ov00_020c1bfcEi - .global _ZN5Actor18func_ov00_020c1c20Eiii - arm_func_start _ZN5Actor18func_ov00_020c1c20Eiii -_ZN5Actor18func_ov00_020c1c20Eiii: ; 0x020c1c20 + .global _ZN5Actor18func_ov00_020c1c20Eii + arm_func_start _ZN5Actor18func_ov00_020c1c20Eii +_ZN5Actor18func_ov00_020c1c20Eii: ; 0x020c1c20 stmdb sp!, {r3, lr} add ip, r0, r1 ldr r0, _020c1c44 ; =gMapManager @@ -705,7 +705,7 @@ _ZN5Actor18func_ov00_020c1c20Eiii: ; 0x020c1c20 ldmia sp!, {r3, pc} .align 2, 0 _020c1c44: .word gMapManager - arm_func_end _ZN5Actor18func_ov00_020c1c20Eiii + arm_func_end _ZN5Actor18func_ov00_020c1c20Eii .global _ZN5Actor8vfunc_48Ei arm_func_start _ZN5Actor8vfunc_48Ei @@ -2814,9 +2814,9 @@ data_ov00_020e71dc: ; 0x020e71dc .word data_ov00_020e71a0 .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 - .global _ZTV20KillPickupItemActors -_ZTV20KillPickupItemActors: ; 0x020e71e8 - .word _ZN20KillPickupItemActors6FilterEP5Actor + .global _ZTV17KillPickupsFilter +_ZTV17KillPickupsFilter: ; 0x020e71e8 + .word _ZN17KillPickupsFilter6FilterEP5Actor .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .global _ZTV5Actor diff --git a/asm/ov00/ov00_02086cd0.inc b/asm/ov00/ov00_02086cd0.inc index 4e85a092..22438701 100644 --- a/asm/ov00/ov00_02086cd0.inc +++ b/asm/ov00/ov00_02086cd0.inc @@ -58,7 +58,7 @@ .extern _ZN5Actor15TrySetTransformEP9Transform .extern _ZN5Actor16CollidesWithLinkEv .extern _ZN5Actor18func_Ov00_020c1bfcEi -.extern _ZN5Actor18func_ov00_020c1c20Eiii +.extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c313cEj .extern _ZN5Actor6GetPosEv .extern _ZN5Actor8vfunc_08Ev diff --git a/asm/ov00/ov00_02086cd0.s b/asm/ov00/ov00_02086cd0.s index 1abbb5b8..619959d4 100644 --- a/asm/ov00/ov00_02086cd0.s +++ b/asm/ov00/ov00_02086cd0.s @@ -10921,12 +10921,12 @@ func_ov00_0208fc10: ; 0x0208fc10 _0208fc38: mov r1, #0 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii b _0208fc74 _0208fc48: mov r1, #0 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii ldr r0, [r4, #0x158] cmp r0, #0 moveq r0, #0 @@ -11559,7 +11559,7 @@ func_ov00_0209048c: ; 0x0209048c bne _020904bc mov r1, #0 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii mov r0, #0 strb r0, [r4, #0x118] _020904bc: diff --git a/asm/ov00/ov00_020b1498.inc b/asm/ov00/ov00_020b1498.inc index e63d4cd9..d2533cdc 100644 --- a/asm/ov00/ov00_020b1498.inc +++ b/asm/ov00/ov00_020b1498.inc @@ -107,7 +107,7 @@ .extern _ZN5Actor16CollidesWithLinkEv .extern _ZN5Actor16XzDistanceToLinkEv .extern _ZN5Actor18func_Ov00_020c1bfcEi -.extern _ZN5Actor18func_ov00_020c1c20Eiii +.extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c313cEj .extern _ZN5Actor20IncreaseActiveFramesEv .extern _ZN5Actor4KillEv diff --git a/asm/ov00/ov00_020b1498.s b/asm/ov00/ov00_020b1498.s index e1bb00d0..3baa9ad0 100644 --- a/asm/ov00/ov00_020b1498.s +++ b/asm/ov00/ov00_020b1498.s @@ -16521,7 +16521,7 @@ _020be3e4: mov r1, #1 mov r0, r5 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii mov r0, r5 bl _ZN5Actor4KillEv ldmia sp!, {r3, r4, r5, pc} diff --git a/asm/ov00/ov00_020c3e54.inc b/asm/ov00/ov00_020c3e54.inc index 6a970b14..b77c860b 100644 --- a/asm/ov00/ov00_020c3e54.inc +++ b/asm/ov00/ov00_020c3e54.inc @@ -60,7 +60,7 @@ .extern _ZN5Actor18func_Ov00_020c1bfcEi .extern _ZN5Actor18func_ov00_020c195cEv .extern _ZN5Actor18func_ov00_020c198cEv -.extern _ZN5Actor18func_ov00_020c1c20Eiii +.extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c1cf8Ev .extern _ZN5Actor18func_ov00_020c1fc8Ej .extern _ZN5Actor18func_ov00_020c243cEiPi diff --git a/asm/ov00/ov00_020c3e54.s b/asm/ov00/ov00_020c3e54.s index 4a35aa9f..d92d2112 100644 --- a/asm/ov00/ov00_020c3e54.s +++ b/asm/ov00/ov00_020c3e54.s @@ -20420,7 +20420,7 @@ func_ov00_020d3ca8: ; 0x020d3ca8 stmdb sp!, {r3, lr} mov r1, #1 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii mov r0, #1 ldmia sp!, {r3, pc} arm_func_end func_ov00_020d3ca8 diff --git a/asm/ov14/ov14_0211f640.inc b/asm/ov14/ov14_0211f640.inc index 1e0e421b..e02ada27 100644 --- a/asm/ov14/ov14_0211f640.inc +++ b/asm/ov14/ov14_0211f640.inc @@ -78,7 +78,7 @@ .extern _ZN5Actor18func_Ov00_020c1bfcEi .extern _ZN5Actor18func_ov00_020c1788Ev .extern _ZN5Actor18func_ov00_020c195cEv -.extern _ZN5Actor18func_ov00_020c1c20Eiii +.extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c1cf8Ev .extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p .extern _ZN5Actor18func_ov00_020c1f5cEP5Vec3pS1_iS1_ii diff --git a/asm/ov14/ov14_0211f640.s b/asm/ov14/ov14_0211f640.s index 41b9fbe7..2682062e 100644 --- a/asm/ov14/ov14_0211f640.s +++ b/asm/ov14/ov14_0211f640.s @@ -30488,7 +30488,7 @@ func_ov14_02138380: ; 0x02138380 mov r1, #1 mov r4, r0 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii ldrh r0, [r4, #0x20] cmp r0, #0x4b blt _021383b0 diff --git a/asm/ov14/ov14_0213b778.inc b/asm/ov14/ov14_0213b778.inc index f8530897..32aead43 100644 --- a/asm/ov14/ov14_0213b778.inc +++ b/asm/ov14/ov14_0213b778.inc @@ -84,7 +84,7 @@ .extern _ZN5Actor16CollidesWithLinkEv .extern _ZN5Actor16XzDistanceToLinkEv .extern _ZN5Actor18func_Ov00_020c1bfcEi -.extern _ZN5Actor18func_ov00_020c1c20Eiii +.extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c1cf8Ev .extern _ZN5Actor18func_ov00_020c23c4EP8ActorRefPS_ .extern _ZN5Actor18func_ov00_020c3094Ev diff --git a/asm/ov14/ov14_0213b778.s b/asm/ov14/ov14_0213b778.s index d2ca8c35..dc525a29 100644 --- a/asm/ov14/ov14_0213b778.s +++ b/asm/ov14/ov14_0213b778.s @@ -21584,7 +21584,7 @@ _0214c168: mov r1, #1 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii mov r0, r4 bl _ZN5Actor4KillEv ldmia sp!, {r4, pc} @@ -22415,7 +22415,7 @@ _0214cbdc: _0214cc10: mov r1, #1 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii mvn r0, #0 str r0, [r4, #0x158] mov r0, #0 @@ -26137,7 +26137,7 @@ _0214fd28: _0214fd38: mov r1, #0 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii mvn r1, #0 mov r0, r4 str r1, [r4, #0x158] diff --git a/asm/ov15.inc b/asm/ov15.inc index 9e434785..e0867bcc 100644 --- a/asm/ov15.inc +++ b/asm/ov15.inc @@ -95,7 +95,7 @@ .extern _ZN5Actor18CollidesWithPlayerEj .extern _ZN5Actor18func_Ov00_020c1bfcEi .extern _ZN5Actor18func_ov00_020c198cEv -.extern _ZN5Actor18func_ov00_020c1c20Eiii +.extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c1cf8Ev .extern _ZN5Actor18func_ov00_020c1d58Ev .extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p diff --git a/asm/ov15.s b/asm/ov15.s index ca8c4087..a17d3c45 100644 --- a/asm/ov15.s +++ b/asm/ov15.s @@ -16141,7 +16141,7 @@ _0212ca94: mov r5, r0 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii cmp r5, #0 beq _0212cb0c ldr r0, _0212cdf0 ; =gActorManager @@ -17623,7 +17623,7 @@ _0212df28: mov r0, r4 mov r1, #0 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii _0212e03c: ldr r1, _0212e070 ; =data_027e10a4 mov r0, #1 @@ -21589,7 +21589,7 @@ _021317fc: mov r1, #0 mov r2, #1 str r3, [r4, #0x488] - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii mov r1, #5 sub r0, r1, #6 strb r1, [r4, #0x490] @@ -36782,7 +36782,7 @@ func_ov15_0213e87c: ; 0x0213e87c beq _0213e89c mov r1, #1 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii _0213e89c: mov r1, #1 mov r0, r4 @@ -38714,7 +38714,7 @@ func_ov15_02140424: ; 0x02140424 mov r0, r4 mov r1, #1 mov r2, #0 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii _021404bc: ldr r0, _0214058c ; =data_027e103c ldr r0, [r0] @@ -38734,7 +38734,7 @@ _021404bc: mov r0, r4 mov r1, #0 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii _02140508: mov r0, r4 bl func_ov15_02140e5c @@ -38909,7 +38909,7 @@ _0214075c: mov r1, #1 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii _0214078c: mov r0, r4 bl _ZN5Actor4KillEv @@ -38958,7 +38958,7 @@ func_ov15_021407f4: ; 0x021407f4 ldmneia sp!, {r3, pc} mov r1, #1 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii ldmia sp!, {r3, pc} .align 2, 0 _02140818: .word data_027e0c68 @@ -39286,7 +39286,7 @@ func_ov15_02140c60: ; 0x02140c60 mov r0, r5 mov r1, #1 mov r2, #0 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii ldmia sp!, {r3, r4, r5, pc} .align 2, 0 _02140cb4: .word data_027e0d3c @@ -39313,7 +39313,7 @@ func_ov15_02140cb8: ; 0x02140cb8 mov r1, #1 mov r0, r5 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii ldmia sp!, {r3, r4, r5, pc} .align 2, 0 _02140d08: .word data_027e0d3c @@ -71471,7 +71471,7 @@ _0215c29c: strb r1, [r4, #0x1b9] mov r2, #1 strb r2, [r4, #0x1bc] - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii ldr r0, _0215c330 ; =gAdventureFlags ldr r1, [r4, #0x1b4] ldr r0, [r0] @@ -71697,7 +71697,7 @@ _0215c620: mov r0, r4 mov r1, #0 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii mov r1, #1 ldr r0, _0215c69c ; =data_027e10a4 strb r1, [r4, #0x1ba] @@ -78263,7 +78263,7 @@ _02161ee4: mov r1, #1 mov r0, r10 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii _02161f00: ldr r1, _02162438 ; =gActorManager add sp, sp, #0x6c @@ -78997,7 +78997,7 @@ _0216296c: beq _02162984 mov r1, #0 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii _02162984: ldr r0, _02162dfc ; =data_ov00_020eec68 mov r1, #0x1e @@ -86681,7 +86681,7 @@ func_ov15_02169358: ; 0x02169358 mov r1, #0 mov r2, #1 mov r4, r0 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii ldr r0, _021694e4 ; =gAdventureFlags mov r1, #0xb7 ldr r0, [r0] @@ -87235,7 +87235,7 @@ _02169ae4: mov r0, r5 mov r1, #0 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii _02169b40: ldr r0, _02169e48 ; =data_027e103c ldr r0, [r0] @@ -87261,7 +87261,7 @@ _02169b50: mov r1, #0 mov r0, r5 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii _02169ba0: ldr r0, _02169e4c ; =data_027e0c68 ldr r2, _02169e50 ; =0x00050023 @@ -87302,7 +87302,7 @@ _02169be4: mov r1, #0 mov r0, r5 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii b _02169e2c _02169c3c: add r0, sp, #0x68 @@ -87621,7 +87621,7 @@ _0216a088: mov r0, r4 mov r1, #0 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii _0216a0a4: ldr r0, _0216a0f4 ; =data_027e103c ldr r0, [r0] @@ -96352,7 +96352,7 @@ _02171818: mov r0, r4 mov r1, #0 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii ldr r0, _02171934 ; =data_027e0d3c ldr r0, [r0] bl func_ov00_02078fac @@ -115893,7 +115893,7 @@ _0218251c: bne _02182548 mov r1, #0 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii mov r0, #0 strb r0, [r4, #0x118] _02182548: diff --git a/asm/ov17.inc b/asm/ov17.inc index 8aa1e407..95483f67 100644 --- a/asm/ov17.inc +++ b/asm/ov17.inc @@ -29,7 +29,7 @@ .extern _ZN5Actor18CollidesWithPlayerEj .extern _ZN5Actor18func_Ov00_020c1bfcEi .extern _ZN5Actor18func_ov00_020c198cEv -.extern _ZN5Actor18func_ov00_020c1c20Eiii +.extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c23c4EP8ActorRefPS_ .extern _ZN5Actor18func_ov00_020c2c0cEv .extern _ZN5Actor18func_ov00_020c2c70Ev diff --git a/asm/ov17.s b/asm/ov17.s index dfc20027..27e599a2 100644 --- a/asm/ov17.s +++ b/asm/ov17.s @@ -6764,7 +6764,7 @@ func_ov17_02160954: ; 0x02160954 mov r4, r0 mov r1, #0 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii mov r0, r4 bl _ZN5Actor4KillEv ldmia sp!, {r4, pc} @@ -7109,7 +7109,7 @@ _02160dd0: mov r0, r5 mov r1, #0 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii mov r0, r5 bl _ZN5Actor4KillEv add sp, sp, #0x20 @@ -13525,7 +13525,7 @@ _02165de8: mov r1, #1 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii b _02165e2c _02165dfc: ldr r0, _02165e38 ; =data_027e0f6c @@ -13539,7 +13539,7 @@ _02165dfc: mov r1, #1 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii _02165e2c: mov r0, #1 add sp, sp, #0xb0 diff --git a/asm/ov19.inc b/asm/ov19.inc index f93ccc41..d658f394 100644 --- a/asm/ov19.inc +++ b/asm/ov19.inc @@ -48,7 +48,7 @@ .extern _ZN5Actor16CollidesWithLinkEv .extern _ZN5Actor16XzDistanceToLinkEv .extern _ZN5Actor18func_Ov00_020c1bfcEi -.extern _ZN5Actor18func_ov00_020c1c20Eiii +.extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c1cf8Ev .extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p .extern _ZN5Actor18func_ov00_020c23c4EP8ActorRefPS_ diff --git a/asm/ov19.s b/asm/ov19.s index 1c89e7eb..c1a2be26 100644 --- a/asm/ov19.s +++ b/asm/ov19.s @@ -2002,7 +2002,7 @@ func_ov19_0216f0a8: ; 0x0216f0a8 ldmeqia sp!, {r3, pc} mov r1, #1 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii ldmia sp!, {r3, pc} arm_func_end func_ov19_0216f0a8 diff --git a/asm/ov20.inc b/asm/ov20.inc index 77dff4ed..f4d56a06 100644 --- a/asm/ov20.inc +++ b/asm/ov20.inc @@ -43,7 +43,7 @@ .extern _ZN5Actor16XzDistanceToLinkEv .extern _ZN5Actor18CollidesWithShieldEP8Cylinder .extern _ZN5Actor18func_Ov00_020c1bfcEi -.extern _ZN5Actor18func_ov00_020c1c20Eiii +.extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p .extern _ZN5Actor18func_ov00_020c1ef8EP8CylinderP5Vec3pii .extern _ZN5Actor18func_ov00_020c23c4EP8ActorRefPS_ diff --git a/asm/ov20.s b/asm/ov20.s index 782ebdfb..5923bca7 100644 --- a/asm/ov20.s +++ b/asm/ov20.s @@ -9888,7 +9888,7 @@ _021759e8: mov r0, r4 mov r1, #0 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii mov r0, r4 mov r1, #1 bl func_ov20_02175960 diff --git a/asm/ov22.inc b/asm/ov22.inc index 90560f8e..2011bd10 100644 --- a/asm/ov22.inc +++ b/asm/ov22.inc @@ -50,7 +50,7 @@ .extern _ZN5Actor16CollidesWithLinkEv .extern _ZN5Actor16XzDistanceToLinkEv .extern _ZN5Actor18func_Ov00_020c1bfcEi -.extern _ZN5Actor18func_ov00_020c1c20Eiii +.extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c1da0EiP5Vec3p .extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p .extern _ZN5Actor18func_ov00_020c1f5cEP5Vec3pS1_iS1_ii diff --git a/asm/ov22.s b/asm/ov22.s index 4f6837b5..4bf3af31 100644 --- a/asm/ov22.s +++ b/asm/ov22.s @@ -7125,7 +7125,7 @@ func_ov22_0217341c: ; 0x0217341c mov r1, #1 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii add sp, sp, #0x20 ldmia sp!, {r4, pc} _02173484: diff --git a/asm/ov23.inc b/asm/ov23.inc index a444b0f1..8a142e7d 100644 --- a/asm/ov23.inc +++ b/asm/ov23.inc @@ -80,7 +80,7 @@ .extern _ZN5Actor16XzDistanceToLinkEv .extern _ZN5Actor18func_Ov00_020c1bfcEi .extern _ZN5Actor18func_ov00_020c198cEv -.extern _ZN5Actor18func_ov00_020c1c20Eiii +.extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p .extern _ZN5Actor18func_ov00_020c1ef8EP8CylinderP5Vec3pii .extern _ZN5Actor18func_ov00_020c243cEiPi diff --git a/asm/ov23.s b/asm/ov23.s index ed6f8ded..d3965864 100644 --- a/asm/ov23.s +++ b/asm/ov23.s @@ -8076,7 +8076,7 @@ _02174120: mov r1, #1 mov r0, r4 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii ldr r0, _021741ac ; =gMapManager ldr r0, [r0] bl _ZN10MapManager18func_ov00_02084740Ev diff --git a/asm/ov25.inc b/asm/ov25.inc index e7c88416..25c93169 100644 --- a/asm/ov25.inc +++ b/asm/ov25.inc @@ -41,7 +41,7 @@ .extern _ZN5Actor16CollidesWithLinkEv .extern _ZN5Actor16XzDistanceToLinkEv .extern _ZN5Actor18func_ov00_020c198cEv -.extern _ZN5Actor18func_ov00_020c1c20Eiii +.extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c1d58Ev .extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p .extern _ZN5Actor18func_ov00_020c1f5cEP5Vec3pS1_iS1_ii diff --git a/asm/ov25.s b/asm/ov25.s index 8960ddc3..f4100918 100644 --- a/asm/ov25.s +++ b/asm/ov25.s @@ -8826,7 +8826,7 @@ _02174e90: mov r0, r4 mov r1, #0 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii mov r0, r4 bl func_ov14_0214591c mov r0, r4 diff --git a/asm/ov26.inc b/asm/ov26.inc index cdd5e92c..e3b5c07c 100644 --- a/asm/ov26.inc +++ b/asm/ov26.inc @@ -47,7 +47,7 @@ .extern _ZN5Actor16CollidesWithLinkEv .extern _ZN5Actor16XzDistanceToLinkEv .extern _ZN5Actor18func_Ov00_020c1bfcEi -.extern _ZN5Actor18func_ov00_020c1c20Eiii +.extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c313cEj .extern _ZN5Actor4KillEv .extern _ZN5Actor6GetPosEv diff --git a/asm/ov26.s b/asm/ov26.s index 545b14a0..78248f0f 100644 --- a/asm/ov26.s +++ b/asm/ov26.s @@ -3522,7 +3522,7 @@ func_ov26_02170068: ; 0x02170068 ldmeqia sp!, {r3, pc} mov r1, #1 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii ldmia sp!, {r3, pc} arm_func_end func_ov26_02170068 diff --git a/asm/ov28.inc b/asm/ov28.inc index 77bd8cff..27e276f2 100644 --- a/asm/ov28.inc +++ b/asm/ov28.inc @@ -38,7 +38,7 @@ .extern _ZN5Actor16XzDistanceToLinkEv .extern _ZN5Actor18func_Ov00_020c1bfcEi .extern _ZN5Actor18func_ov00_020c198cEv -.extern _ZN5Actor18func_ov00_020c1c20Eiii +.extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c1fc8Ej .extern _ZN5Actor18func_ov00_020c243cEiPi .extern _ZN5Actor18func_ov00_020c3094Ev diff --git a/asm/ov28.s b/asm/ov28.s index ef9b6267..c3d7d72d 100644 --- a/asm/ov28.s +++ b/asm/ov28.s @@ -8785,7 +8785,7 @@ func_ov28_0217475c: ; 0x0217475c mov r0, r4 mov r2, r1 strb r3, [r4, #0x1c1] - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii mov r0, r4 bl func_ov28_021746cc add r0, r4, #0x48 diff --git a/asm/ov30.inc b/asm/ov30.inc index 8714d368..b8402d3e 100644 --- a/asm/ov30.inc +++ b/asm/ov30.inc @@ -22,7 +22,7 @@ .extern _ZN5Actor16CollidesWithLinkEv .extern _ZN5Actor16XzDistanceToLinkEv .extern _ZN5Actor18func_Ov00_020c1bfcEi -.extern _ZN5Actor18func_ov00_020c1c20Eiii +.extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c1d58Ev .extern _ZN5Actor18func_ov00_020c1ef8EP8CylinderP5Vec3pii .extern _ZN5Actor18func_ov00_020c23d4EP8ActorRefPS_P8Cylinder diff --git a/asm/ov30.s b/asm/ov30.s index a006b0f8..c4f79ec0 100644 --- a/asm/ov30.s +++ b/asm/ov30.s @@ -10157,7 +10157,7 @@ func_ov30_02183e30: ; 0x02183e30 ldmeqia sp!, {r3, pc} mov r1, #1 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii ldmia sp!, {r3, pc} arm_func_end func_ov30_02183e30 @@ -11387,13 +11387,13 @@ _021849cc: mov r0, r4 bne _021849f4 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} _021849f4: mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} @@ -11475,13 +11475,13 @@ _02184b10: mov r0, r4 beq _02184b38 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} _02184b38: mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} @@ -11575,13 +11575,13 @@ _02184c84: mov r0, r4 beq _02184cac mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} _02184cac: mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} @@ -11673,13 +11673,13 @@ _02184df0: mov r0, r4 bne _02184e18 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} _02184e18: mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} @@ -11768,13 +11768,13 @@ _02184f50: mov r0, r4 bne _02184f78 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} _02184f78: mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} @@ -11863,13 +11863,13 @@ _021850b0: mov r0, r4 bne _021850d8 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} _021850d8: mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} @@ -11958,13 +11958,13 @@ _02185210: mov r0, r4 bne _02185238 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} _02185238: mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii _02185240: add sp, sp, #0x1bc add sp, sp, #0x400 diff --git a/asm/ov34.inc b/asm/ov34.inc index eca0f812..23729e8c 100644 --- a/asm/ov34.inc +++ b/asm/ov34.inc @@ -15,7 +15,7 @@ .extern _ZN5Actor15TrySetTransformEP9Transform .extern _ZN5Actor16CollidesWithLinkEv .extern _ZN5Actor18func_Ov00_020c1bfcEi -.extern _ZN5Actor18func_ov00_020c1c20Eiii +.extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c1da0EiP5Vec3p .extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p .extern _ZN5Actor18func_ov00_020c1f5cEP5Vec3pS1_iS1_ii diff --git a/asm/ov34.s b/asm/ov34.s index 713ef15c..7560ecc3 100644 --- a/asm/ov34.s +++ b/asm/ov34.s @@ -912,7 +912,7 @@ _0217c950: mov r1, #1 mov r0, r5 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii _0217c984: mov r0, r5 bl _ZN5Actor4KillEv diff --git a/asm/ov35.inc b/asm/ov35.inc index aeea37c9..55276c2d 100644 --- a/asm/ov35.inc +++ b/asm/ov35.inc @@ -30,7 +30,7 @@ .extern _ZN5Actor16XzDistanceToLinkEv .extern _ZN5Actor18func_Ov00_020c1bfcEi .extern _ZN5Actor18func_ov00_020c198cEv -.extern _ZN5Actor18func_ov00_020c1c20Eiii +.extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p .extern _ZN5Actor18func_ov00_020c1fc8Ej .extern _ZN5Actor18func_ov00_020c23c4EP8ActorRefPS_ diff --git a/asm/ov35.s b/asm/ov35.s index a18f19fe..6f601a2e 100644 --- a/asm/ov35.s +++ b/asm/ov35.s @@ -3607,7 +3607,7 @@ _0217edc0: mov r0, r4 mov r1, #0 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii _0217edf4: mov r0, r4 bl _ZN5Actor4KillEv diff --git a/asm/ov37.inc b/asm/ov37.inc index d5c77891..a98c034f 100644 --- a/asm/ov37.inc +++ b/asm/ov37.inc @@ -24,7 +24,7 @@ .extern _ZN5Actor16CollidesWithLinkEv .extern _ZN5Actor16XzDistanceToLinkEv .extern _ZN5Actor18func_Ov00_020c1bfcEi -.extern _ZN5Actor18func_ov00_020c1c20Eiii +.extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c1ef8EP8CylinderP5Vec3pii .extern _ZN5Actor18func_ov00_020c1f5cEP5Vec3pS1_iS1_ii .extern _ZN5Actor18func_ov00_020c1fc8Ej diff --git a/asm/ov37.s b/asm/ov37.s index b28391af..b51f8053 100644 --- a/asm/ov37.s +++ b/asm/ov37.s @@ -4562,7 +4562,7 @@ func_ov37_0217fccc: ; 0x0217fccc mov r1, #1 mov r4, r0 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii mov r0, r4 bl _ZN5Actor4KillEv ldmia sp!, {r4, pc} diff --git a/asm/ov47.inc b/asm/ov47.inc index 6764bcaa..0b461bc1 100644 --- a/asm/ov47.inc +++ b/asm/ov47.inc @@ -14,7 +14,7 @@ .extern _ZN5Actor16XzDistanceToLinkEv .extern _ZN5Actor18CollidesWithShieldEP8Cylinder .extern _ZN5Actor18func_Ov00_020c1bfcEi -.extern _ZN5Actor18func_ov00_020c1c20Eiii +.extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c1cf8Ev .extern _ZN5Actor18func_ov00_020c1da0EiP5Vec3p .extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p diff --git a/asm/ov47.s b/asm/ov47.s index 972ec646..41fabedc 100644 --- a/asm/ov47.s +++ b/asm/ov47.s @@ -3501,7 +3501,7 @@ _02192eb4: mov r1, #1 mov r0, r6 mov r2, r1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii _02192ecc: ldr r0, [r6, #0x130] cmp r0, #1 diff --git a/asm/ov49.inc b/asm/ov49.inc index 80f32edf..5614ed25 100644 --- a/asm/ov49.inc +++ b/asm/ov49.inc @@ -24,7 +24,7 @@ .extern _ZN5Actor18CollidesWithPlayerEj .extern _ZN5Actor18func_Ov00_020c1bfcEi .extern _ZN5Actor18func_ov00_020c198cEv -.extern _ZN5Actor18func_ov00_020c1c20Eiii +.extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c2c0cEv .extern _ZN5Actor18func_ov00_020c2c70Ev .extern _ZN5Actor18func_ov00_020c313cEj diff --git a/asm/ov49.s b/asm/ov49.s index 70e97174..f16afae9 100644 --- a/asm/ov49.s +++ b/asm/ov49.s @@ -2776,7 +2776,7 @@ _02197a88: mov r0, r5 mov r1, #0 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii mov r0, r5 bl _ZN5Actor4KillEv add sp, sp, #0x10 @@ -3285,14 +3285,14 @@ _021980e0: mov r0, r4 mov r1, #0 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii b _02198144 _02198114: mvn r3, #0 mov r1, #0 mov r2, #1 str r3, [r4, #0x158] - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii cmp r5, #0 bne _0219813c ldr r0, _02198158 ; =gPlayerLink diff --git a/asm/ov50.inc b/asm/ov50.inc index 9e655037..215582fc 100644 --- a/asm/ov50.inc +++ b/asm/ov50.inc @@ -26,7 +26,7 @@ .extern _ZN5Actor16CollidesWithLinkEv .extern _ZN5Actor16XzDistanceToLinkEv .extern _ZN5Actor18func_Ov00_020c1bfcEi -.extern _ZN5Actor18func_ov00_020c1c20Eiii +.extern _ZN5Actor18func_ov00_020c1c20Eii .extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p .extern _ZN5Actor18func_ov00_020c23c4EP8ActorRefPS_ .extern _ZN5Actor18func_ov00_020c313cEj diff --git a/asm/ov50.s b/asm/ov50.s index 19ede315..ce18385e 100644 --- a/asm/ov50.s +++ b/asm/ov50.s @@ -1055,7 +1055,7 @@ _02196358: mov r0, r5 mov r1, #0 mov r2, #1 - bl _ZN5Actor18func_ov00_020c1c20Eiii + bl _ZN5Actor18func_ov00_020c1c20Eii ldrh r0, [r5, #0x20] cmp r0, #1 bne _0219639c diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp index ab81bb99..a7b174df 100644 --- a/include/Actor/Actor.hpp +++ b/include/Actor/Actor.hpp @@ -6,15 +6,17 @@ #include "lib/math.h" #include "Actor/ActorRef.hpp" +#include "Actor/ActorType.hpp" #include "Actor/FilterActorBase.hpp" #include "Physics/Cylinder.hpp" #include "Physics/Transform.hpp" #include "Player/EquipBoomerang.hpp" +#include "System/SysNew.hpp" struct Actor_UnkStruct_020 { /* 00 */ unk16 mUnk_00[4]; - /* 08 */ unk8 mUnk_08[2]; - /* 0a */ unk8 mUnk_0a[2]; + /* 08 */ u8 mUnk_08[2]; + /* 0a */ u8 mUnk_0a[2]; /* 0c */ unk8 mUnk_0c; /* 0c */ unk8 mUnk_0d; /* 0c */ unk8 mUnk_0e; @@ -43,9 +45,10 @@ struct Actor_UnkStruct_0a4 { /* 14 */ }; -class KillPickupItemActors : public FilterActorBase { +class KillPickupsFilter : public FilterActorBase { +public: /* 0 (base) */ - /* 4 */ + /* 4 */ ActorRef mUnk_4[20]; /* 0 */ virtual bool Filter(Actor *actor) override; /* 4 */ @@ -60,10 +63,10 @@ enum PlayerCollide_ { PlayerCollide_Hammer = 0x10, }; -class Actor { +class Actor : public SysObject { public: /* 000 (vtable) */ - /* 004 */ unk32 mType; + /* 004 */ ActorTypeId mType; /* 008 */ unk32 mId; /* 00c */ unk32 mIndex; /* 010 */ u8 mUnk_010; @@ -85,7 +88,7 @@ public: /* 070 */ unk32 mMaxFall; /* 074 */ unk32 mUnk_074; /* 078 */ s16 mRotation; - /* 07a */ unk16 mUnk_07a; + /* 07a */ u16 mUnk_07a; /* 07c */ Cylinder mHitbox; /* 08c */ Cylinder mUnk_08c; /* 09c */ Actor_UnkStruct_09c mUnk_09c; @@ -113,7 +116,7 @@ public: /* 118 */ bool mAlive; /* 119 */ unk8 mUnk_119; /* 11a */ bool mVisible; - /* 11b */ unk8 mUnk_11b; + /* 11b */ bool mUnk_11b; /* 11c */ unk8 mUnk_11c; /* 11d */ unk8 mUnk_11d; /* 11e */ q4 mYOffset; @@ -121,7 +124,7 @@ public: /* 122 */ unk16 mUnk_122; /* 124 */ unk8 mUnk_124; /* 125 */ unk8 mUnk_125; - /* 126 */ unk16 mUnk_126; + /* 126 */ u16 mUnk_126; /* 128 */ bool mUnk_128; /* 129 */ bool mUnk_129; /* 12a */ unk8 mUnk_12a; @@ -158,7 +161,7 @@ public: /* 4c */ virtual bool vfunc_4c(unk32 *param1); /* 50 */ virtual Vec3p* GetPos(); /* 54 */ virtual void vfunc_54(); - /* 58 */ virtual void SetUnk_11b(); + /* 58 */ virtual bool SetUnk_11b(); /* 5c */ virtual bool SetVelocity(Vec3p *vel); /* 60 */ virtual bool vfunc_60(); /* 64 */ virtual void vfunc_64(); @@ -171,7 +174,7 @@ public: /* 80 */ virtual void vfunc_80(); /* 84 */ virtual void vfunc_84(); /* 88 */ virtual void vfunc_88(); - /* 8c */ virtual void vfunc_8c(); + /* 8c */ virtual bool vfunc_8c(); /* 90 */ virtual bool vfunc_90(); /* 94 */ virtual void vfunc_94(); /* 98 */ virtual bool vfunc_98(); @@ -191,7 +194,7 @@ public: bool func_ov00_020c198c(); void KillPickupItemActors(); void func_Ov00_020c1bfc(s32 param1); - void func_ov00_020c1c20(s32 param1, unk32 param2, unk32 param3); + void func_ov00_020c1c20(s32 param1, unk32 param2); bool IsNearLink(); void func_ov00_020c1cf8(); bool func_ov00_020c1d58(); diff --git a/include/Actor/ActorRef.hpp b/include/Actor/ActorRef.hpp index b98c86a9..5c9bc461 100644 --- a/include/Actor/ActorRef.hpp +++ b/include/Actor/ActorRef.hpp @@ -7,4 +7,9 @@ struct ActorRef { /* 0 */ s32 id; /* 4 */ s32 index; /* 8 */ + + inline ActorRef() { + id = -1; + index = -1; + } }; diff --git a/include/Actor/ActorType.hpp b/include/Actor/ActorType.hpp index dcbc9409..9ba60282 100644 --- a/include/Actor/ActorType.hpp +++ b/include/Actor/ActorType.hpp @@ -3,8 +3,6 @@ #include "global.h" #include "types.h" -#include "Actor/Actor.hpp" - #define __ACTOR_TYPE_ID(a,b,c,d) (((a) << 24) | ((b) << 16) | ((c) << 8) | (d)) typedef u32 ActorTypeId; @@ -63,8 +61,16 @@ enum ActorTypeId_ { ActorTypeId_Linebeck = __ACTOR_TYPE_ID('L','N','B','K'), ActorTypeId_Mailbox = __ACTOR_TYPE_ID('P','O','S','T'), ActorTypeId_Postman = __ACTOR_TYPE_ID('P','S','T','M'), + + ActorTypeId_BMRN = __ACTOR_TYPE_ID('B','M','R','N'), + ActorTypeId_BMTY = __ACTOR_TYPE_ID('B','M','T','Y'), + 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_FLTM = __ACTOR_TYPE_ID('F','L','T','M'), }; +class Actor; typedef Actor* (*ActorCreateFunc)(); struct ActorType { diff --git a/include/Player/PlayerLinkBase.hpp b/include/Player/PlayerLinkBase.hpp index 0d4dc1e3..da67afb3 100644 --- a/include/Player/PlayerLinkBase.hpp +++ b/include/Player/PlayerLinkBase.hpp @@ -77,6 +77,7 @@ public: bool func_ov00_020bbd80(s32 param1); void func_ov00_020bc854(Vec3p *param1); + bool func_ov00_020bd304(); }; extern PlayerLinkBase *gPlayerLink; diff --git a/src/00_Core/Actor/Actor.cpp b/src/00_Core/Actor/Actor.cpp index e7d1bbcc..99180b91 100644 --- a/src/00_Core/Actor/Actor.cpp +++ b/src/00_Core/Actor/Actor.cpp @@ -1,6 +1,7 @@ #include "Actor/Actor.hpp" +#include "Actor/ActorManager.hpp" #include "Map/MapManager.hpp" - +#include "Player/PlayerLinkBase.hpp" KILL(_ZN5ActorC1Ev) Actor::Actor() {} @@ -20,7 +21,7 @@ void Actor::GetOffsetPos(Vec3p *pos) { pos->y += mYOffset; } -extern unk32 func_ov00_02087ef0(); +extern "C" unk32 func_ov00_02087ef0(); unk32 Actor::vfunc_38() { return func_ov00_02087ef0(); } @@ -29,11 +30,17 @@ unk8 Actor::func_ov00_020c1788() { return gMapManager->func_ov00_02083570(mUnk_010, mUnk_011); } -s32 Actor::vfunc_2c() {} -unk32 Actor::vfunc_30() {} +s32 Actor::vfunc_2c() { + return -1; +} + +unk32 Actor::vfunc_30() { + return 0; +} + void Actor::vfunc_14(u32 param1) {} -extern void func_ov00_0207a1c8(Actor_UnkStruct_0a4 *param1, u32 param2, Vec3p *param3); +extern "C" void func_ov00_0207a1c8(Actor_UnkStruct_0a4 *param1, u32 param2, Vec3p *param3); void Actor::vfunc_18(u32 param1) { func_ov00_0207a1c8(&mUnk_0a4, param1, &mPos); } @@ -55,13 +62,14 @@ struct UnkStruct1 { /* 20 */ }; extern void *data_027e0d3c; -extern void *data_02063e4c; +extern unk32 data_02063e4c; extern "C" bool func_ov00_02079470(void *param1, Vec3p *param2, unk32 param3, unk32 param4, unk32 *param5, unk32 *param6, unk32 param7, unk32 param8); extern "C" void func_01ffbe34(UnkStruct1 *param1); -extern "C" void func_020313c8(void *param1, unk32 *param2, unk32 *param3, u32 param4, UnkStruct1 *param5); +extern "C" void func_020313c8(unk32 *param1, unk32 param2, unk32 param3, u32 param4, UnkStruct1 *param5); void Actor::vfunc_1c(u16 *param1) { - unk16 unk1 = mUnk_129 ? mUnk_126 : mUnk_07a; - if (unk1 != -1) { + u16 unk1 = mUnk_07a; + if (mUnk_129) unk1 = mUnk_126; + if (unk1 != 0xffff) { if ((*param1 & 4) == 0 && (*param1 & 8) == 0) return; unk32 unk2; unk32 unk3; @@ -69,41 +77,153 @@ void Actor::vfunc_1c(u16 *param1) { UnkStruct1 unk4; func_01ffbe34(&unk4); unk4.mUnk_04 = 1; - func_020313c8(data_02063e4c, &unk2, &unk3, unk1, &unk4); + func_020313c8(&data_02063e4c, unk2, unk3, unk1, &unk4); } } } void Actor::vfunc_20(s32 param1) {} -void Actor::SetUnk_129(bool value) {} -void Actor::SetUnk_11b() {} -bool Actor::SetVelocity(Vec3p *vel) {} -bool Actor::vfunc_60() {} + +void Actor::SetUnk_129(bool value) { + if (mUnk_128) mUnk_129 = value; +} + +bool Actor::SetUnk_11b() { + if (mUnk_11b) return false; + mUnk_11b = true; + return true; +} + +bool Actor::SetVelocity(Vec3p *vel) { + if (!mUnk_11b) return false; + mVel = *vel; + mUnk_11b = false; + return true; +} + +bool Actor::vfunc_60() { + return false; +} + void Actor::vfunc_64() {} -void Actor::SetUnk_11c(unk8 value) {} + +void Actor::SetUnk_11c(unk8 value) { + mUnk_11c = value; +} + void Actor::vfunc_68() {} -bool Actor::vfunc_6c() {} -bool Actor::vfunc_70() {} + +bool Actor::vfunc_6c() { + return true; +} + +bool Actor::vfunc_70() { + return true; +} + void Actor::vfunc_74() {} void Actor::vfunc_7c() {} -bool Actor::vfunc_78() {} + +bool Actor::vfunc_78() { + return true; +} + void Actor::vfunc_80() {} void Actor::vfunc_84() {} void Actor::vfunc_88() {} -void Actor::vfunc_8c() {} -bool Actor::vfunc_90() {} + +bool Actor::vfunc_8c() { + return true; +} + +bool Actor::vfunc_90() { + return true; +} + void Actor::vfunc_94() {} bool Actor::vfunc_98() {} bool Actor::vfunc_9c() {} -bool Actor::func_ov00_020c195c() {} -bool Actor::func_ov00_020c198c() {} -bool KillPickupItemActors::Filter(Actor *actor) {} -void Actor::KillPickupItemActors() {} -bool Actor::TrySetTransform(Transform *transform) {} -void Actor::SetTransform(Transform *transform) {} + +bool Actor::func_ov00_020c195c() { + if (!mUnk_11b) return false; + gPlayerLink->func_ov00_020bc854(&mPos); + return true; +} + +struct UnkStruct2 { + /* 0 */ s32 mUnk_0; + /* 4 */ s32 mUnk_4; + /* 8 */ +}; +extern UnkStruct2 data_027e077c; +extern u8 *data_02056be4; +extern "C" bool func_ov05_02103f4c(s32 param1); +extern s32 data_027e103c; +bool Actor::func_ov00_020c198c() { + if ( + data_027e077c.mUnk_0 != data_027e077c.mUnk_4 + || (data_02056be4[data_027e077c.mUnk_0] & 1) != 0 + || (data_02056be4[data_027e077c.mUnk_0] & 4) != 0 + || func_ov05_02103f4c(data_027e103c) + || gPlayer->mHealth <= 0 + ) { + return false; + } + if (gPlayerLink && !gPlayerLink->func_ov00_020bd304()) return false; + return true; +} + +bool KillPickupsFilter::Filter(Actor *actor) { + switch (actor->mType) { + case ActorTypeId_Rupee: + case ActorTypeId_Heart: + case ActorTypeId_Bomb: + case ActorTypeId_Arrow: + case ActorTypeId_BMRN: + case ActorTypeId_BMTY: + case ActorTypeId_FLAL: + case ActorTypeId_FLBM: + case ActorTypeId_FLBT: + case ActorTypeId_FLTM: + { + actor->Kill(); + return true; + } + + default: return false; + } +} + +void Actor::KillPickupItemActors() { + KillPickupsFilter killPickups; + gActorManager->FilterActors(&killPickups, NULL); +} + +bool Actor::TrySetTransform(Transform *transform) { + mPrevPos = mPos; + mPos = transform->pos; + mRotation = transform->rotation; + mVisible = transform->visible; + return true; +} + +void Actor::SetTransform(Transform *transform) { + mPrevPos = mPos; + mPos = transform->pos; + mRotation = transform->rotation; + mVisible = transform->visible; +} + void Actor::vfunc_a8() {} -void Actor::func_Ov00_020c1bfc(s32 param1) {} -void Actor::func_ov00_020c1c20(s32 param1, unk32 param2, unk32 param3) {} + +void Actor::func_Ov00_020c1bfc(s32 param1) { + gMapManager->func_ov00_02084be0(mUnk_020.mUnk_0a[param1], mUnk_020.mUnk_08[param1]); +} + +void Actor::func_ov00_020c1c20(s32 param1, unk32 param2) { + gMapManager->func_ov00_02084b38(mUnk_020.mUnk_0a[param1], mUnk_020.mUnk_08[param1], param2); +} + bool Actor::vfunc_48(unk32 param1) {} bool Actor::vfunc_4c(unk32 *param1) {} bool Actor::IsNearLink() {}