mirror of https://github.com/zeldaret/tmc.git
Rename enemy functions
This commit is contained in:
parent
75c57e3124
commit
d6c79aa263
22
asm/enemy.s
22
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
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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*);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
/* ... */
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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[] = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
|
|
@ -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*) = {
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue