mirror of https://github.com/zeldaret/tmc.git
480 lines
8.1 KiB
ArmAsm
480 lines
8.1 KiB
ArmAsm
.include "asm/macros.inc"
|
|
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
|
|
thumb_func_start Gorman
|
|
Gorman: @ 0x08069784
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldrb r1, [r2, #0x10]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806979A
|
|
adds r0, r2, #0
|
|
bl sub_08069838
|
|
b _080697A0
|
|
_0806979A:
|
|
adds r0, r2, #0
|
|
bl sub_080697A4
|
|
_080697A0:
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080697A4
|
|
sub_080697A4: @ 0x080697A4
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r1, _080697C0 @ =gUnk_08111C48
|
|
ldrb r0, [r4, #0xc]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
adds r0, r4, #0
|
|
bl _call_via_r1
|
|
adds r0, r4, #0
|
|
bl sub_0806ED78
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_080697C0: .4byte gUnk_08111C48
|
|
|
|
thumb_func_start sub_080697C4
|
|
sub_080697C4: @ 0x080697C4
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r1, _080697E8 @ =gUnk_08111C3C
|
|
bl LoadExtraSpriteData
|
|
cmp r0, #0
|
|
beq _080697E4
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl InitializeAnimation
|
|
adds r0, r4, #0
|
|
bl sub_08078778
|
|
_080697E4:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_080697E8: .4byte gUnk_08111C3C
|
|
|
|
thumb_func_start sub_080697EC
|
|
sub_080697EC: @ 0x080697EC
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r1, #0x20
|
|
movs r2, #0x20
|
|
bl sub_0806ED9C
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
blt _0806981E
|
|
ldrb r0, [r4, #0xf]
|
|
cmp r0, #0
|
|
bne _0806981A
|
|
movs r0, #0x10
|
|
strb r0, [r4, #0xf]
|
|
adds r0, r4, #0
|
|
adds r0, #0x58
|
|
ldrb r0, [r0]
|
|
cmp r0, r1
|
|
beq _0806981E
|
|
adds r0, r4, #0
|
|
bl InitializeAnimation
|
|
b _0806981E
|
|
_0806981A:
|
|
subs r0, #1
|
|
strb r0, [r4, #0xf]
|
|
_0806981E:
|
|
adds r1, r4, #0
|
|
adds r1, #0x39
|
|
movs r0, #0
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, #0
|
|
beq _08069834
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
bl sub_08069888
|
|
_08069834:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08069838
|
|
sub_08069838: @ 0x08069838
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldrb r5, [r4, #0xc]
|
|
cmp r5, #0
|
|
bne _08069862
|
|
ldr r1, _08069884 @ =gUnk_08111C3C
|
|
bl LoadExtraSpriteData
|
|
cmp r0, #0
|
|
beq _08069880
|
|
ldrb r0, [r4, #0xc]
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
adds r0, #0x68
|
|
strb r5, [r0]
|
|
adds r0, #1
|
|
strb r5, [r0]
|
|
adds r0, r4, #0
|
|
bl sub_0807DD64
|
|
_08069862:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DD94
|
|
adds r1, r4, #0
|
|
adds r1, #0x39
|
|
movs r0, #0
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, #0
|
|
beq _08069880
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
bl sub_08069888
|
|
_08069880:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_08069884: .4byte gUnk_08111C3C
|
|
|
|
thumb_func_start sub_08069888
|
|
sub_08069888: @ 0x08069888
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
movs r0, #0x47
|
|
bl CheckGlobalFlag
|
|
cmp r0, #0
|
|
bne _080698A0
|
|
movs r4, #0
|
|
movs r0, #0x47
|
|
bl SetGlobalFlag
|
|
b _08069906
|
|
_080698A0:
|
|
movs r0, #0x2b
|
|
bl CheckGlobalFlag
|
|
cmp r0, #0
|
|
bne _080698C2
|
|
movs r0, #0x2c
|
|
bl CheckGlobalFlag
|
|
cmp r0, #0
|
|
bne _080698C2
|
|
movs r0, #0x2d
|
|
bl CheckGlobalFlag
|
|
cmp r0, #0
|
|
bne _080698C2
|
|
movs r4, #1
|
|
b _08069906
|
|
_080698C2:
|
|
movs r0, #0x18
|
|
bl CheckGlobalFlag
|
|
cmp r0, #0
|
|
bne _080698D0
|
|
movs r4, #2
|
|
b _08069906
|
|
_080698D0:
|
|
movs r0, #0x48
|
|
bl CheckGlobalFlag
|
|
cmp r0, #0
|
|
bne _080698E4
|
|
movs r4, #3
|
|
movs r0, #0x48
|
|
bl SetGlobalFlag
|
|
b _08069906
|
|
_080698E4:
|
|
movs r0, #0x2e
|
|
bl CheckGlobalFlag
|
|
cmp r0, #0
|
|
bne _08069904
|
|
movs r0, #0x2f
|
|
bl CheckGlobalFlag
|
|
cmp r0, #0
|
|
bne _08069904
|
|
movs r0, #0x30
|
|
bl CheckGlobalFlag
|
|
movs r4, #4
|
|
cmp r0, #0
|
|
beq _08069906
|
|
_08069904:
|
|
movs r4, #5
|
|
_08069906:
|
|
ldr r0, _08069918 @ =gUnk_08111C50
|
|
lsls r1, r4, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
adds r1, r5, #0
|
|
bl TextboxNoOverlap
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_08069918: .4byte gUnk_08111C50
|
|
|
|
thumb_func_start sub_0806991C
|
|
sub_0806991C: @ 0x0806991C
|
|
push {r4, r5, r6, lr}
|
|
adds r5, r0, #0
|
|
adds r4, r1, #0
|
|
bl Random
|
|
movs r1, #0x1f
|
|
ands r0, r1
|
|
adds r0, #0x3c
|
|
adds r1, r5, #0
|
|
adds r1, #0x68
|
|
movs r3, #0
|
|
strb r0, [r1]
|
|
adds r0, r5, #0
|
|
adds r0, #0x69
|
|
movs r1, #0
|
|
ldrsb r1, [r0, r1]
|
|
lsls r1, r1, #2
|
|
ldr r0, _0806999C @ =gUnk_08111C5C
|
|
adds r1, r1, r0
|
|
ldr r2, _080699A0 @ =gRoomControls
|
|
ldrh r0, [r1]
|
|
ldrh r6, [r2, #6]
|
|
adds r0, r0, r6
|
|
strh r0, [r4, #0x1e]
|
|
ldrh r0, [r1, #2]
|
|
ldrh r2, [r2, #8]
|
|
adds r0, r0, r2
|
|
strh r0, [r4, #0x22]
|
|
movs r0, #8
|
|
strb r0, [r4, #0x19]
|
|
ldr r0, [r4, #8]
|
|
movs r1, #2
|
|
orrs r0, r1
|
|
str r0, [r4, #8]
|
|
str r3, [r4, #0x14]
|
|
movs r1, #0x1e
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, #0x2e
|
|
ldrsh r1, [r5, r2]
|
|
subs r0, r0, r1
|
|
movs r3, #0x22
|
|
ldrsh r1, [r4, r3]
|
|
movs r6, #0x32
|
|
ldrsh r2, [r5, r6]
|
|
subs r1, r1, r2
|
|
bl sub_080045DA
|
|
strb r0, [r5, #0x15]
|
|
ldrb r2, [r5, #0x14]
|
|
movs r1, #0x80
|
|
ands r1, r2
|
|
ldr r2, _080699A4 @ =gUnk_08111C74
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x1c
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
orrs r1, r0
|
|
strb r1, [r5, #0x14]
|
|
ldr r2, _080699A8 @ =gUnk_02033280
|
|
ldrb r1, [r2, #7]
|
|
movs r0, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #7]
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0806999C: .4byte gUnk_08111C5C
|
|
_080699A0: .4byte gRoomControls
|
|
_080699A4: .4byte gUnk_08111C74
|
|
_080699A8: .4byte gUnk_02033280
|
|
|
|
thumb_func_start sub_080699AC
|
|
sub_080699AC: @ 0x080699AC
|
|
push {r4, r5, r6, lr}
|
|
adds r5, r0, #0
|
|
adds r4, r1, #0
|
|
bl Random
|
|
movs r1, #0x1f
|
|
ands r0, r1
|
|
adds r0, #0x3c
|
|
adds r1, r5, #0
|
|
adds r1, #0x68
|
|
movs r3, #0
|
|
strb r0, [r1]
|
|
adds r0, r5, #0
|
|
adds r0, #0x69
|
|
movs r1, #0
|
|
ldrsb r1, [r0, r1]
|
|
lsls r1, r1, #2
|
|
ldr r0, _08069A2C @ =gUnk_08111C84
|
|
adds r1, r1, r0
|
|
ldr r2, _08069A30 @ =gRoomControls
|
|
ldrh r0, [r1]
|
|
ldrh r6, [r2, #6]
|
|
adds r0, r0, r6
|
|
strh r0, [r4, #0x1e]
|
|
ldrh r0, [r1, #2]
|
|
ldrh r2, [r2, #8]
|
|
adds r0, r0, r2
|
|
strh r0, [r4, #0x22]
|
|
movs r0, #8
|
|
strb r0, [r4, #0x19]
|
|
ldr r0, [r4, #8]
|
|
movs r1, #2
|
|
orrs r0, r1
|
|
str r0, [r4, #8]
|
|
str r3, [r4, #0x14]
|
|
movs r1, #0x1e
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, #0x2e
|
|
ldrsh r1, [r5, r2]
|
|
subs r0, r0, r1
|
|
movs r3, #0x22
|
|
ldrsh r1, [r4, r3]
|
|
movs r6, #0x32
|
|
ldrsh r2, [r5, r6]
|
|
subs r1, r1, r2
|
|
bl sub_080045DA
|
|
strb r0, [r5, #0x15]
|
|
ldrb r2, [r5, #0x14]
|
|
movs r1, #0x80
|
|
ands r1, r2
|
|
ldr r2, _08069A34 @ =gUnk_08111C8C
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x1c
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
orrs r1, r0
|
|
strb r1, [r5, #0x14]
|
|
ldr r2, _08069A38 @ =gUnk_02033280
|
|
ldrb r1, [r2, #7]
|
|
movs r0, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #7]
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_08069A2C: .4byte gUnk_08111C84
|
|
_08069A30: .4byte gRoomControls
|
|
_08069A34: .4byte gUnk_08111C8C
|
|
_08069A38: .4byte gUnk_02033280
|
|
|
|
thumb_func_start sub_08069A3C
|
|
sub_08069A3C: @ 0x08069A3C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl Random
|
|
ldr r2, _08069A5C @ =gUnk_08111C9C
|
|
movs r1, #1
|
|
ands r1, r0
|
|
adds r4, #0x69
|
|
movs r0, #0
|
|
ldrsb r0, [r4, r0]
|
|
lsls r0, r0, #1
|
|
adds r1, r1, r0
|
|
adds r1, r1, r2
|
|
ldrb r0, [r1]
|
|
strb r0, [r4]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08069A5C: .4byte gUnk_08111C9C
|
|
|
|
thumb_func_start sub_08069A60
|
|
sub_08069A60: @ 0x08069A60
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl Random
|
|
ldr r2, _08069A80 @ =gUnk_08111CA8
|
|
movs r1, #1
|
|
ands r1, r0
|
|
adds r4, #0x69
|
|
movs r0, #0
|
|
ldrsb r0, [r4, r0]
|
|
lsls r0, r0, #1
|
|
adds r1, r1, r0
|
|
adds r1, r1, r2
|
|
ldrb r0, [r1]
|
|
strb r0, [r4]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08069A80: .4byte gUnk_08111CA8
|
|
|
|
thumb_func_start sub_08069A84
|
|
sub_08069A84: @ 0x08069A84
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl Random
|
|
ldr r2, _08069AA4 @ =gUnk_08111CB4
|
|
movs r1, #1
|
|
ands r1, r0
|
|
adds r4, #0x69
|
|
movs r0, #0
|
|
ldrsb r0, [r4, r0]
|
|
lsls r0, r0, #1
|
|
adds r1, r1, r0
|
|
adds r1, r1, r2
|
|
ldrb r0, [r1]
|
|
strb r0, [r4]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08069AA4: .4byte gUnk_08111CB4
|
|
|
|
thumb_func_start sub_08069AA8
|
|
sub_08069AA8: @ 0x08069AA8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl Random
|
|
ldr r2, _08069AC8 @ =gUnk_08111CB8
|
|
movs r1, #1
|
|
ands r1, r0
|
|
adds r4, #0x69
|
|
movs r0, #0
|
|
ldrsb r0, [r4, r0]
|
|
lsls r0, r0, #1
|
|
adds r1, r1, r0
|
|
adds r1, r1, r2
|
|
ldrb r0, [r1]
|
|
strb r0, [r4]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08069AC8: .4byte gUnk_08111CB8
|
|
|
|
thumb_func_start sub_08069ACC
|
|
sub_08069ACC: @ 0x08069ACC
|
|
push {lr}
|
|
adds r2, r1, #0
|
|
adds r0, #0x68
|
|
ldrb r1, [r0]
|
|
subs r1, #1
|
|
strb r1, [r0]
|
|
lsls r1, r1, #0x18
|
|
cmp r1, #0
|
|
bgt _08069AE2
|
|
movs r0, #1
|
|
b _08069AE4
|
|
_08069AE2:
|
|
movs r0, #0
|
|
_08069AE4:
|
|
str r0, [r2, #0x14]
|
|
pop {pc}
|
|
|
|
thumb_func_start Gorman_Head
|
|
Gorman_Head: @ 0x08069AE8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x5a
|
|
ldrb r0, [r0]
|
|
movs r2, #7
|
|
ands r2, r0
|
|
adds r2, #0xf
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl SetExtraSpriteFrame
|
|
ldrb r2, [r4, #0x1e]
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl SetExtraSpriteFrame
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
movs r2, #0
|
|
bl SetSpriteSubEntryOffsetData1
|
|
adds r0, r4, #0
|
|
bl sub_0807000C
|
|
pop {r4, pc}
|
|
.align 2, 0
|