mirror of https://github.com/zeldaret/tmc.git
decompile LikeLike and SpearMoblin
remove redundant function definitions
This commit is contained in:
parent
c0a95b9063
commit
7ecc2caf21
652
asm/likeLike.s
652
asm/likeLike.s
|
|
@ -1,652 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start LikeLike
|
||||
LikeLike: @ 0x08027D6C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r1, _08027D88 @ =gUnk_080CC6FC
|
||||
bl EnemyFunctionHandler
|
||||
movs r3, #0x10
|
||||
rsbs r3, r3, #0
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
movs r2, #1
|
||||
bl SetChildOffset
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08027D88: .4byte gUnk_080CC6FC
|
||||
|
||||
thumb_func_start sub_08027D8C
|
||||
sub_08027D8C: @ 0x08027D8C
|
||||
push {lr}
|
||||
ldr r2, _08027DA0 @ =gUnk_080CC714
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08027DA0: .4byte gUnk_080CC714
|
||||
|
||||
thumb_func_start sub_08027DA4
|
||||
sub_08027DA4: @ 0x08027DA4
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x3f
|
||||
ldrb r0, [r2]
|
||||
cmp r0, #1
|
||||
bne _08027DC4
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
movs r0, #0x8c
|
||||
strb r0, [r2]
|
||||
b _08027E0E
|
||||
_08027DC4:
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #7
|
||||
bne _08027DD2
|
||||
adds r0, r4, #0
|
||||
bl sub_0802810C
|
||||
b _08027E0E
|
||||
_08027DD2:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x41
|
||||
ldrb r2, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _08027E0E
|
||||
movs r1, #0x7f
|
||||
ands r1, r2
|
||||
cmp r1, #0
|
||||
bne _08027E0E
|
||||
movs r0, #7
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x5f
|
||||
strb r0, [r4, #0xe]
|
||||
strb r1, [r4, #0xf]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x3b
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0xfc
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r0, _08027E38 @ =gPlayerEntity
|
||||
adds r0, #0x29
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x1a
|
||||
lsrs r0, r0, #0x1d
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x83
|
||||
strb r0, [r1]
|
||||
_08027E0E:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x45
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08027E1C
|
||||
movs r0, #0x20
|
||||
strb r0, [r4, #0xe]
|
||||
_08027E1C:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x43
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08027E2E
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x1c
|
||||
bl sub_0804A9FC
|
||||
_08027E2E:
|
||||
ldr r1, _08027E3C @ =gUnk_080CC6FC
|
||||
adds r0, r4, #0
|
||||
bl sub_0804AA30
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08027E38: .4byte gPlayerEntity
|
||||
_08027E3C: .4byte gUnk_080CC6FC
|
||||
|
||||
thumb_func_start sub_08027E40
|
||||
sub_08027E40: @ 0x08027E40
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #2
|
||||
bne _08027E62
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x80
|
||||
ldrb r0, [r5]
|
||||
cmp r0, #0xff
|
||||
beq _08027E62
|
||||
adds r0, r4, #0
|
||||
movs r1, #3
|
||||
bl sub_0805E3A0
|
||||
ldrb r0, [r5]
|
||||
bl sub_08028224
|
||||
_08027E62:
|
||||
adds r0, r4, #0
|
||||
bl sub_0804A7D4
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start nullsub_139
|
||||
nullsub_139: @ 0x08027E6C
|
||||
bx lr
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08027E70
|
||||
sub_08027E70: @ 0x08027E70
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_0804A720
|
||||
ldrb r3, [r4, #0xa]
|
||||
cmp r3, #1
|
||||
beq _08027EA6
|
||||
cmp r3, #1
|
||||
bgt _08027E88
|
||||
cmp r3, #0
|
||||
beq _08027E8E
|
||||
b _08027EE4
|
||||
_08027E88:
|
||||
cmp r3, #2
|
||||
beq _08027EC4
|
||||
b _08027EE4
|
||||
_08027E8E:
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #7
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
strb r3, [r4, #0xe]
|
||||
b _08027EE4
|
||||
_08027EA6:
|
||||
movs r2, #1
|
||||
strb r3, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x18]
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl InitializeAnimation
|
||||
b _08027EE4
|
||||
_08027EC4:
|
||||
movs r3, #0
|
||||
movs r2, #1
|
||||
strb r2, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
strb r3, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x3f
|
||||
strb r2, [r0]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
_08027EE4:
|
||||
movs r0, #0
|
||||
strb r0, [r4, #0x15]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x82
|
||||
strb r0, [r1]
|
||||
strb r0, [r4, #0x14]
|
||||
adds r1, #1
|
||||
strb r0, [r1]
|
||||
subs r1, #3
|
||||
movs r0, #0xff
|
||||
strb r0, [r1]
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08027EFC
|
||||
sub_08027EFC: @ 0x08027EFC
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x3f
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #1
|
||||
beq _08027F7C
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl sub_08049FDC
|
||||
cmp r0, #0
|
||||
beq _08027F68
|
||||
adds r0, r4, #0
|
||||
bl sub_08049FA0
|
||||
cmp r0, #0
|
||||
bne _08027F32
|
||||
bl Random
|
||||
movs r1, #0x30
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
beq _08027F32
|
||||
adds r0, r4, #0
|
||||
bl sub_08049EE4
|
||||
b _08027F38
|
||||
_08027F32:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x82
|
||||
ldrb r0, [r0]
|
||||
_08027F38:
|
||||
strb r0, [r4, #0x15]
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08027F5A
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl sub_08049F84
|
||||
strb r0, [r4, #0x15]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x82
|
||||
strb r0, [r1]
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
_08027F5A:
|
||||
adds r0, r4, #0
|
||||
bl ProcessMovement
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
b _08027F7C
|
||||
_08027F68:
|
||||
movs r0, #6
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
bl InitializeAnimation
|
||||
_08027F7C:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start nullsub_12
|
||||
nullsub_12: @ 0x08027F80
|
||||
bx lr
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08027F84
|
||||
sub_08027F84: @ 0x08027F84
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #1
|
||||
bl sub_08049FDC
|
||||
cmp r0, #0
|
||||
beq _08027FB0
|
||||
movs r0, #5
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #9
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
adds r0, r4, #0
|
||||
bl CreateDust
|
||||
_08027FB0:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08027FB4
|
||||
sub_08027FB4: @ 0x08027FB4
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldrb r0, [r2, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r2, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08027FD6
|
||||
movs r1, #1
|
||||
movs r0, #1
|
||||
strb r0, [r2, #0xc]
|
||||
strb r0, [r2, #0xe]
|
||||
adds r3, r2, #0
|
||||
adds r3, #0x3b
|
||||
ldrb r0, [r3]
|
||||
orrs r0, r1
|
||||
strb r0, [r3]
|
||||
_08027FD6:
|
||||
adds r0, r2, #0
|
||||
bl GetNextFrame
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08027FE0
|
||||
sub_08027FE0: @ 0x08027FE0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r2, #1
|
||||
adds r0, r2, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08028028
|
||||
strb r2, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl sub_08049F84
|
||||
strb r0, [r4, #0x15]
|
||||
movs r2, #8
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
adds r3, r4, #0
|
||||
adds r3, #0x29
|
||||
ldrb r1, [r3]
|
||||
subs r0, #0x41
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r3]
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl InitializeAnimation
|
||||
_08028028:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0802802C
|
||||
sub_0802802C: @ 0x0802802C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0802805A
|
||||
movs r2, #0
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #7
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
strb r2, [r4, #0x15]
|
||||
strb r2, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
bl CreateDust
|
||||
_0802805A:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_0802805C
|
||||
sub_0802805C: @ 0x0802805C
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
movs r1, #2
|
||||
bl UpdateAnimationVariableFrames
|
||||
bl sub_0807953C
|
||||
cmp r0, #0
|
||||
beq _0802807E
|
||||
bl Random
|
||||
ldrb r2, [r5, #0xf]
|
||||
adds r2, #1
|
||||
movs r1, #1
|
||||
ands r1, r0
|
||||
adds r2, r2, r1
|
||||
strb r2, [r5, #0xf]
|
||||
_0802807E:
|
||||
ldrb r0, [r5, #0xf]
|
||||
cmp r0, #0x18
|
||||
bhi _0802808E
|
||||
ldr r0, _08028098 @ =gUnk_02002A40
|
||||
adds r0, #0xaa
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0802809C
|
||||
_0802808E:
|
||||
adds r0, r5, #0
|
||||
bl sub_0802810C
|
||||
b _08028102
|
||||
.align 2, 0
|
||||
_08028098: .4byte gUnk_02002A40
|
||||
_0802809C:
|
||||
bl ResetPlayer
|
||||
ldr r2, _08028104 @ =gPlayerState
|
||||
ldrb r1, [r2, #0x1a]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #0x1a]
|
||||
ldr r4, _08028108 @ =gPlayerEntity
|
||||
movs r3, #0x80
|
||||
lsls r3, r3, #9
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
movs r2, #0
|
||||
bl PositionRelative
|
||||
ldrh r0, [r5, #0x12]
|
||||
ldrb r1, [r5, #0x1e]
|
||||
bl GetSpriteSubEntryOffsetDataPointer
|
||||
ldrb r1, [r0]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x62
|
||||
strb r1, [r2]
|
||||
ldrb r0, [r0, #1]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x63
|
||||
strb r0, [r1]
|
||||
adds r4, #0x29
|
||||
ldrb r1, [r4]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r4]
|
||||
ldrb r0, [r5, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r5, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080280F0
|
||||
adds r0, r5, #0
|
||||
bl sub_080281A0
|
||||
_080280F0:
|
||||
ldrb r1, [r5, #0xe]
|
||||
movs r0, #3
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08028102
|
||||
movs r0, #0x82
|
||||
lsls r0, r0, #1
|
||||
bl EnqueueSFX
|
||||
_08028102:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08028104: .4byte gPlayerState
|
||||
_08028108: .4byte gPlayerEntity
|
||||
|
||||
thumb_func_start sub_0802810C
|
||||
sub_0802810C: @ 0x0802810C
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r2, _08028198 @ =gPlayerState
|
||||
movs r1, #0
|
||||
movs r0, #0x41
|
||||
strb r0, [r2, #2]
|
||||
strb r1, [r2, #0xa]
|
||||
ldr r0, [r2, #0x30]
|
||||
subs r1, #0x11
|
||||
ands r0, r1
|
||||
str r0, [r2, #0x30]
|
||||
ldr r0, _0802819C @ =gPlayerEntity
|
||||
mov ip, r0
|
||||
ldrb r0, [r0, #0x10]
|
||||
movs r1, #0x80
|
||||
orrs r0, r1
|
||||
mov r1, ip
|
||||
strb r0, [r1, #0x10]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #9
|
||||
str r0, [r1, #0x20]
|
||||
adds r1, #0x3d
|
||||
movs r0, #0xc4
|
||||
strb r0, [r1]
|
||||
movs r3, #0
|
||||
mov r2, ip
|
||||
ldrb r0, [r2, #0x14]
|
||||
lsls r0, r0, #2
|
||||
strb r0, [r2, #0x15]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x83
|
||||
ldrb r0, [r0]
|
||||
mov r5, ip
|
||||
adds r5, #0x29
|
||||
movs r1, #7
|
||||
ands r1, r0
|
||||
lsls r1, r1, #3
|
||||
ldrb r2, [r5]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r5]
|
||||
mov r1, ip
|
||||
adds r1, #0x63
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
mov r2, ip
|
||||
strh r0, [r2, #0x36]
|
||||
strb r3, [r1]
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x50
|
||||
strb r0, [r4, #0xe]
|
||||
strb r3, [r4, #0xf]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x3b
|
||||
ldrb r1, [r2]
|
||||
movs r0, #2
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x3d
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #0
|
||||
bne _08028196
|
||||
movs r0, #0xee
|
||||
strb r0, [r1]
|
||||
_08028196:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08028198: .4byte gPlayerState
|
||||
_0802819C: .4byte gPlayerEntity
|
||||
|
||||
thumb_func_start sub_080281A0
|
||||
sub_080281A0: @ 0x080281A0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0x19
|
||||
strb r0, [r4, #0xf]
|
||||
movs r0, #0xe
|
||||
bl sub_080281E0
|
||||
cmp r0, #0
|
||||
beq _080281BA
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x80
|
||||
movs r1, #0xe
|
||||
b _080281CA
|
||||
_080281BA:
|
||||
movs r0, #0xd
|
||||
bl sub_080281E0
|
||||
cmp r0, #0
|
||||
beq _080281D6
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x80
|
||||
movs r1, #0xd
|
||||
_080281CA:
|
||||
strb r1, [r0]
|
||||
movs r0, #0xaf
|
||||
lsls r0, r0, #3
|
||||
bl TextboxNoOverlapFollow
|
||||
b _080281DE
|
||||
_080281D6:
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
bl ModHealth
|
||||
_080281DE:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_080281E0
|
||||
sub_080281E0: @ 0x080281E0
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r7, r0, #0
|
||||
movs r4, #0
|
||||
bl GetInventoryValue
|
||||
cmp r0, #1
|
||||
bne _0802821A
|
||||
ldr r6, _08028220 @ =gUnk_02002A40
|
||||
adds r5, r6, #0
|
||||
adds r5, #0xb4
|
||||
ldrb r0, [r5]
|
||||
bl sub_080544B4
|
||||
cmp r0, #0
|
||||
beq _08028200
|
||||
strb r4, [r5]
|
||||
_08028200:
|
||||
adds r5, r6, #0
|
||||
adds r5, #0xb5
|
||||
ldrb r0, [r5]
|
||||
bl sub_080544B4
|
||||
cmp r0, #0
|
||||
beq _08028210
|
||||
strb r4, [r5]
|
||||
_08028210:
|
||||
adds r0, r7, #0
|
||||
movs r1, #0
|
||||
bl sub_0807CAA0
|
||||
movs r4, #1
|
||||
_0802821A:
|
||||
adds r0, r4, #0
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08028220: .4byte gUnk_02002A40
|
||||
|
||||
thumb_func_start sub_08028224
|
||||
sub_08028224: @ 0x08028224
|
||||
push {lr}
|
||||
movs r1, #0
|
||||
movs r2, #1
|
||||
bl sub_080A7C18
|
||||
ldr r0, _08028238 @ =0x00000579
|
||||
bl TextboxNoOverlapFollow
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08028238: .4byte 0x00000579
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r2, _08028198 @ =gPlayerState
|
||||
movs r1, #0
|
||||
movs r0, #0x41
|
||||
strb r0, [r2, #2]
|
||||
strb r1, [r2, #0xa]
|
||||
ldr r0, [r2, #0x30]
|
||||
subs r1, #0x11
|
||||
ands r0, r1
|
||||
str r0, [r2, #0x30]
|
||||
ldr r0, _0802819C @ =gPlayerEntity
|
||||
mov ip, r0
|
||||
ldrb r0, [r0, #0x10]
|
||||
movs r1, #0x80
|
||||
orrs r0, r1
|
||||
mov r1, ip
|
||||
strb r0, [r1, #0x10]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #9
|
||||
str r0, [r1, #0x20]
|
||||
adds r1, #0x3d
|
||||
movs r0, #0xc4
|
||||
strb r0, [r1]
|
||||
movs r3, #0
|
||||
mov r2, ip
|
||||
ldrb r0, [r2, #0x14]
|
||||
lsls r0, r0, #2
|
||||
strb r0, [r2, #0x15]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x83
|
||||
ldrb r0, [r0]
|
||||
mov r5, ip
|
||||
adds r5, #0x29
|
||||
movs r1, #7
|
||||
ands r1, r0
|
||||
lsls r1, r1, #3
|
||||
ldrb r2, [r5]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r5]
|
||||
mov r1, ip
|
||||
adds r1, #0x63
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
mov r2, ip
|
||||
strh r0, [r2, #0x36]
|
||||
strb r3, [r1]
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x50
|
||||
strb r0, [r4, #0xe]
|
||||
strb r3, [r4, #0xf]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x3b
|
||||
ldrb r1, [r2]
|
||||
movs r0, #2
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x3d
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #0
|
||||
bne _08028196
|
||||
movs r0, #0xee
|
||||
strb r0, [r1]
|
||||
_08028196:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08028198: .4byte gPlayerState
|
||||
_0802819C: .4byte gPlayerEntity
|
||||
|
||||
.syntax divided
|
||||
|
|
@ -1,77 +0,0 @@
|
|||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #1
|
||||
bl sub_08049DF4
|
||||
adds r2, r0, #0
|
||||
cmp r2, #0
|
||||
beq _08025922
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r2, r0]
|
||||
movs r3, #0x2e
|
||||
ldrsh r0, [r4, r3]
|
||||
subs r3, r1, r0
|
||||
adds r0, r3, #0
|
||||
muls r0, r3, r0
|
||||
adds r3, r0, #0
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r2, r1]
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r4, r2]
|
||||
subs r0, r0, r1
|
||||
adds r1, r0, #0
|
||||
muls r1, r0, r1
|
||||
adds r0, r1, #0
|
||||
adds r3, r3, r0
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x84
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0802591A
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x81
|
||||
ldrb r1, [r0]
|
||||
cmp r1, #0
|
||||
bne _0802591A
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #3
|
||||
cmp r3, r0
|
||||
bgt _0802591A
|
||||
movs r0, #9
|
||||
strb r0, [r4, #0xc]
|
||||
strb r1, [r4, #0xe]
|
||||
b _08025942
|
||||
_0802591A:
|
||||
movs r0, #0x90
|
||||
lsls r0, r0, #4
|
||||
cmp r3, r0
|
||||
ble _08025926
|
||||
_08025922:
|
||||
movs r0, #0
|
||||
b _08025944
|
||||
_08025926:
|
||||
movs r0, #0xb
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
bl Random
|
||||
ldr r2, _08025948 @ =gUnk_080CC050
|
||||
movs r1, #0xf
|
||||
ands r1, r0
|
||||
adds r1, r1, r2
|
||||
ldrb r1, [r1]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x78
|
||||
strh r1, [r0]
|
||||
_08025942:
|
||||
movs r0, #1
|
||||
_08025944:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08025948: .4byte gUnk_080CC050
|
||||
|
||||
.syntax divided
|
||||
|
|
@ -0,0 +1,104 @@
|
|||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #0
|
||||
strb r1, [r4, #0xf]
|
||||
adds r0, #0x82
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #1
|
||||
bne _080286B0
|
||||
bl Random
|
||||
ldr r2, _08028650 @ =gUnk_080CC7BC
|
||||
movs r1, #3
|
||||
ands r1, r0
|
||||
adds r1, r1, r2
|
||||
ldrb r0, [r1]
|
||||
strb r0, [r4, #0xe]
|
||||
movs r0, #0x80
|
||||
strh r0, [r4, #0x24]
|
||||
adds r0, r4, #0
|
||||
bl sub_08049FA0
|
||||
cmp r0, #0
|
||||
beq _08028658
|
||||
bl Random
|
||||
ldr r2, _08028654 @ =gUnk_080CC7D0
|
||||
movs r1, #7
|
||||
ands r1, r0
|
||||
adds r1, r1, r2
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
adds r0, #0x18
|
||||
ldrb r1, [r4, #0x15]
|
||||
adds r0, r0, r1
|
||||
movs r1, #0x18
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x15]
|
||||
b _080286B8
|
||||
.align 2, 0
|
||||
_08028650: .4byte gUnk_080CC7BC
|
||||
_08028654: .4byte gUnk_080CC7D0
|
||||
_08028658:
|
||||
adds r0, r4, #0
|
||||
bl sub_08049EE4
|
||||
adds r5, r0, #0
|
||||
adds r6, r4, #0
|
||||
adds r6, #0x83
|
||||
ldrb r0, [r6]
|
||||
cmp r0, #0
|
||||
bne _08028684
|
||||
bl Random
|
||||
ldr r2, _08028680 @ =gUnk_080CC7C0
|
||||
movs r1, #0xf
|
||||
ands r1, r0
|
||||
adds r1, r1, r2
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
adds r5, r5, r0
|
||||
b _080286A2
|
||||
.align 2, 0
|
||||
_08028680: .4byte gUnk_080CC7C0
|
||||
_08028684:
|
||||
bl Random
|
||||
ldr r2, _080286AC @ =gUnk_080CC7C0
|
||||
movs r1, #7
|
||||
ands r1, r0
|
||||
adds r1, r1, r2
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
adds r5, r5, r0
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r0, #0x10
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r0, [r6]
|
||||
subs r0, #1
|
||||
strb r0, [r6]
|
||||
_080286A2:
|
||||
adds r0, r5, #4
|
||||
movs r1, #0x18
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x15]
|
||||
b _080286B8
|
||||
.align 2, 0
|
||||
_080286AC: .4byte gUnk_080CC7C0
|
||||
_080286B0:
|
||||
movs r0, #0xc
|
||||
strb r0, [r4, #0xe]
|
||||
strh r1, [r4, #0x24]
|
||||
ldrb r0, [r4, #0x15]
|
||||
_080286B8:
|
||||
lsrs r5, r0, #2
|
||||
ldrb r0, [r4, #0x14]
|
||||
cmp r5, r0
|
||||
beq _080286C8
|
||||
strb r5, [r4, #0x14]
|
||||
adds r0, r4, #0
|
||||
bl sub_080287E0
|
||||
_080286C8:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
|
||||
.syntax divided
|
||||
|
|
@ -1,921 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start SpearMoblin
|
||||
SpearMoblin: @ 0x0802823C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r1, _08028268 @ =gUnk_080CC790
|
||||
bl EnemyFunctionHandler
|
||||
movs r3, #0x20
|
||||
rsbs r3, r3, #0
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
movs r2, #1
|
||||
bl SetChildOffset
|
||||
ldr r1, [r4, #0x54]
|
||||
cmp r1, #0
|
||||
beq _08028266
|
||||
ldr r0, [r1, #4]
|
||||
cmp r0, #0
|
||||
beq _08028266
|
||||
adds r0, r4, #0
|
||||
bl CopyPosition
|
||||
_08028266:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08028268: .4byte gUnk_080CC790
|
||||
|
||||
thumb_func_start sub_0802826C
|
||||
sub_0802826C: @ 0x0802826C
|
||||
push {lr}
|
||||
ldr r2, _08028280 @ =gUnk_080CC7A8
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08028280: .4byte gUnk_080CC7A8
|
||||
|
||||
thumb_func_start sub_08028284
|
||||
sub_08028284: @ 0x08028284
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x43
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08028298
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x1c
|
||||
bl sub_0804A9FC
|
||||
_08028298:
|
||||
ldr r1, _080282BC @ =gUnk_080CC790
|
||||
adds r0, r4, #0
|
||||
bl sub_0804AA30
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x41
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080282DE
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #4
|
||||
beq _080282C0
|
||||
adds r0, r4, #0
|
||||
bl sub_08028754
|
||||
b _080282DE
|
||||
.align 2, 0
|
||||
_080282BC: .4byte gUnk_080CC790
|
||||
_080282C0:
|
||||
movs r0, #0x3f
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080282DE
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7a
|
||||
ldrb r0, [r1]
|
||||
adds r0, #1
|
||||
strb r0, [r1]
|
||||
adds r1, #7
|
||||
movs r0, #0x16
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_08028784
|
||||
_080282DE:
|
||||
ldr r0, [r4, #0x54]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x3d
|
||||
ldrb r1, [r1]
|
||||
adds r0, #0x3d
|
||||
strb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x45
|
||||
ldrb r5, [r0]
|
||||
cmp r5, #0
|
||||
bne _0802830C
|
||||
movs r0, #0
|
||||
strh r5, [r4, #0x24]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x82
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_080287E0
|
||||
ldr r0, [r4, #0x54]
|
||||
bl DeleteEntity
|
||||
str r5, [r4, #0x54]
|
||||
_0802830C:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start nullsub_13
|
||||
nullsub_13: @ 0x08028310
|
||||
bx lr
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08028314
|
||||
sub_08028314: @ 0x08028314
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_0804A720
|
||||
movs r1, #0
|
||||
movs r2, #1
|
||||
strb r2, [r4, #0xc]
|
||||
strb r1, [r4, #0x14]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x7b
|
||||
strb r1, [r0]
|
||||
adds r0, #5
|
||||
strb r1, [r0]
|
||||
adds r0, #3
|
||||
strb r1, [r0]
|
||||
subs r0, #2
|
||||
strb r1, [r0]
|
||||
subs r0, #7
|
||||
strb r1, [r0]
|
||||
adds r0, #8
|
||||
strb r2, [r0]
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #0
|
||||
beq _0802835E
|
||||
ldrb r1, [r4, #0xb]
|
||||
lsls r0, r1, #1
|
||||
strb r0, [r4, #0x14]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r4, #0xe]
|
||||
movs r0, #0x80
|
||||
strh r0, [r4, #0x24]
|
||||
lsls r1, r1, #3
|
||||
strb r1, [r4, #0x15]
|
||||
adds r0, r4, #0
|
||||
bl sub_080287E0
|
||||
b _08028368
|
||||
_0802835E:
|
||||
movs r0, #0x10
|
||||
strb r0, [r4, #0x14]
|
||||
adds r0, r4, #0
|
||||
bl sub_08028604
|
||||
_08028368:
|
||||
movs r0, #3
|
||||
bl sub_080A7EE0
|
||||
cmp r0, #0
|
||||
beq _08028376
|
||||
str r4, [r0, #0x50]
|
||||
str r0, [r4, #0x54]
|
||||
_08028376:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08028378
|
||||
sub_08028378: @ 0x08028378
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x81
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _0802838A
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
_0802838A:
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
movs r2, #0xff
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080283B8
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x80
|
||||
ldrb r0, [r1]
|
||||
adds r0, #1
|
||||
strb r0, [r1]
|
||||
ands r0, r2
|
||||
cmp r0, #0xf
|
||||
bls _080283B0
|
||||
adds r0, r4, #0
|
||||
bl sub_08028728
|
||||
b _080283FC
|
||||
_080283B0:
|
||||
adds r0, r4, #0
|
||||
bl sub_08028604
|
||||
b _080283FC
|
||||
_080283B8:
|
||||
adds r0, r4, #0
|
||||
bl sub_080286CC
|
||||
cmp r0, #0
|
||||
beq _080283CE
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x7b
|
||||
ldrb r0, [r2]
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
_080283CE:
|
||||
adds r0, r4, #0
|
||||
bl sub_080288A4
|
||||
cmp r0, #0
|
||||
beq _080283FC
|
||||
ldrh r1, [r4, #0x2a]
|
||||
adds r0, r4, #0
|
||||
bl sub_0800417E
|
||||
ldrb r0, [r4, #0x15]
|
||||
adds r0, #4
|
||||
movs r1, #0x18
|
||||
ands r0, r1
|
||||
asrs r0, r0, #2
|
||||
strb r0, [r4, #0x14]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x83
|
||||
ldrb r0, [r1]
|
||||
adds r0, #1
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_080287E0
|
||||
_080283FC:
|
||||
ldrb r0, [r4, #0xf]
|
||||
cmp r0, #0xb
|
||||
bls _08028414
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x7b
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08028418
|
||||
adds r0, r4, #0
|
||||
bl sub_08028754
|
||||
b _08028418
|
||||
_08028414:
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
_08028418:
|
||||
adds r0, r4, #0
|
||||
bl sub_08028858
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08028420
|
||||
sub_08028420: @ 0x08028420
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r1, r0, #0x18
|
||||
cmp r1, #0
|
||||
bne _0802844C
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x82
|
||||
strb r1, [r0]
|
||||
subs r0, #2
|
||||
strb r1, [r0]
|
||||
movs r0, #0x10
|
||||
strb r0, [r4, #0x14]
|
||||
adds r0, r4, #0
|
||||
bl sub_08028604
|
||||
b _08028462
|
||||
_0802844C:
|
||||
adds r0, r4, #0
|
||||
bl sub_080286CC
|
||||
cmp r0, #0
|
||||
beq _08028462
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x7b
|
||||
ldrb r0, [r2]
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
_08028462:
|
||||
ldrb r0, [r4, #0xf]
|
||||
cmp r0, #0xb
|
||||
bls _0802847A
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x7b
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0802847E
|
||||
adds r0, r4, #0
|
||||
bl sub_08028754
|
||||
b _0802847E
|
||||
_0802847A:
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
_0802847E:
|
||||
adds r0, r4, #0
|
||||
bl sub_08028858
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08028488
|
||||
sub_08028488: @ 0x08028488
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r2, r0, #0x18
|
||||
cmp r2, #0
|
||||
bne _08028520
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x82
|
||||
ldrb r1, [r0]
|
||||
adds r3, r0, #0
|
||||
cmp r1, #2
|
||||
beq _080284D2
|
||||
cmp r1, #2
|
||||
ble _080284F0
|
||||
cmp r1, #3
|
||||
beq _080284B4
|
||||
cmp r1, #4
|
||||
beq _080284E6
|
||||
b _080284F0
|
||||
_080284B4:
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #1
|
||||
strh r0, [r4, #0x24]
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl sub_08049F84
|
||||
strb r0, [r4, #0x15]
|
||||
movs r0, #0x8f
|
||||
lsls r0, r0, #1
|
||||
bl EnqueueSFX
|
||||
b _0802850A
|
||||
_080284D2:
|
||||
strb r1, [r4, #0xc]
|
||||
strh r2, [r4, #0x24]
|
||||
bl Random
|
||||
movs r1, #7
|
||||
ands r0, r1
|
||||
lsls r1, r0, #1
|
||||
adds r1, r1, r0
|
||||
adds r1, #0x40
|
||||
b _08028508
|
||||
_080284E6:
|
||||
ldrb r0, [r4, #0x15]
|
||||
adds r0, #0x10
|
||||
movs r1, #0x18
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x15]
|
||||
_080284F0:
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
strb r0, [r3]
|
||||
movs r0, #0x80
|
||||
strh r0, [r4, #0x24]
|
||||
bl Random
|
||||
movs r1, #7
|
||||
ands r0, r1
|
||||
lsls r1, r0, #1
|
||||
adds r1, r1, r0
|
||||
adds r1, #0x22
|
||||
_08028508:
|
||||
strb r1, [r4, #0xe]
|
||||
_0802850A:
|
||||
movs r0, #0
|
||||
strb r0, [r4, #0xf]
|
||||
ldrb r0, [r4, #0x15]
|
||||
adds r0, #4
|
||||
movs r1, #0x18
|
||||
ands r0, r1
|
||||
asrs r0, r0, #2
|
||||
strb r0, [r4, #0x14]
|
||||
adds r0, r4, #0
|
||||
bl sub_080287E0
|
||||
_08028520:
|
||||
adds r0, r4, #0
|
||||
bl sub_08028858
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08028528
|
||||
sub_08028528: @ 0x08028528
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #1
|
||||
bl sub_08049DF4
|
||||
adds r5, r0, #0
|
||||
cmp r5, #0
|
||||
bne _08028542
|
||||
strb r5, [r4, #0xf]
|
||||
adds r0, r4, #0
|
||||
bl sub_08028728
|
||||
b _08028600
|
||||
_08028542:
|
||||
adds r0, r4, #0
|
||||
bl sub_080288C0
|
||||
ldr r1, _08028590 @ =gUnk_080CC944
|
||||
ldrb r0, [r4, #0x14]
|
||||
lsrs r0, r0, #1
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r2, [r0]
|
||||
ldr r1, [r4, #0x48]
|
||||
ldrb r0, [r2]
|
||||
strb r0, [r1]
|
||||
ldr r1, [r4, #0x48]
|
||||
ldrb r0, [r2, #1]
|
||||
strb r0, [r1, #1]
|
||||
ldr r1, [r4, #0x48]
|
||||
ldrb r0, [r2, #6]
|
||||
strb r0, [r1, #6]
|
||||
ldr r1, [r4, #0x48]
|
||||
ldrb r0, [r2, #7]
|
||||
strb r0, [r1, #7]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x7a
|
||||
ldrb r1, [r0]
|
||||
adds r6, r0, #0
|
||||
cmp r1, #0
|
||||
beq _08028594
|
||||
movs r0, #0
|
||||
strb r0, [r6]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x81
|
||||
movs r0, #0x16
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_08028784
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7b
|
||||
b _080285EE
|
||||
.align 2, 0
|
||||
_08028590: .4byte gUnk_080CC944
|
||||
_08028594:
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0x20
|
||||
bne _080285BC
|
||||
strb r1, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl GetFacingDirection
|
||||
adds r5, r0, #0
|
||||
ldrb r0, [r4, #0x15]
|
||||
adds r1, r5, #0
|
||||
bl sub_08028828
|
||||
cmp r0, #0
|
||||
beq _080285BC
|
||||
strb r5, [r4, #0x15]
|
||||
_080285BC:
|
||||
ldrb r1, [r4, #0xe]
|
||||
movs r0, #7
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080285D6
|
||||
movs r0, #0xf0
|
||||
bl EnqueueSFX
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
movs r2, #0x40
|
||||
bl CreateFx
|
||||
_080285D6:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7b
|
||||
ldrb r0, [r1]
|
||||
adds r0, #1
|
||||
strb r0, [r1]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0x80
|
||||
bne _080285EE
|
||||
ldrb r0, [r6]
|
||||
adds r0, #1
|
||||
strb r0, [r6]
|
||||
_080285EE:
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0x20
|
||||
bls _080285FA
|
||||
adds r0, r4, #0
|
||||
bl ProcessMovement
|
||||
_080285FA:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
_08028600:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08028604
|
||||
sub_08028604: @ 0x08028604
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #0
|
||||
strb r1, [r4, #0xf]
|
||||
adds r0, #0x82
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #1
|
||||
bne _080286B0
|
||||
bl Random
|
||||
ldr r2, _08028650 @ =gUnk_080CC7BC
|
||||
movs r1, #3
|
||||
ands r1, r0
|
||||
adds r1, r1, r2
|
||||
ldrb r0, [r1]
|
||||
strb r0, [r4, #0xe]
|
||||
movs r0, #0x80
|
||||
strh r0, [r4, #0x24]
|
||||
adds r0, r4, #0
|
||||
bl sub_08049FA0
|
||||
cmp r0, #0
|
||||
beq _08028658
|
||||
bl Random
|
||||
ldr r2, _08028654 @ =gUnk_080CC7D0
|
||||
movs r1, #7
|
||||
ands r1, r0
|
||||
adds r1, r1, r2
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
adds r0, #0x18
|
||||
ldrb r1, [r4, #0x15]
|
||||
adds r0, r0, r1
|
||||
movs r1, #0x18
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x15]
|
||||
b _080286B8
|
||||
.align 2, 0
|
||||
_08028650: .4byte gUnk_080CC7BC
|
||||
_08028654: .4byte gUnk_080CC7D0
|
||||
_08028658:
|
||||
adds r0, r4, #0
|
||||
bl sub_08049EE4
|
||||
adds r5, r0, #0
|
||||
adds r6, r4, #0
|
||||
adds r6, #0x83
|
||||
ldrb r0, [r6]
|
||||
cmp r0, #0
|
||||
bne _08028684
|
||||
bl Random
|
||||
ldr r2, _08028680 @ =gUnk_080CC7C0
|
||||
movs r1, #0xf
|
||||
ands r1, r0
|
||||
adds r1, r1, r2
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
adds r5, r5, r0
|
||||
b _080286A2
|
||||
.align 2, 0
|
||||
_08028680: .4byte gUnk_080CC7C0
|
||||
_08028684:
|
||||
bl Random
|
||||
ldr r2, _080286AC @ =gUnk_080CC7C0
|
||||
movs r1, #7
|
||||
ands r1, r0
|
||||
adds r1, r1, r2
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
adds r5, r5, r0
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r0, #0x10
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r0, [r6]
|
||||
subs r0, #1
|
||||
strb r0, [r6]
|
||||
_080286A2:
|
||||
adds r0, r5, #4
|
||||
movs r1, #0x18
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x15]
|
||||
b _080286B8
|
||||
.align 2, 0
|
||||
_080286AC: .4byte gUnk_080CC7C0
|
||||
_080286B0:
|
||||
movs r0, #0xc
|
||||
strb r0, [r4, #0xe]
|
||||
strh r1, [r4, #0x24]
|
||||
ldrb r0, [r4, #0x15]
|
||||
_080286B8:
|
||||
lsrs r5, r0, #2
|
||||
ldrb r0, [r4, #0x14]
|
||||
cmp r5, r0
|
||||
beq _080286C8
|
||||
strb r5, [r4, #0x14]
|
||||
adds r0, r4, #0
|
||||
bl sub_080287E0
|
||||
_080286C8:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080286CC
|
||||
sub_080286CC: @ 0x080286CC
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
adds r0, #0x81
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08028724
|
||||
movs r0, #1
|
||||
bl sub_08049DF4
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
beq _08028724
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x82
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #2
|
||||
bne _080286FC
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
movs r2, #0x30
|
||||
bl sub_0806FC80
|
||||
cmp r0, #0
|
||||
bne _08028720
|
||||
_080286FC:
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
movs r2, #0x40
|
||||
bl sub_0806FC80
|
||||
cmp r0, #0
|
||||
beq _08028724
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl GetFacingDirection
|
||||
adds r0, #4
|
||||
movs r1, #0x18
|
||||
ands r0, r1
|
||||
lsrs r0, r0, #2
|
||||
ldrb r5, [r5, #0x14]
|
||||
cmp r0, r5
|
||||
bne _08028724
|
||||
_08028720:
|
||||
movs r0, #1
|
||||
b _08028726
|
||||
_08028724:
|
||||
movs r0, #0
|
||||
_08028726:
|
||||
pop {r4, r5, pc}
|
||||
|
||||
thumb_func_start sub_08028728
|
||||
sub_08028728: @ 0x08028728
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0x15]
|
||||
adds r0, #4
|
||||
movs r1, #0x18
|
||||
ands r0, r1
|
||||
asrs r0, r0, #2
|
||||
strb r0, [r4, #0x14]
|
||||
lsls r0, r0, #2
|
||||
strb r0, [r4, #0x15]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x83
|
||||
ldrb r0, [r1]
|
||||
lsrs r0, r0, #1
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_080287B4
|
||||
adds r4, #0x82
|
||||
movs r0, #2
|
||||
strb r0, [r4]
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08028754
|
||||
sub_08028754: @ 0x08028754
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #1
|
||||
bl sub_08049F84
|
||||
movs r2, #0
|
||||
strb r0, [r4, #0x15]
|
||||
ldrb r0, [r4, #0x15]
|
||||
adds r0, #4
|
||||
movs r1, #0x18
|
||||
ands r0, r1
|
||||
asrs r0, r0, #2
|
||||
strb r0, [r4, #0x14]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x83
|
||||
strb r2, [r0]
|
||||
adds r0, r4, #0
|
||||
bl sub_080287B4
|
||||
adds r4, #0x82
|
||||
movs r0, #3
|
||||
strb r0, [r4]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08028784
|
||||
sub_08028784: @ 0x08028784
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0x15]
|
||||
adds r0, #4
|
||||
movs r1, #0x18
|
||||
ands r0, r1
|
||||
asrs r0, r0, #2
|
||||
movs r1, #0
|
||||
strb r0, [r4, #0x14]
|
||||
lsls r0, r0, #2
|
||||
strb r0, [r4, #0x15]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x83
|
||||
strb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl sub_080287B4
|
||||
ldrb r0, [r4, #0xe]
|
||||
lsls r0, r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
adds r4, #0x82
|
||||
movs r0, #4
|
||||
strb r0, [r4]
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_080287B4
|
||||
sub_080287B4: @ 0x080287B4
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
movs r1, #0
|
||||
movs r0, #3
|
||||
strb r0, [r2, #0xc]
|
||||
movs r0, #0x20
|
||||
strb r0, [r2, #0xe]
|
||||
strb r1, [r2, #0xf]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x80
|
||||
strb r1, [r0]
|
||||
subs r0, #5
|
||||
strb r1, [r0]
|
||||
movs r0, #0
|
||||
strh r1, [r2, #0x24]
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x82
|
||||
strb r0, [r1]
|
||||
adds r0, r2, #0
|
||||
bl sub_080287E0
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_080287E0
|
||||
sub_080287E0: @ 0x080287E0
|
||||
push {lr}
|
||||
adds r3, r0, #0
|
||||
ldrb r0, [r3, #0x14]
|
||||
lsrs r2, r0, #1
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x82
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #4
|
||||
bhi _0802881E
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _080287FC @ =_08028800
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_080287FC: .4byte _08028800
|
||||
_08028800: @ jump table
|
||||
.4byte _0802881E @ case 0
|
||||
.4byte _08028814 @ case 1
|
||||
.4byte _0802881C @ case 2
|
||||
.4byte _08028818 @ case 3
|
||||
.4byte _08028814 @ case 4
|
||||
_08028814:
|
||||
adds r2, #4
|
||||
b _0802881E
|
||||
_08028818:
|
||||
adds r2, #8
|
||||
b _0802881E
|
||||
_0802881C:
|
||||
adds r2, #0xc
|
||||
_0802881E:
|
||||
adds r0, r3, #0
|
||||
adds r1, r2, #0
|
||||
bl InitializeAnimation
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_08028828
|
||||
sub_08028828: @ 0x08028828
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r3, r1, #0
|
||||
adds r0, r3, #4
|
||||
movs r2, #0x18
|
||||
ands r0, r2
|
||||
adds r1, r4, #4
|
||||
ands r1, r2
|
||||
cmp r0, r1
|
||||
bne _08028852
|
||||
adds r0, r3, #5
|
||||
movs r1, #7
|
||||
ands r0, r1
|
||||
adds r2, r4, #5
|
||||
ands r2, r1
|
||||
cmp r0, #2
|
||||
bhi _08028852
|
||||
cmp r2, #2
|
||||
bhi _08028852
|
||||
movs r0, #1
|
||||
b _08028854
|
||||
_08028852:
|
||||
movs r0, #0
|
||||
_08028854:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08028858
|
||||
sub_08028858: @ 0x08028858
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_080288C0
|
||||
ldr r1, _080288A0 @ =gUnk_080CC944
|
||||
ldrb r0, [r4, #0x14]
|
||||
lsrs r0, r0, #1
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r2, [r0]
|
||||
ldr r1, [r4, #0x48]
|
||||
ldrb r0, [r2]
|
||||
strb r0, [r1]
|
||||
ldr r1, [r4, #0x48]
|
||||
ldrb r0, [r2, #1]
|
||||
strb r0, [r1, #1]
|
||||
ldr r1, [r4, #0x48]
|
||||
ldrb r0, [r2, #6]
|
||||
strb r0, [r1, #6]
|
||||
ldr r1, [r4, #0x48]
|
||||
ldrb r0, [r2, #7]
|
||||
strb r0, [r1, #7]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x82
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08028890
|
||||
strh r0, [r4, #0x24]
|
||||
_08028890:
|
||||
adds r0, r4, #0
|
||||
bl ProcessMovement
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080288A0: .4byte gUnk_080CC944
|
||||
|
||||
thumb_func_start sub_080288A4
|
||||
sub_080288A4: @ 0x080288A4
|
||||
ldr r2, _080288BC @ =gUnk_080CC7D8
|
||||
ldrb r1, [r0, #0x14]
|
||||
lsrs r1, r1, #1
|
||||
lsls r1, r1, #1
|
||||
adds r1, r1, r2
|
||||
ldrh r0, [r0, #0x2a]
|
||||
ldrh r1, [r1]
|
||||
ands r1, r0
|
||||
rsbs r0, r1, #0
|
||||
orrs r0, r1
|
||||
lsrs r0, r0, #0x1f
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_080288BC: .4byte gUnk_080CC7D8
|
||||
|
||||
thumb_func_start sub_080288C0
|
||||
sub_080288C0: @ 0x080288C0
|
||||
push {lr}
|
||||
mov ip, r0
|
||||
ldr r2, [r0, #0x54]
|
||||
cmp r2, #0
|
||||
beq _08028908
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x41
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08028908
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x3e
|
||||
ldrb r0, [r0]
|
||||
mov r1, ip
|
||||
adds r1, #0x3e
|
||||
strb r0, [r1]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x3d
|
||||
ldrb r0, [r0]
|
||||
rsbs r0, r0, #0
|
||||
subs r1, #1
|
||||
strb r0, [r1]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x46
|
||||
ldrh r0, [r0]
|
||||
adds r1, #9
|
||||
movs r3, #0
|
||||
strh r0, [r1]
|
||||
adds r2, #0x42
|
||||
ldrb r1, [r2]
|
||||
mov r0, ip
|
||||
adds r0, #0x42
|
||||
strb r1, [r0]
|
||||
strb r3, [r2]
|
||||
_08028908:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
|
||||
gUnk_080CC2DF:: @ 080CC2DF
|
||||
.incbin "baserom.gba", 0x0CC2DF, 0x0000004
|
||||
|
||||
gUnk_080CC2E3:: @ 080CC2E3
|
||||
.incbin "baserom.gba", 0x0CC2E3, 0x0000004
|
||||
|
||||
gUnk_080CC2E7:: @ 080CC2E7
|
||||
.incbin "baserom.gba", 0x0CC2E7, 0x0000004
|
||||
|
||||
gUnk_080CC2EB:: @ 080CC2EB
|
||||
.incbin "baserom.gba", 0x0CC2EB, 0x0000004
|
||||
|
||||
gUnk_080CC2EF:: @ 080CC2EF
|
||||
.incbin "baserom.gba", 0x0CC2EF, 0x0000005
|
||||
|
||||
gUnk_080CC2F4:: @ 080CC2F4
|
||||
.incbin "baserom.gba", 0x0CC2F4, 0x0000011
|
||||
|
||||
gUnk_080CC305:: @ 080CC305
|
||||
.incbin "baserom.gba", 0x0CC305, 0x0000019
|
||||
|
||||
gUnk_080CC31E:: @ 080CC31E
|
||||
.incbin "baserom.gba", 0x0CC31E, 0x000000D
|
||||
|
||||
gUnk_080CC32B:: @ 080CC32B
|
||||
.incbin "baserom.gba", 0x0CC32B, 0x000000D
|
||||
|
||||
gUnk_080CC338:: @ 080CC338
|
||||
.incbin "baserom.gba", 0x0CC338, 0x0000005
|
||||
|
||||
gUnk_080CC33D:: @ 080CC33D
|
||||
.incbin "baserom.gba", 0x0CC33D, 0x0000009
|
||||
|
||||
gUnk_080CC346:: @ 080CC346
|
||||
.incbin "baserom.gba", 0x0CC346, 0x000000D
|
||||
|
||||
gUnk_080CC353:: @ 080CC353
|
||||
.incbin "baserom.gba", 0x0CC353, 0x0000009
|
||||
|
||||
gUnk_080CC35C:: @ 080CC35C
|
||||
.incbin "baserom.gba", 0x0CC35C, 0x000000D
|
||||
|
||||
gUnk_080CC369:: @ 080CC369
|
||||
.incbin "baserom.gba", 0x0CC369, 0x0000009
|
||||
|
||||
gUnk_080CC372:: @ 080CC372
|
||||
.incbin "baserom.gba", 0x0CC372, 0x0000009
|
||||
|
||||
gUnk_080CC37B:: @ 080CC37B
|
||||
.incbin "baserom.gba", 0x0CC37B, 0x0000021
|
||||
|
||||
gUnk_080CC39C:: @ 080CC39C
|
||||
.incbin "baserom.gba", 0x0CC39C, 0x0000038
|
||||
|
||||
gUnk_080CC3D4:: @ 080CC3D4
|
||||
.incbin "baserom.gba", 0x0CC3D4, 0x0000038
|
||||
|
||||
gUnk_080CC40C:: @ 080CC40C
|
||||
.incbin "baserom.gba", 0x0CC40C, 0x0000034
|
||||
|
||||
gUnk_080CC440:: @ 080CC440
|
||||
.incbin "baserom.gba", 0x0CC440, 0x0000038
|
||||
|
||||
gUnk_080CC478:: @ 080CC478
|
||||
.incbin "baserom.gba", 0x0CC478, 0x0000038
|
||||
|
||||
gUnk_080CC4B0:: @ 080CC4B0
|
||||
.incbin "baserom.gba", 0x0CC4B0, 0x0000065
|
||||
|
||||
gUnk_080CC515:: @ 080CC515
|
||||
.incbin "baserom.gba", 0x0CC515, 0x000006D
|
||||
|
||||
gUnk_080CC582:: @ 080CC582
|
||||
.incbin "baserom.gba", 0x0CC582, 0x000006D
|
||||
|
||||
gUnk_080CC5EF:: @ 080CC5EF
|
||||
.incbin "baserom.gba", 0x0CC5EF, 0x000006D
|
||||
|
||||
gUnk_080CC65C:: @ 080CC65C
|
||||
.incbin "baserom.gba", 0x0CC65C, 0x0000021
|
||||
|
||||
gUnk_080CC67D:: @ 080CC67D
|
||||
.incbin "baserom.gba", 0x0CC67D, 0x0000007
|
||||
|
||||
gUnk_080CC684:: @ 080CC684
|
||||
.incbin "baserom.gba", 0x0CC684, 0x0000018
|
||||
|
||||
gUnk_080CC69C:: @ 080CC69C
|
||||
.incbin "baserom.gba", 0x0CC69C, 0x0000038
|
||||
|
||||
gUnk_080CC6D4:: @ 080CC6D4
|
||||
.incbin "baserom.gba", 0x0CC6D4, 0x0000028
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
|
||||
gUnk_080CC734:: @ 080CC734
|
||||
.incbin "baserom.gba", 0x0CC734, 0x0000025
|
||||
|
||||
gUnk_080CC759:: @ 080CC759
|
||||
.incbin "baserom.gba", 0x0CC759, 0x0000015
|
||||
|
||||
gUnk_080CC76E:: @ 080CC76E
|
||||
.incbin "baserom.gba", 0x0CC76E, 0x0000012
|
||||
|
||||
gUnk_080CC780:: @ 080CC780
|
||||
.incbin "baserom.gba", 0x0CC780, 0x0000010
|
||||
|
|
@ -3,183 +3,6 @@
|
|||
|
||||
.section .rodata
|
||||
|
||||
gUnk_080CC19C:: @ 080CC19C
|
||||
.incbin "baserom.gba", 0x0CC19C, 0x0000014
|
||||
|
||||
gUnk_080CC1B0:: @ 080CC1B0
|
||||
.incbin "baserom.gba", 0x0CC1B0, 0x0000008
|
||||
|
||||
gUnk_080CC1B8:: @ 080CC1B8
|
||||
.incbin "baserom.gba", 0x0CC1B8, 0x0000010
|
||||
|
||||
gUnk_080CC1C8:: @ 080CC1C8
|
||||
.incbin "baserom.gba", 0x0CC1C8, 0x0000014
|
||||
|
||||
gUnk_080CC1DC:: @ 080CC1DC
|
||||
.incbin "baserom.gba", 0x0CC1DC, 0x0000030
|
||||
|
||||
gUnk_080CC20C:: @ 080CC20C
|
||||
.incbin "baserom.gba", 0x0CC20C, 0x0000028
|
||||
|
||||
gUnk_080CC234:: @ 080CC234
|
||||
.incbin "baserom.gba", 0x0CC234, 0x000001B
|
||||
|
||||
gUnk_080CC24F:: @ 080CC24F
|
||||
.incbin "baserom.gba", 0x0CC24F, 0x0000009
|
||||
|
||||
gUnk_080CC258:: @ 080CC258
|
||||
.incbin "baserom.gba", 0x0CC258, 0x000000C
|
||||
|
||||
gUnk_080CC264:: @ 080CC264
|
||||
.incbin "baserom.gba", 0x0CC264, 0x0000008
|
||||
|
||||
gUnk_080CC26C:: @ 080CC26C
|
||||
.incbin "baserom.gba", 0x0CC26C, 0x000000C
|
||||
|
||||
gUnk_080CC278:: @ 080CC278
|
||||
.incbin "baserom.gba", 0x0CC278, 0x0000004
|
||||
|
||||
gUnk_080CC27C:: @ 080CC27C
|
||||
.incbin "baserom.gba", 0x0CC27C, 0x0000020
|
||||
|
||||
gUnk_080CC29C:: @ 080CC29C
|
||||
.incbin "baserom.gba", 0x0CC29C, 0x0000020
|
||||
|
||||
gUnk_080CC2BC:: @ 080CC2BC
|
||||
.incbin "baserom.gba", 0x0CC2BC, 0x0000020
|
||||
|
||||
gUnk_080CC2DC:: @ 080CC2DC
|
||||
.incbin "baserom.gba", 0x0CC2DC, 0x0000003
|
||||
|
||||
gUnk_080CC2DF:: @ 080CC2DF
|
||||
.incbin "baserom.gba", 0x0CC2DF, 0x0000004
|
||||
|
||||
gUnk_080CC2E3:: @ 080CC2E3
|
||||
.incbin "baserom.gba", 0x0CC2E3, 0x0000004
|
||||
|
||||
gUnk_080CC2E7:: @ 080CC2E7
|
||||
.incbin "baserom.gba", 0x0CC2E7, 0x0000004
|
||||
|
||||
gUnk_080CC2EB:: @ 080CC2EB
|
||||
.incbin "baserom.gba", 0x0CC2EB, 0x0000004
|
||||
|
||||
gUnk_080CC2EF:: @ 080CC2EF
|
||||
.incbin "baserom.gba", 0x0CC2EF, 0x0000005
|
||||
|
||||
gUnk_080CC2F4:: @ 080CC2F4
|
||||
.incbin "baserom.gba", 0x0CC2F4, 0x0000011
|
||||
|
||||
gUnk_080CC305:: @ 080CC305
|
||||
.incbin "baserom.gba", 0x0CC305, 0x0000019
|
||||
|
||||
gUnk_080CC31E:: @ 080CC31E
|
||||
.incbin "baserom.gba", 0x0CC31E, 0x000000D
|
||||
|
||||
gUnk_080CC32B:: @ 080CC32B
|
||||
.incbin "baserom.gba", 0x0CC32B, 0x000000D
|
||||
|
||||
gUnk_080CC338:: @ 080CC338
|
||||
.incbin "baserom.gba", 0x0CC338, 0x0000005
|
||||
|
||||
gUnk_080CC33D:: @ 080CC33D
|
||||
.incbin "baserom.gba", 0x0CC33D, 0x0000009
|
||||
|
||||
gUnk_080CC346:: @ 080CC346
|
||||
.incbin "baserom.gba", 0x0CC346, 0x000000D
|
||||
|
||||
gUnk_080CC353:: @ 080CC353
|
||||
.incbin "baserom.gba", 0x0CC353, 0x0000009
|
||||
|
||||
gUnk_080CC35C:: @ 080CC35C
|
||||
.incbin "baserom.gba", 0x0CC35C, 0x000000D
|
||||
|
||||
gUnk_080CC369:: @ 080CC369
|
||||
.incbin "baserom.gba", 0x0CC369, 0x0000009
|
||||
|
||||
gUnk_080CC372:: @ 080CC372
|
||||
.incbin "baserom.gba", 0x0CC372, 0x0000009
|
||||
|
||||
gUnk_080CC37B:: @ 080CC37B
|
||||
.incbin "baserom.gba", 0x0CC37B, 0x0000021
|
||||
|
||||
gUnk_080CC39C:: @ 080CC39C
|
||||
.incbin "baserom.gba", 0x0CC39C, 0x0000038
|
||||
|
||||
gUnk_080CC3D4:: @ 080CC3D4
|
||||
.incbin "baserom.gba", 0x0CC3D4, 0x0000038
|
||||
|
||||
gUnk_080CC40C:: @ 080CC40C
|
||||
.incbin "baserom.gba", 0x0CC40C, 0x0000034
|
||||
|
||||
gUnk_080CC440:: @ 080CC440
|
||||
.incbin "baserom.gba", 0x0CC440, 0x0000038
|
||||
|
||||
gUnk_080CC478:: @ 080CC478
|
||||
.incbin "baserom.gba", 0x0CC478, 0x0000038
|
||||
|
||||
gUnk_080CC4B0:: @ 080CC4B0
|
||||
.incbin "baserom.gba", 0x0CC4B0, 0x0000065
|
||||
|
||||
gUnk_080CC515:: @ 080CC515
|
||||
.incbin "baserom.gba", 0x0CC515, 0x000006D
|
||||
|
||||
gUnk_080CC582:: @ 080CC582
|
||||
.incbin "baserom.gba", 0x0CC582, 0x000006D
|
||||
|
||||
gUnk_080CC5EF:: @ 080CC5EF
|
||||
.incbin "baserom.gba", 0x0CC5EF, 0x000006D
|
||||
|
||||
gUnk_080CC65C:: @ 080CC65C
|
||||
.incbin "baserom.gba", 0x0CC65C, 0x0000021
|
||||
|
||||
gUnk_080CC67D:: @ 080CC67D
|
||||
.incbin "baserom.gba", 0x0CC67D, 0x0000007
|
||||
|
||||
gUnk_080CC684:: @ 080CC684
|
||||
.incbin "baserom.gba", 0x0CC684, 0x0000018
|
||||
|
||||
gUnk_080CC69C:: @ 080CC69C
|
||||
.incbin "baserom.gba", 0x0CC69C, 0x0000038
|
||||
|
||||
gUnk_080CC6D4:: @ 080CC6D4
|
||||
.incbin "baserom.gba", 0x0CC6D4, 0x0000028
|
||||
|
||||
gUnk_080CC6FC:: @ 080CC6FC
|
||||
.incbin "baserom.gba", 0x0CC6FC, 0x0000018
|
||||
|
||||
gUnk_080CC714:: @ 080CC714
|
||||
.incbin "baserom.gba", 0x0CC714, 0x0000020
|
||||
|
||||
gUnk_080CC734:: @ 080CC734
|
||||
.incbin "baserom.gba", 0x0CC734, 0x0000025
|
||||
|
||||
gUnk_080CC759:: @ 080CC759
|
||||
.incbin "baserom.gba", 0x0CC759, 0x0000015
|
||||
|
||||
gUnk_080CC76E:: @ 080CC76E
|
||||
.incbin "baserom.gba", 0x0CC76E, 0x0000012
|
||||
|
||||
gUnk_080CC780:: @ 080CC780
|
||||
.incbin "baserom.gba", 0x0CC780, 0x0000010
|
||||
|
||||
gUnk_080CC790:: @ 080CC790
|
||||
.incbin "baserom.gba", 0x0CC790, 0x0000018
|
||||
|
||||
gUnk_080CC7A8:: @ 080CC7A8
|
||||
.incbin "baserom.gba", 0x0CC7A8, 0x0000014
|
||||
|
||||
gUnk_080CC7BC:: @ 080CC7BC
|
||||
.incbin "baserom.gba", 0x0CC7BC, 0x0000004
|
||||
|
||||
gUnk_080CC7C0:: @ 080CC7C0
|
||||
.incbin "baserom.gba", 0x0CC7C0, 0x0000010
|
||||
|
||||
gUnk_080CC7D0:: @ 080CC7D0
|
||||
.incbin "baserom.gba", 0x0CC7D0, 0x0000008
|
||||
|
||||
gUnk_080CC7D8:: @ 080CC7D8
|
||||
.incbin "baserom.gba", 0x0CC7D8, 0x0000008
|
||||
|
||||
gUnk_080CC7E0:: @ 080CC7E0
|
||||
.incbin "baserom.gba", 0x0CC7E0, 0x0000009
|
||||
|
||||
|
|
@ -15,13 +15,9 @@ extern void sub_0805EC9C();
|
|||
extern void sub_0805EC60();
|
||||
extern void sub_080873D0();
|
||||
extern void DeleteEntity();
|
||||
extern u32 sub_080045D4();
|
||||
extern void sub_0806F69C();
|
||||
extern u32 Random();
|
||||
extern void sub_0805E3A0(Entity*, u32);
|
||||
extern Entity* FindEntityInListBySubtype(u32, u32, u32);
|
||||
extern void sub_080791D0();
|
||||
extern u32 FindEntityInListByForm(u32, u32, u32, u32, u32);
|
||||
extern void (*const GreatFairy_Main[])(Entity*);
|
||||
extern void (*const GreatFairy_Behaviors[])(Entity*);
|
||||
extern void (*const GreatFairy_WingsBehaviors[])(Entity*);
|
||||
|
|
|
|||
11
linker.ld
11
linker.ld
|
|
@ -345,8 +345,8 @@ SECTIONS {
|
|||
src/enemy/pesto.o(.text);
|
||||
src/enemy/puffstool.o(.text);
|
||||
asm/chuchuBoss.o(.text);
|
||||
asm/likeLike.o(.text);
|
||||
asm/spearMoblin.o(.text);
|
||||
src/enemy/likeLike.o(.text);
|
||||
src/enemy/spearMoblin.o(.text);
|
||||
asm/businessScrub.o(.text);
|
||||
src/enemy/rupeeLike.o(.text);
|
||||
asm/madderpillar.o(.text);
|
||||
|
|
@ -941,7 +941,12 @@ SECTIONS {
|
|||
data/animations/pesto.o(.rodata);
|
||||
src/enemy/puffstool.o(.rodata);
|
||||
data/animations/puffstool.o(.rodata);
|
||||
data/data_080CC19C.o(.rodata);
|
||||
src/enemy/chuchuBoss.o(.rodata);
|
||||
data/animations/chuchuBoss.o(.rodata);
|
||||
src/enemy/likeLike.o(.rodata);
|
||||
data/animations/likeLike.o(.rodata);
|
||||
src/enemy/spearMoblin.o(.rodata);
|
||||
data/data_080CC6FC.o(.rodata);
|
||||
src/enemy.o(.rodata);
|
||||
data/data_080D3D94.o(.rodata);
|
||||
data/areaPropertyLists.o(.rodata);
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ extern void sub_0804AA30(Entity*, void (*const funcs[])(Entity*));
|
|||
extern u32 sub_0806FCB8(Entity*, u32, u32, u32);
|
||||
extern u32 GetNextFunction(Entity*);
|
||||
extern void SetChildOffset(Entity*, s32, s32, s32);
|
||||
extern u32 Random(void);
|
||||
|
||||
extern Entity* gUnk_020000B0;
|
||||
extern u8 gEntCount;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,190 @@
|
|||
#include "enemy.h"
|
||||
#include "entity.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern void sub_08078B48(void);
|
||||
|
||||
void sub_08027870(Entity*);
|
||||
|
||||
extern void (*const gUnk_080CC19C[])(Entity*);
|
||||
extern void (*const gUnk_080CC1B0[])(Entity*);
|
||||
extern const u8 gUnk_080CC1B8[];
|
||||
extern void (*const gUnk_080CC1C8[])(Entity*);
|
||||
extern void (*const gUnk_080CC1DC[])(Entity*);
|
||||
extern void (*const gUnk_080CC20C[])(Entity*);
|
||||
extern const u8 gUnk_080CC234[];
|
||||
extern const u8 gUnk_080CC24F[];
|
||||
extern void (*const gUnk_080CC258[])(Entity*);
|
||||
extern void (*const gUnk_080CC264[])(Entity*);
|
||||
extern void (*const gUnk_080CC26C[])(Entity*);
|
||||
extern const u8 gUnk_080CC278[];
|
||||
extern const u16 gUnk_080CC27C[];
|
||||
extern const u16 gUnk_080CC29C[];
|
||||
extern const u16 gUnk_080CC2BC[];
|
||||
extern const s8 gUnk_080CC2DC[];
|
||||
|
||||
void sub_08025DC0(Entity*);
|
||||
void sub_08025CBC(Entity*);
|
||||
void sub_08025CD4(Entity*);
|
||||
void sub_08001242(Entity*);
|
||||
void sub_08025DD8(Entity*);
|
||||
void sub_08026060(Entity*);
|
||||
void sub_08026110(Entity*);
|
||||
void sub_080272D4(Entity*);
|
||||
void sub_0802720C(Entity*);
|
||||
void sub_0802720C(Entity*);
|
||||
void sub_08026090(Entity*);
|
||||
void sub_0802626C(Entity*);
|
||||
void sub_08026580(Entity*);
|
||||
void sub_08026634(Entity*);
|
||||
void sub_08026750(Entity*);
|
||||
void sub_0802686C(Entity*);
|
||||
void sub_080268C8(Entity*);
|
||||
void sub_0802694C(Entity*);
|
||||
void sub_08026C40(Entity*);
|
||||
void sub_08026E1C(Entity*);
|
||||
void sub_08026FA4(Entity*);
|
||||
void sub_08027064(Entity*);
|
||||
void sub_08026F1C(Entity*);
|
||||
void sub_080262A8(Entity*);
|
||||
void sub_08026328(Entity*);
|
||||
void sub_08026358(Entity*);
|
||||
void sub_080263B4(Entity*);
|
||||
void sub_08026414(Entity*);
|
||||
void sub_0802647C(Entity*);
|
||||
void sub_080264AC(Entity*);
|
||||
void sub_080264D4(Entity*);
|
||||
void sub_0802650C(Entity*);
|
||||
void sub_0802653C(Entity*);
|
||||
void sub_08026774(Entity*);
|
||||
void sub_080267D0(Entity*);
|
||||
void sub_08026808(Entity*);
|
||||
void sub_080268EC(Entity*);
|
||||
void sub_08026914(Entity*);
|
||||
void sub_08026968(Entity*);
|
||||
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 gUnk_080CC1B0[])(Entity*) = {
|
||||
sub_08025DD8,
|
||||
sub_08026060,
|
||||
};
|
||||
|
||||
const u8 gUnk_080CC1B8[] = {
|
||||
0, 4,
|
||||
0, 0,
|
||||
0, 4,
|
||||
0, 0,
|
||||
1, 4,
|
||||
0, 0,
|
||||
2, 4,
|
||||
0, 0,
|
||||
};
|
||||
|
||||
void (*const gUnk_080CC1C8[])(Entity*) = {
|
||||
sub_08026110,
|
||||
sub_080272D4,
|
||||
sub_0802720C,
|
||||
sub_0802720C,
|
||||
sub_08026090,
|
||||
};
|
||||
|
||||
void (*const gUnk_080CC1DC[])(Entity*) = {
|
||||
sub_0802626C,
|
||||
sub_08026580,
|
||||
sub_08026634,
|
||||
sub_08026750,
|
||||
sub_0802686C,
|
||||
sub_080268C8,
|
||||
sub_0802694C,
|
||||
sub_08026C40,
|
||||
sub_08026E1C,
|
||||
sub_08026FA4,
|
||||
sub_08027064,
|
||||
sub_08026F1C,
|
||||
};
|
||||
|
||||
void (*const gUnk_080CC20C[])(Entity*) = {
|
||||
sub_080262A8,
|
||||
sub_08026328,
|
||||
sub_08026358,
|
||||
sub_080263B4,
|
||||
sub_08026414,
|
||||
sub_0802647C,
|
||||
sub_080264AC,
|
||||
sub_080264D4,
|
||||
sub_0802650C,
|
||||
sub_0802653C,
|
||||
};
|
||||
|
||||
const u8 gUnk_080CC234[] = {
|
||||
0x3C, 0x1E, 0x1E, 0x1E,
|
||||
0x1E, 0x0F, 0x0F, 0x0F,
|
||||
0x04, 0x04, 0x04, 0x04,
|
||||
0x04, 0x04, 0x0A, 0x0A,
|
||||
0x0A, 0x0F, 0x0F, 0x0F,
|
||||
0x1E, 0x1E, 0x2D, 0x0A,
|
||||
0x5A, 0x1E, 0xFF,
|
||||
};
|
||||
|
||||
const u8 gUnk_080CC24F[] = {
|
||||
2, 2, 4, 4,
|
||||
4, 6, 6, 8,
|
||||
};
|
||||
|
||||
void (*const gUnk_080CC258[])(Entity*) = {
|
||||
sub_08026774,
|
||||
sub_080267D0,
|
||||
sub_08026808,
|
||||
};
|
||||
|
||||
void (*const gUnk_080CC264[])(Entity*) = {
|
||||
sub_080268EC,
|
||||
sub_08026914,
|
||||
};
|
||||
|
||||
void (*const gUnk_080CC26C[])(Entity*) = {
|
||||
sub_08026968,
|
||||
sub_080269CC,
|
||||
sub_08026BE8,
|
||||
};
|
||||
|
||||
const u8 gUnk_080CC278[] = {
|
||||
150, 180, 210, 250,
|
||||
};
|
||||
|
||||
const u16 gUnk_080CC27C[] = {
|
||||
0x80, 0x8, 0x100, 0x6,
|
||||
0x80, 0x18, 0x100, 0x8,
|
||||
0x180, 0x6, 0x100, 0x10,
|
||||
0x0, 0x0, 0xA0, 0x18,
|
||||
};
|
||||
|
||||
const u16 gUnk_080CC29C[] = {
|
||||
0x80, 0x8, 0x100, 0x4,
|
||||
0x80, 0xC, 0x80, 0x6,
|
||||
0x200, 0x6, 0x100, 0xC,
|
||||
0x0, 0x0, 0xA0, 0x14,
|
||||
};
|
||||
|
||||
const u16 gUnk_080CC2BC[] = {
|
||||
0x80, 0x8, 0x100, 0x0,
|
||||
0x60, 0x2, 0x80, 0x2,
|
||||
0x200, 0x6, 0x100, 0x8,
|
||||
0x0, 0x0, 0xA0, 0x10,
|
||||
};
|
||||
|
||||
|
||||
const s8 gUnk_080CC2DC[] = {
|
||||
-7, -9, -7,
|
||||
};
|
||||
// clang-format on
|
||||
|
|
@ -0,0 +1,287 @@
|
|||
#include "enemy.h"
|
||||
#include "entity.h"
|
||||
#include "functions.h"
|
||||
#include "textbox.h"
|
||||
|
||||
extern bool32 sub_080544B4(u32);
|
||||
extern void sub_0807CAA0(u32, u32);
|
||||
|
||||
void sub_0802810C(Entity*);
|
||||
void sub_080281A0(Entity*);
|
||||
bool32 sub_080281E0(u32);
|
||||
void sub_08028224(u32);
|
||||
|
||||
extern void (*const gUnk_080CC6FC[])(Entity*);
|
||||
extern void (*const gUnk_080CC714[])(Entity*);
|
||||
|
||||
void LikeLike(Entity* this) {
|
||||
EnemyFunctionHandler(this, gUnk_080CC6FC);
|
||||
SetChildOffset(this, 0, 1, -0x10);
|
||||
}
|
||||
|
||||
void sub_08027D8C(Entity* this) {
|
||||
gUnk_080CC714[this->action](this);
|
||||
}
|
||||
|
||||
void sub_08027DA4(Entity* this) {
|
||||
if (this->damageType == 1) {
|
||||
this->action = 3;
|
||||
this->flags &= ~0x80;
|
||||
this->damageType = 0x8c;
|
||||
} else {
|
||||
if (this->action == 7) {
|
||||
sub_0802810C(this);
|
||||
} else if (this->bitfield & 0x80) {
|
||||
u8 tmp = this->bitfield & ~0x80;
|
||||
if (!tmp) {
|
||||
this->action = 7;
|
||||
this->actionDelay = 0x5f;
|
||||
this->field_0xf = tmp;
|
||||
this->flags2 &= 0xfc;
|
||||
this->field_0x82.HALF.HI = gPlayerEntity.spritePriority.b1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (this->currentHealth == 0) {
|
||||
this->actionDelay = 0x20;
|
||||
}
|
||||
|
||||
if (this->field_0x43) {
|
||||
sub_0804A9FC(this, 0x1c);
|
||||
}
|
||||
|
||||
sub_0804AA30(this, gUnk_080CC6FC);
|
||||
}
|
||||
|
||||
void sub_08027E40(Entity* this) {
|
||||
if (this->actionDelay == 2 && this->field_0x80.HALF.LO != 0xff) {
|
||||
sub_0805E3A0(this, 3);
|
||||
sub_08028224(this->field_0x80.HALF.LO);
|
||||
}
|
||||
sub_0804A7D4(this);
|
||||
}
|
||||
|
||||
void nullsub_139(Entity* this) {
|
||||
/* ... */
|
||||
}
|
||||
|
||||
void sub_08027E70(Entity* this) {
|
||||
sub_0804A720(this);
|
||||
|
||||
switch (this->entityType.form) {
|
||||
case 0:
|
||||
this->action = 3;
|
||||
this->spriteSettings.b.draw = 0;
|
||||
this->flags = this->flags & 0x7f;
|
||||
this->actionDelay = 0;
|
||||
break;
|
||||
case 1:
|
||||
this->action = 1;
|
||||
this->spriteSettings.b.draw = 1;
|
||||
this->actionDelay = 8;
|
||||
InitializeAnimation(this, 1);
|
||||
break;
|
||||
case 2:
|
||||
this->action = 1;
|
||||
this->spriteSettings.b.draw = 0;
|
||||
this->actionDelay = 0;
|
||||
this->damageType = 1;
|
||||
InitializeAnimation(this, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
this->direction = 0;
|
||||
this->field_0x82.HALF.LO = 0;
|
||||
this->animationState = 0;
|
||||
this->field_0x82.HALF.HI = 0;
|
||||
this->field_0x80.HALF.LO = 0xff;
|
||||
}
|
||||
|
||||
void sub_08027EFC(Entity* this) {
|
||||
if (this->damageType == 1)
|
||||
return;
|
||||
|
||||
if (sub_08049FDC(this, 1)) {
|
||||
if (!sub_08049FA0(this) && (Random() & 0x30)) {
|
||||
this->direction = sub_08049EE4(this);
|
||||
} else {
|
||||
this->direction = this->field_0x82.HALF.LO;
|
||||
}
|
||||
|
||||
if (--this->actionDelay == 0) {
|
||||
this->direction = sub_08049F84(this, 1);
|
||||
this->field_0x82.HALF.LO = this->direction;
|
||||
this->actionDelay = 8;
|
||||
}
|
||||
ProcessMovement(this);
|
||||
GetNextFrame(this);
|
||||
} else {
|
||||
this->action = 6;
|
||||
this->flags &= ~0x80;
|
||||
InitializeAnimation(this, 2);
|
||||
}
|
||||
}
|
||||
|
||||
void nullsub_12(Entity* this) {
|
||||
/* ... */
|
||||
}
|
||||
|
||||
void sub_08027F84(Entity* this) {
|
||||
if (sub_08049FDC(this, 1)) {
|
||||
this->action = 5;
|
||||
this->spriteSettings.b.draw = 1;
|
||||
InitializeAnimation(this, 0);
|
||||
CreateDust(this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08027FB4(Entity* this) {
|
||||
if (--this->actionDelay == 0) {
|
||||
this->action = 1;
|
||||
this->actionDelay = 1;
|
||||
this->flags2 |= 1;
|
||||
}
|
||||
GetNextFrame(this);
|
||||
}
|
||||
|
||||
void sub_08027FE0(Entity* this) {
|
||||
GetNextFrame(this);
|
||||
if (this->frames.all & 1) {
|
||||
this->action = 1;
|
||||
this->flags |= 0x80;
|
||||
this->direction = sub_08049F84(this, 1);
|
||||
this->actionDelay = 8;
|
||||
this->spritePriority.b1 = 1;
|
||||
InitializeAnimation(this, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0802802C(Entity* this) {
|
||||
GetNextFrame(this);
|
||||
if (this->frames.all & 1) {
|
||||
this->action = 3;
|
||||
this->spriteSettings.b.draw = 0;
|
||||
this->direction = 0;
|
||||
this->actionDelay = 0;
|
||||
CreateDust(this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0802805C(Entity* this) {
|
||||
u8* tmp;
|
||||
|
||||
UpdateAnimationVariableFrames(this, 2);
|
||||
|
||||
if (sub_0807953C()) {
|
||||
u32 tmp2 = Random();
|
||||
u32 tmp3 = this->field_0xf + 1;
|
||||
tmp3 += (tmp2 & 1);
|
||||
this->field_0xf = tmp3;
|
||||
}
|
||||
|
||||
if (this->field_0xf >= 0x19 || gUnk_02002A40.stats.health == 0) {
|
||||
sub_0802810C(this);
|
||||
} else {
|
||||
ResetPlayer();
|
||||
gPlayerState.field_0x1a[0] |= 0x80;
|
||||
PositionRelative(this, &gPlayerEntity, 0, 0x10000);
|
||||
|
||||
tmp = GetSpriteSubEntryOffsetDataPointer((u16)this->spriteIndex, this->frameIndex);
|
||||
gPlayerEntity.spriteOffsetX = tmp[0];
|
||||
gPlayerEntity.spriteOffsetY = tmp[1];
|
||||
gPlayerEntity.spritePriority.b1 = 0;
|
||||
|
||||
if (--this->actionDelay == 0) {
|
||||
sub_080281A0(this);
|
||||
}
|
||||
|
||||
if ((this->actionDelay & 3) == 0) {
|
||||
EnqueueSFX(0x104);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#if NON_MATCHING
|
||||
void sub_0802810C(Entity* this) {
|
||||
gPlayerState.jumpStatus = 0x41;
|
||||
gPlayerState.field_0xa = 0;
|
||||
gPlayerState.flags.all &= 0xffffffef;
|
||||
gPlayerEntity.flags |= 0x80;
|
||||
gPlayerEntity.field_0x20 = 0x18000;
|
||||
gPlayerEntity.hurtBlinkTime = -60;
|
||||
gPlayerEntity.direction = gPlayerEntity.animationState << 2;
|
||||
gPlayerEntity.spritePriority.b1 = this->field_0x82.HALF.HI;
|
||||
gPlayerEntity.height.HALF.HI = gPlayerEntity.spriteOffsetY;
|
||||
gPlayerEntity.spriteOffsetY = 0;
|
||||
this->action = 4;
|
||||
this->actionDelay = 0x50;
|
||||
this->field_0xf = 0;
|
||||
this->flags2 |= 2;
|
||||
if (this->hurtBlinkTime == 0) {
|
||||
this->hurtBlinkTime = -18;
|
||||
}
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
void sub_0802810C(Entity* this) {
|
||||
asm(".include \"asm/non_matching/likeLike/sub_0802810C.inc\"");
|
||||
}
|
||||
#endif
|
||||
|
||||
void sub_080281A0(Entity* this) {
|
||||
this->field_0xf = 0x19;
|
||||
if (sub_080281E0(0xe)) {
|
||||
this->field_0x80.HALF.LO = 0xe;
|
||||
TextboxNoOverlapFollow(0x578);
|
||||
} else if (sub_080281E0(0xd)) {
|
||||
this->field_0x80.HALF.LO = 0xd;
|
||||
TextboxNoOverlapFollow(0x578);
|
||||
} else {
|
||||
ModHealth(-1);
|
||||
}
|
||||
}
|
||||
|
||||
bool32 sub_080281E0(u32 param_1) {
|
||||
bool32 ret = FALSE;
|
||||
if (GetInventoryValue(param_1) == 1) {
|
||||
if (sub_080544B4(gUnk_02002A40.stats.itemOnA)) {
|
||||
gUnk_02002A40.stats.itemOnA = 0;
|
||||
}
|
||||
|
||||
if (sub_080544B4(gUnk_02002A40.stats.itemOnB)) {
|
||||
gUnk_02002A40.stats.itemOnB = 0;
|
||||
}
|
||||
|
||||
sub_0807CAA0(param_1, 0);
|
||||
ret = TRUE;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void sub_08028224(u32 param_1) {
|
||||
sub_080A7C18(param_1, 0, 1);
|
||||
TextboxNoOverlapFollow(0x579);
|
||||
}
|
||||
|
||||
|
||||
void (*const gUnk_080CC6FC[])(Entity *) = {
|
||||
sub_08027D8C,
|
||||
sub_08027DA4,
|
||||
sub_08001324,
|
||||
sub_08027E40,
|
||||
sub_08001242,
|
||||
nullsub_139,
|
||||
};
|
||||
|
||||
void (*const gUnk_080CC714[])(Entity *) = {
|
||||
sub_08027E70,
|
||||
sub_08027EFC,
|
||||
nullsub_12,
|
||||
sub_08027F84,
|
||||
sub_08027FB4,
|
||||
sub_08027FE0,
|
||||
sub_0802802C,
|
||||
sub_0802805C,
|
||||
};
|
||||
|
|
@ -10,7 +10,6 @@ extern u32 sub_0806F520();
|
|||
extern void sub_0806F4E8();
|
||||
extern void UpdateAnimationVariableFrames();
|
||||
extern void sub_0804A720();
|
||||
extern u32 Random();
|
||||
extern Entity* sub_08049DF4(u32);
|
||||
|
||||
void Octorok_Pause();
|
||||
|
|
@ -233,7 +232,10 @@ const u8 gOctorokSpitChanceModifier[] = {
|
|||
};
|
||||
|
||||
const u8 gOctorokNutOffset[] = {
|
||||
0, -3, 4, 0, 0, 2, -4, 0,
|
||||
0, -3,
|
||||
4, 0,
|
||||
0, 2,
|
||||
-4, 0,
|
||||
};
|
||||
|
||||
const s8 gUnk_080CA17E[] = {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,439 @@
|
|||
#include "enemy.h"
|
||||
#include "entity.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern bool32 sub_0806FC80(Entity*, Entity*, u32);
|
||||
extern Entity* sub_080A7EE0(u32);
|
||||
extern Entity* sub_08049DF4(u32);
|
||||
|
||||
void sub_08028604(Entity*);
|
||||
void sub_08028754(Entity*);
|
||||
void sub_08028784(Entity*);
|
||||
void sub_080287E0(Entity*);
|
||||
void sub_08028728(Entity*);
|
||||
bool32 sub_080286CC(Entity*);
|
||||
bool32 sub_080288A4(Entity*);
|
||||
void sub_08028858(Entity*);
|
||||
void sub_080288C0(Entity*);
|
||||
bool32 sub_08028828(u32, u32);
|
||||
void sub_080287B4(Entity*);
|
||||
|
||||
extern void (*const gUnk_080CC790[])(Entity*);
|
||||
extern void (*const gUnk_080CC7A8[])(Entity*);
|
||||
extern const u8 gUnk_080CC7BC[];
|
||||
extern const s8 gUnk_080CC7C0[];
|
||||
extern const u8 gUnk_080CC7D0[];
|
||||
extern const u16 gUnk_080CC7D8[];
|
||||
|
||||
extern const BoundingBox* const gUnk_080CC944[];
|
||||
|
||||
void SpearMoblin(Entity* this) {
|
||||
EnemyFunctionHandler(this, gUnk_080CC790);
|
||||
SetChildOffset(this, 0, 1, -0x20);
|
||||
if (this->attachedEntity && this->attachedEntity->next) {
|
||||
CopyPosition(this, this->attachedEntity);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0802826C(Entity* this) {
|
||||
gUnk_080CC7A8[this->action](this);
|
||||
}
|
||||
|
||||
void sub_08028284(Entity* this) {
|
||||
if (this->field_0x43 != 0)
|
||||
sub_0804A9FC(this, 0x1c);
|
||||
|
||||
sub_0804AA30(this, gUnk_080CC790);
|
||||
if (this->bitfield & 0x80) {
|
||||
if (this->action != 4) {
|
||||
sub_08028754(this);
|
||||
} else {
|
||||
if ((this->bitfield & 0x3f) == 0) {
|
||||
this->field_0x7a.HALF.LO++;
|
||||
this->field_0x80.HALF.HI = 0x16;
|
||||
sub_08028784(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this->attachedEntity->hurtBlinkTime = this->hurtBlinkTime;
|
||||
if (this->currentHealth == 0) {
|
||||
this->nonPlanarMovement = 0;
|
||||
this->field_0x82.HALF.LO = 0;
|
||||
sub_080287E0(this);
|
||||
DeleteEntity(this->attachedEntity);
|
||||
this->attachedEntity = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void nullsub_13(Entity* this) {
|
||||
/* ... */
|
||||
}
|
||||
|
||||
void sub_08028314(Entity* this) {
|
||||
Entity* pEVar2;
|
||||
|
||||
sub_0804A720(this);
|
||||
this->action = 1;
|
||||
this->animationState = 0;
|
||||
this->field_0x7a.HALF.HI = 0;
|
||||
this->field_0x80.HALF.LO = 0;
|
||||
this->field_0x82.HALF.HI = 0;
|
||||
this->field_0x80.HALF.HI = 0;
|
||||
this->field_0x7a.HALF.LO = 0;
|
||||
this->field_0x82.HALF.LO = 1;
|
||||
|
||||
if (this->actionDelay) {
|
||||
this->animationState = this->entityType.parameter << 1;
|
||||
this->actionDelay = 0x1e;
|
||||
this->nonPlanarMovement = 0x80;
|
||||
this->direction = this->animationState << 2;
|
||||
sub_080287E0(this);
|
||||
} else {
|
||||
this->animationState = 0x10;
|
||||
sub_08028604(this);
|
||||
}
|
||||
|
||||
pEVar2 = sub_080A7EE0(3);
|
||||
if (pEVar2 != NULL) {
|
||||
pEVar2->parent = this;
|
||||
this->attachedEntity = pEVar2;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08028378(Entity* this) {
|
||||
if (this->field_0x80.HALF.HI != 0) {
|
||||
this->field_0x80.HALF.HI--;
|
||||
}
|
||||
|
||||
if (--this->actionDelay == 0) {
|
||||
if (++this->field_0x80.HALF.LO >= 0x10) {
|
||||
sub_08028728(this);
|
||||
} else {
|
||||
sub_08028604(this);
|
||||
}
|
||||
} else {
|
||||
if (sub_080286CC(this)) {
|
||||
this->field_0x7a.HALF.HI |= 1;
|
||||
}
|
||||
if (sub_080288A4(this)) {
|
||||
sub_0800417E(this, this->collisions);
|
||||
this->animationState = DirectionRoundUp(this->direction) >> 2;
|
||||
this->field_0x82.HALF.HI++;
|
||||
sub_080287E0(this);
|
||||
}
|
||||
}
|
||||
|
||||
if (this->field_0xf >= 0xc) {
|
||||
if (this->field_0x7a.HALF.HI != 0) {
|
||||
sub_08028754(this);
|
||||
}
|
||||
} else {
|
||||
this->field_0xf++;
|
||||
}
|
||||
|
||||
sub_08028858(this);
|
||||
}
|
||||
|
||||
void sub_08028420(Entity* this) {
|
||||
if (--this->actionDelay == 0) {
|
||||
this->action = 3;
|
||||
this->field_0x82.HALF.LO = 0;
|
||||
this->field_0x80.HALF.LO = 0;
|
||||
this->animationState = 0x10;
|
||||
sub_08028604(this);
|
||||
} else {
|
||||
if (sub_080286CC(this)) {
|
||||
this->field_0x7a.HALF.HI |= 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (this->field_0xf >= 0xc) {
|
||||
if (this->field_0x7a.HALF.HI != 0) {
|
||||
sub_08028754(this);
|
||||
}
|
||||
} else {
|
||||
this->field_0xf++;
|
||||
}
|
||||
|
||||
sub_08028858(this);
|
||||
}
|
||||
|
||||
void sub_08028488(Entity* this) {
|
||||
if (--this->actionDelay == 0) {
|
||||
switch (this->field_0x82.HALF.LO) {
|
||||
case 3:
|
||||
this->action = 4;
|
||||
this->nonPlanarMovement = 0x180;
|
||||
this->direction = sub_08049F84(this, 1);
|
||||
EnqueueSFX(0x11e);
|
||||
break;
|
||||
case 2:
|
||||
this->action = 2;
|
||||
this->nonPlanarMovement = 0;
|
||||
this->actionDelay = (Random() & 7) * 3 + 0x40;
|
||||
break;
|
||||
case 4:
|
||||
this->direction = (this->direction + 0x10) & 0x18;
|
||||
/* fallthrough */
|
||||
case 1:
|
||||
default:
|
||||
this->action = 1;
|
||||
this->field_0x82.HALF.LO = 1;
|
||||
this->nonPlanarMovement = 0x80;
|
||||
this->actionDelay = (Random() & 7) * 3 + 0x22;
|
||||
break;
|
||||
}
|
||||
|
||||
this->field_0xf = 0;
|
||||
this->animationState = DirectionRoundUp(this->direction) >> 2;
|
||||
sub_080287E0(this);
|
||||
}
|
||||
|
||||
sub_08028858(this);
|
||||
}
|
||||
|
||||
void sub_08028528(Entity* this) {
|
||||
Entity* ent = sub_08049DF4(1);
|
||||
const BoundingBox* box;
|
||||
|
||||
if (ent == NULL) {
|
||||
this->field_0xf = 0;
|
||||
sub_08028728(this);
|
||||
} else {
|
||||
sub_080288C0(this);
|
||||
box = gUnk_080CC944[this->animationState >> 1];
|
||||
this->boundingBox->unknown[0] = box->unknown[0];
|
||||
this->boundingBox->unknown[1] = box->unknown[1];
|
||||
this->boundingBox->unknown[6] = box->unknown[6];
|
||||
this->boundingBox->unknown[7] = box->unknown[7];
|
||||
|
||||
if (this->field_0x7a.HALF.LO != 0) {
|
||||
this->field_0x7a.HALF.LO = 0;
|
||||
this->field_0x80.HALF.HI = 0x16;
|
||||
sub_08028784(this);
|
||||
} else {
|
||||
if (++this->actionDelay == 0x20) {
|
||||
u32 direction;
|
||||
this->actionDelay = 0;
|
||||
direction = GetFacingDirection(this, ent);
|
||||
if (sub_08028828(this->direction, direction)) {
|
||||
this->direction = direction;
|
||||
}
|
||||
}
|
||||
|
||||
if ((this->actionDelay & 7) == 0) {
|
||||
EnqueueSFX(0xf0);
|
||||
CreateFx(this, 2, 0x40);
|
||||
}
|
||||
|
||||
if (++this->field_0x7a.HALF.HI == 0x80) {
|
||||
this->field_0x7a.HALF.LO++;
|
||||
}
|
||||
}
|
||||
|
||||
if (0x20 < this->field_0x7a.HALF.HI) {
|
||||
ProcessMovement(this);
|
||||
}
|
||||
|
||||
GetNextFrame(this);
|
||||
}
|
||||
}
|
||||
|
||||
#if NON_MATCHING
|
||||
void sub_08028604(Entity* this) {
|
||||
this->field_0xf = 0;
|
||||
if (this->field_0x82.HALF.LO == 1) {
|
||||
this->actionDelay = gUnk_080CC7BC[Random() & 3];
|
||||
this->nonPlanarMovement = 0x80;
|
||||
if (sub_08049FA0(this) != 0) {
|
||||
this->direction = gUnk_080CC7D0[Random() & 7] + 0x18 + this->direction & 0x18;
|
||||
} else {
|
||||
u32 iVar3 = sub_08049EE4(this);
|
||||
u32 uVar1;
|
||||
if (this->field_0x82.HALF.HI == '\0') {
|
||||
uVar1 = gUnk_080CC7C0[Random() & 0xf];
|
||||
} else {
|
||||
uVar1 = gUnk_080CC7C0[Random() & 7];
|
||||
this->actionDelay = this->actionDelay + 0x10;
|
||||
this->field_0x82.HALF.HI--;
|
||||
}
|
||||
this->direction = iVar3 + uVar1 + 4U & 0x18;
|
||||
}
|
||||
} else {
|
||||
this->actionDelay = 0xc;
|
||||
this->nonPlanarMovement = 0;
|
||||
}
|
||||
|
||||
if (this->direction >> 2 != this->animationState) {
|
||||
this->animationState = this->direction >> 2;
|
||||
sub_080287E0(this);
|
||||
}
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
void sub_08028604(Entity* this) {
|
||||
asm(".include \"asm/non_matching/spearMoblin/sub_08028604.inc\"");
|
||||
}
|
||||
#endif
|
||||
|
||||
bool32 sub_080286CC(Entity* this) {
|
||||
if (this->field_0x80.HALF.HI == 0) {
|
||||
Entity* ent = sub_08049DF4(1);
|
||||
if (ent != NULL) {
|
||||
if (this->field_0x82.HALF.LO == 2 && sub_0806FC80(this, ent, 0x30))
|
||||
return TRUE;
|
||||
|
||||
if (sub_0806FC80(this, ent, 0x40) &&
|
||||
DirectionRoundUp(GetFacingDirection(this, ent)) >> 2 == this->animationState)
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_08028728(Entity* this) {
|
||||
this->animationState = DirectionRoundUp(this->direction) >> 2;
|
||||
this->direction = this->animationState << 2;
|
||||
this->field_0x82.HALF.HI >>= 1;
|
||||
sub_080287B4(this);
|
||||
this->field_0x82.HALF.LO = 2;
|
||||
}
|
||||
|
||||
void sub_08028754(Entity* this) {
|
||||
this->direction = sub_08049F84(this, 1);
|
||||
this->animationState = DirectionRoundUp(this->direction) >> 2;
|
||||
this->field_0x82.HALF.HI = 0;
|
||||
sub_080287B4(this);
|
||||
this->field_0x82.HALF.LO = 3;
|
||||
}
|
||||
|
||||
void sub_08028784(Entity* this) {
|
||||
this->animationState = DirectionRoundUp(this->direction) >> 2;
|
||||
this->direction = this->animationState << 2;
|
||||
this->field_0x82.HALF.HI = 0;
|
||||
sub_080287B4(this);
|
||||
this->actionDelay <<= 1;
|
||||
this->field_0x82.HALF.LO = 4;
|
||||
}
|
||||
|
||||
void sub_080287B4(Entity* this) {
|
||||
this->action = 3;
|
||||
this->actionDelay = 0x20;
|
||||
this->field_0xf = 0;
|
||||
this->field_0x80.HALF.LO = 0;
|
||||
this->field_0x7a.HALF.HI = 0;
|
||||
this->nonPlanarMovement = 0;
|
||||
this->field_0x82.HALF.LO = 0;
|
||||
sub_080287E0(this);
|
||||
}
|
||||
|
||||
void sub_080287E0(Entity* this) {
|
||||
u32 sprite = this->animationState >> 1;
|
||||
switch (this->field_0x82.HALF.LO) {
|
||||
case 0:
|
||||
/* ... */
|
||||
break;
|
||||
case 1:
|
||||
case 4:
|
||||
sprite += 4;
|
||||
break;
|
||||
case 3:
|
||||
sprite += 8;
|
||||
break;
|
||||
case 2:
|
||||
sprite += 0xc;
|
||||
break;
|
||||
}
|
||||
InitializeAnimation(this, sprite);
|
||||
}
|
||||
|
||||
bool32 sub_08028828(u32 arg0, u32 arg1) {
|
||||
if (DirectionRoundUp(arg1) == DirectionRoundUp(arg0)) {
|
||||
u32 angle1 = (arg1 + 5) & 7;
|
||||
u32 angle0 = (arg0 + 5) & 7;
|
||||
if (angle1 < 3 && angle0 < 3)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_08028858(Entity* this) {
|
||||
const BoundingBox* box;
|
||||
|
||||
sub_080288C0(this);
|
||||
box = gUnk_080CC944[this->animationState >> 1];
|
||||
this->boundingBox->unknown[0] = box->unknown[0];
|
||||
this->boundingBox->unknown[1] = box->unknown[1];
|
||||
this->boundingBox->unknown[6] = box->unknown[6];
|
||||
this->boundingBox->unknown[7] = box->unknown[7];
|
||||
|
||||
if (this->field_0x82.HALF.LO == 0) {
|
||||
this->nonPlanarMovement = 0;
|
||||
}
|
||||
|
||||
ProcessMovement(this);
|
||||
GetNextFrame(this);
|
||||
}
|
||||
|
||||
bool32 sub_080288A4(Entity* this) {
|
||||
return (this->collisions & gUnk_080CC7D8[this->animationState >> 1]) != 0;
|
||||
}
|
||||
|
||||
void sub_080288C0(Entity* this) {
|
||||
Entity* ent = this->attachedEntity;
|
||||
if (ent && (ent->bitfield & 0x80)) {
|
||||
this->field_0x3e = ent->field_0x3e;
|
||||
this->hurtBlinkTime = -ent->hurtBlinkTime;
|
||||
this->field_0x46 = ent->field_0x46;
|
||||
this->field_0x42 = ent->field_0x42;
|
||||
ent->field_0x42 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// clang-format off
|
||||
void (*const gUnk_080CC790[])(Entity*) = {
|
||||
sub_0802826C,
|
||||
sub_08028284,
|
||||
sub_08001324,
|
||||
sub_0804A7D4,
|
||||
sub_08001242,
|
||||
nullsub_13,
|
||||
};
|
||||
|
||||
void (*const gUnk_080CC7A8[])(Entity*) = {
|
||||
sub_08028314,
|
||||
sub_08028378,
|
||||
sub_08028420,
|
||||
sub_08028488,
|
||||
sub_08028528,
|
||||
};
|
||||
|
||||
const u8 gUnk_080CC7BC[] = {
|
||||
0x30, 0x60, 0x6C, 0x91,
|
||||
};
|
||||
|
||||
const s8 gUnk_080CC7C0[] = {
|
||||
0xF8, 0x0C,
|
||||
0xF4, 0x08,
|
||||
0x04, 0xFA,
|
||||
0x06, 0xFC,
|
||||
0x00, 0xFD,
|
||||
0x01, 0x03,
|
||||
0xFF, 0x02,
|
||||
0x00, 0xFE,
|
||||
};
|
||||
|
||||
const u8 gUnk_080CC7D0[] = {
|
||||
0x08, 0x10,
|
||||
0x08, 0x00,
|
||||
0x10, 0x08,
|
||||
0x10, 0x00,
|
||||
};
|
||||
|
||||
const u16 gUnk_080CC7D8[] = {
|
||||
0xE, 0xE000, 0xE0, 0xE00,
|
||||
};
|
||||
// clang-format on
|
||||
|
|
@ -2,16 +2,15 @@
|
|||
#include "entity.h"
|
||||
#include "player.h"
|
||||
#include "structures.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern void (*gUnk_081140D4[])(Entity*);
|
||||
|
||||
extern u16 gUnk_081140CC[];
|
||||
extern void sub_0805E3A0(Entity*, u32);
|
||||
extern void sub_0806D0B0(Entity*);
|
||||
extern void sub_0807DD64(Entity*);
|
||||
extern void sub_0807DDAC(Entity*, u32);
|
||||
extern void sub_0807DDE4(Entity*);
|
||||
extern u32 Random(void);
|
||||
extern void PlaySFX(u32);
|
||||
extern void sub_0806D02C(Entity*);
|
||||
extern Entity* FindEntityInListByForm(u32, u32, u32, u32, u32);
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@ extern void (*gUnk_08111914[])(Entity*);
|
|||
extern void (*gUnk_08111928[])(Entity*);
|
||||
extern Dialog gUnk_08111938[];
|
||||
extern void PlaySFX(u32);
|
||||
extern u32 Random();
|
||||
extern u32 UpdateFuseInteraction(Entity*);
|
||||
extern PlayerState gPlayerState;
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ extern void sub_08060158(Entity*);
|
|||
extern u32 CheckKinstoneFused(u32);
|
||||
extern Entity* FindEntityInListBySubtype(u32, u32, u32);
|
||||
extern void DeleteEntity(Entity*);
|
||||
extern u32 Random(void);
|
||||
extern void ModBombs(s32);
|
||||
|
||||
extern SpriteLoadData gUnk_0810A348;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@
|
|||
|
||||
extern void sub_08068780(Entity*);
|
||||
extern void sub_08078778(Entity*);
|
||||
extern u32 Random(void);
|
||||
extern void sub_0807DD50(Entity*);
|
||||
extern void sub_0806F118(Entity*);
|
||||
extern void sub_0807DDAC(Entity*, u32);
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ extern u32 sub_0806F5A4(u32);
|
|||
extern void sub_0806F118(Entity*);
|
||||
extern Entity* CreateFx(Entity*, u32, u32);
|
||||
extern void PlaySFX(u32);
|
||||
extern u32 Random(void);
|
||||
extern void sub_0807000C(Entity*);
|
||||
extern u32 sub_0801E99C(Entity*);
|
||||
extern void sub_0807DD50(Entity*);
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@ extern void sub_08062048(Entity*);
|
|||
extern void sub_08078784(Entity*, u32);
|
||||
extern void sub_08078778(Entity*);
|
||||
extern u32 sub_0806F5B0(u32);
|
||||
extern u32 Random(void);
|
||||
extern void ResolveEntityOnTop(Entity*, Entity*);
|
||||
extern void sub_08078850(Entity*, u32, u8, u32*);
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include "room.h"
|
||||
#include "player.h"
|
||||
#include "flags.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern void sub_0809F7BC(Entity*);
|
||||
extern void PlaySFX(u32);
|
||||
|
|
@ -13,7 +14,6 @@ extern void DeleteThisEntity();
|
|||
extern u32 CheckRoomFlag(u32);
|
||||
extern void sub_08078A90(u32);
|
||||
extern void sub_08078B48(void);
|
||||
extern u32 Random(void);
|
||||
extern void sub_0806F69C(Entity*);
|
||||
extern void (*gUnk_08124798[])(Entity*);
|
||||
extern void (*gUnk_081247A0[])(Entity*);
|
||||
|
|
@ -23,7 +23,6 @@ extern void PositionEntityOnTop(Entity*, Entity*);
|
|||
extern void sub_0807BB68(u32*, u32, u32);
|
||||
|
||||
extern u8 gUnk_02034490;
|
||||
extern u32 gScreenTransition;
|
||||
extern void* gUnk_080DD750;
|
||||
extern Entity gPlayerEntity;
|
||||
extern PlayerState gPlayerState;
|
||||
|
|
@ -62,7 +61,7 @@ void sub_0809F548(Entity* this) {
|
|||
sub_0809F814((((this->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 63) |
|
||||
(((this->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 63) << 6);
|
||||
} else {
|
||||
if ((gScreenTransition & 7) == 0) {
|
||||
if ((gScreenTransition.frameCount & 7) == 0) {
|
||||
sub_0809F7BC(this);
|
||||
}
|
||||
sub_0809F7F4(this);
|
||||
|
|
@ -110,7 +109,7 @@ void sub_0809F61C(Entity* this) {
|
|||
sub_0809F814((((this->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 63) |
|
||||
(((this->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 63) << 6);
|
||||
} else {
|
||||
if ((gScreenTransition & 7) == 0) {
|
||||
if ((gScreenTransition.frameCount & 7) == 0) {
|
||||
sub_0809F7BC(this);
|
||||
}
|
||||
sub_0809F7F4(this);
|
||||
|
|
@ -145,7 +144,7 @@ void sub_0809F700(Entity* this) {
|
|||
this->actionDelay = (Random() & 30) + 8;
|
||||
this->flags = this->flags | 12;
|
||||
}
|
||||
if ((gScreenTransition & 3) == 0) {
|
||||
if ((gScreenTransition.frameCount & 3) == 0) {
|
||||
uVar2 = Random();
|
||||
this->spriteOffsetX = gUnk_081247C0[uVar2 & 7];
|
||||
this->spriteOffsetY = gUnk_081247C0[uVar2 >> 4 & 7];
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
#include "screen.h"
|
||||
#include "greatFairy.h"
|
||||
#include "structures.h"
|
||||
#include "functions.h"
|
||||
|
||||
enum {
|
||||
BEHAVIORS,
|
||||
|
|
@ -550,14 +551,14 @@ void sub_08087424(Entity* arg0, struct_08087424* arg1) {
|
|||
void sub_0808747C(u32 arg0, u32 arg1) {
|
||||
u32 iVar1;
|
||||
|
||||
iVar1 = FindEntityInListByForm(0x6, 0xf, 0x6, 0xb, 0x0);
|
||||
iVar1 = (u32)FindEntityInListByForm(0x6, 0xf, 0x6, 0xb, 0x0);
|
||||
if (iVar1 != 0) {
|
||||
iVar1 = 1;
|
||||
}
|
||||
*(u32*)(arg1 + 0x14) = iVar1;
|
||||
}
|
||||
|
||||
//clang-format off
|
||||
// clang-format off
|
||||
void (*const GreatFairy_Main[])(Entity*) = {
|
||||
GreatFairy_CallBehavior,
|
||||
GreatFairy_WingsCallBehavior,
|
||||
|
|
@ -647,5 +648,4 @@ void (*const GreatFairy_Form2Behaviors[])(Entity*) = {
|
|||
sub_08087264,
|
||||
sub_0808727C
|
||||
};
|
||||
|
||||
//clang-format on
|
||||
// clang-format on
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
|
||||
extern u32 Random();
|
||||
extern bool32 CheckIsDungeon();
|
||||
extern void sub_080AE068(Entity*);
|
||||
extern void LoadFixedGFX(Entity*, u32);
|
||||
|
|
|
|||
|
|
@ -1,10 +1,8 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern void sub_08086A6C();
|
||||
extern s32 sub_080044EC();
|
||||
extern void ProcessMovement();
|
||||
extern u32 Random(void);
|
||||
|
||||
extern void (*gUnk_081206C4[99])(Entity*);
|
||||
|
||||
|
|
@ -33,12 +31,10 @@ void sub_080869DC(Entity* ent) {
|
|||
}
|
||||
|
||||
void sub_08086A28(Entity* ent) {
|
||||
s32 iVar1;
|
||||
|
||||
if (ent->attachedEntity->next == NULL) {
|
||||
ent->action = 2;
|
||||
} else {
|
||||
iVar1 = sub_080044EC(ent, 10240);
|
||||
u32 iVar1 = sub_080044EC(ent, 10240);
|
||||
if (iVar1 == 0) {
|
||||
ent->action = 2;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern u32 Random(void);
|
||||
extern void sub_0806F69C(Entity*);
|
||||
|
||||
extern void (*const gUnk_08121060[])(Entity*);
|
||||
|
|
|
|||
Loading…
Reference in New Issue