diff --git a/asm/enemy.s b/asm/enemy.s index 25f67759..4bada3c6 100644 --- a/asm/enemy.s +++ b/asm/enemy.s @@ -74,8 +74,8 @@ _0800123E: ldr r3, _08001360 @ =CreateItemOnGround bx r3 - non_word_aligned_thumb_func_start sub_08001242 -sub_08001242: @ 0x08001242 + non_word_aligned_thumb_func_start GenericConfused +GenericConfused: @ 0x08001242 push {lr} movs r1, #0x43 ldrb r2, [r0, r1] @@ -199,18 +199,18 @@ sub_08001318: @ 0x08001318 movs r1, #0x36 ldrsh r1, [r0, r1] cmp r1, #0 - bpl sub_08001324 + bpl GenericKnockback movs r2, #0xff strb r2, [r0, #0x15] - thumb_func_start sub_08001324 -sub_08001324: @ 0x08001324 - ldr r3, _08001370 @ =sub_080AF18C + thumb_func_start GenericKnockback +GenericKnockback: @ 0x08001324 + ldr r3, _08001370 @ =Knockback1 bx r3 - thumb_func_start sub_08001328 -sub_08001328: @ 0x08001328 - ldr r3, _08001374 @ =sub_080AF1BC + thumb_func_start GenericKnockback2 +GenericKnockback2: @ 0x08001328 + ldr r3, _08001374 @ =Knockback2 bx r3 thumb_func_start sub_0800132C @@ -245,6 +245,6 @@ _08001360: .4byte CreateItemOnGround _08001364: .4byte 0x00001800 _08001368: .4byte gUnk_080012C8 _0800136C: .4byte gUnk_080012C8 -_08001370: .4byte sub_080AF18C -_08001374: .4byte sub_080AF1BC +_08001370: .4byte Knockback1 +_08001374: .4byte Knockback2 _08001378: .4byte GetFacingDirection diff --git a/asm/enemy/chuchuBoss.s b/asm/enemy/chuchuBoss.s index 3d5bfb57..f6f30960 100644 --- a/asm/enemy/chuchuBoss.s +++ b/asm/enemy/chuchuBoss.s @@ -6,8 +6,8 @@ .text - thumb_func_start sub_08025CD4 -sub_08025CD4: @ 0x08025CD4 + thumb_func_start ChuchuBoss_OnDeath +ChuchuBoss_OnDeath: @ 0x08025CD4 push {r4, r5, lr} adds r4, r0, #0 bl sub_08078B48 @@ -90,7 +90,7 @@ _08025D28: lsls r0, r0, #1 bl SoundReq adds r0, r4, #0 - bl sub_0804A7D4 + bl GenericDeath b _08025D9C .align 2, 0 _08025D80: .4byte gUnk_02034490 @@ -127,8 +127,8 @@ _08025DBC: pop {r4, r5, pc} .align 2, 0 - thumb_func_start sub_08025DC0 -sub_08025DC0: @ 0x08025DC0 + thumb_func_start ChuchuBoss_OnTick +ChuchuBoss_OnTick: @ 0x08025DC0 push {lr} ldr r2, _08025DD4 @ =gUnk_080CC1B0 ldrb r1, [r0, #0xc] @@ -246,7 +246,7 @@ _08025E86: bne _08025EAA _08025EA2: adds r0, r5, #0 - bl sub_0804A7D4 + bl GenericDeath b _0802605E _08025EAA: ldr r0, [r4] diff --git a/asm/enemy/cloudPiranha.s b/asm/enemy/cloudPiranha.s index a8ea962d..ee2f5690 100644 --- a/asm/enemy/cloudPiranha.s +++ b/asm/enemy/cloudPiranha.s @@ -46,11 +46,11 @@ sub_08038468: @ 0x08038468 beq _0803847C adds r0, r4, #0 movs r1, #0x1c - bl sub_0804A9FC + bl Create0x68FX _0803847C: ldr r1, _080384B0 @ =gUnk_080CF4F0 adds r0, r4, #0 - bl sub_0804AA30 + bl EnemyFunctionHandlerAfterCollision adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] diff --git a/asm/enemy/dust.s b/asm/enemy/dust.s index 03c757ba..b91ea514 100644 --- a/asm/enemy/dust.s +++ b/asm/enemy/dust.s @@ -39,7 +39,7 @@ _08044148: .4byte gUnk_080D15A0 sub_0804414C: @ 0x0804414C push {lr} ldr r1, _08044158 @ =gUnk_080D1588 - bl sub_0804AA30 + bl EnemyFunctionHandlerAfterCollision pop {pc} .align 2, 0 _08044158: .4byte gUnk_080D1588 @@ -113,7 +113,7 @@ sub_080441CC: @ 0x080441CC cmp r0, #0 beq _080441DE adds r0, r4, #0 - bl sub_0804A7D4 + bl GenericDeath _080441DE: pop {r4, pc} diff --git a/asm/enemy/flyingPot.s b/asm/enemy/flyingPot.s index ef57afcb..09794584 100644 --- a/asm/enemy/flyingPot.s +++ b/asm/enemy/flyingPot.s @@ -115,7 +115,7 @@ _08037110: _0803711E: ldr r1, _08037128 @ =gUnk_080CF244 adds r0, r5, #0 - bl sub_0804AA30 + bl EnemyFunctionHandlerAfterCollision pop {r4, r5, r6, pc} .align 2, 0 _08037128: .4byte gUnk_080CF244 diff --git a/asm/movement.s b/asm/movement.s index 6adfcac0..395f78e1 100644 --- a/asm/movement.s +++ b/asm/movement.s @@ -1859,8 +1859,8 @@ _080AF188: _080AF18A: pop {r4, pc} - thumb_func_start sub_080AF18C -sub_080AF18C: @ 0x080AF18C + thumb_func_start Knockback1 +Knockback1: @ 0x080AF18C push {r4, r5, lr} adds r4, r0, #0 adds r1, r4, #0 @@ -1884,8 +1884,8 @@ sub_080AF18C: @ 0x080AF18C pop {r4, r5, pc} .align 2, 0 - thumb_func_start sub_080AF1BC -sub_080AF1BC: @ 0x080AF1BC + thumb_func_start Knockback2 +Knockback2: @ 0x080AF1BC push {r4, r5, lr} adds r4, r0, #0 adds r1, r4, #0 diff --git a/asm/non_matching/gleerok/sub_0802D3B8.inc b/asm/non_matching/gleerok/sub_0802D3B8.inc index ccc08049..1cc4e2e9 100644 --- a/asm/non_matching/gleerok/sub_0802D3B8.inc +++ b/asm/non_matching/gleerok/sub_0802D3B8.inc @@ -76,7 +76,7 @@ _0802D420: cmp r5, #0 bne _0802D470 adds r0, r4, #0 - bl sub_0804A7D4 + bl GenericDeath bl DeleteThisEntity _0802D470: ldr r0, [r7] diff --git a/asm/non_matching/moldworm/Moldworm.inc b/asm/non_matching/moldworm/Moldworm.inc index 8f9c5c64..55289bb4 100644 --- a/asm/non_matching/moldworm/Moldworm.inc +++ b/asm/non_matching/moldworm/Moldworm.inc @@ -23,12 +23,12 @@ _08023052: adds r1, r4, #0 adds r1, #0x7d strb r0, [r1] - ldr r1, _08023068 @ =gUnk_080CBC38 + ldr r1, _08023068 @ =Moldworm_Functions adds r0, r4, #0 bl EnemyFunctionHandler b _08023090 .align 2, 0 -_08023068: .4byte gUnk_080CBC38 +_08023068: .4byte Moldworm_Functions _0802306C: ldr r0, [r4, #0x50] ldr r0, [r0, #4] diff --git a/asm/non_matching/octorokBoss/OctorokBoss_Init.inc b/asm/non_matching/octorokBoss/OctorokBoss_Init.inc index f9d23b7e..80d45b33 100644 --- a/asm/non_matching/octorokBoss/OctorokBoss_Init.inc +++ b/asm/non_matching/octorokBoss/OctorokBoss_Init.inc @@ -56,7 +56,7 @@ _08035764: cmp r2, #0 bne _0803579E adds r0, r4, #0 - bl sub_0804A7D4 + bl GenericDeath b _080359A6 _0803579E: str r2, [r4, #0x64] diff --git a/asm/non_matching/stalfos/sub_0803933C.inc b/asm/non_matching/stalfos/sub_0803933C.inc index 875ca86a..b92cc3bb 100644 --- a/asm/non_matching/stalfos/sub_0803933C.inc +++ b/asm/non_matching/stalfos/sub_0803933C.inc @@ -100,11 +100,11 @@ _080393F8: beq _0803940A adds r0, r5, #0 movs r1, #0x1c - bl sub_0804A9FC + bl Create0x68FX _0803940A: ldr r1, _08039414 @ =Stalfos_Functions adds r0, r5, #0 - bl sub_0804AA30 + bl EnemyFunctionHandlerAfterCollision pop {r4, r5, pc} .align 2, 0 _08039414: .4byte Stalfos_Functions diff --git a/data/const/enemy/acroBandits.s b/data/const/enemy/acroBandits.s index 1274dbcc..cdda3e2d 100644 --- a/data/const/enemy/acroBandits.s +++ b/data/const/enemy/acroBandits.s @@ -4,13 +4,13 @@ .section .rodata .align 2 -gUnk_080CE56C:: @ 080CE56C - .4byte sub_080318C4 - .4byte sub_080318DC - .4byte sub_08031A60 - .4byte sub_0804A7D4 - .4byte sub_08001242 - .4byte nullsub_154 +AcroBandit_Functions:: @ 080CE56C + .4byte AcroBandit_OnTick + .4byte AcroBandit_OnCollision + .4byte AcroBandit_OnKnockback + .4byte GenericDeath + .4byte GenericConfused + .4byte AcroBandit_OnGrabbed gUnk_080CE584:: @ 080CE584 .4byte sub_08031A88 diff --git a/data/const/enemy/cloudPiranha.s b/data/const/enemy/cloudPiranha.s index 3878d908..e4156069 100644 --- a/data/const/enemy/cloudPiranha.s +++ b/data/const/enemy/cloudPiranha.s @@ -7,9 +7,9 @@ gUnk_080CF4F0:: @ 080CF4F0 .4byte sub_08038450 .4byte sub_08038468 - .4byte sub_08001324 - .4byte sub_0804A7D4 - .4byte sub_08001242 + .4byte GenericKnockback + .4byte GenericDeath + .4byte GenericConfused .4byte nullsub_163 gUnk_080CF508:: @ 080CF508 diff --git a/data/const/enemy/dust.s b/data/const/enemy/dust.s index e89eb6f0..e8f1e1cb 100644 --- a/data/const/enemy/dust.s +++ b/data/const/enemy/dust.s @@ -7,9 +7,9 @@ gUnk_080D1588:: @ 080D1588 .4byte sub_08044134 .4byte sub_0804414C - .4byte sub_08001324 - .4byte sub_0804A7D4 - .4byte sub_08001242 + .4byte GenericKnockback + .4byte GenericDeath + .4byte GenericConfused .4byte sub_0804415C gUnk_080D15A0:: @ 080D15A0 diff --git a/data/const/enemy/enemy4D.s b/data/const/enemy/enemy4D.s index 71415f71..8780a68d 100644 --- a/data/const/enemy/enemy4D.s +++ b/data/const/enemy/enemy4D.s @@ -4,13 +4,13 @@ .section .rodata .align 2 -gUnk_080D0880:: @ 080D0880 - .4byte sub_0803EAFC - .4byte sub_0803EB14 - .4byte sub_0803EB24 - .4byte sub_0803EB34 - .4byte sub_08001242 - .4byte nullsub_21 +Enemy4D_Functions:: @ 080D0880 + .4byte Enemy4D_OnTick + .4byte Enemy4D_OnCollision + .4byte Enemy4D_OnKnockback + .4byte Enemy4D_OnDeath + .4byte GenericConfused + .4byte Enemy4D_OnGrabbed gUnk_080D0898:: @ 080D0898 .4byte sub_0803EB44 diff --git a/data/const/enemy/fireballGuy.s b/data/const/enemy/fireballGuy.s index 771a6b82..7f761fe4 100644 --- a/data/const/enemy/fireballGuy.s +++ b/data/const/enemy/fireballGuy.s @@ -4,13 +4,13 @@ .section .rodata .align 2 -gUnk_080D17E8:: @ 080D17E8 - .4byte sub_080453A4 - .4byte sub_080453BC - .4byte sub_08001324 - .4byte sub_0804A7D4 - .4byte sub_08001242 - .4byte nullsub_172 +FireballGuy_Functions:: @ 080D17E8 + .4byte FireballGuy_OnTick + .4byte FireballGuy_OnCollision + .4byte GenericKnockback + .4byte GenericDeath + .4byte GenericConfused + .4byte FireballGuy_OnGrabbed gUnk_080D1800:: @ 080D1800 .4byte sub_080453E8 diff --git a/data/const/enemy/flyingPot.s b/data/const/enemy/flyingPot.s index d068c955..f02b1ecc 100644 --- a/data/const/enemy/flyingPot.s +++ b/data/const/enemy/flyingPot.s @@ -8,9 +8,9 @@ gUnk_080CF244:: @ 080CF244 .4byte sub_0803708C .4byte sub_080370A4 - .4byte sub_08001324 - .4byte sub_0804A7D4 - .4byte sub_08001242 + .4byte GenericKnockback + .4byte GenericDeath + .4byte GenericConfused .4byte sub_0803712C gUnk_080CF25C:: @ 080CF25C diff --git a/data/const/enemy/gleerok.s b/data/const/enemy/gleerok.s index 51e32030..15de7dca 100644 --- a/data/const/enemy/gleerok.s +++ b/data/const/enemy/gleerok.s @@ -5,12 +5,12 @@ .align 2 -gUnk_080CD748:: @ 080CD748 - .4byte sub_0802D394 - .4byte sub_0802D394 - .4byte sub_08001324 - .4byte sub_0802D034 - .4byte sub_08001242 +Gleerok_Functions:: @ 080CD748 + .4byte Gleerok_OnTick + .4byte Gleerok_OnTick + .4byte GenericKnockback + .4byte Gleerok_OnDeath + .4byte GenericConfused gUnk_080CD75C:: @ 080CD75C .4byte sub_0802D158 diff --git a/data/const/enemy/keaton.s b/data/const/enemy/keaton.s index 64e84906..0fba5fb0 100644 --- a/data/const/enemy/keaton.s +++ b/data/const/enemy/keaton.s @@ -4,13 +4,13 @@ .section .rodata .align 2 -gUnk_080CE7B0:: @ 080CE7B0 - .4byte sub_080323DC - .4byte sub_080323F4 - .4byte sub_08001324 - .4byte sub_0804A7D4 - .4byte sub_08001242 - .4byte nullsub_155 +Keaton_Functions:: @ 080CE7B0 + .4byte Keaton_OnTick + .4byte Keaton_OnCollision + .4byte GenericKnockback + .4byte GenericDeath + .4byte GenericConfused + .4byte Keaton_OnGrabbed gUnk_080CE7C8:: @ 080CE7C8 .4byte sub_08032468 diff --git a/data/const/enemy/miniFireballGuy.s b/data/const/enemy/miniFireballGuy.s index 6a70de35..2acc1d34 100644 --- a/data/const/enemy/miniFireballGuy.s +++ b/data/const/enemy/miniFireballGuy.s @@ -4,13 +4,13 @@ .section .rodata .align 2 -gUnk_080D1868:: @ 080D1868 - .4byte sub_080455BC - .4byte sub_080455D4 - .4byte sub_08001324 - .4byte sub_080455E4 - .4byte sub_08001242 - .4byte nullsub_23 +MiniFireballGuy_Functions:: @ 080D1868 + .4byte MiniFireballGuy_OnTick + .4byte MiniFireballGuy_OnCollision + .4byte GenericKnockback + .4byte MiniFireballGuy_OnDeath + .4byte GenericConfused + .4byte MiniFireballGuy_OnGrabbed gUnk_080D1880:: @ 080D1880 .4byte sub_08045618 diff --git a/data/const/enemy/miniSlime.s b/data/const/enemy/miniSlime.s index 6d3a549f..a11e40e9 100644 --- a/data/const/enemy/miniSlime.s +++ b/data/const/enemy/miniSlime.s @@ -4,13 +4,13 @@ .section .rodata .align 2 -gUnk_080D17C0:: @ 080D17C0 - .4byte sub_08045220 - .4byte sub_08045238 - .4byte sub_08001324 - .4byte sub_0804525C - .4byte sub_08001242 - .4byte nullsub_22 +MiniSlime_Functions:: @ 080D17C0 + .4byte MiniSlime_OnTick + .4byte MiniSlime_OnCollision + .4byte GenericKnockback + .4byte MiniSlime_OnDeath + .4byte GenericConfused + .4byte MiniSlime_OnGrabbed gUnk_080D17D8:: @ 080D17D8 .4byte sub_080452A4 diff --git a/data/const/enemy/rope.s b/data/const/enemy/rope.s index b7b3b1d2..92d12e93 100644 --- a/data/const/enemy/rope.s +++ b/data/const/enemy/rope.s @@ -4,13 +4,13 @@ .section .rodata .align 2 -gRope:: @ 080CE448 +Rope_Functions:: @ 080CE448 .4byte Rope_OnTick+1 - .4byte sub_080313AC - .4byte sub_08001324 - .4byte sub_0804A7D4 - .4byte sub_08001242 - .4byte sub_080313E8 + .4byte Rope_OnCollision + .4byte GenericKnockback + .4byte GenericDeath + .4byte GenericConfused + .4byte Rope_OnGrabbed gUnk_080CE460:: @ 080CE460 .4byte sub_08031434 diff --git a/data/const/enemy/ropeGolden.s b/data/const/enemy/ropeGolden.s index 69d94b9d..65413cf8 100644 --- a/data/const/enemy/ropeGolden.s +++ b/data/const/enemy/ropeGolden.s @@ -4,12 +4,12 @@ .section .rodata .align 2 -gUnk_080CF4C8:: @ 080CF4C8 +RopeGolden_Functions:: @ 080CF4C8 .4byte RopeGolden_OnTick+1 - .4byte sub_08038210 - .4byte sub_08001324 - .4byte sub_08038234 - .4byte sub_08001242 + .4byte RopeGolden_OnCollision + .4byte GenericKnockback + .4byte RopeGolden_OnDeath + .4byte GenericConfused .4byte RopeGolden_OnTick+1 gUnk_080CF4E0:: @ 080CF4E0 diff --git a/data/const/enemy/slime.s b/data/const/enemy/slime.s index feb5de4b..b08debdd 100644 --- a/data/const/enemy/slime.s +++ b/data/const/enemy/slime.s @@ -4,13 +4,13 @@ .section .rodata .align 2 -gUnk_080D16A4:: @ 080D16A4 - .4byte sub_08044F70 - .4byte sub_08044F88 - .4byte sub_08001324 - .4byte sub_0804A7D4 - .4byte sub_08001242 - .4byte nullsub_171 +Slime_Functions:: @ 080D16A4 + .4byte Slime_OnTick + .4byte Slime_OnCollision + .4byte GenericKnockback + .4byte GenericDeath + .4byte GenericConfused + .4byte Slime_OnGrabbed gUnk_080D16BC:: @ 080D16BC .4byte sub_08044FC8 diff --git a/data/const/enemy/smallPesto.s b/data/const/enemy/smallPesto.s index 0faa02ba..98cb42c6 100644 --- a/data/const/enemy/smallPesto.s +++ b/data/const/enemy/smallPesto.s @@ -4,13 +4,13 @@ .section .rodata .align 2 -gUnk_080CE530:: @ 080CE530 - .4byte sub_08031680 - .4byte nullsub_152 - .4byte sub_08001324 - .4byte sub_0804A7D4 - .4byte sub_08001242 - .4byte sub_0803169C +SmallPesto_Functions:: @ 080CE530 + .4byte SmallPesto_OnTick + .4byte SmallPesto_OnCollision + .4byte GenericKnockback + .4byte GenericDeath + .4byte GenericConfused + .4byte SmallPesto_OnGrabbed gUnk_080CE548:: @ 080CE548 .4byte sub_08031704 diff --git a/data/const/enemy/tektite.s b/data/const/enemy/tektite.s index cb4646b9..94e67dc7 100644 --- a/data/const/enemy/tektite.s +++ b/data/const/enemy/tektite.s @@ -4,13 +4,13 @@ .section .rodata .align 2 -gUnk_080CDED0:: @ 080CDED0 - .4byte sub_0802F138 - .4byte sub_0802F150 - .4byte sub_08001324 - .4byte sub_0804A7D4 - .4byte sub_0802F1F0 - .4byte nullsub_16 +Tektite_Functions:: @ 080CDED0 + .4byte Tektite_OnTick + .4byte Tektite_OnCollision + .4byte GenericKnockback + .4byte GenericDeath + .4byte Tektite_OnConfused + .4byte Tektite_OnGrabbed gUnk_080CDEE8:: @ 080CDEE8 .4byte sub_0802F210 diff --git a/data/const/enemy/tektiteGolden.s b/data/const/enemy/tektiteGolden.s index 46928122..453c46bb 100644 --- a/data/const/enemy/tektiteGolden.s +++ b/data/const/enemy/tektiteGolden.s @@ -4,13 +4,13 @@ .section .rodata .align 2 -gUnk_080CF4A0:: @ 080CF4A0 - .4byte sub_08037EE8 - .4byte sub_08037F00 - .4byte sub_08001324 - .4byte sub_08037F58 - .4byte sub_08037F84 - .4byte sub_08037EE8 +TektiteGolden_Functions:: @ 080CF4A0 + .4byte TektiteGolden_OnTick + .4byte TektiteGolden_OnCollision + .4byte GenericKnockback + .4byte TektiteGolden_OnDeath + .4byte TektiteGolden_OnConfused + .4byte TektiteGolden_OnTick gUnk_080CF4B8:: @ 080CF4B8 .4byte sub_08037FA0 diff --git a/data/const/enemy/wisp.s b/data/const/enemy/wisp.s index 09f90f97..2c66267a 100644 --- a/data/const/enemy/wisp.s +++ b/data/const/enemy/wisp.s @@ -4,13 +4,13 @@ .section .rodata .align 2 -gUnk_080CEB74:: @ 080CEB74 - .4byte sub_0803354C - .4byte sub_08033564 - .4byte sub_08001324 - .4byte sub_0804A7D4 - .4byte sub_08001242 - .4byte sub_0803362C +Wisp_Functions:: @ 080CEB74 + .4byte Wisp_OnTick + .4byte Wisp_OnCollision + .4byte GenericKnockback + .4byte GenericDeath + .4byte GenericConfused + .4byte Wisp_OnGrabbed gUnk_080CEB8C:: @ 080CEB8C .4byte sub_08033674 diff --git a/include/asm.h b/include/asm.h index ef1511d2..c0aaa344 100644 --- a/include/asm.h +++ b/include/asm.h @@ -13,9 +13,9 @@ extern void UpdateScrollVram(void); extern u32 sub_080002D0(struct Entity_*); extern u32 sub_080002F0(u32, u32, u32); extern void LoadResourceAsync(const void*, u32, u32); -extern void sub_08001242(struct Entity_*); +extern void GenericConfused(struct Entity_*); extern void sub_08001290(struct Entity_*, u32); -extern void sub_08001324(struct Entity_*); +extern void GenericKnockback(struct Entity_*); extern u32 sub_08002632(struct Entity_*); extern u32 CheckPlayerInRegion(u32 centerX, u32 centerY, u32 radiusX, u32 radiusY); extern u32 GravityUpdate(struct Entity_*, u32); diff --git a/include/enemy.h b/include/enemy.h index b07aceb8..4b9fc37b 100644 --- a/include/enemy.h +++ b/include/enemy.h @@ -15,14 +15,14 @@ bool32 EnemyInit(Entity* this); extern u32 GetNextFunction(Entity*); extern void EnemyFunctionHandler(Entity*, EntityActionArray); -extern void sub_08001324(Entity*); +extern void GenericKnockback(Entity*); extern Entity* CreateDeathFx(Entity*, u32, u32); -extern Entity* sub_0804A9FC(Entity*, u32); +extern Entity* Create0x68FX(Entity*, u32); extern void SetChildOffset(Entity*, s32, s32, s32); extern Entity* CreateProjectileWithParent(Entity*, u8, u8); -extern void sub_0804A7D4(Entity*); +extern void GenericDeath(Entity*); extern void sub_08002724(void*, u8*); extern void sub_080026C4(u8*, u8*, u8*, u32); extern void sub_080026F2(u8*, void*, u8*, u32); diff --git a/include/entity.h b/include/entity.h index 5ff5dcdc..5250e464 100644 --- a/include/entity.h +++ b/include/entity.h @@ -170,7 +170,7 @@ typedef struct Entity_ { /*0x34*/ union SplitWord z; /**< Z position, fixed point Q16.16. */ /*0x38*/ u8 collisionLayer; /**< Collision layer. */ /*0x39*/ s8 interactType; - /*0x3a*/ u8 field_0x3a; + /*0x3a*/ u8 field_0x3a; /**< 4: grabbed by GustJar */ /*0x3b*/ u8 flags2; /*0x3c*/ u8 field_0x3c; /*0x3d*/ s8 iframes; /**< Invulnerability frames. */ @@ -179,7 +179,7 @@ typedef struct Entity_ { /*0x40*/ u8 hurtType; /**< behavior as a collision receiver. */ /*0x41*/ u8 bitfield; /*0x42*/ u8 knockbackDuration; /**< Duration of knockback. */ - /*0x43*/ u8 field_0x43; + /*0x43*/ u8 confusedTime; /**< Frames that this Entity is confused. */ /*0x44*/ u8 damage; /**< Damage this Entity inflicts. */ /*0x45*/ u8 health; /**< Health of this Entity. */ /*0x46*/ u16 field_0x46; diff --git a/include/functions.h b/include/functions.h index aa3165cb..d2ac1878 100644 --- a/include/functions.h +++ b/include/functions.h @@ -27,7 +27,7 @@ extern void sub_0806D02C(Entity*); extern void sub_0806FD3C(Entity*); extern void sub_0805ED14(u32*); extern void sub_080A7C18(u32, u32, u32); -extern void sub_0804AA30(Entity*, void (*const[])()); +extern void EnemyFunctionHandlerAfterCollision(Entity*, void (*const[])()); extern void sub_0804A720(Entity*); extern u32 sub_080AEFE0(Entity*); extern u32 sub_08049FA0(Entity*); @@ -148,7 +148,7 @@ extern u32 sub_08049F1C(Entity*, Entity*, u32); extern u32 sub_08049F1C(Entity*, Entity*, u32); extern void SoundReqClipped(Entity*, u32); extern void SoundReqClipped(Entity*, u32); -extern void sub_08001328(Entity*); +extern void GenericKnockback2(Entity*); extern void sub_08031E48(Entity*, Entity*); extern void sub_08032290(Entity*); extern void sub_08032338(Entity*); diff --git a/src/collision.c b/src/collision.c index 4af9296e..bb8c3551 100644 --- a/src/collision.c +++ b/src/collision.c @@ -431,7 +431,7 @@ s32 sub_08017CBC(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) } else { tgt->knockbackDuration = 12; tgt->iframes = 16; - tgt->field_0x43 = -16; + tgt->confusedTime = -16; tgt->field_0x46 = 768; if (org->iframes == 0) org->iframes = -1; @@ -526,7 +526,7 @@ s32 sub_08017F3C(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) } s32 sub_08017F40(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) { - if (tgt->field_0x43 == 0) { + if (tgt->confusedTime == 0) { if (org == &gPlayerEntity) { if (sub_08079F8C() && #ifdef EU @@ -620,7 +620,7 @@ s32 sub_080180E8(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) } s32 sub_08018168(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) { - if (tgt->field_0x43 == 0) { + if (tgt->confusedTime == 0) { if (org == &gPlayerEntity) { if (sub_08079F8C() && #ifdef EU @@ -676,7 +676,7 @@ s32 sub_08018288(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) } s32 sub_080182A8(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) { - if (tgt->field_0x43 == 0) { + if (tgt->confusedTime == 0) { if (org->iframes == 0) org->iframes = -1; if (tgt->iframes == 0) @@ -690,7 +690,7 @@ s32 sub_080182A8(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) s32 sub_08018308(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) { u32 temp = 0; - if (tgt->field_0x43 && tgt->kind == ENEMY && org == &gPlayerEntity) { + if (tgt->confusedTime && tgt->kind == ENEMY && org == &gPlayerEntity) { sub_08004484(tgt, org); temp = 1; } @@ -709,8 +709,8 @@ s32 sub_08018308(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) tmp2 = 0xFF; if (settings->_3 != 0) org->health = sub_08017874(org, tgt); - if (settings->_4 > org->field_0x43) - org->field_0x43 = settings->_4; + if (settings->_4 > org->confusedTime) + org->confusedTime = settings->_4; tgt->field_0x46 = 16 * settings->_5; tgt->iframes = settings->_6; if (settings->_6 == 0) @@ -719,8 +719,8 @@ s32 sub_08018308(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) tmp2 &= org->damage = settings->_8; if (tmp2 != 0) tgt->health = sub_08017874(tgt, org); - if (settings->_9 > tgt->field_0x43) - tgt->field_0x43 = settings->_9; + if (settings->_9 > tgt->confusedTime) + tgt->confusedTime = settings->_9; } if (settings->_a & 1) sub_08017940(org, tgt); @@ -733,8 +733,8 @@ s32 sub_08018308(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) parent->iframes = tgt->iframes; parent->knockbackDirection = direction; parent->knockbackDuration = tgt->knockbackDuration; - if (parent->field_0x43 == 0) - parent->field_0x43 = tgt->field_0x43; + if (parent->confusedTime == 0) + parent->confusedTime = tgt->confusedTime; parent->field_0x46 = tgt->field_0x46; parent->field_0x4c = org; } diff --git a/src/createEnemy.c b/src/createEnemy.c index 4550f3ad..ed4da368 100644 --- a/src/createEnemy.c +++ b/src/createEnemy.c @@ -1,6 +1,7 @@ #include "enemy.h" -void sub_0804AA30(Entity* entity, void (*fntable[])()) { +/** Unsets bitfield 0x80 before calling GetNextFunction, so that the enemyFunction 1 is not called. */ +void EnemyFunctionHandlerAfterCollision(Entity* entity, void (*fntable[])()) { u32 idx; entity->bitfield &= ~0x80; idx = GetNextFunction(entity); diff --git a/src/enemy/acroBandits.c b/src/enemy/acroBandits.c index 1df406b1..685effd6 100644 --- a/src/enemy/acroBandits.c +++ b/src/enemy/acroBandits.c @@ -10,7 +10,7 @@ extern Entity* gUnk_020000B0; extern void (*const gUnk_080012C8[])(Entity*); -extern void (*const gUnk_080CE56C[])(Entity*); +extern void (*const AcroBandit_Functions[])(Entity*); extern void (*const gUnk_080CE584[])(Entity*); extern void (*const gUnk_080CE58C[])(Entity*); extern void (*const gUnk_080CE5C8[])(Entity*); @@ -31,16 +31,16 @@ void AcroBandit(Entity* this) { gUnk_080012C8[index](this); } else { - gUnk_080CE56C[GetNextFunction(this)](this); + AcroBandit_Functions[GetNextFunction(this)](this); SetChildOffset(this, 0, 1, -0x10); } } -void sub_080318C4(Entity* this) { +void AcroBandit_OnTick(Entity* this) { gUnk_080CE584[this->type](this); } -void sub_080318DC(Entity* this) { +void AcroBandit_OnCollision(Entity* this) { Entity* brother; if (this->bitfield != 0x80 && this->bitfield != 0x81) { @@ -96,20 +96,20 @@ void sub_080318DC(Entity* this) { } } - if (this->field_0x43) - sub_0804A9FC(this, 0x1c); + if (this->confusedTime) + Create0x68FX(this, FX_STARS); - sub_0804AA30(this, gUnk_080CE56C); + EnemyFunctionHandlerAfterCollision(this, AcroBandit_Functions); } -void sub_08031A60(Entity* this) { +void AcroBandit_OnKnockback(Entity* this) { if (this->iframes > 0) GravityUpdate(this, Q_8_8(24.0)); - sub_08001324(this); + GenericKnockback(this); } -void nullsub_154(void) { +void AcroBandit_OnGrabbed(void) { /* ... */ } diff --git a/src/enemy/armos.c b/src/enemy/armos.c index c2df4d80..4ba4c511 100644 --- a/src/enemy/armos.c +++ b/src/enemy/armos.c @@ -68,11 +68,11 @@ void sub_080301D4(ArmosEntity* this) { sub_080309C8(this, 6); sub_080309E8(this); } - if (super->field_0x43 != 0) { - sub_0804A9FC(super, 0x1c); + if (super->confusedTime != 0) { + Create0x68FX(super, 0x1c); } this->unk_81 = super->health; - sub_0804AA30(super, gUnk_080CE124); + EnemyFunctionHandlerAfterCollision(super, gUnk_080CE124); } void sub_08030240(ArmosEntity* this) { @@ -81,7 +81,7 @@ void sub_08030240(ArmosEntity* this) { GetNextFrame(super); } } - sub_08001242(super); + GenericConfused(super); } void nullsub_17(ArmosEntity* this) { @@ -339,7 +339,7 @@ void sub_08030A04(ArmosEntity* this) { } void (*const gUnk_080CE124[])(ArmosEntity*) = { - sub_080301BC, sub_080301D4, (void (*)(ArmosEntity*))sub_08001324, (void (*)(ArmosEntity*))sub_0804A7D4, + sub_080301BC, sub_080301D4, (void (*)(ArmosEntity*))GenericKnockback, (void (*)(ArmosEntity*))GenericDeath, sub_08030240, nullsub_17, }; void (*const gUnk_080CE13C[])(ArmosEntity*) = { diff --git a/src/enemy/ballChainSoldier.c b/src/enemy/ballChainSoldier.c index dad421f3..99a0ac81 100644 --- a/src/enemy/ballChainSoldier.c +++ b/src/enemy/ballChainSoldier.c @@ -17,7 +17,7 @@ typedef struct { extern Entity* gUnk_020000B0; -void (*const gUnk_080D06E0[])(BallChainSoldierEntity*); +void (*const BallChainSoldier_Functions[])(BallChainSoldierEntity*); void (*const gUnk_080D06F8[])(BallChainSoldierEntity*); const u8 gUnk_080D0724[]; const u16 gUnk_080D0728[]; @@ -34,27 +34,27 @@ extern void sub_0803E94C(BallChainSoldierEntity*, u32); extern bool32 sub_0803EAD0(BallChainSoldierEntity*, u32); void BallChainSoldier(Entity* this) { - EnemyFunctionHandler(this, (EntityActionArray)gUnk_080D06E0); + EnemyFunctionHandler(this, (EntityActionArray)BallChainSoldier_Functions); } -void sub_0803E538(BallChainSoldierEntity* this) { +void BallChainSoldier_OnTick(BallChainSoldierEntity* this) { gUnk_080D06F8[super->action](this); } -void sub_0803E550(BallChainSoldierEntity* this) { - sub_0804AA30(super, gUnk_080D06E0); +void BallChainSoldier_OnCollision(BallChainSoldierEntity* this) { + EnemyFunctionHandlerAfterCollision(super, BallChainSoldier_Functions); } -void sub_0803E560(BallChainSoldierEntity* this) { - sub_08001324(super); - sub_0803E538(this); +void BallChainSoldier_OnKnockback(BallChainSoldierEntity* this) { + GenericKnockback(super); + BallChainSoldier_OnTick(this); } -void BallChainSoldier_CreateDeathFx(BallChainSoldierEntity* this) { +void BallChainSoldier_OnDeath(BallChainSoldierEntity* this) { CreateDeathFx(super, 0xff, 0x57); } -void nullsub_20(BallChainSoldierEntity* this) { +void BallChainSoldier_OnGrabbed(BallChainSoldierEntity* this) { } void BallChainSoldier_Init(BallChainSoldierEntity* this) { @@ -321,13 +321,13 @@ bool32 sub_0803EAD0(BallChainSoldierEntity* this, u32 distance) { return EntityWithinDistance(super, gUnk_020000B0->x.HALF.HI, gUnk_020000B0->y.HALF.HI - 4, distance); } -void (*const gUnk_080D06E0[])(BallChainSoldierEntity*) = { - sub_0803E538, - sub_0803E550, - sub_0803E560, - BallChainSoldier_CreateDeathFx, - (void (*const)(BallChainSoldierEntity*))sub_08001242, - nullsub_20, +void (*const BallChainSoldier_Functions[])(BallChainSoldierEntity*) = { + BallChainSoldier_OnTick, + BallChainSoldier_OnCollision, + BallChainSoldier_OnKnockback, + BallChainSoldier_OnDeath, + (void (*const)(BallChainSoldierEntity*))GenericConfused, + BallChainSoldier_OnGrabbed, }; void (*const gUnk_080D06F8[])(BallChainSoldierEntity*) = { diff --git a/src/enemy/beetle.c b/src/enemy/beetle.c index 6b5ddbb6..abe8f8a8 100644 --- a/src/enemy/beetle.c +++ b/src/enemy/beetle.c @@ -13,7 +13,7 @@ extern u32 PlayerInRange(Entity*, u32, u32); u32 sub_08021D00(Entity*); void sub_08021D44(Entity* this, u32 direction); -extern void (*const gUnk_080CB590[])(Entity*); +extern void (*const Beetle_Functions[])(Entity*); extern void (*const gUnk_080CB5A8[])(Entity*); extern void (*const gUnk_080CB5C8[])(Entity*); extern void (*const gUnk_080CB5D4[])(Entity*); @@ -22,18 +22,18 @@ extern const s8 gUnk_080CB5DC[]; extern const s8 gUnk_080CB5E4[]; void Beetle(Entity* this) { - EnemyFunctionHandler(this, gUnk_080CB590); + EnemyFunctionHandler(this, Beetle_Functions); } -void sub_08021768(Entity* this) { +void Beetle_OnTick(Entity* this) { gUnk_080CB5A8[this->action](this); } -void sub_08021780(Entity* this) { +void Beetle_OnCollision(Entity* this) { switch (this->bitfield) { case 0x80: if (gPlayerState.framestate == PL_STATE_CLIMB) { - sub_08021768(this); + Beetle_OnTick(this); } else { this->action = 5; this->actionDelay = 0xb4; @@ -47,19 +47,19 @@ void sub_08021780(Entity* this) { } break; case 0x93: - sub_08021768(this); + Beetle_OnTick(this); break; } if (this->health == 0) this->knockbackDuration = 0; - sub_0804AA30(this, gUnk_080CB590); + EnemyFunctionHandlerAfterCollision(this, Beetle_Functions); } -void sub_08021818(Entity* this) { +void Beetle_OnDeath(Entity* this) { if (this->type == 0) { - sub_0804A7D4(this); + GenericDeath(this); } else { Entity* ent = this->parent; if (ent) { @@ -70,7 +70,7 @@ void sub_08021818(Entity* this) { } } -void sub_08021848(Entity* this) { +void Beetle_OnGrabbed(Entity* this) { if (sub_0806F520(this)) { gUnk_080CB5C8[this->subAction](this); } else { @@ -89,7 +89,7 @@ void nullsub_130(Entity* this) { void sub_08021888(Entity* this) { if (sub_0806F3E4(this)) - sub_08021818(this); + Beetle_OnDeath(this); } void Beetle_Initialize(Entity* this) { @@ -322,13 +322,13 @@ void sub_08021D44(Entity* this, u32 direction) { } // clang-format off -void (*const gUnk_080CB590[])(Entity*) = { - sub_08021768, - sub_08021780, - sub_08001324, - sub_08021818, - sub_08001242, - sub_08021848, +void (*const Beetle_Functions[])(Entity*) = { + Beetle_OnTick, + Beetle_OnCollision, + GenericKnockback, + Beetle_OnDeath, + GenericConfused, + Beetle_OnGrabbed, }; void (*const gUnk_080CB5A8[])(Entity*) = { diff --git a/src/enemy/bobomb.c b/src/enemy/bobomb.c index 116febb2..03c072a4 100644 --- a/src/enemy/bobomb.c +++ b/src/enemy/bobomb.c @@ -18,20 +18,20 @@ void sub_0802CB68(Entity*); void sub_0802CBC4(Entity*); void sub_0802CC18(Entity*); -extern void (*const gUnk_080CD5D4[])(Entity*); +extern void (*const Bobomb_Functions[])(Entity*); extern void (*const gUnk_080CD5EC[])(Entity*); extern void (*const gUnk_080CD600[])(Entity*); extern void (*const gUnk_080CD618[])(Entity*); void Bobomb(Entity* this) { - EnemyFunctionHandler(this, gUnk_080CD5D4); + EnemyFunctionHandler(this, Bobomb_Functions); } -void sub_0802C670(Entity* this) { +void Bobomb_OnTick(Entity* this) { gUnk_080CD5EC[this->action](this); } -void sub_0802C688(Entity* this) { +void Bobomb_OnCollision(Entity* this) { if (this->bitfield & 0x80) { switch (this->bitfield & 0x7f) { case 0: @@ -68,10 +68,10 @@ void sub_0802C688(Entity* this) { break; } } - sub_0804AA30(this, gUnk_080CD5D4); + EnemyFunctionHandlerAfterCollision(this, Bobomb_Functions); } -void sub_0802C7AC(Entity* this) { +void Bobomb_OnGrabbed(Entity* this) { if (this->subAction < 3 && !sub_0806F520(this)) { this->subAction = 0; this->field_0xf = 1; @@ -140,8 +140,8 @@ void sub_0802C8B8(Entity* this) { sub_0802CBC4(this); } -void sub_0802C8C4(Entity* this) { - sub_0804A7D4(this); +void Bobomb_OnDeath(Entity* this) { + GenericDeath(this); this->spriteSettings.draw = 0; } @@ -305,13 +305,13 @@ void sub_0802CC18(Entity* this) { } // clang-format off -void (*const gUnk_080CD5D4[])(Entity*) = { - sub_0802C670, - sub_0802C688, - sub_08001324, - sub_0802C8C4, - sub_08001242, - sub_0802C7AC, +void (*const Bobomb_Functions[])(Entity*) = { + Bobomb_OnTick, + Bobomb_OnCollision, + GenericKnockback, + Bobomb_OnDeath, + GenericConfused, + Bobomb_OnGrabbed, }; void (*const gUnk_080CD5EC[])(Entity*) = { diff --git a/src/enemy/bombPeahat.c b/src/enemy/bombPeahat.c index 1ceea7db..4602b3a2 100644 --- a/src/enemy/bombPeahat.c +++ b/src/enemy/bombPeahat.c @@ -24,7 +24,7 @@ void sub_0802B264(Entity*); extern void (*const gUnk_080012C8[])(Entity*); -extern void (*const gUnk_080CD0F0[])(Entity*); +extern void (*const BombPeahat_Functions[])(Entity*); extern void (*const gUnk_080CD108[])(Entity*); extern void (*const gUnk_080CD120[])(Entity*); extern void (*const gUnk_080CD134[])(Entity*); @@ -41,11 +41,11 @@ void BombPeahat(Entity* this) { if ((this->type == 2) && (iVar1 = sub_080012DC(this), iVar1)) { gUnk_080012C8[iVar1](this); } else { - gUnk_080CD0F0[GetNextFunction(this)](this); + BombPeahat_Functions[GetNextFunction(this)](this); } } -void sub_0802A84C(Entity* this) { +void BombPeahat_OnTick(Entity* this) { switch (this->type) { default: gUnk_080CD108[this->action](this); @@ -61,14 +61,14 @@ void sub_0802A84C(Entity* this) { } } -void sub_0802A8AC(Entity* this) { +void BombPeahat_OnCollision(Entity* this) { this->field_0x80.HALF.HI = 0; if (this->type < 2) { InitializeAnimation(this, 0); } } -void sub_0802A8C8(Entity* this) { +void BombPeahat_OnGrabbed(Entity* this) { gUnk_080CD140[this->subAction](this); } @@ -705,13 +705,13 @@ void sub_0802B264(Entity* this) { #endif // clang-format off -void (*const gUnk_080CD0F0[])(Entity*) = { - sub_0802A84C, - sub_0802A8AC, - sub_08001324, - sub_0804A7D4, - sub_08001242, - sub_0802A8C8, +void (*const BombPeahat_Functions[])(Entity*) = { + BombPeahat_OnTick, + BombPeahat_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, + BombPeahat_OnGrabbed, }; void (*const gUnk_080CD108[])(Entity*) = { diff --git a/src/enemy/bombarossa.c b/src/enemy/bombarossa.c index de59188d..05784a06 100644 --- a/src/enemy/bombarossa.c +++ b/src/enemy/bombarossa.c @@ -11,7 +11,7 @@ typedef struct { u16 unk_0x76; } BombarossaEntity; -void (*const gUnk_080CEB38[])(Entity*); +void (*const Bombarossa_Functions[])(Entity*); const s8 gUnk_080CEB50[]; extern void sub_080A2CC0(Entity*, void*, void*); @@ -19,10 +19,10 @@ extern void sub_080A2CC0(Entity*, void*, void*); void sub_0803350C(BombarossaEntity* this); void Bombarossa(Entity* this) { - gUnk_080CEB38[GetNextFunction(this)](this); + Bombarossa_Functions[GetNextFunction(this)](this); } -void sub_080333D4(BombarossaEntity* this) { +void Bombarossa_OnTick(BombarossaEntity* this) { if (super->action == 0) { super->action = 1; super->actionDelay = Random() & 0xf; @@ -41,7 +41,7 @@ void sub_080333D4(BombarossaEntity* this) { } } -void sub_08033448(BombarossaEntity* this) { +void Bombarossa_OnCollision(BombarossaEntity* this) { Entity* ent; switch (super->bitfield & 0x7f) { default: @@ -56,12 +56,12 @@ void sub_08033448(BombarossaEntity* this) { case 27: case 29: case 30: - sub_0804AA30(super, gUnk_080CEB38); + EnemyFunctionHandlerAfterCollision(super, Bombarossa_Functions); break; } } -void nullsub_158() { +void Bombarossa_OnGrabbed() { } void sub_0803350C(BombarossaEntity* this) { @@ -74,8 +74,13 @@ void sub_0803350C(BombarossaEntity* this) { } } -void (*const gUnk_080CEB38[])(Entity*) = { - (EntityActionPtr)sub_080333D4, (EntityActionPtr)sub_08033448, sub_08001324, sub_0804A7D4, sub_08001242, nullsub_158, +void (*const Bombarossa_Functions[])(Entity*) = { + (EntityActionPtr)Bombarossa_OnTick, + (EntityActionPtr)Bombarossa_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, + Bombarossa_OnGrabbed, }; const s8 gUnk_080CEB50[] = { diff --git a/src/enemy/bowMoblin.c b/src/enemy/bowMoblin.c index d8737c42..e6ace018 100644 --- a/src/enemy/bowMoblin.c +++ b/src/enemy/bowMoblin.c @@ -35,7 +35,7 @@ u32 sub_0803C6F8(BowMoblinEntity*); u32 sub_0803C568(BowMoblinEntity*); void sub_0803C664(BowMoblinEntity*); -void (*const gUnk_080CFF78[])(Entity*); +void (*const BowMoblin_Functions[])(Entity*); void (*const gUnk_080CFF90[])(BowMoblinEntity*); const s8 gUnk_080CFFA4[8]; @@ -44,21 +44,21 @@ const u16 gUnk_080CFFBC[4]; const s8 gUnk_080CFFC4[8]; void BowMoblin(Entity* this) { - EnemyFunctionHandler(this, gUnk_080CFF78); + EnemyFunctionHandler(this, BowMoblin_Functions); SetChildOffset(this, 0, 1, -0x18); } -void sub_0803C180(BowMoblinEntity* this) { +void BowMoblin_OnTick(BowMoblinEntity* this) { gUnk_080CFF90[super->action](this); } -void sub_0803C198(BowMoblinEntity* this) { +void BowMoblin_OnCollision(BowMoblinEntity* this) { Entity* pEVar1; - if (super->field_0x43 != 0) { - sub_0804A9FC(super, 0x1c); + if (super->confusedTime != 0) { + Create0x68FX(super, FX_STARS); } - sub_0804AA30(super, (EntityActionArray)gUnk_080CFF78); + EnemyFunctionHandlerAfterCollision(super, (EntityActionArray)BowMoblin_Functions); if ((super->bitfield & 0x80) != 0) { sub_0803C5F0(this); pEVar1 = super->child; @@ -68,7 +68,7 @@ void sub_0803C198(BowMoblinEntity* this) { } } -void nullsub_168(BowMoblinEntity* this) { +void BowMoblin_OnGrabbed(BowMoblinEntity* this) { } void sub_0803C1E0(BowMoblinEntity* this) { @@ -388,9 +388,13 @@ void sub_0803C714(BowMoblinEntity* this) { PositionRelative(super, child, offsetX, offsetY); } -void (*const gUnk_080CFF78[])(Entity*) = { - (EntityActionPtr)sub_0803C180, (EntityActionPtr)sub_0803C198, sub_08001324, sub_0804A7D4, sub_08001242, - (EntityActionPtr)nullsub_168, +void (*const BowMoblin_Functions[])(Entity*) = { + (EntityActionPtr)BowMoblin_OnTick, + (EntityActionPtr)BowMoblin_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, + (EntityActionPtr)BowMoblin_OnGrabbed, }; void (*const gUnk_080CFF90[])(BowMoblinEntity*) = { diff --git a/src/enemy/businessScrub.c b/src/enemy/businessScrub.c index b30080b8..01422aff 100644 --- a/src/enemy/businessScrub.c +++ b/src/enemy/businessScrub.c @@ -29,7 +29,7 @@ void sub_08028EDC(Entity*); extern const struct SalesOffering gUnk_080CC954[]; extern const u8 gUnk_080CC9C0[]; -extern void (*const gUnk_080CC9C8[])(Entity*); +extern void (*const BusinessScrub_Functions[])(Entity*); extern void (*const gUnk_080CC9E0[])(Entity*); extern const u8 gUnk_080CCA04[]; @@ -45,14 +45,14 @@ struct SalesOffering { }; void BusinessScrub(Entity* this) { - EnemyFunctionHandler(this, gUnk_080CC9C8); + EnemyFunctionHandler(this, BusinessScrub_Functions); } -void sub_0802891C(Entity* this) { +void BusinessScrub_OnTick(Entity* this) { gUnk_080CC9E0[this->action](this); } -void sub_08028934(Entity* this) { +void BusinessScrub_OnCollision(Entity* this) { Entity* pEVar1; if (this->hitType == 1 && (this->bitfield & 0x7f) == 0x42) { @@ -69,7 +69,7 @@ void sub_08028934(Entity* this) { } } -void nullsub_140(Entity* this) { +void BusinessScrub_OnGrabbed(Entity* this) { /* ... */ } @@ -206,7 +206,7 @@ void sub_08028BC4(Entity* this) { this->actionDelay = 0x1e; this->field_0xf = 5; sub_080290E0(this, 0); - iVar1 = sub_0804A9FC(this, 0x1c); + iVar1 = Create0x68FX(this, FX_STARS); if (iVar1 != NULL) { iVar1->spritePriority.b0 = 3; iVar1->z.HALF.HI -= 12; @@ -585,13 +585,13 @@ const u8 gUnk_080CC9C0[] = { }; -void (*const gUnk_080CC9C8[])(Entity*) = { - sub_0802891C, - sub_08028934, - sub_08001324, - sub_0804A7D4, - sub_08001242, - nullsub_140, +void (*const BusinessScrub_Functions[])(Entity*) = { + BusinessScrub_OnTick, + BusinessScrub_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, + BusinessScrub_OnGrabbed, }; void (*const gUnk_080CC9E0[])(Entity*) = { diff --git a/src/enemy/businessScrubPrologue.c b/src/enemy/businessScrubPrologue.c index 7fe66de5..a523a27c 100644 --- a/src/enemy/businessScrubPrologue.c +++ b/src/enemy/businessScrubPrologue.c @@ -14,7 +14,7 @@ typedef struct { extern u16 script_BusinessScrubIntro[]; -void (*const gUnk_080D19FC[])(Entity*); +void (*const BusinessScrubPrologue_Functions[])(Entity*); void (*const gUnk_080D1A14[])(BusinessScrubPrologueEntity*); const u8 gUnk_080D1A38[]; const s8 gUnk_080D1A3E[]; @@ -31,16 +31,16 @@ void sub_0804604C(BusinessScrubPrologueEntity*); void sub_08045FA0(BusinessScrubPrologueEntity*); void BusinessScrubPrologue(Entity* this) { - EnemyFunctionHandler(this, gUnk_080D19FC); + EnemyFunctionHandler(this, BusinessScrubPrologue_Functions); } -void sub_08045B98(BusinessScrubPrologueEntity* this) { +void BusinessScrubPrologue_OnTick(BusinessScrubPrologueEntity* this) { super->spriteSettings.draw = 1; gUnk_080D1A14[super->action](this); sub_0800445C(super); } -void sub_08045BC8(BusinessScrubPrologueEntity* this) { +void BusinessScrubPrologue_OnCollision(BusinessScrubPrologueEntity* this) { Entity* ent; if (super->hitType == 1) { if ((super->bitfield & 0x7f) == 0x42) { @@ -61,7 +61,7 @@ void sub_08045BC8(BusinessScrubPrologueEntity* this) { } } -void nullsub_174(BusinessScrubPrologueEntity* this) { +void BusinessScrubPrologue_OnGrabbed(BusinessScrubPrologueEntity* this) { } void sub_08045C3C(BusinessScrubPrologueEntity* this) { @@ -187,7 +187,7 @@ void sub_08045E14(BusinessScrubPrologueEntity* this) { super->action = 5; super->subAction = 0; sub_08046030(this, 0); - ent = sub_0804A9FC(super, 0x1c); + ent = Create0x68FX(super, FX_STARS); if (ent) { ent->spritePriority.b0 = 3; ent->z.HALF.HI -= 0xc; @@ -329,9 +329,13 @@ void sub_08046078(BusinessScrubPrologueEntity* this) { sub_0804AA1C(super); } -void (*const gUnk_080D19FC[])(Entity*) = { - (EntityActionPtr)sub_08045B98, (EntityActionPtr)sub_08045BC8, sub_08001324, sub_0804A7D4, sub_08001242, - (EntityActionPtr)nullsub_174, +void (*const BusinessScrubPrologue_Functions[])(Entity*) = { + (EntityActionPtr)BusinessScrubPrologue_OnTick, + (EntityActionPtr)BusinessScrubPrologue_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, + (EntityActionPtr)BusinessScrubPrologue_OnGrabbed, }; void (*const gUnk_080D1A14[])(BusinessScrubPrologueEntity*) = { diff --git a/src/enemy/chaser.c b/src/enemy/chaser.c index 2efbe92b..dbbf7a77 100644 --- a/src/enemy/chaser.c +++ b/src/enemy/chaser.c @@ -14,7 +14,7 @@ extern bool32 sub_080AF038(Entity*); extern void (*const gUnk_080012C8[])(Entity*); -extern void (*const gUnk_080CD27C[])(Entity*); +extern void (*const Chaser_Functions[])(Entity*); extern void (*const gUnk_080CD298[])(Entity*); void Chaser(Entity* this) { @@ -22,11 +22,11 @@ void Chaser(Entity* this) { if (idx) { gUnk_080012C8[idx](this); } else { - gUnk_080CD27C[GetNextFunction(this)](this); + Chaser_Functions[GetNextFunction(this)](this); } } -void sub_0802B518(Entity* this) { +void Chaser_OnTick(Entity* this) { gUnk_080CD298[this->action](this); } @@ -77,14 +77,14 @@ void sub_0802B5C8(Entity* this) { } // clang-format off -void (*const gUnk_080CD27C[])(Entity*) = { - sub_0802B518, - sub_0802B518, - sub_08001324, - sub_0804A7D4, - sub_08001242, - sub_0802B518, - sub_0802B518, +void (*const Chaser_Functions[])(Entity*) = { + Chaser_OnTick, + Chaser_OnTick, + GenericKnockback, + GenericDeath, + GenericConfused, + Chaser_OnTick, + Chaser_OnTick, }; void (*const gUnk_080CD298[])(Entity*) = { diff --git a/src/enemy/chuchu.c b/src/enemy/chuchu.c index 8a5f90fb..bba9b073 100644 --- a/src/enemy/chuchu.c +++ b/src/enemy/chuchu.c @@ -35,7 +35,7 @@ u32 sub_0801FBD0(Entity*); void Chuchu_JumpAtPlayer(Entity*); extern void (*const gUnk_080012C8[])(Entity*); -extern void (*const gUnk_080CA21C[])(Entity*); +extern void (*const Chuchu_Functions[])(Entity*); extern void (*const gUnk_080CA234[])(Entity*); extern void (*const gUnk_080CA25C[])(Entity*); extern void (*const gUnk_080CA288[])(Entity*); @@ -77,7 +77,7 @@ void Chuchu(Entity* this) { break; } this->field_0x80.HALF.HI = index; - gUnk_080CA21C[GetNextFunction(this)](this); + Chuchu_Functions[GetNextFunction(this)](this); if (*(char*)(*(int*)&this->field_0x68 + 10) == 0x1c) { SetChildOffset(this, 0, 1, -0x10); } else if (this->type == 2) { @@ -101,7 +101,7 @@ void Chuchu_OnTick(Entity* this) { } } -void sub_0801EF40(Entity* this) { +void Chuchu_OnCollision(Entity* this) { u8 health; if (this->type == 2) { @@ -115,7 +115,7 @@ void sub_0801EF40(Entity* this) { if (health) { if (this->bitfield == 0x94) { sub_0801FB68(this); - sub_0804A9FC(this, 0x1c); + Create0x68FX(this, FX_STARS); InitializeAnimation(this, 6); } else if (this->field_0x80.HALF.LO != health) { sub_0801FB68(this); @@ -127,12 +127,12 @@ void sub_0801EF40(Entity* this) { InitializeAnimation(this, 9); } this->field_0x80.HALF.LO = this->health; - sub_0804AA30(this, gUnk_080CA21C); + EnemyFunctionHandlerAfterCollision(this, Chuchu_Functions); } -void sub_0801EFD8(Entity* this) { - if (sub_0806F520(this) == 0 && this->field_0x43) { - sub_0804A9FC(this, 0x1c); +void Chuchu_OnGrabbed(Entity* this) { + if (sub_0806F520(this) == 0 && this->confusedTime) { + Create0x68FX(this, FX_STARS); InitializeAnimation(this, 6); } else { if (this->animIndex != 8) { @@ -144,17 +144,17 @@ void sub_0801EFD8(Entity* this) { } } -void sub_0801F02C(Entity* this) { +void Chuchu_OnKnockback(Entity* this) { if (this->animIndex == 6) GetNextFrame(this); sub_08001318(this); } -void sub_0801F048(Entity* this) { +void Chuchu_OnDeath(Entity* this) { GravityUpdate(this, 0x1800); GetNextFrame(this); if (this->type == 0) { - sub_0804A7D4(this); + GenericDeath(this); } else if (this->type == 1) { CreateDeathFx(this, 0xf2, 0); } else { @@ -162,10 +162,10 @@ void sub_0801F048(Entity* this) { } } -void sub_0801F084(Entity* this) { +void Chuchu_OnConfused(Entity* this) { if ((this->frame & 0x80) == 0) GetNextFrame(this); - sub_08001242(this); + GenericConfused(this); } void sub_0801F0A4(Entity* this) { @@ -559,7 +559,7 @@ void sub_0801F884(Entity* this) { if (this->field_0xf) { this->field_0xf--; } else { - Entity* ent = sub_0804A9FC(this, 0x1b); + Entity* ent = Create0x68FX(this, FX_LIGHTNING_STRIKE); if (ent) { ent->type2 = 64; this->action = 4; @@ -728,13 +728,13 @@ void Chuchu_JumpAtPlayer(Entity* this) { } // clang-format off -void (*const gUnk_080CA21C[])(Entity*) = { +void (*const Chuchu_Functions[])(Entity*) = { Chuchu_OnTick, - sub_0801EF40, - sub_0801F02C, - sub_0801F048, - sub_0801F084, - sub_0801EFD8, + Chuchu_OnCollision, + Chuchu_OnKnockback, + Chuchu_OnDeath, + Chuchu_OnConfused, + Chuchu_OnGrabbed, }; void (*const gUnk_080CA234[])(Entity*) = { diff --git a/src/enemy/chuchuBoss.c b/src/enemy/chuchuBoss.c index 4204609f..ce00dd10 100644 --- a/src/enemy/chuchuBoss.c +++ b/src/enemy/chuchuBoss.c @@ -9,7 +9,7 @@ void sub_08027870(Entity*); -extern void (*const gUnk_080CC19C[])(Entity*); +extern void (*const ChuchuBoss_Functions[])(Entity*); extern void (*const gUnk_080CC1B0[])(Entity*); extern const u8 gUnk_080CC1B8[]; extern void (*const gUnk_080CC1C8[])(Entity*); @@ -27,18 +27,18 @@ extern const u16 gUnk_080CC2BC[]; extern const s8 gUnk_080CC2DC[]; void ChuchuBoss(Entity* this) { - gUnk_080CC19C[GetNextFunction(this)]((Entity*)this); + ChuchuBoss_Functions[GetNextFunction(this)]((Entity*)this); } -void sub_08025CBC(Entity* this) { - sub_08001324(this); +void ChuchuBoss_OnKnockback(Entity* this) { + GenericKnockback(this); if (this->type == 0) { sub_08027870(this); } } -void sub_08025DC0(Entity*); -void sub_08025CD4(Entity*); +void ChuchuBoss_OnTick(Entity*); +void ChuchuBoss_OnDeath(Entity*); void sub_08025DD8(Entity*); void sub_08026060(Entity*); void sub_08026110(Entity*); @@ -77,12 +77,12 @@ void sub_080269CC(Entity*); void sub_08026BE8(Entity*); // clang-format off -void (*const gUnk_080CC19C[])(Entity*) = { - sub_08025DC0, - sub_08025DC0, - sub_08025CBC, - sub_08025CD4, - sub_08001242, +void (*const ChuchuBoss_Functions[])(Entity*) = { + ChuchuBoss_OnTick, + ChuchuBoss_OnTick, + ChuchuBoss_OnKnockback, + ChuchuBoss_OnDeath, + GenericConfused, }; void (*const gUnk_080CC1B0[])(Entity*) = { diff --git a/src/enemy/crow.c b/src/enemy/crow.c index 4dfdc773..efe2b3e5 100644 --- a/src/enemy/crow.c +++ b/src/enemy/crow.c @@ -15,7 +15,7 @@ typedef struct { u8 unk_84; } CrowEntity; -void (*const gUnk_080CE978[])(Entity*); +void (*const Crow_Functions[])(Entity*); void (*const gUnk_080CE990[])(CrowEntity*); void (*const gUnk_080CE9A4[])(CrowEntity*); extern Entity* gUnk_020000B0; @@ -26,10 +26,10 @@ void sub_08032B38(CrowEntity* this); void sub_08032B10(CrowEntity* this); void Crow(Entity* this) { - gUnk_080CE978[GetNextFunction(this)](this); + Crow_Functions[GetNextFunction(this)](this); } -void sub_08032810(CrowEntity* this) { +void Crow_OnTick(CrowEntity* this) { gUnk_080CE990[super->action](this); if (super->field_0xf) { if (--super->field_0xf == 0) { @@ -38,7 +38,7 @@ void sub_08032810(CrowEntity* this) { } } -void sub_08032844(CrowEntity* this) { +void Crow_OnCollision(CrowEntity* this) { if (super->bitfield & 0x80) { if ((super->bitfield & 0x3f) == 0) { COLLISION_OFF(super); @@ -64,7 +64,7 @@ void sub_08032844(CrowEntity* this) { GetNextFrame(super); } -void sub_080328B8(CrowEntity* this) { +void Crow_OnGrabbed(CrowEntity* this) { gUnk_080CE9A4[super->subAction](this); GetNextFrame(super); @@ -90,7 +90,7 @@ void sub_0803290C(CrowEntity* this) { void sub_08032914(CrowEntity* this) { if (sub_0806F3E4(super)) { - sub_0804A7D4(super); + GenericDeath(super); } } @@ -266,9 +266,9 @@ void sub_08032B38(CrowEntity* this) { GetNextFrame(super); } -void (*const gUnk_080CE978[])(Entity*) = { - (EntityActionPtr)sub_08032810, (EntityActionPtr)sub_08032844, sub_08001324, sub_0804A7D4, sub_08001242, - (EntityActionPtr)sub_080328B8, +void (*const Crow_Functions[])(Entity*) = { + (EntityActionPtr)Crow_OnTick, (EntityActionPtr)Crow_OnCollision, GenericKnockback, GenericDeath, GenericConfused, + (EntityActionPtr)Crow_OnGrabbed, }; void (*const gUnk_080CE990[])(CrowEntity*) = { diff --git a/src/enemy/cuccoAggr.c b/src/enemy/cuccoAggr.c index fa6f8bf8..3678b7a6 100644 --- a/src/enemy/cuccoAggr.c +++ b/src/enemy/cuccoAggr.c @@ -18,7 +18,7 @@ typedef struct { u16 y; } PosOffset; -void (*const gUnk_080CF778[])(Entity*); +void (*const CuccoAggr_Functions[])(Entity*); void (*const gUnk_080CF790[])(CuccoAggrEntity*); void (*const gUnk_080CF7AC[])(CuccoAggrEntity*); const u8 gUnk_080CF7BC[]; @@ -46,17 +46,17 @@ void CuccoAggr(Entity* this) { if (index) { gUnk_080012C8[index](this); } else { - gUnk_080CF778[GetNextFunction(this)](this); + CuccoAggr_Functions[GetNextFunction(this)](this); SetChildOffset(this, 0, 1, -0x10); sub_080391B4((CuccoAggrEntity*)this); } } -void sub_08038CF8(CuccoAggrEntity* this) { +void CuccoAggr_OnTick(CuccoAggrEntity* this) { gUnk_080CF790[super->action](this); } -void sub_08038D10(CuccoAggrEntity* this) { +void CuccoAggr_OnCollision(CuccoAggrEntity* this) { if (super->type != 2) { if (this->unk_7a == 0 && CheckRoomFlag(1) == 0) { if (super->health <= 0xbf) { @@ -70,14 +70,14 @@ void sub_08038D10(CuccoAggrEntity* this) { CuccoAggr_CreateFx(this); } - if (super->field_0x43) { - sub_0804A9FC(super, 0x1c); + if (super->confusedTime) { + Create0x68FX(super, FX_STARS); } - sub_0804AA30(super, gUnk_080CF778); + EnemyFunctionHandlerAfterCollision(super, CuccoAggr_Functions); } -void nullsub_165(CuccoAggrEntity* this) { +void CuccoAggr_OnGrabbed(CuccoAggrEntity* this) { } void sub_08038D78(CuccoAggrEntity* this) { @@ -332,9 +332,13 @@ void sub_08039298(CuccoAggrEntity* this) { } } -void (*const gUnk_080CF778[])(Entity*) = { - (EntityActionPtr)sub_08038CF8, (EntityActionPtr)sub_08038D10, sub_08001324, sub_0804A7D4, sub_08001242, - (EntityActionPtr)nullsub_165, +void (*const CuccoAggr_Functions[])(Entity*) = { + (EntityActionPtr)CuccoAggr_OnTick, + (EntityActionPtr)CuccoAggr_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, + (EntityActionPtr)CuccoAggr_OnGrabbed, }; void (*const gUnk_080CF790[])(CuccoAggrEntity*) = { diff --git a/src/enemy/cuccoChickAggr.c b/src/enemy/cuccoChickAggr.c index 5acaf9d3..4ecbee1e 100644 --- a/src/enemy/cuccoChickAggr.c +++ b/src/enemy/cuccoChickAggr.c @@ -14,22 +14,22 @@ void sub_08022B0C(Entity*); u32 sub_08022B20(Entity*); void sub_08022B44(Entity*); -extern void (*const gUnk_080CBB64[])(Entity*); +extern void (*const CuccoChickAggr_Functions[])(Entity*); extern void (*const gUnk_080CBB7C[])(Entity*); void CuccoChickAggr(Entity* this) { - gUnk_080CBB64[GetNextFunction(this)](this); + CuccoChickAggr_Functions[GetNextFunction(this)](this); } -void sub_08022934(Entity* this) { +void CuccoChickAggr_OnTick(Entity* this) { gUnk_080CBB7C[this->action](this); } -void sub_0802294C(Entity* this) { - sub_0804AA30(this, gUnk_080CBB64); +void CuccoChickAggr_OnCollision(Entity* this) { + EnemyFunctionHandlerAfterCollision(this, CuccoChickAggr_Functions); } -void nullsub_132(Entity* this) { +void CuccoChickAggr_OnGrabbed(Entity* this) { } void sub_08022960(Entity* this) { @@ -151,13 +151,13 @@ void sub_08022B44(Entity* this) { } // clang-format off -void (*const gUnk_080CBB64[])(Entity*) = { - sub_08022934, - sub_0802294C, - sub_08001324, - sub_0804A7D4, - sub_08001242, - nullsub_132, +void (*const CuccoChickAggr_Functions[])(Entity*) = { + CuccoChickAggr_OnTick, + CuccoChickAggr_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, + CuccoChickAggr_OnGrabbed, }; void (*const gUnk_080CBB7C[])(Entity*) = { diff --git a/src/enemy/curtain.c b/src/enemy/curtain.c index d52c80b3..4f35dc2a 100644 --- a/src/enemy/curtain.c +++ b/src/enemy/curtain.c @@ -1,18 +1,18 @@ #include "enemy.h" #include "entity.h" -void (*const gUnk_080D1CC8[])(Entity*); +void (*const Curtain_Functions[])(Entity*); void (*const gUnk_080D1CE0[])(Entity*); void Curtain(Entity* this) { - EnemyFunctionHandler(this, gUnk_080D1CC8); + EnemyFunctionHandler(this, Curtain_Functions); } -void sub_080481D0(Entity* this) { +void Curtain_OnTick(Entity* this) { gUnk_080D1CE0[this->action](this); } -void sub_080481E8(Entity* this) { +void Curtain_OnCollision(Entity* this) { if (this->field_0x46) { this->action = 2; this->flags &= ~ENT_COLLIDE; @@ -25,7 +25,7 @@ void sub_080481E8(Entity* this) { InitializeAnimation(this, this->actionDelay); } -void nullsub_26() { +void Curtain_OnGrabbed() { } void sub_08048224(Entity* this) { @@ -68,8 +68,8 @@ void sub_08048294(Entity* this) { void nullsub_27() { } -void (*const gUnk_080D1CC8[])(Entity*) = { - sub_080481D0, sub_080481E8, sub_08001324, sub_0804A7D4, sub_08001242, nullsub_26, +void (*const Curtain_Functions[])(Entity*) = { + Curtain_OnTick, Curtain_OnCollision, GenericKnockback, GenericDeath, GenericConfused, Curtain_OnGrabbed, }; void (*const gUnk_080D1CE0[])(Entity*) = { diff --git a/src/enemy/darkNut.c b/src/enemy/darkNut.c index 57d2087f..db9e4983 100644 --- a/src/enemy/darkNut.c +++ b/src/enemy/darkNut.c @@ -37,7 +37,7 @@ void sub_08021424(Entity*); extern Entity* gUnk_020000B0; -extern void (*const gUnk_080CAA98[])(Entity*); +extern void (*const DarkNut_Functions[])(Entity*); extern void (*const gUnk_080CAAB0[])(Entity*); extern const s8 gUnk_080CAB00[]; @@ -55,15 +55,15 @@ extern const u8 gUnk_080CAB68[]; extern void (*const gUnk_080CAB58[])(Entity*); void DarkNut(Entity* this) { - EnemyFunctionHandler(this, gUnk_080CAA98); + EnemyFunctionHandler(this, DarkNut_Functions); SetChildOffset(this, 0, 1, -22); } -void sub_08020BA0(Entity* this) { +void DarkNut_OnTick(Entity* this) { gUnk_080CAAB0[this->action](this); } -void sub_08020BB8(Entity* this) { +void DarkNut_OnCollision(Entity* this) { switch (this->bitfield & 0x7f) { case 0x1c: this->action = 11; @@ -71,7 +71,7 @@ void sub_08020BB8(Entity* this) { this->hitType = 81; sub_08021218(this, 8, DirectionToAnimationState(this->knockbackDirection ^ 0x10)); sub_08021588(this); - sub_0804A9FC(this, 0x1c); + Create0x68FX(this, FX_STARS); break; case 0x16: this->action = 11; @@ -79,7 +79,7 @@ void sub_08020BB8(Entity* this) { this->hitType = 81; sub_08021218(this, 8, DirectionToAnimationState(this->knockbackDirection ^ 0x10)); sub_08021588(this); - sub_0804A9FC(this, 0x1c); + Create0x68FX(this, FX_STARS); break; case 0x4b: if (this->action == 13 || this->action == 15 || this->action == 19 || this->action == 18) @@ -122,10 +122,10 @@ void sub_08020BB8(Entity* this) { break; } this->field_0x78.HALF.LO = this->health; - sub_0804AA30(this, gUnk_080CAA98); + EnemyFunctionHandlerAfterCollision(this, DarkNut_Functions); } -void nullsub_129(Entity* this) { +void DarkNut_OnGrabbed(Entity* this) { } void sub_08020D70(Entity* this) { @@ -655,13 +655,13 @@ u32 sub_0802169C(Entity* this, Entity* ent) { } // clang-format off -void (*const gUnk_080CAA98[])(Entity*) = { - sub_08020BA0, - sub_08020BB8, - sub_08001324, - sub_0804A7D4, - sub_08001242, - nullsub_129, +void (*const DarkNut_Functions[])(Entity*) = { + DarkNut_OnTick, + DarkNut_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, + DarkNut_OnGrabbed, }; void (*const gUnk_080CAAB0[])(Entity*) = { sub_08020D70, diff --git a/src/enemy/doorMimic.c b/src/enemy/doorMimic.c index a5b63e9d..6b84ef18 100644 --- a/src/enemy/doorMimic.c +++ b/src/enemy/doorMimic.c @@ -17,7 +17,7 @@ typedef struct { s8 v; } PACKED PosOffset; -extern void (*const gUnk_080CB734[])(Entity*); +extern void (*const DoorMimic_Functions[])(Entity*); extern void (*const gUnk_080CB74C[])(Entity*); extern const s8 gUnk_080CB764[]; @@ -28,19 +28,19 @@ extern const Hitbox* const* const gUnk_080CB8A4[]; extern s16 gUnk_080B4488[]; void DoorMimic(Entity* this) { - gUnk_080CB734[GetNextFunction(this)](this); + DoorMimic_Functions[GetNextFunction(this)](this); this->hitbox = (Hitbox*)gUnk_080CB8A4[this->type2][this->frameIndex]; } -void sub_08021FDC(Entity* this) { +void DoorMimic_OnTick(Entity* this) { gUnk_080CB74C[this->action](this); } -void sub_08021FF4(Entity* this) { - sub_0804AA30(this, gUnk_080CB734); +void DoorMimic_OnCollision(Entity* this) { + EnemyFunctionHandlerAfterCollision(this, DoorMimic_Functions); } -void sub_08022004(Entity* this) { +void DoorMimic_OnDeath(Entity* this) { SetTile((u16)this->field_0x7c.HALF.LO, (u16)this->field_0x7c.HALF.HI, this->collisionLayer); CreateFx(this, FX_POT_SHATTER, 0); sub_08049CF4(this); @@ -122,13 +122,13 @@ void sub_080221C0(Entity* this) { } // clang-format off -void (*const gUnk_080CB734[])(Entity*) = { - sub_08021FDC, - sub_08021FF4, - sub_08001324, - sub_08022004, - sub_08001242, - sub_08021FDC, +void (*const DoorMimic_Functions[])(Entity*) = { + DoorMimic_OnTick, + DoorMimic_OnCollision, + GenericKnockback, + DoorMimic_OnDeath, + GenericConfused, + DoorMimic_OnTick, }; void (*const gUnk_080CB74C[])(Entity*) = { diff --git a/src/enemy/enemy4D.c b/src/enemy/enemy4D.c index d06ec59c..616a52a2 100644 --- a/src/enemy/enemy4D.c +++ b/src/enemy/enemy4D.c @@ -12,31 +12,31 @@ extern void sub_0803EE8C(Entity*); -extern void (*const gUnk_080D0880[])(Entity*); +extern void (*const Enemy4D_Functions[])(Entity*); extern void (*const gUnk_080D0898[])(Entity*); void Enemy4D(Entity* this) { - EnemyFunctionHandler(this, gUnk_080D0880); + EnemyFunctionHandler(this, Enemy4D_Functions); } -void sub_0803EAFC(Entity* this) { +void Enemy4D_OnTick(Entity* this) { gUnk_080D0898[this->action](this); } -void sub_0803EB14(Entity* this) { - sub_0804AA30(this, gUnk_080D0880); +void Enemy4D_OnCollision(Entity* this) { + EnemyFunctionHandlerAfterCollision(this, Enemy4D_Functions); } -void sub_0803EB24(Entity* this) { - sub_08001324(this); - sub_0803EAFC(this); +void Enemy4D_OnKnockback(Entity* this) { + GenericKnockback(this); + Enemy4D_OnTick(this); } -void sub_0803EB34(Entity* this) { +void Enemy4D_OnDeath(Entity* this) { CreateDeathFx(this, 0xff, 0x57); } -void nullsub_21(Entity* this) { +void Enemy4D_OnGrabbed(Entity* this) { } void sub_0803EB44(Entity* this) { diff --git a/src/enemy/enemy50.c b/src/enemy/enemy50.c index a77fdec3..284ba85a 100644 --- a/src/enemy/enemy50.c +++ b/src/enemy/enemy50.c @@ -95,10 +95,10 @@ void sub_08040B9C(Enemy50Entity* this) { if (super->bitfield == 0x9d) { super->zVelocity = 0x18000; } - if (super->field_0x43 != 0) { + if (super->confusedTime != 0) { super->animationState = super->knockbackDirection >> 4; InitializeAnimation(super, super->animationState + 7); - sub_0804A9FC(super, 0x1c); + Create0x68FX(super, 0x1c); } if (super->health != this->unk_7a) { if (super->type == 0) { @@ -116,14 +116,14 @@ void sub_08040B9C(Enemy50Entity* this) { this->unk_7a = super->health; } _08040C9C: - sub_0804AA30(super, Enemy50_Functions); + EnemyFunctionHandlerAfterCollision(super, Enemy50_Functions); } void sub_08040CAC(Enemy50Entity* this) { GetNextFrame(super); - sub_08001328(super); + GenericKnockback2(super); if (super->type == 0) { - if (((super->knockbackDuration == 0) && (super->health != 0)) && (super->field_0x43 == 0)) { + if (((super->knockbackDuration == 0) && (super->health != 0)) && (super->confusedTime == 0)) { super->animationState = 0xff; if (super->animIndex == 7 || super->animIndex == 8) { InitializeAnimation(super, ((super->animIndex - 7) ^ 1) + 1); @@ -141,11 +141,11 @@ void sub_08040D30(Enemy50Entity* this) { if (super->animIndex != 7 && super->animIndex != 8) { InitializeAnimation(super, super->animationState + 7); } - sub_08001242(super); + GenericConfused(super); if (super->z.HALF.HI == 0) { super->z.HALF.HI = 0xffff; } - if (super->field_0x43 == 0) { + if (super->confusedTime == 0) { InitializeAnimation(super, (super->animationState ^ 1) + 1); super->direction = 0xff; super->animationState = 0xff; @@ -181,7 +181,7 @@ void Enemy50_SubAction2(Enemy50Entity* this) { effect->spritePriority.b0 = 3; } if (super->type == 0) { - sub_0804A7D4(super); + GenericDeath(super); } else { DeleteThisEntity(); } @@ -436,7 +436,7 @@ bool32 sub_08041300(Enemy50Entity* this) { #endif void (*const Enemy50_Functions[])(Enemy50Entity*) = { - Enemy50_OnTick, sub_08040B9C, sub_08040CAC, (void (*)(Enemy50Entity*))sub_0804A7D4, sub_08040D30, sub_08040D90, + Enemy50_OnTick, sub_08040B9C, sub_08040CAC, (void (*)(Enemy50Entity*))GenericDeath, sub_08040D30, sub_08040D90, }; void (*const Enemy50_Actions[])(Enemy50Entity*) = { Enemy50_Init, Enemy50_Action1, Enemy50_Action2, Enemy50_Action3, Enemy50_Action4, Enemy50_Action5, diff --git a/src/enemy/enemyE.c b/src/enemy/enemyE.c index d19d110b..f0428d37 100644 --- a/src/enemy/enemyE.c +++ b/src/enemy/enemyE.c @@ -10,18 +10,18 @@ void sub_08023000(Entity*, int); -extern void (*const gUnk_080CBBC8[])(Entity*); +extern void (*const EnemyE_Functions[])(Entity*); extern void (*const gUnk_080CBBDC[])(Entity*); void EnemyE(Entity* this) { - EnemyFunctionHandler(this, gUnk_080CBBC8); + EnemyFunctionHandler(this, EnemyE_Functions); } -void sub_08022FB4(Entity* this) { +void EnemyE_OnTick(Entity* this) { gUnk_080CBBDC[this->action](this); } -void nullsub_133(Entity* this) { +void EnemyE_OnCollision(Entity* this) { } void sub_08022FD0(Entity* this) { @@ -58,12 +58,12 @@ void sub_08023000(Entity* this, int frames) { } // clang-format off -void (*const gUnk_080CBBC8[])(Entity*) = { - sub_08022FB4, - nullsub_133, - sub_08001324, - sub_0804A7D4, - sub_08001242, +void (*const EnemyE_Functions[])(Entity*) = { + EnemyE_OnTick, + EnemyE_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, }; void (*const gUnk_080CBBDC[])(Entity*) = { diff --git a/src/enemy/eyegore.c b/src/enemy/eyegore.c index 23acd17f..79c31cbc 100644 --- a/src/enemy/eyegore.c +++ b/src/enemy/eyegore.c @@ -64,9 +64,9 @@ void Eyegore_Action6(EyegoreEntity*); void (*const Eyegore_Functions[])(EyegoreEntity*) = { Eyegore_OnTick, Eyegore_OnCollision, - (void (*)(EyegoreEntity*))sub_08001324, + (void (*)(EyegoreEntity*))GenericKnockback, Eyegore_OnDeath, - (void (*)(EyegoreEntity*))sub_08001242, + (void (*)(EyegoreEntity*))GenericConfused, Eyegore_OnGrabbed, }; @@ -125,7 +125,7 @@ void Eyegore_OnCollision(EyegoreEntity* this) { super->flags &= ~ENT_COLLIDE; super->iframes = 0x78; } - sub_0804AA30(super, Eyegore_Functions); + EnemyFunctionHandlerAfterCollision(super, Eyegore_Functions); } void Eyegore_OnDeath(EyegoreEntity* this) { @@ -136,7 +136,7 @@ void Eyegore_OnDeath(EyegoreEntity* this) { if ((super->field_0x3a & 2) == 0) { CreateFx(super, FX_GIANT_EXPLOSION4, 0); } - sub_0804A7D4(super); + GenericDeath(super); } } diff --git a/src/enemy/fallingBoulder.c b/src/enemy/fallingBoulder.c index 1bb932af..5c483e4b 100644 --- a/src/enemy/fallingBoulder.c +++ b/src/enemy/fallingBoulder.c @@ -11,7 +11,7 @@ void sub_0802C4B0(Entity*); void sub_0802C62C(Entity*); -extern void (*const gUnk_080CD540[])(Entity*); +extern void (*const FallingBoulder_Functions[])(Entity*); extern void (*const gUnk_080CD558[])(Entity*); extern const u16 gUnk_080CD568[]; extern const u8 gUnk_080CD580[]; @@ -20,18 +20,18 @@ extern const s16 gUnk_080CD58C[]; extern void sub_080AEFB4(Entity*); void FallingBoulder(Entity* this) { - EnemyFunctionHandler(this, gUnk_080CD540); + EnemyFunctionHandler(this, FallingBoulder_Functions); } -void sub_0802C238(Entity* this) { +void FallingBoulder_OnTick(Entity* this) { gUnk_080CD558[this->action](this); } -void sub_0802C250(Entity* this) { +void FallingBoulder_OnCollision(Entity* this) { /* ... */ } -void sub_0802C254(Entity* this) { +void FallingBoulder_OnGrabbed(Entity* this) { /* ... */ } @@ -219,13 +219,13 @@ void sub_0802C62C(Entity* this) { } // clang-format off -void (*const gUnk_080CD540[])(Entity*) = { - sub_0802C238, - sub_0802C250, - sub_08001324, - sub_0804A7D4, - sub_08001242, - sub_0802C254, +void (*const FallingBoulder_Functions[])(Entity*) = { + FallingBoulder_OnTick, + FallingBoulder_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, + FallingBoulder_OnGrabbed, }; void (*const gUnk_080CD558[])(Entity*) = { diff --git a/src/enemy/fireballGuy.c b/src/enemy/fireballGuy.c index a0546fb8..df3f3686 100644 --- a/src/enemy/fireballGuy.c +++ b/src/enemy/fireballGuy.c @@ -15,28 +15,28 @@ typedef struct { extern void sub_08045524(Entity*); void sub_08045178(Entity*, Entity*, int, int); -extern void (*const gUnk_080D17E8[])(Entity*); +extern void (*const FireballGuy_Functions[])(Entity*); extern void (*const gUnk_080D1800[])(Entity*); extern u8 gUnk_080D180C[4]; // Entity count per form extern PosOffset gUnk_080D1810[4]; void FireballGuy(Entity* this) { - EnemyFunctionHandler(this, gUnk_080D17E8); + EnemyFunctionHandler(this, FireballGuy_Functions); } -void sub_080453A4(Entity* this) { +void FireballGuy_OnTick(Entity* this) { gUnk_080D1800[this->action](this); } -void sub_080453BC(Entity* this) { +void FireballGuy_OnCollision(Entity* this) { if (this->health && this->cutsceneBeh.HALF.LO != this->health) { this->action = 2; } else { - sub_0804AA30(this, gUnk_080D17E8); + EnemyFunctionHandlerAfterCollision(this, FireballGuy_Functions); } } -void nullsub_172(void) { +void FireballGuy_OnGrabbed(void) { } void sub_080453E8(Entity* this) { diff --git a/src/enemy/flyingSkull.c b/src/enemy/flyingSkull.c index 5c0fa3b0..b9529a51 100644 --- a/src/enemy/flyingSkull.c +++ b/src/enemy/flyingSkull.c @@ -14,7 +14,7 @@ extern void (*const gUnk_080012C8[])(Entity*); extern Hitbox gUnk_080FD340; // TODO should be const extern Hitbox gUnk_080FD34C; -void (*const gUnk_080CFB84[])(Entity*); +void (*const FlyingSkull_Functions[])(Entity*); void (*const gUnk_080CFB9C[])(FlyingSkullEntity*); void (*const gUnk_080CFBBC[])(FlyingSkullEntity*); void (*const gUnk_080CFBD4[])(FlyingSkullEntity*); @@ -31,15 +31,15 @@ void FlyingSkull(Entity* this) { if (index) { gUnk_080012C8[index](this); } else { - gUnk_080CFB84[GetNextFunction(this)](this); + FlyingSkull_Functions[GetNextFunction(this)](this); } } -void sub_08039BE0(FlyingSkullEntity* this) { +void FlyingSkull_OnTick(FlyingSkullEntity* this) { gUnk_080CFB9C[super->action](this); } -void sub_08039BF8(FlyingSkullEntity* this) { +void FlyingSkull_OnCollision(FlyingSkullEntity* this) { sub_0803A100(this); if (super->bitfield == 0x9d) { @@ -52,10 +52,10 @@ void sub_08039BF8(FlyingSkullEntity* this) { sub_0803A0E0(this); } - sub_0804AA30(super, gUnk_080CFB84); + EnemyFunctionHandlerAfterCollision(super, FlyingSkull_Functions); } -void sub_08039C80(FlyingSkullEntity* this) { +void FlyingSkull_OnGrabbed(FlyingSkullEntity* this) { gUnk_080CFBBC[super->subAction](this); } @@ -251,9 +251,13 @@ void sub_0803A100(FlyingSkullEntity* this) { } } -void (*const gUnk_080CFB84[])(Entity*) = { - (EntityActionPtr)sub_08039BE0, (EntityActionPtr)sub_08039BF8, sub_08001324, sub_0804A7D4, sub_08001242, - (EntityActionPtr)sub_08039C80, +void (*const FlyingSkull_Functions[])(Entity*) = { + (EntityActionPtr)FlyingSkull_OnTick, + (EntityActionPtr)FlyingSkull_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, + (EntityActionPtr)FlyingSkull_OnGrabbed, }; void (*const gUnk_080CFB9C[])(FlyingSkullEntity*) = { diff --git a/src/enemy/ghini.c b/src/enemy/ghini.c index caf0e985..4baf2fdf 100644 --- a/src/enemy/ghini.c +++ b/src/enemy/ghini.c @@ -55,7 +55,7 @@ void Ghini_OnTick(GhiniEntity* this) { sub_0803F694(this); } -void sub_0803F028(GhiniEntity* this) { +void Ghini_OnCollision(GhiniEntity* this) { if (super->action == 8 || super->action == 9) { super->animationState = 0xff; InitializeAnimation(super, (super->knockbackDirection >> 4 ^ 1) + 1); @@ -69,10 +69,10 @@ void sub_0803F028(GhiniEntity* this) { if (super->bitfield == 0x9d) { super->zVelocity = 0x18000; } - if (super->field_0x43 != 0) { + if (super->confusedTime != 0) { super->animationState = super->knockbackDirection >> 4; InitializeAnimation(super, super->animationState + 7); - sub_0804A9FC(super, 0x1c); + Create0x68FX(super, FX_STARS); } if (super->health != this->unk_7a) { this->unk_7a = super->health; @@ -82,13 +82,13 @@ void sub_0803F028(GhiniEntity* this) { InitializeAnimation(super, (super->knockbackDirection >> 4) + 7); } } - sub_0804AA30(super, Ghini_Functions); + EnemyFunctionHandlerAfterCollision(super, Ghini_Functions); } -void sub_0803F0F4(GhiniEntity* this) { +void Ghini_OnKnockback(GhiniEntity* this) { GetNextFrame(super); - sub_08001328(super); - if (((super->knockbackDuration == 0) && (super->health != 0)) && (super->field_0x43 == 0)) { + GenericKnockback2(super); + if (((super->knockbackDuration == 0) && (super->health != 0)) && (super->confusedTime == 0)) { super->animationState = 0xff; if (super->animIndex == 7 || super->animIndex == 8) { InitializeAnimation(super, ((super->animIndex - 7) ^ 1) + 1); @@ -96,15 +96,15 @@ void sub_0803F0F4(GhiniEntity* this) { } } -void sub_0803F148(GhiniEntity* this) { +void Ghini_OnConfused(GhiniEntity* this) { if (super->animIndex != 7 && super->animIndex != 8) { InitializeAnimation(super, super->animationState + 7); } - sub_08001242(super); + GenericConfused(super); if (super->z.HALF.HI == 0) { super->z.HALF.HI = 0xffff; } - if (super->field_0x43 == 0) { + if (super->confusedTime == 0) { InitializeAnimation(super, (super->animationState ^ 1) + 1); super->direction = 0xff; super->animationState = 0xff; @@ -112,7 +112,7 @@ void sub_0803F148(GhiniEntity* this) { } } -void sub_0803F1A8(GhiniEntity* this) { +void Ghini_OnGrabbed(GhiniEntity* this) { if (sub_0806F520()) { Ghini_SubActions[super->subAction](this); } else { @@ -139,7 +139,7 @@ void Ghini_SubAction2(GhiniEntity* this) { if (effect != NULL) { effect->spritePriority.b0 = 3; } - sub_0804A7D4(super); + GenericDeath(super); } } @@ -398,7 +398,8 @@ void sub_0803F738(GhiniEntity* this) { } void (*const Ghini_Functions[])(GhiniEntity*) = { - Ghini_OnTick, sub_0803F028, sub_0803F0F4, (void (*)(GhiniEntity*))sub_0804A7D4, sub_0803F148, sub_0803F1A8, + Ghini_OnTick, Ghini_OnCollision, Ghini_OnKnockback, (void (*)(GhiniEntity*))GenericDeath, + Ghini_OnConfused, Ghini_OnGrabbed, }; void (*const Ghini_Actions[])(GhiniEntity*) = { Ghini_Init, Ghini_Action1, Ghini_Action2, Ghini_Action3, Ghini_Action4, diff --git a/src/enemy/gibdo.c b/src/enemy/gibdo.c index c2fe9fd2..b05ca9de 100644 --- a/src/enemy/gibdo.c +++ b/src/enemy/gibdo.c @@ -45,12 +45,12 @@ void sub_08037A14(GibdoEntity*); extern void sub_0804A4E4(Entity*, Entity*); u32 sub_0804A044(Entity*, Entity*, u32); -void (*const gGibdo[6])(Entity*); +void (*const Gibdo_Functions[6])(Entity*); void (*const gUnk_080CF2AC[9])(GibdoEntity*); extern Entity* gUnk_020000B0; void Gibdo(Entity* this) { - EnemyFunctionHandler(this, gGibdo); + EnemyFunctionHandler(this, Gibdo_Functions); SetChildOffset(this, 0, 1, -0x15); } @@ -58,7 +58,7 @@ void Gibdo_OnTick(GibdoEntity* this) { gUnk_080CF2AC[super->action](this); } -void sub_080374A4(GibdoEntity* this) { +void Gibdo_OnCollision(GibdoEntity* this) { u8 x; if (super->bitfield == 0x87) { if (super->action == 0x6) { @@ -88,13 +88,13 @@ void sub_080374A4(GibdoEntity* this) { sub_08037A58(this); } } - if (super->field_0x43 != 0) { - sub_0804A9FC(super, 0x1c); + if (super->confusedTime != 0) { + Create0x68FX(super, FX_STARS); } - sub_0804AA30(super, gGibdo); + EnemyFunctionHandlerAfterCollision(super, Gibdo_Functions); } -void nullsub_162(GibdoEntity* this) { +void Gibdo_OnGrabbed(GibdoEntity* this) { } void sub_08037558(GibdoEntity* this) { @@ -436,9 +436,13 @@ void Gibdo_MoveObjectsToStalfos(GibdoEntity* this, Entity* that) { } } -void (*const gGibdo[6])(Entity*) = { - (EntityActionPtr)Gibdo_OnTick, (EntityActionPtr)sub_080374A4, sub_08001324, sub_0804A7D4, sub_08001242, - (EntityActionPtr)nullsub_162, +void (*const Gibdo_Functions[6])(Entity*) = { + (EntityActionPtr)Gibdo_OnTick, + (EntityActionPtr)Gibdo_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, + (EntityActionPtr)Gibdo_OnGrabbed, }; void (*const gUnk_080CF2AC[9])(GibdoEntity*) = { diff --git a/src/enemy/gleerok.c b/src/enemy/gleerok.c index f7170f8e..bd1584b4 100644 --- a/src/enemy/gleerok.c +++ b/src/enemy/gleerok.c @@ -34,7 +34,7 @@ typedef struct { Gleerok_HeapStruct* unk_84; } GleerokEntity; -extern void (*const gUnk_080CD748[])(Entity*); +extern void (*const Gleerok_Functions[])(Entity*); extern void (*const gUnk_080CD75C[])(GleerokEntity*); extern void (*const gUnk_080CD7B8[])(GleerokEntity*); extern void (*const gUnk_080CD7E4[])(GleerokEntity*); @@ -69,10 +69,10 @@ extern bool32 sub_0802EA88(Gleerok_HeapStruct* param_1); extern bool32 sub_0802E768(Gleerok_HeapStruct* param_1); void Gleerok(Entity* this) { - gUnk_080CD748[GetNextFunction(this)](this); + Gleerok_Functions[GetNextFunction(this)](this); } -void sub_0802D034(GleerokEntity* this) { +void Gleerok_OnDeath(GleerokEntity* this) { sub_08078B48(); switch (super->type) { @@ -107,7 +107,7 @@ void sub_0802D034(GleerokEntity* this) { break; case 1: SoundReq(SFX_BOSS_DIE); - sub_0804A7D4(super); + GenericDeath(super); break; case 0: gPlayerState.field_0x14 = 1; @@ -237,7 +237,7 @@ NONMATCH("asm/non_matching/gleerok/sub_0802D33C.inc", void sub_0802D33C(GleerokE } END_NONMATCH -void sub_0802D394(GleerokEntity* this) { +void Gleerok_OnTick(GleerokEntity* this) { gUnk_080CD7B8[super->action](this); super->spriteRendering.b3 = 3; } @@ -273,7 +273,7 @@ NONMATCH("asm/non_matching/gleerok/sub_0802D3B8.inc", void sub_0802D3B8(GleerokE heap = this->unk_84; if (heap == NULL) { - sub_0804A7D4(super); + GenericDeath(super); DeleteThisEntity(); } diff --git a/src/enemy/gyorgChild.c b/src/enemy/gyorgChild.c index e260fb25..91b6bf41 100644 --- a/src/enemy/gyorgChild.c +++ b/src/enemy/gyorgChild.c @@ -5,17 +5,17 @@ #include "functions.h" #include "enemy/gyorg.h" -void sub_08048684(GyorgChildEntity*); -void sub_0804869C(GyorgChildEntity*); -void sub_080486AC(GyorgChildEntity*); +void GyorgChild_OnTick(GyorgChildEntity*); +void GyorgChild_OnCollision(GyorgChildEntity*); +void GyorgChild_OnGrabbed(GyorgChildEntity*); -void (*const gUnk_080D1E6C[])(GyorgChildEntity*) = { - sub_08048684, - sub_0804869C, - (void (*)(GyorgChildEntity*))sub_08001324, - (void (*)(GyorgChildEntity*))sub_0804A7D4, - (void (*)(GyorgChildEntity*))sub_08001242, - sub_080486AC, +void (*const GyorgChild_Functions[])(GyorgChildEntity*) = { + GyorgChild_OnTick, + GyorgChild_OnCollision, + (void (*)(GyorgChildEntity*))GenericKnockback, + (void (*)(GyorgChildEntity*))GenericDeath, + (void (*)(GyorgChildEntity*))GenericConfused, + GyorgChild_OnGrabbed, }; void GyorgChild(Entity* this) { @@ -24,7 +24,7 @@ void GyorgChild(Entity* this) { this->health = 0; this->collisionLayer = 2; } - gUnk_080D1E6C[GetNextFunction(this)]((GyorgChildEntity*)this); + GyorgChild_Functions[GetNextFunction(this)]((GyorgChildEntity*)this); } void sub_080486F4(GyorgChildEntity*); @@ -32,7 +32,7 @@ void sub_0804877C(GyorgChildEntity*); void sub_0804882C(GyorgChildEntity*); void sub_08048904(GyorgChildEntity*); -void sub_08048684(GyorgChildEntity* this) { +void GyorgChild_OnTick(GyorgChildEntity* this) { static void (*const gUnk_080D1E84[])(GyorgChildEntity*) = { sub_080486F4, sub_0804877C, @@ -42,15 +42,15 @@ void sub_08048684(GyorgChildEntity* this) { gUnk_080D1E84[super->action](this); } -void sub_0804869C(GyorgChildEntity* this) { - sub_0804AA30(super, gUnk_080D1E6C); +void GyorgChild_OnCollision(GyorgChildEntity* this) { + EnemyFunctionHandlerAfterCollision(super, GyorgChild_Functions); } void sub_080486D0(GyorgChildEntity*); void sub_080486D8(GyorgChildEntity*); void sub_080486E0(GyorgChildEntity*); -void sub_080486AC(GyorgChildEntity* this) { +void GyorgChild_OnGrabbed(GyorgChildEntity* this) { static void (*const gUnk_080D1E94[])(GyorgChildEntity*) = { sub_080486D0, sub_080486D8, @@ -71,7 +71,7 @@ void sub_080486D8(GyorgChildEntity* this) { void sub_080486E0(GyorgChildEntity* this) { if (sub_0806F3E4(super)) { - sub_0804A7D4(super); + GenericDeath(super); } } diff --git a/src/enemy/gyorgFemaleEye.c b/src/enemy/gyorgFemaleEye.c index a653de38..89d8207a 100644 --- a/src/enemy/gyorgFemaleEye.c +++ b/src/enemy/gyorgFemaleEye.c @@ -6,8 +6,8 @@ #include "functions.h" #include "enemy/gyorg.h" -void sub_080489B4(GyorgFemaleEyeEntity*); -void sub_080489CC(GyorgFemaleEyeEntity*); +void GyorgFemaleEye_OnTick(GyorgFemaleEyeEntity*); +void GyorgFemaleEye_OnCollision(GyorgFemaleEyeEntity*); void sub_08048AF0(GyorgFemaleEyeEntity*); void sub_08048B2C(GyorgFemaleEyeEntity*); @@ -18,23 +18,23 @@ void sub_08048CEC(GyorgFemaleEyeEntity*); void sub_08048D20(GyorgFemaleEyeEntity*); u32 sub_08048D70(GyorgFemaleEntity*); -void (*const gUnk_080D1F64[])(GyorgFemaleEyeEntity*) = { - sub_080489B4, - sub_080489CC, - (void (*)(GyorgFemaleEyeEntity*))sub_08001324, - (void (*)(GyorgFemaleEyeEntity*))sub_0804A7D4, - (void (*)(GyorgFemaleEyeEntity*))sub_08001242, - sub_080489B4, +void (*const GyorgFemaleEye_Functions[])(GyorgFemaleEyeEntity*) = { + GyorgFemaleEye_OnTick, + GyorgFemaleEye_OnCollision, + (void (*)(GyorgFemaleEyeEntity*))GenericKnockback, + (void (*)(GyorgFemaleEyeEntity*))GenericDeath, + (void (*)(GyorgFemaleEyeEntity*))GenericConfused, + GyorgFemaleEye_OnTick, }; void GyorgFemaleEye(Entity* this) { if (this->parent->next == NULL) { DeleteThisEntity(); } - gUnk_080D1F64[GetNextFunction(this)]((GyorgFemaleEyeEntity*)this); + GyorgFemaleEye_Functions[GetNextFunction(this)]((GyorgFemaleEyeEntity*)this); } -void sub_080489B4(GyorgFemaleEyeEntity* this) { +void GyorgFemaleEye_OnTick(GyorgFemaleEyeEntity* this) { static void (*const gUnk_080D1F7C[])(GyorgFemaleEyeEntity*) = { sub_08048AF0, sub_08048B2C, sub_08048B84, sub_08048BB0, sub_08048CEC, }; @@ -62,7 +62,7 @@ const u8 gUnk_080D2030[] = { 2, 2, 3, 3, 2, 2, 3, 3, 6, 6, 7, 7, 6, 6, 7, 7, 11, 11, 10, 10, 11, 11, 10, 10, 15, 15, 14, 14, 15, 15, 14, 14, }; -void sub_080489CC(GyorgFemaleEyeEntity* this) { +void GyorgFemaleEye_OnCollision(GyorgFemaleEyeEntity* this) { GyorgFemaleEntity* parent; if (super->health != 0xFF) { parent = (GyorgFemaleEntity*)super->parent; @@ -91,7 +91,7 @@ void sub_080489CC(GyorgFemaleEyeEntity* this) { #endif } super->health = 0xFF; - sub_0804AA30(super, (void (*const*)(Entity*))gUnk_080D1F64); + EnemyFunctionHandlerAfterCollision(super, (void (*const*)(Entity*))GyorgFemaleEye_Functions); } void sub_08048AF0(GyorgFemaleEyeEntity* this) { diff --git a/src/enemy/gyorgMaleEye.c b/src/enemy/gyorgMaleEye.c index 6f87fe4c..a7586c44 100644 --- a/src/enemy/gyorgMaleEye.c +++ b/src/enemy/gyorgMaleEye.c @@ -40,7 +40,7 @@ void GyorgMaleEye_OnTick(GyorgMaleEyeEntity* this) { GyorgMaleEye_Actions[super->action](this); } -void sub_08048E1C(GyorgMaleEyeEntity* this) { +void GyorgMaleEye_OnCollision(GyorgMaleEyeEntity* this) { u32 tmp; Entity* entity; @@ -66,7 +66,7 @@ void sub_08048E1C(GyorgMaleEyeEntity* this) { } super->health = 0xff; } - sub_0804AA30(super, GyorgMaleEye_Functions); + EnemyFunctionHandlerAfterCollision(super, GyorgMaleEye_Functions); } void GyorgMaleEye_Init(GyorgMaleEyeEntity* this) { @@ -114,10 +114,10 @@ void sub_08048F74(GyorgMaleEyeEntity* this) { void (*const GyorgMaleEye_Functions[])(GyorgMaleEyeEntity*) = { GyorgMaleEye_OnTick, - sub_08048E1C, - (void (*)(GyorgMaleEyeEntity*))sub_08001324, - (void (*)(GyorgMaleEyeEntity*))sub_0804A7D4, - (void (*)(GyorgMaleEyeEntity*))sub_08001242, + GyorgMaleEye_OnCollision, + (void (*)(GyorgMaleEyeEntity*))GenericKnockback, + (void (*)(GyorgMaleEyeEntity*))GenericDeath, + (void (*)(GyorgMaleEyeEntity*))GenericConfused, GyorgMaleEye_OnTick, }; void (*const GyorgMaleEye_Actions[])(GyorgMaleEyeEntity*) = { diff --git a/src/enemy/hangingSeed.c b/src/enemy/hangingSeed.c index 4839642f..51b119c7 100644 --- a/src/enemy/hangingSeed.c +++ b/src/enemy/hangingSeed.c @@ -9,25 +9,25 @@ #include "enemy.h" #include "functions.h" -extern void (*const gHangingSeedFunctions[])(Entity*); +extern void (*const HangingSeed_Functions[])(Entity*); extern void (*const gUnk_080CB588[])(Entity*); void HangingSeed(Entity* this) { - EnemyFunctionHandler(this, gHangingSeedFunctions); + EnemyFunctionHandler(this, HangingSeed_Functions); } void HangingSeed_OnTick(Entity* this) { gUnk_080CB588[this->action](this); } -void sub_080216FC(Entity* this) { +void HangingSeed_OnCollision(Entity* this) { if (this->bitfield & 0x80) { CreateFx(this, FX_BUSH, 0x80); DeleteThisEntity(); } } -void nullsub_7(Entity* this) { +void HangingSeed_OnGrabbed(Entity* this) { /* ... */ } @@ -44,13 +44,13 @@ void HangingSeed_Hang(Entity* this) { } // clang-format off -void (*const gHangingSeedFunctions[])(Entity*) = { +void (*const HangingSeed_Functions[])(Entity*) = { HangingSeed_OnTick, - sub_080216FC, - sub_08001324, - sub_0804A7D4, - sub_08001242, - nullsub_7, + HangingSeed_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, + HangingSeed_OnGrabbed, }; void (*const gUnk_080CB588[])(Entity*) = { diff --git a/src/enemy/helmasaur.c b/src/enemy/helmasaur.c index 292d9b0b..8abdbdb3 100644 --- a/src/enemy/helmasaur.c +++ b/src/enemy/helmasaur.c @@ -23,7 +23,7 @@ bool32 sub_0802C06C(Entity*); void sub_0802C1CC(Entity*); bool32 sub_0802C0E8(Entity*); -extern void (*const gUnk_080CD3E4[])(Entity*); +extern void (*const Helmasaur_Functions[])(Entity*); extern void (*const gUnk_080CD3FC[])(Entity*); extern void (*const gUnk_080CD408[])(Entity*); extern void (*const gUnk_080CD42C[])(Entity*); @@ -34,18 +34,18 @@ extern const s8 gUnk_080CD464[]; void Helmasaur(Entity* this) { if (this->type == 0) { - EnemyFunctionHandler(this, gUnk_080CD3E4); + EnemyFunctionHandler(this, Helmasaur_Functions); SetChildOffset(this, 0, 1, -0x10); } else { gUnk_080CD3FC[this->action](this); } } -void sub_0802BBAC(Entity* this) { +void Helmasaur_OnTick(Entity* this) { gUnk_080CD408[this->action](this); } -void sub_0802BBC4(Entity* this) { +void Helmasaur_OnCollision(Entity* this) { if (this->hitType != 0x19) { switch (this->bitfield & 0x7f) { case 0: @@ -58,14 +58,14 @@ void sub_0802BBC4(Entity* this) { break; } } - if (this->field_0x43 != 0) { - sub_0804A9FC(this, 0x1c); + if (this->confusedTime != 0) { + Create0x68FX(this, FX_STARS); } - sub_0804AA30(this, gUnk_080CD3E4); + EnemyFunctionHandlerAfterCollision(this, Helmasaur_Functions); } -void sub_0802BC20(Entity* this) { +void Helmasaur_OnGrabbed(Entity* this) { if (this->hitType != 0x19) { if (sub_0806F520(this)) { gUnk_080CD42C[this->subAction](this); @@ -380,13 +380,13 @@ void sub_0802C218(Entity* this) { } // clang-format off -void (*const gUnk_080CD3E4[])(Entity*) = { - sub_0802BBAC, - sub_0802BBC4, - sub_08001324, - sub_0804A7D4, - sub_08001242, - sub_0802BC20, +void (*const Helmasaur_Functions[])(Entity*) = { + Helmasaur_OnTick, + Helmasaur_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, + Helmasaur_OnGrabbed, }; void (*const gUnk_080CD3FC[])(Entity*) = { diff --git a/src/enemy/keaton.c b/src/enemy/keaton.c index df262f25..2e13814b 100644 --- a/src/enemy/keaton.c +++ b/src/enemy/keaton.c @@ -10,7 +10,7 @@ extern Entity* gUnk_020000B0; -extern void (*const gUnk_080CE7B0[])(Entity*); +extern void (*const Keaton_Functions[])(Entity*); extern void (*const gUnk_080CE7C8[])(Entity*); extern u8 gUnk_080CE7E0[]; extern u16 gUnk_080CE7F0[]; @@ -29,15 +29,15 @@ void sub_080327C8(Entity* this); void sub_080327E0(Entity* this); void Keaton(Entity* this) { - EnemyFunctionHandler(this, gUnk_080CE7B0); + EnemyFunctionHandler(this, Keaton_Functions); SetChildOffset(this, 0, 1, -18); } -void sub_080323DC(Entity* this) { +void Keaton_OnTick(Entity* this) { gUnk_080CE7C8[this->action](this); } -void sub_080323F4(Entity* this) { +void Keaton_OnCollision(Entity* this) { u32 var; if (this->action != 3 && this->action != 4) { @@ -46,17 +46,17 @@ void sub_080323F4(Entity* this) { this->direction = DirectionTurnAround(DirectionRoundUp(this->knockbackDirection)); InitAnimationForceUpdate(this, this->direction >> 3); } else if (this->bitfield == 0xCC) { - if (this->field_0x43 == 0) { + if (this->confusedTime == 0) { sub_0803275C(this); } } - if (this->field_0x43 != 0) { - sub_0804A9FC(this, 0x1C); + if (this->confusedTime != 0) { + Create0x68FX(this, FX_STARS); } - sub_0804AA30(this, gUnk_080CE7B0); + EnemyFunctionHandlerAfterCollision(this, Keaton_Functions); } -void nullsub_155(Entity* this) { +void Keaton_OnGrabbed(Entity* this) { } void sub_08032468(Entity* this) { diff --git a/src/enemy/keese.c b/src/enemy/keese.c index 1d276078..f555faa7 100644 --- a/src/enemy/keese.c +++ b/src/enemy/keese.c @@ -8,12 +8,12 @@ #include "enemy.h" #include "functions.h" -extern void sub_08001328(Entity*); +extern void GenericKnockback2(Entity*); extern void Keese_StartFly(Entity*); extern void sub_080AEFB4(Entity*); extern void sub_08021F24(Entity*); -extern void (*const gKeeseFunctions[])(Entity*); +extern void (*const Keese_Functions[])(Entity*); extern void (*const gKeeseActions[])(Entity*); extern void (*const gUnk_080CB6C4[])(Entity*); @@ -27,18 +27,18 @@ enum { }; void Keese(Entity* this) { - gKeeseFunctions[GetNextFunction(this)](this); + Keese_Functions[GetNextFunction(this)](this); } void Keese_OnTick(Entity* this) { gKeeseActions[this->action](this); } -void sub_08021d98(Entity* this) { - sub_0804AA30(this, gKeeseFunctions); +void Keese_OnCollision(Entity* this) { + EnemyFunctionHandlerAfterCollision(this, Keese_Functions); } -void sub_08021DA8(Entity* this) { +void Keese_OnGrabbed(Entity* this) { if (sub_0806F520(this)) { gUnk_080CB6C4[this->subAction](this); } @@ -54,7 +54,7 @@ void sub_08021DD4(Entity* this) { void sub_08021DDC(Entity* this) { if (sub_0806F3E4(this)) { - sub_0804A7D4(this); + GenericDeath(this); } } @@ -131,13 +131,13 @@ void sub_08021F24(Entity* this) { } // clang-format off -void (*const gKeeseFunctions[])(Entity*) = { +void (*const Keese_Functions[])(Entity*) = { Keese_OnTick, - sub_08021d98, - sub_08001328, - sub_0804A7D4, - sub_08001242, - sub_08021DA8, + Keese_OnCollision, + GenericKnockback2, + GenericDeath, + GenericConfused, + Keese_OnGrabbed, }; void (*const gKeeseActions[])(Entity*) = { diff --git a/src/enemy/lakitu.c b/src/enemy/lakitu.c index b9d72989..837dcd39 100644 --- a/src/enemy/lakitu.c +++ b/src/enemy/lakitu.c @@ -38,18 +38,18 @@ typedef struct { } PACKED OffsetCoords; // Variables -extern void (*const gUnk_080D0110[])(Entity*); +extern void (*const Lakitu_Functions[])(Entity*); extern void (*const gUnk_080D0128[])(Entity*); extern void (*const gUnk_080D0148[])(Entity*); extern const OffsetCoords gUnk_080D0154[]; void Lakitu(Entity* this) { - EnemyFunctionHandler(this, gUnk_080D0110); + EnemyFunctionHandler(this, Lakitu_Functions); SetChildOffset(this, 0, 1, -16); } -void Lakitu_DoAction(Entity* this) { +void Lakitu_OnTick(Entity* this) { if (this->action != 0 && this->action != 7) { sub_0803CAD0(this); } @@ -57,7 +57,7 @@ void Lakitu_DoAction(Entity* this) { LakituActionFuncs[this->action](this); } -void sub_0803C784(Entity* this) { +void Lakitu_OnCollision(Entity* this) { if ((this->bitfield & 0x7f) == 0x1d) { this->zVelocity = Q_16_16(2.0); @@ -87,14 +87,14 @@ void sub_0803C784(Entity* this) { } } - if (this->field_0x43) { - sub_0804A9FC(this, 0x1c); + if (this->confusedTime) { + Create0x68FX(this, FX_STARS); } - sub_0804AA30(this, gUnk_080D0110); + EnemyFunctionHandlerAfterCollision(this, Lakitu_Functions); } -void sub_0803C820(Entity* this) { +void Lakitu_OnGrabbed(Entity* this) { if (sub_0806F520(this)) { gUnk_080D0148[this->subAction](this); } @@ -393,8 +393,8 @@ void sub_0803CC08(Entity* this) { DeleteEntity(cloud); } -void (*const gUnk_080D0110[])(Entity*) = { - Lakitu_DoAction, sub_0803C784, sub_08001324, sub_0804A7D4, sub_08001242, sub_0803C820, +void (*const Lakitu_Functions[])(Entity*) = { + Lakitu_OnTick, Lakitu_OnCollision, GenericKnockback, GenericDeath, GenericConfused, Lakitu_OnGrabbed, }; void (*const LakituActionFuncs[])(Entity*) = { diff --git a/src/enemy/lakituCloud.c b/src/enemy/lakituCloud.c index 3cf330c2..48605900 100644 --- a/src/enemy/lakituCloud.c +++ b/src/enemy/lakituCloud.c @@ -15,7 +15,7 @@ extern u32 GetNextFunction(Entity*); -extern void (*const gUnk_080D0418[6])(Entity*); +extern void (*const LakituCloud_Functions[6])(Entity*); extern void (*const gUnk_080D0430[3])(Entity*); extern void (*const gUnk_080D043C[3])(Entity*); @@ -26,19 +26,19 @@ extern void sub_08079D84(void); extern void sub_080A2CC0(Entity*, Entity**, u16*); void LakituCloud(Entity* this) { - gUnk_080D0418[GetNextFunction(this)](this); + LakituCloud_Functions[GetNextFunction(this)](this); } -void sub_0803CCD4(Entity* this) { +void LakituCloud_OnTick(Entity* this) { gUnk_080D0430[this->action](this); } -void sub_0803CCEC(Entity* this) { +void LakituCloud_OnKnockback(Entity* this) { this->knockbackDuration = 0; - sub_0803CCD4(this); + LakituCloud_OnTick(this); } -void sub_0803CCFC(Entity* this) { +void LakituCloud_OnGrabbed(Entity* this) { if (sub_0806F520(this) == 0) { if (this->subAction == 2) { sub_0803CE3C(this); @@ -153,8 +153,9 @@ void sub_0803CE3C(Entity* this) { sub_0803CE14(this); } -void (*const gUnk_080D0418[])(Entity*) = { - sub_0803CCD4, sub_0803CCD4, sub_0803CCEC, sub_0804A7D4, sub_08001242, sub_0803CCFC, +void (*const LakituCloud_Functions[])(Entity*) = { + LakituCloud_OnTick, LakituCloud_OnTick, LakituCloud_OnKnockback, + GenericDeath, GenericConfused, LakituCloud_OnGrabbed, }; void (*const gUnk_080D0430[])(Entity*) = { diff --git a/src/enemy/leever.c b/src/enemy/leever.c index df9542f0..405cf0dc 100644 --- a/src/enemy/leever.c +++ b/src/enemy/leever.c @@ -16,7 +16,7 @@ extern Entity* gUnk_020000B0; bool32 Leever_PlayerInRange(Entity*, s32); void Leever_Move(Entity*); -extern void (*const gLeeverFunctions[])(Entity*); +extern void (*const Leever_Functions[])(Entity*); extern void (*const gLeeverActions[])(Entity*); extern const s8 gLeeverDrift[]; extern const u16 gUnk_080CA4CA[]; @@ -33,7 +33,7 @@ enum { }; void Leever(Entity* this) { - EnemyFunctionHandler(this, gLeeverFunctions); + EnemyFunctionHandler(this, Leever_Functions); SetChildOffset(this, 0, 1, -0x10); } @@ -41,22 +41,22 @@ void Leever_OnTick(Entity* this) { gLeeverActions[this->action](this); } -void sub_0801FC40(Entity* this) { +void Leever_OnCollision(Entity* this) { if (this->bitfield == 0x80) { if (this->action == 3) { this->field_0x74.HWORD = 1; } } else { - if (this->field_0x43 != 0) { - sub_0804A9FC(this, 0x1c); + if (this->confusedTime != 0) { + Create0x68FX(this, FX_STARS); } } - sub_0804AA30(this, gLeeverFunctions); + EnemyFunctionHandlerAfterCollision(this, Leever_Functions); } -void sub_0801FC7C(Entity* this) { +void Leever_OnDeath(Entity* this) { if (this->type == LeeverForm_Red) { - sub_0804A7D4(this); + GenericDeath(this); } else { CreateDeathFx(this, 0xf1, 0); } @@ -184,12 +184,12 @@ void Leever_Move(Entity* this) { } // clang-format off -void (*const gLeeverFunctions[])(Entity*) = { +void (*const Leever_Functions[])(Entity*) = { Leever_OnTick, - sub_0801FC40, - sub_08001324, - sub_0801FC7C, - sub_08001242, + Leever_OnCollision, + GenericKnockback, + Leever_OnDeath, + GenericConfused, Leever_OnTick, }; diff --git a/src/enemy/likeLike.c b/src/enemy/likeLike.c index 8c39b720..97fbdb3d 100644 --- a/src/enemy/likeLike.c +++ b/src/enemy/likeLike.c @@ -19,19 +19,19 @@ void sub_080281A0(Entity*); bool32 sub_080281E0(u32); void sub_08028224(u32); -extern void (*const gUnk_080CC6FC[])(Entity*); +extern void (*const LikeLike_Functions[])(Entity*); extern void (*const gUnk_080CC714[])(Entity*); void LikeLike(Entity* this) { - EnemyFunctionHandler(this, gUnk_080CC6FC); + EnemyFunctionHandler(this, LikeLike_Functions); SetChildOffset(this, 0, 1, -0x10); } -void sub_08027D8C(Entity* this) { +void LikeLike_OnTick(Entity* this) { gUnk_080CC714[this->action](this); } -void sub_08027DA4(Entity* this) { +void LikeLike_OnCollision(Entity* this) { if (this->hitType == 1) { this->action = 3; COLLISION_OFF(this); @@ -55,22 +55,22 @@ void sub_08027DA4(Entity* this) { this->actionDelay = 0x20; } - if (this->field_0x43) { - sub_0804A9FC(this, 0x1c); + if (this->confusedTime) { + Create0x68FX(this, FX_STARS); } - sub_0804AA30(this, gUnk_080CC6FC); + EnemyFunctionHandlerAfterCollision(this, LikeLike_Functions); } -void sub_08027E40(Entity* this) { +void LikeLike_OnDeath(Entity* this) { if (this->actionDelay == 2 && this->field_0x80.HALF.LO != 0xff) { SetDefaultPriority(this, PRIO_NO_BLOCK); sub_08028224(this->field_0x80.HALF.LO); } - sub_0804A7D4(this); + GenericDeath(this); } -void nullsub_139(Entity* this) { +void LikeLike_OnGrabbed(Entity* this) { /* ... */ } @@ -271,8 +271,8 @@ void sub_08028224(u32 param_1) { MessageFromTarget(0x579); } -void (*const gUnk_080CC6FC[])(Entity*) = { - sub_08027D8C, sub_08027DA4, sub_08001324, sub_08027E40, sub_08001242, nullsub_139, +void (*const LikeLike_Functions[])(Entity*) = { + LikeLike_OnTick, LikeLike_OnCollision, GenericKnockback, LikeLike_OnDeath, GenericConfused, LikeLike_OnGrabbed, }; void (*const gUnk_080CC714[])(Entity*) = { diff --git a/src/enemy/madderpillar.c b/src/enemy/madderpillar.c index e68df9fd..0ce445ff 100644 --- a/src/enemy/madderpillar.c +++ b/src/enemy/madderpillar.c @@ -23,7 +23,7 @@ void sub_08029FB4(Entity*, u32, u32); void sub_0802A0F8(Entity*); extern void (*const gUnk_080CCD44[])(Entity*); -extern void (*const gUnk_080CCD60[])(Entity*); +extern void (*const Madderpillar_Functions[])(Entity*); extern void (*const gUnk_080CCD78[])(Entity*); extern void (*const gUnk_080CCD88[])(Entity*); extern const u8 gUnk_080CCDA0[]; @@ -36,14 +36,14 @@ void Madderpillar(Entity* this) { } void sub_08029870(Entity* this) { - gUnk_080CCD60[GetNextFunction(this)](this); + Madderpillar_Functions[GetNextFunction(this)](this); } -void sub_0802988C(Entity* this) { +void Madderpillar_OnTick(Entity* this) { gUnk_080CCD78[this->action](this); } -void sub_080298A4(Entity* this) { +void Madderpillar_OnCollision(Entity* this) { if (this->action == 1) { switch (this->bitfield & 0x7f) { case 0: @@ -67,18 +67,18 @@ void sub_080298A4(Entity* this) { } } - sub_0804AA30(this, gUnk_080CCD60); + EnemyFunctionHandlerAfterCollision(this, Madderpillar_Functions); } -void sub_08029980(Entity* this) { +void Madderpillar_OnDeath(Entity* this) { if (this->field_0xf) { this->field_0xf--; } else { - sub_0804A7D4(this); + GenericDeath(this); } } -void nullsub_14(Entity* this) { +void Madderpillar_OnGrabbed(Entity* this) { /* ... */ } @@ -522,13 +522,13 @@ void (*const gUnk_080CCD44[])(Entity*) = { sub_08029C98, }; -void (*const gUnk_080CCD60[])(Entity*) = { - sub_0802988C, - sub_080298A4, - sub_0802988C, - sub_08029980, - sub_08001242, - nullsub_14, +void (*const Madderpillar_Functions[])(Entity*) = { + Madderpillar_OnTick, + Madderpillar_OnCollision, + Madderpillar_OnTick, + Madderpillar_OnDeath, + GenericConfused, + Madderpillar_OnGrabbed, }; void (*const gUnk_080CCD78[])(Entity*) = { diff --git a/src/enemy/mazaalBracelet.c b/src/enemy/mazaalBracelet.c index dd687ac0..8f9a317d 100644 --- a/src/enemy/mazaalBracelet.c +++ b/src/enemy/mazaalBracelet.c @@ -29,9 +29,9 @@ void sub_0803BA8C(Entity*, u32); void sub_0803B724(Entity*); extern void SoundReqClipped(Entity*, u32); -void sub_0803A170(Entity*); -void sub_0803A188(Entity*); -void nullsub_167(Entity*); +void MazaalBracelet_OnTick(Entity*); +void MazaalBracelet_OnCollision(Entity*); +void MazaalBracelet_OnGrabbed(Entity*); void sub_0803A254(Entity*); void sub_0803B8F8(Entity*); @@ -98,8 +98,9 @@ extern Hitbox gUnk_080FD364; extern Hitbox gUnk_080FD36C; extern Hitbox gUnk_080FD374; -void (*const gUnk_080CFC14[])(Entity*) = { sub_0803A170, sub_0803A188, sub_08001324, - sub_0804A7D4, sub_08001242, nullsub_167 }; +void (*const MazaalBracelet_Functions[])(Entity*) = { MazaalBracelet_OnTick, MazaalBracelet_OnCollision, + GenericKnockback, GenericDeath, + GenericConfused, MazaalBracelet_OnGrabbed }; void (*const gUnk_080CFC2C[])(Entity*) = { sub_0803A254, sub_0803A254, sub_0803B8F8, sub_0803B8F8 }; @@ -130,14 +131,14 @@ const u16 gUnk_080CFD5C[] = { 0xe7, 0xe8 }; extern s8 gUnk_080CED6C[8]; void MazaalBracelet(Entity* this) { - gUnk_080CFC14[GetNextFunction(this)](this); + MazaalBracelet_Functions[GetNextFunction(this)](this); } -void sub_0803A170(Entity* this) { +void MazaalBracelet_OnTick(Entity* this) { gUnk_080CFC2C[this->type](this); } -void sub_0803A188(Entity* this) { +void MazaalBracelet_OnCollision(Entity* this) { Entity* ent; if (this->type < 2) { @@ -164,10 +165,10 @@ void sub_0803A188(Entity* this) { SoundReq(SFX_BOSS_HIT); } } - sub_0804AA30(this, gUnk_080CFC14); + EnemyFunctionHandlerAfterCollision(this, MazaalBracelet_Functions); } -void nullsub_167(Entity* this) { +void MazaalBracelet_OnGrabbed(Entity* this) { } void sub_0803A254(Entity* this) { diff --git a/src/enemy/mazaalHead.c b/src/enemy/mazaalHead.c index a2432d0d..add39f8b 100644 --- a/src/enemy/mazaalHead.c +++ b/src/enemy/mazaalHead.c @@ -34,9 +34,9 @@ void sub_0803467C(Entity*); u32 sub_080348A4(Entity*, Entity*, u32); void sub_08034C00(Entity*); -void sub_08033EF0(Entity* this); -void sub_08033F08(Entity* this); -void nullsub_160(Entity* this); +void MazaalHead_OnTick(Entity* this); +void MazaalHead_OnCollision(Entity* this); +void MazaalHead_OnGrabbed(Entity* this); void sub_08033F1C(Entity* this); void sub_08034A84(Entity* this); void sub_08034AC4(Entity* this); @@ -67,8 +67,8 @@ void sub_08034B0C(Entity* this); void sub_08034B38(Entity* this); void sub_08034BA0(Entity* this); -void (*const gUnk_080CEC88[])(Entity*) = { - sub_08033EF0, sub_08033F08, sub_08001324, sub_0804A7D4, sub_08001242, nullsub_160, +void (*const MazaalHead_Functions[])(Entity*) = { + MazaalHead_OnTick, MazaalHead_OnCollision, GenericKnockback, GenericDeath, GenericConfused, MazaalHead_OnGrabbed, }; void (*const gUnk_080CECA0[])(Entity*) = { sub_08033F1C, sub_08034A84, sub_08034AC4, sub_08034AC4, sub_08034BC8, @@ -102,18 +102,18 @@ const ScreenTransitionData gUnk_080CED88 = { 1, { 0, 0, 0, 0 }, 0x88, 0xf8, 0, 0 const ScreenTransitionData gUnk_080CED9C = { 1, { 0, 0, 0, 0 }, 0x88, 0xf8, 0, 0x5a, 0, 1, 0, 0, 0 }; void MazaalHead(Entity* this) { - gUnk_080CEC88[GetNextFunction(this)](this); + MazaalHead_Functions[GetNextFunction(this)](this); } -void sub_08033EF0(Entity* this) { +void MazaalHead_OnTick(Entity* this) { gUnk_080CECA0[this->type](this); } -void sub_08033F08(Entity* this) { - sub_0804AA30(this, gUnk_080CEC88); +void MazaalHead_OnCollision(Entity* this) { + EnemyFunctionHandlerAfterCollision(this, MazaalHead_Functions); } -void nullsub_160(Entity* this) { +void MazaalHead_OnGrabbed(Entity* this) { } void sub_08033F1C(Entity* this) { diff --git a/src/enemy/mazaalMacro.c b/src/enemy/mazaalMacro.c index aa47e78b..31de7ed6 100644 --- a/src/enemy/mazaalMacro.c +++ b/src/enemy/mazaalMacro.c @@ -21,9 +21,9 @@ void sub_08034F70(Entity*); void sub_08035120(Entity*); void sub_08035050(Entity*); -void sub_08034C7C(Entity* this); -void sub_08034CA4(Entity* this); -void sub_08034CBC(Entity* this); +void MazaalMacro_OnTick(Entity* this); +void MazaalMacro_OnCollision(Entity* this); +void MazaalMacro_OnDeath(Entity* this); void sub_08034CC4(Entity* this); void sub_08034D4C(Entity* this); void sub_08034DC8(Entity* this); @@ -34,8 +34,8 @@ void sub_08034ED8(Entity* this); void sub_08034EE4(Entity* this); void sub_08034F58(Entity* this); -void (*const gUnk_080CEE90[])(Entity*) = { - sub_08034C7C, sub_08034CA4, sub_08001324, sub_08034CBC, sub_08001242, +void (*const MazaalMacro_Functions[])(Entity*) = { + MazaalMacro_OnTick, MazaalMacro_OnCollision, GenericKnockback, MazaalMacro_OnDeath, GenericConfused, }; void (*const gUnk_080CEEA4[])(Entity*) = { sub_08034CC4, @@ -54,10 +54,10 @@ const s16 gUnk_080CEED8[] = { -0x82, -0x81, -0x80, -0x7f, -0x7e, -0x42, -0x41, - extern const ScreenTransitionData gUnk_0813ABA8; void MazaalMacro(Entity* this) { - gUnk_080CEE90[GetNextFunction(this)](this); + MazaalMacro_Functions[GetNextFunction(this)](this); } -void sub_08034C7C(Entity* this) { +void MazaalMacro_OnTick(Entity* this) { if (this->type != 2) { gUnk_080CEEA4[this->action](this); } else { @@ -65,13 +65,13 @@ void sub_08034C7C(Entity* this) { } } -void sub_08034CA4(Entity* this) { +void MazaalMacro_OnCollision(Entity* this) { sub_08034FA0(this); - sub_0804AA30(this, gUnk_080CEE90); + EnemyFunctionHandlerAfterCollision(this, MazaalMacro_Functions); } -void sub_08034CBC(Entity* this) { - sub_0804A7D4(this); +void MazaalMacro_OnDeath(Entity* this) { + GenericDeath(this); } void sub_08034CC4(Entity* this) { diff --git a/src/enemy/miniFireballGuy.c b/src/enemy/miniFireballGuy.c index fd6f54e2..ab5ee505 100644 --- a/src/enemy/miniFireballGuy.c +++ b/src/enemy/miniFireballGuy.c @@ -10,31 +10,31 @@ extern void sub_08045678(Entity*); -extern void (*const gUnk_080D1868[])(Entity*); +extern void (*const MiniFireballGuy_Functions[])(Entity*); extern void (*const gUnk_080D1880[])(Entity*); void MiniFireballGuy(Entity* this) { - EnemyFunctionHandler(this, gUnk_080D1868); + EnemyFunctionHandler(this, MiniFireballGuy_Functions); } -void sub_080455BC(Entity* this) { +void MiniFireballGuy_OnTick(Entity* this) { gUnk_080D1880[this->action](this); } -void sub_080455D4(Entity* this) { - sub_0804AA30(this, gUnk_080D1868); +void MiniFireballGuy_OnCollision(Entity* this) { + EnemyFunctionHandlerAfterCollision(this, MiniFireballGuy_Functions); } -void sub_080455E4(Entity* this) { +void MiniFireballGuy_OnDeath(Entity* this) { if ((this != this->parent) && (this->parent != NULL)) { this->field_0x6c.HALF.LO &= 0x7f; this->parent->child = this->child; this->child->parent = this->parent; } - sub_0804A7D4(this); + GenericDeath(this); } -void nullsub_23(Entity* this) { +void MiniFireballGuy_OnGrabbed(Entity* this) { } void sub_08045618(Entity* this) { diff --git a/src/enemy/miniSlime.c b/src/enemy/miniSlime.c index 8de89a28..7b00fe62 100644 --- a/src/enemy/miniSlime.c +++ b/src/enemy/miniSlime.c @@ -13,26 +13,26 @@ void sub_08045374(Entity*); extern void sub_080452E4(Entity*); extern void ReplaceMonitoredEntity(Entity*, Entity*); -extern void (*const gUnk_080D17C0[])(Entity*); +extern void (*const MiniSlime_Functions[])(Entity*); extern void (*const gUnk_080D17D8[])(Entity*); void MiniSlime(Entity* this) { - EnemyFunctionHandler(this, gUnk_080D17C0); + EnemyFunctionHandler(this, MiniSlime_Functions); SetChildOffset(this, 0, 1, -8); } -void sub_08045220(Entity* this) { +void MiniSlime_OnTick(Entity* this) { gUnk_080D17D8[this->action](this); } -void sub_08045238(Entity* this) { - if (this->field_0x43) - sub_0804A9FC(this, 0x1c); +void MiniSlime_OnCollision(Entity* this) { + if (this->confusedTime) + Create0x68FX(this, FX_STARS); - sub_0804AA30(this, gUnk_080D17C0); + EnemyFunctionHandlerAfterCollision(this, MiniSlime_Functions); } -void sub_0804525C(Entity* this) { +void MiniSlime_OnDeath(Entity* this) { Entity* parent = this->parent; if (this != parent && parent) { this->field_0x6c.HALF.LO &= 0x7f; @@ -41,10 +41,10 @@ void sub_0804525C(Entity* this) { if (this->field_0x6c.HALF.HI & 0x40) ReplaceMonitoredEntity(this, parent); } - sub_0804A7D4(this); + GenericDeath(this); } -void nullsub_22(void) { +void MiniSlime_OnGrabbed(void) { } void sub_080452A4(Entity* this) { diff --git a/src/enemy/moldorm.c b/src/enemy/moldorm.c index e53f2856..a2513c45 100644 --- a/src/enemy/moldorm.c +++ b/src/enemy/moldorm.c @@ -12,7 +12,7 @@ void sub_08022EAC(Entity*); void sub_08022F14(Entity*); extern void (*const gUnk_080CBB90[])(Entity*); -extern void (*const gUnk_080CBBA0[])(Entity*); +extern void (*const Moldorm_Functions[])(Entity*); extern void (*const gUnk_080CBBB4[])(Entity*); extern void (*const gUnk_080CBBBC[])(Entity*); @@ -26,15 +26,15 @@ void sub_08022BA0(Entity* this) { this->field_0x78.HALF.HI++; this->field_0x74.HWORD = this->x.HALF.HI; this->field_0x76.HWORD = this->y.HALF.HI; - EnemyFunctionHandler(this, gUnk_080CBBA0); + EnemyFunctionHandler(this, Moldorm_Functions); sub_08022EAC(this); } -void sub_08022BD4(Entity* this) { +void Moldorm_OnTick(Entity* this) { gUnk_080CBBB4[this->action](this); } -void sub_08022BEC(Entity* this) { +void Moldorm_OnCollision(Entity* this) { if (this->field_0x7a.HALF.LO != this->health) this->field_0x7a.HALF.HI = 30; @@ -48,7 +48,7 @@ void sub_08022BEC(Entity* this) { this->child->iframes = this->iframes; (*(Entity**)&this->field_0x7c)->iframes = this->iframes; (*(Entity**)&this->field_0x80)->iframes = this->iframes; - sub_0804AA30(this, gUnk_080CBBA0); + EnemyFunctionHandlerAfterCollision(this, Moldorm_Functions); } void sub_08022C58(Entity* this) { @@ -189,12 +189,12 @@ void (*const gUnk_080CBB90[])(Entity*) = { sub_08022D90, }; -void (*const gUnk_080CBBA0[])(Entity*) = { - sub_08022BD4, - sub_08022BEC, - sub_08001324, - sub_0804A7D4, - sub_08001242, +void (*const Moldorm_Functions[])(Entity*) = { + Moldorm_OnTick, + Moldorm_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, }; void (*const gUnk_080CBBB4[])(Entity*) = { diff --git a/src/enemy/moldworm.c b/src/enemy/moldworm.c index 652f0136..d97af3f2 100644 --- a/src/enemy/moldworm.c +++ b/src/enemy/moldworm.c @@ -23,7 +23,7 @@ bool32 sub_08023B38(Entity*); extern const u8 gUnk_080B37A0[]; -extern void (*const gUnk_080CBC38[])(Entity*); +extern void (*const Moldworm_Functions[])(Entity*); extern void (*const gUnk_080CBC50[])(Entity*); extern const s8 gUnk_080CBC70[]; extern const s8 gUnk_080CBC90[]; @@ -40,7 +40,7 @@ NONMATCH("asm/non_matching/moldworm/Moldworm.inc", void Moldworm(Entity* this)) sub_0802390C(this); } this->field_0x7c.BYTES.byte1 = this->field_0x7c.BYTES.byte0; - EnemyFunctionHandler(this, gUnk_080CBC38); + EnemyFunctionHandler(this, Moldworm_Functions); } else { if (this->parent->next) { if (this->type != 8) { @@ -61,11 +61,11 @@ NONMATCH("asm/non_matching/moldworm/Moldworm.inc", void Moldworm(Entity* this)) } END_NONMATCH -void sub_080230CC(Entity* this) { +void Moldworm_OnTick(Entity* this) { gUnk_080CBC50[this->action](this); } -void sub_080230E4(Entity* this) { +void Moldworm_OnCollision(Entity* this) { if (this->subAction == 0xff) { this->action = 7; this->actionDelay = 1; @@ -94,15 +94,15 @@ void sub_080230E4(Entity* this) { gPlayerState.flags &= ~PL_MOLDWORM_CAPTURED; } - sub_0804AA30(this, gUnk_080CBC38); + EnemyFunctionHandlerAfterCollision(this, Moldworm_Functions); } -void sub_080231A4(Entity* this) { +void Moldworm_OnKnockback(Entity* this) { this->field_0x7c.BYTES.byte0++; - sub_08001324(this); + GenericKnockback(this); } -void nullsub_135(Entity* this) { +void Moldworm_OnGrabbed(Entity* this) { } void sub_080231BC(Entity* this) { @@ -520,13 +520,13 @@ void sub_08023AB0(Entity* this) { ASM_FUNC("asm/non_matching/moldworm/sub_08023B38.inc", bool32 sub_08023B38(Entity* this)) // clang-format off -void (*const gUnk_080CBC38[])(Entity*) = { - sub_080230CC, - sub_080230E4, - sub_080231A4, - sub_0804A7D4, - sub_08001242, - nullsub_135, +void (*const Moldworm_Functions[])(Entity*) = { + Moldworm_OnTick, + Moldworm_OnCollision, + Moldworm_OnKnockback, + GenericDeath, + GenericConfused, + Moldworm_OnGrabbed, }; void (*const gUnk_080CBC50[])(Entity*) = { diff --git a/src/enemy/mulldozer.c b/src/enemy/mulldozer.c index 38e3bf88..5c7595db 100644 --- a/src/enemy/mulldozer.c +++ b/src/enemy/mulldozer.c @@ -54,10 +54,10 @@ void Mulldozer_OnInit(MulldozerEntity* this) { } void sub_08032CAC(MulldozerEntity* this) { - if (super->field_0x43 != 0) { - sub_0804A9FC(super, 0x1c); + if (super->confusedTime != 0) { + Create0x68FX(super, 0x1c); } - sub_0804AA30(super, Mulldozer_Functions); + EnemyFunctionHandlerAfterCollision(super, Mulldozer_Functions); if ((super->bitfield & 0x80) != 0) { switch (super->bitfield & 0x3f) { case 2: @@ -87,7 +87,7 @@ void sub_08032D3C(MulldozerEntity* this) { sub_08032F24(this); sub_080331E8(this); } - sub_08001324(super); + GenericKnockback(super); } void nullsub_157(MulldozerEntity* this) { @@ -441,8 +441,8 @@ void (*const Mulldozer_Functions[])(MulldozerEntity*) = { Mulldozer_OnInit, sub_08032CAC, sub_08032D3C, - (void (*)(MulldozerEntity*))sub_0804A7D4, - (void (*)(MulldozerEntity*))sub_08001242, + (void (*)(MulldozerEntity*))GenericDeath, + (void (*)(MulldozerEntity*))GenericConfused, nullsub_157, }; void (*const Mulldozer_Actions[])(MulldozerEntity*) = { diff --git a/src/enemy/octorok.c b/src/enemy/octorok.c index 6247a349..f90c0fac 100644 --- a/src/enemy/octorok.c +++ b/src/enemy/octorok.c @@ -12,7 +12,7 @@ void Octorok_Pause(Entity*); bool32 Octorok_FacesPlayer(Entity*); void Octorok_Turn(Entity*); -extern void (*const gOctorok[6])(Entity*); +extern void (*const Octorok_Functions[6])(Entity*); extern void (*const gOctorokActions[4])(Entity*); extern void (*const gUnk_080CA158[6])(Entity*); @@ -24,7 +24,7 @@ extern const s8 gUnk_080CA17E[2]; // Main void Octorok(Entity* this) { - EnemyFunctionHandler(this, gOctorok); + EnemyFunctionHandler(this, Octorok_Functions); SetChildOffset(this, 0, 1, -16); } @@ -34,23 +34,23 @@ void Octorok_OnTick(Entity* this) { } // Touch player -void sub_0801EAE8(Entity* this) { - if (this->field_0x43 != 0) { - sub_0804A9FC(this, 28); +void Octorok_OnCollision(Entity* this) { + if (this->confusedTime != 0) { + Create0x68FX(this, FX_STARS); } - sub_0804AA30(this, gOctorok); + EnemyFunctionHandlerAfterCollision(this, Octorok_Functions); } // Death -void sub_0801EB0C(Entity* this) { +void Octorok_OnDeath(Entity* this) { if (this->type == 0) { - sub_0804A7D4(this); + GenericDeath(this); } else { CreateDeathFx(this, 241, 0); } } -void sub_0801EB2C(Entity* this) { +void Octorok_OnGrabbed(Entity* this) { if (this->subAction < 3 && !sub_0806F520(this)) { Octorok_Pause(this); InitializeAnimation(this, this->animationState); @@ -194,13 +194,13 @@ bool32 Octorok_FacesPlayer(Entity* this) { } // clang-format off -void (*const gOctorok[])(Entity*) = { +void (*const Octorok_Functions[])(Entity*) = { Octorok_OnTick, - sub_0801EAE8, - sub_08001324, - sub_0801EB0C, - sub_08001242, - sub_0801EB2C, + Octorok_OnCollision, + GenericKnockback, + Octorok_OnDeath, + GenericConfused, + Octorok_OnGrabbed, }; void (*const gOctorokActions[])(Entity*) = { diff --git a/src/enemy/octorokBoss.c b/src/enemy/octorokBoss.c index 4af9d5b8..11f58d13 100644 --- a/src/enemy/octorokBoss.c +++ b/src/enemy/octorokBoss.c @@ -151,7 +151,7 @@ void OctorokBoss(Entity* this) { OctorokBoss_Functions[GetNextFunction(this)](this); } -void OctorokBoss_OnHealthZero(Entity* this) { +void OctorokBoss_Death(Entity* this) { if (this->type == WHOLE) { this->action = HIT; this->subAction = 0; @@ -356,7 +356,7 @@ void OctorokBoss_Hit_SubAction6(Entity* this) { GET_HELPER(this)->mouthObject->health = 1; SoundReq(SFX_BOSS_DIE); // Kill this boss - sub_0804A7D4(this); + GenericDeath(this); } } else { GET_TIMER(this)--; @@ -389,7 +389,7 @@ ASM_FUNC("asm/non_matching/octorokBoss/OctorokBoss_Init.inc", void OctorokBoss_I GET_HELPER(this) = helper; if (helper == NULL) { // Kill this boss - sub_0804A7D4(this); + GenericDeath(this); return; } this->myHeap = (u32*)helper; @@ -1448,7 +1448,7 @@ void sub_08036FE4(Entity* this) { } void (*const OctorokBoss_Functions[])(Entity*) = { - OctorokBoss_OnTick, OctorokBoss_OnTick, sub_08001324, OctorokBoss_OnHealthZero, sub_08001242, + OctorokBoss_OnTick, OctorokBoss_OnTick, GenericKnockback, OctorokBoss_Death, GenericConfused, }; void (*const OctorokBoss_Hit_SubActions[])(Entity*) = { diff --git a/src/enemy/octorokGolden.c b/src/enemy/octorokGolden.c index 5167cc4c..ab16e2fb 100644 --- a/src/enemy/octorokGolden.c +++ b/src/enemy/octorokGolden.c @@ -2,7 +2,7 @@ #include "enemy.h" #include "functions.h" -void (*const gUnk_080CF46C[])(Entity*); +void (*const OctorokGolden_Functions[])(Entity*); void (*const gUnk_080CF484[])(Entity*); extern void (*const gUnk_080012C8[])(Entity*); const s8 gUnk_080CF490[]; @@ -20,24 +20,24 @@ void OctorokGolden(Entity* this) { //! @bug index (r4) is uninitialized gUnk_080012C8[index](this); } else { - gUnk_080CF46C[GetNextFunction(this)](this); + OctorokGolden_Functions[GetNextFunction(this)](this); SetChildOffset(this, 0, 1, -0x10); } } -void sub_08037C84(Entity* this) { +void OctorokGolden_OnTick(Entity* this) { gUnk_080CF484[this->action](this); } -void sub_08037C9C(Entity* this) { - if (this->field_0x43 != 0) { - sub_0804A9FC(this, 0x1c); +void OctorokGolden_OnCollision(Entity* this) { + if (this->confusedTime != 0) { + Create0x68FX(this, FX_STARS); } - sub_0804AA30(this, gUnk_080CF46C); + EnemyFunctionHandlerAfterCollision(this, OctorokGolden_Functions); } -void sub_08037CC0(Entity* this) { +void OctorokGolden_OnDeath(Entity* this) { if ((this->field_0x3a & 0x2) == 0) { SetGlobalFlag(this->type2); } @@ -143,8 +143,9 @@ bool32 sub_08037E90(Entity* this) { return 0; } -void (*const gUnk_080CF46C[])(Entity*) = { - sub_08037C84, sub_08037C9C, sub_08001324, sub_08037CC0, sub_08001242, sub_08037C84, +void (*const OctorokGolden_Functions[])(Entity*) = { + OctorokGolden_OnTick, OctorokGolden_OnCollision, GenericKnockback, + OctorokGolden_OnDeath, GenericConfused, OctorokGolden_OnTick, }; void (*const gUnk_080CF484[])(Entity*) = { diff --git a/src/enemy/peahat.c b/src/enemy/peahat.c index 6389b179..b3d20e85 100644 --- a/src/enemy/peahat.c +++ b/src/enemy/peahat.c @@ -8,7 +8,7 @@ #include "enemy.h" #include "functions.h" -extern void (*const gPeahatFunctions[])(Entity*); +extern void (*const Peahat_Functions[])(Entity*); extern void (*const gPeahatPropellerFunctions[])(Entity*); extern void (*const gPeahatActions[])(Entity*); extern void (*const gUnk_080CA5BC[])(Entity*); @@ -40,7 +40,7 @@ enum { void Peahat(Entity* this) { if (this->type == PeahatForm_Torso) { - EnemyFunctionHandler(this, gPeahatFunctions); + EnemyFunctionHandler(this, Peahat_Functions); SetChildOffset(this, 0, 1, -0x10); } else { gPeahatPropellerFunctions[this->action](this); @@ -53,7 +53,7 @@ void Peahat_OnTick(Entity* this) { this->z.HALF.HI = gPeahatFlightHeights[(this->field_0xf++ & 0x30) >> 4]; } -void sub_0801FFDC(Entity* this) { +void Peahat_OnCollision(Entity* this) { if (this->field_0x82.HALF.LO) { if (this->bitfield == 0x94) { Entity* ent = CreateEnemy(PEAHAT, PeahatForm_Propeller); @@ -87,13 +87,13 @@ void sub_0801FFDC(Entity* this) { } } - if (this->field_0x43) - sub_0804A9FC(this, 0x1c); + if (this->confusedTime) + Create0x68FX(this, FX_STARS); - sub_0804AA30(this, gPeahatFunctions); + EnemyFunctionHandlerAfterCollision(this, Peahat_Functions); } -void sub_08020088(Entity* this) { +void Peahat_OnGrabbed(Entity* this) { if (2 >= this->subAction && !sub_0806F520(this)) return; @@ -259,7 +259,7 @@ void Peahat_Stunned(Entity* this) { void Peahat_RepairPropeller(Entity* this) { if (this->field_0xf) if (--this->field_0xf == 0) - sub_0804A9FC(this, 0x1c); + Create0x68FX(this, FX_STARS); if (!sub_0800442E(this) && --this->actionDelay) return; @@ -275,7 +275,7 @@ void Peahat_RepairPropeller(Entity* this) { void Peahat_Recover(Entity* this) { if (this->field_0xf) if (--this->field_0xf == 0) - sub_0804A9FC(this, 0x1c); + Create0x68FX(this, FX_STARS); if (!sub_0800442E(this) && --this->actionDelay) return; @@ -373,13 +373,13 @@ void sub_08020604(Entity* this) { } // clang-format off -void (*const gPeahatFunctions[])(Entity*) = { +void (*const Peahat_Functions[])(Entity*) = { Peahat_OnTick, - sub_0801FFDC, - sub_08001324, - sub_0804A7D4, - sub_08001242, - sub_08020088, + Peahat_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, + Peahat_OnGrabbed, }; void (*const gPeahatPropellerFunctions[])(Entity*) = { diff --git a/src/enemy/pesto.c b/src/enemy/pesto.c index 5611e2d7..26439e36 100644 --- a/src/enemy/pesto.c +++ b/src/enemy/pesto.c @@ -30,7 +30,7 @@ void sub_08024F50(Entity*); extern Entity* gUnk_020000B0; -extern void (*const gUnk_080CBEC4[])(Entity*); +extern void (*const Pesto_Functions[])(Entity*); extern void (*const gUnk_080CBEDC[])(Entity*); extern void (*const gUnk_080CBEF8[])(Entity*); @@ -39,14 +39,14 @@ extern const u16 gUnk_080CBF18[]; extern const u8 gUnk_080CBF20[]; void Pesto(Entity* this) { - gUnk_080CBEC4[GetNextFunction(this)](this); + Pesto_Functions[GetNextFunction(this)](this); } -void sub_08023F44(Entity* this) { +void Pesto_OnTick(Entity* this) { gUnk_080CBEDC[this->action](this); } -void sub_08023F5C(Entity* this) { +void Pesto_OnCollision(Entity* this) { if (this->hitType != 0x6e) { if (this->bitfield == 0x80) { this->field_0x86.HALF.LO = 0x30; @@ -69,15 +69,15 @@ void sub_08023F5C(Entity* this) { this->health = 0; } - sub_0804AA30(this, gUnk_080CBEC4); + EnemyFunctionHandlerAfterCollision(this, Pesto_Functions); } -void sub_08023FE0(Entity* this) { - sub_08001324(this); +void Pesto_OnKnockback(Entity* this) { + GenericKnockback(this); GetNextFrame(this); } -void sub_08023FF0(Entity* this) { +void Pesto_OnGrabbed(Entity* this) { if (this->subAction < 3 && !sub_0806F520(this)) { this->action = 1; this->subAction = 0; @@ -845,13 +845,13 @@ void sub_08024F50(Entity* this) { } // clang-format off -void (*const gUnk_080CBEC4[])(Entity*) = { - sub_08023F44, - sub_08023F5C, - sub_08023FE0, - sub_0804A7D4, - sub_08001242, - sub_08023FF0, +void (*const Pesto_Functions[])(Entity*) = { + Pesto_OnTick, + Pesto_OnCollision, + Pesto_OnKnockback, + GenericDeath, + GenericConfused, + Pesto_OnGrabbed, }; void (*const gUnk_080CBEDC[])(Entity*) = { diff --git a/src/enemy/puffstool.c b/src/enemy/puffstool.c index 3353422f..f5b8b158 100644 --- a/src/enemy/puffstool.c +++ b/src/enemy/puffstool.c @@ -26,7 +26,7 @@ bool32 sub_0802594C(Entity*, u32); bool32 sub_080257EC(Entity*, u32, u32); bool32 sub_08025AB8(u32, u32); -extern void (*const gUnk_080CBF9C[])(Entity*); +extern void (*const Puffstool_Functions[])(Entity*); extern void (*const gUnk_080CBFB4[])(Entity*); extern const u8 gUnk_080CBFE8[]; extern void (*const gUnk_080CBFEC[])(Entity*); @@ -41,15 +41,15 @@ extern const s8 gUnk_080CC0BA[]; extern const s8 gUnk_080CC0C2[]; void Puffstool(Entity* this) { - EnemyFunctionHandler(this, gUnk_080CBF9C); + EnemyFunctionHandler(this, Puffstool_Functions); SetChildOffset(this, 0, 1, -0x10); } -void sub_08025008(Entity* this) { +void Puffstool_OnTick(Entity* this) { gUnk_080CBFB4[this->action](this); } -void sub_08025020(Entity* this) { +void Puffstool_OnCollide(Entity* this) { u8 tmp; switch (this->bitfield & 0x7f) { @@ -94,17 +94,17 @@ void sub_08025020(Entity* this) { break; } - sub_0804AA30(this, gUnk_080CBF9C); + EnemyFunctionHandlerAfterCollision(this, Puffstool_Functions); } -void sub_0802511C(Entity* this) { +void Puffstool_OnDeath(Entity* this) { if ((this->field_0x3a & 2) && this->actionDelay == 1 && this->field_0x82.HALF.LO) { sub_08025B18(this); } - sub_0804A7D4(this); + GenericDeath(this); } -void sub_0802514C(Entity* this) { +void Puffstool_OnGrabbed(Entity* this) { GravityUpdate(this, 0x2000); if (sub_0806F520(this)) { gUnk_080CBFEC[this->subAction](this); @@ -278,7 +278,7 @@ void sub_080254B4(Entity* this) { sub_080256B4(this); } else { this->action = 0xc; - sub_0804A9FC(this, 0x1c); + Create0x68FX(this, FX_STARS); } InitializeAnimation(this, 0); } @@ -597,13 +597,13 @@ u32 sub_08025C60(Entity* this) { } // clang-format off -void (*const gUnk_080CBF9C[])(Entity*) = { - sub_08025008, - sub_08025020, - sub_08001324, - sub_0802511C, - sub_08001242, - sub_0802514C, +void (*const Puffstool_Functions[])(Entity*) = { + Puffstool_OnTick, + Puffstool_OnCollide, + GenericKnockback, + Puffstool_OnDeath, + GenericConfused, + Puffstool_OnGrabbed, }; void (*const gUnk_080CBFB4[])(Entity*) = { diff --git a/src/enemy/rockChuchu.c b/src/enemy/rockChuchu.c index 8f86eebb..a1508d95 100644 --- a/src/enemy/rockChuchu.c +++ b/src/enemy/rockChuchu.c @@ -10,18 +10,18 @@ extern void sub_0804A4E4(Entity*, Entity*); -extern void (*const gUnk_080CB948[])(Entity*); +extern void (*const RockChuchu_Functions[])(Entity*); extern void (*const gUnk_080CB960[])(Entity*); void RockChuchu(Entity* this) { - EnemyFunctionHandler(this, gUnk_080CB948); + EnemyFunctionHandler(this, RockChuchu_Functions); } -void sub_0802223C(Entity* this) { +void RockChuchu_OnTick(Entity* this) { gUnk_080CB960[this->action](this); } -void sub_08022254(Entity* this) { +void RockChuchu_OnCollision(Entity* this) { Entity* ent; if (this->health) { @@ -65,10 +65,10 @@ void sub_08022254(Entity* this) { InitializeAnimation(this, 2); } - sub_0804AA30(this, gUnk_080CB948); + EnemyFunctionHandlerAfterCollision(this, RockChuchu_Functions); } -void nullsub_131(Entity* this) { +void RockChuchu_OnGrabbed(Entity* this) { } void sub_08022368(Entity* this) { @@ -115,13 +115,13 @@ void sub_080223E4(Entity* this) { } // clang-format off -void (*const gUnk_080CB948[])(Entity*) = { - sub_0802223C, - sub_08022254, - sub_08001324, - sub_0804A7D4, - sub_08001242, - nullsub_131, +void (*const RockChuchu_Functions[])(Entity*) = { + RockChuchu_OnTick, + RockChuchu_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, + RockChuchu_OnGrabbed, }; void (*const gUnk_080CB960[])(Entity*) = { diff --git a/src/enemy/rollobite.c b/src/enemy/rollobite.c index 71ebddee..4db8a577 100644 --- a/src/enemy/rollobite.c +++ b/src/enemy/rollobite.c @@ -8,7 +8,7 @@ #include "enemy.h" #include "functions.h" -extern void (*const gRollobiteFunctions[])(Entity*); +extern void (*const Rollobite_Functions[])(Entity*); extern void (*const gRollobiteActions[])(Entity*); extern void (*const gUnk_080CA6A4[])(Entity*); extern void (*const gUnk_080CA6BC[])(Entity*); @@ -25,7 +25,7 @@ extern void sub_080AE7E8(Entity*, u32, u32, u32); extern void sub_08078930(Entity*); void Rollobite(Entity* this) { - EnemyFunctionHandler(this, gRollobiteFunctions); + EnemyFunctionHandler(this, Rollobite_Functions); } void Rollobite_OnTick(Entity* this) { @@ -33,7 +33,7 @@ void Rollobite_OnTick(Entity* this) { gRollobiteActions[this->action](this); } -void sub_08020668(Entity* this) { +void Rollobite_OnCollision(Entity* this) { if (this->hitType == 34 && this->health != 0xff) { this->action = 4; this->zVelocity = Q_16_16(2.0); @@ -56,7 +56,7 @@ void sub_08020668(Entity* this) { Rollobite_OnTick(this); } -void sub_080206E0(Entity* this) { +void Rollobite_OnKnockback(Entity* this) { if (Rollobite_TryToHoleUp(this)) { this->knockbackDuration = 0; } else if (Rollobite_IsRolledUp(this)) { @@ -64,11 +64,11 @@ void sub_080206E0(Entity* this) { sub_080AE58C(this, this->knockbackDirection, 10); sub_080AE7E8(this, this->field_0x46, this->knockbackDirection, 10); } else { - sub_08001324(this); + GenericKnockback(this); } } -void sub_08020734(Entity* this) { +void Rollobite_OnGrabbed(Entity* this) { if (this->subAction < 3 && !sub_0806F520(this)) { this->action = 4; COLLISION_ON(this); @@ -285,13 +285,13 @@ bool32 Rollobite_IsRolledUp(Entity* this) { } // clang-format off -void (*const gRollobiteFunctions[])(Entity*) = { +void (*const Rollobite_Functions[])(Entity*) = { Rollobite_OnTick, - sub_08020668, - sub_080206E0, - sub_0804A7D4, - sub_08001242, - sub_08020734, + Rollobite_OnCollision, + Rollobite_OnKnockback, + GenericDeath, + GenericConfused, + Rollobite_OnGrabbed, }; void (*const gRollobiteActions[])(Entity*) = { diff --git a/src/enemy/rope.c b/src/enemy/rope.c index 05e1c85e..c5caac37 100644 --- a/src/enemy/rope.c +++ b/src/enemy/rope.c @@ -8,7 +8,7 @@ #include "enemy.h" #include "functions.h" -extern void (*const gRope[6])(Entity*); +extern void (*const Rope_Functions[6])(Entity*); extern void (*const gUnk_080CE460[4])(Entity*); extern void (*const gUnk_080CE470[3])(Entity*); extern Entity* gUnk_020000B0; @@ -18,7 +18,7 @@ void sub_08031600(Entity*); u32 sub_0803163C(Entity*); void Rope(Entity* this) { - EnemyFunctionHandler(this, gRope); + EnemyFunctionHandler(this, Rope_Functions); SetChildOffset(this, 0, 1, -16); } @@ -26,19 +26,19 @@ void Rope_OnTick(Entity* this) { gUnk_080CE460[this->action](this); } -void sub_080313AC(Entity* this) { +void Rope_OnCollision(Entity* this) { if (this->action == 3) { this->field_0xf = 0x1e; this->field_0x78.HALF.LO = 0x3c; sub_08031600(this); } - if (this->field_0x43) { - sub_0804A9FC(this, 0x1c); + if (this->confusedTime) { + Create0x68FX(this, FX_STARS); } - sub_0804AA30(this, gRope); + EnemyFunctionHandlerAfterCollision(this, Rope_Functions); } -void sub_080313E8(Entity* this) { +void Rope_OnGrabbed(Entity* this) { if (sub_0806F520()) { gUnk_080CE470[this->subAction](this); } @@ -55,7 +55,7 @@ void sub_08031418(Entity* this) { void sub_08031420(Entity* this) { if (sub_0806F3E4(this)) { - sub_0804A7D4(this); + GenericDeath(this); } } diff --git a/src/enemy/ropeGolden.c b/src/enemy/ropeGolden.c index f31229aa..881d1e36 100644 --- a/src/enemy/ropeGolden.c +++ b/src/enemy/ropeGolden.c @@ -11,7 +11,7 @@ #include "enemy.h" extern void (*const gUnk_080012C8[])(Entity*); -extern void (*const gUnk_080CF4C8[6])(Entity*); +extern void (*const RopeGolden_Functions[6])(Entity*); extern void (*const gUnk_080CF4E0[4])(Entity*); extern s32 sub_080012DC(Entity*); @@ -26,7 +26,7 @@ void RopeGolden(Entity* this) { if (x != 0) { gUnk_080012C8[x](this); } else { - gUnk_080CF4C8[GetNextFunction(this)](this); + RopeGolden_Functions[GetNextFunction(this)](this); SetChildOffset(this, 0, 1, -0x10); } } @@ -35,14 +35,14 @@ void RopeGolden_OnTick(Entity* this) { gUnk_080CF4E0[this->action](this); } -void sub_08038210(Entity* this) { - if (this->field_0x43 != 0) { - sub_0804A9FC(this, 0x1c); +void RopeGolden_OnCollision(Entity* this) { + if (this->confusedTime != 0) { + Create0x68FX(this, FX_STARS); } - sub_0804AA30(this, gUnk_080CF4C8); + EnemyFunctionHandlerAfterCollision(this, RopeGolden_Functions); } -void sub_08038234(Entity* this) { +void RopeGolden_OnDeath(Entity* this) { if ((this->field_0x3a & 2) == 0) { SetGlobalFlag(this->type2); } diff --git a/src/enemy/rupeeLike.c b/src/enemy/rupeeLike.c index 40964971..c285f0c0 100644 --- a/src/enemy/rupeeLike.c +++ b/src/enemy/rupeeLike.c @@ -21,7 +21,7 @@ extern void sub_080297F0(Entity*); extern void sub_080296C8(Entity*); extern void sub_0802969C(Entity*); -extern void (*const gUnk_080CCC00[])(Entity*); +extern void (*const RupeeLike_Functions[])(Entity*); extern void (*const gUnk_080CCC18[])(Entity*); extern void (*const gUnk_080CCC3C[])(Entity*); @@ -41,7 +41,7 @@ void RupeeLike(Entity* this) { } sub_08001290(this, uVar1); } else { - gUnk_080CCC00[GetNextFunction(this)](this); + RupeeLike_Functions[GetNextFunction(this)](this); SetChildOffset(this, 0, 1, -0x10); } } else { @@ -49,11 +49,11 @@ void RupeeLike(Entity* this) { } } -void sub_08029300(Entity* this) { +void RupeeLike_OnTick(Entity* this) { gUnk_080CCC18[this->action](this); } -void sub_08029318(Entity* this) { +void RupeeLike_OnCollision(Entity* this) { if (this->hitType == 0x8e) { sub_08029770(this); } else { @@ -73,19 +73,19 @@ void sub_08029318(Entity* this) { this->field_0x80.HALF.LO = gPlayerEntity.spritePriority.b1; EnqueueSFX(SFX_104); } else { - if (this->field_0x43 != 0) { - sub_0804A9FC(this, 0x1c); + if (this->confusedTime != 0) { + Create0x68FX(this, FX_STARS); } } } - sub_0804AA30(this, gUnk_080CCC00); + EnemyFunctionHandlerAfterCollision(this, RupeeLike_Functions); } -void sub_080293B4(Entity* this) { +void RupeeLike_OnDeath(Entity* this) { CreateDeathFx(this, 0xff, gUnk_080CCC34[this->cutsceneBeh.HALF.LO * 3 + this->type]); } -void nullsub_141(Entity* this) { +void RupeeLike_OnGrabbed(Entity* this) { } void sub_080293DC(Entity* this) { @@ -293,13 +293,13 @@ void sub_080297F0(Entity* this) { } // clang-format off -void (*const gUnk_080CCC00[])(Entity*) = { - sub_08029300, - sub_08029318, - sub_08001324, - sub_080293B4, - sub_08001242, - nullsub_141, +void (*const RupeeLike_Functions[])(Entity*) = { + RupeeLike_OnTick, + RupeeLike_OnCollision, + GenericKnockback, + RupeeLike_OnDeath, + GenericConfused, + RupeeLike_OnGrabbed, }; void (*const gUnk_080CCC18[])(Entity*) = { diff --git a/src/enemy/scissorsBeetle.c b/src/enemy/scissorsBeetle.c index e2de30fe..9c78d925 100644 --- a/src/enemy/scissorsBeetle.c +++ b/src/enemy/scissorsBeetle.c @@ -28,24 +28,24 @@ void ScissorsBeetle(Entity* this) { SetChildOffset(this, 0, 1, -0x10); } -void sub_080388D4(ScissorsBeetleEntity* this) { +void ScissorsBeetle_OnTick(ScissorsBeetleEntity* this) { ScissorsBeetle_Actions[super->action](this); } -void sub_080388EC(ScissorsBeetleEntity* this) { +void ScissorsBeetle_OnCollision(ScissorsBeetleEntity* this) { Entity* child; - if (super->field_0x43) { - sub_0804A9FC(super, 0x1c); + if (super->confusedTime) { + Create0x68FX(super, FX_STARS); } - sub_0804AA30(super, ScissorsBeetle_Functions); + EnemyFunctionHandlerAfterCollision(super, ScissorsBeetle_Functions); if ((super->bitfield & 0x80) && super->action != 4) { u32 knockbackDir; child = super->child; child->iframes = super->iframes; knockbackDir = super->knockbackDirection; child->knockbackDirection = knockbackDir; - if (super->field_0x43) { + if (super->confusedTime) { COLLISION_OFF(child); } else if (super->action == 1) { child->direction = Direction8Round(knockbackDir + 0x12); @@ -58,7 +58,7 @@ void sub_080388EC(ScissorsBeetleEntity* this) { } } -void nullsub_164(ScissorsBeetleEntity* this) { +void ScissorsBeetle_OnGrabbed(ScissorsBeetleEntity* this) { } void ScissorsBeetle_Init(ScissorsBeetleEntity* this) { @@ -231,8 +231,12 @@ void sub_08038C84(ScissorsBeetleEntity* this, u32 arg2) { } void (*const ScissorsBeetle_Functions[])(Entity*) = { - (EntityActionPtr)sub_080388D4, (EntityActionPtr)sub_080388EC, sub_08001324, sub_0804A7D4, sub_08001242, - (EntityActionPtr)nullsub_164, + (EntityActionPtr)ScissorsBeetle_OnTick, + (EntityActionPtr)ScissorsBeetle_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, + (EntityActionPtr)ScissorsBeetle_OnGrabbed, }; void (*const ScissorsBeetle_Actions[])(ScissorsBeetleEntity*) = { diff --git a/src/enemy/slime.c b/src/enemy/slime.c index 0ef493dd..b496288d 100644 --- a/src/enemy/slime.c +++ b/src/enemy/slime.c @@ -18,32 +18,32 @@ void sub_08045178(Entity*, Entity*, int, int); extern void sub_0804A4E4(Entity*, Entity*); extern void (*const gUnk_080D16BC[])(Entity*); -extern void (*const gUnk_080D16A4[])(Entity*); +extern void (*const Slime_Functions[])(Entity*); extern u8 gUnk_080D16D0[4]; // Entity count per form extern PosOffset gUnk_080D16D4[4]; void Slime(Entity* this) { - EnemyFunctionHandler(this, gUnk_080D16A4); + EnemyFunctionHandler(this, Slime_Functions); SetChildOffset(this, 0, 1, -12); } -void sub_08044F70(Entity* this) { +void Slime_OnTick(Entity* this) { gUnk_080D16BC[this->action](this); } -void sub_08044F88(Entity* this) { +void Slime_OnCollision(Entity* this) { if ((this->health != 0) && (this->cutsceneBeh.HALF.LO != this->health)) { this->action = 4; } else { - sub_0804AA30(this, gUnk_080D16A4); + EnemyFunctionHandlerAfterCollision(this, Slime_Functions); } - if (this->field_0x43 != 0) { - sub_0804A9FC(this, 28); + if (this->confusedTime != 0) { + Create0x68FX(this, FX_STARS); } } -void nullsub_171(Entity* this) { +void Slime_OnGrabbed(Entity* this) { } void sub_08044FC8(Entity* this) { diff --git a/src/enemy/sluggula.c b/src/enemy/sluggula.c index 7d6b68e9..460da1b8 100644 --- a/src/enemy/sluggula.c +++ b/src/enemy/sluggula.c @@ -18,7 +18,7 @@ void sub_0804A4E4(Entity*, Entity*); extern void (*const gUnk_080012C8[])(Entity*); -extern void (*const gUnk_080CBDBC[])(Entity*); +extern void (*const Sluggula_Functions[])(Entity*); extern void (*const gUnk_080CBDD4[])(Entity*); extern void (*const gUnk_080CBDEC[])(Entity*); @@ -28,7 +28,7 @@ extern const s8 gUnk_080CBDFF[]; void Sluggula(Entity* this) { if (this->type == 1) { - EnemyFunctionHandler(this, gUnk_080CBDBC); + EnemyFunctionHandler(this, Sluggula_Functions); SetChildOffset(this, 0, 1, -0x10); } else if (this->type == 0) { @@ -47,22 +47,22 @@ void Sluggula(Entity* this) { } } -void sub_08023C08(Entity* this) { +void Sluggula_OnTick(Entity* this) { gUnk_080CBDEC[this->action](this); } -void sub_08023C20(Entity* this) { - if (this->field_0x43) - sub_0804A9FC(this, 0x1c); +void Sluggula_OnCollision(Entity* this) { + if (this->confusedTime) + Create0x68FX(this, FX_STARS); if (this->type == 1) { - sub_0804AA30(this, gUnk_080CBDBC); + EnemyFunctionHandlerAfterCollision(this, Sluggula_Functions); } else { - sub_0804AA30(this, gUnk_080CBDD4); + EnemyFunctionHandlerAfterCollision(this, gUnk_080CBDD4); } } -void nullsub_137(Entity* this) { +void Sluggula_OnGrabbed(Entity* this) { /* ... */ } @@ -195,22 +195,22 @@ void sub_08023E9C(Entity* this) { } // clang-format off -void (*const gUnk_080CBDBC[])(Entity*) = { - sub_08023C08, - sub_08023C20, - sub_08001324, - sub_0804A7D4, - sub_08001242, - nullsub_137, +void (*const Sluggula_Functions[])(Entity*) = { + Sluggula_OnTick, + Sluggula_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, + Sluggula_OnGrabbed, }; void (*const gUnk_080CBDD4[])(Entity*) = { sub_08023CE0, - sub_08023C20, - sub_08001324, - sub_0804A7D4, - sub_08001242, - nullsub_137, + Sluggula_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, + Sluggula_OnGrabbed, }; void (*const gUnk_080CBDEC[])(Entity*) = { diff --git a/src/enemy/smallPesto.c b/src/enemy/smallPesto.c index 6d444f71..69f1e461 100644 --- a/src/enemy/smallPesto.c +++ b/src/enemy/smallPesto.c @@ -10,7 +10,7 @@ extern void sub_080317F8(Entity*); -extern void (*gUnk_080CE530[])(Entity*); +extern void (*SmallPesto_Functions[])(Entity*); extern void (*gUnk_080CE548[])(Entity*); extern void (*gUnk_080CE554[])(Entity*); @@ -21,17 +21,17 @@ void sub_08031840(Entity*); extern Hitbox gUnk_080CE560; void SmallPesto(Entity* this) { - gUnk_080CE530[GetNextFunction(this)](this); + SmallPesto_Functions[GetNextFunction(this)](this); } -void sub_08031680(Entity* this) { +void SmallPesto_OnTick(Entity* this) { gUnk_080CE548[this->action](this); } -void nullsub_152(Entity* this) { +void SmallPesto_OnCollision(Entity* this) { } -void sub_0803169C(Entity* this) { +void SmallPesto_OnGrabbed(Entity* this) { s32 iVar1; GetNextFrame(this); @@ -58,7 +58,7 @@ void sub_080316E8(Entity* this) { void sub_080316F0(Entity* this) { if (sub_0806F3E4(this)) { - sub_0804A7D4(this); + GenericDeath(this); } } diff --git a/src/enemy/spark.c b/src/enemy/spark.c index 30940109..7f467944 100644 --- a/src/enemy/spark.c +++ b/src/enemy/spark.c @@ -9,18 +9,18 @@ #include "object.h" #include "functions.h" -extern void (*const gUnk_080CD234[])(Entity*); +extern void (*const Spark_Functions[])(Entity*); extern void (*const gUnk_080CD24C[])(Entity*); void Spark(Entity* this) { - gUnk_080CD234[GetNextFunction(this)](this); + Spark_Functions[GetNextFunction(this)](this); } -void sub_0802B2C8(Entity* this) { +void Spark_OnTick(Entity* this) { gUnk_080CD24C[this->action](this); } -void sub_0802B2E0(Entity* this) { +void Spark_OnCollision(Entity* this) { Entity* ent; if (this->bitfield & 0x80) { @@ -39,7 +39,7 @@ void sub_0802B2E0(Entity* this) { } } -void nullsub_15(Entity* this) { +void Spark_OnGrabbed(Entity* this) { /* ... */ } @@ -130,13 +130,13 @@ void sub_0802B4A8(Entity* this) { } // clang-format off -void (*const gUnk_080CD234[])(Entity*) = { - sub_0802B2C8, - sub_0802B2E0, - sub_08001324, - sub_0804A7D4, - sub_08001242, - nullsub_15, +void (*const Spark_Functions[])(Entity*) = { + Spark_OnTick, + Spark_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, + Spark_OnGrabbed, }; void (*const gUnk_080CD24C[])(Entity*) = { diff --git a/src/enemy/spearMoblin.c b/src/enemy/spearMoblin.c index 8902e7fc..6c3110cb 100644 --- a/src/enemy/spearMoblin.c +++ b/src/enemy/spearMoblin.c @@ -20,7 +20,7 @@ void sub_080288C0(Entity*); bool32 sub_08028828(u32, u32); void sub_080287B4(Entity*); -extern void (*const gUnk_080CC790[])(Entity*); +extern void (*const SpearMoblin_Functions[])(Entity*); extern void (*const gUnk_080CC7A8[])(Entity*); extern const u8 gUnk_080CC7BC[]; extern const s8 gUnk_080CC7C0[]; @@ -30,22 +30,22 @@ extern const u16 gUnk_080CC7D8[]; extern const Hitbox* const gUnk_080CC944[]; void SpearMoblin(Entity* this) { - EnemyFunctionHandler(this, gUnk_080CC790); + EnemyFunctionHandler(this, SpearMoblin_Functions); SetChildOffset(this, 0, 1, -0x20); if (this->child && this->child->next) { CopyPosition(this, this->child); } } -void sub_0802826C(Entity* this) { +void SpearMoblin_OnTick(Entity* this) { gUnk_080CC7A8[this->action](this); } -void sub_08028284(Entity* this) { - if (this->field_0x43 != 0) - sub_0804A9FC(this, 0x1c); +void SpearMoblin_OnCollision(Entity* this) { + if (this->confusedTime != 0) + Create0x68FX(this, FX_STARS); - sub_0804AA30(this, gUnk_080CC790); + EnemyFunctionHandlerAfterCollision(this, SpearMoblin_Functions); if (this->bitfield & 0x80) { if (this->action != 4) { sub_08028754(this); @@ -68,7 +68,7 @@ void sub_08028284(Entity* this) { } } -void nullsub_13(Entity* this) { +void SpearMoblin_OnGrabbed(Entity* this) { /* ... */ } @@ -390,13 +390,13 @@ void sub_080288C0(Entity* this) { } // clang-format off -void (*const gUnk_080CC790[])(Entity*) = { - sub_0802826C, - sub_08028284, - sub_08001324, - sub_0804A7D4, - sub_08001242, - nullsub_13, +void (*const SpearMoblin_Functions[])(Entity*) = { + SpearMoblin_OnTick, + SpearMoblin_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, + SpearMoblin_OnGrabbed, }; void (*const gUnk_080CC7A8[])(Entity*) = { diff --git a/src/enemy/spikedBeetle.c b/src/enemy/spikedBeetle.c index fa3d70b4..8b10fb17 100644 --- a/src/enemy/spikedBeetle.c +++ b/src/enemy/spikedBeetle.c @@ -16,21 +16,21 @@ void sub_0802B9B4(Entity*); void sub_0802B7A4(Entity*); void sub_0802B960(Entity*); -extern void (*const gUnk_080CD2D8[])(Entity*); +extern void (*const SpikedBeetle_Functions[])(Entity*); extern void (*const gUnk_080CD2F0[])(Entity*); extern const u8 gUnk_080CD314[]; extern const s8 gUnk_080CD318[]; void SpikedBeetle(Entity* this) { - EnemyFunctionHandler(this, gUnk_080CD2D8); + EnemyFunctionHandler(this, SpikedBeetle_Functions); SetChildOffset(this, 0, 1, -0x10); } -void sub_0802B610(Entity* this) { +void SpikedBeetle_OnTick(Entity* this) { gUnk_080CD2F0[this->action](this); } -void sub_0802B628(Entity* this) { +void SpikedBeetle_OnCollision(Entity* this) { switch (this->bitfield & 0x7f) { case 0: case 4: @@ -63,13 +63,13 @@ void sub_0802B628(Entity* this) { InitializeAnimation(this, 9); } } - if (this->field_0x43) { - sub_0804A9FC(this, 0x1c); + if (this->confusedTime) { + Create0x68FX(this, FX_STARS); } - sub_0804AA30(this, gUnk_080CD2D8); + EnemyFunctionHandlerAfterCollision(this, SpikedBeetle_Functions); } -void nullsub_144(Entity* this) { +void SpikedBeetle_OnGrabbed(Entity* this) { /* ... */ } @@ -210,13 +210,13 @@ void sub_0802B9B4(Entity* this) { } // clang-format off -void (*const gUnk_080CD2D8[])(Entity*) = { - sub_0802B610, - sub_0802B628, - sub_08001324, - sub_0804A7D4, - sub_08001242, - nullsub_144, +void (*const SpikedBeetle_Functions[])(Entity*) = { + SpikedBeetle_OnTick, + SpikedBeetle_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, + SpikedBeetle_OnGrabbed, }; void (*const gUnk_080CD2F0[])(Entity*) = { diff --git a/src/enemy/spinyBeetle.c b/src/enemy/spinyBeetle.c index 81a45577..3c5fcbcc 100644 --- a/src/enemy/spinyBeetle.c +++ b/src/enemy/spinyBeetle.c @@ -18,7 +18,7 @@ typedef struct { u16 unk_84; } SpinyBeetleEntity; -void (*const gUnk_080CEBEC[])(Entity*); +void (*const SpinyBeetle_Functions[])(Entity*); void (*const gUnk_080CEC04[])(SpinyBeetleEntity*); const s8 gUnk_080CEC1C[]; @@ -26,25 +26,25 @@ extern void sub_08033E1C(SpinyBeetleEntity*); extern void sub_08033D78(SpinyBeetleEntity*); extern u32 sub_08033DF0(SpinyBeetleEntity*); extern void SpinyBeetle_SetHitType(SpinyBeetleEntity*); -extern void sub_0804AA30(Entity*, EntityActionArray); +extern void EnemyFunctionHandlerAfterCollision(Entity*, EntityActionArray); extern void sub_0807B9B8(s32, s32, s32); extern u32 sub_0804A024(Entity*, u32, u32); void SpinyBeetle(Entity* this) { - EnemyFunctionHandler(this, gUnk_080CEBEC); + EnemyFunctionHandler(this, SpinyBeetle_Functions); SetChildOffset(this, 0, 1, -0x10); } -void sub_080337BC(SpinyBeetleEntity* this) { +void SpinyBeetle_OnTick(SpinyBeetleEntity* this) { gUnk_080CEC04[super->action](this); } -void sub_080337D4(SpinyBeetleEntity* this) { - if (super->field_0x43) { - sub_0804A9FC(super, 0x1c); +void SpinyBeetle_OnCollision(SpinyBeetleEntity* this) { + if (super->confusedTime) { + Create0x68FX(super, FX_STARS); } - sub_0804AA30(super, gUnk_080CEBEC); + EnemyFunctionHandlerAfterCollision(super, SpinyBeetle_Functions); if (super->bitfield & 0x80) { if (super->iframes > 0 && super->child) { sub_08033E1C(this); @@ -62,11 +62,11 @@ void sub_080337D4(SpinyBeetleEntity* this) { } } -void nullsub_159(SpinyBeetleEntity* this) { +void SpinyBeetle_OnGrabbed(SpinyBeetleEntity* this) { } -void sub_08033870(SpinyBeetleEntity* this) { - sub_08001242(super); +void SpinyBeetle_OnConfused(SpinyBeetleEntity* this) { + GenericConfused(super); if (super->action != 5) { if (sub_08033DF0(this)) { @@ -382,9 +382,9 @@ const u16 unusedLabel_0CEBDC[] = { 0x3F, 0x1C, 0x50, 0x2A, 0x55, 0x1D, 0x5C, 0x2B, }; -void (*const gUnk_080CEBEC[])(Entity*) = { - (EntityActionPtr)sub_080337BC, (EntityActionPtr)sub_080337D4, sub_08001324, sub_0804A7D4, - (EntityActionPtr)sub_08033870, (EntityActionPtr)nullsub_159, +void (*const SpinyBeetle_Functions[])(Entity*) = { + (EntityActionPtr)SpinyBeetle_OnTick, (EntityActionPtr)SpinyBeetle_OnCollision, GenericKnockback, GenericDeath, + (EntityActionPtr)SpinyBeetle_OnConfused, (EntityActionPtr)SpinyBeetle_OnGrabbed, }; void (*const gUnk_080CEC04[])(SpinyBeetleEntity*) = { diff --git a/src/enemy/spinyChuchu.c b/src/enemy/spinyChuchu.c index 68df4b69..27a07827 100644 --- a/src/enemy/spinyChuchu.c +++ b/src/enemy/spinyChuchu.c @@ -16,7 +16,7 @@ extern void sub_0804AA1C(Entity*); u32 sub_080228CC(Entity*); u32 sub_080228F0(Entity*); -extern void (*const gUnk_080CBA28[])(Entity*); +extern void (*const SpinyChuchu_Functions[])(Entity*); extern void (*const gUnk_080CBA40[])(Entity*); extern const u8 gUnk_080CBA60[]; @@ -27,15 +27,15 @@ extern Hitbox gHitbox_32; extern Entity* gUnk_020000B0; void SpinyChuchu(Entity* this) { - EnemyFunctionHandler(this, gUnk_080CBA28); + EnemyFunctionHandler(this, SpinyChuchu_Functions); SetChildOffset(this, 0, 1, -0x10); } -void sub_08022434(Entity* this) { +void SpinyChuchu_OnTick(Entity* this) { gUnk_080CBA40[this->action](this); } -void sub_0802244C(Entity* this) { +void SpinyChuchu_OnCollision(Entity* this) { if (this->health) { if (this->hitType == 0x65) { switch (this->bitfield & 0x7f) { @@ -56,13 +56,13 @@ void sub_0802244C(Entity* this) { case 0x18: case 0x19: case 0x1a: - sub_0804A9FC(this, 0x1c); + Create0x68FX(this, FX_STARS); this->action = 5; this->hitType = 0x5c; InitializeAnimation(this, 1); } } else if (this->bitfield == 0x94) { - sub_0804A9FC(this, 0x1c); + Create0x68FX(this, FX_STARS); this->action = 5; InitializeAnimation(this, 1); } @@ -83,25 +83,25 @@ void sub_0802244C(Entity* this) { } this->field_0x80.HALF.LO = this->health; - sub_0804AA30(this, gUnk_080CBA28); + EnemyFunctionHandlerAfterCollision(this, SpinyChuchu_Functions); } -void sub_080225A0(Entity* this) { +void SpinyChuchu_OnKnockback(Entity* this) { if (this->animIndex == 1) GetNextFrame(this); sub_08001318(this); } -void sub_080225BC(Entity* this) { +void SpinyChuchu_OnDeath(Entity* this) { GravityUpdate(this, Q_8_8(24.0)); if (this->frame & 1) { - sub_0804A7D4(this); + GenericDeath(this); } else { GetNextFrame(this); } } -void nullsub_9(Entity* this) { +void SpinyChuchu_OnGrabbed(Entity* this) { } void sub_080225EC(Entity* this) { @@ -265,13 +265,13 @@ u32 sub_080228F0(Entity* this) { } // clang-format off -void (*const gUnk_080CBA28[])(Entity*) = { - sub_08022434, - sub_0802244C, - sub_080225A0, - sub_080225BC, - sub_08001242, - nullsub_9, +void (*const SpinyChuchu_Functions[])(Entity*) = { + SpinyChuchu_OnTick, + SpinyChuchu_OnCollision, + SpinyChuchu_OnKnockback, + SpinyChuchu_OnDeath, + GenericConfused, + SpinyChuchu_OnGrabbed, }; void (*const gUnk_080CBA40[])(Entity*) = { diff --git a/src/enemy/stalfos.c b/src/enemy/stalfos.c index 2fea7018..2e6205d8 100644 --- a/src/enemy/stalfos.c +++ b/src/enemy/stalfos.c @@ -107,10 +107,10 @@ NONMATCH("asm/non_matching/stalfos/sub_0803933C.inc", void sub_0803933C(StalfosE } super->flags2 &= 0xfb; } - if (super->field_0x43 != 0) { - sub_0804A9FC(super, 0x1c); + if (super->confusedTime != 0) { + Create0x68FX(super, 0x1c); } - sub_0804AA30(super, Stalfos_Functions); + EnemyFunctionHandlerAfterCollision(super, Stalfos_Functions); } END_NONMATCH @@ -118,7 +118,7 @@ void sub_08039418(StalfosEntity* this) { if (super->type == 0) { CreateDeathFx(super, 0xf3, 0); } else { - sub_0804A7D4(super); + GenericDeath(super); } } @@ -451,9 +451,9 @@ ASM_FUNC("asm/non_matching/stalfos/sub_08039B28.inc", u32 sub_08039B28(StalfosEn void (*const Stalfos_Functions[])(StalfosEntity*) = { Stalfos_OnTick, sub_0803933C, - (void (*)(StalfosEntity*))sub_08001324, + (void (*)(StalfosEntity*))GenericKnockback, sub_08039418, - (void (*)(StalfosEntity*))sub_08001242, + (void (*)(StalfosEntity*))GenericConfused, sub_08039438, }; void (*const Stalfos_Actions[])(StalfosEntity*) = { diff --git a/src/enemy/takkuri.c b/src/enemy/takkuri.c index a9a29a9b..dc28b862 100644 --- a/src/enemy/takkuri.c +++ b/src/enemy/takkuri.c @@ -22,7 +22,7 @@ static_assert(sizeof(TakkuriEntity) == 0x88); extern Entity* gUnk_020000B0; -void (*const gUnk_080CFF3C[])(Entity*); +void (*const Takkuri_Functions[])(Entity*); void (*const gUnk_080CFF54[])(TakkuriEntity*); void (*const gUnk_080CFF6C[])(TakkuriEntity*); @@ -33,14 +33,14 @@ void sub_0803BF48(TakkuriEntity* this); void sub_0803C120(TakkuriEntity* this); void Takkuri(Entity* this) { - gUnk_080CFF3C[GetNextFunction(this)](this); + Takkuri_Functions[GetNextFunction(this)](this); } -void sub_0803BB98(TakkuriEntity* this) { +void Takkuri_OnTick(TakkuriEntity* this) { gUnk_080CFF54[super->action](this); } -void sub_0803BBB0(TakkuriEntity* this) { +void Takkuri_OnCollision(TakkuriEntity* this) { if (super->bitfield & 0x80) { if ((super->bitfield & 0x7f) == 0) { u32 direction; @@ -71,7 +71,7 @@ void sub_0803BBB0(TakkuriEntity* this) { GetNextFrame(super); } -void sub_0803BC34(TakkuriEntity* this) { +void Takkuri_OnGrabbed(TakkuriEntity* this) { gUnk_080CFF6C[super->subAction](this); GetNextFrame(super); if (sub_0806F520(super) == 0) { @@ -95,7 +95,7 @@ void sub_0803BC88(TakkuriEntity* this) { void sub_0803BC90(TakkuriEntity* this) { if (sub_0806F3E4(super)) { - sub_0804A7D4(super); + GenericDeath(super); } } @@ -346,9 +346,13 @@ void sub_0803C120(TakkuriEntity* this) { super->spritePriority.b1 = 3; } -void (*const gUnk_080CFF3C[])(Entity*) = { - (EntityActionPtr)sub_0803BB98, (EntityActionPtr)sub_0803BBB0, sub_08001324, sub_0804A7D4, sub_08001242, - (EntityActionPtr)sub_0803BC34, +void (*const Takkuri_Functions[])(Entity*) = { + (EntityActionPtr)Takkuri_OnTick, + (EntityActionPtr)Takkuri_OnCollision, + GenericKnockback, + GenericDeath, + GenericConfused, + (EntityActionPtr)Takkuri_OnGrabbed, }; void (*const gUnk_080CFF54[])(TakkuriEntity*) = { diff --git a/src/enemy/tektite.c b/src/enemy/tektite.c index 168f69b6..c833daa1 100644 --- a/src/enemy/tektite.c +++ b/src/enemy/tektite.c @@ -10,28 +10,28 @@ static void sub_0802F45C(Entity* this); -extern void (*const gUnk_080CDED0[])(Entity*); +extern void (*const Tektite_Functions[])(Entity*); extern void (*const gUnk_080CDEE8[])(Entity*); void Tektite(Entity* this) { - EnemyFunctionHandler(this, gUnk_080CDED0); + EnemyFunctionHandler(this, Tektite_Functions); SetChildOffset(this, 0, 1, -0x10); } -void sub_0802F138(Entity* this) { +void Tektite_OnTick(Entity* this) { gUnk_080CDEE8[this->action](this); } extern u8 gUnk_080CDEF8[]; -void sub_0802F150(Entity* this) { +void Tektite_OnCollision(Entity* this) { u32 bVar1; u32 uVar2; - if (this->field_0x43 != 0) { - sub_0804A9FC(this, 0x1c); + if (this->confusedTime != 0) { + Create0x68FX(this, FX_STARS); } - sub_0804AA30(this, gUnk_080CDED0); + EnemyFunctionHandlerAfterCollision(this, Tektite_Functions); if ((this->bitfield & 0x80) != 0) { switch (this->bitfield & 0x3f) { case 0x14: @@ -59,11 +59,11 @@ void sub_0802F150(Entity* this) { } } -void nullsub_16(Entity* this) { +void Tektite_OnGrabbed(Entity* this) { } -void sub_0802F1F0(Entity* this) { - sub_08001242(this); +void Tektite_OnConfused(Entity* this) { + GenericConfused(this); if (this->z.HALF.HI != 0) { GravityUpdate(this, this->field_0x80.HWORD); } diff --git a/src/enemy/tektiteGolden.c b/src/enemy/tektiteGolden.c index 3841377e..2fd5458f 100644 --- a/src/enemy/tektiteGolden.c +++ b/src/enemy/tektiteGolden.c @@ -10,25 +10,25 @@ extern void sub_08038168(Entity*); -extern void (*const gUnk_080CF4A0)(Entity*); +extern void (*const TektiteGolden_Functions)(Entity*); extern void (*const gUnk_080CF4B8[])(Entity*); void TektiteGolden(Entity* this) { - EnemyFunctionHandler(this, &gUnk_080CF4A0); + EnemyFunctionHandler(this, &TektiteGolden_Functions); SetChildOffset(this, 0, 1, -0x10); } -void sub_08037EE8(Entity* this) { +void TektiteGolden_OnTick(Entity* this) { gUnk_080CF4B8[this->action](this); } -void sub_08037F00(Entity* this) { +void TektiteGolden_OnCollision(Entity* this) { u32 uVar1; - if (this->field_0x43 != 0) { - sub_0804A9FC(this, 0x1c); + if (this->confusedTime != 0) { + Create0x68FX(this, FX_STARS); } - sub_0804AA30(this, &gUnk_080CF4A0); + EnemyFunctionHandlerAfterCollision(this, &TektiteGolden_Functions); if (this->bitfield == 0x94) { this->action = 1; this->subAction = 0; @@ -45,7 +45,7 @@ void sub_08037F00(Entity* this) { } } -void sub_08037F58(Entity* this) { +void TektiteGolden_OnDeath(Entity* this) { u32 uVar1; if ((this->field_0x3a & 2) == 0) { @@ -59,8 +59,8 @@ void sub_08037F58(Entity* this) { CreateDeathFx(this, 0xff, uVar1); } -void sub_08037F84(Entity* this) { - sub_08001242(this); +void TektiteGolden_OnConfused(Entity* this) { + GenericConfused(this); if (this->z.HALF.HI != 0) { GravityUpdate(this, 0x3000); } diff --git a/src/enemy/vaatiArm.c b/src/enemy/vaatiArm.c index 4d43d69c..4ced8ccc 100644 --- a/src/enemy/vaatiArm.c +++ b/src/enemy/vaatiArm.c @@ -30,8 +30,8 @@ typedef struct VaatiArm_HeapStruct { u32 sub_080437DC(Entity*); u32 sub_08043C98(Entity*); -void sub_08042570(Entity*); -void sub_08042588(Entity*); +void VaatiArm_OnTick(Entity*); +void VaatiArm_OnCollision(Entity*); void sub_080425B4(Entity*); void sub_08042818(Entity*); void sub_08042870(Entity*); @@ -40,7 +40,7 @@ void sub_08042C14(Entity*); void sub_0804325C(Entity*); void sub_08043420(Entity*); void sub_08043680(Entity*); -void nullsub_170(Entity*); +void VaatiArm_OnGrabbed(Entity*); void sub_08042654(Entity*); void sub_0804259C(Entity*); void sub_08043A10(Entity*); @@ -94,8 +94,8 @@ void sub_08043700(Entity*); void sub_08043738(Entity*); void sub_08043770(Entity*); -void (*const gUnk_080D1230[])(Entity*) = { - sub_08042570, sub_08042588, sub_08001324, sub_0804A7D4, sub_08001242, nullsub_170, +void (*const VaatiArm_Functions[])(Entity*) = { + VaatiArm_OnTick, VaatiArm_OnCollision, GenericKnockback, GenericDeath, GenericConfused, VaatiArm_OnGrabbed, }; void (*const gUnk_080D1248[])(Entity*) = { sub_0804259C, sub_08044078, sub_08044078, sub_08044078, sub_080440CC, @@ -174,18 +174,18 @@ extern const Hitbox gUnk_080FD450; extern const Hitbox gUnk_080FD538; void VaatiArm(Entity* this) { - gUnk_080D1230[GetNextFunction(this)](this); + VaatiArm_Functions[GetNextFunction(this)](this); } -void sub_08042570(Entity* this) { +void VaatiArm_OnTick(Entity* this) { gUnk_080D1248[this->type](this); } -void sub_08042588(Entity* this) { - sub_0804AA30(this, gUnk_080D1230); +void VaatiArm_OnCollision(Entity* this) { + EnemyFunctionHandlerAfterCollision(this, VaatiArm_Functions); } -void nullsub_170(Entity* this) { +void VaatiArm_OnGrabbed(Entity* this) { } void sub_0804259C(Entity* this) { diff --git a/src/enemy/vaatiEyesMacro.c b/src/enemy/vaatiEyesMacro.c index e53d51f1..8a6a8c31 100644 --- a/src/enemy/vaatiEyesMacro.c +++ b/src/enemy/vaatiEyesMacro.c @@ -10,8 +10,8 @@ extern s16 gUnk_080B4488[]; -void VaatiEyesMacroFunction0(Entity*); -void VaatiEyesMacroFunction1(Entity*); +void VaatiEyesMacro_OnTick(Entity*); +void VaatiEyesMacro_OnCollision(Entity*); void VaatiEyesMacroFunction0Type0(Entity*); void VaatiEyesMacroFunction0Type1(Entity*); void VaatiEyesMacroFunction0Type2(Entity*); @@ -25,8 +25,9 @@ void sub_0802EFB8(Entity*); void sub_0802EF58(Entity*); void sub_0802F04C(Entity*); -void (*const vaatiEyesMacroFunctions[])(Entity*) = { - VaatiEyesMacroFunction0, VaatiEyesMacroFunction1, sub_08001324, sub_0804A7D4, sub_08001242, VaatiEyesMacroFunction0, +void (*const VaatiEyesMacro_Functions[])(Entity*) = { + VaatiEyesMacro_OnTick, VaatiEyesMacro_OnCollision, GenericKnockback, GenericDeath, + GenericConfused, VaatiEyesMacro_OnTick, }; void (*const vaatiEyesMacroFunction0Types[])(Entity*) = { VaatiEyesMacroFunction0Type0, @@ -50,18 +51,18 @@ const s8 gUnk_080CDE90[] = { -2, -3, -4, -5, -6, -5, -4, -3 }; const u16 gUnk_080CDE98[] = { 0xc0, 0x100, 0x140, 0x180 }; void VaatiEyesMacro(Entity* this) { - vaatiEyesMacroFunctions[GetNextFunction(this)](this); + VaatiEyesMacro_Functions[GetNextFunction(this)](this); SetChildOffset(this, 0, 1, -0x10); } -void VaatiEyesMacroFunction0(Entity* this) { +void VaatiEyesMacro_OnTick(Entity* this) { vaatiEyesMacroFunction0Types[this->type](this); if (this->type < 2) { sub_0802EF90(this); } } -void VaatiEyesMacroFunction1(Entity* this) { +void VaatiEyesMacro_OnCollision(Entity* this) { if (this->type == 0) { if (this->health == 0) { gRoomTransition.field_0x39 &= ~(1 << (gRoomTransition.field_0x3c + 2)); @@ -86,10 +87,10 @@ void VaatiEyesMacroFunction1(Entity* this) { this->health = 0xff; } } - if (this->field_0x43 != 0) { - sub_0804A9FC(this, 0x1c); + if (this->confusedTime != 0) { + Create0x68FX(this, FX_STARS); } - sub_0804AA30(this, vaatiEyesMacroFunctions); + EnemyFunctionHandlerAfterCollision(this, VaatiEyesMacro_Functions); } void VaatiEyesMacroFunction0Type0(Entity* this) { diff --git a/src/enemy/vaatiProjectile.c b/src/enemy/vaatiProjectile.c index 440a4287..9cd3c973 100644 --- a/src/enemy/vaatiProjectile.c +++ b/src/enemy/vaatiProjectile.c @@ -12,11 +12,11 @@ extern Entity* gUnk_020000B0; extern const ScreenTransitionData gUnk_0813AB94; bool32 sub_0803E4A0(Entity*); -void VaatiProjectileFunction0(Entity*); -void VaatiProjectileFunction1(Entity*); -void sub_08001328(Entity*); -void VaatiProjectileFunction3(Entity*); -void VaatiProjectileNoop(Entity*); +void VaatiProjectile_OnTick(Entity*); +void VaatiProjectile_OnCollision(Entity*); +void GenericKnockback2(Entity*); +void VaatiProjectile_OnDeath(Entity*); +void VaatiProjectile_OnGrabbed(Entity*); void VaatiProjectileFunction0Action0(Entity*); void VaatiProjectileFunction0Action1(Entity*); void VaatiProjectileFunction0Action2(Entity*); @@ -31,9 +31,9 @@ void sub_0803E444(Entity*); void sub_0803E480(Entity*); void sub_0803E4D8(Entity*); -void (*const vaatiProjectileFunctions[])(Entity*) = { - VaatiProjectileFunction0, VaatiProjectileFunction1, sub_08001328, VaatiProjectileFunction3, sub_08001242, - VaatiProjectileNoop, +void (*const VaatiProjectile_Functions[])(Entity*) = { + VaatiProjectile_OnTick, VaatiProjectile_OnCollision, GenericKnockback2, VaatiProjectile_OnDeath, + GenericConfused, VaatiProjectile_OnGrabbed, }; void (*const vaatiProjectileFunction0Actions[])(Entity*) = { VaatiProjectileFunction0Action0, VaatiProjectileFunction0Action1, VaatiProjectileFunction0Action2, @@ -48,14 +48,14 @@ void VaatiProjectile(Entity* this) { this->health = 0; this->parent = NULL; } - vaatiProjectileFunctions[GetNextFunction(this)](this); + VaatiProjectile_Functions[GetNextFunction(this)](this); } -void VaatiProjectileFunction0(Entity* this) { +void VaatiProjectile_OnTick(Entity* this) { vaatiProjectileFunction0Actions[this->action](this); } -void VaatiProjectileFunction1(Entity* this) { +void VaatiProjectile_OnCollision(Entity* this) { Entity* entity; if (this->bitfield == 0x80) { @@ -82,18 +82,18 @@ void VaatiProjectileFunction1(Entity* this) { } #endif } - sub_0804AA30(this, vaatiProjectileFunctions); + EnemyFunctionHandlerAfterCollision(this, VaatiProjectile_Functions); } -void VaatiProjectileFunction3(Entity* this) { +void VaatiProjectile_OnDeath(Entity* this) { if (this->parent != NULL) { this->parent->field_0xf--; this->parent = NULL; } - sub_0804A7D4(this); + GenericDeath(this); } -void VaatiProjectileNoop(Entity* this) { +void VaatiProjectile_OnGrabbed(Entity* this) { } void VaatiProjectileFunction0Action0(Entity* this) { diff --git a/src/enemy/vaatiTransfigured.c b/src/enemy/vaatiTransfigured.c index e3fb790c..a9abc3d9 100644 --- a/src/enemy/vaatiTransfigured.c +++ b/src/enemy/vaatiTransfigured.c @@ -15,7 +15,7 @@ void sub_08040AD4(Entity*); void sub_08040670(Entity*); void sub_080406A0(Entity*); void sub_08040770(Entity*); -void sub_080AF18C(Entity*); +extern void Knockback1(Entity*); u32 sub_08040934(Entity*); void sub_08040648(Entity*, u32, u32); @@ -562,7 +562,7 @@ void VaatiTransfiguredType0Action7(Entity* this) { this->spriteSettings.draw = 0; } } else { - sub_0804A7D4(this); + GenericDeath(this); } UpdateAnimationSingleFrame(this); return; @@ -1071,7 +1071,7 @@ void sub_080409B0(Entity* this) { if (this->field_0x80.HALF.HI < 3) { if (this->knockbackDuration != 0) { - sub_080AF18C(this); + Knockback1(this); } } else { if (((this->bitfield & 0x80) != 0) && (0 < this->iframes)) { diff --git a/src/enemy/vaatiTransfiguredEye.c b/src/enemy/vaatiTransfiguredEye.c index e02f2f1b..cd42c7a3 100644 --- a/src/enemy/vaatiTransfiguredEye.c +++ b/src/enemy/vaatiTransfiguredEye.c @@ -14,22 +14,22 @@ void sub_08045A00(Entity*); void sub_08045A28(Entity*); -void VaatiTransfiguredEyeFunction0(Entity*); -void VaatiTransfiguredEyeFunction1(Entity*); -void VaatiTransfiguredEyeNoop(Entity*); +void VaatiTransfiguredEye_OnTick(Entity*); +void VaatiTransfiguredEye_OnCollision(Entity*); +void VaatiTransfiguredEye_OnDragged(Entity*); void VaatiTransfiguredEyeFunction0Action0(Entity*); void VaatiTransfiguredEyeFunction0Action1(Entity*); void VaatiTransfiguredEyeFunction0Action2(Entity*); void VaatiTransfiguredEyeFunction0Action3(Entity*); void VaatiTransfiguredEyeFunction0Action4(Entity*); -void (*const vaatiTransfiguredEyeFunctions[])(Entity*) = { - VaatiTransfiguredEyeFunction0, - VaatiTransfiguredEyeFunction1, - VaatiTransfiguredEyeFunction0, - sub_0804A7D4, - sub_08001242, - VaatiTransfiguredEyeNoop, +void (*const VaatiTransfiguredEye_Functions[])(Entity*) = { + VaatiTransfiguredEye_OnTick, + VaatiTransfiguredEye_OnCollision, + VaatiTransfiguredEye_OnTick, + GenericDeath, + GenericConfused, + VaatiTransfiguredEye_OnDragged, }; void (*const vaatiTransfiguredEyeFunction0Actions[])(Entity*) = { @@ -46,14 +46,14 @@ const struct xy gUnk_080D18B4[] = { { 0xe8, 0xf6 }, { 0xf6, 0xe8 }, { 0x0a, 0xe8 { 0x18, 0x0a }, { 0x0a, 0x18 }, { 0xf6, 0x18 }, { 0xe8, 0x0a } }; void VaatiTransfiguredEye(Entity* this) { - EnemyFunctionHandler(this, vaatiTransfiguredEyeFunctions); + EnemyFunctionHandler(this, VaatiTransfiguredEye_Functions); } -void VaatiTransfiguredEyeFunction0(Entity* this) { +void VaatiTransfiguredEye_OnTick(Entity* this) { vaatiTransfiguredEyeFunction0Actions[this->action](this); } -void VaatiTransfiguredEyeFunction1(Entity* this) { +void VaatiTransfiguredEye_OnCollision(Entity* this) { u8 bVar1; Entity* pEVar4; @@ -89,10 +89,10 @@ void VaatiTransfiguredEyeFunction1(Entity* this) { } } } - sub_0804AA30(this, vaatiTransfiguredEyeFunctions); + EnemyFunctionHandlerAfterCollision(this, VaatiTransfiguredEye_Functions); } -void VaatiTransfiguredEyeNoop(Entity* this) { +void VaatiTransfiguredEye_OnDragged(Entity* this) { } void VaatiTransfiguredEyeFunction0Action0(Entity* this) { diff --git a/src/enemy/wallMaster.c b/src/enemy/wallMaster.c index 9c91c691..7f08b67e 100644 --- a/src/enemy/wallMaster.c +++ b/src/enemy/wallMaster.c @@ -14,21 +14,21 @@ extern ScreenTransitionData* gUnk_0813AB1C[]; void sub_0802A78C(Entity*); void sub_0802A7D0(Entity*); -extern void (*const gUnk_080CD07C[])(Entity*); +extern void (*const WallMaster_Functions[])(Entity*); extern void (*const gUnk_080CD094[])(Entity*); extern const s8 gUnk_080CD0B0[]; void WallMaster(Entity* this) { - gUnk_080CD07C[GetNextFunction(this)](this); + WallMaster_Functions[GetNextFunction(this)](this); SetChildOffset(this, 0, 1, -0x10); } -void sub_0802A434(Entity* this) { +void WallMaster_OnTick(Entity* this) { sub_0802A78C(this); gUnk_080CD094[this->action](this); } -void sub_0802A454(Entity* this) { +void WallMaster_OnCollision(Entity* this) { if (this->hitType != 0x75 && ((this->bitfield & 0x7f) == 0 || (this->bitfield & 0x7f) == 0x1e)) { this->action = 5; COLLISION_OFF(this); @@ -44,14 +44,14 @@ void sub_0802A454(Entity* this) { if (this->knockbackDuration > 4) this->knockbackDuration -= 4; - if (this->field_0x43 != 0) { - sub_0804A9FC(this, 0x1c); + if (this->confusedTime != 0) { + Create0x68FX(this, FX_STARS); } - sub_0804AA30(this, gUnk_080CD07C); + EnemyFunctionHandlerAfterCollision(this, WallMaster_Functions); } -void nullsub_142(Entity* this) { +void WallMaster_OnGrabbed(Entity* this) { /* ... */ } @@ -196,13 +196,13 @@ void sub_0802A7D0(Entity* this) { sub_0805EC9C(this, unk, unk, 0); } // clang-format off -void (*const gUnk_080CD07C[])(Entity*) = { - sub_0802A434, - sub_0802A454, - sub_08001328, - sub_0804A7D4, - sub_08001242, - nullsub_142, +void (*const WallMaster_Functions[])(Entity*) = { + WallMaster_OnTick, + WallMaster_OnCollision, + GenericKnockback2, + GenericDeath, + GenericConfused, + WallMaster_OnGrabbed, }; void (*const gUnk_080CD094[])(Entity*) = { diff --git a/src/enemy/wallMaster2.c b/src/enemy/wallMaster2.c index b2d5ba9f..3ee61f51 100644 --- a/src/enemy/wallMaster2.c +++ b/src/enemy/wallMaster2.c @@ -9,7 +9,7 @@ #include "area.h" #include "functions.h" -extern void sub_08001328(Entity*); +extern void GenericKnockback2(Entity*); extern Entity* gUnk_020000B0; extern ScreenTransitionData* gUnk_0813AB1C[]; @@ -18,22 +18,22 @@ void sub_0802CF64(Entity*); void sub_0802CF8C(Entity*); void sub_0802CFD8(Entity*); -extern void (*const gUnk_080CD6FC[])(Entity*); +extern void (*const WallMaster2_Functions[])(Entity*); extern void (*const gUnk_080CD714[])(Entity*); extern const u16 gUnk_080CD728[]; extern const u16 gUnk_080CD730[]; extern const s8 gUnk_080CD740[]; void WallMaster2(Entity* this) { - gUnk_080CD6FC[GetNextFunction(this)](this); + WallMaster2_Functions[GetNextFunction(this)](this); SetChildOffset(this, 0, 1, -0x10); } -void sub_0802CC68(Entity* this) { +void WallMaster2_OnTick(Entity* this) { gUnk_080CD714[this->action](this); } -void sub_0802CC80(Entity* this) { +void WallMaster2_OnCollision(Entity* this) { u8 bVar1 = this->bitfield & 0x7f; switch (this->bitfield & 0x7f) { case 0 ... 1: @@ -44,13 +44,13 @@ void sub_0802CC80(Entity* this) { gPlayerEntity.flags &= ~ENT_COLLIDE; break; } - if (this->field_0x43 != 0) { - sub_0804A9FC(this, 0x1c); + if (this->confusedTime != 0) { + Create0x68FX(this, FX_STARS); } - sub_0804AA30(this, gUnk_080CD6FC); + EnemyFunctionHandlerAfterCollision(this, WallMaster2_Functions); } -void nullsub_151(Entity* this) { +void WallMaster2_OnGrabbed(Entity* this) { /* ... */ } @@ -173,13 +173,13 @@ void sub_0802CFD8(Entity* this) { } // clang-format off -void (*const gUnk_080CD6FC[])(Entity*) = { - sub_0802CC68, - sub_0802CC80, - sub_08001328, - sub_0804A7D4, - sub_08001242, - nullsub_151, +void (*const WallMaster2_Functions[])(Entity*) = { + WallMaster2_OnTick, + WallMaster2_OnCollision, + GenericKnockback2, + GenericDeath, + GenericConfused, + WallMaster2_OnGrabbed, }; void (*const gUnk_080CD714[])(Entity*) = { diff --git a/src/enemy/wisp.c b/src/enemy/wisp.c index 1d2f7a98..540ad1f9 100644 --- a/src/enemy/wisp.c +++ b/src/enemy/wisp.c @@ -12,21 +12,21 @@ static void sub_08033744(Entity* this); -extern void (*const gUnk_080CEB74[])(Entity*); +extern void (*const Wisp_Functions[])(Entity*); extern void (*const gUnk_080CEB8C[])(Entity*); extern void (*const gUnk_080CEB98[])(Entity*); extern u8 gUnk_080CEBA4[]; void Wisp(Entity* this) { - EnemyFunctionHandler(this, gUnk_080CEB74); + EnemyFunctionHandler(this, Wisp_Functions); } -void sub_0803354C(Entity* this) { +void Wisp_OnTick(Entity* this) { gUnk_080CEB8C[this->action](this); } -void sub_08033564(Entity* this) { +void Wisp_OnCollision(Entity* this) { u32 bits; Entity* ent; @@ -68,7 +68,7 @@ void sub_08033564(Entity* this) { } } -void sub_0803362C(Entity* this) { +void Wisp_OnGrabbed(Entity* this) { if (sub_0806F520() != 0) { gUnk_080CEB98[this->subAction](this); } @@ -84,7 +84,7 @@ void sub_08033658(Entity* this) { void sub_08033660(Entity* this) { if (sub_0806F3E4(this)) { - sub_0804A7D4(this); + GenericDeath(this); } } diff --git a/src/enemy/wizzrobeFire.c b/src/enemy/wizzrobeFire.c index 0da0ca09..9cf0272d 100644 --- a/src/enemy/wizzrobeFire.c +++ b/src/enemy/wizzrobeFire.c @@ -23,11 +23,11 @@ void WizzrobeFire_OnTick(WizzrobeEntity* this) { WizzrobeFire_Actions[super->action](this); } -void sub_0802FB74(WizzrobeEntity* this) { - if (super->field_0x43 != 0) { - sub_0804A9FC(super, 0x1c); +void WizzrobeFire_OnCollision(WizzrobeEntity* this) { + if (super->confusedTime != 0) { + Create0x68FX(super, FX_STARS); } - sub_0804AA30(super, WizzrobeFire_Functions); + EnemyFunctionHandlerAfterCollision(super, WizzrobeFire_Functions); if (super->health == 0) { SetTile(this->tileIndex, this->tilePosition, super->collisionLayer); } @@ -144,10 +144,10 @@ void WizzrobeFire_Action2(WizzrobeEntity* this) { void (*const WizzrobeFire_Functions[])(WizzrobeEntity*) = { WizzrobeFire_OnTick, - sub_0802FB74, - (void (*)(WizzrobeEntity*))sub_08001324, - (void (*)(WizzrobeEntity*))sub_0804A7D4, - (void (*)(WizzrobeEntity*))sub_08001242, + WizzrobeFire_OnCollision, + (void (*)(WizzrobeEntity*))GenericKnockback, + (void (*)(WizzrobeEntity*))GenericDeath, + (void (*)(WizzrobeEntity*))GenericConfused, WizzrobeFire_OnTick, }; void (*const WizzrobeFire_Actions[])(WizzrobeEntity*) = { diff --git a/src/enemy/wizzrobeIce.c b/src/enemy/wizzrobeIce.c index 9dbb5377..b053eb71 100644 --- a/src/enemy/wizzrobeIce.c +++ b/src/enemy/wizzrobeIce.c @@ -24,11 +24,11 @@ void WizzrobeIce_OnTick(WizzrobeEntity* this) { WizzrobeIce_Actions[super->action](this); } -void sub_0802FE18(WizzrobeEntity* this) { - if (super->field_0x43 != 0) { - sub_0804A9FC(super, 0x1c); +void WizzrobeIce_OnCollision(WizzrobeEntity* this) { + if (super->confusedTime != 0) { + Create0x68FX(super, FX_STARS); } - sub_0804AA30(super, WizzrobeIce_Functions); + EnemyFunctionHandlerAfterCollision(super, WizzrobeIce_Functions); if (super->bitfield == 0x87) { Entity* obj = CreateObject(OBJECT_2A, 3, 0); if (obj != NULL) { @@ -150,10 +150,10 @@ void WizzrobeIce_Action2(WizzrobeEntity* this) { void (*const WizzrobeIce_Functions[])(WizzrobeEntity*) = { WizzrobeIce_OnTick, - sub_0802FE18, - (void (*)(WizzrobeEntity*))sub_08001324, - (void (*)(WizzrobeEntity*))sub_0804A7D4, - (void (*)(WizzrobeEntity*))sub_08001242, + WizzrobeIce_OnCollision, + (void (*)(WizzrobeEntity*))GenericKnockback, + (void (*)(WizzrobeEntity*))GenericDeath, + (void (*)(WizzrobeEntity*))GenericConfused, WizzrobeIce_OnTick, }; void (*const WizzrobeIce_Actions[])(WizzrobeEntity*) = { diff --git a/src/enemy/wizzrobeWind.c b/src/enemy/wizzrobeWind.c index 8815b5b5..68c883d9 100644 --- a/src/enemy/wizzrobeWind.c +++ b/src/enemy/wizzrobeWind.c @@ -30,11 +30,11 @@ void WizzrobeWind_OnTick(WizzrobeEntity* this) { WizzrobeWind_Actions[super->action](this); } -void sub_0802F4E4(WizzrobeEntity* this) { - if (super->field_0x43 != 0) { - sub_0804A9FC(super, 0x1c); +void WizzrobeWind_OnCollision(WizzrobeEntity* this) { + if (super->confusedTime != 0) { + Create0x68FX(super, FX_STARS); } - sub_0804AA30(super, WizzrobeWind_Functions); + EnemyFunctionHandlerAfterCollision(super, WizzrobeWind_Functions); if (super->bitfield == 0x87) { Entity* obj = CreateObject(OBJECT_2A, 3, 0); if (obj != NULL) { @@ -315,10 +315,10 @@ bool32 sub_0802FA88(WizzrobeEntity* this) { void (*const WizzrobeWind_Functions[])(WizzrobeEntity*) = { WizzrobeWind_OnTick, - sub_0802F4E4, - (void (*)(WizzrobeEntity*))sub_08001324, - (void (*)(WizzrobeEntity*))sub_0804A7D4, - (void (*)(WizzrobeEntity*))sub_08001242, + WizzrobeWind_OnCollision, + (void (*)(WizzrobeEntity*))GenericKnockback, + (void (*)(WizzrobeEntity*))GenericDeath, + (void (*)(WizzrobeEntity*))GenericConfused, WizzrobeWind_OnTick, }; void (*const WizzrobeWind_Actions[])(WizzrobeEntity*) = { diff --git a/src/enemyUtils.c b/src/enemyUtils.c index d37c33a1..5e60a0d9 100644 --- a/src/enemyUtils.c +++ b/src/enemyUtils.c @@ -96,7 +96,7 @@ bool32 LoadEnemySprite(Entity* entity, const EnemyDefinition* definition) { ASM_FUNC("asm/non_matching/enemyUtils/sub_0804A720.inc", void sub_0804A720(Entity* this)) void CreateDeathFx(GenericEntity* parent, u32 parentId, u32 fixedItem); -void sub_0804A7D4(Entity* this) { +void GenericDeath(Entity* this) { CreateDeathFx((GenericEntity*)this, this->id, 0); } @@ -209,7 +209,7 @@ void SetChildOffset(Entity* entity, s32 xOffset, s32 yOffset, s32 zOffset) { } } -Entity* sub_0804A9FC(Entity* parent, u32 fxType) { +Entity* Create0x68FX(Entity* parent, u32 fxType) { Entity* fx; GenericEntity* this = (GenericEntity*)parent; diff --git a/src/movement.c b/src/movement.c index da74634c..36d2fd2a 100644 --- a/src/movement.c +++ b/src/movement.c @@ -683,13 +683,13 @@ u32 sub_080AF160(Entity* this) { return result; } -void sub_080AF18C(Entity* this) { +void Knockback1(Entity* this) { this->knockbackDuration--; sub_080AE58C(this, this->knockbackDirection, 2); sub_080AE7E8(this, this->field_0x46, this->knockbackDirection, 2); } -void sub_080AF1BC(Entity* this) { +void Knockback2(Entity* this) { this->knockbackDuration--; sub_080AE58C(this, this->knockbackDirection, 1); sub_080AE7E8(this, this->field_0x46, this->knockbackDirection, 1); diff --git a/src/projectile/mandiblesProjectile.c b/src/projectile/mandiblesProjectile.c index 26e2fe24..9d44a724 100644 --- a/src/projectile/mandiblesProjectile.c +++ b/src/projectile/mandiblesProjectile.c @@ -25,7 +25,7 @@ void MandiblesProjectile(Entity* this) { if (entity == NULL) { entity = this->parent; } - if ((entity->field_0x43 == 0) && ((this->flags & ENT_COLLIDE) == 0)) { + if ((entity->confusedTime == 0) && ((this->flags & ENT_COLLIDE) == 0)) { COLLISION_ON(this); } MandiblesProjectile_Functions[GetNextFunction(this)](this); @@ -50,7 +50,7 @@ void sub_080A9EBC(Entity* this) { UpdateAnimationSingleFrame(this); break; case 3: - if (this->field_0x43 != 0) { + if (this->confusedTime != 0) { this->field_0x82.HALF.LO = 2; this->animationState = 0xff; sub_080AA270(this); @@ -127,7 +127,7 @@ void MandiblesProjectile_Action3(Entity* this) { PositionRelative(entity, this, Q_16_16(tmp[0]), Q_16_16(tmp[1])); } } - if (entity->field_0x43 == 0) { + if (entity->confusedTime == 0) { if (this->field_0xf != 0) { this->field_0xf -= 1; } else { @@ -217,7 +217,7 @@ void sub_080AA1D8(Entity* this) { } else { PositionRelative(parent, this, Q_16_16(tmp[0]), Q_16_16(tmp[1])); } - if (parent->field_0x43 != 0) { + if (parent->confusedTime != 0) { if ((this->flags & ENT_COLLIDE) != 0) { COLLISION_OFF(this); } diff --git a/src/projectile/moblinSpear.c b/src/projectile/moblinSpear.c index 09decdd6..a9c806e4 100644 --- a/src/projectile/moblinSpear.c +++ b/src/projectile/moblinSpear.c @@ -76,7 +76,7 @@ void MoblinSpear_Action1(Entity* this) { this->hitbox->offset_y = *a++; this->hitbox->width = *a++; this->hitbox->height = *a++; - if (parent->field_0x43 != 0) { + if (parent->confusedTime != 0) { if ((this->flags & ENT_COLLIDE) != 0) { COLLISION_OFF(this); }