pokefirered/asm/quest_log_8150454.s
2018-10-13 09:28:50 -04:00

483 lines
7.9 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_8150454
sub_8150454: @ 8150454
push {lr}
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x8
bhi _0815046A
ldr r0, _08150470 @ =gUnknown_8471EDC
lsls r1, 2
adds r1, r0
ldr r0, [r1]
bl _call_via_r0
_0815046A:
pop {r0}
bx r0
.align 2, 0
_08150470: .4byte gUnknown_8471EDC
thumb_func_end sub_8150454
thumb_func_start sub_8150474
sub_8150474: @ 8150474
push {lr}
lsls r0, 24
lsrs r1, r0, 24
ldr r0, _08150488 @ =gUnknown_3005E88
ldrb r0, [r0]
cmp r0, 0x2
beq _0815048C
movs r0, 0
b _08150494
.align 2, 0
_08150488: .4byte gUnknown_3005E88
_0815048C:
adds r0, r1, 0
bl sub_8112720
movs r0, 0x1
_08150494:
pop {r1}
bx r1
thumb_func_end sub_8150474
thumb_func_start sub_8150498
sub_8150498: @ 8150498
push {lr}
lsls r0, 24
lsrs r0, 24
bl sub_8150454
pop {r0}
bx r0
thumb_func_end sub_8150498
thumb_func_start sub_81504A8
sub_81504A8: @ 81504A8
push {r4,lr}
ldr r0, _081504E0 @ =gPlayerAvatar
ldrb r0, [r0, 0x5]
lsls r4, r0, 3
adds r4, r0
lsls r4, 2
ldr r0, _081504E4 @ =gMapObjects
adds r4, r0
movs r0, 0
bl sub_805C808
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_81507BC
ldrb r1, [r4, 0x18]
lsrs r1, 4
adds r0, r4, 0
bl FieldObjectTurn
movs r0, 0x1
bl SetPlayerAvatarStateMask
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081504E0: .4byte gPlayerAvatar
_081504E4: .4byte gMapObjects
thumb_func_end sub_81504A8
thumb_func_start sub_81504E8
sub_81504E8: @ 81504E8
push {r4,lr}
ldr r0, _08150528 @ =gPlayerAvatar
ldrb r0, [r0, 0x5]
lsls r4, r0, 3
adds r4, r0
lsls r4, 2
ldr r0, _0815052C @ =gMapObjects
adds r4, r0
movs r0, 0x1
bl sub_805C808
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_81507BC
ldrb r1, [r4, 0x18]
lsrs r1, 4
adds r0, r4, 0
bl FieldObjectTurn
movs r0, 0x2
bl SetPlayerAvatarStateMask
movs r0, 0
movs r1, 0
bl sub_80BD620
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08150528: .4byte gPlayerAvatar
_0815052C: .4byte gMapObjects
thumb_func_end sub_81504E8
thumb_func_start sub_8150530
sub_8150530: @ 8150530
push {r4-r6,lr}
ldr r6, _0815057C @ =gPlayerAvatar
ldrb r1, [r6, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _08150580 @ =gMapObjects
adds r4, r0, r1
ldrb r1, [r4, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08150584 @ =gSprites
adds r5, r0, r1
ldr r0, _08150588 @ =gUnknown_3005E88
ldrb r0, [r0]
cmp r0, 0x1
beq _08150558
cmp r0, 0x3
bne _08150594
_08150558:
bl ScriptContext2_Enable
movs r4, 0
movs r0, 0x1
strb r0, [r6, 0x6]
ldr r0, _0815058C @ =sub_81505C4
movs r1, 0xFF
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _08150590 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r4, [r1, 0x8]
b _081505BC
.align 2, 0
_0815057C: .4byte gPlayerAvatar
_08150580: .4byte gMapObjects
_08150584: .4byte gSprites
_08150588: .4byte gUnknown_3005E88
_0815058C: .4byte sub_81505C4
_08150590: .4byte gTasks
_08150594:
movs r0, 0x4
bl sub_805C808
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_81507BC
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl sub_80634F0
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl StartSpriteAnim
_081505BC:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8150530
thumb_func_start sub_81505C4
sub_81505C4: @ 81505C4
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r0, _0815060C @ =gPlayerAvatar
mov r9, r0
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _08150610 @ =gMapObjects
adds r5, r0, r1
ldrb r1, [r5, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08150614 @ =gSprites
adds r7, r0, r1
ldr r1, _08150618 @ =gTasks
mov r2, r8
lsls r0, r2, 2
add r0, r8
lsls r0, 3
adds r4, r0, r1
movs r0, 0x8
ldrsh r6, [r4, r0]
cmp r6, 0x1
beq _08150666
cmp r6, 0x1
bgt _0815061C
cmp r6, 0
beq _08150626
b _081506FC
.align 2, 0
_0815060C: .4byte gPlayerAvatar
_08150610: .4byte gMapObjects
_08150614: .4byte gSprites
_08150618: .4byte gTasks
_0815061C:
cmp r6, 0x2
beq _0815067C
cmp r6, 0x3
beq _0815069C
b _081506FC
_08150626:
adds r0, r5, 0
bl FieldObjectClearAnimIfSpecialAnimActive
ldrb r0, [r5, 0x1]
movs r1, 0x8
orrs r0, r1
strb r0, [r5, 0x1]
movs r0, 0x4
bl sub_805C808
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl sub_81507BC
ldrb r0, [r5, 0x18]
lsls r0, 28
lsrs r0, 28
bl sub_80634F0
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r7, 0
bl StartSpriteAnim
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
strh r6, [r4, 0xA]
b _081506FC
_08150666:
adds r0, r7, 0
bl sub_805D9C4
ldrh r1, [r4, 0xA]
movs r2, 0xA
ldrsh r0, [r4, r2]
cmp r0, 0x3B
bgt _08150694
adds r0, r1, 0x1
strh r0, [r4, 0xA]
b _081506FC
_0815067C:
bl player_get_direction_lower_nybble
lsls r0, 24
lsrs r0, 24
bl sub_8063500
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r7, 0
bl StartSpriteAnim
_08150694:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _081506FC
_0815069C:
adds r0, r7, 0
bl sub_805D9C4
adds r0, r7, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _081506FC
mov r0, r9
ldrb r1, [r0]
movs r0, 0x8
ands r0, r1
cmp r0, 0
bne _081506D0
movs r0, 0
bl sub_805C808
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl sub_81507BC
b _081506E2
_081506D0:
movs r0, 0x2
bl sub_805C808
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl sub_81507BC
_081506E2:
ldrb r1, [r5, 0x18]
lsrs r1, 4
adds r0, r5, 0
bl FieldObjectTurn
movs r0, 0
strh r0, [r7, 0x24]
strh r0, [r7, 0x26]
bl ScriptContext2_Disable
mov r0, r8
bl DestroyTask
_081506FC:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81505C4
thumb_func_start sub_8150708
sub_8150708: @ 8150708
push {r4,r5,lr}
ldr r5, _08150770 @ =gPlayerAvatar
ldrb r1, [r5, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _08150774 @ =gMapObjects
adds r4, r0, r1
ldrb r1, [r5]
movs r0, 0x8
ands r0, r1
cmp r0, 0
bne _08150768
movs r0, 0x2
bl sub_805C808
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_81507BC
ldrb r1, [r4, 0x18]
lsrs r1, 4
adds r0, r4, 0
bl FieldObjectTurn
movs r0, 0x8
bl SetPlayerAvatarStateMask
ldr r1, _08150778 @ =gUnknown_20386E0
movs r2, 0x10
ldrsh r0, [r4, r2]
str r0, [r1]
movs r2, 0x12
ldrsh r0, [r4, r2]
str r0, [r1, 0x4]
ldrb r0, [r5, 0x5]
str r0, [r1, 0x8]
movs r0, 0x8
bl FieldEffectStart
lsls r0, 24
lsrs r0, 24
strb r0, [r4, 0x1A]
movs r1, 0x1
bl sub_80DC44C
_08150768:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08150770: .4byte gPlayerAvatar
_08150774: .4byte gMapObjects
_08150778: .4byte gUnknown_20386E0
thumb_func_end sub_8150708
thumb_func_start sub_815077C
sub_815077C: @ 815077C
push {lr}
movs r0, 0x41
bl FieldEffectStart
ldr r0, _08150790 @ =sub_8150794
movs r1, 0
bl CreateTask
pop {r0}
bx r0
.align 2, 0
_08150790: .4byte sub_8150794
thumb_func_end sub_815077C
thumb_func_start sub_8150794
sub_8150794: @ 8150794
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x41
bl FieldEffectActiveListContains
lsls r0, 24
cmp r0, 0
bne _081507B4
bl UnfreezeMapObjects
bl ScriptContext2_Disable
adds r0, r4, 0
bl DestroyTask
_081507B4:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8150794
thumb_func_start sub_81507BC
sub_81507BC: @ 81507BC
push {lr}
lsls r1, 24
lsrs r1, 24
bl sub_805F060
pop {r0}
bx r0
thumb_func_end sub_81507BC
thumb_func_start sub_81507CC
sub_81507CC: @ 81507CC
push {lr}
movs r0, 0x1
bl sub_805D154
pop {r0}
bx r0
thumb_func_end sub_81507CC
thumb_func_start sub_81507D8
sub_81507D8: @ 81507D8
push {lr}
movs r0, 0x2
bl sub_805D154
pop {r0}
bx r0
thumb_func_end sub_81507D8
thumb_func_start sub_81507E4
sub_81507E4: @ 81507E4
push {lr}
movs r0, 0x3
bl sub_805D154
pop {r0}
bx r0
thumb_func_end sub_81507E4
thumb_func_start sub_81507F0
sub_81507F0: @ 81507F0
push {lr}
movs r0, 0x4
bl sub_805D154
pop {r0}
bx r0
thumb_func_end sub_81507F0
.align 2, 0 @ Don't pad with nop.