mirror of
https://github.com/pret/pokeruby.git
synced 2026-08-08 10:34:12 -05:00
9864 lines
174 KiB
ArmAsm
9864 lines
174 KiB
ArmAsm
.include "constants/gba_constants.inc"
|
|
.include "constants/species_constants.inc"
|
|
.include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start npc_before_player_of_type
|
|
npc_before_player_of_type: @ 810B2D4
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r4, _0810B314 @ =gUnknown_0203923C
|
|
adds r1, r4, 0x2
|
|
adds r0, r4, 0
|
|
bl GetXYCoordsOneStepInFrontOfPlayer
|
|
bl PlayerGetZCoord
|
|
strb r0, [r4, 0x4]
|
|
ldrh r0, [r4]
|
|
ldrh r1, [r4, 0x2]
|
|
ldrb r2, [r4, 0x4]
|
|
bl GetFieldObjectIdByXYZ
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0810B318 @ =gMapObjects
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r2, r1, r2
|
|
ldrb r0, [r2, 0x5]
|
|
cmp r0, r5
|
|
bne _0810B320
|
|
ldr r1, _0810B31C @ =gUnknown_0202E8DE
|
|
ldrb r0, [r2, 0x8]
|
|
strh r0, [r1]
|
|
movs r0, 0x1
|
|
b _0810B322
|
|
.align 2, 0
|
|
_0810B314: .4byte gUnknown_0203923C
|
|
_0810B318: .4byte gMapObjects
|
|
_0810B31C: .4byte gUnknown_0202E8DE
|
|
_0810B320:
|
|
movs r0, 0
|
|
_0810B322:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end npc_before_player_of_type
|
|
|
|
thumb_func_start oei_task_add
|
|
oei_task_add: @ 810B328
|
|
push {lr}
|
|
ldr r0, _0810B344 @ =gUnknown_0203923C
|
|
adds r1, r0, 0x2
|
|
bl GetXYCoordsOneStepInFrontOfPlayer
|
|
ldr r0, _0810B348 @ =task08_080C9820
|
|
movs r1, 0x8
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810B344: .4byte gUnknown_0203923C
|
|
_0810B348: .4byte task08_080C9820
|
|
thumb_func_end oei_task_add
|
|
|
|
thumb_func_start task08_080C9820
|
|
task08_080C9820: @ 810B34C
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r6, r5, 0
|
|
bl ScriptContext2_Enable
|
|
ldr r1, _0810B3A0 @ =gPlayerAvatar
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x6]
|
|
ldrb r1, [r1, 0x5]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0810B3A4 @ =gMapObjects
|
|
adds r4, r0, r1
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0810B382
|
|
adds r0, r4, 0
|
|
bl FieldObjectClearAnimIfSpecialAnimFinished
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0810B3CE
|
|
_0810B382:
|
|
ldr r0, _0810B3A8 @ =gMapHeader
|
|
ldrb r0, [r0, 0x17]
|
|
cmp r0, 0x5
|
|
bne _0810B3B4
|
|
movs r0, 0x3B
|
|
bl FieldEffectStart
|
|
ldr r0, _0810B3AC @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _0810B3B0 @ =sub_810B428
|
|
b _0810B3CC
|
|
.align 2, 0
|
|
_0810B3A0: .4byte gPlayerAvatar
|
|
_0810B3A4: .4byte gMapObjects
|
|
_0810B3A8: .4byte gMapHeader
|
|
_0810B3AC: .4byte gTasks
|
|
_0810B3B0: .4byte sub_810B428
|
|
_0810B3B4:
|
|
bl sub_8059BF4
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl FieldObjectSetSpecialAnim
|
|
ldr r0, _0810B3D4 @ =gTasks
|
|
lsls r1, r6, 2
|
|
adds r1, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _0810B3D8 @ =sub_810B3DC
|
|
_0810B3CC:
|
|
str r0, [r1]
|
|
_0810B3CE:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810B3D4: .4byte gTasks
|
|
_0810B3D8: .4byte sub_810B3DC
|
|
thumb_func_end task08_080C9820
|
|
|
|
thumb_func_start sub_810B3DC
|
|
sub_810B3DC: @ 810B3DC
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _0810B418 @ =gPlayerAvatar
|
|
ldrb r1, [r0, 0x5]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0810B41C @ =gMapObjects
|
|
adds r0, r1
|
|
bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0810B410
|
|
movs r0, 0x3B
|
|
bl FieldEffectStart
|
|
ldr r0, _0810B420 @ =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _0810B424 @ =sub_810B428
|
|
str r0, [r1]
|
|
_0810B410:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810B418: .4byte gPlayerAvatar
|
|
_0810B41C: .4byte gMapObjects
|
|
_0810B420: .4byte gTasks
|
|
_0810B424: .4byte sub_810B428
|
|
thumb_func_end sub_810B3DC
|
|
|
|
thumb_func_start sub_810B428
|
|
sub_810B428: @ 810B428
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r0, 0x6
|
|
bl FieldEffectActiveListContains
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _0810B4AC
|
|
bl player_get_direction_lower_nybble
|
|
ldr r6, _0810B4B4 @ =gUnknown_0202FF84
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [r6, 0x4]
|
|
cmp r0, 0x1
|
|
bne _0810B44E
|
|
str r4, [r6, 0x8]
|
|
_0810B44E:
|
|
ldr r1, [r6, 0x4]
|
|
cmp r1, 0x2
|
|
bne _0810B458
|
|
movs r0, 0x1
|
|
str r0, [r6, 0x8]
|
|
_0810B458:
|
|
cmp r1, 0x3
|
|
bne _0810B460
|
|
movs r0, 0x2
|
|
str r0, [r6, 0x8]
|
|
_0810B460:
|
|
cmp r1, 0x4
|
|
bne _0810B468
|
|
movs r0, 0x3
|
|
str r0, [r6, 0x8]
|
|
_0810B468:
|
|
ldr r5, _0810B4B8 @ =gPlayerAvatar
|
|
ldrb r0, [r5, 0x5]
|
|
lsls r4, r0, 3
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
ldr r0, _0810B4BC @ =gMapObjects
|
|
adds r4, r0
|
|
bl GetPlayerAvatarGraphicsIdByCurrentState
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl sub_805B980
|
|
ldrb r1, [r5, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0810B4C0 @ =gSprites
|
|
adds r0, r1
|
|
ldrb r1, [r6, 0x8]
|
|
bl StartSpriteAnim
|
|
movs r0, 0x6
|
|
bl FieldEffectActiveListRemove
|
|
ldr r1, _0810B4C4 @ =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _0810B4C8 @ =sub_810B4CC
|
|
str r1, [r0]
|
|
_0810B4AC:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810B4B4: .4byte gUnknown_0202FF84
|
|
_0810B4B8: .4byte gPlayerAvatar
|
|
_0810B4BC: .4byte gMapObjects
|
|
_0810B4C0: .4byte gSprites
|
|
_0810B4C4: .4byte gTasks
|
|
_0810B4C8: .4byte sub_810B4CC
|
|
thumb_func_end sub_810B428
|
|
|
|
thumb_func_start sub_810B4CC
|
|
sub_810B4CC: @ 810B4CC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r1, _0810B4FC @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r1, [r0, 0x18]
|
|
lsls r1, 16
|
|
ldrh r0, [r0, 0x1A]
|
|
orrs r1, r0
|
|
bl _call_via_r1
|
|
ldr r1, _0810B500 @ =gPlayerAvatar
|
|
movs r0, 0
|
|
strb r0, [r1, 0x6]
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810B4FC: .4byte gTasks
|
|
_0810B500: .4byte gPlayerAvatar
|
|
thumb_func_end sub_810B4CC
|
|
|
|
thumb_func_start SetUpFieldMove_RockSmash
|
|
SetUpFieldMove_RockSmash: @ 810B504
|
|
push {lr}
|
|
movs r0, 0x56
|
|
bl npc_before_player_of_type
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0810B518
|
|
movs r0, 0
|
|
b _0810B526
|
|
_0810B518:
|
|
ldr r1, _0810B52C @ =gUnknown_0300485C
|
|
ldr r0, _0810B530 @ =sub_808AB90
|
|
str r0, [r1]
|
|
ldr r1, _0810B534 @ =gUnknown_03005CE4
|
|
ldr r0, _0810B538 @ =sub_810B53C
|
|
str r0, [r1]
|
|
movs r0, 0x1
|
|
_0810B526:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810B52C: .4byte gUnknown_0300485C
|
|
_0810B530: .4byte sub_808AB90
|
|
_0810B534: .4byte gUnknown_03005CE4
|
|
_0810B538: .4byte sub_810B53C
|
|
thumb_func_end SetUpFieldMove_RockSmash
|
|
|
|
thumb_func_start sub_810B53C
|
|
sub_810B53C: @ 810B53C
|
|
push {lr}
|
|
ldr r1, _0810B550 @ =gUnknown_0202FF84
|
|
ldr r0, _0810B554 @ =gUnknown_03005CE0
|
|
ldrb r0, [r0]
|
|
str r0, [r1]
|
|
ldr r0, _0810B558 @ =UseRockSmashScript
|
|
bl ScriptContext1_SetupScript
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810B550: .4byte gUnknown_0202FF84
|
|
_0810B554: .4byte gUnknown_03005CE0
|
|
_0810B558: .4byte UseRockSmashScript
|
|
thumb_func_end sub_810B53C
|
|
|
|
thumb_func_start FldEff_RockSmash
|
|
FldEff_RockSmash: @ 810B55C
|
|
push {lr}
|
|
bl oei_task_add
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0810B584 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldr r2, _0810B588 @ =sub_810B58C
|
|
lsrs r0, r2, 16
|
|
strh r0, [r1, 0x18]
|
|
strh r2, [r1, 0x1A]
|
|
movs r0, 0x13
|
|
bl sav12_xor_increment
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810B584: .4byte gTasks
|
|
_0810B588: .4byte sub_810B58C
|
|
thumb_func_end FldEff_RockSmash
|
|
|
|
thumb_func_start sub_810B58C
|
|
sub_810B58C: @ 810B58C
|
|
push {lr}
|
|
movs r0, 0x83
|
|
bl PlaySE
|
|
movs r0, 0x25
|
|
bl FieldEffectActiveListRemove
|
|
bl EnableBothScriptContexts
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_810B58C
|
|
|
|
thumb_func_start SetUpFieldMove_Dig
|
|
SetUpFieldMove_Dig: @ 810B5A4
|
|
push {lr}
|
|
bl sub_80CA1C8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0810B5B6
|
|
movs r0, 0
|
|
b _0810B5C4
|
|
_0810B5B6:
|
|
ldr r1, _0810B5C8 @ =gUnknown_0300485C
|
|
ldr r0, _0810B5CC @ =sub_808AB90
|
|
str r0, [r1]
|
|
ldr r1, _0810B5D0 @ =gUnknown_03005CE4
|
|
ldr r0, _0810B5D4 @ =sub_810B5D8
|
|
str r0, [r1]
|
|
movs r0, 0x1
|
|
_0810B5C4:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810B5C8: .4byte gUnknown_0300485C
|
|
_0810B5CC: .4byte sub_808AB90
|
|
_0810B5D0: .4byte gUnknown_03005CE4
|
|
_0810B5D4: .4byte sub_810B5D8
|
|
thumb_func_end SetUpFieldMove_Dig
|
|
|
|
thumb_func_start sub_810B5D8
|
|
sub_810B5D8: @ 810B5D8
|
|
push {lr}
|
|
bl sub_8053014
|
|
movs r0, 0x26
|
|
bl FieldEffectStart
|
|
ldr r0, _0810B5F0 @ =gUnknown_0202FF84
|
|
ldr r1, _0810B5F4 @ =gUnknown_03005CE0
|
|
ldrb r1, [r1]
|
|
str r1, [r0]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810B5F0: .4byte gUnknown_0202FF84
|
|
_0810B5F4: .4byte gUnknown_03005CE0
|
|
thumb_func_end sub_810B5D8
|
|
|
|
thumb_func_start FldEff_UseDig
|
|
FldEff_UseDig: @ 810B5F8
|
|
push {lr}
|
|
bl oei_task_add
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0810B62C @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldr r2, _0810B630 @ =sub_810B634
|
|
lsrs r0, r2, 16
|
|
strh r0, [r1, 0x18]
|
|
strh r2, [r1, 0x1A]
|
|
bl sub_81473B8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0810B624
|
|
movs r0, 0x1
|
|
bl SetPlayerAvatarTransitionFlags
|
|
_0810B624:
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810B62C: .4byte gTasks
|
|
_0810B630: .4byte sub_810B634
|
|
thumb_func_end FldEff_UseDig
|
|
|
|
thumb_func_start sub_810B634
|
|
sub_810B634: @ 810B634
|
|
push {r4,lr}
|
|
movs r0, 0x26
|
|
bl FieldEffectActiveListRemove
|
|
bl sub_81473B8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
beq _0810B64E
|
|
bl sub_8147408
|
|
b _0810B666
|
|
_0810B64E:
|
|
ldr r0, _0810B66C @ =task08_080A1C44
|
|
movs r1, 0x8
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0810B670 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
strh r4, [r1, 0x8]
|
|
_0810B666:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810B66C: .4byte task08_080A1C44
|
|
_0810B670: .4byte gTasks
|
|
thumb_func_end sub_810B634
|
|
|
|
thumb_func_start sub_810B674
|
|
sub_810B674: @ 810B674
|
|
push {lr}
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl RunTasks
|
|
bl UpdatePaletteFade
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_810B674
|
|
|
|
thumb_func_start sub_810B68C
|
|
sub_810B68C: @ 810B68C
|
|
push {lr}
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl TransferPlttBuffer
|
|
ldr r1, _0810B6B0 @ =gBG2TilemapBuffer
|
|
ldr r2, _0810B6B4 @ =0x06007800
|
|
ldr r0, _0810B6B8 @ =0x040000d4
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
ldr r1, _0810B6BC @ =0x80000400
|
|
str r1, [r0, 0x8]
|
|
ldr r0, [r0, 0x8]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810B6B0: .4byte gBG2TilemapBuffer
|
|
_0810B6B4: .4byte 0x06007800
|
|
_0810B6B8: .4byte 0x040000d4
|
|
_0810B6BC: .4byte 0x80000400
|
|
thumb_func_end sub_810B68C
|
|
|
|
thumb_func_start sub_810B6C0
|
|
sub_810B6C0: @ 810B6C0
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r0, _0810B6DC @ =gMain
|
|
ldr r1, _0810B6E0 @ =0x0000043c
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x12
|
|
bls _0810B6D2
|
|
b _0810B960
|
|
_0810B6D2:
|
|
lsls r0, 2
|
|
ldr r1, _0810B6E4 @ =_0810B6E8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0810B6DC: .4byte gMain
|
|
_0810B6E0: .4byte 0x0000043c
|
|
_0810B6E4: .4byte _0810B6E8
|
|
.align 2, 0
|
|
_0810B6E8:
|
|
.4byte _0810B734
|
|
.4byte _0810B764
|
|
.4byte _0810B76A
|
|
.4byte _0810B78C
|
|
.4byte _0810B792
|
|
.4byte _0810B7B4
|
|
.4byte _0810B7C0
|
|
.4byte _0810B7DC
|
|
.4byte _0810B7E8
|
|
.4byte _0810B804
|
|
.4byte _0810B810
|
|
.4byte _0810B830
|
|
.4byte _0810B84C
|
|
.4byte _0810B86A
|
|
.4byte _0810B894
|
|
.4byte _0810B89E
|
|
.4byte _0810B8C4
|
|
.4byte _0810B914
|
|
.4byte _0810B934
|
|
_0810B734:
|
|
bl sub_80F9438
|
|
bl sub_80F9368
|
|
ldr r1, _0810B754 @ =REG_BG2CNT
|
|
ldr r2, _0810B758 @ =0x00000f0a
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
adds r1, 0x44
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r1, _0810B75C @ =gMain
|
|
ldr r0, _0810B760 @ =0x0000043c
|
|
adds r1, r0
|
|
b _0810B922
|
|
.align 2, 0
|
|
_0810B754: .4byte REG_BG2CNT
|
|
_0810B758: .4byte 0x00000f0a
|
|
_0810B75C: .4byte gMain
|
|
_0810B760: .4byte 0x0000043c
|
|
_0810B764:
|
|
bl remove_some_task
|
|
b _0810B91C
|
|
_0810B76A:
|
|
bl ResetPaletteFade
|
|
ldr r2, _0810B780 @ =gPaletteFade
|
|
ldrb r0, [r2, 0x8]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x8]
|
|
ldr r1, _0810B784 @ =gMain
|
|
ldr r0, _0810B788 @ =0x0000043c
|
|
adds r1, r0
|
|
b _0810B922
|
|
.align 2, 0
|
|
_0810B780: .4byte gPaletteFade
|
|
_0810B784: .4byte gMain
|
|
_0810B788: .4byte 0x0000043c
|
|
_0810B78C:
|
|
bl ResetSpriteData
|
|
b _0810B91C
|
|
_0810B792:
|
|
ldr r0, _0810B7A8 @ =gUnknown_02039244
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _0810B79E
|
|
bl ResetTasks
|
|
_0810B79E:
|
|
ldr r1, _0810B7AC @ =gMain
|
|
ldr r0, _0810B7B0 @ =0x0000043c
|
|
adds r1, r0
|
|
b _0810B922
|
|
.align 2, 0
|
|
_0810B7A8: .4byte gUnknown_02039244
|
|
_0810B7AC: .4byte gMain
|
|
_0810B7B0: .4byte 0x0000043c
|
|
_0810B7B4:
|
|
ldr r0, _0810B7BC @ =gWindowConfig_81E6E34
|
|
bl SetUpWindowConfig
|
|
b _0810B91C
|
|
.align 2, 0
|
|
_0810B7BC: .4byte gWindowConfig_81E6E34
|
|
_0810B7C0:
|
|
ldr r0, _0810B7D0 @ =gWindowConfig_81E6E50
|
|
bl SetUpWindowConfig
|
|
ldr r1, _0810B7D4 @ =gMain
|
|
ldr r0, _0810B7D8 @ =0x0000043c
|
|
adds r1, r0
|
|
b _0810B922
|
|
.align 2, 0
|
|
_0810B7D0: .4byte gWindowConfig_81E6E50
|
|
_0810B7D4: .4byte gMain
|
|
_0810B7D8: .4byte 0x0000043c
|
|
_0810B7DC:
|
|
ldr r0, _0810B7E4 @ =gWindowConfig_81E6E34
|
|
bl MultistepInitMenuWindowBegin
|
|
b _0810B91C
|
|
.align 2, 0
|
|
_0810B7E4: .4byte gWindowConfig_81E6E34
|
|
_0810B7E8:
|
|
bl MultistepInitMenuWindowContinue
|
|
cmp r0, 0
|
|
bne _0810B7F2
|
|
b _0810B960
|
|
_0810B7F2:
|
|
ldr r1, _0810B7FC @ =gMain
|
|
ldr r0, _0810B800 @ =0x0000043c
|
|
adds r1, r0
|
|
b _0810B922
|
|
.align 2, 0
|
|
_0810B7FC: .4byte gMain
|
|
_0810B800: .4byte 0x0000043c
|
|
_0810B804:
|
|
ldr r0, _0810B80C @ =gWindowConfig_81E6E50
|
|
bl MultistepInitMenuWindowBegin
|
|
b _0810B91C
|
|
.align 2, 0
|
|
_0810B80C: .4byte gWindowConfig_81E6E50
|
|
_0810B810:
|
|
bl MultistepInitMenuWindowContinue
|
|
cmp r0, 0
|
|
bne _0810B81A
|
|
b _0810B960
|
|
_0810B81A:
|
|
ldr r0, _0810B828 @ =0x02000000
|
|
ldr r1, _0810B82C @ =0x0001ffff
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
b _0810B91C
|
|
.align 2, 0
|
|
_0810B828: .4byte 0x02000000
|
|
_0810B82C: .4byte 0x0001ffff
|
|
_0810B830:
|
|
bl sub_810B998
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0810B83C
|
|
b _0810B960
|
|
_0810B83C:
|
|
ldr r1, _0810B844 @ =gMain
|
|
ldr r0, _0810B848 @ =0x0000043c
|
|
adds r1, r0
|
|
b _0810B922
|
|
.align 2, 0
|
|
_0810B844: .4byte gMain
|
|
_0810B848: .4byte 0x0000043c
|
|
_0810B84C:
|
|
bl sub_80F944C
|
|
bl LoadScrollIndicatorPalette
|
|
movs r0, 0
|
|
movs r1, 0xB0
|
|
movs r2, 0x8
|
|
bl CreateVerticalScrollIndicators
|
|
movs r0, 0x1
|
|
movs r1, 0xB0
|
|
movs r2, 0x98
|
|
bl CreateVerticalScrollIndicators
|
|
b _0810B91C
|
|
_0810B86A:
|
|
movs r0, 0x38
|
|
movs r1, 0x40
|
|
movs r2, 0
|
|
bl sub_810BA50
|
|
ldr r1, _0810B884 @ =0x02000000
|
|
ldr r2, _0810B888 @ =0x0001fffe
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
ldr r1, _0810B88C @ =gMain
|
|
ldr r0, _0810B890 @ =0x0000043c
|
|
adds r1, r0
|
|
b _0810B922
|
|
.align 2, 0
|
|
_0810B884: .4byte 0x02000000
|
|
_0810B888: .4byte 0x0001fffe
|
|
_0810B88C: .4byte gMain
|
|
_0810B890: .4byte 0x0000043c
|
|
_0810B894:
|
|
bl sub_810BC98
|
|
bl sub_810BD08
|
|
b _0810B91C
|
|
_0810B89E:
|
|
bl sub_810BB0C
|
|
bl sub_810BB30
|
|
ldr r0, _0810B8B8 @ =gUnknown_02039248
|
|
ldrb r0, [r0, 0x1]
|
|
bl sub_810BC84
|
|
ldr r1, _0810B8BC @ =gMain
|
|
ldr r0, _0810B8C0 @ =0x0000043c
|
|
adds r1, r0
|
|
b _0810B922
|
|
.align 2, 0
|
|
_0810B8B8: .4byte gUnknown_02039248
|
|
_0810B8BC: .4byte gMain
|
|
_0810B8C0: .4byte 0x0000043c
|
|
_0810B8C4:
|
|
ldr r3, _0810B8FC @ =0x04000208
|
|
ldrh r2, [r3]
|
|
movs r0, 0
|
|
strh r0, [r3]
|
|
ldr r4, _0810B900 @ =0x04000200
|
|
ldrh r0, [r4]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strh r0, [r4]
|
|
strh r2, [r3]
|
|
ldr r2, _0810B904 @ =REG_DISPSTAT
|
|
ldrh r0, [r2]
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
ldr r0, _0810B908 @ =sub_810B68C
|
|
bl SetVBlankCallback
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
movs r2, 0xBA
|
|
lsls r2, 5
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r1, _0810B90C @ =gMain
|
|
ldr r0, _0810B910 @ =0x0000043c
|
|
adds r1, r0
|
|
b _0810B922
|
|
.align 2, 0
|
|
_0810B8FC: .4byte 0x04000208
|
|
_0810B900: .4byte 0x04000200
|
|
_0810B904: .4byte REG_DISPSTAT
|
|
_0810B908: .4byte sub_810B68C
|
|
_0810B90C: .4byte gMain
|
|
_0810B910: .4byte 0x0000043c
|
|
_0810B914:
|
|
bl sub_8055870
|
|
cmp r0, 0x1
|
|
beq _0810B960
|
|
_0810B91C:
|
|
ldr r1, _0810B92C @ =gMain
|
|
ldr r2, _0810B930 @ =0x0000043c
|
|
adds r1, r2
|
|
_0810B922:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0810B960
|
|
.align 2, 0
|
|
_0810B92C: .4byte gMain
|
|
_0810B930: .4byte 0x0000043c
|
|
_0810B934:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
ldr r2, _0810B958 @ =gPaletteFade
|
|
ldrb r1, [r2, 0x8]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2, 0x8]
|
|
ldr r0, _0810B95C @ =sub_810B674
|
|
bl SetMainCallback2
|
|
movs r0, 0x1
|
|
b _0810B962
|
|
.align 2, 0
|
|
_0810B958: .4byte gPaletteFade
|
|
_0810B95C: .4byte sub_810B674
|
|
_0810B960:
|
|
movs r0, 0
|
|
_0810B962:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810B6C0
|
|
|
|
thumb_func_start sub_810B96C
|
|
sub_810B96C: @ 810B96C
|
|
push {lr}
|
|
_0810B96E:
|
|
bl sub_810B6C0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0810B988
|
|
ldr r0, _0810B984 @ =sub_810BF7C
|
|
movs r1, 0
|
|
bl CreateTask
|
|
b _0810B994
|
|
.align 2, 0
|
|
_0810B984: .4byte sub_810BF7C
|
|
_0810B988:
|
|
bl sub_80F9344
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0810B96E
|
|
_0810B994:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_810B96C
|
|
|
|
thumb_func_start sub_810B998
|
|
sub_810B998: @ 810B998
|
|
push {lr}
|
|
ldr r0, _0810B9B0 @ =0x02000000
|
|
ldr r1, _0810B9B4 @ =0x0001ffff
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
bhi _0810BA48
|
|
lsls r0, 2
|
|
ldr r1, _0810B9B8 @ =_0810B9BC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0810B9B0: .4byte 0x02000000
|
|
_0810B9B4: .4byte 0x0001ffff
|
|
_0810B9B8: .4byte _0810B9BC
|
|
.align 2, 0
|
|
_0810B9BC:
|
|
.4byte _0810B9D0
|
|
.4byte _0810B9E4
|
|
.4byte _0810B9F8
|
|
.4byte _0810BA08
|
|
.4byte _0810BA28
|
|
_0810B9D0:
|
|
ldr r0, _0810B9DC @ =gMenuPokeblock_Gfx
|
|
ldr r1, _0810B9E0 @ =0x06008000
|
|
bl LZDecompressVram
|
|
b _0810BA0E
|
|
.align 2, 0
|
|
_0810B9DC: .4byte gMenuPokeblock_Gfx
|
|
_0810B9E0: .4byte 0x06008000
|
|
_0810B9E4:
|
|
ldr r0, _0810B9F0 @ =gMenuPokeblock_Tilemap
|
|
ldr r1, _0810B9F4 @ =gBG2TilemapBuffer
|
|
bl sub_800D238
|
|
b _0810BA0E
|
|
.align 2, 0
|
|
_0810B9F0: .4byte gMenuPokeblock_Tilemap
|
|
_0810B9F4: .4byte gBG2TilemapBuffer
|
|
_0810B9F8:
|
|
ldr r0, _0810BA04 @ =gMenuPokeblock_Pal
|
|
movs r1, 0
|
|
movs r2, 0xC0
|
|
bl LoadCompressedPalette
|
|
b _0810BA0E
|
|
.align 2, 0
|
|
_0810BA04: .4byte gMenuPokeblock_Pal
|
|
_0810BA08:
|
|
ldr r0, _0810BA1C @ =gUnknown_083F7F74
|
|
bl LoadCompressedObjectPic
|
|
_0810BA0E:
|
|
ldr r1, _0810BA20 @ =0x02000000
|
|
ldr r0, _0810BA24 @ =0x0001ffff
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0810BA48
|
|
.align 2, 0
|
|
_0810BA1C: .4byte gUnknown_083F7F74
|
|
_0810BA20: .4byte 0x02000000
|
|
_0810BA24: .4byte 0x0001ffff
|
|
_0810BA28:
|
|
ldr r0, _0810BA3C @ =gUnknown_083F7F7C
|
|
bl LoadCompressedObjectPalette
|
|
ldr r0, _0810BA40 @ =0x02000000
|
|
ldr r1, _0810BA44 @ =0x0001ffff
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
movs r0, 0x1
|
|
b _0810BA4A
|
|
.align 2, 0
|
|
_0810BA3C: .4byte gUnknown_083F7F7C
|
|
_0810BA40: .4byte 0x02000000
|
|
_0810BA44: .4byte 0x0001ffff
|
|
_0810BA48:
|
|
movs r0, 0
|
|
_0810BA4A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810B998
|
|
|
|
thumb_func_start sub_810BA50
|
|
sub_810BA50: @ 810BA50
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r3, r2, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldr r0, _0810BA78 @ =gSpriteTemplate_83F7F84
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
lsls r5, 16
|
|
asrs r5, 16
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810BA78: .4byte gSpriteTemplate_83F7F84
|
|
thumb_func_end sub_810BA50
|
|
|
|
thumb_func_start sub_810BA7C
|
|
sub_810BA7C: @ 810BA7C
|
|
push {lr}
|
|
ldr r1, _0810BA98 @ =gUnknown_02039244
|
|
strb r0, [r1]
|
|
ldrb r2, [r1]
|
|
cmp r2, 0x2
|
|
beq _0810BAA8
|
|
cmp r2, 0x3
|
|
beq _0810BAC0
|
|
ldr r1, _0810BA9C @ =gUnknown_03000758
|
|
ldr r0, _0810BAA0 @ =gUnknown_083F7F1C
|
|
str r0, [r1]
|
|
ldr r1, _0810BAA4 @ =gUnknown_0203924C
|
|
movs r0, 0x3
|
|
b _0810BACA
|
|
.align 2, 0
|
|
_0810BA98: .4byte gUnknown_02039244
|
|
_0810BA9C: .4byte gUnknown_03000758
|
|
_0810BAA0: .4byte gUnknown_083F7F1C
|
|
_0810BAA4: .4byte gUnknown_0203924C
|
|
_0810BAA8:
|
|
ldr r0, _0810BAB4 @ =gUnknown_03000758
|
|
ldr r1, _0810BAB8 @ =gUnknown_083F7F1F
|
|
str r1, [r0]
|
|
ldr r0, _0810BABC @ =gUnknown_0203924C
|
|
strb r2, [r0]
|
|
b _0810BACC
|
|
.align 2, 0
|
|
_0810BAB4: .4byte gUnknown_03000758
|
|
_0810BAB8: .4byte gUnknown_083F7F1F
|
|
_0810BABC: .4byte gUnknown_0203924C
|
|
_0810BAC0:
|
|
ldr r1, _0810BAD0 @ =gUnknown_03000758
|
|
ldr r0, _0810BAD4 @ =gUnknown_083F7F21
|
|
str r0, [r1]
|
|
ldr r1, _0810BAD8 @ =gUnknown_0203924C
|
|
movs r0, 0x2
|
|
_0810BACA:
|
|
strb r0, [r1]
|
|
_0810BACC:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810BAD0: .4byte gUnknown_03000758
|
|
_0810BAD4: .4byte gUnknown_083F7F21
|
|
_0810BAD8: .4byte gUnknown_0203924C
|
|
thumb_func_end sub_810BA7C
|
|
|
|
thumb_func_start sub_810BADC
|
|
sub_810BADC: @ 810BADC
|
|
push {lr}
|
|
movs r0, 0x2
|
|
bl sub_810BA7C
|
|
ldr r0, _0810BAF0 @ =sub_810B96C
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810BAF0: .4byte sub_810B96C
|
|
thumb_func_end sub_810BADC
|
|
|
|
thumb_func_start sub_810BAF4
|
|
sub_810BAF4: @ 810BAF4
|
|
push {lr}
|
|
movs r0, 0x3
|
|
bl sub_810BA7C
|
|
ldr r0, _0810BB08 @ =sub_810B96C
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810BB08: .4byte sub_810B96C
|
|
thumb_func_end sub_810BAF4
|
|
|
|
thumb_func_start sub_810BB0C
|
|
sub_810BB0C: @ 810BB0C
|
|
push {lr}
|
|
ldr r0, _0810BB28 @ =gWindowConfig_81E6E34
|
|
bl BasicInitMenuWindow
|
|
ldr r0, _0810BB2C @ =0x00000111
|
|
bl ItemId_GetItem
|
|
movs r1, 0x2
|
|
movs r2, 0x1
|
|
movs r3, 0x48
|
|
bl sub_8072BD8
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810BB28: .4byte gWindowConfig_81E6E34
|
|
_0810BB2C: .4byte 0x00000111
|
|
thumb_func_end sub_810BB0C
|
|
|
|
thumb_func_start sub_810BB30
|
|
sub_810BB30: @ 810BB30
|
|
push {lr}
|
|
ldr r0, _0810BB70 @ =gWindowConfig_81E6E34
|
|
bl BasicInitMenuWindow
|
|
ldr r0, _0810BB74 @ =gContestStatsText_Spicy
|
|
movs r1, 0x2
|
|
movs r2, 0xD
|
|
bl MenuPrint
|
|
ldr r0, _0810BB78 @ =gContestStatsText_Dry
|
|
movs r1, 0x2
|
|
movs r2, 0xF
|
|
bl MenuPrint
|
|
ldr r0, _0810BB7C @ =gContestStatsText_Sweet
|
|
movs r1, 0x2
|
|
movs r2, 0x11
|
|
bl MenuPrint
|
|
ldr r0, _0810BB80 @ =gContestStatsText_Bitter
|
|
movs r1, 0x8
|
|
movs r2, 0xD
|
|
bl MenuPrint
|
|
ldr r0, _0810BB84 @ =gContestStatsText_Sour
|
|
movs r1, 0x8
|
|
movs r2, 0xF
|
|
bl MenuPrint
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810BB70: .4byte gWindowConfig_81E6E34
|
|
_0810BB74: .4byte gContestStatsText_Spicy
|
|
_0810BB78: .4byte gContestStatsText_Dry
|
|
_0810BB7C: .4byte gContestStatsText_Sweet
|
|
_0810BB80: .4byte gContestStatsText_Bitter
|
|
_0810BB84: .4byte gContestStatsText_Sour
|
|
thumb_func_end sub_810BB30
|
|
|
|
thumb_func_start sub_810BB88
|
|
sub_810BB88: @ 810BB88
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r0, _0810BBF4 @ =gWindowConfig_81E6E34
|
|
bl BasicInitMenuWindow
|
|
mov r6, r8
|
|
adds r0, r6, 0
|
|
adds r0, 0x8
|
|
cmp r6, r0
|
|
bgt _0810BC6C
|
|
ldr r0, _0810BBF8 @ =gStringVar1
|
|
mov r9, r0
|
|
ldr r1, _0810BBFC @ =gSaveBlock1
|
|
mov r10, r1
|
|
_0810BBB0:
|
|
mov r1, r8
|
|
subs r0, r6, r1
|
|
lsls r0, 25
|
|
lsrs r7, r0, 24
|
|
ldr r0, _0810BC00 @ =gUnknown_02039248
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r6, r0
|
|
bne _0810BC08
|
|
mov r0, r9
|
|
ldr r1, _0810BC04 @ =gContestStatsText_StowCase
|
|
movs r2, 0x78
|
|
movs r3, 0
|
|
bl sub_8072C74
|
|
movs r2, 0x1
|
|
orrs r2, r7
|
|
mov r0, r9
|
|
movs r1, 0xF
|
|
bl MenuPrint
|
|
mov r0, r8
|
|
adds r0, 0x8
|
|
cmp r6, r0
|
|
beq _0810BC6C
|
|
adds r1, r7, 0x3
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r0, 0xF
|
|
movs r2, 0x1D
|
|
movs r3, 0x12
|
|
bl MenuZeroFillWindowRect
|
|
b _0810BC6C
|
|
.align 2, 0
|
|
_0810BBF4: .4byte gWindowConfig_81E6E34
|
|
_0810BBF8: .4byte gStringVar1
|
|
_0810BBFC: .4byte gSaveBlock1
|
|
_0810BC00: .4byte gUnknown_02039248
|
|
_0810BC04: .4byte gContestStatsText_StowCase
|
|
_0810BC08:
|
|
lsls r5, r6, 3
|
|
mov r1, r10
|
|
adds r0, r5, r1
|
|
movs r1, 0xFF
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
ldr r1, _0810BC7C @ =gUnknown_083F7EB8
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
mov r0, r9
|
|
movs r2, 0x5E
|
|
movs r3, 0
|
|
bl sub_8072C74
|
|
adds r4, r0, 0
|
|
movs r0, 0xFC
|
|
strb r0, [r4]
|
|
movs r0, 0x14
|
|
strb r0, [r4, 0x1]
|
|
movs r0, 0x6
|
|
strb r0, [r4, 0x2]
|
|
adds r4, 0x3
|
|
ldr r0, _0810BC80 @ =gSaveBlock1 + 0x7F8
|
|
adds r5, r0
|
|
adds r0, r5, 0
|
|
bl sub_810C9B0
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x3
|
|
bl ConvertIntToDecimalStringN
|
|
movs r2, 0x1
|
|
orrs r2, r7
|
|
mov r0, r9
|
|
movs r1, 0xF
|
|
bl MenuPrint
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
mov r0, r8
|
|
adds r0, 0x8
|
|
cmp r6, r0
|
|
ble _0810BBB0
|
|
_0810BC6C:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810BC7C: .4byte gUnknown_083F7EB8
|
|
_0810BC80: .4byte gSaveBlock1 + 0x7F8
|
|
thumb_func_end sub_810BB88
|
|
|
|
thumb_func_start sub_810BC84
|
|
sub_810BC84: @ 810BC84
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_810BB88
|
|
movs r0, 0
|
|
bl sub_810BDAC
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_810BC84
|
|
|
|
thumb_func_start sub_810BC98
|
|
sub_810BC98: @ 810BC98
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
movs r2, 0
|
|
ldr r0, _0810BD00 @ =gSaveBlock1
|
|
mov r9, r0
|
|
_0810BCA6:
|
|
adds r1, r2, 0x1
|
|
lsls r0, r1, 16
|
|
lsrs r5, r0, 16
|
|
mov r8, r1
|
|
cmp r5, 0x27
|
|
bhi _0810BCE8
|
|
lsls r1, r2, 3
|
|
mov r2, r9
|
|
adds r0, r1, r2
|
|
movs r2, 0xFF
|
|
lsls r2, 3
|
|
adds r7, r0, r2
|
|
ldr r0, _0810BD04 @ =gSaveBlock1 + 0x7F8
|
|
mov r12, r0
|
|
adds r6, r1, r0
|
|
_0810BCC4:
|
|
ldrb r0, [r7]
|
|
cmp r0, 0
|
|
bne _0810BCDE
|
|
ldr r3, [r6]
|
|
ldr r4, [r6, 0x4]
|
|
lsls r2, r5, 3
|
|
add r2, r12
|
|
ldr r0, [r2]
|
|
ldr r1, [r2, 0x4]
|
|
str r0, [r6]
|
|
str r1, [r6, 0x4]
|
|
str r3, [r2]
|
|
str r4, [r2, 0x4]
|
|
_0810BCDE:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, 0x27
|
|
bls _0810BCC4
|
|
_0810BCE8:
|
|
mov r1, r8
|
|
lsls r0, r1, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0x26
|
|
bls _0810BCA6
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810BD00: .4byte gSaveBlock1
|
|
_0810BD04: .4byte gSaveBlock1 + 0x7F8
|
|
thumb_func_end sub_810BC98
|
|
|
|
thumb_func_start sub_810BD08
|
|
sub_810BD08: @ 810BD08
|
|
push {r4,r5,lr}
|
|
ldr r1, _0810BD5C @ =gUnknown_02039248
|
|
movs r0, 0
|
|
strb r0, [r1, 0x2]
|
|
movs r2, 0
|
|
ldr r5, _0810BD60 @ =gSaveBlock1
|
|
movs r4, 0xFF
|
|
lsls r4, 3
|
|
adds r3, r1, 0
|
|
_0810BD1A:
|
|
lsls r0, r2, 3
|
|
adds r0, r5
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0810BD2C
|
|
ldrb r0, [r3, 0x2]
|
|
adds r0, 0x1
|
|
strb r0, [r3, 0x2]
|
|
_0810BD2C:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x27
|
|
bls _0810BD1A
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0x7
|
|
bls _0810BD3E
|
|
movs r0, 0x8
|
|
_0810BD3E:
|
|
strb r0, [r1, 0x3]
|
|
ldrb r2, [r1, 0x1]
|
|
adds r0, r2, 0
|
|
adds r0, 0x8
|
|
ldrb r3, [r1, 0x2]
|
|
cmp r0, r3
|
|
ble _0810BD54
|
|
cmp r2, 0
|
|
beq _0810BD54
|
|
subs r0, r2, 0x1
|
|
strb r0, [r1, 0x1]
|
|
_0810BD54:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810BD5C: .4byte gUnknown_02039248
|
|
_0810BD60: .4byte gSaveBlock1
|
|
thumb_func_end sub_810BD08
|
|
|
|
thumb_func_start sub_810BD64
|
|
sub_810BD64: @ 810BD64
|
|
push {r4,r5,lr}
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
movs r2, 0
|
|
ldr r5, _0810BDA4 @ =gUnknown_02039248
|
|
ldr r4, _0810BDA8 @ =gBG2TilemapBuffer
|
|
_0810BD70:
|
|
ldrb r0, [r5]
|
|
lsls r0, 1
|
|
adds r0, 0x1
|
|
lsls r0, 5
|
|
adds r1, r2, 0
|
|
adds r1, 0xF
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
adds r0, r4
|
|
strh r3, [r0]
|
|
ldrb r0, [r5]
|
|
lsls r0, 6
|
|
adds r0, 0x40
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
adds r0, r4
|
|
strh r3, [r0]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0xD
|
|
bls _0810BD70
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810BDA4: .4byte gUnknown_02039248
|
|
_0810BDA8: .4byte gBG2TilemapBuffer
|
|
thumb_func_end sub_810BD64
|
|
|
|
thumb_func_start sub_810BDAC
|
|
sub_810BDAC: @ 810BDAC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0810BDCC
|
|
ldr r0, _0810BDC4 @ =0x00001005
|
|
ldr r1, _0810BDC8 @ =0x00001014
|
|
bl sub_810BD64
|
|
b _0810BDD4
|
|
.align 2, 0
|
|
_0810BDC4: .4byte 0x00001005
|
|
_0810BDC8: .4byte 0x00001014
|
|
_0810BDCC:
|
|
ldr r0, _0810BDE8 @ =0x00002005
|
|
ldr r1, _0810BDEC @ =0x00002014
|
|
bl sub_810BD64
|
|
_0810BDD4:
|
|
ldr r0, _0810BDF0 @ =gUnknown_02039248
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
beq _0810BDF4
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_80F979C
|
|
b _0810BDFC
|
|
.align 2, 0
|
|
_0810BDE8: .4byte 0x00002005
|
|
_0810BDEC: .4byte 0x00002014
|
|
_0810BDF0: .4byte gUnknown_02039248
|
|
_0810BDF4:
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl sub_80F979C
|
|
_0810BDFC:
|
|
ldr r2, _0810BE1C @ =gUnknown_02039248
|
|
ldrb r0, [r2, 0x2]
|
|
ldrb r1, [r2, 0x3]
|
|
cmp r0, r1
|
|
bls _0810BE20
|
|
ldrb r0, [r2, 0x1]
|
|
ldrb r1, [r2, 0x3]
|
|
adds r0, r1
|
|
ldrb r2, [r2, 0x2]
|
|
cmp r0, r2
|
|
beq _0810BE20
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl sub_80F979C
|
|
b _0810BE28
|
|
.align 2, 0
|
|
_0810BE1C: .4byte gUnknown_02039248
|
|
_0810BE20:
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
bl sub_80F979C
|
|
_0810BE28:
|
|
movs r6, 0
|
|
ldr r7, _0810BE94 @ =gBG2TilemapBuffer
|
|
movs r0, 0xF
|
|
mov r8, r0
|
|
_0810BE30:
|
|
adds r0, r6, 0
|
|
movs r1, 0x3
|
|
bl __umodsi3
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 18
|
|
ldr r1, _0810BE98 @ =0x000001a1
|
|
adds r4, r1
|
|
adds r0, r6, 0
|
|
movs r1, 0x3
|
|
bl __udivsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 1
|
|
adds r5, r4, r1
|
|
ldr r1, _0810BE9C @ =gUnknown_02039248
|
|
ldrb r2, [r1]
|
|
ldrb r0, [r1, 0x1]
|
|
adds r0, r2, r0
|
|
ldrb r1, [r1, 0x2]
|
|
cmp r0, r1
|
|
beq _0810BEB8
|
|
lsls r0, 3
|
|
ldr r1, _0810BEA0 @ =gSaveBlock1 + 0x7F8
|
|
adds r0, r1
|
|
adds r4, r6, 0x1
|
|
lsls r1, r4, 24
|
|
lsrs r1, 24
|
|
bl sub_810CA9C
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _0810BEA4
|
|
lsls r1, r5, 1
|
|
adds r1, r7
|
|
lsls r2, r6, 12
|
|
adds r0, r2, 0
|
|
adds r0, 0x17
|
|
strh r0, [r1]
|
|
adds r0, r5, 0
|
|
adds r0, 0x20
|
|
lsls r0, 1
|
|
adds r0, r7
|
|
adds r2, 0x18
|
|
strh r2, [r0]
|
|
b _0810BECC
|
|
.align 2, 0
|
|
_0810BE94: .4byte gBG2TilemapBuffer
|
|
_0810BE98: .4byte 0x000001a1
|
|
_0810BE9C: .4byte gUnknown_02039248
|
|
_0810BEA0: .4byte gSaveBlock1 + 0x7F8
|
|
_0810BEA4:
|
|
lsls r0, r5, 1
|
|
adds r0, r7
|
|
mov r1, r8
|
|
strh r1, [r0]
|
|
adds r0, r5, 0
|
|
adds r0, 0x20
|
|
lsls r0, 1
|
|
adds r0, r7
|
|
strh r1, [r0]
|
|
b _0810BECC
|
|
_0810BEB8:
|
|
lsls r0, r5, 1
|
|
adds r0, r7
|
|
mov r1, r8
|
|
strh r1, [r0]
|
|
adds r0, r5, 0
|
|
adds r0, 0x20
|
|
lsls r0, 1
|
|
adds r0, r7
|
|
strh r1, [r0]
|
|
adds r4, r6, 0x1
|
|
_0810BECC:
|
|
lsls r0, r4, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x4
|
|
bls _0810BE30
|
|
ldr r0, _0810BF10 @ =gWindowConfig_81E6E34
|
|
bl BasicInitMenuWindow
|
|
ldr r0, _0810BF14 @ =gUnknown_02039248
|
|
ldrb r2, [r0]
|
|
ldrb r1, [r0, 0x1]
|
|
adds r2, r1
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r2, r0
|
|
beq _0810BF20
|
|
ldr r4, _0810BF18 @ =gStringVar1
|
|
lsls r0, r2, 3
|
|
ldr r1, _0810BF1C @ =gSaveBlock1 + 0x7F8
|
|
adds r0, r1
|
|
bl sub_810C9E8
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
movs r2, 0x10
|
|
movs r3, 0x1
|
|
bl sub_8072C14
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
movs r2, 0x11
|
|
bl MenuPrint
|
|
b _0810BF2C
|
|
.align 2, 0
|
|
_0810BF10: .4byte gWindowConfig_81E6E34
|
|
_0810BF14: .4byte gUnknown_02039248
|
|
_0810BF18: .4byte gStringVar1
|
|
_0810BF1C: .4byte gSaveBlock1 + 0x7F8
|
|
_0810BF20:
|
|
movs r0, 0xB
|
|
movs r1, 0x11
|
|
movs r2, 0xC
|
|
movs r3, 0x12
|
|
bl MenuZeroFillWindowRect
|
|
_0810BF2C:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_810BDAC
|
|
|
|
thumb_func_start sub_810BF38
|
|
sub_810BF38: @ 810BF38
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r2, _0810BF6C @ =gSprites
|
|
ldr r0, _0810BF70 @ =0x02000000
|
|
ldr r1, _0810BF74 @ =0x0001fffe
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, _0810BF78 @ =sub_810C8D4
|
|
str r1, [r0]
|
|
adds r0, r4, 0
|
|
bl sub_810BDAC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810BF6C: .4byte gSprites
|
|
_0810BF70: .4byte 0x02000000
|
|
_0810BF74: .4byte 0x0001fffe
|
|
_0810BF78: .4byte sub_810C8D4
|
|
thumb_func_end sub_810BF38
|
|
|
|
thumb_func_start sub_810BF7C
|
|
sub_810BF7C: @ 810BF7C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r4, r5, 0
|
|
ldr r0, _0810BFB8 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r3, 0x80
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0810BF94
|
|
b _0810C0B8
|
|
_0810BF94:
|
|
ldr r2, _0810BFBC @ =gMain
|
|
ldrh r1, [r2, 0x30]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0810BFCE
|
|
ldr r4, _0810BFC0 @ =gUnknown_02039248
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0810BFC4
|
|
movs r0, 0x5
|
|
movs r1, 0x14
|
|
bl sub_810BD64
|
|
ldrb r0, [r4]
|
|
subs r0, 0x1
|
|
strb r0, [r4]
|
|
b _0810C00A
|
|
.align 2, 0
|
|
_0810BFB8: .4byte gPaletteFade
|
|
_0810BFBC: .4byte gMain
|
|
_0810BFC0: .4byte gUnknown_02039248
|
|
_0810BFC4:
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0
|
|
beq _0810C0B8
|
|
subs r0, 0x1
|
|
b _0810C002
|
|
_0810BFCE:
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0810C012
|
|
ldr r4, _0810BFF0 @ =gUnknown_02039248
|
|
ldrb r0, [r4]
|
|
ldrb r1, [r4, 0x3]
|
|
cmp r0, r1
|
|
beq _0810BFF4
|
|
movs r0, 0x5
|
|
movs r1, 0x14
|
|
bl sub_810BD64
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _0810C00A
|
|
.align 2, 0
|
|
_0810BFF0: .4byte gUnknown_02039248
|
|
_0810BFF4:
|
|
ldrb r1, [r4, 0x1]
|
|
ldrb r0, [r4]
|
|
adds r0, r1, r0
|
|
ldrb r2, [r4, 0x2]
|
|
cmp r0, r2
|
|
beq _0810C0B8
|
|
adds r0, r1, 0x1
|
|
_0810C002:
|
|
strb r0, [r4, 0x1]
|
|
ldrb r0, [r4, 0x1]
|
|
bl sub_810BB88
|
|
_0810C00A:
|
|
movs r0, 0
|
|
bl sub_810BF38
|
|
b _0810C0B8
|
|
_0810C012:
|
|
ldrh r1, [r2, 0x2E]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0810C05C
|
|
ldr r4, _0810C050 @ =gUnknown_02039248
|
|
ldrb r0, [r4, 0x1]
|
|
ldrb r1, [r4]
|
|
adds r0, r1
|
|
ldrb r1, [r4, 0x2]
|
|
cmp r0, r1
|
|
beq _0810C0B8
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
movs r0, 0x1
|
|
bl sub_810BDAC
|
|
ldr r1, _0810C054 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r1, [r4, 0x1]
|
|
ldrb r2, [r4]
|
|
adds r1, r2
|
|
strh r1, [r0, 0x8]
|
|
ldr r1, _0810C058 @ =sub_810C0C8
|
|
str r1, [r0]
|
|
b _0810C0B8
|
|
.align 2, 0
|
|
_0810C050: .4byte gUnknown_02039248
|
|
_0810C054: .4byte gTasks
|
|
_0810C058: .4byte sub_810C0C8
|
|
_0810C05C:
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0810C09C
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r0, _0810C088 @ =gUnknown_02039248
|
|
ldrb r1, [r0, 0x1]
|
|
ldrb r2, [r0]
|
|
adds r1, r2
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r1, r0
|
|
bne _0810C094
|
|
ldr r1, _0810C08C @ =gScriptResult
|
|
ldr r2, _0810C090 @ =0x0000ffff
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_810C31C
|
|
b _0810C0B8
|
|
.align 2, 0
|
|
_0810C088: .4byte gUnknown_02039248
|
|
_0810C08C: .4byte gScriptResult
|
|
_0810C090: .4byte 0x0000ffff
|
|
_0810C094:
|
|
adds r0, r5, 0
|
|
bl sub_810C368
|
|
b _0810C0B8
|
|
_0810C09C:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0810C0B8
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r1, _0810C0C0 @ =gScriptResult
|
|
ldr r2, _0810C0C4 @ =0x0000ffff
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
adds r0, r4, 0
|
|
bl sub_810C31C
|
|
_0810C0B8:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810C0C0: .4byte gScriptResult
|
|
_0810C0C4: .4byte 0x0000ffff
|
|
thumb_func_end sub_810BF7C
|
|
|
|
thumb_func_start sub_810C0C8
|
|
sub_810C0C8: @ 810C0C8
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r2, _0810C0F4 @ =gMain
|
|
ldrh r1, [r2, 0x30]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0810C110
|
|
ldr r4, _0810C0F8 @ =gUnknown_02039248
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0810C0FC
|
|
movs r0, 0x5
|
|
movs r1, 0x14
|
|
bl sub_810BD64
|
|
ldrb r0, [r4]
|
|
subs r0, 0x1
|
|
strb r0, [r4]
|
|
b _0810C158
|
|
.align 2, 0
|
|
_0810C0F4: .4byte gMain
|
|
_0810C0F8: .4byte gUnknown_02039248
|
|
_0810C0FC:
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0
|
|
beq _0810C1BA
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_810C1C8
|
|
ldrb r0, [r4, 0x1]
|
|
subs r0, 0x1
|
|
b _0810C150
|
|
_0810C110:
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0810C168
|
|
ldr r4, _0810C134 @ =gUnknown_02039248
|
|
ldrb r0, [r4]
|
|
ldrb r1, [r4, 0x3]
|
|
cmp r0, r1
|
|
beq _0810C138
|
|
movs r0, 0x5
|
|
movs r1, 0x14
|
|
bl sub_810BD64
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _0810C158
|
|
.align 2, 0
|
|
_0810C134: .4byte gUnknown_02039248
|
|
_0810C138:
|
|
ldrb r0, [r4, 0x1]
|
|
ldrb r1, [r4]
|
|
adds r0, r1
|
|
ldrb r1, [r4, 0x2]
|
|
cmp r0, r1
|
|
beq _0810C1BA
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_810C1C8
|
|
ldrb r0, [r4, 0x1]
|
|
adds r0, 0x1
|
|
_0810C150:
|
|
strb r0, [r4, 0x1]
|
|
ldrb r0, [r4, 0x1]
|
|
bl sub_810BB88
|
|
_0810C158:
|
|
movs r0, 0x1
|
|
bl sub_810BF38
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_810C1C8
|
|
b _0810C1BA
|
|
_0810C168:
|
|
ldrh r1, [r2, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0810C17A
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0810C190
|
|
_0810C17A:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_810C1C8
|
|
adds r0, r5, 0
|
|
bl sub_810C23C
|
|
b _0810C1AC
|
|
_0810C190:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0810C1BA
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_810C1C8
|
|
movs r0, 0
|
|
bl sub_810BDAC
|
|
_0810C1AC:
|
|
ldr r0, _0810C1C0 @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _0810C1C4 @ =sub_810BF7C
|
|
str r0, [r1]
|
|
_0810C1BA:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810C1C0: .4byte gTasks
|
|
_0810C1C4: .4byte sub_810BF7C
|
|
thumb_func_end sub_810C0C8
|
|
|
|
thumb_func_start sub_810C1C8
|
|
sub_810C1C8: @ 810C1C8
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r1, 24
|
|
ldr r6, _0810C22C @ =0x00001005
|
|
cmp r1, 0
|
|
bne _0810C1D8
|
|
movs r6, 0x5
|
|
_0810C1D8:
|
|
ldr r1, _0810C230 @ =gTasks
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r2, _0810C234 @ =gUnknown_02039248
|
|
ldrb r1, [r2, 0x1]
|
|
ldrh r0, [r0, 0x8]
|
|
subs r0, r1
|
|
lsls r1, r0, 16
|
|
lsrs r0, r1, 16
|
|
cmp r0, 0x8
|
|
bhi _0810C226
|
|
asrs r0, r1, 16
|
|
ldrb r2, [r2]
|
|
cmp r0, r2
|
|
beq _0810C226
|
|
movs r2, 0
|
|
lsls r0, 1
|
|
adds r1, r0, 0x1
|
|
lsls r5, r1, 5
|
|
ldr r3, _0810C238 @ =gBG2TilemapBuffer
|
|
adds r0, 0x2
|
|
lsls r4, r0, 5
|
|
_0810C208:
|
|
adds r0, r2, 0
|
|
adds r0, 0xF
|
|
adds r1, r5, r0
|
|
lsls r1, 1
|
|
adds r1, r3
|
|
strh r6, [r1]
|
|
adds r0, r4, r0
|
|
lsls r0, 1
|
|
adds r0, r3
|
|
strh r6, [r0]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0xD
|
|
bls _0810C208
|
|
_0810C226:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810C22C: .4byte 0x00001005
|
|
_0810C230: .4byte gTasks
|
|
_0810C234: .4byte gUnknown_02039248
|
|
_0810C238: .4byte gBG2TilemapBuffer
|
|
thumb_func_end sub_810C1C8
|
|
|
|
thumb_func_start sub_810C23C
|
|
sub_810C23C: @ 810C23C
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
ldr r7, _0810C25C @ =gUnknown_02039248
|
|
ldrb r0, [r7]
|
|
ldrb r2, [r7, 0x1]
|
|
adds r0, r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r2, [r7, 0x2]
|
|
cmp r0, r2
|
|
bne _0810C260
|
|
movs r0, 0
|
|
bl sub_810BDAC
|
|
b _0810C2A2
|
|
.align 2, 0
|
|
_0810C25C: .4byte gUnknown_02039248
|
|
_0810C260:
|
|
ldr r4, _0810C2A8 @ =gSaveBlock1
|
|
lsls r3, r0, 3
|
|
movs r0, 0xFF
|
|
lsls r0, 3
|
|
adds r4, r0
|
|
adds r3, r4
|
|
ldr r5, [r3]
|
|
ldr r6, [r3, 0x4]
|
|
ldr r0, _0810C2AC @ =gTasks
|
|
lsls r2, r1, 2
|
|
adds r2, r1
|
|
lsls r2, 3
|
|
adds r2, r0
|
|
movs r1, 0x8
|
|
ldrsh r0, [r2, r1]
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [r3]
|
|
str r1, [r3, 0x4]
|
|
movs r1, 0x8
|
|
ldrsh r0, [r2, r1]
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
str r5, [r0]
|
|
str r6, [r0, 0x4]
|
|
ldrb r0, [r7, 0x1]
|
|
bl sub_810BB88
|
|
movs r0, 0
|
|
bl sub_810BDAC
|
|
_0810C2A2:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810C2A8: .4byte gSaveBlock1
|
|
_0810C2AC: .4byte gTasks
|
|
thumb_func_end sub_810C23C
|
|
|
|
thumb_func_start sub_810C2B0
|
|
sub_810C2B0: @ 810C2B0
|
|
push {lr}
|
|
movs r0, 0
|
|
bl DestroyVerticalScrollIndicator
|
|
movs r0, 0x1
|
|
bl DestroyVerticalScrollIndicator
|
|
bl BuyMenuFreeMemory
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_810C2B0
|
|
|
|
thumb_func_start sub_810C2C8
|
|
sub_810C2C8: @ 810C2C8
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, _0810C308 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0810C300
|
|
ldr r4, _0810C30C @ =gUnknown_02039244
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x3
|
|
bne _0810C2E8
|
|
ldr r1, _0810C310 @ =gUnknown_0300485C
|
|
ldr r0, _0810C314 @ =sub_8080990
|
|
str r0, [r1]
|
|
_0810C2E8:
|
|
bl sub_810C2B0
|
|
ldr r0, _0810C318 @ =gUnknown_083F7EA8
|
|
ldrb r1, [r4]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
bl SetMainCallback2
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_0810C300:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810C308: .4byte gPaletteFade
|
|
_0810C30C: .4byte gUnknown_02039244
|
|
_0810C310: .4byte gUnknown_0300485C
|
|
_0810C314: .4byte sub_8080990
|
|
_0810C318: .4byte gUnknown_083F7EA8
|
|
thumb_func_end sub_810C2C8
|
|
|
|
thumb_func_start sub_810C31C
|
|
sub_810C31C: @ 810C31C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r5, 0
|
|
str r5, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, _0810C358 @ =gUnknown_02039244
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bls _0810C342
|
|
ldr r0, _0810C35C @ =word_203855E
|
|
strh r5, [r0]
|
|
_0810C342:
|
|
ldr r0, _0810C360 @ =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _0810C364 @ =sub_810C2C8
|
|
str r0, [r1]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810C358: .4byte gUnknown_02039244
|
|
_0810C35C: .4byte word_203855E
|
|
_0810C360: .4byte gTasks
|
|
_0810C364: .4byte sub_810C2C8
|
|
thumb_func_end sub_810C31C
|
|
|
|
thumb_func_start sub_810C368
|
|
sub_810C368: @ 810C368
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r4, 0
|
|
ldr r0, _0810C3E8 @ =gUnknown_02039244
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bls _0810C37C
|
|
movs r4, 0x2
|
|
_0810C37C:
|
|
movs r0, 0
|
|
bl sub_80F98A4
|
|
movs r0, 0x1
|
|
bl sub_80F98A4
|
|
ldr r0, _0810C3EC @ =gWindowConfig_81E6E50
|
|
bl BasicInitMenuWindow
|
|
adds r1, r4, 0x4
|
|
movs r0, 0x7
|
|
movs r2, 0xD
|
|
movs r3, 0xB
|
|
bl MenuDrawTextWindow
|
|
adds r4, 0x5
|
|
ldr r5, _0810C3F0 @ =gUnknown_0203924C
|
|
ldrb r2, [r5]
|
|
ldr r3, _0810C3F4 @ =gUnknown_083F7EF4
|
|
ldr r0, _0810C3F8 @ =gUnknown_03000758
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
movs r0, 0x8
|
|
adds r1, r4, 0
|
|
bl PrintMenuItemsReordered
|
|
ldrb r3, [r5]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x5
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0x8
|
|
adds r2, r4, 0
|
|
bl InitMenu
|
|
ldr r2, _0810C3FC @ =word_203855E
|
|
ldr r1, _0810C400 @ =gUnknown_02039248
|
|
ldrb r0, [r1]
|
|
ldrb r1, [r1, 0x1]
|
|
adds r0, r1
|
|
strh r0, [r2]
|
|
ldr r1, _0810C404 @ =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _0810C408 @ =sub_810C40C
|
|
str r1, [r0]
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810C3E8: .4byte gUnknown_02039244
|
|
_0810C3EC: .4byte gWindowConfig_81E6E50
|
|
_0810C3F0: .4byte gUnknown_0203924C
|
|
_0810C3F4: .4byte gUnknown_083F7EF4
|
|
_0810C3F8: .4byte gUnknown_03000758
|
|
_0810C3FC: .4byte word_203855E
|
|
_0810C400: .4byte gUnknown_02039248
|
|
_0810C404: .4byte gTasks
|
|
_0810C408: .4byte sub_810C40C
|
|
thumb_func_end sub_810C368
|
|
|
|
thumb_func_start sub_810C40C
|
|
sub_810C40C: @ 810C40C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r4, r5, 0
|
|
ldr r2, _0810C43C @ =gMain
|
|
ldrh r1, [r2, 0x30]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0810C440
|
|
bl GetMenuCursorPos
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0810C4BC
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
bl MoveMenuCursor
|
|
b _0810C4BC
|
|
.align 2, 0
|
|
_0810C43C: .4byte gMain
|
|
_0810C440:
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0810C46C
|
|
bl GetMenuCursorPos
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0810C468 @ =gUnknown_0203924C
|
|
ldrb r1, [r1]
|
|
subs r1, 0x1
|
|
cmp r0, r1
|
|
beq _0810C4BC
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
movs r0, 0x1
|
|
bl MoveMenuCursor
|
|
b _0810C4BC
|
|
.align 2, 0
|
|
_0810C468: .4byte gUnknown_0203924C
|
|
_0810C46C:
|
|
ldrh r1, [r2, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0810C4A8
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r4, _0810C4A0 @ =gUnknown_083F7EF4
|
|
bl GetMenuCursorPos
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0810C4A4 @ =gUnknown_03000758
|
|
ldr r1, [r1]
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 3
|
|
adds r4, 0x4
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
adds r0, r5, 0
|
|
bl _call_via_r1
|
|
b _0810C4BC
|
|
.align 2, 0
|
|
_0810C4A0: .4byte gUnknown_083F7EF4
|
|
_0810C4A4: .4byte gUnknown_03000758
|
|
_0810C4A8:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0810C4BC
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
adds r0, r4, 0
|
|
bl sub_810C748
|
|
_0810C4BC:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_810C40C
|
|
|
|
thumb_func_start sub_810C4C4
|
|
sub_810C4C4: @ 810C4C4
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _0810C4F8 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0810C4F0
|
|
bl sub_810C2B0
|
|
ldr r0, _0810C4FC @ =word_203855E
|
|
ldrh r0, [r0]
|
|
lsls r0, 3
|
|
ldr r1, _0810C500 @ =gSaveBlock1 + 0x7F8
|
|
adds r0, r1
|
|
ldr r1, _0810C504 @ =sub_810B96C
|
|
bl sub_8136130
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_0810C4F0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810C4F8: .4byte gPaletteFade
|
|
_0810C4FC: .4byte word_203855E
|
|
_0810C500: .4byte gSaveBlock1 + 0x7F8
|
|
_0810C504: .4byte sub_810B96C
|
|
thumb_func_end sub_810C4C4
|
|
|
|
thumb_func_start sub_810C508
|
|
sub_810C508: @ 810C508
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r1, _0810C538 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _0810C53C @ =sub_810C4C4
|
|
str r1, [r0]
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810C538: .4byte gTasks
|
|
_0810C53C: .4byte sub_810C4C4
|
|
thumb_func_end sub_810C508
|
|
|
|
thumb_func_start sub_810C540
|
|
sub_810C540: @ 810C540
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r0, _0810C5A0 @ =gWindowConfig_81E6E50
|
|
bl BasicInitMenuWindow
|
|
bl sub_8072DEC
|
|
movs r0, 0x7
|
|
movs r1, 0x4
|
|
movs r2, 0xD
|
|
movs r3, 0xB
|
|
bl MenuZeroFillWindowRect
|
|
ldr r0, _0810C5A4 @ =gStringVar1
|
|
ldr r4, _0810C5A8 @ =gUnknown_083F7EB8
|
|
ldr r3, _0810C5AC @ =gSaveBlock1
|
|
ldr r2, _0810C5B0 @ =gUnknown_02039248
|
|
ldrb r1, [r2]
|
|
ldrb r2, [r2, 0x1]
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, r3
|
|
movs r2, 0xFF
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldr r1, [r1]
|
|
bl StringCopy
|
|
ldr r4, _0810C5B4 @ =gStringVar4
|
|
ldr r1, _0810C5B8 @ =gContestStatsText_ThrowAwayPrompt
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
ldr r2, _0810C5BC @ =sub_810C5EC
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r3, 0
|
|
bl DisplayItemMessageOnField
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810C5A0: .4byte gWindowConfig_81E6E50
|
|
_0810C5A4: .4byte gStringVar1
|
|
_0810C5A8: .4byte gUnknown_083F7EB8
|
|
_0810C5AC: .4byte gSaveBlock1
|
|
_0810C5B0: .4byte gUnknown_02039248
|
|
_0810C5B4: .4byte gStringVar4
|
|
_0810C5B8: .4byte gContestStatsText_ThrowAwayPrompt
|
|
_0810C5BC: .4byte sub_810C5EC
|
|
thumb_func_end sub_810C540
|
|
|
|
thumb_func_start sub_810C5C0
|
|
sub_810C5C0: @ 810C5C0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
bl sub_80F979C
|
|
ldr r1, _0810C5E4 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _0810C5E8 @ =sub_810C540
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810C5E4: .4byte gTasks
|
|
_0810C5E8: .4byte sub_810C540
|
|
thumb_func_end sub_810C5C0
|
|
|
|
thumb_func_start sub_810C5EC
|
|
sub_810C5EC: @ 810C5EC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0x7
|
|
movs r1, 0x6
|
|
movs r2, 0x1
|
|
bl DisplayYesNoMenu
|
|
ldr r1, _0810C60C @ =gUnknown_083F7F24
|
|
adds r0, r4, 0
|
|
bl sub_80F914C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810C60C: .4byte gUnknown_083F7F24
|
|
thumb_func_end sub_810C5EC
|
|
|
|
thumb_func_start sub_810C610
|
|
sub_810C610: @ 810C610
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0x7
|
|
movs r1, 0x6
|
|
movs r2, 0xD
|
|
movs r3, 0xB
|
|
bl MenuZeroFillWindowRect
|
|
ldr r1, _0810C658 @ =gUnknown_02039248
|
|
ldrb r0, [r1, 0x1]
|
|
ldrb r1, [r1]
|
|
adds r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_810CA6C
|
|
ldr r5, _0810C65C @ =gStringVar4
|
|
ldr r1, _0810C660 @ =gContestStatsText_WasThrownAway
|
|
adds r0, r5, 0
|
|
bl StringExpandPlaceholders
|
|
ldr r2, _0810C664 @ =sub_810C704
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r3, 0
|
|
bl DisplayItemMessageOnField
|
|
bl sub_810BC98
|
|
bl sub_810BD08
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810C658: .4byte gUnknown_02039248
|
|
_0810C65C: .4byte gStringVar4
|
|
_0810C660: .4byte gContestStatsText_WasThrownAway
|
|
_0810C664: .4byte sub_810C704
|
|
thumb_func_end sub_810C610
|
|
|
|
thumb_func_start sub_810C668
|
|
sub_810C668: @ 810C668
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r0, 0
|
|
bl sub_80F98DC
|
|
movs r0, 0x1
|
|
bl sub_80F98DC
|
|
ldr r2, _0810C6CC @ =gUnknown_02039248
|
|
ldrb r0, [r2, 0x2]
|
|
ldrb r1, [r2, 0x3]
|
|
cmp r0, r1
|
|
bls _0810C698
|
|
ldrb r0, [r2, 0x1]
|
|
ldrb r1, [r2, 0x3]
|
|
adds r0, r1
|
|
ldrb r2, [r2, 0x2]
|
|
cmp r0, r2
|
|
beq _0810C698
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl sub_80F979C
|
|
_0810C698:
|
|
ldr r0, _0810C6D0 @ =gWindowConfig_81E6E50
|
|
bl BasicInitMenuWindow
|
|
movs r0, 0x7
|
|
movs r1, 0x6
|
|
movs r2, 0xD
|
|
movs r3, 0xB
|
|
bl MenuZeroFillWindowRect
|
|
movs r0, 0
|
|
movs r1, 0xE
|
|
movs r2, 0x1D
|
|
movs r3, 0x13
|
|
bl MenuZeroFillWindowRect
|
|
ldr r1, _0810C6D4 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _0810C6D8 @ =sub_810BF7C
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810C6CC: .4byte gUnknown_02039248
|
|
_0810C6D0: .4byte gWindowConfig_81E6E50
|
|
_0810C6D4: .4byte gTasks
|
|
_0810C6D8: .4byte sub_810BF7C
|
|
thumb_func_end sub_810C668
|
|
|
|
thumb_func_start sub_810C6DC
|
|
sub_810C6DC: @ 810C6DC
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _0810C700 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0810C6F6
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0810C6FC
|
|
_0810C6F6:
|
|
adds r0, r2, 0
|
|
bl sub_810C668
|
|
_0810C6FC:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810C700: .4byte gMain
|
|
thumb_func_end sub_810C6DC
|
|
|
|
thumb_func_start sub_810C704
|
|
sub_810C704: @ 810C704
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _0810C738 @ =gWindowConfig_81E6E34
|
|
bl BasicInitMenuWindow
|
|
ldr r0, _0810C73C @ =gUnknown_02039248
|
|
ldrb r0, [r0, 0x1]
|
|
bl sub_810BC84
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
bl sub_80F979C
|
|
ldr r1, _0810C740 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _0810C744 @ =sub_810C6DC
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810C738: .4byte gWindowConfig_81E6E34
|
|
_0810C73C: .4byte gUnknown_02039248
|
|
_0810C740: .4byte gTasks
|
|
_0810C744: .4byte sub_810C6DC
|
|
thumb_func_end sub_810C704
|
|
|
|
thumb_func_start sub_810C748
|
|
sub_810C748: @ 810C748
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0
|
|
bl sub_80F98DC
|
|
movs r0, 0x1
|
|
bl sub_80F98DC
|
|
bl sub_8072DEC
|
|
movs r0, 0x7
|
|
movs r1, 0x4
|
|
movs r2, 0xD
|
|
movs r3, 0xB
|
|
bl MenuZeroFillWindowRect
|
|
ldr r1, _0810C780 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _0810C784 @ =sub_810BF7C
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810C780: .4byte gTasks
|
|
_0810C784: .4byte sub_810BF7C
|
|
thumb_func_end sub_810C748
|
|
|
|
thumb_func_start sub_810C788
|
|
sub_810C788: @ 810C788
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r0, _0810C834 @ =gEnemyParty
|
|
bl GetNature
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r7, _0810C838 @ =word_203855E
|
|
ldrh r1, [r7]
|
|
lsls r1, 3
|
|
ldr r5, _0810C83C @ =gSaveBlock1 + 0x7F8
|
|
adds r1, r5
|
|
bl sub_810CAE4
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
ldr r0, _0810C840 @ =gUnknown_030041C0
|
|
ldr r2, _0810C844 @ =gUnknown_083F7EB8
|
|
ldr r1, _0810C848 @ =0xfffff808
|
|
adds r5, r1
|
|
ldrh r1, [r7]
|
|
lsls r1, 3
|
|
adds r1, r5
|
|
movs r6, 0xFF
|
|
lsls r6, 3
|
|
adds r1, r6
|
|
ldrb r1, [r1]
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
bl StringCopy
|
|
ldrb r0, [r7]
|
|
bl sub_810CA6C
|
|
ldrh r0, [r7]
|
|
lsls r0, 3
|
|
adds r0, r5
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
lsls r0, 8
|
|
strh r0, [r7]
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
cmp r4, 0
|
|
bne _0810C7F4
|
|
adds r0, 0x1
|
|
strh r0, [r7]
|
|
_0810C7F4:
|
|
cmp r4, 0
|
|
ble _0810C7FE
|
|
ldrh r0, [r7]
|
|
adds r0, 0x2
|
|
strh r0, [r7]
|
|
_0810C7FE:
|
|
cmp r4, 0
|
|
bge _0810C808
|
|
ldrh r0, [r7]
|
|
adds r0, 0x3
|
|
strh r0, [r7]
|
|
_0810C808:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r1, _0810C84C @ =gTasks
|
|
mov r2, r8
|
|
lsls r0, r2, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _0810C850 @ =sub_810C2C8
|
|
str r1, [r0]
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810C834: .4byte gEnemyParty
|
|
_0810C838: .4byte word_203855E
|
|
_0810C83C: .4byte gSaveBlock1 + 0x7F8
|
|
_0810C840: .4byte gUnknown_030041C0
|
|
_0810C844: .4byte gUnknown_083F7EB8
|
|
_0810C848: .4byte 0xfffff808
|
|
_0810C84C: .4byte gTasks
|
|
_0810C850: .4byte sub_810C2C8
|
|
thumb_func_end sub_810C788
|
|
|
|
thumb_func_start sub_810C854
|
|
sub_810C854: @ 810C854
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r4, _0810C8B8 @ =word_203855E
|
|
ldrb r0, [r4]
|
|
bl sub_80C8478
|
|
ldr r0, _0810C8BC @ =gStringVar1
|
|
ldr r3, _0810C8C0 @ =gUnknown_083F7EB8
|
|
ldr r2, _0810C8C4 @ =gSaveBlock1
|
|
ldrh r1, [r4]
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r2, 0xFF
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldr r1, [r1]
|
|
bl StringCopy
|
|
ldr r1, _0810C8C8 @ =gScriptResult
|
|
ldrh r0, [r4]
|
|
strh r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_810CA6C
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r1, _0810C8CC @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _0810C8D0 @ =sub_810C2C8
|
|
str r1, [r0]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810C8B8: .4byte word_203855E
|
|
_0810C8BC: .4byte gStringVar1
|
|
_0810C8C0: .4byte gUnknown_083F7EB8
|
|
_0810C8C4: .4byte gSaveBlock1
|
|
_0810C8C8: .4byte gScriptResult
|
|
_0810C8CC: .4byte gTasks
|
|
_0810C8D0: .4byte sub_810C2C8
|
|
thumb_func_end sub_810C854
|
|
|
|
thumb_func_start sub_810C8D4
|
|
sub_810C8D4: @ 810C8D4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
ble _0810C8E4
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2E]
|
|
_0810C8E4:
|
|
movs r0, 0x2E
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
beq _0810C8F2
|
|
cmp r5, 0x1
|
|
beq _0810C918
|
|
b _0810C944
|
|
_0810C8F2:
|
|
ldrb r1, [r4, 0x1]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1]
|
|
ldr r0, _0810C914 @ =gUnknown_083F7F70
|
|
str r0, [r4, 0x10]
|
|
adds r0, r4, 0
|
|
bl InitSpriteAffineAnim
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
strh r5, [r4, 0x30]
|
|
b _0810C944
|
|
.align 2, 0
|
|
_0810C914: .4byte gUnknown_083F7F70
|
|
_0810C918:
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xB
|
|
ble _0810C944
|
|
ldrb r1, [r4, 0x1]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r4, 0x1]
|
|
strh r2, [r4, 0x2E]
|
|
strh r2, [r4, 0x30]
|
|
ldrb r0, [r4, 0x3]
|
|
lsls r0, 26
|
|
lsrs r0, 27
|
|
bl FreeOamMatrix
|
|
ldr r0, _0810C94C @ =SpriteCallbackDummy
|
|
str r0, [r4, 0x1C]
|
|
_0810C944:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810C94C: .4byte SpriteCallbackDummy
|
|
thumb_func_end sub_810C8D4
|
|
|
|
thumb_func_start sub_810C950
|
|
sub_810C950: @ 810C950
|
|
lsls r0, 24
|
|
ldr r1, _0810C988 @ =gSaveBlock1
|
|
lsrs r0, 21
|
|
adds r0, r1
|
|
movs r2, 0xFF
|
|
lsls r2, 3
|
|
adds r1, r0, r2
|
|
movs r2, 0
|
|
strb r2, [r1]
|
|
ldr r3, _0810C98C @ =0x000007f9
|
|
adds r1, r0, r3
|
|
strb r2, [r1]
|
|
adds r3, 0x1
|
|
adds r1, r0, r3
|
|
strb r2, [r1]
|
|
adds r3, 0x1
|
|
adds r1, r0, r3
|
|
strb r2, [r1]
|
|
adds r3, 0x1
|
|
adds r1, r0, r3
|
|
strb r2, [r1]
|
|
adds r3, 0x1
|
|
adds r1, r0, r3
|
|
strb r2, [r1]
|
|
ldr r1, _0810C990 @ =0x000007fe
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0810C988: .4byte gSaveBlock1
|
|
_0810C98C: .4byte 0x000007f9
|
|
_0810C990: .4byte 0x000007fe
|
|
thumb_func_end sub_810C950
|
|
|
|
thumb_func_start sub_810C994
|
|
sub_810C994: @ 810C994
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_0810C998:
|
|
adds r0, r4, 0
|
|
bl sub_810C950
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x27
|
|
bls _0810C998
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_810C994
|
|
|
|
thumb_func_start sub_810C9B0
|
|
sub_810C9B0: @ 810C9B0
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_810CA9C
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r1, 0x1
|
|
_0810C9C0:
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_810CA9C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r5, r0
|
|
bcs _0810C9D8
|
|
adds r5, r0, 0
|
|
_0810C9D8:
|
|
adds r1, r4, 0
|
|
cmp r1, 0x4
|
|
bls _0810C9C0
|
|
adds r0, r5, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810C9B0
|
|
|
|
thumb_func_start sub_810C9E8
|
|
sub_810C9E8: @ 810C9E8
|
|
push {lr}
|
|
movs r1, 0x6
|
|
bl sub_810CA9C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x63
|
|
bls _0810C9FA
|
|
movs r0, 0x63
|
|
_0810C9FA:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810C9E8
|
|
|
|
thumb_func_start sub_810CA00
|
|
sub_810CA00: @ 810CA00
|
|
push {lr}
|
|
movs r1, 0
|
|
ldr r3, _0810CA1C @ =gSaveBlock1
|
|
movs r2, 0xFF
|
|
lsls r2, 3
|
|
_0810CA0A:
|
|
lsls r0, r1, 3
|
|
adds r0, r3
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0810CA20
|
|
lsls r0, r1, 24
|
|
asrs r0, 24
|
|
b _0810CA2E
|
|
.align 2, 0
|
|
_0810CA1C: .4byte gSaveBlock1
|
|
_0810CA20:
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x27
|
|
bls _0810CA0A
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_0810CA2E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810CA00
|
|
|
|
thumb_func_start sub_810CA34
|
|
sub_810CA34: @ 810CA34
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_810CA00
|
|
lsls r0, 24
|
|
asrs r2, r0, 24
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r2, r0
|
|
beq _0810CA64
|
|
ldr r0, _0810CA60 @ =gSaveBlock1
|
|
lsls r2, 3
|
|
movs r1, 0xFF
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
adds r2, r0
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, 0x4]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
movs r0, 0x1
|
|
b _0810CA66
|
|
.align 2, 0
|
|
_0810CA60: .4byte gSaveBlock1
|
|
_0810CA64:
|
|
movs r0, 0
|
|
_0810CA66:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810CA34
|
|
|
|
thumb_func_start sub_810CA6C
|
|
sub_810CA6C: @ 810CA6C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r1, _0810CA90 @ =gSaveBlock1
|
|
lsls r0, r2, 3
|
|
adds r0, r1
|
|
movs r1, 0xFF
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0810CA94
|
|
adds r0, r2, 0
|
|
bl sub_810C950
|
|
movs r0, 0x1
|
|
b _0810CA96
|
|
.align 2, 0
|
|
_0810CA90: .4byte gSaveBlock1
|
|
_0810CA94:
|
|
movs r0, 0
|
|
_0810CA96:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810CA6C
|
|
|
|
thumb_func_start sub_810CA9C
|
|
sub_810CA9C: @ 810CA9C
|
|
push {lr}
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r2, r1, 0
|
|
cmp r1, 0
|
|
bne _0810CAAC
|
|
ldrb r0, [r0]
|
|
b _0810CADE
|
|
_0810CAAC:
|
|
cmp r1, 0x1
|
|
bne _0810CAB4
|
|
ldrb r0, [r0, 0x1]
|
|
b _0810CADE
|
|
_0810CAB4:
|
|
cmp r1, 0x2
|
|
bne _0810CABC
|
|
ldrb r0, [r0, 0x2]
|
|
b _0810CADE
|
|
_0810CABC:
|
|
cmp r1, 0x3
|
|
bne _0810CAC4
|
|
ldrb r0, [r0, 0x3]
|
|
b _0810CADE
|
|
_0810CAC4:
|
|
cmp r1, 0x4
|
|
bne _0810CACC
|
|
ldrb r0, [r0, 0x4]
|
|
b _0810CADE
|
|
_0810CACC:
|
|
cmp r1, 0x5
|
|
bne _0810CAD4
|
|
ldrb r0, [r0, 0x5]
|
|
b _0810CADE
|
|
_0810CAD4:
|
|
cmp r2, 0x6
|
|
beq _0810CADC
|
|
movs r0, 0
|
|
b _0810CADE
|
|
_0810CADC:
|
|
ldrb r0, [r0, 0x6]
|
|
_0810CADE:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810CA9C
|
|
|
|
thumb_func_start sub_810CAE4
|
|
sub_810CAE4: @ 810CAE4
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
mov r8, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r6, 0
|
|
movs r4, 0
|
|
ldr r1, _0810CB40 @ =gUnknown_083F7E28
|
|
mov r9, r1
|
|
lsls r1, r0, 2
|
|
adds r7, r1, r0
|
|
_0810CAFE:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl sub_810CA9C
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
cmp r1, 0
|
|
ble _0810CB2A
|
|
adds r0, r7, r4
|
|
add r0, r9
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
muls r1, r0
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
_0810CB2A:
|
|
adds r4, r5, 0
|
|
cmp r4, 0x4
|
|
bls _0810CAFE
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810CB40: .4byte gUnknown_083F7E28
|
|
thumb_func_end sub_810CAE4
|
|
|
|
thumb_func_start sub_810CB44
|
|
sub_810CB44: @ 810CB44
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
movs r1, 0
|
|
bl sub_810CA9C
|
|
lsls r0, 24
|
|
ldr r1, _0810CB64 @ =gUnknown_083F7EB8
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
bl StringCopy
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810CB64: .4byte gUnknown_083F7EB8
|
|
thumb_func_end sub_810CB44
|
|
|
|
thumb_func_start sub_810CB68
|
|
sub_810CB68: @ 810CB68
|
|
push {r4-r7,lr}
|
|
adds r6, r1, 0
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
ldr r7, _0810CB98 @ =gUnknown_083F7EB8
|
|
_0810CB74:
|
|
lsls r1, r4, 3
|
|
ldr r0, _0810CB9C @ =gUnknown_083F7F9C
|
|
adds r1, r0
|
|
adds r0, r5, 0
|
|
bl sub_810CAE4
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _0810CBA0
|
|
adds r0, r4, 0x1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
ldr r1, [r0]
|
|
adds r0, r6, 0
|
|
bl StringCopy
|
|
movs r0, 0x1
|
|
b _0810CBAC
|
|
.align 2, 0
|
|
_0810CB98: .4byte gUnknown_083F7EB8
|
|
_0810CB9C: .4byte gUnknown_083F7F9C
|
|
_0810CBA0:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x4
|
|
bls _0810CB74
|
|
movs r0, 0
|
|
_0810CBAC:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810CB68
|
|
|
|
thumb_func_start SetUpFieldMove_Flash
|
|
SetUpFieldMove_Flash: @ 810CBB4
|
|
push {lr}
|
|
ldr r0, _0810CBDC @ =gMapHeader
|
|
ldrb r0, [r0, 0x15]
|
|
cmp r0, 0x1
|
|
bne _0810CBF4
|
|
ldr r0, _0810CBE0 @ =0x00000828
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0810CBF4
|
|
ldr r1, _0810CBE4 @ =gUnknown_0300485C
|
|
ldr r0, _0810CBE8 @ =sub_808AB90
|
|
str r0, [r1]
|
|
ldr r1, _0810CBEC @ =gUnknown_03005CE4
|
|
ldr r0, _0810CBF0 @ =sub_810CBFC
|
|
str r0, [r1]
|
|
movs r0, 0x1
|
|
b _0810CBF6
|
|
.align 2, 0
|
|
_0810CBDC: .4byte gMapHeader
|
|
_0810CBE0: .4byte 0x00000828
|
|
_0810CBE4: .4byte gUnknown_0300485C
|
|
_0810CBE8: .4byte sub_808AB90
|
|
_0810CBEC: .4byte gUnknown_03005CE4
|
|
_0810CBF0: .4byte sub_810CBFC
|
|
_0810CBF4:
|
|
movs r0, 0
|
|
_0810CBF6:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end SetUpFieldMove_Flash
|
|
|
|
thumb_func_start sub_810CBFC
|
|
sub_810CBFC: @ 810CBFC
|
|
push {lr}
|
|
bl oei_task_add
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0810CC24 @ =gUnknown_0202FF84
|
|
ldr r1, _0810CC28 @ =gUnknown_03005CE0
|
|
ldrb r1, [r1]
|
|
str r1, [r2]
|
|
ldr r2, _0810CC2C @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldr r2, _0810CC30 @ =sub_810CC34
|
|
lsrs r0, r2, 16
|
|
strh r0, [r1, 0x18]
|
|
strh r2, [r1, 0x1A]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810CC24: .4byte gUnknown_0202FF84
|
|
_0810CC28: .4byte gUnknown_03005CE0
|
|
_0810CC2C: .4byte gTasks
|
|
_0810CC30: .4byte sub_810CC34
|
|
thumb_func_end sub_810CBFC
|
|
|
|
thumb_func_start sub_810CC34
|
|
sub_810CC34: @ 810CC34
|
|
push {lr}
|
|
movs r0, 0xCF
|
|
bl PlaySE
|
|
ldr r0, _0810CC4C @ =0x00000828
|
|
bl FlagSet
|
|
ldr r0, _0810CC50 @ =gUnknown_081B694A
|
|
bl ScriptContext1_SetupScript
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810CC4C: .4byte 0x00000828
|
|
_0810CC50: .4byte gUnknown_081B694A
|
|
thumb_func_end sub_810CC34
|
|
|
|
thumb_func_start sub_810CC54
|
|
sub_810CC54: @ 810CC54
|
|
push {lr}
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_810CC54
|
|
|
|
thumb_func_start sub_810CC6C
|
|
sub_810CC6C: @ 810CC6C
|
|
push {lr}
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl TransferPlttBuffer
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_810CC6C
|
|
|
|
thumb_func_start sub_810CC80
|
|
sub_810CC80: @ 810CC80
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
movs r0, 0x80
|
|
lsls r0, 19
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
adds r0, 0xC
|
|
strh r1, [r0]
|
|
subs r0, 0x2
|
|
strh r1, [r0]
|
|
subs r0, 0x2
|
|
strh r1, [r0]
|
|
adds r0, 0x10
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
subs r0, 0x6
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
subs r0, 0x6
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
ldr r1, _0810CD34 @ =0x040000d4
|
|
str r0, [r1]
|
|
movs r0, 0xC0
|
|
lsls r0, 19
|
|
str r0, [r1, 0x4]
|
|
ldr r0, _0810CD38 @ =0x8100c000
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
movs r4, 0
|
|
str r4, [sp, 0x4]
|
|
add r0, sp, 0x4
|
|
str r0, [r1]
|
|
movs r0, 0xE0
|
|
lsls r0, 19
|
|
str r0, [r1, 0x4]
|
|
ldr r0, _0810CD3C @ =0x85000100
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
mov r0, sp
|
|
strh r4, [r0]
|
|
str r0, [r1]
|
|
ldr r0, _0810CD40 @ =0x05000002
|
|
str r0, [r1, 0x4]
|
|
ldr r0, _0810CD44 @ =0x810001ff
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
bl ResetPaletteFade
|
|
bl ResetTasks
|
|
bl ResetSpriteData
|
|
ldr r3, _0810CD48 @ =0x04000208
|
|
ldrh r2, [r3]
|
|
strh r4, [r3]
|
|
ldr r4, _0810CD4C @ =0x04000200
|
|
ldrh r0, [r4]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strh r0, [r4]
|
|
strh r2, [r3]
|
|
ldr r0, _0810CD50 @ =sub_810CC6C
|
|
bl SetVBlankCallback
|
|
ldr r0, _0810CD54 @ =sub_810CC54
|
|
bl SetMainCallback2
|
|
bl sub_810CD5C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0810CD2A
|
|
ldr r0, _0810CD58 @ =gMain
|
|
ldr r0, [r0, 0x8]
|
|
bl SetMainCallback2
|
|
_0810CD2A:
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810CD34: .4byte 0x040000d4
|
|
_0810CD38: .4byte 0x8100c000
|
|
_0810CD3C: .4byte 0x85000100
|
|
_0810CD40: .4byte 0x05000002
|
|
_0810CD44: .4byte 0x810001ff
|
|
_0810CD48: .4byte 0x04000208
|
|
_0810CD4C: .4byte 0x04000200
|
|
_0810CD50: .4byte sub_810CC6C
|
|
_0810CD54: .4byte sub_810CC54
|
|
_0810CD58: .4byte gMain
|
|
thumb_func_end sub_810CC80
|
|
|
|
thumb_func_start sub_810CD5C
|
|
sub_810CD5C: @ 810CD5C
|
|
push {r4-r7,lr}
|
|
bl get_map_light_from_warp0
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
bl sav1_map_get_light_level
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r3, 0
|
|
ldr r4, _0810CD9C @ =gUnknown_083F7FC4
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0810CDB0
|
|
adds r7, r4, 0
|
|
adds r0, r4, 0x4
|
|
mov r12, r0
|
|
_0810CD7E:
|
|
lsls r2, r3, 3
|
|
adds r1, r2, r7
|
|
ldrb r0, [r1]
|
|
cmp r0, r6
|
|
bne _0810CDA0
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, r5
|
|
bne _0810CDA0
|
|
mov r1, r12
|
|
adds r0, r2, r1
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
movs r0, 0x1
|
|
b _0810CDB2
|
|
.align 2, 0
|
|
_0810CD9C: .4byte gUnknown_083F7FC4
|
|
_0810CDA0:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
lsls r0, r3, 3
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0810CD7E
|
|
_0810CDB0:
|
|
movs r0, 0
|
|
_0810CDB2:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810CD5C
|
|
|
|
thumb_func_start sub_810CDB8
|
|
sub_810CDB8: @ 810CDB8
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r0, 24
|
|
lsrs r4, r1, 24
|
|
movs r3, 0
|
|
ldr r1, _0810CDE4 @ =gUnknown_083F7FC4
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0810CDF8
|
|
adds r6, r1, 0
|
|
_0810CDCE:
|
|
lsls r0, r3, 3
|
|
adds r2, r0, r6
|
|
ldrb r0, [r2]
|
|
cmp r0, r5
|
|
bne _0810CDE8
|
|
ldrb r0, [r2, 0x1]
|
|
cmp r0, r4
|
|
bne _0810CDE8
|
|
ldrb r0, [r2, 0x2]
|
|
b _0810CDFA
|
|
.align 2, 0
|
|
_0810CDE4: .4byte gUnknown_083F7FC4
|
|
_0810CDE8:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
lsls r0, r3, 3
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0810CDCE
|
|
_0810CDF8:
|
|
movs r0, 0
|
|
_0810CDFA:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810CDB8
|
|
|
|
thumb_func_start fade_type_for_given_maplight_pair
|
|
fade_type_for_given_maplight_pair: @ 810CE00
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r0, 24
|
|
lsrs r4, r1, 24
|
|
movs r3, 0
|
|
ldr r1, _0810CE2C @ =gUnknown_083F7FC4
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0810CE40
|
|
adds r6, r1, 0
|
|
_0810CE16:
|
|
lsls r0, r3, 3
|
|
adds r2, r0, r6
|
|
ldrb r0, [r2]
|
|
cmp r0, r5
|
|
bne _0810CE30
|
|
ldrb r0, [r2, 0x1]
|
|
cmp r0, r4
|
|
bne _0810CE30
|
|
ldrb r0, [r2, 0x3]
|
|
b _0810CE42
|
|
.align 2, 0
|
|
_0810CE2C: .4byte gUnknown_083F7FC4
|
|
_0810CE30:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
lsls r0, r3, 3
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0810CE16
|
|
_0810CE40:
|
|
movs r0, 0
|
|
_0810CE42:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end fade_type_for_given_maplight_pair
|
|
|
|
thumb_func_start sub_810CE48
|
|
sub_810CE48: @ 810CE48
|
|
push {lr}
|
|
ldr r0, _0810CE58 @ =sub_810CE5C
|
|
movs r1, 0
|
|
bl CreateTask
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810CE58: .4byte sub_810CE5C
|
|
thumb_func_end sub_810CE48
|
|
|
|
thumb_func_start sub_810CE5C
|
|
sub_810CE5C: @ 810CE5C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0810CE70 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldr r0, _0810CE74 @ =sub_810CE78
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0810CE70: .4byte gTasks
|
|
_0810CE74: .4byte sub_810CE78
|
|
thumb_func_end sub_810CE5C
|
|
|
|
thumb_func_start sub_810CE78
|
|
sub_810CE78: @ 810CE78
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r6, 0x80
|
|
lsls r6, 19
|
|
movs r5, 0
|
|
strh r5, [r6]
|
|
ldr r0, _0810CEE8 @ =gCaveTransitionTiles
|
|
ldr r1, _0810CEEC @ =0x0600c000
|
|
bl LZ77UnCompVram
|
|
ldr r0, _0810CEF0 @ =gCaveTransitionTilemap
|
|
ldr r1, _0810CEF4 @ =0x0600f800
|
|
bl LZ77UnCompVram
|
|
ldr r0, _0810CEF8 @ =gCaveTransitionPalette_White
|
|
movs r1, 0xE0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
ldr r0, _0810CEFC @ =gUnknown_083F809C
|
|
movs r1, 0xE0
|
|
movs r2, 0x10
|
|
bl LoadPalette
|
|
ldr r1, _0810CF00 @ =REG_BLDCNT
|
|
ldr r2, _0810CF04 @ =0x00003e41
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r0, _0810CF08 @ =REG_BLDALPHA
|
|
strh r5, [r0]
|
|
adds r0, 0x2
|
|
strh r5, [r0]
|
|
subs r1, 0x48
|
|
ldr r2, _0810CF0C @ =0x00001f0c
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
movs r1, 0x8A
|
|
lsls r1, 5
|
|
adds r0, r1, 0
|
|
strh r0, [r6]
|
|
ldr r1, _0810CF10 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _0810CF14 @ =sub_810CF18
|
|
str r1, [r0]
|
|
movs r2, 0
|
|
movs r1, 0x10
|
|
strh r1, [r0, 0x8]
|
|
strh r2, [r0, 0xA]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810CEE8: .4byte gCaveTransitionTiles
|
|
_0810CEEC: .4byte 0x0600c000
|
|
_0810CEF0: .4byte gCaveTransitionTilemap
|
|
_0810CEF4: .4byte 0x0600f800
|
|
_0810CEF8: .4byte gCaveTransitionPalette_White
|
|
_0810CEFC: .4byte gUnknown_083F809C
|
|
_0810CF00: .4byte REG_BLDCNT
|
|
_0810CF04: .4byte 0x00003e41
|
|
_0810CF08: .4byte REG_BLDALPHA
|
|
_0810CF0C: .4byte 0x00001f0c
|
|
_0810CF10: .4byte gTasks
|
|
_0810CF14: .4byte sub_810CF18
|
|
thumb_func_end sub_810CE78
|
|
|
|
thumb_func_start sub_810CF18
|
|
sub_810CF18: @ 810CF18
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0810CF44 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r3, r1, r2
|
|
ldrh r2, [r3, 0xA]
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
adds r0, r2, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, _0810CF48 @ =REG_BLDALPHA
|
|
strh r0, [r1]
|
|
cmp r2, 0x10
|
|
bhi _0810CF4C
|
|
ldrh r0, [r3, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0xA]
|
|
b _0810CF54
|
|
.align 2, 0
|
|
_0810CF44: .4byte gTasks
|
|
_0810CF48: .4byte REG_BLDALPHA
|
|
_0810CF4C:
|
|
movs r0, 0
|
|
strh r0, [r3, 0xC]
|
|
ldr r0, _0810CF58 @ =sub_810CF5C
|
|
str r0, [r3]
|
|
_0810CF54:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810CF58: .4byte sub_810CF5C
|
|
thumb_func_end sub_810CF18
|
|
|
|
thumb_func_start sub_810CF5C
|
|
sub_810CF5C: @ 810CF5C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0810CF94 @ =REG_BLDALPHA
|
|
ldr r3, _0810CF98 @ =0x00001010
|
|
adds r1, r3, 0
|
|
strh r1, [r2]
|
|
ldr r2, _0810CF9C @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r4, r1, r2
|
|
ldrh r1, [r4, 0xC]
|
|
cmp r1, 0x7
|
|
bhi _0810CFA4
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0xC]
|
|
lsls r1, 1
|
|
ldr r0, _0810CFA0 @ =gUnknown_083F809C
|
|
adds r0, r1, r0
|
|
movs r2, 0x10
|
|
subs r2, r1
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
movs r1, 0xE0
|
|
bl LoadPalette
|
|
b _0810CFB6
|
|
.align 2, 0
|
|
_0810CF94: .4byte REG_BLDALPHA
|
|
_0810CF98: .4byte 0x00001010
|
|
_0810CF9C: .4byte gTasks
|
|
_0810CFA0: .4byte gUnknown_083F809C
|
|
_0810CFA4:
|
|
ldr r0, _0810CFBC @ =gCaveTransitionPalette_White
|
|
movs r1, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
ldr r0, _0810CFC0 @ =sub_810CFC4
|
|
str r0, [r4]
|
|
movs r0, 0x8
|
|
strh r0, [r4, 0xC]
|
|
_0810CFB6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810CFBC: .4byte gCaveTransitionPalette_White
|
|
_0810CFC0: .4byte sub_810CFC4
|
|
thumb_func_end sub_810CF5C
|
|
|
|
thumb_func_start sub_810CFC4
|
|
sub_810CFC4: @ 810CFC4
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0810CFE4 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldrh r2, [r1, 0xC]
|
|
movs r3, 0xC
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _0810CFE8
|
|
subs r0, r2, 0x1
|
|
strh r0, [r1, 0xC]
|
|
b _0810CFF0
|
|
.align 2, 0
|
|
_0810CFE4: .4byte gTasks
|
|
_0810CFE8:
|
|
ldr r0, _0810CFF4 @ =gMain
|
|
ldr r0, [r0, 0x8]
|
|
bl SetMainCallback2
|
|
_0810CFF0:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810CFF4: .4byte gMain
|
|
thumb_func_end sub_810CFC4
|
|
|
|
thumb_func_start sub_810CFF8
|
|
sub_810CFF8: @ 810CFF8
|
|
push {lr}
|
|
ldr r0, _0810D008 @ =sub_810D00C
|
|
movs r1, 0
|
|
bl CreateTask
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810D008: .4byte sub_810D00C
|
|
thumb_func_end sub_810CFF8
|
|
|
|
thumb_func_start sub_810D00C
|
|
sub_810D00C: @ 810D00C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0810D020 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldr r0, _0810D024 @ =sub_810D028
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0810D020: .4byte gTasks
|
|
_0810D024: .4byte sub_810D028
|
|
thumb_func_end sub_810D00C
|
|
|
|
thumb_func_start sub_810D028
|
|
sub_810D028: @ 810D028
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
movs r6, 0x80
|
|
lsls r6, 19
|
|
movs r4, 0
|
|
strh r4, [r6]
|
|
ldr r0, _0810D098 @ =gCaveTransitionTiles
|
|
ldr r1, _0810D09C @ =0x0600c000
|
|
bl LZ77UnCompVram
|
|
ldr r0, _0810D0A0 @ =gCaveTransitionTilemap
|
|
ldr r1, _0810D0A4 @ =0x0600f800
|
|
bl LZ77UnCompVram
|
|
ldr r0, _0810D0A8 @ =REG_BLDCNT
|
|
strh r4, [r0]
|
|
adds r0, 0x2
|
|
strh r4, [r0]
|
|
adds r0, 0x2
|
|
strh r4, [r0]
|
|
ldr r1, _0810D0AC @ =REG_BG0CNT
|
|
ldr r2, _0810D0B0 @ =0x00001f0c
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
movs r1, 0x8A
|
|
lsls r1, 5
|
|
adds r0, r1, 0
|
|
strh r0, [r6]
|
|
ldr r0, _0810D0B4 @ =gCaveTransitionPalette_White
|
|
movs r1, 0xE0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
ldr r0, _0810D0B8 @ =gCaveTransitionPalette_Black
|
|
movs r1, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
ldr r1, _0810D0BC @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _0810D0C0 @ =sub_810D0C4
|
|
str r1, [r0]
|
|
movs r2, 0
|
|
movs r1, 0x10
|
|
strh r1, [r0, 0x8]
|
|
strh r2, [r0, 0xA]
|
|
strh r2, [r0, 0xC]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810D098: .4byte gCaveTransitionTiles
|
|
_0810D09C: .4byte 0x0600c000
|
|
_0810D0A0: .4byte gCaveTransitionTilemap
|
|
_0810D0A4: .4byte 0x0600f800
|
|
_0810D0A8: .4byte REG_BLDCNT
|
|
_0810D0AC: .4byte REG_BG0CNT
|
|
_0810D0B0: .4byte 0x00001f0c
|
|
_0810D0B4: .4byte gCaveTransitionPalette_White
|
|
_0810D0B8: .4byte gCaveTransitionPalette_Black
|
|
_0810D0BC: .4byte gTasks
|
|
_0810D0C0: .4byte sub_810D0C4
|
|
thumb_func_end sub_810D028
|
|
|
|
thumb_func_start sub_810D0C4
|
|
sub_810D0C4: @ 810D0C4
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0810D0F8 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r3, r1, r2
|
|
ldrh r1, [r3, 0xC]
|
|
cmp r1, 0xF
|
|
bhi _0810D100
|
|
adds r2, r1, 0x1
|
|
adds r0, r2, 0x1
|
|
strh r0, [r3, 0xC]
|
|
movs r0, 0xF
|
|
subs r0, r1
|
|
lsls r0, 1
|
|
ldr r1, _0810D0FC @ =gUnknown_083F808C
|
|
adds r0, r1
|
|
lsls r2, 17
|
|
lsrs r2, 16
|
|
movs r1, 0xE0
|
|
bl LoadPalette
|
|
b _0810D114
|
|
.align 2, 0
|
|
_0810D0F8: .4byte gTasks
|
|
_0810D0FC: .4byte gUnknown_083F808C
|
|
_0810D100:
|
|
ldr r1, _0810D118 @ =REG_BLDALPHA
|
|
ldr r2, _0810D11C @ =0x00001010
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
subs r1, 0x2
|
|
ldr r2, _0810D120 @ =0x00003e41
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r0, _0810D124 @ =sub_810D128
|
|
str r0, [r3]
|
|
_0810D114:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810D118: .4byte REG_BLDALPHA
|
|
_0810D11C: .4byte 0x00001010
|
|
_0810D120: .4byte 0x00003e41
|
|
_0810D124: .4byte sub_810D128
|
|
thumb_func_end sub_810D0C4
|
|
|
|
thumb_func_start sub_810D128
|
|
sub_810D128: @ 810D128
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0810D158 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r3, r1, r2
|
|
ldrh r0, [r3, 0xA]
|
|
movs r1, 0x10
|
|
subs r1, r0
|
|
lsls r1, 16
|
|
movs r2, 0x80
|
|
lsls r2, 21
|
|
adds r0, r1, r2
|
|
lsrs r0, 16
|
|
ldr r2, _0810D15C @ =REG_BLDALPHA
|
|
strh r0, [r2]
|
|
cmp r1, 0
|
|
beq _0810D160
|
|
ldrh r0, [r3, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0xA]
|
|
b _0810D172
|
|
.align 2, 0
|
|
_0810D158: .4byte gTasks
|
|
_0810D15C: .4byte REG_BLDALPHA
|
|
_0810D160:
|
|
ldr r0, _0810D178 @ =gCaveTransitionPalette_Black
|
|
movs r1, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
ldr r0, _0810D17C @ =gMain
|
|
ldr r0, [r0, 0x8]
|
|
bl SetMainCallback2
|
|
_0810D172:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810D178: .4byte gCaveTransitionPalette_Black
|
|
_0810D17C: .4byte gMain
|
|
thumb_func_end sub_810D128
|
|
|
|
thumb_func_start sub_810D180
|
|
sub_810D180: @ 810D180
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
bl HealPlayerParty
|
|
ldr r4, _0810D1A0 @ =0x00000804
|
|
adds r0, r4, 0
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x1
|
|
bne _0810D1A8
|
|
ldr r0, _0810D1A4 @ =gUnknown_02039324
|
|
strb r1, [r0]
|
|
b _0810D1B4
|
|
.align 2, 0
|
|
_0810D1A0: .4byte 0x00000804
|
|
_0810D1A4: .4byte gUnknown_02039324
|
|
_0810D1A8:
|
|
ldr r1, _0810D1E8 @ =gUnknown_02039324
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl FlagSet
|
|
_0810D1B4:
|
|
movs r0, 0x1
|
|
bl sub_8053108
|
|
cmp r0, 0
|
|
bne _0810D1D4
|
|
ldr r2, _0810D1EC @ =gSaveBlock2
|
|
ldrh r1, [r2, 0xE]
|
|
lsls r1, 16
|
|
ldrb r0, [r2, 0x10]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x11]
|
|
orrs r1, r0
|
|
movs r0, 0x1
|
|
bl sav12_xor_set
|
|
_0810D1D4:
|
|
bl sub_8047A10
|
|
ldr r0, _0810D1EC @ =gSaveBlock2
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r0, 0
|
|
bne _0810D1F0
|
|
movs r0, 0x1
|
|
bl sub_80537CC
|
|
b _0810D1F6
|
|
.align 2, 0
|
|
_0810D1E8: .4byte gUnknown_02039324
|
|
_0810D1EC: .4byte gSaveBlock2
|
|
_0810D1F0:
|
|
movs r0, 0x2
|
|
bl sub_80537CC
|
|
_0810D1F6:
|
|
movs r6, 0
|
|
movs r5, 0
|
|
mov r7, sp
|
|
_0810D1FC:
|
|
movs r0, 0x64
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, _0810D260 @ =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x5
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0810D23A
|
|
adds r0, r4, 0
|
|
movs r1, 0x6
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0810D23A
|
|
adds r0, r4, 0
|
|
movs r1, 0x43
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0810D23A
|
|
movs r0, 0x1
|
|
strb r0, [r7]
|
|
adds r0, r4, 0
|
|
movs r1, 0x43
|
|
mov r2, sp
|
|
bl SetMonData
|
|
movs r6, 0x1
|
|
_0810D23A:
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _0810D1FC
|
|
cmp r6, 0x1
|
|
bne _0810D250
|
|
movs r0, 0x2A
|
|
bl sav12_xor_increment
|
|
ldr r0, _0810D264 @ =0x0000083b
|
|
bl FlagSet
|
|
_0810D250:
|
|
ldr r0, _0810D268 @ =sub_8141F90
|
|
bl SetMainCallback2
|
|
movs r0, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810D260: .4byte gPlayerParty
|
|
_0810D264: .4byte 0x0000083b
|
|
_0810D268: .4byte sub_8141F90
|
|
thumb_func_end sub_810D180
|
|
|
|
thumb_func_start sp0C8_whiteout_maybe
|
|
sp0C8_whiteout_maybe: @ 810D26C
|
|
push {lr}
|
|
ldr r0, _0810D27C @ =c2_whiteout
|
|
bl SetMainCallback2
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810D27C: .4byte c2_whiteout
|
|
thumb_func_end sp0C8_whiteout_maybe
|
|
|
|
thumb_func_start sub_810D280
|
|
sub_810D280: @ 810D280
|
|
push {r4,lr}
|
|
ldr r0, _0810D2A4 @ =0x00004024
|
|
bl VarGet
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
ldr r0, _0810D2A8 @ =0x00004025
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r4, 16
|
|
orrs r4, r0
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810D2A4: .4byte 0x00004024
|
|
_0810D2A8: .4byte 0x00004025
|
|
thumb_func_end sub_810D280
|
|
|
|
thumb_func_start sub_810D2AC
|
|
sub_810D2AC: @ 810D2AC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _0810D2CC @ =0x00004024
|
|
lsrs r1, r4, 16
|
|
bl VarSet
|
|
ldr r0, _0810D2D0 @ =0x00004025
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r1, r4, 0
|
|
bl VarSet
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810D2CC: .4byte 0x00004024
|
|
_0810D2D0: .4byte 0x00004025
|
|
thumb_func_end sub_810D2AC
|
|
|
|
thumb_func_start unref_sub_810D2D4
|
|
unref_sub_810D2D4: @ 810D2D4
|
|
push {r4,lr}
|
|
bl Random
|
|
adds r4, r0, 0
|
|
bl Random
|
|
lsls r4, 16
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
orrs r4, r0
|
|
adds r0, r4, 0
|
|
bl sub_810D2AC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end unref_sub_810D2D4
|
|
|
|
thumb_func_start sub_810D2F4
|
|
sub_810D2F4: @ 810D2F4
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
bl sub_810D280
|
|
adds r1, r0, 0
|
|
cmp r4, 0
|
|
beq _0810D318
|
|
ldr r3, _0810D324 @ =0x41c64e6d
|
|
ldr r2, _0810D328 @ =0x00003039
|
|
_0810D308:
|
|
adds r0, r1, 0
|
|
muls r0, r3
|
|
adds r1, r0, r2
|
|
subs r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0
|
|
bne _0810D308
|
|
_0810D318:
|
|
adds r0, r1, 0
|
|
bl sub_810D2AC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810D324: .4byte 0x41c64e6d
|
|
_0810D328: .4byte 0x00003039
|
|
thumb_func_end sub_810D2F4
|
|
|
|
thumb_func_start sub_810D32C
|
|
sub_810D32C: @ 810D32C
|
|
push {r4-r6,lr}
|
|
bl sub_810D280
|
|
lsrs r6, r0, 16
|
|
movs r5, 0
|
|
_0810D336:
|
|
movs r0, 0x64
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, _0810D360 @ =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0810D368
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl GetMonData
|
|
ldr r1, _0810D364 @ =0x0000ffff
|
|
ands r1, r0
|
|
cmp r1, r6
|
|
bne _0810D368
|
|
movs r0, 0x1
|
|
b _0810D370
|
|
.align 2, 0
|
|
_0810D360: .4byte gPlayerParty
|
|
_0810D364: .4byte 0x0000ffff
|
|
_0810D368:
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _0810D336
|
|
movs r0, 0
|
|
_0810D370:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810D32C
|
|
|
|
thumb_func_start sub_810D378
|
|
sub_810D378: @ 810D378
|
|
push {lr}
|
|
bl get_map_light_from_warp0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl is_light_level_1_2_3_5_or_6
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0810D3BE
|
|
bl RtcCalcLocalTime
|
|
ldr r1, _0810D3AC @ =gUnknown_083F8340
|
|
ldr r0, _0810D3B0 @ =gLocalTime
|
|
ldrb r0, [r0, 0x2]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0810D3B8
|
|
ldr r0, _0810D3B4 @ =0x0000083a
|
|
bl FlagSet
|
|
b _0810D3BE
|
|
.align 2, 0
|
|
_0810D3AC: .4byte gUnknown_083F8340
|
|
_0810D3B0: .4byte gLocalTime
|
|
_0810D3B4: .4byte 0x0000083a
|
|
_0810D3B8:
|
|
ldr r0, _0810D3C4 @ =0x0000083a
|
|
bl FlagReset
|
|
_0810D3BE:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810D3C4: .4byte 0x0000083a
|
|
thumb_func_end sub_810D378
|
|
|
|
thumb_func_start sub_810D3C8
|
|
sub_810D3C8: @ 810D3C8
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl sub_807DDFC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0810D3E2
|
|
bl EnableBothScriptContexts
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_0810D3E2:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_810D3C8
|
|
|
|
thumb_func_start sub_810D3E8
|
|
sub_810D3E8: @ 810D3E8
|
|
push {lr}
|
|
ldr r0, _0810D3F8 @ =sub_810D3C8
|
|
movs r1, 0x50
|
|
bl CreateTask
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810D3F8: .4byte sub_810D3C8
|
|
thumb_func_end sub_810D3E8
|
|
|
|
thumb_func_start sub_810D3FC
|
|
sub_810D3FC: @ 810D3FC
|
|
push {lr}
|
|
ldr r0, _0810D40C @ =0x00004049
|
|
bl GetVarPointer
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810D40C: .4byte 0x00004049
|
|
thumb_func_end sub_810D3FC
|
|
|
|
thumb_func_start UpdateBirchState
|
|
UpdateBirchState: @ 810D410
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
ldr r0, _0810D438 @ =0x00004049
|
|
bl GetVarPointer
|
|
adds r5, r0, 0
|
|
ldrh r0, [r5]
|
|
adds r4, r0
|
|
strh r4, [r5]
|
|
ldrh r0, [r5]
|
|
movs r1, 0x7
|
|
bl __umodsi3
|
|
strh r0, [r5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810D438: .4byte 0x00004049
|
|
thumb_func_end UpdateBirchState
|
|
|
|
thumb_func_start ScriptGetPokedexInfo
|
|
ScriptGetPokedexInfo: @ 810D43C
|
|
push {lr}
|
|
ldr r0, _0810D458 @ =gUnknown_0202E8CC
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _0810D460
|
|
movs r0, 0
|
|
bl GetHoennPokedexCount
|
|
ldr r1, _0810D45C @ =gUnknown_0202E8CE
|
|
strh r0, [r1]
|
|
movs r0, 0x1
|
|
bl GetHoennPokedexCount
|
|
b _0810D470
|
|
.align 2, 0
|
|
_0810D458: .4byte gUnknown_0202E8CC
|
|
_0810D45C: .4byte gUnknown_0202E8CE
|
|
_0810D460:
|
|
movs r0, 0
|
|
bl GetNationalPokedexCount
|
|
ldr r1, _0810D480 @ =gUnknown_0202E8CE
|
|
strh r0, [r1]
|
|
movs r0, 0x1
|
|
bl GetNationalPokedexCount
|
|
_0810D470:
|
|
ldr r1, _0810D484 @ =gUnknown_0202E8D0
|
|
strh r0, [r1]
|
|
bl IsNationalPokedex
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810D480: .4byte gUnknown_0202E8CE
|
|
_0810D484: .4byte gUnknown_0202E8D0
|
|
thumb_func_end ScriptGetPokedexInfo
|
|
|
|
thumb_func_start GetPokedexRatingText
|
|
GetPokedexRatingText: @ 810D488
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x9
|
|
bhi _0810D494
|
|
b _0810D5EC
|
|
_0810D494:
|
|
cmp r0, 0x13
|
|
bhi _0810D4A0
|
|
ldr r0, _0810D49C @ =gUnknown_081C456A
|
|
b _0810D5F6
|
|
.align 2, 0
|
|
_0810D49C: .4byte gUnknown_081C456A
|
|
_0810D4A0:
|
|
cmp r0, 0x1D
|
|
bhi _0810D4AC
|
|
ldr r0, _0810D4A8 @ =gUnknown_081C45B0
|
|
b _0810D5F6
|
|
.align 2, 0
|
|
_0810D4A8: .4byte gUnknown_081C45B0
|
|
_0810D4AC:
|
|
cmp r0, 0x27
|
|
bhi _0810D4B8
|
|
ldr r0, _0810D4B4 @ =gUnknown_081C45F9
|
|
b _0810D5F6
|
|
.align 2, 0
|
|
_0810D4B4: .4byte gUnknown_081C45F9
|
|
_0810D4B8:
|
|
cmp r0, 0x31
|
|
bhi _0810D4C4
|
|
ldr r0, _0810D4C0 @ =gUnknown_081C4648
|
|
b _0810D5F6
|
|
.align 2, 0
|
|
_0810D4C0: .4byte gUnknown_081C4648
|
|
_0810D4C4:
|
|
cmp r0, 0x3B
|
|
bhi _0810D4D0
|
|
ldr r0, _0810D4CC @ =gUnknown_081C467E
|
|
b _0810D5F6
|
|
.align 2, 0
|
|
_0810D4CC: .4byte gUnknown_081C467E
|
|
_0810D4D0:
|
|
cmp r0, 0x45
|
|
bhi _0810D4DC
|
|
ldr r0, _0810D4D8 @ =gUnknown_081C46B9
|
|
b _0810D5F6
|
|
.align 2, 0
|
|
_0810D4D8: .4byte gUnknown_081C46B9
|
|
_0810D4DC:
|
|
cmp r0, 0x4F
|
|
bhi _0810D4E8
|
|
ldr r0, _0810D4E4 @ =gUnknown_081C46FE
|
|
b _0810D5F6
|
|
.align 2, 0
|
|
_0810D4E4: .4byte gUnknown_081C46FE
|
|
_0810D4E8:
|
|
cmp r0, 0x59
|
|
bhi _0810D4F4
|
|
ldr r0, _0810D4F0 @ =gUnknown_081C4747
|
|
b _0810D5F6
|
|
.align 2, 0
|
|
_0810D4F0: .4byte gUnknown_081C4747
|
|
_0810D4F4:
|
|
cmp r0, 0x63
|
|
bhi _0810D500
|
|
ldr r0, _0810D4FC @ =gUnknown_081C4780
|
|
b _0810D5F6
|
|
.align 2, 0
|
|
_0810D4FC: .4byte gUnknown_081C4780
|
|
_0810D500:
|
|
cmp r0, 0x6D
|
|
bhi _0810D50C
|
|
ldr r0, _0810D508 @ =gUnknown_081C47DF
|
|
b _0810D5F6
|
|
.align 2, 0
|
|
_0810D508: .4byte gUnknown_081C47DF
|
|
_0810D50C:
|
|
cmp r0, 0x77
|
|
bhi _0810D518
|
|
ldr r0, _0810D514 @ =gUnknown_081C4828
|
|
b _0810D5F6
|
|
.align 2, 0
|
|
_0810D514: .4byte gUnknown_081C4828
|
|
_0810D518:
|
|
cmp r0, 0x81
|
|
bhi _0810D524
|
|
ldr r0, _0810D520 @ =gUnknown_081C4863
|
|
b _0810D5F6
|
|
.align 2, 0
|
|
_0810D520: .4byte gUnknown_081C4863
|
|
_0810D524:
|
|
cmp r0, 0x8B
|
|
bhi _0810D530
|
|
ldr r0, _0810D52C @ =gUnknown_081C489C
|
|
b _0810D5F6
|
|
.align 2, 0
|
|
_0810D52C: .4byte gUnknown_081C489C
|
|
_0810D530:
|
|
cmp r0, 0x95
|
|
bhi _0810D53C
|
|
ldr r0, _0810D538 @ =gUnknown_081C48EB
|
|
b _0810D5F6
|
|
.align 2, 0
|
|
_0810D538: .4byte gUnknown_081C48EB
|
|
_0810D53C:
|
|
cmp r0, 0x9F
|
|
bhi _0810D548
|
|
ldr r0, _0810D544 @ =gUnknown_081C4936
|
|
b _0810D5F6
|
|
.align 2, 0
|
|
_0810D544: .4byte gUnknown_081C4936
|
|
_0810D548:
|
|
cmp r0, 0xA9
|
|
bhi _0810D554
|
|
ldr r0, _0810D550 @ =gUnknown_081C49A2
|
|
b _0810D5F6
|
|
.align 2, 0
|
|
_0810D550: .4byte gUnknown_081C49A2
|
|
_0810D554:
|
|
cmp r0, 0xB3
|
|
bhi _0810D560
|
|
ldr r0, _0810D55C @ =gUnknown_081C4A06
|
|
b _0810D5F6
|
|
.align 2, 0
|
|
_0810D55C: .4byte gUnknown_081C4A06
|
|
_0810D560:
|
|
cmp r0, 0xBD
|
|
bhi _0810D56C
|
|
ldr r0, _0810D568 @ =gUnknown_081C4A4F
|
|
b _0810D5F6
|
|
.align 2, 0
|
|
_0810D568: .4byte gUnknown_081C4A4F
|
|
_0810D56C:
|
|
cmp r0, 0xC7
|
|
bls _0810D5DA
|
|
cmp r0, 0xC8
|
|
bne _0810D5A8
|
|
ldr r0, _0810D5A4 @ =0x00000199
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1
|
|
bl sub_8090D90
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0810D5DA
|
|
movs r0, 0xCD
|
|
lsls r0, 1
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1
|
|
bl sub_8090D90
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0810D5DA
|
|
b _0810D5F4
|
|
.align 2, 0
|
|
_0810D5A4: .4byte 0x00000199
|
|
_0810D5A8:
|
|
cmp r0, 0xC9
|
|
bne _0810D5E8
|
|
ldr r0, _0810D5E0 @ =0x00000199
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1
|
|
bl sub_8090D90
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0810D5F4
|
|
movs r0, 0xCD
|
|
lsls r0, 1
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1
|
|
bl sub_8090D90
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0810D5F4
|
|
_0810D5DA:
|
|
ldr r0, _0810D5E4 @ =gUnknown_081C4A91
|
|
b _0810D5F6
|
|
.align 2, 0
|
|
_0810D5E0: .4byte 0x00000199
|
|
_0810D5E4: .4byte gUnknown_081C4A91
|
|
_0810D5E8:
|
|
cmp r0, 0xCA
|
|
beq _0810D5F4
|
|
_0810D5EC:
|
|
ldr r0, _0810D5F0 @ =gUnknown_081C4520
|
|
b _0810D5F6
|
|
.align 2, 0
|
|
_0810D5F0: .4byte gUnknown_081C4520
|
|
_0810D5F4:
|
|
ldr r0, _0810D5FC @ =gUnknown_081C4ADA
|
|
_0810D5F6:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810D5FC: .4byte gUnknown_081C4ADA
|
|
thumb_func_end GetPokedexRatingText
|
|
|
|
thumb_func_start ShowPokedexRatingMessage
|
|
ShowPokedexRatingMessage: @ 810D600
|
|
push {lr}
|
|
ldr r0, _0810D614 @ =gUnknown_0202E8CC
|
|
ldrh r0, [r0]
|
|
bl GetPokedexRatingText
|
|
bl ShowFieldMessage
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810D614: .4byte gUnknown_0202E8CC
|
|
thumb_func_end ShowPokedexRatingMessage
|
|
|
|
thumb_func_start AccessHallOfFamePC
|
|
AccessHallOfFamePC: @ 810D618
|
|
push {lr}
|
|
ldr r0, _0810D628 @ =sub_81428CC
|
|
bl SetMainCallback2
|
|
bl ScriptContext2_Enable
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810D628: .4byte sub_81428CC
|
|
thumb_func_end AccessHallOfFamePC
|
|
|
|
thumb_func_start ReturnFromHallOfFamePC
|
|
ReturnFromHallOfFamePC: @ 810D62C
|
|
push {lr}
|
|
ldr r0, _0810D640 @ =c2_exit_to_overworld_2_switch
|
|
bl SetMainCallback2
|
|
ldr r1, _0810D644 @ =gUnknown_0300485C
|
|
ldr r0, _0810D648 @ =ReshowPCMenuAfterHallOfFamePC
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810D640: .4byte c2_exit_to_overworld_2_switch
|
|
_0810D644: .4byte gUnknown_0300485C
|
|
_0810D648: .4byte ReshowPCMenuAfterHallOfFamePC
|
|
thumb_func_end ReturnFromHallOfFamePC
|
|
|
|
thumb_func_start ReshowPCMenuAfterHallOfFamePC
|
|
ReshowPCMenuAfterHallOfFamePC: @ 810D64C
|
|
push {lr}
|
|
sub sp, 0x4
|
|
bl ScriptContext2_Enable
|
|
bl sub_8053E90
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
bl sp109_CreatePCMenu
|
|
bl sub_80B5838
|
|
ldr r0, _0810D680 @ =sub_810D684
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810D680: .4byte sub_810D684
|
|
thumb_func_end ReshowPCMenuAfterHallOfFamePC
|
|
|
|
thumb_func_start sub_810D684
|
|
sub_810D684: @ 810D684
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _0810D6A0 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0810D69C
|
|
adds r0, r2, 0
|
|
bl DestroyTask
|
|
_0810D69C:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810D6A0: .4byte gPaletteFade
|
|
thumb_func_end sub_810D684
|
|
|
|
thumb_func_start sub_810D6A4
|
|
sub_810D6A4: @ 810D6A4
|
|
push {lr}
|
|
ldr r0, _0810D6B4 @ =sub_8145D88
|
|
bl SetMainCallback2
|
|
bl ScriptContext2_Enable
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810D6B4: .4byte sub_8145D88
|
|
thumb_func_end sub_810D6A4
|
|
|
|
thumb_func_start sub_810D6B8
|
|
sub_810D6B8: @ 810D6B8
|
|
push {lr}
|
|
ldr r0, _0810D6D0 @ =gMain
|
|
ldr r1, _0810D6D4 @ =c2_exit_to_overworld_2_switch
|
|
str r1, [r0, 0x8]
|
|
ldr r0, _0810D6D8 @ =Cb2_ViewWallClock
|
|
bl SetMainCallback2
|
|
bl ScriptContext2_Enable
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810D6D0: .4byte gMain
|
|
_0810D6D4: .4byte c2_exit_to_overworld_2_switch
|
|
_0810D6D8: .4byte Cb2_ViewWallClock
|
|
thumb_func_end sub_810D6B8
|
|
|
|
thumb_func_start ResetCyclingRoadChallengeData
|
|
ResetCyclingRoadChallengeData: @ 810D6DC
|
|
ldr r0, _0810D6F0 @ =gUnknown_02039250
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, _0810D6F4 @ =gUnknown_02039251
|
|
strb r1, [r0]
|
|
ldr r1, _0810D6F8 @ =gUnknown_02039254
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0810D6F0: .4byte gUnknown_02039250
|
|
_0810D6F4: .4byte gUnknown_02039251
|
|
_0810D6F8: .4byte gUnknown_02039254
|
|
thumb_func_end ResetCyclingRoadChallengeData
|
|
|
|
thumb_func_start BeginCyclingRoadChallenge
|
|
BeginCyclingRoadChallenge: @ 810D6FC
|
|
ldr r1, _0810D714 @ =gUnknown_02039250
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, _0810D718 @ =gUnknown_02039251
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r1, _0810D71C @ =gUnknown_02039254
|
|
ldr r0, _0810D720 @ =gMain
|
|
ldr r0, [r0, 0x20]
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0810D714: .4byte gUnknown_02039250
|
|
_0810D718: .4byte gUnknown_02039251
|
|
_0810D71C: .4byte gUnknown_02039254
|
|
_0810D720: .4byte gMain
|
|
thumb_func_end BeginCyclingRoadChallenge
|
|
|
|
thumb_func_start GetPlayerAvatarBike
|
|
GetPlayerAvatarBike: @ 810D724
|
|
push {lr}
|
|
movs r0, 0x4
|
|
bl TestPlayerAvatarFlags
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0810D736
|
|
movs r0, 0x1
|
|
b _0810D748
|
|
_0810D736:
|
|
movs r0, 0x2
|
|
bl TestPlayerAvatarFlags
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0810D746
|
|
movs r0, 0
|
|
b _0810D748
|
|
_0810D746:
|
|
movs r0, 0x2
|
|
_0810D748:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetPlayerAvatarBike
|
|
|
|
thumb_func_start DetermineCyclingRoadResults
|
|
DetermineCyclingRoadResults: @ 810D74C
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
cmp r6, 0x63
|
|
bhi _0810D778
|
|
ldr r4, _0810D770 @ =gStringVar1
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r1, _0810D774 @ =gOtherText_Times
|
|
adds r0, r4, 0
|
|
bl StringAppend
|
|
b _0810D780
|
|
.align 2, 0
|
|
_0810D770: .4byte gStringVar1
|
|
_0810D774: .4byte gOtherText_Times
|
|
_0810D778:
|
|
ldr r0, _0810D7CC @ =gStringVar1
|
|
ldr r1, _0810D7D0 @ =gOtherText_99Times
|
|
bl StringCopy
|
|
_0810D780:
|
|
ldr r0, _0810D7D4 @ =0x00000e0f
|
|
cmp r7, r0
|
|
bhi _0810D7E0
|
|
ldr r4, _0810D7D8 @ =gStringVar2
|
|
adds r0, r7, 0
|
|
movs r1, 0x3C
|
|
bl __udivsi3
|
|
adds r1, r0, 0
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
movs r0, 0xAD
|
|
strb r0, [r4, 0x2]
|
|
adds r5, r4, 0x3
|
|
adds r0, r7, 0
|
|
movs r1, 0x3C
|
|
bl __umodsi3
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
movs r1, 0x3C
|
|
bl __udivsi3
|
|
adds r1, r0, 0
|
|
adds r0, r5, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r1, _0810D7DC @ =gOtherText_Seconds
|
|
adds r0, r4, 0
|
|
bl StringAppend
|
|
b _0810D7E8
|
|
.align 2, 0
|
|
_0810D7CC: .4byte gStringVar1
|
|
_0810D7D0: .4byte gOtherText_99Times
|
|
_0810D7D4: .4byte 0x00000e0f
|
|
_0810D7D8: .4byte gStringVar2
|
|
_0810D7DC: .4byte gOtherText_Seconds
|
|
_0810D7E0:
|
|
ldr r0, _0810D7F4 @ =gStringVar2
|
|
ldr r1, _0810D7F8 @ =gOtherText_1Minute
|
|
bl StringCopy
|
|
_0810D7E8:
|
|
movs r4, 0
|
|
cmp r6, 0
|
|
bne _0810D7FC
|
|
movs r4, 0x5
|
|
b _0810D81A
|
|
.align 2, 0
|
|
_0810D7F4: .4byte gStringVar2
|
|
_0810D7F8: .4byte gOtherText_1Minute
|
|
_0810D7FC:
|
|
cmp r6, 0x3
|
|
bhi _0810D804
|
|
movs r4, 0x4
|
|
b _0810D81A
|
|
_0810D804:
|
|
cmp r6, 0x9
|
|
bhi _0810D80C
|
|
movs r4, 0x3
|
|
b _0810D81A
|
|
_0810D80C:
|
|
cmp r6, 0x13
|
|
bhi _0810D814
|
|
movs r4, 0x2
|
|
b _0810D81A
|
|
_0810D814:
|
|
cmp r6, 0x63
|
|
bhi _0810D81A
|
|
movs r4, 0x1
|
|
_0810D81A:
|
|
adds r0, r7, 0
|
|
movs r1, 0x3C
|
|
bl __udivsi3
|
|
cmp r0, 0xA
|
|
bhi _0810D82A
|
|
adds r0, r4, 0x5
|
|
b _0810D848
|
|
_0810D82A:
|
|
cmp r0, 0xF
|
|
bhi _0810D832
|
|
adds r0, r4, 0x4
|
|
b _0810D848
|
|
_0810D832:
|
|
cmp r0, 0x14
|
|
bhi _0810D83A
|
|
adds r0, r4, 0x3
|
|
b _0810D848
|
|
_0810D83A:
|
|
cmp r0, 0x28
|
|
bhi _0810D842
|
|
adds r0, r4, 0x2
|
|
b _0810D848
|
|
_0810D842:
|
|
cmp r0, 0x3B
|
|
bhi _0810D84C
|
|
adds r0, r4, 0x1
|
|
_0810D848:
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_0810D84C:
|
|
ldr r0, _0810D858 @ =gScriptResult
|
|
strh r4, [r0]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810D858: .4byte gScriptResult
|
|
thumb_func_end DetermineCyclingRoadResults
|
|
|
|
thumb_func_start FinishCyclingRoadChallenge
|
|
FinishCyclingRoadChallenge: @ 810D85C
|
|
push {r4,r5,lr}
|
|
ldr r0, _0810D880 @ =gMain
|
|
ldr r1, _0810D884 @ =gUnknown_02039254
|
|
ldr r4, [r0, 0x20]
|
|
ldr r0, [r1]
|
|
subs r4, r0
|
|
ldr r5, _0810D888 @ =gUnknown_02039251
|
|
ldrb r1, [r5]
|
|
adds r0, r4, 0
|
|
bl DetermineCyclingRoadResults
|
|
ldrb r1, [r5]
|
|
adds r0, r4, 0
|
|
bl RecordCyclingRoadResults
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810D880: .4byte gMain
|
|
_0810D884: .4byte gUnknown_02039254
|
|
_0810D888: .4byte gUnknown_02039251
|
|
thumb_func_end FinishCyclingRoadChallenge
|
|
|
|
thumb_func_start RecordCyclingRoadResults
|
|
RecordCyclingRoadResults: @ 810D88C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r5, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
ldr r6, _0810D8E0 @ =0x00004028
|
|
adds r0, r6, 0
|
|
bl VarGet
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
ldr r7, _0810D8E4 @ =0x00004029
|
|
adds r0, r7, 0
|
|
bl VarGet
|
|
lsls r0, 16
|
|
adds r4, r0
|
|
cmp r4, r5
|
|
bhi _0810D8BC
|
|
cmp r4, 0
|
|
bne _0810D8D6
|
|
_0810D8BC:
|
|
lsls r1, r5, 16
|
|
lsrs r1, 16
|
|
adds r0, r6, 0
|
|
bl VarSet
|
|
lsrs r1, r5, 16
|
|
adds r0, r7, 0
|
|
bl VarSet
|
|
ldr r0, _0810D8E8 @ =0x00004027
|
|
mov r1, r8
|
|
bl VarSet
|
|
_0810D8D6:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810D8E0: .4byte 0x00004028
|
|
_0810D8E4: .4byte 0x00004029
|
|
_0810D8E8: .4byte 0x00004027
|
|
thumb_func_end RecordCyclingRoadResults
|
|
|
|
thumb_func_start GetRecordedCyclingRoadResults
|
|
GetRecordedCyclingRoadResults: @ 810D8EC
|
|
push {r4,lr}
|
|
ldr r0, _0810D920 @ =0x00004028
|
|
bl VarGet
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
ldr r0, _0810D924 @ =0x00004029
|
|
bl VarGet
|
|
lsls r0, 16
|
|
adds r4, r0
|
|
cmp r4, 0
|
|
beq _0810D92C
|
|
ldr r0, _0810D928 @ =0x00004027
|
|
bl VarGet
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl DetermineCyclingRoadResults
|
|
movs r0, 0x1
|
|
b _0810D92E
|
|
.align 2, 0
|
|
_0810D920: .4byte 0x00004028
|
|
_0810D924: .4byte 0x00004029
|
|
_0810D928: .4byte 0x00004027
|
|
_0810D92C:
|
|
movs r0, 0
|
|
_0810D92E:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetRecordedCyclingRoadResults
|
|
|
|
thumb_func_start UpdateCyclingRoadState
|
|
UpdateCyclingRoadState: @ 810D934
|
|
push {r4,lr}
|
|
ldr r0, _0810D974 @ =gUnknown_020297F0
|
|
ldrh r1, [r0]
|
|
ldr r0, _0810D978 @ =0x00000c1d
|
|
cmp r1, r0
|
|
beq _0810D96C
|
|
ldr r4, _0810D97C @ =0x000040a9
|
|
adds r0, r4, 0
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x2
|
|
beq _0810D95E
|
|
adds r0, r4, 0
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x3
|
|
bne _0810D96C
|
|
_0810D95E:
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl VarSet
|
|
movs r0, 0
|
|
bl sav1_set_battle_music_maybe
|
|
_0810D96C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810D974: .4byte gUnknown_020297F0
|
|
_0810D978: .4byte 0x00000c1d
|
|
_0810D97C: .4byte 0x000040a9
|
|
thumb_func_end UpdateCyclingRoadState
|
|
|
|
thumb_func_start SetSSTidalFlag
|
|
SetSSTidalFlag: @ 810D980
|
|
push {lr}
|
|
ldr r0, _0810D998 @ =0x0000082d
|
|
bl FlagSet
|
|
ldr r0, _0810D99C @ =0x0000404a
|
|
bl GetVarPointer
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810D998: .4byte 0x0000082d
|
|
_0810D99C: .4byte 0x0000404a
|
|
thumb_func_end SetSSTidalFlag
|
|
|
|
thumb_func_start ResetSSTidalFlag
|
|
ResetSSTidalFlag: @ 810D9A0
|
|
push {lr}
|
|
ldr r0, _0810D9AC @ =0x0000082d
|
|
bl FlagReset
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810D9AC: .4byte 0x0000082d
|
|
thumb_func_end ResetSSTidalFlag
|
|
|
|
thumb_func_start sub_810D9B0
|
|
sub_810D9B0: @ 810D9B0
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r0, _0810D9DC @ =0x0000082d
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0810D9D6
|
|
ldr r0, _0810D9E0 @ =0x0000404a
|
|
bl GetVarPointer
|
|
ldrh r1, [r0]
|
|
adds r1, r4, r1
|
|
strh r1, [r0]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
cmp r1, 0xCC
|
|
bhi _0810D9E4
|
|
_0810D9D6:
|
|
movs r0, 0
|
|
b _0810D9E6
|
|
.align 2, 0
|
|
_0810D9DC: .4byte 0x0000082d
|
|
_0810D9E0: .4byte 0x0000404a
|
|
_0810D9E4:
|
|
movs r0, 0x1
|
|
_0810D9E6:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810D9B0
|
|
|
|
thumb_func_start sub_810D9EC
|
|
sub_810D9EC: @ 810D9EC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
mov r8, r0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
adds r7, r3, 0
|
|
ldr r0, _0810DA1C @ =0x0000404a
|
|
bl GetVarPointer
|
|
adds r4, r0, 0
|
|
ldr r0, _0810DA20 @ =0x000040b4
|
|
bl GetVarPointer
|
|
ldrh r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, 0x9
|
|
bhi _0810DAB2
|
|
lsls r0, 2
|
|
ldr r1, _0810DA24 @ =_0810DA28
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0810DA1C: .4byte 0x0000404a
|
|
_0810DA20: .4byte 0x000040b4
|
|
_0810DA24: .4byte _0810DA28
|
|
.align 2, 0
|
|
_0810DA28:
|
|
.4byte _0810DA50
|
|
.4byte _0810DA60
|
|
.4byte _0810DA54
|
|
.4byte _0810DA58
|
|
.4byte _0810DA58
|
|
.4byte _0810DA5C
|
|
.4byte _0810DA88
|
|
.4byte _0810DA50
|
|
.4byte _0810DA54
|
|
.4byte _0810DA5C
|
|
_0810DA50:
|
|
movs r0, 0x1
|
|
b _0810DABE
|
|
_0810DA54:
|
|
movs r0, 0x4
|
|
b _0810DABE
|
|
_0810DA58:
|
|
movs r0, 0x2
|
|
b _0810DABE
|
|
_0810DA5C:
|
|
movs r0, 0x3
|
|
b _0810DABE
|
|
_0810DA60:
|
|
ldrh r0, [r4]
|
|
cmp r0, 0x3B
|
|
bhi _0810DA70
|
|
movs r0, 0x31
|
|
strb r0, [r5]
|
|
ldrh r0, [r4]
|
|
adds r0, 0x13
|
|
b _0810DAB0
|
|
_0810DA70:
|
|
cmp r0, 0x8B
|
|
bhi _0810DA7E
|
|
movs r0, 0x30
|
|
strb r0, [r5]
|
|
ldrh r0, [r4]
|
|
subs r0, 0x3C
|
|
b _0810DAB0
|
|
_0810DA7E:
|
|
movs r0, 0x2F
|
|
strb r0, [r5]
|
|
ldrh r0, [r4]
|
|
subs r0, 0x8C
|
|
b _0810DAB0
|
|
_0810DA88:
|
|
ldrh r0, [r4]
|
|
cmp r0, 0x41
|
|
bhi _0810DA98
|
|
movs r0, 0x2F
|
|
strb r0, [r5]
|
|
ldrh r1, [r4]
|
|
movs r0, 0x41
|
|
b _0810DAAE
|
|
_0810DA98:
|
|
cmp r0, 0x91
|
|
bhi _0810DAA6
|
|
movs r0, 0x30
|
|
strb r0, [r5]
|
|
ldrh r1, [r4]
|
|
movs r0, 0x91
|
|
b _0810DAAE
|
|
_0810DAA6:
|
|
movs r0, 0x31
|
|
strb r0, [r5]
|
|
ldrh r1, [r4]
|
|
movs r0, 0xE0
|
|
_0810DAAE:
|
|
subs r0, r1
|
|
_0810DAB0:
|
|
strh r0, [r6]
|
|
_0810DAB2:
|
|
movs r0, 0
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
movs r0, 0x14
|
|
strh r0, [r7]
|
|
movs r0, 0
|
|
_0810DABE:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810D9EC
|
|
|
|
thumb_func_start GetLinkPartnerNames
|
|
GetLinkPartnerNames: @ 810DAC8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r6, 0
|
|
bl sub_8008218
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
bl sub_800820C
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bcs _0810DB12
|
|
ldr r0, _0810DB20 @ =gUnknown_083D1464
|
|
mov r8, r0
|
|
_0810DAEA:
|
|
cmp r7, r4
|
|
beq _0810DB08
|
|
lsls r0, r6, 2
|
|
add r0, r8
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 3
|
|
subs r1, r4
|
|
lsls r1, 2
|
|
ldr r2, _0810DB24 @ =gLinkPlayers + 0x8
|
|
adds r1, r2
|
|
bl StringCopy
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_0810DB08:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _0810DAEA
|
|
_0810DB12:
|
|
adds r0, r5, 0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810DB20: .4byte gUnknown_083D1464
|
|
_0810DB24: .4byte gLinkPlayers + 0x8
|
|
thumb_func_end GetLinkPartnerNames
|
|
|
|
thumb_func_start sub_810DB28
|
|
sub_810DB28: @ 810DB28
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x14
|
|
movs r7, 0
|
|
movs r0, 0
|
|
mov r9, r0
|
|
mov r8, r0
|
|
ldr r1, _0810DB74 @ =gUnknown_083F8358
|
|
add r0, sp, 0x8
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
add r4, sp, 0xC
|
|
ldr r1, _0810DB78 @ =gUnknown_083F835C
|
|
adds r0, r4, 0
|
|
movs r2, 0x8
|
|
bl memcpy
|
|
bl sub_8008218
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
bl player_get_direction_lower_nybble
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r0, 0
|
|
cmp r0, 0x2
|
|
beq _0810DB94
|
|
cmp r0, 0x2
|
|
bgt _0810DB7C
|
|
cmp r0, 0x1
|
|
beq _0810DBC0
|
|
b _0810DBD2
|
|
.align 2, 0
|
|
_0810DB74: .4byte gUnknown_083F8358
|
|
_0810DB78: .4byte gUnknown_083F835C
|
|
_0810DB7C:
|
|
cmp r1, 0x3
|
|
beq _0810DB86
|
|
cmp r1, 0x4
|
|
beq _0810DBA8
|
|
b _0810DBD2
|
|
_0810DB86:
|
|
movs r7, 0x2
|
|
ldr r1, _0810DB90 @ =gSaveBlock1
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
b _0810DBAE
|
|
.align 2, 0
|
|
_0810DB90: .4byte gSaveBlock1
|
|
_0810DB94:
|
|
movs r7, 0x1
|
|
ldr r0, _0810DBA4 @ =gSaveBlock1
|
|
ldrh r1, [r0]
|
|
mov r9, r1
|
|
ldrh r0, [r0, 0x2]
|
|
subs r0, 0x1
|
|
b _0810DBCC
|
|
.align 2, 0
|
|
_0810DBA4: .4byte gSaveBlock1
|
|
_0810DBA8:
|
|
ldr r1, _0810DBBC @ =gSaveBlock1
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
_0810DBAE:
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
ldrh r1, [r1, 0x2]
|
|
mov r8, r1
|
|
b _0810DBD2
|
|
.align 2, 0
|
|
_0810DBBC: .4byte gSaveBlock1
|
|
_0810DBC0:
|
|
movs r7, 0x3
|
|
ldr r0, _0810DBD8 @ =gSaveBlock1
|
|
ldrh r4, [r0]
|
|
mov r9, r4
|
|
ldrh r0, [r0, 0x2]
|
|
adds r0, 0x1
|
|
_0810DBCC:
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
_0810DBD2:
|
|
movs r6, 0
|
|
b _0810DC5C
|
|
.align 2, 0
|
|
_0810DBD8: .4byte gSaveBlock1
|
|
_0810DBDC:
|
|
cmp r10, r6
|
|
beq _0810DC56
|
|
ldr r1, _0810DC74 @ =gLinkPlayers
|
|
lsls r0, r6, 3
|
|
subs r0, r6
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x13]
|
|
movs r0, 0
|
|
bl sub_805983C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r1, sp
|
|
adds r1, r7
|
|
adds r1, 0x8
|
|
ldrb r1, [r1]
|
|
movs r2, 0xF0
|
|
subs r2, r6
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r5, r7, 1
|
|
mov r3, sp
|
|
adds r3, r5
|
|
adds r3, 0xC
|
|
ldrb r3, [r3]
|
|
lsls r3, 24
|
|
asrs r3, 24
|
|
mov r12, r3
|
|
mov r4, r9
|
|
lsls r3, r4, 16
|
|
asrs r3, 16
|
|
add r3, r12
|
|
adds r3, 0x7
|
|
lsls r3, 16
|
|
asrs r3, 16
|
|
mov r4, sp
|
|
adds r4, 0xD
|
|
adds r4, r5
|
|
ldrb r4, [r4]
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
mov r12, r4
|
|
mov r5, r8
|
|
lsls r4, r5, 16
|
|
asrs r4, 16
|
|
add r4, r12
|
|
adds r4, 0x7
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
str r4, [sp]
|
|
movs r4, 0
|
|
str r4, [sp, 0x4]
|
|
bl SpawnSpecialFieldObjectParametrized
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x4
|
|
bne _0810DC56
|
|
movs r7, 0
|
|
_0810DC56:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_0810DC5C:
|
|
ldr r0, _0810DC78 @ =gUnknown_0202E8CC
|
|
ldrh r0, [r0]
|
|
cmp r6, r0
|
|
bcc _0810DBDC
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810DC74: .4byte gLinkPlayers
|
|
_0810DC78: .4byte gUnknown_0202E8CC
|
|
thumb_func_end sub_810DB28
|
|
|
|
thumb_func_start sub_810DC7C
|
|
sub_810DC7C: @ 810DC7C
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
ldr r5, _0810DC9C @ =gUnknown_083F8364
|
|
_0810DC82:
|
|
ldr r0, _0810DCA0 @ =gUnknown_0202E8CC
|
|
ldrh r0, [r0]
|
|
cmp r4, r0
|
|
bne _0810DCA8
|
|
lsls r1, r4, 2
|
|
adds r1, r5
|
|
ldrb r0, [r1]
|
|
ldrb r1, [r1, 0x1]
|
|
ldr r2, _0810DCA4 @ =0x00000206
|
|
bl MapGridSetMetatileIdAt
|
|
b _0810DCB6
|
|
.align 2, 0
|
|
_0810DC9C: .4byte gUnknown_083F8364
|
|
_0810DCA0: .4byte gUnknown_0202E8CC
|
|
_0810DCA4: .4byte 0x00000206
|
|
_0810DCA8:
|
|
lsls r1, r4, 2
|
|
adds r1, r5
|
|
ldrb r0, [r1]
|
|
ldrb r1, [r1, 0x1]
|
|
ldr r2, _0810DCC8 @ =0x00000205
|
|
bl MapGridSetMetatileIdAt
|
|
_0810DCB6:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x2
|
|
bls _0810DC82
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810DCC8: .4byte 0x00000205
|
|
thumb_func_end sub_810DC7C
|
|
|
|
thumb_func_start sub_810DCCC
|
|
sub_810DCCC: @ 810DCCC
|
|
push {r4-r6,lr}
|
|
movs r5, 0xC
|
|
_0810DCD0:
|
|
movs r4, 0x7
|
|
adds r6, r5, 0x1
|
|
_0810DCD4:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl MapGridGetMetatileIdAt
|
|
ldr r1, _0810DCF0 @ =0xfffffde6
|
|
adds r0, r1
|
|
cmp r0, 0x37
|
|
bls _0810DCE6
|
|
b _0810DEC0
|
|
_0810DCE6:
|
|
lsls r0, 2
|
|
ldr r1, _0810DCF4 @ =_0810DCF8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0810DCF0: .4byte 0xfffffde6
|
|
_0810DCF4: .4byte _0810DCF8
|
|
.align 2, 0
|
|
_0810DCF8:
|
|
.4byte _0810DE7E
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DDD8
|
|
.4byte _0810DDDE
|
|
.4byte _0810DE18
|
|
.4byte _0810DE20
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DDE8
|
|
.4byte _0810DDEE
|
|
.4byte _0810DE28
|
|
.4byte _0810DE30
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DDF8
|
|
.4byte _0810DDFE
|
|
.4byte _0810DE38
|
|
.4byte _0810DE40
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DE08
|
|
.4byte _0810DE10
|
|
.4byte _0810DE48
|
|
.4byte _0810DE50
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DE58
|
|
.4byte _0810DE68
|
|
.4byte _0810DE78
|
|
.4byte _0810DEA0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DE60
|
|
.4byte _0810DE70
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEC0
|
|
.4byte _0810DEB6
|
|
.4byte _0810DEA8
|
|
_0810DDD8:
|
|
movs r2, 0x8C
|
|
lsls r2, 2
|
|
b _0810DEAC
|
|
_0810DDDE:
|
|
ldr r2, _0810DDE4 @ =0x00000231
|
|
b _0810DEAC
|
|
.align 2, 0
|
|
_0810DDE4: .4byte 0x00000231
|
|
_0810DDE8:
|
|
movs r2, 0x8E
|
|
lsls r2, 2
|
|
b _0810DEAC
|
|
_0810DDEE:
|
|
ldr r2, _0810DDF4 @ =0x00000239
|
|
b _0810DEAC
|
|
.align 2, 0
|
|
_0810DDF4: .4byte 0x00000239
|
|
_0810DDF8:
|
|
movs r2, 0x88
|
|
lsls r2, 2
|
|
b _0810DEAC
|
|
_0810DDFE:
|
|
ldr r2, _0810DE04 @ =0x00000221
|
|
b _0810DEAC
|
|
.align 2, 0
|
|
_0810DE04: .4byte 0x00000221
|
|
_0810DE08:
|
|
ldr r2, _0810DE0C @ =0x00000e28
|
|
b _0810DEAC
|
|
.align 2, 0
|
|
_0810DE0C: .4byte 0x00000e28
|
|
_0810DE10:
|
|
ldr r2, _0810DE14 @ =0x00000e29
|
|
b _0810DEAC
|
|
.align 2, 0
|
|
_0810DE14: .4byte 0x00000e29
|
|
_0810DE18:
|
|
ldr r2, _0810DE1C @ =0x00000232
|
|
b _0810DEAC
|
|
.align 2, 0
|
|
_0810DE1C: .4byte 0x00000232
|
|
_0810DE20:
|
|
ldr r2, _0810DE24 @ =0x00000233
|
|
b _0810DEAC
|
|
.align 2, 0
|
|
_0810DE24: .4byte 0x00000233
|
|
_0810DE28:
|
|
ldr r2, _0810DE2C @ =0x0000023a
|
|
b _0810DEAC
|
|
.align 2, 0
|
|
_0810DE2C: .4byte 0x0000023a
|
|
_0810DE30:
|
|
ldr r2, _0810DE34 @ =0x0000023b
|
|
b _0810DEAC
|
|
.align 2, 0
|
|
_0810DE34: .4byte 0x0000023b
|
|
_0810DE38:
|
|
ldr r2, _0810DE3C @ =0x00000222
|
|
b _0810DEAC
|
|
.align 2, 0
|
|
_0810DE3C: .4byte 0x00000222
|
|
_0810DE40:
|
|
ldr r2, _0810DE44 @ =0x00000223
|
|
b _0810DEAC
|
|
.align 2, 0
|
|
_0810DE44: .4byte 0x00000223
|
|
_0810DE48:
|
|
ldr r2, _0810DE4C @ =0x00000e2a
|
|
b _0810DEAC
|
|
.align 2, 0
|
|
_0810DE4C: .4byte 0x00000e2a
|
|
_0810DE50:
|
|
ldr r2, _0810DE54 @ =0x00000e2b
|
|
b _0810DEAC
|
|
.align 2, 0
|
|
_0810DE54: .4byte 0x00000e2b
|
|
_0810DE58:
|
|
ldr r2, _0810DE5C @ =0x00000e42
|
|
b _0810DEAC
|
|
.align 2, 0
|
|
_0810DE5C: .4byte 0x00000e42
|
|
_0810DE60:
|
|
ldr r2, _0810DE64 @ =0x0000021a
|
|
b _0810DEAC
|
|
.align 2, 0
|
|
_0810DE64: .4byte 0x0000021a
|
|
_0810DE68:
|
|
ldr r2, _0810DE6C @ =0x00000e43
|
|
b _0810DEAC
|
|
.align 2, 0
|
|
_0810DE6C: .4byte 0x00000e43
|
|
_0810DE70:
|
|
ldr r2, _0810DE74 @ =0x0000021a
|
|
b _0810DEAC
|
|
.align 2, 0
|
|
_0810DE74: .4byte 0x0000021a
|
|
_0810DE78:
|
|
movs r2, 0xE4
|
|
lsls r2, 4
|
|
b _0810DEAC
|
|
_0810DE7E:
|
|
subs r1, r5, 0x1
|
|
adds r0, r4, 0
|
|
bl MapGridGetMetatileIdAt
|
|
movs r1, 0x90
|
|
lsls r1, 2
|
|
cmp r0, r1
|
|
bne _0810DE98
|
|
ldr r2, _0810DE94 @ =0x00000e48
|
|
b _0810DEAC
|
|
.align 2, 0
|
|
_0810DE94: .4byte 0x00000e48
|
|
_0810DE98:
|
|
ldr r2, _0810DE9C @ =0x00000e49
|
|
b _0810DEAC
|
|
.align 2, 0
|
|
_0810DE9C: .4byte 0x00000e49
|
|
_0810DEA0:
|
|
ldr r2, _0810DEA4 @ =0x00000e41
|
|
b _0810DEAC
|
|
.align 2, 0
|
|
_0810DEA4: .4byte 0x00000e41
|
|
_0810DEA8:
|
|
movs r2, 0xE5
|
|
lsls r2, 4
|
|
_0810DEAC:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl MapGridSetMetatileIdAt
|
|
b _0810DEC0
|
|
_0810DEB6:
|
|
ldr r2, _0810DED8 @ =0x00000251
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl MapGridSetMetatileIdAt
|
|
_0810DEC0:
|
|
adds r4, 0x1
|
|
cmp r4, 0xF
|
|
bgt _0810DEC8
|
|
b _0810DCD4
|
|
_0810DEC8:
|
|
adds r5, r6, 0
|
|
cmp r5, 0x17
|
|
bgt _0810DED0
|
|
b _0810DCD0
|
|
_0810DED0:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810DED8: .4byte 0x00000251
|
|
thumb_func_end sub_810DCCC
|
|
|
|
thumb_func_start sub_810DEDC
|
|
sub_810DEDC: @ 810DEDC
|
|
push {r4-r6,lr}
|
|
ldr r4, _0810DF18 @ =gUnknown_083F8364
|
|
movs r5, 0x2
|
|
_0810DEE2:
|
|
ldrb r0, [r4]
|
|
ldrb r1, [r4, 0x1]
|
|
ldr r2, _0810DF1C @ =0x00000206
|
|
bl MapGridSetMetatileIdAt
|
|
adds r4, 0x4
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _0810DEE2
|
|
movs r5, 0xC
|
|
_0810DEF6:
|
|
movs r4, 0x7
|
|
adds r6, r5, 0x1
|
|
_0810DEFA:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl MapGridGetMetatileIdAt
|
|
ldr r1, _0810DF20 @ =0xfffffde0
|
|
adds r0, r1
|
|
cmp r0, 0x30
|
|
bls _0810DF0C
|
|
b _0810E056
|
|
_0810DF0C:
|
|
lsls r0, 2
|
|
ldr r1, _0810DF24 @ =_0810DF28
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0810DF18: .4byte gUnknown_083F8364
|
|
_0810DF1C: .4byte 0x00000206
|
|
_0810DF20: .4byte 0xfffffde0
|
|
_0810DF24: .4byte _0810DF28
|
|
.align 2, 0
|
|
_0810DF28:
|
|
.4byte _0810DFEC
|
|
.4byte _0810DFF2
|
|
.4byte _0810E00C
|
|
.4byte _0810E014
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810DFFC
|
|
.4byte _0810E002
|
|
.4byte _0810E01C
|
|
.4byte _0810E024
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E02C
|
|
.4byte _0810E034
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E03C
|
|
.4byte _0810E03C
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E056
|
|
.4byte _0810E04C
|
|
_0810DFEC:
|
|
movs r2, 0x8C
|
|
lsls r2, 2
|
|
b _0810E03E
|
|
_0810DFF2:
|
|
ldr r2, _0810DFF8 @ =0x00000231
|
|
b _0810E03E
|
|
.align 2, 0
|
|
_0810DFF8: .4byte 0x00000231
|
|
_0810DFFC:
|
|
movs r2, 0x8E
|
|
lsls r2, 2
|
|
b _0810E03E
|
|
_0810E002:
|
|
ldr r2, _0810E008 @ =0x00000239
|
|
b _0810E03E
|
|
.align 2, 0
|
|
_0810E008: .4byte 0x00000239
|
|
_0810E00C:
|
|
ldr r2, _0810E010 @ =0x00000232
|
|
b _0810E03E
|
|
.align 2, 0
|
|
_0810E010: .4byte 0x00000232
|
|
_0810E014:
|
|
ldr r2, _0810E018 @ =0x00000233
|
|
b _0810E03E
|
|
.align 2, 0
|
|
_0810E018: .4byte 0x00000233
|
|
_0810E01C:
|
|
ldr r2, _0810E020 @ =0x0000023a
|
|
b _0810E03E
|
|
.align 2, 0
|
|
_0810E020: .4byte 0x0000023a
|
|
_0810E024:
|
|
ldr r2, _0810E028 @ =0x0000023b
|
|
b _0810E03E
|
|
.align 2, 0
|
|
_0810E028: .4byte 0x0000023b
|
|
_0810E02C:
|
|
ldr r2, _0810E030 @ =0x00000e42
|
|
b _0810E03E
|
|
.align 2, 0
|
|
_0810E030: .4byte 0x00000e42
|
|
_0810E034:
|
|
ldr r2, _0810E038 @ =0x00000e43
|
|
b _0810E03E
|
|
.align 2, 0
|
|
_0810E038: .4byte 0x00000e43
|
|
_0810E03C:
|
|
ldr r2, _0810E048 @ =0x0000021a
|
|
_0810E03E:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl MapGridSetMetatileIdAt
|
|
b _0810E056
|
|
.align 2, 0
|
|
_0810E048: .4byte 0x0000021a
|
|
_0810E04C:
|
|
ldr r2, _0810E06C @ =0x00000251
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl MapGridSetMetatileIdAt
|
|
_0810E056:
|
|
adds r4, 0x1
|
|
cmp r4, 0xF
|
|
bgt _0810E05E
|
|
b _0810DEFA
|
|
_0810E05E:
|
|
adds r5, r6, 0
|
|
cmp r5, 0x17
|
|
bgt _0810E066
|
|
b _0810DEF6
|
|
_0810E066:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810E06C: .4byte 0x00000251
|
|
thumb_func_end sub_810DEDC
|
|
|
|
thumb_func_start sub_810E070
|
|
sub_810E070: @ 810E070
|
|
push {lr}
|
|
ldr r0, _0810E090 @ =gUnknown_02039258
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, _0810E094 @ =gUnknown_02039259
|
|
strb r1, [r0]
|
|
movs r0, 0x2C
|
|
bl PlaySE
|
|
ldr r0, _0810E098 @ =sub_810E09C
|
|
movs r1, 0x8
|
|
bl CreateTask
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810E090: .4byte gUnknown_02039258
|
|
_0810E094: .4byte gUnknown_02039259
|
|
_0810E098: .4byte sub_810E09C
|
|
thumb_func_end sub_810E070
|
|
|
|
thumb_func_start sub_810E09C
|
|
sub_810E09C: @ 810E09C
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, _0810E0E4 @ =gUnknown_083F8370
|
|
ldr r5, _0810E0E8 @ =gUnknown_02039259
|
|
ldrb r1, [r5]
|
|
adds r0, r1, r0
|
|
ldr r4, _0810E0EC @ =gUnknown_02039258
|
|
ldrb r2, [r4]
|
|
ldrb r0, [r0]
|
|
cmp r0, r2
|
|
bne _0810E0F8
|
|
ldr r0, _0810E0F0 @ =gUnknown_0202E8CC
|
|
ldrb r0, [r0]
|
|
ldr r2, _0810E0F4 @ =gUnknown_083F8376
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r1, [r1]
|
|
bl sub_810E104
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
ldrb r0, [r5]
|
|
adds r0, 0x1
|
|
strb r0, [r5]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x5
|
|
bne _0810E0FC
|
|
adds r0, r6, 0
|
|
bl DestroyTask
|
|
bl EnableBothScriptContexts
|
|
b _0810E0FC
|
|
.align 2, 0
|
|
_0810E0E4: .4byte gUnknown_083F8370
|
|
_0810E0E8: .4byte gUnknown_02039259
|
|
_0810E0EC: .4byte gUnknown_02039258
|
|
_0810E0F0: .4byte gUnknown_0202E8CC
|
|
_0810E0F4: .4byte gUnknown_083F8376
|
|
_0810E0F8:
|
|
adds r0, r2, 0x1
|
|
strb r0, [r4]
|
|
_0810E0FC:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_810E09C
|
|
|
|
thumb_func_start sub_810E104
|
|
sub_810E104: @ 810E104
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 16
|
|
lsrs r2, r1, 16
|
|
movs r7, 0
|
|
subs r0, 0x1
|
|
cmp r0, 0x7
|
|
bhi _0810E1CC
|
|
lsls r0, 2
|
|
ldr r1, _0810E128 @ =_0810E12C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0810E128: .4byte _0810E12C
|
|
.align 2, 0
|
|
_0810E12C:
|
|
.4byte _0810E14C
|
|
.4byte _0810E15E
|
|
.4byte _0810E170
|
|
.4byte _0810E182
|
|
.4byte _0810E190
|
|
.4byte _0810E1A6
|
|
.4byte _0810E1B2
|
|
.4byte _0810E1C0
|
|
_0810E14C:
|
|
movs r7, 0x2
|
|
mov r1, sp
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
movs r0, 0x7
|
|
strh r0, [r1, 0x2]
|
|
add r1, sp, 0x8
|
|
movs r0, 0x68
|
|
b _0810E1A0
|
|
_0810E15E:
|
|
movs r7, 0x2
|
|
mov r1, sp
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
movs r0, 0x7
|
|
strh r0, [r1, 0x2]
|
|
add r1, sp, 0x8
|
|
movs r0, 0x4E
|
|
b _0810E1A0
|
|
_0810E170:
|
|
movs r7, 0x2
|
|
mov r1, sp
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
movs r0, 0x7
|
|
strh r0, [r1, 0x2]
|
|
add r1, sp, 0x8
|
|
movs r0, 0x5B
|
|
b _0810E1A0
|
|
_0810E182:
|
|
movs r7, 0x1
|
|
mov r1, sp
|
|
movs r0, 0x7
|
|
strh r0, [r1]
|
|
add r1, sp, 0x8
|
|
movs r0, 0x27
|
|
b _0810E1CA
|
|
_0810E190:
|
|
movs r7, 0x2
|
|
mov r1, sp
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
movs r0, 0x7
|
|
strh r0, [r1, 0x2]
|
|
add r1, sp, 0x8
|
|
movs r0, 0x34
|
|
_0810E1A0:
|
|
strh r0, [r1]
|
|
strh r0, [r1, 0x2]
|
|
b _0810E1CC
|
|
_0810E1A6:
|
|
movs r7, 0x1
|
|
mov r0, sp
|
|
strh r7, [r0]
|
|
add r1, sp, 0x8
|
|
movs r0, 0x41
|
|
b _0810E1CA
|
|
_0810E1B2:
|
|
movs r7, 0x1
|
|
mov r1, sp
|
|
movs r0, 0x7
|
|
strh r0, [r1]
|
|
add r1, sp, 0x8
|
|
movs r0, 0xD
|
|
b _0810E1CA
|
|
_0810E1C0:
|
|
movs r7, 0x1
|
|
mov r0, sp
|
|
strh r7, [r0]
|
|
add r1, sp, 0x8
|
|
movs r0, 0x1A
|
|
_0810E1CA:
|
|
strh r0, [r1]
|
|
_0810E1CC:
|
|
movs r6, 0
|
|
cmp r6, r7
|
|
bcs _0810E21E
|
|
movs r1, 0xC0
|
|
lsls r1, 4
|
|
adds r0, r1, 0
|
|
adds r1, r2, 0
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
mov r9, r1
|
|
adds r1, r2, 0
|
|
adds r1, 0x8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
mov r8, r1
|
|
_0810E1EA:
|
|
lsls r1, r6, 1
|
|
mov r3, sp
|
|
adds r5, r3, r1
|
|
ldrh r0, [r5]
|
|
adds r0, 0x7
|
|
add r4, sp, 0x8
|
|
adds r4, r1
|
|
ldrh r1, [r4]
|
|
adds r1, 0x7
|
|
mov r3, r9
|
|
lsrs r2, r3, 16
|
|
bl MapGridSetMetatileIdAt
|
|
ldrh r0, [r5]
|
|
adds r0, 0x7
|
|
ldrh r1, [r4]
|
|
adds r1, 0x8
|
|
mov r3, r8
|
|
lsrs r2, r3, 16
|
|
bl MapGridSetMetatileIdAt
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, r7
|
|
bcc _0810E1EA
|
|
_0810E21E:
|
|
bl DrawWholeMapView
|
|
add sp, 0x10
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_810E104
|
|
|
|
thumb_func_start sub_810E230
|
|
sub_810E230: @ 810E230
|
|
push {lr}
|
|
ldr r0, _0810E244 @ =gUnknown_0202E8CC
|
|
ldrb r0, [r0]
|
|
ldr r1, _0810E248 @ =gUnknown_083F8376
|
|
ldrh r1, [r1, 0x8]
|
|
bl sub_810E104
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810E244: .4byte gUnknown_0202E8CC
|
|
_0810E248: .4byte gUnknown_083F8376
|
|
thumb_func_end sub_810E230
|
|
|
|
thumb_func_start ShowFieldMessageStringVar4
|
|
ShowFieldMessageStringVar4: @ 810E24C
|
|
push {lr}
|
|
ldr r0, _0810E258 @ =gStringVar4
|
|
bl ShowFieldMessage
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810E258: .4byte gStringVar4
|
|
thumb_func_end ShowFieldMessageStringVar4
|
|
|
|
thumb_func_start StorePlayerCoordsInVars
|
|
StorePlayerCoordsInVars: @ 810E25C
|
|
ldr r1, _0810E26C @ =gUnknown_0202E8CC
|
|
ldr r2, _0810E270 @ =gSaveBlock1
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
ldr r1, _0810E274 @ =gUnknown_0202E8CE
|
|
ldrh r0, [r2, 0x2]
|
|
strh r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0810E26C: .4byte gUnknown_0202E8CC
|
|
_0810E270: .4byte gSaveBlock1
|
|
_0810E274: .4byte gUnknown_0202E8CE
|
|
thumb_func_end StorePlayerCoordsInVars
|
|
|
|
thumb_func_start GetPlayerTrainerIdOnesDigit
|
|
GetPlayerTrainerIdOnesDigit: @ 810E278
|
|
push {lr}
|
|
ldr r0, _0810E294 @ =gSaveBlock2
|
|
ldrb r1, [r0, 0xB]
|
|
lsls r1, 8
|
|
ldrb r0, [r0, 0xA]
|
|
orrs r0, r1
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810E294: .4byte gSaveBlock2
|
|
thumb_func_end GetPlayerTrainerIdOnesDigit
|
|
|
|
thumb_func_start GetPlayerBigGuyGirlString
|
|
GetPlayerBigGuyGirlString: @ 810E298
|
|
push {lr}
|
|
ldr r0, _0810E2AC @ =gSaveBlock2
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r0, 0
|
|
bne _0810E2B8
|
|
ldr r0, _0810E2B0 @ =gStringVar1
|
|
ldr r1, _0810E2B4 @ =gOtherText_BigGuy
|
|
bl StringCopy
|
|
b _0810E2C0
|
|
.align 2, 0
|
|
_0810E2AC: .4byte gSaveBlock2
|
|
_0810E2B0: .4byte gStringVar1
|
|
_0810E2B4: .4byte gOtherText_BigGuy
|
|
_0810E2B8:
|
|
ldr r0, _0810E2C4 @ =gStringVar1
|
|
ldr r1, _0810E2C8 @ =gOtherText_BigGirl
|
|
bl StringCopy
|
|
_0810E2C0:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810E2C4: .4byte gStringVar1
|
|
_0810E2C8: .4byte gOtherText_BigGirl
|
|
thumb_func_end GetPlayerBigGuyGirlString
|
|
|
|
thumb_func_start GetRivalSonDaughterString
|
|
GetRivalSonDaughterString: @ 810E2CC
|
|
push {lr}
|
|
ldr r0, _0810E2E0 @ =gSaveBlock2
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r0, 0
|
|
bne _0810E2EC
|
|
ldr r0, _0810E2E4 @ =gStringVar1
|
|
ldr r1, _0810E2E8 @ =gOtherText_Daughter
|
|
bl StringCopy
|
|
b _0810E2F4
|
|
.align 2, 0
|
|
_0810E2E0: .4byte gSaveBlock2
|
|
_0810E2E4: .4byte gStringVar1
|
|
_0810E2E8: .4byte gOtherText_Daughter
|
|
_0810E2EC:
|
|
ldr r0, _0810E2F8 @ =gStringVar1
|
|
ldr r1, _0810E2FC @ =gOtherText_Son
|
|
bl StringCopy
|
|
_0810E2F4:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810E2F8: .4byte gStringVar1
|
|
_0810E2FC: .4byte gOtherText_Son
|
|
thumb_func_end GetRivalSonDaughterString
|
|
|
|
thumb_func_start sub_810E300
|
|
sub_810E300: @ 810E300
|
|
ldr r0, _0810E308 @ =gUnknown_02024D26
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0810E308: .4byte gUnknown_02024D26
|
|
thumb_func_end sub_810E300
|
|
|
|
thumb_func_start CableCarWarp
|
|
CableCarWarp: @ 810E30C
|
|
push {lr}
|
|
sub sp, 0x4
|
|
ldr r0, _0810E32C @ =gUnknown_0202E8CC
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
beq _0810E330
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x4
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r3, 0x6
|
|
bl warp1_set
|
|
b _0810E342
|
|
.align 2, 0
|
|
_0810E32C: .4byte gUnknown_0202E8CC
|
|
_0810E330:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x4
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0x1
|
|
movs r3, 0x6
|
|
bl warp1_set
|
|
_0810E342:
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end CableCarWarp
|
|
|
|
thumb_func_start SetFlagInVar
|
|
SetFlagInVar: @ 810E348
|
|
push {lr}
|
|
ldr r0, _0810E358 @ =gUnknown_0202E8CC
|
|
ldrh r0, [r0]
|
|
bl FlagSet
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810E358: .4byte gUnknown_0202E8CC
|
|
thumb_func_end SetFlagInVar
|
|
|
|
thumb_func_start GetWeekCount
|
|
GetWeekCount: @ 810E35C
|
|
push {lr}
|
|
ldr r0, _0810E37C @ =gLocalTime
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
movs r1, 0x7
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, _0810E380 @ =0x0000270f
|
|
cmp r0, r1
|
|
bls _0810E376
|
|
adds r0, r1, 0
|
|
_0810E376:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810E37C: .4byte gLocalTime
|
|
_0810E380: .4byte 0x0000270f
|
|
thumb_func_end GetWeekCount
|
|
|
|
thumb_func_start GetLeadMonFriendshipScore
|
|
GetLeadMonFriendshipScore: @ 810E384
|
|
push {r4,lr}
|
|
bl GetLeadMonIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r1, r0
|
|
ldr r0, _0810E3A8 @ =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl GetMonData
|
|
cmp r0, 0xFF
|
|
bne _0810E3AC
|
|
movs r0, 0x6
|
|
b _0810E3FE
|
|
.align 2, 0
|
|
_0810E3A8: .4byte gPlayerParty
|
|
_0810E3AC:
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl GetMonData
|
|
cmp r0, 0xC7
|
|
bls _0810E3BC
|
|
movs r0, 0x5
|
|
b _0810E3FE
|
|
_0810E3BC:
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl GetMonData
|
|
cmp r0, 0x95
|
|
bls _0810E3CC
|
|
movs r0, 0x4
|
|
b _0810E3FE
|
|
_0810E3CC:
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl GetMonData
|
|
cmp r0, 0x63
|
|
bls _0810E3DC
|
|
movs r0, 0x3
|
|
b _0810E3FE
|
|
_0810E3DC:
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl GetMonData
|
|
cmp r0, 0x31
|
|
bls _0810E3EC
|
|
movs r0, 0x2
|
|
b _0810E3FE
|
|
_0810E3EC:
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0810E3FC
|
|
movs r0, 0
|
|
b _0810E3FE
|
|
_0810E3FC:
|
|
movs r0, 0x1
|
|
_0810E3FE:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetLeadMonFriendshipScore
|
|
|
|
thumb_func_start CB2_FieldShowRegionMap
|
|
CB2_FieldShowRegionMap: @ 810E404
|
|
push {lr}
|
|
ldr r0, _0810E410 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
|
|
bl FieldInitRegionMap
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810E410: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
|
|
thumb_func_end CB2_FieldShowRegionMap
|
|
|
|
thumb_func_start FieldShowRegionMap
|
|
FieldShowRegionMap: @ 810E414
|
|
push {lr}
|
|
ldr r0, _0810E420 @ =CB2_FieldShowRegionMap
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810E420: .4byte CB2_FieldShowRegionMap
|
|
thumb_func_end FieldShowRegionMap
|
|
|
|
thumb_func_start DoPCTurnOnEffect
|
|
DoPCTurnOnEffect: @ 810E424
|
|
push {r4,lr}
|
|
ldr r4, _0810E460 @ =Task_PCTurnOnEffect
|
|
adds r0, r4, 0
|
|
bl FuncIsActiveTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0810E458
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0810E464 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r2, 0
|
|
strh r2, [r1, 0x8]
|
|
strh r0, [r1, 0xA]
|
|
strh r2, [r1, 0xC]
|
|
strh r2, [r1, 0xE]
|
|
strh r2, [r1, 0x10]
|
|
_0810E458:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810E460: .4byte Task_PCTurnOnEffect
|
|
_0810E464: .4byte gTasks
|
|
thumb_func_end DoPCTurnOnEffect
|
|
|
|
thumb_func_start Task_PCTurnOnEffect
|
|
Task_PCTurnOnEffect: @ 810E468
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _0810E48C @ =gTasks
|
|
adds r1, r0
|
|
movs r2, 0x8
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _0810E486
|
|
adds r0, r1, 0
|
|
bl PCTurnOffEffect_0
|
|
_0810E486:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810E48C: .4byte gTasks
|
|
thumb_func_end Task_PCTurnOnEffect
|
|
|
|
thumb_func_start PCTurnOffEffect_0
|
|
PCTurnOffEffect_0: @ 810E490
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
movs r6, 0
|
|
movs r5, 0
|
|
movs r1, 0xE
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x6
|
|
bne _0810E4FC
|
|
strh r5, [r4, 0xE]
|
|
bl player_get_direction_lower_nybble
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r0, 0
|
|
cmp r0, 0x3
|
|
beq _0810E4C4
|
|
cmp r0, 0x3
|
|
bgt _0810E4BA
|
|
cmp r0, 0x2
|
|
beq _0810E4C0
|
|
b _0810E4CC
|
|
_0810E4BA:
|
|
cmp r1, 0x4
|
|
beq _0810E4C8
|
|
b _0810E4CC
|
|
_0810E4C0:
|
|
movs r6, 0
|
|
b _0810E4CA
|
|
_0810E4C4:
|
|
movs r6, 0xFF
|
|
b _0810E4CA
|
|
_0810E4C8:
|
|
movs r6, 0x1
|
|
_0810E4CA:
|
|
movs r5, 0xFF
|
|
_0810E4CC:
|
|
movs r1, 0x10
|
|
ldrsh r0, [r4, r1]
|
|
lsls r1, r6, 24
|
|
asrs r1, 24
|
|
lsls r2, r5, 24
|
|
asrs r2, 24
|
|
bl PCTurnOffEffect_1
|
|
bl DrawWholeMapView
|
|
ldrh r0, [r4, 0x10]
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
strh r0, [r4, 0x10]
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x5
|
|
bne _0810E4FC
|
|
ldrb r0, [r4, 0xA]
|
|
bl DestroyTask
|
|
_0810E4FC:
|
|
ldrh r0, [r4, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xE]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PCTurnOffEffect_0
|
|
|
|
thumb_func_start PCTurnOffEffect_1
|
|
PCTurnOffEffect_1: @ 810E508
|
|
push {r4,r5,lr}
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r4, r2, 24
|
|
movs r3, 0
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _0810E544
|
|
ldr r0, _0810E528 @ =gUnknown_0202E8CC
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _0810E52C
|
|
movs r3, 0x4
|
|
b _0810E566
|
|
.align 2, 0
|
|
_0810E528: .4byte gUnknown_0202E8CC
|
|
_0810E52C:
|
|
cmp r0, 0x1
|
|
bne _0810E538
|
|
ldr r3, _0810E534 @ =0x0000025a
|
|
b _0810E566
|
|
.align 2, 0
|
|
_0810E534: .4byte 0x0000025a
|
|
_0810E538:
|
|
cmp r0, 0x2
|
|
bne _0810E566
|
|
ldr r3, _0810E540 @ =0x00000259
|
|
b _0810E566
|
|
.align 2, 0
|
|
_0810E540: .4byte 0x00000259
|
|
_0810E544:
|
|
ldr r0, _0810E550 @ =gUnknown_0202E8CC
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _0810E554
|
|
movs r3, 0x5
|
|
b _0810E566
|
|
.align 2, 0
|
|
_0810E550: .4byte gUnknown_0202E8CC
|
|
_0810E554:
|
|
cmp r0, 0x1
|
|
bne _0810E560
|
|
ldr r3, _0810E55C @ =0x0000027f
|
|
b _0810E566
|
|
.align 2, 0
|
|
_0810E55C: .4byte 0x0000027f
|
|
_0810E560:
|
|
cmp r0, 0x2
|
|
bne _0810E566
|
|
ldr r3, _0810E594 @ =0x0000027e
|
|
_0810E566:
|
|
ldr r2, _0810E598 @ =gSaveBlock1
|
|
movs r5, 0
|
|
ldrsh r0, [r2, r5]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
adds r0, r1
|
|
adds r0, 0x7
|
|
movs r5, 0x2
|
|
ldrsh r1, [r2, r5]
|
|
lsls r2, r4, 24
|
|
asrs r2, 24
|
|
adds r1, r2
|
|
adds r1, 0x7
|
|
movs r4, 0xC0
|
|
lsls r4, 4
|
|
adds r2, r4, 0
|
|
orrs r3, r2
|
|
adds r2, r3, 0
|
|
bl MapGridSetMetatileIdAt
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810E594: .4byte 0x0000027e
|
|
_0810E598: .4byte gSaveBlock1
|
|
thumb_func_end PCTurnOffEffect_1
|
|
|
|
thumb_func_start DoPCTurnOffEffect
|
|
DoPCTurnOffEffect: @ 810E59C
|
|
push {lr}
|
|
bl PCTurnOffEffect
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end DoPCTurnOffEffect
|
|
|
|
thumb_func_start PCTurnOffEffect
|
|
PCTurnOffEffect: @ 810E5A8
|
|
push {r4-r6,lr}
|
|
movs r6, 0
|
|
movs r5, 0
|
|
movs r4, 0
|
|
bl player_get_direction_lower_nybble
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r0, 0
|
|
cmp r0, 0x3
|
|
beq _0810E5D2
|
|
cmp r0, 0x3
|
|
bgt _0810E5C8
|
|
cmp r0, 0x2
|
|
beq _0810E5CE
|
|
b _0810E5DA
|
|
_0810E5C8:
|
|
cmp r1, 0x4
|
|
beq _0810E5D6
|
|
b _0810E5DA
|
|
_0810E5CE:
|
|
movs r6, 0
|
|
b _0810E5D8
|
|
_0810E5D2:
|
|
movs r6, 0xFF
|
|
b _0810E5D8
|
|
_0810E5D6:
|
|
movs r6, 0x1
|
|
_0810E5D8:
|
|
movs r5, 0xFF
|
|
_0810E5DA:
|
|
ldr r0, _0810E5E8 @ =gUnknown_0202E8CC
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _0810E5EC
|
|
movs r4, 0x4
|
|
b _0810E5FE
|
|
.align 2, 0
|
|
_0810E5E8: .4byte gUnknown_0202E8CC
|
|
_0810E5EC:
|
|
cmp r0, 0x1
|
|
bne _0810E5F8
|
|
ldr r4, _0810E5F4 @ =0x0000025a
|
|
b _0810E5FE
|
|
.align 2, 0
|
|
_0810E5F4: .4byte 0x0000025a
|
|
_0810E5F8:
|
|
cmp r0, 0x2
|
|
bne _0810E5FE
|
|
ldr r4, _0810E630 @ =0x00000259
|
|
_0810E5FE:
|
|
ldr r2, _0810E634 @ =gSaveBlock1
|
|
movs r1, 0
|
|
ldrsh r0, [r2, r1]
|
|
lsls r1, r6, 24
|
|
asrs r1, 24
|
|
adds r0, r1
|
|
adds r0, 0x7
|
|
movs r3, 0x2
|
|
ldrsh r1, [r2, r3]
|
|
lsls r2, r5, 24
|
|
asrs r2, 24
|
|
adds r1, r2
|
|
adds r1, 0x7
|
|
movs r3, 0xC0
|
|
lsls r3, 4
|
|
adds r2, r3, 0
|
|
orrs r4, r2
|
|
adds r2, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
bl DrawWholeMapView
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810E630: .4byte 0x00000259
|
|
_0810E634: .4byte gSaveBlock1
|
|
thumb_func_end PCTurnOffEffect
|
|
|
|
thumb_func_start DoLotteryCornerComputerEffect
|
|
DoLotteryCornerComputerEffect: @ 810E638
|
|
push {r4,lr}
|
|
ldr r4, _0810E674 @ =Task_LotteryCornerComputerEffect
|
|
adds r0, r4, 0
|
|
bl FuncIsActiveTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0810E66C
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0810E678 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r2, 0
|
|
strh r2, [r1, 0x8]
|
|
strh r0, [r1, 0xA]
|
|
strh r2, [r1, 0xC]
|
|
strh r2, [r1, 0xE]
|
|
strh r2, [r1, 0x10]
|
|
_0810E66C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810E674: .4byte Task_LotteryCornerComputerEffect
|
|
_0810E678: .4byte gTasks
|
|
thumb_func_end DoLotteryCornerComputerEffect
|
|
|
|
thumb_func_start Task_LotteryCornerComputerEffect
|
|
Task_LotteryCornerComputerEffect: @ 810E67C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _0810E6A0 @ =gTasks
|
|
adds r1, r0
|
|
movs r2, 0x8
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _0810E69A
|
|
adds r0, r1, 0
|
|
bl LotteryCornerComputerEffect
|
|
_0810E69A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810E6A0: .4byte gTasks
|
|
thumb_func_end Task_LotteryCornerComputerEffect
|
|
|
|
thumb_func_start LotteryCornerComputerEffect
|
|
LotteryCornerComputerEffect: @ 810E6A4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0xE
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x6
|
|
bne _0810E712
|
|
movs r0, 0
|
|
strh r0, [r4, 0xE]
|
|
movs r1, 0x10
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _0810E6DC
|
|
ldr r2, _0810E6D4 @ =0x00000e9d
|
|
movs r0, 0x12
|
|
movs r1, 0x8
|
|
bl MapGridSetMetatileIdAt
|
|
ldr r2, _0810E6D8 @ =0x00000ea5
|
|
movs r0, 0x12
|
|
movs r1, 0x9
|
|
bl MapGridSetMetatileIdAt
|
|
b _0810E6F2
|
|
.align 2, 0
|
|
_0810E6D4: .4byte 0x00000e9d
|
|
_0810E6D8: .4byte 0x00000ea5
|
|
_0810E6DC:
|
|
ldr r2, _0810E720 @ =0x00000e58
|
|
movs r0, 0x12
|
|
movs r1, 0x8
|
|
bl MapGridSetMetatileIdAt
|
|
movs r2, 0xE6
|
|
lsls r2, 4
|
|
movs r0, 0x12
|
|
movs r1, 0x9
|
|
bl MapGridSetMetatileIdAt
|
|
_0810E6F2:
|
|
bl DrawWholeMapView
|
|
ldrh r0, [r4, 0x10]
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
strh r0, [r4, 0x10]
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x5
|
|
bne _0810E712
|
|
ldrb r0, [r4, 0xA]
|
|
bl DestroyTask
|
|
_0810E712:
|
|
ldrh r0, [r4, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xE]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810E720: .4byte 0x00000e58
|
|
thumb_func_end LotteryCornerComputerEffect
|
|
|
|
thumb_func_start EndLotteryCornerComputerEffect
|
|
EndLotteryCornerComputerEffect: @ 810E724
|
|
push {lr}
|
|
ldr r2, _0810E744 @ =0x00000e9d
|
|
movs r0, 0x12
|
|
movs r1, 0x8
|
|
bl MapGridSetMetatileIdAt
|
|
ldr r2, _0810E748 @ =0x00000ea5
|
|
movs r0, 0x12
|
|
movs r1, 0x9
|
|
bl MapGridSetMetatileIdAt
|
|
bl DrawWholeMapView
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810E744: .4byte 0x00000e9d
|
|
_0810E748: .4byte 0x00000ea5
|
|
thumb_func_end EndLotteryCornerComputerEffect
|
|
|
|
thumb_func_start SetDepartmentStoreFloorVar
|
|
SetDepartmentStoreFloorVar: @ 810E74C
|
|
push {lr}
|
|
ldr r0, _0810E768 @ =gSaveBlock1
|
|
ldrb r0, [r0, 0x15]
|
|
subs r0, 0x11
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0x5
|
|
bhi _0810E79C
|
|
lsls r0, 2
|
|
ldr r1, _0810E76C @ =_0810E770
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0810E768: .4byte gSaveBlock1
|
|
_0810E76C: .4byte _0810E770
|
|
.align 2, 0
|
|
_0810E770:
|
|
.4byte _0810E79C
|
|
.4byte _0810E788
|
|
.4byte _0810E78C
|
|
.4byte _0810E790
|
|
.4byte _0810E794
|
|
.4byte _0810E798
|
|
_0810E788:
|
|
movs r1, 0x1
|
|
b _0810E79E
|
|
_0810E78C:
|
|
movs r1, 0x2
|
|
b _0810E79E
|
|
_0810E790:
|
|
movs r1, 0x3
|
|
b _0810E79E
|
|
_0810E794:
|
|
movs r1, 0x4
|
|
b _0810E79E
|
|
_0810E798:
|
|
movs r1, 0xF
|
|
b _0810E79E
|
|
_0810E79C:
|
|
movs r1, 0
|
|
_0810E79E:
|
|
ldr r0, _0810E7A8 @ =0x00004043
|
|
bl VarSet
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810E7A8: .4byte 0x00004043
|
|
thumb_func_end SetDepartmentStoreFloorVar
|
|
|
|
thumb_func_start ScriptAddElevatorMenuItem
|
|
ScriptAddElevatorMenuItem: @ 810E7AC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r12, r2
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r8, r3
|
|
ldr r0, _0810E81C @ =gUnknown_0202E8CC
|
|
ldrh r1, [r0]
|
|
adds r2, r0, 0
|
|
ldr r3, _0810E820 @ =gUnknown_03000760
|
|
cmp r1, 0
|
|
bne _0810E7E8
|
|
movs r1, 0
|
|
adds r5, r3, 0
|
|
movs r4, 0x10
|
|
_0810E7D8:
|
|
lsls r0, r1, 2
|
|
adds r0, r5
|
|
strb r4, [r0]
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x13
|
|
bls _0810E7D8
|
|
_0810E7E8:
|
|
ldrh r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
strb r6, [r0]
|
|
ldrh r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
strb r7, [r0, 0x1]
|
|
ldrh r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
mov r1, r12
|
|
strb r1, [r0, 0x2]
|
|
ldrh r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
mov r1, r8
|
|
strb r1, [r0, 0x3]
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810E81C: .4byte gUnknown_0202E8CC
|
|
_0810E820: .4byte gUnknown_03000760
|
|
thumb_func_end ScriptAddElevatorMenuItem
|
|
|
|
thumb_func_start ScriptShowElevatorMenu
|
|
ScriptShowElevatorMenu: @ 810E824
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
ldr r5, _0810E868 @ =gUnknown_0203925A
|
|
strb r4, [r5]
|
|
ldr r0, _0810E86C @ =gUnknown_0203925B
|
|
strb r4, [r0]
|
|
movs r0, 0x10
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl ScriptAddElevatorMenuItem
|
|
ldr r2, _0810E870 @ =gUnknown_03000760
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x10
|
|
beq _0810E85C
|
|
adds r1, r5, 0
|
|
_0810E846:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r0, r4, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x10
|
|
bne _0810E846
|
|
_0810E85C:
|
|
bl sub_810E874
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810E868: .4byte gUnknown_0203925A
|
|
_0810E86C: .4byte gUnknown_0203925B
|
|
_0810E870: .4byte gUnknown_03000760
|
|
thumb_func_end ScriptShowElevatorMenu
|
|
|
|
thumb_func_start sub_810E874
|
|
sub_810E874: @ 810E874
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
bl ScriptContext2_Enable
|
|
ldr r4, _0810E8B8 @ =gUnknown_0203925A
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x5
|
|
bls _0810E8C0
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x8
|
|
movs r3, 0xB
|
|
bl MenuDrawTextWindow
|
|
movs r4, 0
|
|
str r4, [sp]
|
|
movs r0, 0x7
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
movs r3, 0x5
|
|
bl InitMenu
|
|
ldr r0, _0810E8BC @ =gUnknown_0203925C
|
|
strb r4, [r0]
|
|
bl sub_80F944C
|
|
bl LoadScrollIndicatorPalette
|
|
bl sub_810ECD4
|
|
b _0810E8E8
|
|
.align 2, 0
|
|
_0810E8B8: .4byte gUnknown_0203925A
|
|
_0810E8BC: .4byte gUnknown_0203925C
|
|
_0810E8C0:
|
|
ldrb r3, [r4]
|
|
lsls r3, 1
|
|
adds r3, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x8
|
|
bl MenuDrawTextWindow
|
|
ldrb r3, [r4]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x7
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl InitMenu
|
|
_0810E8E8:
|
|
movs r4, 0
|
|
ldr r1, _0810E938 @ =gUnknown_03000760
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x10
|
|
beq _0810E924
|
|
ldr r6, _0810E93C @ =gUnknown_083F8380
|
|
adds r5, r1, 0
|
|
_0810E8F6:
|
|
lsls r0, r4, 2
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
lsls r2, r4, 1
|
|
adds r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r1, 0x1
|
|
bl MenuPrint
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x4
|
|
bhi _0810E924
|
|
lsls r0, r4, 2
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x10
|
|
bne _0810E8F6
|
|
_0810E924:
|
|
bl sub_810E944
|
|
ldr r0, _0810E940 @ =sub_810E984
|
|
movs r1, 0x8
|
|
bl CreateTask
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810E938: .4byte gUnknown_03000760
|
|
_0810E93C: .4byte gUnknown_083F8380
|
|
_0810E940: .4byte sub_810E984
|
|
thumb_func_end sub_810E874
|
|
|
|
thumb_func_start sub_810E944
|
|
sub_810E944: @ 810E944
|
|
push {lr}
|
|
movs r0, 0x14
|
|
movs r1, 0
|
|
movs r2, 0x1D
|
|
movs r3, 0x5
|
|
bl MenuDrawTextWindow
|
|
ldr r0, _0810E978 @ =gOtherText_NowOn
|
|
movs r1, 0x15
|
|
movs r2, 0x1
|
|
movs r3, 0x40
|
|
bl sub_8072BD8
|
|
ldr r1, _0810E97C @ =gUnknown_083F8380
|
|
ldr r0, _0810E980 @ =gUnknown_0202E8CE
|
|
ldrh r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x15
|
|
movs r2, 0x3
|
|
movs r3, 0x40
|
|
bl sub_8072BD8
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810E978: .4byte gOtherText_NowOn
|
|
_0810E97C: .4byte gUnknown_083F8380
|
|
_0810E980: .4byte gUnknown_0202E8CE
|
|
thumb_func_end sub_810E944
|
|
|
|
thumb_func_start sub_810E984
|
|
sub_810E984: @ 810E984
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, _0810EA44 @ =gMain
|
|
ldrh r0, [r0, 0x2E]
|
|
cmp r0, 0x40
|
|
bne _0810E9B8
|
|
ldr r1, _0810EA48 @ =gUnknown_0203925B
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0810E9B8
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
bl GetMenuCursorPos
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
bl MoveMenuCursorNoWrap
|
|
adds r0, r4, 0
|
|
movs r1, 0x40
|
|
bl sub_810EAC8
|
|
_0810E9B8:
|
|
ldr r0, _0810EA44 @ =gMain
|
|
ldrh r0, [r0, 0x2E]
|
|
cmp r0, 0x80
|
|
bne _0810E9E8
|
|
ldr r2, _0810EA48 @ =gUnknown_0203925B
|
|
ldrb r1, [r2]
|
|
ldr r0, _0810EA4C @ =gUnknown_0203925A
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r1, r0
|
|
beq _0810E9E8
|
|
adds r0, r1, 0x1
|
|
strb r0, [r2]
|
|
bl GetMenuCursorPos
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r0, 0x1
|
|
bl MoveMenuCursorNoWrap
|
|
adds r0, r4, 0
|
|
movs r1, 0x80
|
|
bl sub_810EAC8
|
|
_0810E9E8:
|
|
ldr r0, _0810EA44 @ =gMain
|
|
ldrh r2, [r0, 0x2E]
|
|
movs r5, 0x1
|
|
adds r1, r5, 0
|
|
ands r1, r2
|
|
cmp r1, 0
|
|
beq _0810EA94
|
|
ldr r1, _0810EA50 @ =gUnknown_03000760
|
|
ldr r4, _0810EA48 @ =gUnknown_0203925B
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
ldrsb r1, [r0, r1]
|
|
movs r2, 0x2
|
|
ldrsb r2, [r0, r2]
|
|
movs r3, 0x1
|
|
negs r3, r3
|
|
movs r0, 0x2
|
|
str r0, [sp]
|
|
str r5, [sp, 0x4]
|
|
movs r0, 0
|
|
bl saved_warp2_set_2
|
|
ldr r1, _0810EA54 @ =gUnknown_0202E8CE
|
|
ldrh r0, [r1]
|
|
ldrb r2, [r4]
|
|
cmp r0, r2
|
|
bne _0810EA5C
|
|
ldr r1, _0810EA58 @ =gScriptResult
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x1D
|
|
movs r3, 0xC
|
|
bl MenuZeroFillWindowRect
|
|
adds r0, r6, 0
|
|
bl sub_810EC9C
|
|
b _0810EABC
|
|
.align 2, 0
|
|
_0810EA44: .4byte gMain
|
|
_0810EA48: .4byte gUnknown_0203925B
|
|
_0810EA4C: .4byte gUnknown_0203925A
|
|
_0810EA50: .4byte gUnknown_03000760
|
|
_0810EA54: .4byte gUnknown_0202E8CE
|
|
_0810EA58: .4byte gScriptResult
|
|
_0810EA5C:
|
|
ldr r0, _0810EA88 @ =gScriptResult
|
|
strh r5, [r0]
|
|
ldrb r0, [r4]
|
|
strh r0, [r1]
|
|
bl sub_810EBEC
|
|
ldr r0, _0810EA8C @ =gUnknown_0202E8DE
|
|
ldrb r0, [r0]
|
|
ldr r2, _0810EA90 @ =gSaveBlock1
|
|
ldrb r1, [r2, 0x5]
|
|
ldrb r2, [r2, 0x4]
|
|
movs r3, 0x1
|
|
bl FieldObjectTurnByLocalIdAndMap
|
|
bl sub_810EEDC
|
|
bl MenuZeroFillScreen
|
|
adds r0, r6, 0
|
|
bl DestroyTask
|
|
b _0810EABC
|
|
.align 2, 0
|
|
_0810EA88: .4byte gScriptResult
|
|
_0810EA8C: .4byte gUnknown_0202E8DE
|
|
_0810EA90: .4byte gSaveBlock1
|
|
_0810EA94:
|
|
movs r0, 0x2
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0810EABC
|
|
ldr r0, _0810EAC4 @ =gScriptResult
|
|
strh r1, [r0]
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
bl sub_810EEDC
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x1D
|
|
movs r3, 0xC
|
|
bl MenuZeroFillWindowRect
|
|
adds r0, r6, 0
|
|
bl sub_810EC9C
|
|
_0810EABC:
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810EAC4: .4byte gScriptResult
|
|
thumb_func_end sub_810E984
|
|
|
|
thumb_func_start sub_810EAC8
|
|
sub_810EAC8: @ 810EAC8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
adds r5, r2, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r3, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0
|
|
ldr r0, _0810EAEC @ =gUnknown_0203925A
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
bhi _0810EAF0
|
|
movs r0, 0
|
|
b _0810EB78
|
|
.align 2, 0
|
|
_0810EAEC: .4byte gUnknown_0203925A
|
|
_0810EAF0:
|
|
cmp r1, 0x40
|
|
bne _0810EB04
|
|
cmp r2, 0
|
|
bne _0810EB18
|
|
ldr r0, _0810EB00 @ =gUnknown_0203925B
|
|
ldrb r4, [r0]
|
|
movs r7, 0x1
|
|
b _0810EB1C
|
|
.align 2, 0
|
|
_0810EB00: .4byte gUnknown_0203925B
|
|
_0810EB04:
|
|
cmp r3, 0x80
|
|
bne _0810EB18
|
|
cmp r5, 0x4
|
|
bne _0810EB18
|
|
ldr r0, _0810EB84 @ =gUnknown_0203925B
|
|
ldrb r0, [r0]
|
|
subs r0, 0x4
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r7, 0x1
|
|
_0810EB18:
|
|
cmp r7, 0
|
|
beq _0810EB76
|
|
_0810EB1C:
|
|
adds r0, r4, 0
|
|
movs r1, 0x5
|
|
bl sub_810EB90
|
|
movs r0, 0x2
|
|
movs r1, 0x1
|
|
movs r2, 0x7
|
|
movs r3, 0xA
|
|
bl MenuFillWindowRectWithBlankTile
|
|
movs r5, 0
|
|
ldr r2, _0810EB88 @ =gUnknown_03000760
|
|
lsls r1, r4, 2
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x10
|
|
beq _0810EB76
|
|
ldr r0, _0810EB8C @ =gUnknown_083F8380
|
|
mov r8, r0
|
|
adds r6, r2, 0
|
|
_0810EB44:
|
|
adds r0, r1, r6
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
add r0, r8
|
|
ldr r0, [r0]
|
|
lsls r2, r5, 1
|
|
adds r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r1, 0x1
|
|
bl MenuPrint
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x4
|
|
bhi _0810EB76
|
|
lsls r1, r4, 2
|
|
adds r0, r1, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x10
|
|
bne _0810EB44
|
|
_0810EB76:
|
|
adds r0, r7, 0
|
|
_0810EB78:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810EB84: .4byte gUnknown_0203925B
|
|
_0810EB88: .4byte gUnknown_03000760
|
|
_0810EB8C: .4byte gUnknown_083F8380
|
|
thumb_func_end sub_810EAC8
|
|
|
|
thumb_func_start sub_810EB90
|
|
sub_810EB90: @ 810EB90
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
cmp r4, 0
|
|
bne _0810EBB4
|
|
ldr r0, _0810EBB0 @ =gUnknown_0203925C
|
|
ldrb r1, [r0]
|
|
movs r2, 0x2
|
|
eors r1, r2
|
|
strb r1, [r0]
|
|
movs r0, 0
|
|
bl DestroyVerticalScrollIndicator
|
|
b _0810EBB8
|
|
.align 2, 0
|
|
_0810EBB0: .4byte gUnknown_0203925C
|
|
_0810EBB4:
|
|
bl sub_810ECB0
|
|
_0810EBB8:
|
|
adds r1, r4, r5
|
|
ldr r0, _0810EBC8 @ =gUnknown_0203925A
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bge _0810EBCC
|
|
bl sub_810ECD4
|
|
b _0810EBE0
|
|
.align 2, 0
|
|
_0810EBC8: .4byte gUnknown_0203925A
|
|
_0810EBCC:
|
|
cmp r1, r0
|
|
bne _0810EBE0
|
|
ldr r0, _0810EBE8 @ =gUnknown_0203925C
|
|
ldrb r1, [r0]
|
|
movs r2, 0x1
|
|
eors r1, r2
|
|
strb r1, [r0]
|
|
movs r0, 0x1
|
|
bl DestroyVerticalScrollIndicator
|
|
_0810EBE0:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810EBE8: .4byte gUnknown_0203925C
|
|
thumb_func_end sub_810EB90
|
|
|
|
thumb_func_start sub_810EBEC
|
|
sub_810EBEC: @ 810EBEC
|
|
push {lr}
|
|
ldr r0, _0810EC2C @ =sub_810EC34
|
|
movs r1, 0x9
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0810EC30 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
strh r2, [r1, 0x8]
|
|
strh r0, [r1, 0xA]
|
|
strh r0, [r1, 0xC]
|
|
strh r0, [r1, 0xE]
|
|
strh r2, [r1, 0x10]
|
|
movs r0, 0x3
|
|
strh r0, [r1, 0x12]
|
|
movs r0, 0
|
|
bl SetCameraPanningCallback
|
|
bl sub_810ECFC
|
|
movs r0, 0x59
|
|
bl PlaySE
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810EC2C: .4byte sub_810EC34
|
|
_0810EC30: .4byte gTasks
|
|
thumb_func_end sub_810EBEC
|
|
|
|
thumb_func_start sub_810EC34
|
|
sub_810EC34: @ 810EC34
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _0810EC98 @ =gTasks
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
movs r1, 0xA
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x12
|
|
ldrsh r1, [r4, r2]
|
|
bl __modsi3
|
|
cmp r0, 0
|
|
bne _0810EC92
|
|
strh r0, [r4, 0xA]
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
movs r1, 0xE
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _0810EC92
|
|
ldrh r0, [r4, 0x10]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x10]
|
|
movs r2, 0x10
|
|
ldrsh r1, [r4, r2]
|
|
movs r0, 0
|
|
bl SetCameraPanning
|
|
movs r1, 0xC
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x17
|
|
bne _0810EC92
|
|
movs r0, 0x49
|
|
bl PlaySE
|
|
adds r0, r5, 0
|
|
bl sub_810EC9C
|
|
bl InstallCameraPanAheadCallback
|
|
_0810EC92:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810EC98: .4byte gTasks
|
|
thumb_func_end sub_810EC34
|
|
|
|
thumb_func_start sub_810EC9C
|
|
sub_810EC9C: @ 810EC9C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl DestroyTask
|
|
bl EnableBothScriptContexts
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_810EC9C
|
|
|
|
thumb_func_start sub_810ECB0
|
|
sub_810ECB0: @ 810ECB0
|
|
push {lr}
|
|
ldr r2, _0810ECD0 @ =gUnknown_0203925C
|
|
ldrb r1, [r2]
|
|
lsrs r0, r1, 1
|
|
cmp r0, 0x1
|
|
beq _0810ECCC
|
|
movs r0, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0
|
|
movs r1, 0x24
|
|
movs r2, 0x8
|
|
bl CreateVerticalScrollIndicators
|
|
_0810ECCC:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810ECD0: .4byte gUnknown_0203925C
|
|
thumb_func_end sub_810ECB0
|
|
|
|
thumb_func_start sub_810ECD4
|
|
sub_810ECD4: @ 810ECD4
|
|
push {lr}
|
|
ldr r2, _0810ECF8 @ =gUnknown_0203925C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0810ECF2
|
|
movs r0, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0x1
|
|
movs r1, 0x24
|
|
movs r2, 0x48
|
|
bl CreateVerticalScrollIndicators
|
|
_0810ECF2:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810ECF8: .4byte gUnknown_0203925C
|
|
thumb_func_end sub_810ECD4
|
|
|
|
thumb_func_start sub_810ECFC
|
|
sub_810ECFC: @ 810ECFC
|
|
push {r4,lr}
|
|
ldr r4, _0810ED38 @ =sub_810ED40
|
|
adds r0, r4, 0
|
|
bl FuncIsActiveTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0810ED30
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0810ED3C @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r2, 0
|
|
strh r2, [r1, 0x8]
|
|
strh r0, [r1, 0xA]
|
|
strh r2, [r1, 0xC]
|
|
strh r2, [r1, 0xE]
|
|
strh r2, [r1, 0x10]
|
|
_0810ED30:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810ED38: .4byte sub_810ED40
|
|
_0810ED3C: .4byte gTasks
|
|
thumb_func_end sub_810ECFC
|
|
|
|
thumb_func_start sub_810ED40
|
|
sub_810ED40: @ 810ED40
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
ldr r1, _0810ED5C @ =gTasks
|
|
adds r0, r1
|
|
bl sub_810ED60
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810ED5C: .4byte gTasks
|
|
thumb_func_end sub_810ED40
|
|
|
|
thumb_func_start sub_810ED60
|
|
sub_810ED60: @ 810ED60
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0xE
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x8
|
|
beq _0810ED6E
|
|
b _0810EEB2
|
|
_0810ED6E:
|
|
movs r0, 0
|
|
strh r0, [r5, 0xE]
|
|
movs r1, 0x10
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
beq _0810EE14
|
|
ldr r2, _0810EDFC @ =0x00000e68
|
|
movs r0, 0x7
|
|
movs r1, 0x7
|
|
bl MapGridSetMetatileIdAt
|
|
ldr r4, _0810EE00 @ =0x00000e69
|
|
movs r0, 0x8
|
|
movs r1, 0x7
|
|
adds r2, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
movs r0, 0x9
|
|
movs r1, 0x7
|
|
adds r2, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
ldr r2, _0810EE04 @ =0x00000e6a
|
|
movs r0, 0xA
|
|
movs r1, 0x7
|
|
bl MapGridSetMetatileIdAt
|
|
movs r2, 0xE7
|
|
lsls r2, 4
|
|
movs r0, 0x7
|
|
movs r1, 0x8
|
|
bl MapGridSetMetatileIdAt
|
|
adds r4, 0x8
|
|
movs r0, 0x8
|
|
movs r1, 0x8
|
|
adds r2, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
movs r0, 0x9
|
|
movs r1, 0x8
|
|
adds r2, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
ldr r2, _0810EE08 @ =0x00000e72
|
|
movs r0, 0xA
|
|
movs r1, 0x8
|
|
bl MapGridSetMetatileIdAt
|
|
ldr r2, _0810EE0C @ =0x00000e78
|
|
movs r0, 0x7
|
|
movs r1, 0x9
|
|
bl MapGridSetMetatileIdAt
|
|
adds r4, 0x8
|
|
movs r0, 0x8
|
|
movs r1, 0x9
|
|
adds r2, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
movs r0, 0x9
|
|
movs r1, 0x9
|
|
adds r2, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
ldr r2, _0810EE10 @ =0x00000e7a
|
|
movs r0, 0xA
|
|
movs r1, 0x9
|
|
bl MapGridSetMetatileIdAt
|
|
b _0810EE92
|
|
.align 2, 0
|
|
_0810EDFC: .4byte 0x00000e68
|
|
_0810EE00: .4byte 0x00000e69
|
|
_0810EE04: .4byte 0x00000e6a
|
|
_0810EE08: .4byte 0x00000e72
|
|
_0810EE0C: .4byte 0x00000e78
|
|
_0810EE10: .4byte 0x00000e7a
|
|
_0810EE14:
|
|
ldr r2, _0810EEC0 @ =0x00000e6b
|
|
movs r0, 0x7
|
|
movs r1, 0x7
|
|
bl MapGridSetMetatileIdAt
|
|
ldr r4, _0810EEC4 @ =0x00000e6c
|
|
movs r0, 0x8
|
|
movs r1, 0x7
|
|
adds r2, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
movs r0, 0x9
|
|
movs r1, 0x7
|
|
adds r2, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
ldr r2, _0810EEC8 @ =0x00000e6d
|
|
movs r0, 0xA
|
|
movs r1, 0x7
|
|
bl MapGridSetMetatileIdAt
|
|
ldr r2, _0810EECC @ =0x00000e73
|
|
movs r0, 0x7
|
|
movs r1, 0x8
|
|
bl MapGridSetMetatileIdAt
|
|
adds r4, 0x8
|
|
movs r0, 0x8
|
|
movs r1, 0x8
|
|
adds r2, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
movs r0, 0x9
|
|
movs r1, 0x8
|
|
adds r2, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
ldr r2, _0810EED0 @ =0x00000e75
|
|
movs r0, 0xA
|
|
movs r1, 0x8
|
|
bl MapGridSetMetatileIdAt
|
|
ldr r2, _0810EED4 @ =0x00000e7b
|
|
movs r0, 0x7
|
|
movs r1, 0x9
|
|
bl MapGridSetMetatileIdAt
|
|
adds r4, 0x8
|
|
movs r0, 0x8
|
|
movs r1, 0x9
|
|
adds r2, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
movs r0, 0x9
|
|
movs r1, 0x9
|
|
adds r2, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
ldr r2, _0810EED8 @ =0x00000e7d
|
|
movs r0, 0xA
|
|
movs r1, 0x9
|
|
bl MapGridSetMetatileIdAt
|
|
_0810EE92:
|
|
bl DrawWholeMapView
|
|
ldrh r0, [r5, 0x10]
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
strh r0, [r5, 0x10]
|
|
ldrh r0, [r5, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x8
|
|
bne _0810EEB2
|
|
ldrb r0, [r5, 0xA]
|
|
bl DestroyTask
|
|
_0810EEB2:
|
|
ldrh r0, [r5, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0xE]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810EEC0: .4byte 0x00000e6b
|
|
_0810EEC4: .4byte 0x00000e6c
|
|
_0810EEC8: .4byte 0x00000e6d
|
|
_0810EECC: .4byte 0x00000e73
|
|
_0810EED0: .4byte 0x00000e75
|
|
_0810EED4: .4byte 0x00000e7b
|
|
_0810EED8: .4byte 0x00000e7d
|
|
thumb_func_end sub_810ED60
|
|
|
|
thumb_func_start sub_810EEDC
|
|
sub_810EEDC: @ 810EEDC
|
|
push {r4,lr}
|
|
ldr r4, _0810EF08 @ =gUnknown_0203925C
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0810EEF0
|
|
movs r0, 0x1
|
|
bl DestroyVerticalScrollIndicator
|
|
_0810EEF0:
|
|
ldrb r0, [r4]
|
|
lsrs r0, 1
|
|
cmp r0, 0x1
|
|
bne _0810EEFE
|
|
movs r0, 0
|
|
bl DestroyVerticalScrollIndicator
|
|
_0810EEFE:
|
|
bl BuyMenuFreeMemory
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810EF08: .4byte gUnknown_0203925C
|
|
thumb_func_end sub_810EEDC
|
|
|
|
thumb_func_start SetTrickHouseEndRoomFlag
|
|
SetTrickHouseEndRoomFlag: @ 810EF0C
|
|
push {lr}
|
|
ldr r1, _0810EF1C @ =gUnknown_0202E8CC
|
|
ldr r0, _0810EF20 @ =0x00000259
|
|
strh r0, [r1]
|
|
bl FlagSet
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810EF1C: .4byte gUnknown_0202E8CC
|
|
_0810EF20: .4byte 0x00000259
|
|
thumb_func_end SetTrickHouseEndRoomFlag
|
|
|
|
thumb_func_start ResetTrickHouseEndRoomFlag
|
|
ResetTrickHouseEndRoomFlag: @ 810EF24
|
|
push {lr}
|
|
ldr r1, _0810EF34 @ =gUnknown_0202E8CC
|
|
ldr r0, _0810EF38 @ =0x00000259
|
|
strh r0, [r1]
|
|
bl FlagReset
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810EF34: .4byte gUnknown_0202E8CC
|
|
_0810EF38: .4byte 0x00000259
|
|
thumb_func_end ResetTrickHouseEndRoomFlag
|
|
|
|
thumb_func_start CheckLeadMonCool
|
|
CheckLeadMonCool: @ 810EF3C
|
|
push {lr}
|
|
bl GetLeadMonIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldr r1, _0810EF5C @ =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x16
|
|
bl GetMonData
|
|
cmp r0, 0xC7
|
|
bls _0810EF60
|
|
movs r0, 0x1
|
|
b _0810EF62
|
|
.align 2, 0
|
|
_0810EF5C: .4byte gPlayerParty
|
|
_0810EF60:
|
|
movs r0, 0
|
|
_0810EF62:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CheckLeadMonCool
|
|
|
|
thumb_func_start CheckLeadMonBeauty
|
|
CheckLeadMonBeauty: @ 810EF68
|
|
push {lr}
|
|
bl GetLeadMonIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldr r1, _0810EF88 @ =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x17
|
|
bl GetMonData
|
|
cmp r0, 0xC7
|
|
bls _0810EF8C
|
|
movs r0, 0x1
|
|
b _0810EF8E
|
|
.align 2, 0
|
|
_0810EF88: .4byte gPlayerParty
|
|
_0810EF8C:
|
|
movs r0, 0
|
|
_0810EF8E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CheckLeadMonBeauty
|
|
|
|
thumb_func_start CheckLeadMonCute
|
|
CheckLeadMonCute: @ 810EF94
|
|
push {lr}
|
|
bl GetLeadMonIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldr r1, _0810EFB4 @ =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x18
|
|
bl GetMonData
|
|
cmp r0, 0xC7
|
|
bls _0810EFB8
|
|
movs r0, 0x1
|
|
b _0810EFBA
|
|
.align 2, 0
|
|
_0810EFB4: .4byte gPlayerParty
|
|
_0810EFB8:
|
|
movs r0, 0
|
|
_0810EFBA:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CheckLeadMonCute
|
|
|
|
thumb_func_start CheckLeadMonSmart
|
|
CheckLeadMonSmart: @ 810EFC0
|
|
push {lr}
|
|
bl GetLeadMonIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldr r1, _0810EFE0 @ =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x21
|
|
bl GetMonData
|
|
cmp r0, 0xC7
|
|
bls _0810EFE4
|
|
movs r0, 0x1
|
|
b _0810EFE6
|
|
.align 2, 0
|
|
_0810EFE0: .4byte gPlayerParty
|
|
_0810EFE4:
|
|
movs r0, 0
|
|
_0810EFE6:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CheckLeadMonSmart
|
|
|
|
thumb_func_start CheckLeadMonTough
|
|
CheckLeadMonTough: @ 810EFEC
|
|
push {lr}
|
|
bl GetLeadMonIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldr r1, _0810F00C @ =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x2F
|
|
bl GetMonData
|
|
cmp r0, 0xC7
|
|
bls _0810F010
|
|
movs r0, 0x1
|
|
b _0810F012
|
|
.align 2, 0
|
|
_0810F00C: .4byte gPlayerParty
|
|
_0810F010:
|
|
movs r0, 0
|
|
_0810F012:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CheckLeadMonTough
|
|
|
|
thumb_func_start IsGrassTypeInParty
|
|
IsGrassTypeInParty: @ 810F018
|
|
push {r4-r6,lr}
|
|
movs r5, 0
|
|
ldr r6, _0810F068 @ =gBaseStats
|
|
_0810F01E:
|
|
movs r0, 0x64
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, _0810F06C @ =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x5
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0810F074
|
|
adds r0, r4, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0810F074
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrb r0, [r1, 0x6]
|
|
cmp r0, 0xC
|
|
beq _0810F060
|
|
ldrb r0, [r1, 0x7]
|
|
cmp r0, 0xC
|
|
bne _0810F074
|
|
_0810F060:
|
|
ldr r1, _0810F070 @ =gScriptResult
|
|
movs r0, 0x1
|
|
b _0810F082
|
|
.align 2, 0
|
|
_0810F068: .4byte gBaseStats
|
|
_0810F06C: .4byte gPlayerParty
|
|
_0810F070: .4byte gScriptResult
|
|
_0810F074:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x5
|
|
bls _0810F01E
|
|
ldr r1, _0810F08C @ =gScriptResult
|
|
movs r0, 0
|
|
_0810F082:
|
|
strh r0, [r1]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810F08C: .4byte gScriptResult
|
|
thumb_func_end IsGrassTypeInParty
|
|
|
|
thumb_func_start ShowGlassWorkshopMenu
|
|
ShowGlassWorkshopMenu: @ 810F090
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
bl ScriptContext2_Enable
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0xA
|
|
movs r3, 0xB
|
|
bl MenuDrawTextWindow
|
|
movs r4, 0
|
|
str r4, [sp]
|
|
movs r0, 0x9
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
movs r3, 0x5
|
|
bl InitMenu
|
|
ldr r0, _0810F104 @ =gUnknown_0203925C
|
|
strb r4, [r0]
|
|
bl sub_80F944C
|
|
bl LoadScrollIndicatorPalette
|
|
bl sub_810F2B4
|
|
ldr r5, _0810F108 @ =gUnknown_083F83C0
|
|
_0810F0CA:
|
|
lsls r0, r4, 2
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
lsls r2, r4, 1
|
|
adds r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r1, 0x1
|
|
bl MenuPrint
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x4
|
|
bls _0810F0CA
|
|
ldr r1, _0810F10C @ =gUnknown_0203925B
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r1, _0810F110 @ =gUnknown_0203925A
|
|
movs r0, 0x8
|
|
strb r0, [r1]
|
|
ldr r0, _0810F114 @ =sub_810F118
|
|
movs r1, 0x8
|
|
bl CreateTask
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810F104: .4byte gUnknown_0203925C
|
|
_0810F108: .4byte gUnknown_083F83C0
|
|
_0810F10C: .4byte gUnknown_0203925B
|
|
_0810F110: .4byte gUnknown_0203925A
|
|
_0810F114: .4byte sub_810F118
|
|
thumb_func_end ShowGlassWorkshopMenu
|
|
|
|
thumb_func_start sub_810F118
|
|
sub_810F118: @ 810F118
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, _0810F1E4 @ =gMain
|
|
ldrh r0, [r0, 0x2E]
|
|
cmp r0, 0x40
|
|
bne _0810F14A
|
|
ldr r1, _0810F1E8 @ =gUnknown_0203925B
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0810F14A
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
bl GetMenuCursorPos
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
bl MoveMenuCursorNoWrap
|
|
adds r0, r4, 0
|
|
movs r1, 0x40
|
|
bl sub_810F1F4
|
|
_0810F14A:
|
|
ldr r0, _0810F1E4 @ =gMain
|
|
ldrh r0, [r0, 0x2E]
|
|
cmp r0, 0x80
|
|
bne _0810F17A
|
|
ldr r2, _0810F1E8 @ =gUnknown_0203925B
|
|
ldrb r1, [r2]
|
|
ldr r0, _0810F1EC @ =gUnknown_0203925A
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r1, r0
|
|
beq _0810F17A
|
|
adds r0, r1, 0x1
|
|
strb r0, [r2]
|
|
bl GetMenuCursorPos
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r0, 0x1
|
|
bl MoveMenuCursorNoWrap
|
|
adds r0, r4, 0
|
|
movs r1, 0x80
|
|
bl sub_810F1F4
|
|
_0810F17A:
|
|
ldr r4, _0810F1E4 @ =gMain
|
|
ldrh r1, [r4, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0810F1AE
|
|
bl sub_8072DEC
|
|
ldr r0, _0810F1F0 @ =gScriptResult
|
|
ldr r1, _0810F1E8 @ =gUnknown_0203925B
|
|
ldrb r1, [r1]
|
|
strh r1, [r0]
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
bl sub_810EEDC
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x1D
|
|
movs r3, 0xC
|
|
bl MenuZeroFillWindowRect
|
|
adds r0, r5, 0
|
|
bl sub_810EC9C
|
|
_0810F1AE:
|
|
ldrh r1, [r4, 0x2E]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0810F1DE
|
|
bl sub_8072DEC
|
|
ldr r1, _0810F1F0 @ =gScriptResult
|
|
movs r0, 0x7F
|
|
strh r0, [r1]
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
bl sub_810EEDC
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x1D
|
|
movs r3, 0xC
|
|
bl MenuZeroFillWindowRect
|
|
adds r0, r5, 0
|
|
bl sub_810EC9C
|
|
_0810F1DE:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810F1E4: .4byte gMain
|
|
_0810F1E8: .4byte gUnknown_0203925B
|
|
_0810F1EC: .4byte gUnknown_0203925A
|
|
_0810F1F0: .4byte gScriptResult
|
|
thumb_func_end sub_810F118
|
|
|
|
thumb_func_start sub_810F1F4
|
|
sub_810F1F4: @ 810F1F4
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
adds r5, r2, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r3, r1, 0
|
|
movs r6, 0
|
|
movs r4, 0
|
|
ldr r0, _0810F214 @ =gUnknown_0203925A
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
bhi _0810F218
|
|
movs r0, 0
|
|
b _0810F282
|
|
.align 2, 0
|
|
_0810F214: .4byte gUnknown_0203925A
|
|
_0810F218:
|
|
cmp r1, 0x40
|
|
bne _0810F22C
|
|
cmp r2, 0
|
|
bne _0810F240
|
|
ldr r0, _0810F228 @ =gUnknown_0203925B
|
|
ldrb r4, [r0]
|
|
movs r6, 0x1
|
|
b _0810F244
|
|
.align 2, 0
|
|
_0810F228: .4byte gUnknown_0203925B
|
|
_0810F22C:
|
|
cmp r3, 0x80
|
|
bne _0810F240
|
|
cmp r5, 0x4
|
|
bne _0810F240
|
|
ldr r0, _0810F288 @ =gUnknown_0203925B
|
|
ldrb r0, [r0]
|
|
subs r0, 0x4
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r6, 0x1
|
|
_0810F240:
|
|
cmp r6, 0
|
|
beq _0810F280
|
|
_0810F244:
|
|
adds r0, r4, 0
|
|
movs r1, 0x5
|
|
bl GlassWorkshopUpdateScrollIndicators
|
|
movs r0, 0x2
|
|
movs r1, 0x1
|
|
movs r2, 0x9
|
|
movs r3, 0xA
|
|
bl MenuFillWindowRectWithBlankTile
|
|
movs r5, 0
|
|
ldr r7, _0810F28C @ =gUnknown_083F83C0
|
|
_0810F25C:
|
|
lsls r0, r4, 2
|
|
adds r0, r7
|
|
ldr r0, [r0]
|
|
lsls r2, r5, 1
|
|
adds r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r1, 0x1
|
|
bl MenuPrint
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x4
|
|
bls _0810F25C
|
|
_0810F280:
|
|
adds r0, r6, 0
|
|
_0810F282:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810F288: .4byte gUnknown_0203925B
|
|
_0810F28C: .4byte gUnknown_083F83C0
|
|
thumb_func_end sub_810F1F4
|
|
|
|
thumb_func_start sub_810F290
|
|
sub_810F290: @ 810F290
|
|
push {lr}
|
|
ldr r2, _0810F2B0 @ =gUnknown_0203925C
|
|
ldrb r1, [r2]
|
|
lsrs r0, r1, 1
|
|
cmp r0, 0x1
|
|
beq _0810F2AC
|
|
movs r0, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0
|
|
movs r1, 0x2C
|
|
movs r2, 0x8
|
|
bl CreateVerticalScrollIndicators
|
|
_0810F2AC:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810F2B0: .4byte gUnknown_0203925C
|
|
thumb_func_end sub_810F290
|
|
|
|
thumb_func_start sub_810F2B4
|
|
sub_810F2B4: @ 810F2B4
|
|
push {lr}
|
|
ldr r2, _0810F2D8 @ =gUnknown_0203925C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0810F2D2
|
|
movs r0, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0x1
|
|
movs r1, 0x2C
|
|
movs r2, 0x58
|
|
bl CreateVerticalScrollIndicators
|
|
_0810F2D2:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810F2D8: .4byte gUnknown_0203925C
|
|
thumb_func_end sub_810F2B4
|
|
|
|
thumb_func_start GlassWorkshopUpdateScrollIndicators
|
|
GlassWorkshopUpdateScrollIndicators: @ 810F2DC
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
cmp r4, 0
|
|
bne _0810F300
|
|
ldr r0, _0810F2FC @ =gUnknown_0203925C
|
|
ldrb r1, [r0]
|
|
movs r2, 0x2
|
|
eors r1, r2
|
|
strb r1, [r0]
|
|
movs r0, 0
|
|
bl DestroyVerticalScrollIndicator
|
|
b _0810F304
|
|
.align 2, 0
|
|
_0810F2FC: .4byte gUnknown_0203925C
|
|
_0810F300:
|
|
bl sub_810F290
|
|
_0810F304:
|
|
adds r1, r4, r5
|
|
ldr r0, _0810F314 @ =gUnknown_0203925A
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bge _0810F318
|
|
bl sub_810F2B4
|
|
b _0810F32C
|
|
.align 2, 0
|
|
_0810F314: .4byte gUnknown_0203925A
|
|
_0810F318:
|
|
cmp r1, r0
|
|
bne _0810F32C
|
|
ldr r0, _0810F334 @ =gUnknown_0203925C
|
|
ldrb r1, [r0]
|
|
movs r2, 0x1
|
|
eors r1, r2
|
|
strb r1, [r0]
|
|
movs r0, 0x1
|
|
bl DestroyVerticalScrollIndicator
|
|
_0810F32C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810F334: .4byte gUnknown_0203925C
|
|
thumb_func_end GlassWorkshopUpdateScrollIndicators
|
|
|
|
thumb_func_start SpawnCameraDummy
|
|
SpawnCameraDummy: @ 810F338
|
|
push {lr}
|
|
sub sp, 0x8
|
|
ldr r0, _0810F380 @ =gSaveBlock1
|
|
ldrh r3, [r0]
|
|
adds r3, 0x7
|
|
lsls r3, 16
|
|
asrs r3, 16
|
|
ldrh r0, [r0, 0x2]
|
|
adds r0, 0x7
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
str r0, [sp]
|
|
movs r0, 0x3
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x7
|
|
movs r1, 0x8
|
|
movs r2, 0x7F
|
|
bl SpawnSpecialFieldObjectParametrized
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0810F384 @ =gMapObjects
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r0, [r1, 0x1]
|
|
movs r2, 0x20
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x1]
|
|
ldrb r0, [r1, 0x4]
|
|
bl CameraObjectSetFollowedObjectId
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810F380: .4byte gSaveBlock1
|
|
_0810F384: .4byte gMapObjects
|
|
thumb_func_end SpawnCameraDummy
|
|
|
|
thumb_func_start RemoveCameraDummy
|
|
RemoveCameraDummy: @ 810F388
|
|
push {lr}
|
|
bl GetPlayerAvatarObjectId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl CameraObjectSetFollowedObjectId
|
|
ldr r0, _0810F3A8 @ =gSaveBlock1
|
|
ldrb r1, [r0, 0x5]
|
|
ldrb r2, [r0, 0x4]
|
|
movs r0, 0x7F
|
|
bl RemoveFieldObjectByLocalIdAndMap
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810F3A8: .4byte gSaveBlock1
|
|
thumb_func_end RemoveCameraDummy
|
|
|
|
thumb_func_start GetPokeblockNameByMonNature
|
|
GetPokeblockNameByMonNature: @ 810F3AC
|
|
push {lr}
|
|
bl GetLeadMonIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldr r1, _0810F3D4 @ =gPlayerParty
|
|
adds r0, r1
|
|
bl GetNature
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0810F3D8 @ =gStringVar1
|
|
bl sub_810CB68
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810F3D4: .4byte gPlayerParty
|
|
_0810F3D8: .4byte gStringVar1
|
|
thumb_func_end GetPokeblockNameByMonNature
|
|
|
|
thumb_func_start GetSecretBaseNearbyMapName
|
|
GetSecretBaseNearbyMapName: @ 810F3DC
|
|
push {r4,lr}
|
|
ldr r4, _0810F3FC @ =gStringVar1
|
|
ldr r0, _0810F400 @ =0x00004026
|
|
bl VarGet
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_80FBFB4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810F3FC: .4byte gStringVar1
|
|
_0810F400: .4byte 0x00004026
|
|
thumb_func_end GetSecretBaseNearbyMapName
|
|
|
|
thumb_func_start sub_810F404
|
|
sub_810F404: @ 810F404
|
|
push {lr}
|
|
movs r0, 0x20
|
|
bl sub_8053108
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810F404
|
|
|
|
thumb_func_start sub_810F414
|
|
sub_810F414: @ 810F414
|
|
push {lr}
|
|
ldr r0, _0810F420 @ =gStringVar1
|
|
bl sub_8135FF4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810F420: .4byte gStringVar1
|
|
thumb_func_end sub_810F414
|
|
|
|
thumb_func_start sub_810F424
|
|
sub_810F424: @ 810F424
|
|
push {r4,r5,lr}
|
|
ldr r2, _0810F458 @ =gSaveBlock1
|
|
ldr r1, _0810F45C @ =0x00002dd4
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
lsls r1, 25
|
|
ldr r0, _0810F460 @ =0x00002dd6
|
|
adds r2, r0
|
|
lsrs r1, 25
|
|
ldrh r2, [r2]
|
|
adds r1, r2
|
|
ldr r2, _0810F464 @ =gUnknown_083F83E0
|
|
ldr r0, _0810F468 @ =gUnknown_0202E8CC
|
|
ldrh r0, [r0]
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
adds r5, r1, r0
|
|
movs r0, 0x2
|
|
bl GetPriceReduction
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0810F470
|
|
ldr r4, _0810F46C @ =gUnknown_083F83EC
|
|
b _0810F472
|
|
.align 2, 0
|
|
_0810F458: .4byte gSaveBlock1
|
|
_0810F45C: .4byte 0x00002dd4
|
|
_0810F460: .4byte 0x00002dd6
|
|
_0810F464: .4byte gUnknown_083F83E0
|
|
_0810F468: .4byte gUnknown_0202E8CC
|
|
_0810F46C: .4byte gUnknown_083F83EC
|
|
_0810F470:
|
|
ldr r4, _0810F484 @ =gUnknown_083F83F8
|
|
_0810F472:
|
|
adds r0, r5, 0
|
|
movs r1, 0xC
|
|
bl __umodsi3
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810F484: .4byte gUnknown_083F83F8
|
|
thumb_func_end sub_810F424
|
|
|
|
thumb_func_start sub_810F488
|
|
sub_810F488: @ 810F488
|
|
push {lr}
|
|
ldr r1, _0810F4A0 @ =gUnknown_0202E8CC
|
|
ldr r0, _0810F4A4 @ =0x00000277
|
|
strh r0, [r1]
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0810F4A8
|
|
movs r0, 0x1
|
|
b _0810F4AA
|
|
.align 2, 0
|
|
_0810F4A0: .4byte gUnknown_0202E8CC
|
|
_0810F4A4: .4byte 0x00000277
|
|
_0810F4A8:
|
|
movs r0, 0
|
|
_0810F4AA:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810F488
|
|
|
|
thumb_func_start sub_810F4B0
|
|
sub_810F4B0: @ 810F4B0
|
|
push {lr}
|
|
ldr r1, _0810F4C8 @ =gUnknown_0202E8CC
|
|
movs r0, 0x9E
|
|
lsls r0, 2
|
|
strh r0, [r1]
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0810F4CC
|
|
movs r0, 0x1
|
|
b _0810F4CE
|
|
.align 2, 0
|
|
_0810F4C8: .4byte gUnknown_0202E8CC
|
|
_0810F4CC:
|
|
movs r0, 0
|
|
_0810F4CE:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810F4B0
|
|
|
|
thumb_func_start sub_810F4D4
|
|
sub_810F4D4: @ 810F4D4
|
|
push {lr}
|
|
ldr r1, _0810F4EC @ =gUnknown_0202E8CC
|
|
ldr r0, _0810F4F0 @ =0x00000279
|
|
strh r0, [r1]
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0810F4F4
|
|
movs r0, 0x1
|
|
b _0810F4F6
|
|
.align 2, 0
|
|
_0810F4EC: .4byte gUnknown_0202E8CC
|
|
_0810F4F0: .4byte 0x00000279
|
|
_0810F4F4:
|
|
movs r0, 0
|
|
_0810F4F6:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810F4D4
|
|
|
|
thumb_func_start sub_810F4FC
|
|
sub_810F4FC: @ 810F4FC
|
|
push {lr}
|
|
ldr r1, _0810F514 @ =gUnknown_0202E8CC
|
|
ldr r0, _0810F518 @ =0x0000027a
|
|
strh r0, [r1]
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0810F51C
|
|
movs r0, 0x1
|
|
b _0810F51E
|
|
.align 2, 0
|
|
_0810F514: .4byte gUnknown_0202E8CC
|
|
_0810F518: .4byte 0x0000027a
|
|
_0810F51C:
|
|
movs r0, 0
|
|
_0810F51E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810F4FC
|
|
|
|
thumb_func_start LeadMonHasEffortRibbon
|
|
LeadMonHasEffortRibbon: @ 810F524
|
|
push {lr}
|
|
bl GetLeadMonIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldr r1, _0810F548 @ =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x47
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810F548: .4byte gPlayerParty
|
|
thumb_func_end LeadMonHasEffortRibbon
|
|
|
|
thumb_func_start GivLeadMonEffortRibbon
|
|
GivLeadMonEffortRibbon: @ 810F54C
|
|
push {lr}
|
|
sub sp, 0x4
|
|
movs r0, 0x2A
|
|
bl sav12_xor_increment
|
|
ldr r0, _0810F580 @ =0x0000083b
|
|
bl FlagSet
|
|
movs r1, 0x1
|
|
mov r0, sp
|
|
strb r1, [r0]
|
|
bl GetLeadMonIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldr r1, _0810F584 @ =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x47
|
|
mov r2, sp
|
|
bl SetMonData
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810F580: .4byte 0x0000083b
|
|
_0810F584: .4byte gPlayerParty
|
|
thumb_func_end GivLeadMonEffortRibbon
|
|
|
|
thumb_func_start GetLeadMonEVCount
|
|
GetLeadMonEVCount: @ 810F588
|
|
push {lr}
|
|
bl GetLeadMonIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldr r1, _0810F5AC @ =gPlayerParty
|
|
adds r0, r1
|
|
bl GetMonEVCount
|
|
lsls r0, 16
|
|
ldr r1, _0810F5B0 @ =0x01fd0000
|
|
cmp r0, r1
|
|
bhi _0810F5B4
|
|
movs r0, 0
|
|
b _0810F5B6
|
|
.align 2, 0
|
|
_0810F5AC: .4byte gPlayerParty
|
|
_0810F5B0: .4byte 0x01fd0000
|
|
_0810F5B4:
|
|
movs r0, 0x1
|
|
_0810F5B6:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetLeadMonEVCount
|
|
|
|
thumb_func_start sub_810F5BC
|
|
sub_810F5BC: @ 810F5BC
|
|
push {lr}
|
|
movs r0, 0xC7
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0810F610
|
|
ldr r0, _0810F5E8 @ =gSaveBlock1
|
|
ldrh r1, [r0, 0x4]
|
|
movs r0, 0x83
|
|
lsls r0, 3
|
|
cmp r1, r0
|
|
bne _0810F610
|
|
subs r0, 0x75
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0810F5F0
|
|
ldr r0, _0810F5EC @ =0x0000409a
|
|
movs r1, 0x4
|
|
b _0810F602
|
|
.align 2, 0
|
|
_0810F5E8: .4byte gSaveBlock1
|
|
_0810F5EC: .4byte 0x0000409a
|
|
_0810F5F0:
|
|
movs r0, 0xE9
|
|
lsls r0, 2
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0810F610
|
|
ldr r0, _0810F60C @ =0x0000409a
|
|
movs r1, 0x5
|
|
_0810F602:
|
|
bl VarSet
|
|
movs r0, 0x1
|
|
b _0810F612
|
|
.align 2, 0
|
|
_0810F60C: .4byte 0x0000409a
|
|
_0810F610:
|
|
movs r0, 0
|
|
_0810F612:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810F5BC
|
|
|
|
thumb_func_start sub_810F618
|
|
sub_810F618: @ 810F618
|
|
push {lr}
|
|
ldr r0, _0810F624 @ =0x0000085f
|
|
bl FlagSet
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810F624: .4byte 0x0000085f
|
|
thumb_func_end sub_810F618
|
|
|
|
thumb_func_start PutZigzagoonInPlayerParty
|
|
PutZigzagoonInPlayerParty: @ 810F628
|
|
push {r4,r5,lr}
|
|
sub sp, 0x14
|
|
ldr r5, _0810F690 @ =gPlayerParty
|
|
movs r1, 0x90
|
|
lsls r1, 1
|
|
movs r4, 0
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
str r4, [sp, 0xC]
|
|
adds r0, r5, 0
|
|
movs r2, 0x7
|
|
movs r3, 0x20
|
|
bl CreateMon
|
|
movs r1, 0x1
|
|
add r0, sp, 0x10
|
|
strh r1, [r0]
|
|
adds r0, r5, 0
|
|
movs r1, 0x2E
|
|
add r2, sp, 0x10
|
|
bl SetMonData
|
|
add r1, sp, 0x10
|
|
movs r0, 0x21
|
|
strh r0, [r1]
|
|
adds r0, r5, 0
|
|
movs r1, 0xD
|
|
add r2, sp, 0x10
|
|
bl SetMonData
|
|
add r0, sp, 0x10
|
|
strh r4, [r0]
|
|
adds r0, r5, 0
|
|
movs r1, 0xE
|
|
add r2, sp, 0x10
|
|
bl SetMonData
|
|
adds r0, r5, 0
|
|
movs r1, 0xF
|
|
add r2, sp, 0x10
|
|
bl SetMonData
|
|
adds r0, r5, 0
|
|
movs r1, 0x10
|
|
add r2, sp, 0x10
|
|
bl SetMonData
|
|
add sp, 0x14
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810F690: .4byte gPlayerParty
|
|
thumb_func_end PutZigzagoonInPlayerParty
|
|
|
|
thumb_func_start IsStarterInParty
|
|
IsStarterInParty: @ 810F694
|
|
push {r4-r6,lr}
|
|
ldr r0, _0810F6D0 @ =0x00004023
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl GetStarterPokemon
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
bl CalculatePlayerPartyCount
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bcs _0810F6E2
|
|
_0810F6B6:
|
|
movs r0, 0x64
|
|
muls r0, r4
|
|
ldr r1, _0810F6D4 @ =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x41
|
|
movs r2, 0
|
|
bl GetMonData
|
|
cmp r0, r6
|
|
bne _0810F6D8
|
|
movs r0, 0x1
|
|
b _0810F6E4
|
|
.align 2, 0
|
|
_0810F6D0: .4byte 0x00004023
|
|
_0810F6D4: .4byte gPlayerParty
|
|
_0810F6D8:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _0810F6B6
|
|
_0810F6E2:
|
|
movs r0, 0
|
|
_0810F6E4:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end IsStarterInParty
|
|
|
|
thumb_func_start CheckFreePokemonStorageSpace
|
|
CheckFreePokemonStorageSpace: @ 810F6EC
|
|
push {r4-r6,lr}
|
|
movs r5, 0
|
|
_0810F6F0:
|
|
movs r4, 0
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r6, r0, 5
|
|
_0810F6FC:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 4
|
|
ldr r1, _0810F718 @ =gUnknown_020300A4
|
|
adds r0, r1
|
|
adds r0, r6, r0
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
bl GetBoxMonData
|
|
cmp r0, 0
|
|
bne _0810F71C
|
|
movs r0, 0x1
|
|
b _0810F732
|
|
.align 2, 0
|
|
_0810F718: .4byte gUnknown_020300A4
|
|
_0810F71C:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0x1D
|
|
bls _0810F6FC
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, 0xD
|
|
bls _0810F6F0
|
|
movs r0, 0
|
|
_0810F732:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CheckFreePokemonStorageSpace
|
|
|
|
thumb_func_start IsPokerusInParty
|
|
IsPokerusInParty: @ 810F738
|
|
push {lr}
|
|
ldr r0, _0810F74C @ =gPlayerParty
|
|
movs r1, 0x3F
|
|
bl CheckPartyPokerus
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0810F750
|
|
movs r0, 0x1
|
|
b _0810F752
|
|
.align 2, 0
|
|
_0810F74C: .4byte gPlayerParty
|
|
_0810F750:
|
|
movs r0, 0
|
|
_0810F752:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end IsPokerusInParty
|
|
|
|
thumb_func_start sub_810F758
|
|
sub_810F758: @ 810F758
|
|
push {lr}
|
|
ldr r0, _0810F798 @ =sub_810F7A8
|
|
movs r1, 0x9
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0810F79C @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldr r0, _0810F7A0 @ =gUnknown_0202E8CE
|
|
ldrh r2, [r0]
|
|
movs r0, 0
|
|
strh r2, [r1, 0x8]
|
|
strh r0, [r1, 0xA]
|
|
strh r0, [r1, 0xC]
|
|
strh r0, [r1, 0xE]
|
|
ldr r0, _0810F7A4 @ =gUnknown_0202E8CC
|
|
ldrh r0, [r0]
|
|
strh r0, [r1, 0x10]
|
|
movs r0, 0x5
|
|
strh r0, [r1, 0x12]
|
|
movs r0, 0
|
|
bl SetCameraPanningCallback
|
|
movs r0, 0xD6
|
|
bl PlaySE
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810F798: .4byte sub_810F7A8
|
|
_0810F79C: .4byte gTasks
|
|
_0810F7A0: .4byte gUnknown_0202E8CE
|
|
_0810F7A4: .4byte gUnknown_0202E8CC
|
|
thumb_func_end sub_810F758
|
|
|
|
thumb_func_start sub_810F7A8
|
|
sub_810F7A8: @ 810F7A8
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _0810F810 @ =gTasks
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
movs r1, 0xA
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x12
|
|
ldrsh r1, [r4, r2]
|
|
bl __modsi3
|
|
cmp r0, 0
|
|
bne _0810F808
|
|
strh r0, [r4, 0xA]
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
movs r1, 0xE
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _0810F808
|
|
ldrh r0, [r4, 0x8]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x8]
|
|
ldrh r0, [r4, 0x10]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x10]
|
|
movs r2, 0x8
|
|
ldrsh r0, [r4, r2]
|
|
movs r2, 0x10
|
|
ldrsh r1, [r4, r2]
|
|
bl SetCameraPanning
|
|
movs r1, 0xC
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x8
|
|
bne _0810F808
|
|
adds r0, r5, 0
|
|
bl sub_810F814
|
|
bl InstallCameraPanAheadCallback
|
|
_0810F808:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810F810: .4byte gTasks
|
|
thumb_func_end sub_810F7A8
|
|
|
|
thumb_func_start sub_810F814
|
|
sub_810F814: @ 810F814
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl DestroyTask
|
|
bl EnableBothScriptContexts
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_810F814
|
|
|
|
thumb_func_start sub_810F828
|
|
sub_810F828: @ 810F828
|
|
push {lr}
|
|
movs r0, 0xAE
|
|
lsls r0, 2
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810F828
|
|
|
|
thumb_func_start SetRoute119Weather
|
|
SetRoute119Weather: @ 810F83C
|
|
push {lr}
|
|
bl get_map_light_from_warp0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl is_light_level_1_2_3_5_or_6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0810F858
|
|
movs r0, 0x14
|
|
bl SetSav1Weather
|
|
_0810F858:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end SetRoute119Weather
|
|
|
|
thumb_func_start SetRoute123Weather
|
|
SetRoute123Weather: @ 810F85C
|
|
push {lr}
|
|
bl get_map_light_from_warp0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl is_light_level_1_2_3_5_or_6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0810F878
|
|
movs r0, 0x15
|
|
bl SetSav1Weather
|
|
_0810F878:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end SetRoute123Weather
|
|
|
|
thumb_func_start GetLeadMonIndex
|
|
GetLeadMonIndex: @ 810F87C
|
|
push {r4-r6,lr}
|
|
bl CalculatePlayerPartyCount
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r5, 0
|
|
cmp r5, r6
|
|
bcs _0810F8CA
|
|
_0810F88C:
|
|
movs r0, 0x64
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, _0810F8BC @ =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
movs r2, 0
|
|
bl GetMonData
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
beq _0810F8C0
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
movs r2, 0
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0810F8C0
|
|
adds r0, r5, 0
|
|
b _0810F8CC
|
|
.align 2, 0
|
|
_0810F8BC: .4byte gPlayerParty
|
|
_0810F8C0:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, r6
|
|
bcc _0810F88C
|
|
_0810F8CA:
|
|
movs r0, 0
|
|
_0810F8CC:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetLeadMonIndex
|
|
|
|
thumb_func_start ScriptGetPartyMonSpecies
|
|
ScriptGetPartyMonSpecies: @ 810F8D4
|
|
push {lr}
|
|
ldr r0, _0810F8F4 @ =gUnknown_0202E8CC
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _0810F8F8 @ =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x41
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810F8F4: .4byte gUnknown_0202E8CC
|
|
_0810F8F8: .4byte gPlayerParty
|
|
thumb_func_end ScriptGetPartyMonSpecies
|
|
|
|
thumb_func_start sub_810F8FC
|
|
sub_810F8FC: @ 810F8FC
|
|
push {lr}
|
|
movs r0, 0x6
|
|
bl sub_805ADDC
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_810F8FC
|
|
|
|
thumb_func_start sub_810F908
|
|
sub_810F908: @ 810F908
|
|
push {r4,lr}
|
|
ldr r0, _0810F928 @ =0x000040c2
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r3, r0, 0
|
|
ldr r2, _0810F92C @ =gLocalTime
|
|
movs r1, 0
|
|
ldrsh r0, [r2, r1]
|
|
subs r0, r3
|
|
cmp r0, 0x6
|
|
ble _0810F930
|
|
movs r0, 0
|
|
b _0810F948
|
|
.align 2, 0
|
|
_0810F928: .4byte 0x000040c2
|
|
_0810F92C: .4byte gLocalTime
|
|
_0810F930:
|
|
ldrh r1, [r2]
|
|
movs r4, 0
|
|
ldrsh r0, [r2, r4]
|
|
cmp r0, 0
|
|
blt _0810F946
|
|
subs r1, r3
|
|
movs r0, 0x7
|
|
subs r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
b _0810F948
|
|
_0810F946:
|
|
movs r0, 0x8
|
|
_0810F948:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810F908
|
|
|
|
thumb_func_start sub_810F950
|
|
sub_810F950: @ 810F950
|
|
push {r4,lr}
|
|
ldr r0, _0810F964 @ =0x000040c2
|
|
ldr r4, _0810F968 @ =gLocalTime
|
|
ldrh r1, [r4]
|
|
bl VarSet
|
|
ldrh r0, [r4]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810F964: .4byte 0x000040c2
|
|
_0810F968: .4byte gLocalTime
|
|
thumb_func_end sub_810F950
|
|
|
|
thumb_func_start sub_810F96C
|
|
sub_810F96C: @ 810F96C
|
|
push {r4,lr}
|
|
ldr r0, _0810F994 @ =gUnknown_0202E8CC
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _0810F998 @ =gPlayerParty
|
|
adds r0, r1
|
|
ldr r4, _0810F99C @ =gStringVar1
|
|
movs r1, 0x7
|
|
adds r2, r4, 0
|
|
bl GetMonData
|
|
ldr r0, _0810F9A0 @ =gSaveBlock2
|
|
adds r1, r4, 0
|
|
bl StringCompareWithoutExtCtrlCodes
|
|
cmp r0, 0
|
|
beq _0810F9A4
|
|
movs r0, 0x1
|
|
b _0810F9A6
|
|
.align 2, 0
|
|
_0810F994: .4byte gUnknown_0202E8CC
|
|
_0810F998: .4byte gPlayerParty
|
|
_0810F99C: .4byte gStringVar1
|
|
_0810F9A0: .4byte gSaveBlock2
|
|
_0810F9A4:
|
|
movs r0, 0
|
|
_0810F9A6:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810F96C
|
|
|
|
thumb_func_start sub_810F9AC
|
|
sub_810F9AC: @ 810F9AC
|
|
push {r4,r5,lr}
|
|
ldr r2, _0810F9C0 @ =gScriptResult
|
|
ldrh r1, [r2]
|
|
ldr r0, _0810F9C4 @ =0x0000270f
|
|
cmp r1, r0
|
|
bls _0810F9C8
|
|
movs r0, 0
|
|
bl sub_80BF088
|
|
b _0810FA4A
|
|
.align 2, 0
|
|
_0810F9C0: .4byte gScriptResult
|
|
_0810F9C4: .4byte 0x0000270f
|
|
_0810F9C8:
|
|
ldr r0, _0810F9D8 @ =0x000003e7
|
|
cmp r1, r0
|
|
bls _0810F9E0
|
|
ldr r4, _0810F9DC @ =gStringVar1
|
|
movs r0, 0xA1
|
|
strb r0, [r4]
|
|
adds r4, 0x1
|
|
b _0810FA04
|
|
.align 2, 0
|
|
_0810F9D8: .4byte 0x000003e7
|
|
_0810F9DC: .4byte gStringVar1
|
|
_0810F9E0:
|
|
cmp r1, 0x63
|
|
bls _0810F9F4
|
|
ldr r4, _0810F9F0 @ =gStringVar1
|
|
movs r0, 0xA1
|
|
strb r0, [r4]
|
|
strb r0, [r4, 0x1]
|
|
adds r4, 0x2
|
|
b _0810FA04
|
|
.align 2, 0
|
|
_0810F9F0: .4byte gStringVar1
|
|
_0810F9F4:
|
|
cmp r1, 0x9
|
|
bls _0810FA24
|
|
ldr r4, _0810FA20 @ =gStringVar1
|
|
movs r0, 0xA1
|
|
strb r0, [r4]
|
|
strb r0, [r4, 0x1]
|
|
strb r0, [r4, 0x2]
|
|
adds r4, 0x3
|
|
_0810FA04:
|
|
ldrh r5, [r2]
|
|
adds r0, r5, 0
|
|
bl sub_80BF0B8
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl ConvertIntToDecimalStringN
|
|
b _0810FA4A
|
|
.align 2, 0
|
|
_0810FA20: .4byte gStringVar1
|
|
_0810FA24:
|
|
ldr r4, _0810FA50 @ =gStringVar1
|
|
movs r0, 0xA1
|
|
strb r0, [r4]
|
|
strb r0, [r4, 0x1]
|
|
strb r0, [r4, 0x2]
|
|
strb r0, [r4, 0x3]
|
|
adds r4, 0x4
|
|
ldrh r5, [r2]
|
|
adds r0, r5, 0
|
|
bl sub_80BF0B8
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl ConvertIntToDecimalStringN
|
|
_0810FA4A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810FA50: .4byte gStringVar1
|
|
thumb_func_end sub_810F9AC
|
|
|
|
thumb_func_start sub_810FA54
|
|
sub_810FA54: @ 810FA54
|
|
ldr r0, _0810FA68 @ =gSaveBlock1
|
|
ldr r2, _0810FA6C @ =0x000013c2
|
|
adds r1, r0, r2
|
|
movs r2, 0
|
|
strh r2, [r1]
|
|
ldr r1, _0810FA70 @ =0x000013c4
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0810FA68: .4byte gSaveBlock1
|
|
_0810FA6C: .4byte 0x000013c2
|
|
_0810FA70: .4byte 0x000013c4
|
|
thumb_func_end sub_810FA54
|
|
|
|
thumb_func_start sub_810FA74
|
|
sub_810FA74: @ 810FA74
|
|
push {lr}
|
|
bl sub_810FF30
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0810FA90
|
|
bl sub_810FCE8
|
|
ldr r0, _0810FA94 @ =gSaveBlock1
|
|
ldr r1, _0810FA98 @ =gSaveBlock2
|
|
ldrh r1, [r1, 0xE]
|
|
ldr r2, _0810FA9C @ =0x000013c4
|
|
adds r0, r2
|
|
strh r1, [r0]
|
|
_0810FA90:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810FA94: .4byte gSaveBlock1
|
|
_0810FA98: .4byte gSaveBlock2
|
|
_0810FA9C: .4byte 0x000013c4
|
|
thumb_func_end sub_810FA74
|
|
|
|
thumb_func_start sub_810FAA0
|
|
sub_810FAA0: @ 810FAA0
|
|
push {r4,lr}
|
|
ldr r4, _0810FAF0 @ =gSaveBlock1
|
|
ldr r1, _0810FAF4 @ =0x000013c2
|
|
adds r0, r4, r1
|
|
ldrh r0, [r0]
|
|
lsrs r0, 7
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0810FAE8
|
|
bl sub_810FF48
|
|
bl sub_810FD80
|
|
ldr r0, _0810FAF8 @ =gSaveBlock2
|
|
ldrh r1, [r0, 0xE]
|
|
ldr r2, _0810FAFC @ =0x000013c4
|
|
adds r0, r4, r2
|
|
strh r1, [r0]
|
|
ldr r0, _0810FB00 @ =0x00000315
|
|
bl FlagReset
|
|
ldr r0, _0810FB04 @ =0x00000316
|
|
bl FlagReset
|
|
ldr r0, _0810FB08 @ =0x00000317
|
|
bl FlagReset
|
|
movs r0, 0xC6
|
|
lsls r0, 2
|
|
bl FlagReset
|
|
ldr r0, _0810FB0C @ =0x00004095
|
|
movs r1, 0x1
|
|
bl VarSet
|
|
_0810FAE8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810FAF0: .4byte gSaveBlock1
|
|
_0810FAF4: .4byte 0x000013c2
|
|
_0810FAF8: .4byte gSaveBlock2
|
|
_0810FAFC: .4byte 0x000013c4
|
|
_0810FB00: .4byte 0x00000315
|
|
_0810FB04: .4byte 0x00000316
|
|
_0810FB08: .4byte 0x00000317
|
|
_0810FB0C: .4byte 0x00004095
|
|
thumb_func_end sub_810FAA0
|
|
|
|
thumb_func_start sub_810FB10
|
|
sub_810FB10: @ 810FB10
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, _0810FB54 @ =0x00004095
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x2
|
|
bne _0810FB80
|
|
ldr r0, _0810FB58 @ =gSaveBlock1
|
|
ldr r1, _0810FB5C @ =0x000013c2
|
|
adds r4, r0, r1
|
|
ldrh r2, [r4]
|
|
movs r1, 0x7F
|
|
ands r1, r2
|
|
ldr r0, _0810FB60 @ =gUnknown_083F8404
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0]
|
|
adds r1, r0
|
|
cmp r1, 0x13
|
|
ble _0810FB7C
|
|
bl sub_810FCB0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x2
|
|
bhi _0810FB68
|
|
bl sub_810FB9C
|
|
ldrh r1, [r4]
|
|
ldr r0, _0810FB64 @ =0x0000ff80
|
|
ands r0, r1
|
|
b _0810FB7E
|
|
.align 2, 0
|
|
_0810FB54: .4byte 0x00004095
|
|
_0810FB58: .4byte gSaveBlock1
|
|
_0810FB5C: .4byte 0x000013c2
|
|
_0810FB60: .4byte gUnknown_083F8404
|
|
_0810FB64: .4byte 0x0000ff80
|
|
_0810FB68:
|
|
ldrh r0, [r4]
|
|
ldr r1, _0810FB78 @ =0x0000ff80
|
|
ands r1, r0
|
|
movs r0, 0x14
|
|
orrs r1, r0
|
|
strh r1, [r4]
|
|
b _0810FB80
|
|
.align 2, 0
|
|
_0810FB78: .4byte 0x0000ff80
|
|
_0810FB7C:
|
|
adds r0, r2, r0
|
|
_0810FB7E:
|
|
strh r0, [r4]
|
|
_0810FB80:
|
|
ldr r0, _0810FB94 @ =gSaveBlock1
|
|
ldr r1, _0810FB98 @ =0x000013c2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810FB94: .4byte gSaveBlock1
|
|
_0810FB98: .4byte 0x000013c2
|
|
thumb_func_end sub_810FB10
|
|
|
|
thumb_func_start sub_810FB9C
|
|
sub_810FB9C: @ 810FB9C
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
movs r3, 0
|
|
movs r5, 0
|
|
ldr r7, _0810FBD8 @ =gSaveBlock1 + 0x13C2
|
|
movs r6, 0x1
|
|
_0810FBA8:
|
|
ldrh r1, [r7]
|
|
ldr r0, _0810FBDC @ =gUnknown_083F8408
|
|
adds r0, r5, r0
|
|
ldrb r4, [r0]
|
|
asrs r1, r4
|
|
ands r1, r6
|
|
cmp r1, 0
|
|
bne _0810FBE0
|
|
adds r3, r5, 0
|
|
str r3, [sp]
|
|
bl Random
|
|
adds r1, r6, 0
|
|
ands r1, r0
|
|
ldr r3, [sp]
|
|
cmp r1, 0
|
|
beq _0810FBE0
|
|
adds r0, r6, 0
|
|
lsls r0, r4
|
|
ldrh r1, [r7]
|
|
orrs r0, r1
|
|
strh r0, [r7]
|
|
b _0810FC00
|
|
.align 2, 0
|
|
_0810FBD8: .4byte gSaveBlock1 + 0x13C2
|
|
_0810FBDC: .4byte gUnknown_083F8408
|
|
_0810FBE0:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x7
|
|
bls _0810FBA8
|
|
ldr r2, _0810FC0C @ =gSaveBlock1
|
|
ldr r0, _0810FC10 @ =0x000013c2
|
|
adds r2, r0
|
|
ldr r1, _0810FC14 @ =gUnknown_083F8408
|
|
adds r1, r3, r1
|
|
movs r0, 0x1
|
|
ldrb r1, [r1]
|
|
lsls r0, r1
|
|
ldrh r1, [r2]
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
_0810FC00:
|
|
adds r0, r3, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810FC0C: .4byte gSaveBlock1
|
|
_0810FC10: .4byte 0x000013c2
|
|
_0810FC14: .4byte gUnknown_083F8408
|
|
thumb_func_end sub_810FB9C
|
|
|
|
thumb_func_start sub_810FC18
|
|
sub_810FC18: @ 810FC18
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
mov r8, r0
|
|
bl sub_810FCB0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _0810FC3E
|
|
movs r0, 0
|
|
b _0810FC94
|
|
_0810FC34:
|
|
lsls r4, r6
|
|
ldrh r0, [r2]
|
|
eors r4, r0
|
|
strh r4, [r2]
|
|
b _0810FC92
|
|
_0810FC3E:
|
|
movs r5, 0
|
|
ldr r2, _0810FCA0 @ =gSaveBlock1 + 0x13C2
|
|
movs r4, 0x1
|
|
_0810FC44:
|
|
ldrh r1, [r2]
|
|
ldr r7, _0810FCA4 @ =gUnknown_083F8410
|
|
adds r0, r5, r7
|
|
ldrb r6, [r0]
|
|
asrs r1, r6
|
|
ands r1, r4
|
|
cmp r1, 0
|
|
beq _0810FC66
|
|
mov r8, r5
|
|
str r2, [sp]
|
|
bl Random
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
ldr r2, [sp]
|
|
cmp r1, 0
|
|
bne _0810FC34
|
|
_0810FC66:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x7
|
|
bls _0810FC44
|
|
ldr r0, _0810FCA8 @ =gSaveBlock1
|
|
ldr r1, _0810FCAC @ =0x000013c2
|
|
adds r4, r0, r1
|
|
ldrh r1, [r4]
|
|
mov r2, r8
|
|
adds r0, r2, r7
|
|
ldrb r2, [r0]
|
|
adds r0, r1, 0
|
|
asrs r0, r2
|
|
movs r3, 0x1
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _0810FC92
|
|
adds r0, r3, 0
|
|
lsls r0, r2
|
|
eors r1, r0
|
|
strh r1, [r4]
|
|
_0810FC92:
|
|
mov r0, r8
|
|
_0810FC94:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810FCA0: .4byte gSaveBlock1 + 0x13C2
|
|
_0810FCA4: .4byte gUnknown_083F8410
|
|
_0810FCA8: .4byte gSaveBlock1
|
|
_0810FCAC: .4byte 0x000013c2
|
|
thumb_func_end sub_810FC18
|
|
|
|
thumb_func_start sub_810FCB0
|
|
sub_810FCB0: @ 810FCB0
|
|
push {r4,r5,lr}
|
|
movs r3, 0
|
|
movs r2, 0
|
|
ldr r0, _0810FCE4 @ =gSaveBlock1 + 0x13C2
|
|
ldrh r4, [r0]
|
|
movs r5, 0x1
|
|
_0810FCBC:
|
|
adds r1, r2, 0
|
|
adds r1, 0x8
|
|
adds r0, r4, 0
|
|
asrs r0, r1
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0810FCD0
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
_0810FCD0:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x7
|
|
bls _0810FCBC
|
|
adds r0, r3, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810FCE4: .4byte gSaveBlock1 + 0x13C2
|
|
thumb_func_end sub_810FCB0
|
|
|
|
thumb_func_start sub_810FCE8
|
|
sub_810FCE8: @ 810FCE8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r5, 0
|
|
ldr r2, _0810FD08 @ =gSaveBlock2
|
|
ldrh r1, [r2, 0xE]
|
|
ldr r0, _0810FD0C @ =0x000003e6
|
|
cmp r1, r0
|
|
bhi _0810FD54
|
|
ldr r7, _0810FD10 @ =gSaveBlock1
|
|
adds r6, r2, 0
|
|
ldr r0, _0810FD14 @ =0x000013c4
|
|
adds r0, r7
|
|
mov r8, r0
|
|
b _0810FD36
|
|
.align 2, 0
|
|
_0810FD08: .4byte gSaveBlock2
|
|
_0810FD0C: .4byte 0x000003e6
|
|
_0810FD10: .4byte gSaveBlock1
|
|
_0810FD14: .4byte 0x000013c4
|
|
_0810FD18:
|
|
ldrh r1, [r6, 0xE]
|
|
ldr r0, _0810FD4C @ =0x000013c4
|
|
adds r4, r7, r0
|
|
ldrh r0, [r4]
|
|
subs r1, r0
|
|
cmp r1, 0xB
|
|
ble _0810FD54
|
|
bl sub_810FC18
|
|
ldrh r0, [r4]
|
|
adds r0, 0xC
|
|
strh r0, [r4]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_0810FD36:
|
|
bl sub_810FCB0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x4
|
|
bhi _0810FD50
|
|
ldrh r0, [r6, 0xE]
|
|
mov r1, r8
|
|
strh r0, [r1]
|
|
b _0810FD54
|
|
.align 2, 0
|
|
_0810FD4C: .4byte 0x000013c4
|
|
_0810FD50:
|
|
cmp r5, 0x8
|
|
bne _0810FD18
|
|
_0810FD54:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_810FCE8
|
|
|
|
thumb_func_start sub_810FD60
|
|
sub_810FD60: @ 810FD60
|
|
ldr r0, _0810FD74 @ =gSaveBlock1
|
|
ldr r1, _0810FD78 @ =0x000013c2
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
ldr r1, _0810FD7C @ =gUnknown_0202E8CC
|
|
ldrh r1, [r1]
|
|
asrs r0, r1
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
bx lr
|
|
.align 2, 0
|
|
_0810FD74: .4byte gSaveBlock1
|
|
_0810FD78: .4byte 0x000013c2
|
|
_0810FD7C: .4byte gUnknown_0202E8CC
|
|
thumb_func_end sub_810FD60
|
|
|
|
thumb_func_start sub_810FD80
|
|
sub_810FD80: @ 810FD80
|
|
ldr r2, _0810FDA4 @ =gSaveBlock1
|
|
ldr r0, _0810FDA8 @ =0x000013c2
|
|
adds r2, r0
|
|
ldrh r1, [r2]
|
|
movs r3, 0x80
|
|
lsls r3, 6
|
|
adds r0, r3, 0
|
|
orrs r0, r1
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
adds r1, r3, 0
|
|
orrs r0, r1
|
|
movs r3, 0x80
|
|
lsls r3, 3
|
|
adds r1, r3, 0
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_0810FDA4: .4byte gSaveBlock1
|
|
_0810FDA8: .4byte 0x000013c2
|
|
thumb_func_end sub_810FD80
|
|
|
|
thumb_func_start sub_810FDAC
|
|
sub_810FDAC: @ 810FDAC
|
|
push {lr}
|
|
movs r3, 0
|
|
movs r2, 0
|
|
ldr r0, _0810FDC8 @ =gUnknown_0202E8CC
|
|
ldrh r0, [r0]
|
|
subs r0, 0x8
|
|
cmp r0, 0x7
|
|
bhi _0810FE0C
|
|
lsls r0, 2
|
|
ldr r1, _0810FDCC @ =_0810FDD0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0810FDC8: .4byte gUnknown_0202E8CC
|
|
_0810FDCC: .4byte _0810FDD0
|
|
.align 2, 0
|
|
_0810FDD0:
|
|
.4byte _0810FE0C
|
|
.4byte _0810FE0C
|
|
.4byte _0810FDF0
|
|
.4byte _0810FDF6
|
|
.4byte _0810FDFC
|
|
.4byte _0810FE02
|
|
.4byte _0810FE08
|
|
.4byte _0810FE0C
|
|
_0810FDF0:
|
|
movs r3, 0
|
|
movs r2, 0x3
|
|
b _0810FE0C
|
|
_0810FDF6:
|
|
movs r3, 0
|
|
movs r2, 0x1
|
|
b _0810FE0C
|
|
_0810FDFC:
|
|
movs r3, 0x1
|
|
movs r2, 0
|
|
b _0810FE0C
|
|
_0810FE02:
|
|
movs r3, 0
|
|
movs r2, 0x4
|
|
b _0810FE0C
|
|
_0810FE08:
|
|
movs r3, 0x1
|
|
movs r2, 0x5
|
|
_0810FE0C:
|
|
ldr r0, _0810FE18 @ =gSaveBlock1 + 0x30B8
|
|
adds r1, r3, 0
|
|
bl sub_810FE1C
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810FE18: .4byte gSaveBlock1 + 0x30B8
|
|
thumb_func_end sub_810FDAC
|
|
|
|
thumb_func_start sub_810FE1C
|
|
sub_810FE1C: @ 810FE1C
|
|
push {r4,lr}
|
|
lsls r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsrs r1, 20
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
bne _0810FED0
|
|
cmp r2, 0x5
|
|
bhi _0810FEBC
|
|
lsls r0, r2, 2
|
|
ldr r1, _0810FE3C @ =_0810FE40
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0810FE3C: .4byte _0810FE40
|
|
.align 2, 0
|
|
_0810FE40:
|
|
.4byte _0810FEBC
|
|
.4byte _0810FE58
|
|
.4byte _0810FE6C
|
|
.4byte _0810FE80
|
|
.4byte _0810FE94
|
|
.4byte _0810FEA8
|
|
_0810FE58:
|
|
ldr r0, _0810FE64 @ =gStringVar1
|
|
ldr r1, _0810FE68 @ =gOtherText_Steven
|
|
bl StringCopy
|
|
b _0810FEF2
|
|
.align 2, 0
|
|
_0810FE64: .4byte gStringVar1
|
|
_0810FE68: .4byte gOtherText_Steven
|
|
_0810FE6C:
|
|
ldr r0, _0810FE78 @ =gStringVar1
|
|
ldr r1, _0810FE7C @ =gOtherText_Brawly
|
|
bl StringCopy
|
|
b _0810FEF2
|
|
.align 2, 0
|
|
_0810FE78: .4byte gStringVar1
|
|
_0810FE7C: .4byte gOtherText_Brawly
|
|
_0810FE80:
|
|
ldr r0, _0810FE8C @ =gStringVar1
|
|
ldr r1, _0810FE90 @ =gOtherText_Winona
|
|
bl StringCopy
|
|
b _0810FEF2
|
|
.align 2, 0
|
|
_0810FE8C: .4byte gStringVar1
|
|
_0810FE90: .4byte gOtherText_Winona
|
|
_0810FE94:
|
|
ldr r0, _0810FEA0 @ =gStringVar1
|
|
ldr r1, _0810FEA4 @ =gOtherText_Phoebe
|
|
bl StringCopy
|
|
b _0810FEF2
|
|
.align 2, 0
|
|
_0810FEA0: .4byte gStringVar1
|
|
_0810FEA4: .4byte gOtherText_Phoebe
|
|
_0810FEA8:
|
|
ldr r0, _0810FEB4 @ =gStringVar1
|
|
ldr r1, _0810FEB8 @ =gOtherText_Glacia
|
|
bl StringCopy
|
|
b _0810FEF2
|
|
.align 2, 0
|
|
_0810FEB4: .4byte gStringVar1
|
|
_0810FEB8: .4byte gOtherText_Glacia
|
|
_0810FEBC:
|
|
ldr r0, _0810FEC8 @ =gStringVar1
|
|
ldr r1, _0810FECC @ =gOtherText_Wallace
|
|
bl StringCopy
|
|
b _0810FEF2
|
|
.align 2, 0
|
|
_0810FEC8: .4byte gStringVar1
|
|
_0810FECC: .4byte gOtherText_Wallace
|
|
_0810FED0:
|
|
ldr r4, _0810FEF8 @ =gStringVar1
|
|
adds r0, r4, 0
|
|
movs r2, 0x7
|
|
bl StringCopyN
|
|
movs r0, 0xFF
|
|
strb r0, [r4, 0x7]
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xFC
|
|
bne _0810FEF2
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0x15
|
|
bne _0810FEF2
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl ConvertInternationalString
|
|
_0810FEF2:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810FEF8: .4byte gStringVar1
|
|
thumb_func_end sub_810FE1C
|
|
|
|
thumb_func_start sub_810FEFC
|
|
sub_810FEFC: @ 810FEFC
|
|
push {lr}
|
|
ldr r0, _0810FF20 @ =0x00004095
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x2
|
|
bne _0810FF2C
|
|
bl sub_810FA74
|
|
ldr r0, _0810FF24 @ =gUnknown_02024D26
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0810FF28
|
|
bl sub_810FB9C
|
|
b _0810FF2C
|
|
.align 2, 0
|
|
_0810FF20: .4byte 0x00004095
|
|
_0810FF24: .4byte gUnknown_02024D26
|
|
_0810FF28:
|
|
bl sub_810FC18
|
|
_0810FF2C:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_810FEFC
|
|
|
|
thumb_func_start sub_810FF30
|
|
sub_810FF30: @ 810FF30
|
|
ldr r0, _0810FF40 @ =gSaveBlock1
|
|
ldr r1, _0810FF44 @ =0x000013c2
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
lsrs r0, 7
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
bx lr
|
|
.align 2, 0
|
|
_0810FF40: .4byte gSaveBlock1
|
|
_0810FF44: .4byte 0x000013c2
|
|
thumb_func_end sub_810FF30
|
|
|
|
thumb_func_start sub_810FF48
|
|
sub_810FF48: @ 810FF48
|
|
ldr r0, _0810FF58 @ =gSaveBlock1
|
|
ldr r1, _0810FF5C @ =0x000013c2
|
|
adds r0, r1
|
|
ldrh r2, [r0]
|
|
movs r1, 0x80
|
|
orrs r1, r2
|
|
strh r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0810FF58: .4byte gSaveBlock1
|
|
_0810FF5C: .4byte 0x000013c2
|
|
thumb_func_end sub_810FF48
|
|
|
|
thumb_func_start sub_810FF60
|
|
sub_810FF60: @ 810FF60
|
|
push {lr}
|
|
ldr r0, _0810FF74 @ =gUnknown_0202E8CC
|
|
ldrb r0, [r0]
|
|
bl sub_810FB10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810FF74: .4byte gUnknown_0202E8CC
|
|
thumb_func_end sub_810FF60
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|