mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 19:54:21 +01:00
6826 lines
110 KiB
ArmAsm
6826 lines
110 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_8084620
|
|
sub_8084620: @ 8084620
|
|
push {r4,lr}
|
|
ldr r0, =EverGrandeCity_HallOfFame_EventScript_271857
|
|
bl ScriptContext2_RunNewScript
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r4, [r0]
|
|
movs r0, 0x92
|
|
lsls r0, 3
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
bl GetMoney
|
|
adds r1, r0, 0
|
|
lsrs r1, 1
|
|
adds r0, r4, 0
|
|
bl SetMoney
|
|
bl HealPlayerParty
|
|
bl sub_8084720
|
|
bl copy_saved_warp3_bank_and_enter_x_to_warp1
|
|
bl warp_in
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8084620
|
|
|
|
thumb_func_start flag_var_implications_of_teleport_
|
|
flag_var_implications_of_teleport_: @ 8084660
|
|
push {lr}
|
|
bl player_avatar_init_params_reset
|
|
ldr r0, =0x0000088b
|
|
bl FlagClear
|
|
ldr r0, =0x0000088d
|
|
bl FlagClear
|
|
ldr r0, =0x0000088c
|
|
bl FlagClear
|
|
ldr r0, =0x00000889
|
|
bl FlagClear
|
|
ldr r0, =0x00000888
|
|
bl FlagClear
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end flag_var_implications_of_teleport_
|
|
|
|
thumb_func_start Overworld_ResetStateAfterTeleport
|
|
Overworld_ResetStateAfterTeleport: @ 808469C
|
|
push {lr}
|
|
bl player_avatar_init_params_reset
|
|
ldr r0, =0x0000088b
|
|
bl FlagClear
|
|
ldr r0, =0x0000088d
|
|
bl FlagClear
|
|
ldr r0, =0x0000088c
|
|
bl FlagClear
|
|
ldr r0, =0x00000889
|
|
bl FlagClear
|
|
ldr r0, =0x00000888
|
|
bl FlagClear
|
|
ldr r0, =EverGrandeCity_HallOfFame_EventScript_271862
|
|
bl ScriptContext2_RunNewScript
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end Overworld_ResetStateAfterTeleport
|
|
|
|
thumb_func_start flagmods_08054D70
|
|
flagmods_08054D70: @ 80846E4
|
|
push {lr}
|
|
bl player_avatar_init_params_reset
|
|
ldr r0, =0x0000088b
|
|
bl FlagClear
|
|
ldr r0, =0x0000088d
|
|
bl FlagClear
|
|
ldr r0, =0x0000088c
|
|
bl FlagClear
|
|
ldr r0, =0x00000889
|
|
bl FlagClear
|
|
ldr r0, =0x00000888
|
|
bl FlagClear
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end flagmods_08054D70
|
|
|
|
thumb_func_start sub_8084720
|
|
sub_8084720: @ 8084720
|
|
push {r4,lr}
|
|
bl player_avatar_init_params_reset
|
|
ldr r0, =0x0000088b
|
|
bl FlagClear
|
|
ldr r0, =0x0000088d
|
|
bl FlagClear
|
|
ldr r0, =0x0000088c
|
|
bl FlagClear
|
|
ldr r0, =0x00000889
|
|
bl FlagClear
|
|
ldr r0, =0x00000888
|
|
bl FlagClear
|
|
ldr r4, =0x00004039
|
|
adds r0, r4, 0
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _08084764
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl VarSet
|
|
ldr r0, =0x00004037
|
|
movs r1, 0
|
|
bl VarSet
|
|
_08084764:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8084720
|
|
|
|
thumb_func_start sub_8084788
|
|
sub_8084788: @ 8084788
|
|
push {lr}
|
|
ldr r0, =0x0000088c
|
|
bl FlagClear
|
|
bl sub_8085B2C
|
|
bl ResetCyclingRoadChallengeData
|
|
bl UpdateLocationHistoryForRoamer
|
|
bl RoamerMoveToOtherLocationSet
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8084788
|
|
|
|
thumb_func_start ResetGameStats
|
|
ResetGameStats: @ 80847A8
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_080847AC:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
movs r1, 0
|
|
bl sav12_xor_set
|
|
adds r4, 0x1
|
|
cmp r4, 0x3F
|
|
ble _080847AC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end ResetGameStats
|
|
|
|
thumb_func_start IncrementGameStat
|
|
@ void IncrementGameStat(u8 a1)
|
|
IncrementGameStat: @ 80847C4
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x33
|
|
bhi _080847EC
|
|
adds r0, r4, 0
|
|
bl GetGameStat
|
|
adds r1, r0, 0
|
|
ldr r0, =0x00fffffe
|
|
cmp r1, r0
|
|
bhi _080847E4
|
|
adds r1, 0x1
|
|
b _080847E6
|
|
.pool
|
|
_080847E4:
|
|
ldr r1, =0x00ffffff
|
|
_080847E6:
|
|
adds r0, r4, 0
|
|
bl sav12_xor_set
|
|
_080847EC:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end IncrementGameStat
|
|
|
|
thumb_func_start GetGameStat
|
|
GetGameStat: @ 80847F8
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x33
|
|
bhi _08084828
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r2, [r0]
|
|
lsls r0, r1, 2
|
|
ldr r1, =0x0000159c
|
|
adds r2, r1
|
|
adds r2, r0
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r1, [r0]
|
|
adds r1, 0xAC
|
|
ldr r0, [r2]
|
|
ldr r1, [r1]
|
|
eors r0, r1
|
|
b _0808482A
|
|
.pool
|
|
_08084828:
|
|
movs r0, 0
|
|
_0808482A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetGameStat
|
|
|
|
thumb_func_start sav12_xor_set
|
|
sav12_xor_set: @ 8084830
|
|
push {lr}
|
|
adds r3, r1, 0
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x33
|
|
bhi _08084854
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
lsls r0, r2, 2
|
|
ldr r2, =0x0000159c
|
|
adds r1, r2
|
|
adds r1, r0
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
adds r0, 0xAC
|
|
ldr r0, [r0]
|
|
eors r0, r3
|
|
str r0, [r1]
|
|
_08084854:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sav12_xor_set
|
|
|
|
thumb_func_start ApplyNewEncryptionKeyToGameStats
|
|
ApplyNewEncryptionKeyToGameStats: @ 8084864
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r4, 0
|
|
ldr r6, =gSaveBlock1Ptr
|
|
_0808486C:
|
|
lsls r1, r4, 2
|
|
ldr r0, =0x0000159c
|
|
adds r1, r0
|
|
ldr r0, [r6]
|
|
adds r0, r1
|
|
adds r1, r5, 0
|
|
bl ApplyNewEncryptionKeyToWord
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x3F
|
|
bls _0808486C
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end ApplyNewEncryptionKeyToGameStats
|
|
|
|
thumb_func_start CopyFieldObjectTemplatesToSav1
|
|
@ void CopyFieldObjectTemplatesToSav1()
|
|
CopyFieldObjectTemplatesToSav1: @ 8084894
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
ldr r5, =gSaveBlock1Ptr
|
|
ldr r1, [r5]
|
|
movs r4, 0xC7
|
|
lsls r4, 4
|
|
adds r1, r4
|
|
ldr r2, =0x05000180
|
|
mov r0, sp
|
|
bl CpuSet
|
|
ldr r0, =gMapHeader
|
|
ldr r2, [r0, 0x4]
|
|
ldr r0, [r2, 0x4]
|
|
ldr r1, [r5]
|
|
adds r1, r4
|
|
ldrb r3, [r2]
|
|
lsls r2, r3, 1
|
|
adds r2, r3
|
|
lsls r2, 1
|
|
movs r3, 0x80
|
|
lsls r3, 19
|
|
orrs r2, r3
|
|
bl CpuSet
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end CopyFieldObjectTemplatesToSav1
|
|
|
|
thumb_func_start CopyFieldObjectTemplateCoordsToSav1
|
|
@ void CopyFieldObjectTemplateCoordsToSav1()
|
|
CopyFieldObjectTemplateCoordsToSav1: @ 80848E0
|
|
push {lr}
|
|
ldr r0, =gMapHeader
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r2, [r1, 0x4]
|
|
movs r3, 0xC7
|
|
lsls r3, 4
|
|
adds r1, r0, r3
|
|
movs r3, 0x3F
|
|
_080848F4:
|
|
ldr r0, [r2, 0x10]
|
|
str r0, [r1, 0x10]
|
|
adds r2, 0x18
|
|
adds r1, 0x18
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080848F4
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end CopyFieldObjectTemplateCoordsToSav1
|
|
|
|
thumb_func_start Overworld_SetMapObjTemplateCoords
|
|
Overworld_SetMapObjTemplateCoords: @ 8084910
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r1, 16
|
|
lsrs r4, r1, 16
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
movs r6, 0xC7
|
|
lsls r6, 4
|
|
adds r3, r0, r6
|
|
_0808492A:
|
|
ldrb r0, [r3]
|
|
cmp r0, r5
|
|
bne _0808493C
|
|
strh r4, [r3, 0x4]
|
|
strh r2, [r3, 0x6]
|
|
b _08084944
|
|
.pool
|
|
_0808493C:
|
|
adds r3, 0x18
|
|
adds r1, 0x1
|
|
cmp r1, 0x3F
|
|
ble _0808492A
|
|
_08084944:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end Overworld_SetMapObjTemplateCoords
|
|
|
|
thumb_func_start Overworld_SetMapObjTemplateMovementType
|
|
Overworld_SetMapObjTemplateMovementType: @ 808494C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
movs r3, 0
|
|
movs r5, 0xC7
|
|
lsls r5, 4
|
|
adds r2, r0, r5
|
|
_08084962:
|
|
ldrb r0, [r2]
|
|
cmp r0, r4
|
|
bne _08084970
|
|
strb r1, [r2, 0x9]
|
|
b _08084978
|
|
.pool
|
|
_08084970:
|
|
adds r2, 0x18
|
|
adds r3, 0x1
|
|
cmp r3, 0x3F
|
|
ble _08084962
|
|
_08084978:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end Overworld_SetMapObjTemplateMovementType
|
|
|
|
thumb_func_start mapdata_load_assets_to_gpu_and_full_redraw
|
|
mapdata_load_assets_to_gpu_and_full_redraw: @ 8084980
|
|
push {r4,lr}
|
|
bl move_tilemap_camera_to_upper_left_corner
|
|
ldr r4, =gMapHeader
|
|
ldr r0, [r4]
|
|
bl copy_map_tileset1_tileset2_to_vram
|
|
ldr r0, [r4]
|
|
bl apply_map_tileset1_tileset2_palette
|
|
bl DrawWholeMapView
|
|
bl cur_mapheader_run_tileset_funcs_after_some_cpuset
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end mapdata_load_assets_to_gpu_and_full_redraw
|
|
|
|
thumb_func_start get_mapdata_header
|
|
@ mapdata_header *get_mapdata_header()
|
|
get_mapdata_header: @ 80849A8
|
|
push {lr}
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0, 0x32]
|
|
cmp r1, 0
|
|
bne _080849BC
|
|
movs r0, 0
|
|
b _080849C6
|
|
.pool
|
|
_080849BC:
|
|
ldr r0, =gMapAttributes
|
|
subs r1, 0x1
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
_080849C6:
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end get_mapdata_header
|
|
|
|
thumb_func_start warp_shift
|
|
@ void warp_shift()
|
|
warp_shift: @ 80849D0
|
|
ldr r3, =gUnknown_020322DC
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r2, [r0]
|
|
ldr r0, [r2, 0x4]
|
|
ldr r1, [r2, 0x8]
|
|
str r0, [r3]
|
|
str r1, [r3, 0x4]
|
|
ldr r0, =gUnknown_020322E4
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [r2, 0x4]
|
|
str r1, [r2, 0x8]
|
|
ldr r2, =gUnknown_020322EC
|
|
ldr r0, =gUnknown_08339D3C
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
ldr r2, =gUnknown_020322F4
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end warp_shift
|
|
|
|
thumb_func_start set_warp2_warp3_to_neg_1
|
|
@ void set_warp2_warp3_to_neg_1()
|
|
set_warp2_warp3_to_neg_1: @ 8084A14
|
|
ldr r2, =gUnknown_020322EC
|
|
ldr r0, =gUnknown_08339D3C
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
ldr r2, =gUnknown_020322F4
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end set_warp2_warp3_to_neg_1
|
|
|
|
thumb_func_start warp_set
|
|
@ void warp_set(warpdata *warp, char bank, char map, char warpid, char enter_x, char enter_y)
|
|
warp_set: @ 8084A34
|
|
push {r4,r5,lr}
|
|
ldr r4, [sp, 0xC]
|
|
ldr r5, [sp, 0x10]
|
|
strb r1, [r0]
|
|
strb r2, [r0, 0x1]
|
|
strb r3, [r0, 0x2]
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
strh r4, [r0, 0x4]
|
|
lsls r5, 24
|
|
asrs r5, 24
|
|
strh r5, [r0, 0x6]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end warp_set
|
|
|
|
thumb_func_start warp_data_is_not_neg_1
|
|
@ int warp_data_is_not_neg_1(warpdata *warp)
|
|
warp_data_is_not_neg_1: @ 8084A54
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r2, 0
|
|
ldrsb r2, [r1, r2]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r2, r0
|
|
bne _08084A88
|
|
movs r0, 0x1
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, r2
|
|
bne _08084A88
|
|
movs r2, 0x2
|
|
ldrsb r2, [r1, r2]
|
|
cmp r2, r0
|
|
bne _08084A88
|
|
movs r0, 0x4
|
|
ldrsh r3, [r1, r0]
|
|
cmp r3, r2
|
|
bne _08084A88
|
|
movs r2, 0x6
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, r3
|
|
bne _08084A88
|
|
movs r0, 0x1
|
|
b _08084A8A
|
|
_08084A88:
|
|
movs r0, 0
|
|
_08084A8A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end warp_data_is_not_neg_1
|
|
|
|
thumb_func_start get_mapheader_by_bank_and_number
|
|
@ struct mapheader *get_mapheader_by_bank_and_number(unsigned int bank, unsigned int num)
|
|
get_mapheader_by_bank_and_number: @ 8084A90
|
|
lsls r0, 16
|
|
lsls r1, 16
|
|
ldr r2, =gMapGroups
|
|
lsrs r0, 14
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
lsrs r1, 14
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end get_mapheader_by_bank_and_number
|
|
|
|
thumb_func_start warp1_get_mapheader
|
|
@ struct mapheader *warp1_get_mapheader()
|
|
warp1_get_mapheader: @ 8084AA8
|
|
push {lr}
|
|
ldr r1, =gUnknown_020322E4
|
|
movs r0, 0
|
|
ldrsb r0, [r1, r0]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrb r1, [r1, 0x1]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl get_mapheader_by_bank_and_number
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end warp1_get_mapheader
|
|
|
|
thumb_func_start set_current_map_header_from_sav1_save_old_name
|
|
@ void set_current_map_header_from_sav1_save_old_name()
|
|
set_current_map_header_from_sav1_save_old_name: @ 8084ACC
|
|
push {r4-r6,lr}
|
|
ldr r1, =gUnknown_020322FC
|
|
ldr r4, =gMapHeader
|
|
ldrb r0, [r4, 0x14]
|
|
strh r0, [r1]
|
|
ldr r5, =gSaveBlock1Ptr
|
|
ldr r1, [r5]
|
|
movs r0, 0x4
|
|
ldrsb r0, [r1, r0]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrb r1, [r1, 0x5]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl get_mapheader_by_bank_and_number
|
|
adds r1, r4, 0
|
|
ldm r0!, {r2,r3,r6}
|
|
stm r1!, {r2,r3,r6}
|
|
ldm r0!, {r2,r3,r6}
|
|
stm r1!, {r2,r3,r6}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
ldr r1, [r5]
|
|
ldrh r0, [r4, 0x12]
|
|
strh r0, [r1, 0x32]
|
|
bl get_mapdata_header
|
|
str r0, [r4]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end set_current_map_header_from_sav1_save_old_name
|
|
|
|
thumb_func_start set_current_map_header_from_sav1
|
|
set_current_map_header_from_sav1: @ 8084B1C
|
|
push {r4,r5,lr}
|
|
ldr r4, =gMapHeader
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
movs r0, 0x4
|
|
ldrsb r0, [r1, r0]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrb r1, [r1, 0x5]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl get_mapheader_by_bank_and_number
|
|
adds r1, r4, 0
|
|
ldm r0!, {r2,r3,r5}
|
|
stm r1!, {r2,r3,r5}
|
|
ldm r0!, {r2,r3,r5}
|
|
stm r1!, {r2,r3,r5}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
bl get_mapdata_header
|
|
str r0, [r4]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end set_current_map_header_from_sav1
|
|
|
|
thumb_func_start update_camera_pos_from_warpid
|
|
@ void update_camera_pos_from_warpid()
|
|
update_camera_pos_from_warpid: @ 8084B5C
|
|
push {r4,r5,lr}
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r2, [r0]
|
|
movs r1, 0x6
|
|
ldrsb r1, [r2, r1]
|
|
adds r4, r0, 0
|
|
cmp r1, 0
|
|
blt _08084B94
|
|
ldr r3, =gMapHeader
|
|
ldr r0, [r3, 0x4]
|
|
ldrb r5, [r0, 0x1]
|
|
cmp r1, r5
|
|
bge _08084B94
|
|
ldr r0, [r0, 0x8]
|
|
lsls r1, 3
|
|
adds r0, r1, r0
|
|
ldrh r0, [r0]
|
|
strh r0, [r2]
|
|
ldr r0, [r3, 0x4]
|
|
ldr r0, [r0, 0x8]
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r2, 0x2]
|
|
b _08084BCC
|
|
.pool
|
|
_08084B94:
|
|
ldr r1, [r4]
|
|
ldrh r3, [r1, 0x8]
|
|
movs r2, 0x8
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
blt _08084BB0
|
|
ldrh r2, [r1, 0xA]
|
|
movs r5, 0xA
|
|
ldrsh r0, [r1, r5]
|
|
cmp r0, 0
|
|
blt _08084BB0
|
|
strh r3, [r1]
|
|
strh r2, [r1, 0x2]
|
|
b _08084BCC
|
|
_08084BB0:
|
|
ldr r3, [r4]
|
|
ldr r2, =gMapHeader
|
|
ldr r0, [r2]
|
|
ldr r0, [r0]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
strh r0, [r3]
|
|
ldr r0, [r2]
|
|
ldr r0, [r0, 0x4]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
strh r0, [r3, 0x2]
|
|
_08084BCC:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end update_camera_pos_from_warpid
|
|
|
|
thumb_func_start warp_in
|
|
warp_in: @ 8084BD8
|
|
push {lr}
|
|
bl warp_shift
|
|
bl set_current_map_header_from_sav1_save_old_name
|
|
bl update_camera_pos_from_warpid
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end warp_in
|
|
|
|
thumb_func_start Overworld_SetWarpDestination
|
|
@ void Overworld_SetWarpDestination(char bank, char map, char warpid, char enter_x, char enter_y)
|
|
Overworld_SetWarpDestination: @ 8084BEC
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
ldr r1, [sp, 0x18]
|
|
ldr r0, =gUnknown_020322E4
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
lsls r5, 24
|
|
asrs r5, 24
|
|
lsls r6, 24
|
|
asrs r6, 24
|
|
lsls r3, 24
|
|
asrs r3, 24
|
|
str r3, [sp]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
str r1, [sp, 0x4]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl warp_set
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end Overworld_SetWarpDestination
|
|
|
|
thumb_func_start warp1_set_2
|
|
@ void warp1_set_2(char bank, char map, char warpid)
|
|
warp1_set_2: @ 8084C28
|
|
push {lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
lsls r2, 24
|
|
asrs r2, 24
|
|
movs r3, 0x1
|
|
negs r3, r3
|
|
str r3, [sp]
|
|
bl Overworld_SetWarpDestination
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end warp1_set_2
|
|
|
|
thumb_func_start saved_warp2_set
|
|
@ void saved_warp2_set(char bank, char map, char warpid)
|
|
saved_warp2_set: @ 8084C48
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r5, [r0]
|
|
adds r0, r5, 0
|
|
adds r0, 0x14
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
lsls r2, 24
|
|
asrs r2, 24
|
|
lsls r3, 24
|
|
asrs r3, 24
|
|
movs r4, 0
|
|
ldrsb r4, [r5, r4]
|
|
str r4, [sp]
|
|
movs r4, 0x2
|
|
ldrsb r4, [r5, r4]
|
|
str r4, [sp, 0x4]
|
|
bl warp_set
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end saved_warp2_set
|
|
|
|
thumb_func_start saved_warp2_set_2
|
|
saved_warp2_set_2: @ 8084C7C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
ldr r4, [sp, 0x14]
|
|
ldr r5, [sp, 0x18]
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
adds r0, 0x14
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
lsls r2, 24
|
|
asrs r2, 24
|
|
lsls r3, 24
|
|
asrs r3, 24
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
str r4, [sp]
|
|
lsls r5, 24
|
|
asrs r5, 24
|
|
str r5, [sp, 0x4]
|
|
bl warp_set
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end saved_warp2_set_2
|
|
|
|
thumb_func_start copy_saved_warp2_bank_and_enter_x_to_warp1
|
|
copy_saved_warp2_bank_and_enter_x_to_warp1: @ 8084CB4
|
|
ldr r2, =gUnknown_020322E4
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x18]
|
|
ldr r0, [r0, 0x14]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end copy_saved_warp2_bank_and_enter_x_to_warp1
|
|
|
|
thumb_func_start sub_8084CCC
|
|
@ void sub_8084CCC(int a1)
|
|
sub_8084CCC: @ 8084CCC
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl GetHealLocationPointer
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
beq _08084CFA
|
|
movs r0, 0
|
|
ldrsb r0, [r4, r0]
|
|
movs r1, 0x1
|
|
ldrsb r1, [r4, r1]
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r3, 0x2
|
|
ldrsb r3, [r4, r3]
|
|
ldrb r4, [r4, 0x4]
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
str r4, [sp]
|
|
bl Overworld_SetWarpDestination
|
|
_08084CFA:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8084CCC
|
|
|
|
thumb_func_start copy_saved_warp3_bank_and_enter_x_to_warp1
|
|
@ void copy_saved_warp3_bank_and_enter_x_to_warp1()
|
|
copy_saved_warp3_bank_and_enter_x_to_warp1: @ 8084D04
|
|
ldr r2, =gUnknown_020322E4
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x20]
|
|
ldr r0, [r0, 0x1C]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end copy_saved_warp3_bank_and_enter_x_to_warp1
|
|
|
|
thumb_func_start Overworld_SetHealLocationWarp
|
|
Overworld_SetHealLocationWarp: @ 8084D1C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl GetHealLocationPointer
|
|
adds r5, r0, 0
|
|
cmp r5, 0
|
|
beq _08084D50
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
adds r0, 0x1C
|
|
movs r1, 0
|
|
ldrsb r1, [r5, r1]
|
|
movs r2, 0x1
|
|
ldrsb r2, [r5, r2]
|
|
movs r3, 0x1
|
|
negs r3, r3
|
|
movs r4, 0x2
|
|
ldrsb r4, [r5, r4]
|
|
str r4, [sp]
|
|
movs r4, 0x4
|
|
ldrsb r4, [r5, r4]
|
|
str r4, [sp, 0x4]
|
|
bl warp_set
|
|
_08084D50:
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end Overworld_SetHealLocationWarp
|
|
|
|
thumb_func_start sub_8084D5C
|
|
sub_8084D5C: @ 8084D5C
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
lsls r1, 16
|
|
lsrs r7, r1, 16
|
|
bl sav1_map_get_light_level
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r1, =gUnknown_020322E4
|
|
movs r0, 0
|
|
ldrsb r0, [r1, r0]
|
|
ldrb r1, [r1, 0x1]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
bl get_map_light_level_by_bank_and_number
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r4, 0
|
|
bl is_light_level_1_2_3_5_or_6
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08084DC4
|
|
adds r0, r5, 0
|
|
bl is_light_level_1_2_3_5_or_6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08084DC4
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
movs r0, 0x4
|
|
ldrsb r0, [r1, r0]
|
|
ldrb r1, [r1, 0x5]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
subs r3, r6, 0x7
|
|
lsls r3, 24
|
|
asrs r3, 24
|
|
subs r4, r7, 0x6
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
str r4, [sp]
|
|
bl sub_8084DD4
|
|
_08084DC4:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8084D5C
|
|
|
|
thumb_func_start sub_8084DD4
|
|
sub_8084DD4: @ 8084DD4
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
ldr r1, [sp, 0x18]
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
adds r0, 0x24
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
lsls r5, 24
|
|
asrs r5, 24
|
|
lsls r6, 24
|
|
asrs r6, 24
|
|
lsls r3, 24
|
|
asrs r3, 24
|
|
str r3, [sp]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
str r1, [sp, 0x4]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl warp_set
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8084DD4
|
|
|
|
thumb_func_start sub_8084E14
|
|
sub_8084E14: @ 8084E14
|
|
ldr r2, =gUnknown_020322E4
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x28]
|
|
ldr r0, [r0, 0x24]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8084E14
|
|
|
|
thumb_func_start sub_8084E2C
|
|
sub_8084E2C: @ 8084E2C
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
ldr r1, [sp, 0x18]
|
|
ldr r0, =gUnknown_020322EC
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
lsls r5, 24
|
|
asrs r5, 24
|
|
lsls r6, 24
|
|
asrs r6, 24
|
|
lsls r3, 24
|
|
asrs r3, 24
|
|
str r3, [sp]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
str r1, [sp, 0x4]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl warp_set
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8084E2C
|
|
|
|
thumb_func_start warp1_set_to_warp2
|
|
warp1_set_to_warp2: @ 8084E68
|
|
ldr r2, =gUnknown_020322E4
|
|
ldr r0, =gUnknown_020322EC
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end warp1_set_to_warp2
|
|
|
|
thumb_func_start sub_8084E80
|
|
sub_8084E80: @ 8084E80
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
ldr r1, [sp, 0x18]
|
|
ldr r0, =gUnknown_020322F4
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
lsls r5, 24
|
|
asrs r5, 24
|
|
lsls r6, 24
|
|
asrs r6, 24
|
|
lsls r3, 24
|
|
asrs r3, 24
|
|
str r3, [sp]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
str r1, [sp, 0x4]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl warp_set
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8084E80
|
|
|
|
thumb_func_start sub_8084EBC
|
|
sub_8084EBC: @ 8084EBC
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
ldr r4, =gUnknown_020322F4
|
|
adds r0, r4, 0
|
|
bl warp_data_is_not_neg_1
|
|
cmp r0, 0x1
|
|
bne _08084EF0
|
|
ldr r2, =gUnknown_020322E4
|
|
ldr r0, =gUnknown_020322DC
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
b _08084F0A
|
|
.pool
|
|
_08084EF0:
|
|
movs r0, 0
|
|
ldrsb r0, [r4, r0]
|
|
movs r1, 0x1
|
|
ldrsb r1, [r4, r1]
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
lsls r3, r5, 24
|
|
asrs r3, 24
|
|
lsls r4, r6, 24
|
|
asrs r4, 24
|
|
str r4, [sp]
|
|
bl Overworld_SetWarpDestination
|
|
_08084F0A:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8084EBC
|
|
|
|
thumb_func_start warp1_set_to_sav1w
|
|
warp1_set_to_sav1w: @ 8084F14
|
|
ldr r2, =gUnknown_020322E4
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x10]
|
|
ldr r0, [r0, 0xC]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end warp1_set_to_sav1w
|
|
|
|
thumb_func_start sub_8084F2C
|
|
sub_8084F2C: @ 8084F2C
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
ldr r1, [sp, 0x18]
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
adds r0, 0xC
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
lsls r5, 24
|
|
asrs r5, 24
|
|
lsls r6, 24
|
|
asrs r6, 24
|
|
lsls r3, 24
|
|
asrs r3, 24
|
|
str r3, [sp]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
str r1, [sp, 0x4]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl warp_set
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8084F2C
|
|
|
|
thumb_func_start sub_8084F6C
|
|
sub_8084F6C: @ 8084F6C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl GetHealLocationPointer
|
|
adds r5, r0, 0
|
|
cmp r5, 0
|
|
beq _08084FA0
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
adds r0, 0xC
|
|
movs r1, 0
|
|
ldrsb r1, [r5, r1]
|
|
movs r2, 0x1
|
|
ldrsb r2, [r5, r2]
|
|
movs r3, 0x1
|
|
negs r3, r3
|
|
movs r4, 0x2
|
|
ldrsb r4, [r5, r4]
|
|
str r4, [sp]
|
|
movs r4, 0x4
|
|
ldrsb r4, [r5, r4]
|
|
str r4, [sp, 0x4]
|
|
bl warp_set
|
|
_08084FA0:
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8084F6C
|
|
|
|
thumb_func_start sub_8084FAC
|
|
sub_8084FAC: @ 8084FAC
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r2, [r0]
|
|
ldr r0, [r2, 0x14]
|
|
ldr r1, [r2, 0x18]
|
|
str r0, [r2, 0xC]
|
|
str r1, [r2, 0x10]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8084FAC
|
|
|
|
thumb_func_start sub_8084FC0
|
|
sub_8084FC0: @ 8084FC0
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, =gMapHeader
|
|
ldr r0, [r0, 0xC]
|
|
ldr r3, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
cmp r1, 0
|
|
bne _08084FDC
|
|
b _08084FF0
|
|
.pool
|
|
_08084FD8:
|
|
adds r0, r1, 0
|
|
b _08084FF2
|
|
_08084FDC:
|
|
movs r2, 0
|
|
cmp r2, r3
|
|
bge _08084FF0
|
|
_08084FE2:
|
|
ldrb r0, [r1]
|
|
cmp r0, r4
|
|
beq _08084FD8
|
|
adds r2, 0x1
|
|
adds r1, 0xC
|
|
cmp r2, r3
|
|
blt _08084FE2
|
|
_08084FF0:
|
|
movs r0, 0
|
|
_08084FF2:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8084FC0
|
|
|
|
thumb_func_start sub_8084FF8
|
|
sub_8084FF8: @ 8084FF8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 16
|
|
lsrs r4, r1, 16
|
|
lsls r2, 16
|
|
lsrs r5, r2, 16
|
|
bl sub_8084FC0
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
beq _08085030
|
|
movs r0, 0x8
|
|
ldrsb r0, [r1, r0]
|
|
ldrb r1, [r1, 0x9]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
lsls r3, r4, 24
|
|
asrs r3, 24
|
|
lsls r4, r5, 24
|
|
asrs r4, 24
|
|
str r4, [sp]
|
|
bl Overworld_SetWarpDestination
|
|
b _0808504C
|
|
_08085030:
|
|
bl mapheader_run_script_with_tag_x6
|
|
ldr r0, =gUnknown_020322EC
|
|
bl warp_data_is_not_neg_1
|
|
cmp r0, 0
|
|
beq _08085048
|
|
movs r0, 0
|
|
b _0808504E
|
|
.pool
|
|
_08085048:
|
|
bl warp1_set_to_warp2
|
|
_0808504C:
|
|
movs r0, 0x1
|
|
_0808504E:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8084FF8
|
|
|
|
thumb_func_start sub_8085058
|
|
sub_8085058: @ 8085058
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
movs r0, 0x6
|
|
adds r1, r3, 0
|
|
bl sub_8084FF8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8085058
|
|
|
|
thumb_func_start sub_8085078
|
|
sub_8085078: @ 8085078
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
movs r0, 0x5
|
|
adds r1, r3, 0
|
|
bl sub_8084FF8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8085078
|
|
|
|
thumb_func_start mliX_load_map
|
|
mliX_load_map: @ 8085098
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r6, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r5, r1, 0
|
|
lsls r0, r6, 24
|
|
asrs r0, 24
|
|
lsls r1, r5, 24
|
|
asrs r1, 24
|
|
movs r3, 0x1
|
|
negs r3, r3
|
|
str r3, [sp]
|
|
adds r2, r3, 0
|
|
bl Overworld_SetWarpDestination
|
|
ldr r4, =gMapHeader
|
|
ldrb r0, [r4, 0x14]
|
|
cmp r0, 0x3A
|
|
beq _080850C8
|
|
bl sub_8085810
|
|
_080850C8:
|
|
bl warp_shift
|
|
bl set_current_map_header_from_sav1_save_old_name
|
|
bl CopyFieldObjectTemplatesToSav1
|
|
bl TrySetMapSaveWarpStatus
|
|
bl ClearTempFieldEventData
|
|
bl ResetCyclingRoadChallengeData
|
|
bl prev_quest_postbuffer_cursor_backup_reset
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl TryUpdateRandomTrainerRematches
|
|
bl DoTimeBasedEvents
|
|
bl sub_80AEDBC
|
|
bl sub_8085B2C
|
|
bl update_sav1_flash_used_on_map
|
|
bl Overworld_ClearSavedMusic
|
|
bl mapheader_run_script_with_tag_x3
|
|
bl not_trainer_hill_battle_pyramid
|
|
ldr r0, [r4]
|
|
bl copy_map_tileset2_to_vram_2
|
|
ldr r0, [r4]
|
|
bl apply_map_tileset2_palette
|
|
movs r4, 0x6
|
|
_08085116:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_80ABF00
|
|
adds r4, 0x1
|
|
cmp r4, 0xC
|
|
ble _08085116
|
|
bl sub_80A0A2C
|
|
bl UpdateLocationHistoryForRoamer
|
|
bl RoamerMove
|
|
bl DoCurrentWeather
|
|
bl wild_encounter_reset_coro_args
|
|
bl mapheader_run_script_with_tag_x5
|
|
ldr r2, =gMapHeader
|
|
ldrb r0, [r2, 0x14]
|
|
cmp r0, 0x3A
|
|
bne _0808514C
|
|
ldr r1, =gUnknown_020322FC
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
beq _08085150
|
|
_0808514C:
|
|
bl AddMapNamePopUpWindowTask
|
|
_08085150:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end mliX_load_map
|
|
|
|
thumb_func_start mli0_load_map
|
|
mli0_load_map: @ 8085160
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
bl set_current_map_header_from_sav1_save_old_name
|
|
ldr r0, =gUnknown_020322D8
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080851A2
|
|
ldr r0, =gMapHeader
|
|
ldrh r1, [r0, 0x12]
|
|
ldr r0, =0x00000169
|
|
cmp r1, r0
|
|
bne _08085190
|
|
bl sub_81AA1D8
|
|
b _080851A2
|
|
.pool
|
|
_08085190:
|
|
bl InTrainerHill
|
|
cmp r0, 0
|
|
beq _0808519E
|
|
bl sub_81D5DF8
|
|
b _080851A2
|
|
_0808519E:
|
|
bl CopyFieldObjectTemplatesToSav1
|
|
_080851A2:
|
|
ldr r4, =gMapHeader
|
|
ldrb r0, [r4, 0x17]
|
|
bl is_light_level_1_2_3_5_or_6
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldrb r0, [r4, 0x17]
|
|
bl is_light_level_8_or_9
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
bl sub_80EB218
|
|
bl TrySetMapSaveWarpStatus
|
|
bl ClearTempFieldEventData
|
|
bl ResetCyclingRoadChallengeData
|
|
bl prev_quest_postbuffer_cursor_backup_reset
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
movs r0, 0x4
|
|
ldrsb r0, [r1, r0]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrb r1, [r1, 0x5]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl TryUpdateRandomTrainerRematches
|
|
cmp r7, 0x1
|
|
beq _080851EE
|
|
bl DoTimeBasedEvents
|
|
_080851EE:
|
|
bl sub_80AEDBC
|
|
bl sub_8085B2C
|
|
cmp r5, 0
|
|
beq _08085200
|
|
ldr r0, =0x00000888
|
|
bl FlagClear
|
|
_08085200:
|
|
bl update_sav1_flash_used_on_map
|
|
bl Overworld_ClearSavedMusic
|
|
bl mapheader_run_script_with_tag_x3
|
|
bl UpdateLocationHistoryForRoamer
|
|
bl RoamerMoveToOtherLocationSet
|
|
ldrh r1, [r4, 0x12]
|
|
ldr r0, =0x00000169
|
|
cmp r1, r0
|
|
bne _08085234
|
|
movs r0, 0
|
|
bl battle_pyramid_map_load_related
|
|
b _08085246
|
|
.pool
|
|
_08085234:
|
|
bl InTrainerHill
|
|
cmp r0, 0
|
|
beq _08085242
|
|
bl trainer_hill_map_load_related
|
|
b _08085246
|
|
_08085242:
|
|
bl not_trainer_hill_battle_pyramid
|
|
_08085246:
|
|
cmp r7, 0x1
|
|
beq _0808525E
|
|
cmp r6, 0
|
|
beq _0808525E
|
|
ldr r1, =gUnknown_03005DC0
|
|
ldr r0, [r1]
|
|
ldr r1, [r1, 0x4]
|
|
bl UpdateTVScreensOnMap
|
|
movs r0, 0x1
|
|
bl sub_80E9238
|
|
_0808525E:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end mli0_load_map
|
|
|
|
thumb_func_start player_avatar_init_params_reset
|
|
player_avatar_init_params_reset: @ 8085268
|
|
ldr r1, =gUnknown_02032300
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x1]
|
|
strb r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end player_avatar_init_params_reset
|
|
|
|
thumb_func_start walkrun_find_lowest_active_bit_in_bitfield
|
|
walkrun_find_lowest_active_bit_in_bitfield: @ 8085278
|
|
push {r4,lr}
|
|
bl player_get_direction_lower_nybble
|
|
ldr r4, =gUnknown_02032300
|
|
strb r0, [r4, 0x1]
|
|
movs r0, 0x2
|
|
bl TestPlayerAvatarFlags
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08085298
|
|
movs r0, 0x2
|
|
b _080852CA
|
|
.pool
|
|
_08085298:
|
|
movs r0, 0x4
|
|
bl TestPlayerAvatarFlags
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080852A8
|
|
movs r0, 0x4
|
|
b _080852CA
|
|
_080852A8:
|
|
movs r0, 0x8
|
|
bl TestPlayerAvatarFlags
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080852B8
|
|
movs r0, 0x8
|
|
b _080852CA
|
|
_080852B8:
|
|
movs r0, 0x10
|
|
bl TestPlayerAvatarFlags
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080852C8
|
|
movs r0, 0x10
|
|
b _080852CA
|
|
_080852C8:
|
|
movs r0, 0x1
|
|
_080852CA:
|
|
strb r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end walkrun_find_lowest_active_bit_in_bitfield
|
|
|
|
thumb_func_start sub_80852D4
|
|
sub_80852D4: @ 80852D4
|
|
push {r4-r7,lr}
|
|
bl sav1_map_get_light_level
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
bl cur_mapdata_block_role_at_screen_center_acc_to_sav1
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
ldr r6, =gUnknown_02032300
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_808532C
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r0, =0xffffff00
|
|
ands r7, r0
|
|
orrs r7, r1
|
|
adds r0, r6, 0
|
|
adds r2, r4, 0
|
|
adds r3, r5, 0
|
|
bl sub_808538C
|
|
lsls r0, 24
|
|
lsrs r0, 16
|
|
ldr r1, =0xffff00ff
|
|
ands r7, r1
|
|
orrs r7, r0
|
|
str r7, [r6]
|
|
adds r0, r6, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80852D4
|
|
|
|
thumb_func_start sub_808532C
|
|
sub_808532C: @ 808532C
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
lsls r1, 16
|
|
lsrs r5, r1, 16
|
|
lsls r2, 24
|
|
lsrs r4, r2, 24
|
|
cmp r4, 0x8
|
|
beq _08085348
|
|
ldr r0, =0x0000088d
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08085382
|
|
_08085348:
|
|
cmp r4, 0x5
|
|
bne _08085354
|
|
movs r0, 0x10
|
|
b _08085384
|
|
.pool
|
|
_08085354:
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
bl MetatileBehavior_IsSurfableWaterOrUnderwater
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08085368
|
|
movs r0, 0x8
|
|
b _08085384
|
|
_08085368:
|
|
bl sav1_map_is_biking_allowed
|
|
cmp r0, 0x1
|
|
bne _08085382
|
|
ldrb r0, [r6]
|
|
cmp r0, 0x2
|
|
bne _0808537A
|
|
movs r0, 0x2
|
|
b _08085384
|
|
_0808537A:
|
|
cmp r0, 0x4
|
|
bne _08085382
|
|
movs r0, 0x4
|
|
b _08085384
|
|
_08085382:
|
|
movs r0, 0x1
|
|
_08085384:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_808532C
|
|
|
|
thumb_func_start sub_808538C
|
|
sub_808538C: @ 808538C
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
lsls r2, 16
|
|
lsrs r4, r2, 16
|
|
lsls r3, 24
|
|
lsrs r5, r3, 24
|
|
ldr r0, =0x0000088d
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080853AC
|
|
cmp r5, 0x6
|
|
beq _0808540C
|
|
_080853AC:
|
|
lsls r4, 24
|
|
lsrs r5, r4, 24
|
|
adds r0, r5, 0
|
|
bl MetatileBehavior_IsDeepSouthWarp
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _080853E8
|
|
adds r0, r5, 0
|
|
bl MetatileBehavior_IsNonAnimDoor
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08085442
|
|
adds r0, r5, 0
|
|
bl MetatileBehavior_IsDoor
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08085442
|
|
adds r0, r5, 0
|
|
bl MetatileBehavior_IsSouthArrowWarp
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080853F0
|
|
_080853E8:
|
|
movs r0, 0x2
|
|
b _08085448
|
|
.pool
|
|
_080853F0:
|
|
adds r0, r5, 0
|
|
bl MetatileBehavior_IsNorthArrowWarp
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08085442
|
|
adds r0, r5, 0
|
|
bl MetatileBehavior_IsWestArrowWarp
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08085410
|
|
_0808540C:
|
|
movs r0, 0x4
|
|
b _08085448
|
|
_08085410:
|
|
adds r0, r5, 0
|
|
bl MetatileBehavior_IsEastArrowWarp
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08085422
|
|
movs r0, 0x3
|
|
b _08085448
|
|
_08085422:
|
|
ldrb r0, [r6]
|
|
cmp r0, 0x10
|
|
bne _0808542C
|
|
cmp r7, 0x8
|
|
beq _08085446
|
|
_0808542C:
|
|
cmp r0, 0x8
|
|
bne _08085434
|
|
cmp r7, 0x10
|
|
beq _08085446
|
|
_08085434:
|
|
lsrs r0, r4, 24
|
|
bl MetatileBehavior_IsLadder
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08085446
|
|
_08085442:
|
|
movs r0, 0x1
|
|
b _08085448
|
|
_08085446:
|
|
ldrb r0, [r6, 0x1]
|
|
_08085448:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_808538C
|
|
|
|
thumb_func_start cur_mapdata_block_role_at_screen_center_acc_to_sav1
|
|
cur_mapdata_block_role_at_screen_center_acc_to_sav1: @ 8085450
|
|
push {lr}
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
adds r0, 0x7
|
|
movs r2, 0x2
|
|
ldrsh r1, [r1, r2]
|
|
adds r1, 0x7
|
|
bl MapGridGetMetatileBehaviorAt
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end cur_mapdata_block_role_at_screen_center_acc_to_sav1
|
|
|
|
thumb_func_start sav1_map_is_biking_allowed
|
|
sav1_map_is_biking_allowed: @ 8085474
|
|
push {lr}
|
|
ldr r0, =gMapHeader
|
|
ldrb r1, [r0, 0x1A]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0808548C
|
|
movs r0, 0x1
|
|
b _0808548E
|
|
.pool
|
|
_0808548C:
|
|
movs r0, 0
|
|
_0808548E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sav1_map_is_biking_allowed
|
|
|
|
thumb_func_start update_sav1_flash_used_on_map
|
|
update_sav1_flash_used_on_map: @ 8085494
|
|
push {lr}
|
|
ldr r0, =gMapHeader
|
|
ldrb r1, [r0, 0x15]
|
|
cmp r1, 0
|
|
bne _080854B0
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
adds r0, 0x30
|
|
strb r1, [r0]
|
|
b _080854DE
|
|
.pool
|
|
_080854B0:
|
|
ldr r0, =0x00000888
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080854D0
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
adds r0, 0x30
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
b _080854DE
|
|
.pool
|
|
_080854D0:
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
ldr r0, =gUnknown_0854FE78
|
|
ldr r0, [r0]
|
|
subs r0, 0x1
|
|
adds r1, 0x30
|
|
strb r0, [r1]
|
|
_080854DE:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end update_sav1_flash_used_on_map
|
|
|
|
thumb_func_start Overworld_SetFlashLevel
|
|
Overworld_SetFlashLevel: @ 80854EC
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
blt _080854FC
|
|
ldr r0, =gUnknown_0854FE78
|
|
ldr r0, [r0]
|
|
cmp r1, r0
|
|
ble _080854FE
|
|
_080854FC:
|
|
movs r1, 0
|
|
_080854FE:
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
adds r0, 0x30
|
|
strb r1, [r0]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end Overworld_SetFlashLevel
|
|
|
|
thumb_func_start Overworld_GetFlashLevel
|
|
Overworld_GetFlashLevel: @ 8085514
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
adds r0, 0x30
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end Overworld_GetFlashLevel
|
|
|
|
thumb_func_start sub_8085524
|
|
sub_8085524: @ 8085524
|
|
push {lr}
|
|
ldr r1, =gSaveBlock1Ptr
|
|
ldr r1, [r1]
|
|
strh r0, [r1, 0x32]
|
|
bl get_mapdata_header
|
|
ldr r1, =gMapHeader
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8085524
|
|
|
|
thumb_func_start sub_8085540
|
|
sub_8085540: @ 8085540
|
|
ldr r1, =gUnknown_020322D8
|
|
strb r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8085540
|
|
|
|
thumb_func_start sub_808554C
|
|
sub_808554C: @ 808554C
|
|
ldr r0, =gUnknown_020322D8
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_808554C
|
|
|
|
thumb_func_start sub_8085558
|
|
sub_8085558: @ 8085558
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, =0x0000088a
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080855AC
|
|
movs r0, 0
|
|
ldrsb r0, [r4, r0]
|
|
cmp r0, 0
|
|
bne _080855AC
|
|
movs r0, 0x1
|
|
ldrsb r0, [r4, r0]
|
|
cmp r0, 0x5
|
|
blt _08085584
|
|
cmp r0, 0x8
|
|
ble _0808559E
|
|
cmp r0, 0x2B
|
|
bgt _08085584
|
|
cmp r0, 0x27
|
|
bge _0808559E
|
|
_08085584:
|
|
ldr r0, =0x0000405e
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x3
|
|
bls _080855AC
|
|
movs r0, 0x1
|
|
ldrsb r0, [r4, r0]
|
|
cmp r0, 0x2E
|
|
bgt _080855AC
|
|
cmp r0, 0x2C
|
|
blt _080855AC
|
|
_0808559E:
|
|
movs r0, 0x1
|
|
b _080855AE
|
|
.pool
|
|
_080855AC:
|
|
movs r0, 0
|
|
_080855AE:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8085558
|
|
|
|
thumb_func_start sub_80855B4
|
|
sub_80855B4: @ 80855B4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, =0x000040ca
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _080855D6
|
|
movs r0, 0
|
|
ldrsb r0, [r4, r0]
|
|
cmp r0, 0
|
|
bne _080855D6
|
|
movs r0, 0x1
|
|
ldrsb r0, [r4, r0]
|
|
cmp r0, 0x7
|
|
beq _080855E0
|
|
_080855D6:
|
|
movs r0, 0
|
|
b _080855E2
|
|
.pool
|
|
_080855E0:
|
|
movs r0, 0x1
|
|
_080855E2:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80855B4
|
|
|
|
thumb_func_start sub_80855E8
|
|
sub_80855E8: @ 80855E8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, =0x000040b3
|
|
bl VarGet
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08085606
|
|
movs r0, 0
|
|
ldrsb r0, [r4, r0]
|
|
cmp r0, 0x20
|
|
bne _08085606
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0x1
|
|
bls _08085610
|
|
_08085606:
|
|
movs r0, 0
|
|
b _08085612
|
|
.pool
|
|
_08085610:
|
|
movs r0, 0x1
|
|
_08085612:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80855E8
|
|
|
|
thumb_func_start sub_8085618
|
|
sub_8085618: @ 8085618
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, =0x0000405d
|
|
adds r0, r4, 0
|
|
bl VarGet
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _0808564C
|
|
adds r0, r4, 0
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x2
|
|
bhi _0808564C
|
|
movs r0, 0
|
|
ldrsb r0, [r5, r0]
|
|
cmp r0, 0xE
|
|
bne _0808564C
|
|
ldrb r0, [r5, 0x1]
|
|
subs r0, 0x9
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bls _08085654
|
|
_0808564C:
|
|
movs r0, 0
|
|
b _08085656
|
|
.pool
|
|
_08085654:
|
|
movs r0, 0x1
|
|
_08085656:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8085618
|
|
|
|
thumb_func_start warp_target_get_music
|
|
warp_target_get_music: @ 808565C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_80855B4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _08085674
|
|
ldr r0, =0x0000ffff
|
|
b _080856CE
|
|
.pool
|
|
_08085674:
|
|
adds r0, r4, 0
|
|
bl sub_8085558
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _0808568C
|
|
ldr r0, =0x000001bb
|
|
b _080856CE
|
|
.pool
|
|
_0808568C:
|
|
adds r0, r4, 0
|
|
bl sub_8085618
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _080856A4
|
|
ldr r0, =0x000001b9
|
|
b _080856CE
|
|
.pool
|
|
_080856A4:
|
|
adds r0, r4, 0
|
|
bl sub_80855E8
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
beq _080856CA
|
|
movs r0, 0
|
|
ldrsb r0, [r4, r0]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1
|
|
ldrsb r1, [r4, r1]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl get_mapheader_by_bank_and_number
|
|
ldrh r0, [r0, 0x10]
|
|
b _080856CE
|
|
_080856CA:
|
|
movs r0, 0xCB
|
|
lsls r0, 1
|
|
_080856CE:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end warp_target_get_music
|
|
|
|
thumb_func_start sav1_map_get_music
|
|
sav1_map_get_music: @ 80856D4
|
|
push {r4,lr}
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0, 0x4]
|
|
movs r0, 0xD0
|
|
lsls r0, 5
|
|
cmp r1, r0
|
|
bne _080856FC
|
|
bl GetSav1Weather
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x8
|
|
bne _080856FC
|
|
ldr r0, =0x00000199
|
|
b _08085730
|
|
.pool
|
|
_080856FC:
|
|
ldr r4, =gSaveBlock1Ptr
|
|
ldr r0, [r4]
|
|
adds r0, 0x4
|
|
bl warp_target_get_music
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
ldr r0, =0x00007fff
|
|
cmp r1, r0
|
|
beq _0808571C
|
|
adds r0, r1, 0
|
|
b _08085730
|
|
.pool
|
|
_0808571C:
|
|
ldr r0, [r4]
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x17
|
|
ble _0808572C
|
|
movs r0, 0xC9
|
|
lsls r0, 1
|
|
b _08085730
|
|
_0808572C:
|
|
movs r0, 0xB4
|
|
lsls r0, 1
|
|
_08085730:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sav1_map_get_music
|
|
|
|
thumb_func_start warp1_target_get_music
|
|
warp1_target_get_music: @ 8085738
|
|
push {lr}
|
|
ldr r0, =gUnknown_020322E4
|
|
bl warp_target_get_music
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
ldr r0, =0x00007fff
|
|
cmp r1, r0
|
|
beq _08085758
|
|
adds r0, r1, 0
|
|
b _08085774
|
|
.pool
|
|
_08085758:
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0, 0x4]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
cmp r1, r0
|
|
beq _08085770
|
|
subs r0, 0x6E
|
|
b _08085774
|
|
.pool
|
|
_08085770:
|
|
movs r0, 0xB4
|
|
lsls r0, 1
|
|
_08085774:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end warp1_target_get_music
|
|
|
|
thumb_func_start call_ResetMapMusic
|
|
call_ResetMapMusic: @ 8085778
|
|
push {lr}
|
|
bl ResetMapMusic
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end call_ResetMapMusic
|
|
|
|
thumb_func_start Overworld_PlaySpecialMapMusic
|
|
Overworld_PlaySpecialMapMusic: @ 8085784
|
|
push {r4,lr}
|
|
bl sav1_map_get_music
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r0, =0x000001bb
|
|
cmp r4, r0
|
|
beq _080857D6
|
|
ldr r0, =0x0000ffff
|
|
cmp r4, r0
|
|
beq _080857D6
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x2C]
|
|
cmp r0, 0
|
|
beq _080857B4
|
|
adds r4, r0, 0
|
|
b _080857D6
|
|
.pool
|
|
_080857B4:
|
|
bl sav1_map_get_light_level
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x5
|
|
bne _080857C8
|
|
ldr r4, =0x0000019b
|
|
b _080857D6
|
|
.pool
|
|
_080857C8:
|
|
movs r0, 0x8
|
|
bl TestPlayerAvatarFlags
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080857D6
|
|
ldr r4, =0x0000016d
|
|
_080857D6:
|
|
bl GetCurrentMapMusic
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r4, r0
|
|
beq _080857E8
|
|
adds r0, r4, 0
|
|
bl PlayNewMapMusic
|
|
_080857E8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end Overworld_PlaySpecialMapMusic
|
|
|
|
thumb_func_start Overworld_SetSavedMusic
|
|
Overworld_SetSavedMusic: @ 80857F4
|
|
ldr r1, =gSaveBlock1Ptr
|
|
ldr r1, [r1]
|
|
strh r0, [r1, 0x2C]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end Overworld_SetSavedMusic
|
|
|
|
thumb_func_start Overworld_ClearSavedMusic
|
|
Overworld_ClearSavedMusic: @ 8085800
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
strh r0, [r1, 0x2C]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end Overworld_ClearSavedMusic
|
|
|
|
thumb_func_start sub_8085810
|
|
sub_8085810: @ 8085810
|
|
push {r4-r6,lr}
|
|
ldr r0, =0x00004001
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08085890
|
|
bl warp1_target_get_music
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
bl GetCurrentMapMusic
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldr r0, =0x000001bb
|
|
cmp r4, r0
|
|
beq _08085856
|
|
ldr r0, =0x0000ffff
|
|
cmp r4, r0
|
|
beq _08085856
|
|
ldr r0, =0x0000019b
|
|
cmp r5, r0
|
|
beq _08085890
|
|
ldr r6, =0x0000016d
|
|
cmp r5, r6
|
|
beq _08085890
|
|
movs r0, 0x8
|
|
bl TestPlayerAvatarFlags
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08085856
|
|
adds r4, r6, 0
|
|
_08085856:
|
|
cmp r4, r5
|
|
beq _08085890
|
|
movs r0, 0x6
|
|
bl TestPlayerAvatarFlags
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08085888
|
|
adds r0, r4, 0
|
|
movs r1, 0x4
|
|
movs r2, 0x4
|
|
bl FadeOutAndFadeInNewMapMusic
|
|
b _08085890
|
|
.pool
|
|
_08085888:
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl FadeOutAndPlayNewMapMusic
|
|
_08085890:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8085810
|
|
|
|
thumb_func_start Overworld_ChangeMusicToDefault
|
|
Overworld_ChangeMusicToDefault: @ 8085898
|
|
push {r4,lr}
|
|
bl GetCurrentMapMusic
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
bl sav1_map_get_music
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r4, r0
|
|
beq _080858BE
|
|
bl sav1_map_get_music
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x8
|
|
bl FadeOutAndPlayNewMapMusic
|
|
_080858BE:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end Overworld_ChangeMusicToDefault
|
|
|
|
thumb_func_start Overworld_ChangeMusicTo
|
|
Overworld_ChangeMusicTo: @ 80858C4
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
bl GetCurrentMapMusic
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, r4
|
|
beq _080858E4
|
|
ldr r0, =0x000001bb
|
|
cmp r1, r0
|
|
beq _080858E4
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl FadeOutAndPlayNewMapMusic
|
|
_080858E4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end Overworld_ChangeMusicTo
|
|
|
|
thumb_func_start is_warp1_light_level_8_or_9
|
|
is_warp1_light_level_8_or_9: @ 80858F0
|
|
push {lr}
|
|
bl warp1_get_mapheader
|
|
ldrb r0, [r0, 0x17]
|
|
bl is_light_level_8_or_9
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08085908
|
|
movs r0, 0x4
|
|
b _0808590A
|
|
_08085908:
|
|
movs r0, 0x2
|
|
_0808590A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end is_warp1_light_level_8_or_9
|
|
|
|
thumb_func_start music_something
|
|
music_something: @ 8085910
|
|
push {r4,r5,lr}
|
|
bl GetCurrentMapMusic
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
bl warp1_target_get_music
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r0, =0x00004001
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0808597E
|
|
bl GetCurrentMapMusic
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r4, r0
|
|
beq _0808597E
|
|
ldr r0, =0x0000016d
|
|
cmp r5, r0
|
|
bne _08085972
|
|
ldr r0, =0x000040ca
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x2
|
|
bne _08085972
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, =0x0000ffff
|
|
ldrh r2, [r0, 0x4]
|
|
movs r0, 0xE0
|
|
lsls r0, 3
|
|
cmp r2, r0
|
|
bne _08085972
|
|
ldr r3, =gUnknown_020322E4
|
|
ldrh r0, [r3]
|
|
ands r1, r0
|
|
cmp r1, r2
|
|
bne _08085972
|
|
ldr r1, [r3, 0x4]
|
|
ldr r0, =0x0035001d
|
|
cmp r1, r0
|
|
beq _0808597E
|
|
_08085972:
|
|
bl is_warp1_light_level_8_or_9
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl FadeOutMapMusic
|
|
_0808597E:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end music_something
|
|
|
|
thumb_func_start sub_80859A0
|
|
sub_80859A0: @ 80859A0
|
|
push {lr}
|
|
bl IsNotWaitingForBGMStop
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80859A0
|
|
|
|
thumb_func_start sub_80859B0
|
|
sub_80859B0: @ 80859B0
|
|
push {lr}
|
|
movs r0, 0x4
|
|
bl FadeOutMapMusic
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80859B0
|
|
|
|
thumb_func_start sub_80859BC
|
|
sub_80859BC: @ 80859BC
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
mov r4, sp
|
|
adds r4, 0x2
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl PlayerGetDestCoords
|
|
ldr r0, =gUnknown_02032306
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _080859F0
|
|
mov r0, sp
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
movs r2, 0
|
|
ldrsh r1, [r4, r2]
|
|
bl MapGridGetMetatileBehaviorAt
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl MetatileBehavior_IsSurfableWaterOrUnderwater
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08085A2C
|
|
_080859F0:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x58
|
|
bl __umodsi3
|
|
adds r4, r0, 0
|
|
adds r4, 0xD4
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1E
|
|
bl __umodsi3
|
|
adds r2, r0, 0
|
|
adds r2, 0x32
|
|
ldr r0, =gUnknown_02032304
|
|
ldrh r0, [r0]
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
lsls r2, 24
|
|
asrs r2, 24
|
|
adds r1, r4, 0
|
|
movs r3, 0x1
|
|
bl PlayCry2
|
|
_08085A2C:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80859BC
|
|
|
|
thumb_func_start wild_encounter_related
|
|
wild_encounter_related: @ 8085A3C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0x4
|
|
bhi _08085B20
|
|
lsls r0, 2
|
|
ldr r1, =_08085A60
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08085A60:
|
|
.4byte _08085A74
|
|
.4byte _08085A88
|
|
.4byte _08085AA4
|
|
.4byte _08085B0C
|
|
.4byte _08085B20
|
|
_08085A74:
|
|
ldr r0, =gUnknown_02032304
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _08085A84
|
|
movs r0, 0x4
|
|
b _08085B1E
|
|
.pool
|
|
_08085A84:
|
|
movs r0, 0x1
|
|
b _08085B1E
|
|
_08085A88:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x96
|
|
lsls r1, 4
|
|
bl __umodsi3
|
|
movs r1, 0x96
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
strh r0, [r7]
|
|
movs r0, 0x3
|
|
b _08085B1E
|
|
_08085AA4:
|
|
movs r0, 0x1
|
|
mov r9, r0
|
|
bl CalculatePlayerPartyCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
movs r5, 0
|
|
b _08085ABC
|
|
_08085AB6:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_08085ABC:
|
|
cmp r5, r8
|
|
bcs _08085AE4
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r4, =gPlayerParty
|
|
adds r0, r4
|
|
movs r1, 0x6
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _08085AB6
|
|
adds r0, r4, 0
|
|
bl GetMonAbility
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x44
|
|
bne _08085AB6
|
|
movs r1, 0x2
|
|
mov r9, r1
|
|
_08085AE4:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r4, 0x96
|
|
lsls r4, 3
|
|
adds r1, r4, 0
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r0, r4
|
|
mov r1, r9
|
|
bl __divsi3
|
|
strh r0, [r7]
|
|
movs r0, 0x3
|
|
b _08085B1E
|
|
.pool
|
|
_08085B0C:
|
|
ldrh r0, [r7]
|
|
subs r0, 0x1
|
|
strh r0, [r7]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08085B20
|
|
bl sub_80859BC
|
|
movs r0, 0x2
|
|
_08085B1E:
|
|
strh r0, [r6]
|
|
_08085B20:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end wild_encounter_related
|
|
|
|
thumb_func_start sub_8085B2C
|
|
sub_8085B2C: @ 8085B2C
|
|
push {lr}
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0, 0x4]
|
|
movs r0, 0xB4
|
|
lsls r0, 6
|
|
cmp r1, r0
|
|
bne _08085B5C
|
|
bl IsMirageIslandPresent
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08085B5C
|
|
ldr r1, =gUnknown_02032306
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
bl GetLocalWaterMon
|
|
b _08085B62
|
|
.pool
|
|
_08085B5C:
|
|
ldr r0, =gUnknown_02032306
|
|
bl GetLocalWildMon
|
|
_08085B62:
|
|
ldr r1, =gUnknown_02032304
|
|
strh r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8085B2C
|
|
|
|
thumb_func_start get_map_light_level_by_bank_and_number
|
|
@ int get_map_light_level_by_bank_and_number(int bank, int number)
|
|
get_map_light_level_by_bank_and_number: @ 8085B74
|
|
push {lr}
|
|
lsls r0, 24
|
|
asrs r0, 8
|
|
lsrs r0, 16
|
|
lsls r1, 24
|
|
asrs r1, 8
|
|
lsrs r1, 16
|
|
bl get_mapheader_by_bank_and_number
|
|
ldrb r0, [r0, 0x17]
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end get_map_light_level_by_bank_and_number
|
|
|
|
thumb_func_start get_map_light_level_from_warp
|
|
@ int get_map_light_level_from_warp(warpdata *warp)
|
|
get_map_light_level_from_warp: @ 8085B8C
|
|
push {lr}
|
|
movs r2, 0
|
|
ldrsb r2, [r0, r2]
|
|
movs r1, 0x1
|
|
ldrsb r1, [r0, r1]
|
|
adds r0, r2, 0
|
|
bl get_map_light_level_by_bank_and_number
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end get_map_light_level_from_warp
|
|
|
|
thumb_func_start sav1_map_get_light_level
|
|
sav1_map_get_light_level: @ 8085BA4
|
|
push {lr}
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
adds r0, 0x4
|
|
bl get_map_light_level_from_warp
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sav1_map_get_light_level
|
|
|
|
thumb_func_start get_map_light_from_warp0
|
|
get_map_light_from_warp0: @ 8085BBC
|
|
push {lr}
|
|
ldr r0, =gUnknown_020322DC
|
|
bl get_map_light_level_from_warp
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end get_map_light_from_warp0
|
|
|
|
thumb_func_start is_light_level_1_2_3_5_or_6
|
|
is_light_level_1_2_3_5_or_6: @ 8085BD0
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
beq _08085BEA
|
|
cmp r0, 0x1
|
|
beq _08085BEA
|
|
cmp r0, 0x5
|
|
beq _08085BEA
|
|
cmp r0, 0x2
|
|
beq _08085BEA
|
|
cmp r0, 0x6
|
|
bne _08085BEE
|
|
_08085BEA:
|
|
movs r0, 0x1
|
|
b _08085BF0
|
|
_08085BEE:
|
|
movs r0, 0
|
|
_08085BF0:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end is_light_level_1_2_3_5_or_6
|
|
|
|
thumb_func_start Overworld_MapTypeAllowsTeleportAndFly
|
|
Overworld_MapTypeAllowsTeleportAndFly: @ 8085BF4
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
beq _08085C0A
|
|
cmp r0, 0x1
|
|
beq _08085C0A
|
|
cmp r0, 0x6
|
|
beq _08085C0A
|
|
cmp r0, 0x2
|
|
bne _08085C0E
|
|
_08085C0A:
|
|
movs r0, 0x1
|
|
b _08085C10
|
|
_08085C0E:
|
|
movs r0, 0
|
|
_08085C10:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end Overworld_MapTypeAllowsTeleportAndFly
|
|
|
|
thumb_func_start is_light_level_8_or_9
|
|
is_light_level_8_or_9: @ 8085C14
|
|
push {lr}
|
|
lsls r0, 24
|
|
movs r1, 0xF8
|
|
lsls r1, 24
|
|
adds r0, r1
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bls _08085C28
|
|
movs r0, 0
|
|
b _08085C2A
|
|
_08085C28:
|
|
movs r0, 0x1
|
|
_08085C2A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end is_light_level_8_or_9
|
|
|
|
thumb_func_start sav1_saved_warp2_map_get_name
|
|
sav1_saved_warp2_map_get_name: @ 8085C30
|
|
push {lr}
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
movs r0, 0x14
|
|
ldrsb r0, [r1, r0]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrb r1, [r1, 0x15]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl get_mapheader_by_bank_and_number
|
|
ldrb r0, [r0, 0x14]
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sav1_saved_warp2_map_get_name
|
|
|
|
thumb_func_start sav1_map_get_name
|
|
sav1_map_get_name: @ 8085C58
|
|
push {lr}
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
movs r0, 0x4
|
|
ldrsb r0, [r1, r0]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrb r1, [r1, 0x5]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl get_mapheader_by_bank_and_number
|
|
ldrb r0, [r0, 0x14]
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sav1_map_get_name
|
|
|
|
thumb_func_start GetCurrentMapBattleScene
|
|
GetCurrentMapBattleScene: @ 8085C80
|
|
push {lr}
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
movs r0, 0x4
|
|
ldrsb r0, [r1, r0]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrb r1, [r1, 0x5]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl get_mapheader_by_bank_and_number
|
|
ldrb r0, [r0, 0x1B]
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end GetCurrentMapBattleScene
|
|
|
|
thumb_func_start overworld_bg_setup
|
|
@ void overworld_bg_setup()
|
|
overworld_bg_setup: @ 8085CA8
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
ldr r1, =gUnknown_08339DAC
|
|
movs r0, 0
|
|
movs r2, 0x4
|
|
bl InitBgsFromTemplates
|
|
movs r0, 0x1
|
|
movs r1, 0x5
|
|
movs r2, 0x1
|
|
bl SetBgAttribute
|
|
movs r0, 0x2
|
|
movs r1, 0x5
|
|
movs r2, 0x1
|
|
bl SetBgAttribute
|
|
movs r0, 0x3
|
|
movs r1, 0x5
|
|
movs r2, 0x1
|
|
bl SetBgAttribute
|
|
ldr r0, =gUnknown_03005DA0
|
|
mov r8, r0
|
|
movs r4, 0x80
|
|
lsls r4, 4
|
|
adds r0, r4, 0
|
|
bl AllocZeroed
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
ldr r6, =gUnknown_03005D9C
|
|
adds r0, r4, 0
|
|
bl AllocZeroed
|
|
str r0, [r6]
|
|
ldr r5, =gUnknown_03005DA4
|
|
adds r0, r4, 0
|
|
bl AllocZeroed
|
|
str r0, [r5]
|
|
mov r0, r8
|
|
ldr r1, [r0]
|
|
movs r0, 0x1
|
|
bl SetBgTilemapBuffer
|
|
ldr r1, [r6]
|
|
movs r0, 0x2
|
|
bl SetBgTilemapBuffer
|
|
ldr r1, [r5]
|
|
movs r0, 0x3
|
|
bl SetBgTilemapBuffer
|
|
bl sub_81971D0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end overworld_bg_setup
|
|
|
|
thumb_func_start overworld_free_bg_tilemaps
|
|
overworld_free_bg_tilemaps: @ 8085D34
|
|
push {r4,lr}
|
|
bl sub_81BE72C
|
|
bl sub_81971F4
|
|
ldr r4, =gUnknown_03005DA4
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _08085D4E
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_08085D4E:
|
|
ldr r4, =gUnknown_03005D9C
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _08085D5E
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_08085D5E:
|
|
ldr r4, =gUnknown_03005DA0
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _08085D6E
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_08085D6E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end overworld_free_bg_tilemaps
|
|
|
|
thumb_func_start ResetSafariZoneFlag_
|
|
ResetSafariZoneFlag_: @ 8085D80
|
|
push {lr}
|
|
bl ResetSafariZoneFlag
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end ResetSafariZoneFlag_
|
|
|
|
thumb_func_start is_c1_link_related_active
|
|
@ _BOOL4 is_c1_link_related_active()
|
|
is_c1_link_related_active: @ 8085D8C
|
|
push {lr}
|
|
ldr r0, =gMain
|
|
ldr r1, [r0]
|
|
ldr r0, =c1_link_related
|
|
cmp r1, r0
|
|
beq _08085DA4
|
|
movs r0, 0
|
|
b _08085DA6
|
|
.pool
|
|
_08085DA4:
|
|
movs r0, 0x1
|
|
_08085DA6:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end is_c1_link_related_active
|
|
|
|
thumb_func_start c1_overworld_normal
|
|
@ void c1_overworld_normal(int buttons_new, int buttons_held)
|
|
c1_overworld_normal: @ 8085DAC
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r5, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r4, r1, 0
|
|
bl sub_808B578
|
|
mov r6, sp
|
|
mov r0, sp
|
|
bl sub_809BEDC
|
|
mov r0, sp
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl process_overworld_input
|
|
bl ScriptContext2_IsEnabled
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08085DFA
|
|
mov r0, sp
|
|
bl sub_809C014
|
|
cmp r0, 0x1
|
|
bne _08085DF0
|
|
bl ScriptContext2_Enable
|
|
bl HideMapNamePopUpWindow
|
|
b _08085DFA
|
|
_08085DF0:
|
|
ldrb r0, [r6, 0x2]
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl player_step
|
|
_08085DFA:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end c1_overworld_normal
|
|
|
|
thumb_func_start c1_overworld
|
|
c1_overworld: @ 8085E04
|
|
push {lr}
|
|
ldr r2, =gMain
|
|
ldr r1, [r2, 0x4]
|
|
ldr r0, =c2_overworld
|
|
cmp r1, r0
|
|
bne _08085E18
|
|
ldrh r0, [r2, 0x2E]
|
|
ldrh r1, [r2, 0x2C]
|
|
bl c1_overworld_normal
|
|
_08085E18:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end c1_overworld
|
|
|
|
thumb_func_start c2_overworld_basic
|
|
@ void c2_overworld_basic()
|
|
c2_overworld_basic: @ 8085E24
|
|
push {lr}
|
|
bl ScriptContext2_RunScript
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl CameraUpdate
|
|
bl UpdateCameraPanning
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
bl sub_80A0A38
|
|
bl do_scheduled_bg_tilemap_copies_to_vram
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end c2_overworld_basic
|
|
|
|
thumb_func_start sub_8085E50
|
|
sub_8085E50: @ 8085E50
|
|
push {lr}
|
|
bl c2_overworld_basic
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8085E50
|
|
|
|
thumb_func_start c2_overworld
|
|
c2_overworld: @ 8085E5C
|
|
push {r4,lr}
|
|
ldr r0, =gPaletteFade
|
|
ldrb r0, [r0, 0x7]
|
|
lsrs r0, 7
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
beq _08085E70
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
_08085E70:
|
|
bl c2_overworld_basic
|
|
cmp r4, 0
|
|
beq _08085E7C
|
|
bl SetFieldVBlankCallback
|
|
_08085E7C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end c2_overworld
|
|
|
|
thumb_func_start set_callback1
|
|
set_callback1: @ 8085E88
|
|
ldr r1, =gMain
|
|
str r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end set_callback1
|
|
|
|
thumb_func_start sub_8085E94
|
|
sub_8085E94: @ 8085E94
|
|
ldr r1, =gUnknown_03000E0C
|
|
str r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8085E94
|
|
|
|
thumb_func_start map_post_load_hook_exec
|
|
map_post_load_hook_exec: @ 8085EA0
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_03005DB0
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _08085ECC
|
|
bl _call_via_r0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08085EBC
|
|
movs r0, 0
|
|
b _08085EEC
|
|
.pool
|
|
_08085EBC:
|
|
movs r1, 0
|
|
str r1, [r4]
|
|
ldr r0, =gFieldCallback
|
|
str r1, [r0]
|
|
b _08085EEA
|
|
.pool
|
|
_08085ECC:
|
|
ldr r0, =gFieldCallback
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _08085EE0
|
|
bl _call_via_r0
|
|
b _08085EE4
|
|
.pool
|
|
_08085EE0:
|
|
bl mapldr_default
|
|
_08085EE4:
|
|
ldr r1, =gFieldCallback
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
_08085EEA:
|
|
movs r0, 0x1
|
|
_08085EEC:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end map_post_load_hook_exec
|
|
|
|
thumb_func_start CB2_NewGame
|
|
CB2_NewGame: @ 8085EF8
|
|
push {lr}
|
|
bl sub_808631C
|
|
bl StopMapMusic
|
|
bl ResetSafariZoneFlag_
|
|
bl NewGameInitData
|
|
bl player_avatar_init_params_reset
|
|
bl PlayTimeCounter_Start
|
|
bl ScriptContext1_Init
|
|
bl ScriptContext2_Disable
|
|
ldr r1, =gFieldCallback
|
|
ldr r0, =ExecuteTruckSequence
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_03005DB0
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r0, =gUnknown_030026F8
|
|
bl do_load_map_stuff_loop
|
|
bl SetFieldVBlankCallback
|
|
ldr r0, =c1_overworld
|
|
bl set_callback1
|
|
ldr r0, =c2_overworld
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end CB2_NewGame
|
|
|
|
thumb_func_start CB2_WhiteOut
|
|
CB2_WhiteOut: @ 8085F58
|
|
push {lr}
|
|
sub sp, 0x4
|
|
ldr r1, =gMain
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x77
|
|
bls _08085FB0
|
|
bl sub_808631C
|
|
bl StopMapMusic
|
|
bl ResetSafariZoneFlag_
|
|
bl sub_8084620
|
|
bl player_avatar_init_params_reset
|
|
bl ScriptContext1_Init
|
|
bl ScriptContext2_Disable
|
|
ldr r1, =gFieldCallback
|
|
ldr r0, =sub_80AF3C8
|
|
str r0, [r1]
|
|
mov r1, sp
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
mov r0, sp
|
|
bl do_load_map_stuff_loop
|
|
bl SetFieldVBlankCallback
|
|
ldr r0, =c1_overworld
|
|
bl set_callback1
|
|
ldr r0, =c2_overworld
|
|
bl SetMainCallback2
|
|
_08085FB0:
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end CB2_WhiteOut
|
|
|
|
thumb_func_start c2_load_new_map
|
|
c2_load_new_map: @ 8085FCC
|
|
push {lr}
|
|
bl sub_808631C
|
|
bl ScriptContext1_Init
|
|
bl ScriptContext2_Disable
|
|
movs r0, 0
|
|
bl set_callback1
|
|
ldr r0, =c2_change_map
|
|
bl SetMainCallback2
|
|
ldr r1, =gMain
|
|
ldr r0, =c2_load_new_map_2
|
|
str r0, [r1, 0x8]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end c2_load_new_map
|
|
|
|
thumb_func_start c2_load_new_map_2
|
|
c2_load_new_map_2: @ 8085FFC
|
|
push {lr}
|
|
ldr r0, =gUnknown_030026F8
|
|
bl do_load_map_stuff_loop
|
|
bl SetFieldVBlankCallback
|
|
ldr r0, =c1_overworld
|
|
bl set_callback1
|
|
ldr r0, =c2_overworld
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end c2_load_new_map_2
|
|
|
|
thumb_func_start sub_8086024
|
|
sub_8086024: @ 8086024
|
|
push {r4,lr}
|
|
ldr r0, =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r4, r0, r1
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
bne _08086046
|
|
bl sub_808631C
|
|
bl ScriptContext1_Init
|
|
bl ScriptContext2_Disable
|
|
movs r0, 0
|
|
bl set_callback1
|
|
_08086046:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl load_map_stuff
|
|
cmp r0, 0
|
|
beq _08086062
|
|
bl SetFieldVBlankCallback
|
|
ldr r0, =c1_overworld
|
|
bl set_callback1
|
|
ldr r0, =c2_overworld
|
|
bl SetMainCallback2
|
|
_08086062:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8086024
|
|
|
|
thumb_func_start sub_8086074
|
|
sub_8086074: @ 8086074
|
|
push {lr}
|
|
bl sub_808631C
|
|
ldr r0, =gFieldCallback
|
|
ldr r1, =sub_80AF314
|
|
str r1, [r0]
|
|
ldr r0, =c2_80567AC
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8086074
|
|
|
|
thumb_func_start c2_80567AC
|
|
c2_80567AC: @ 8086098
|
|
push {lr}
|
|
ldr r0, =gUnknown_030026F8
|
|
bl map_loading_iteration_3
|
|
cmp r0, 0
|
|
beq _080860B8
|
|
bl SetFieldVBlankCallback
|
|
ldr r0, =c1_link_related
|
|
bl set_callback1
|
|
bl sub_8086C2C
|
|
ldr r0, =c2_overworld
|
|
bl SetMainCallback2
|
|
_080860B8:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end c2_80567AC
|
|
|
|
thumb_func_start c2_exit_to_overworld_2_switch
|
|
c2_exit_to_overworld_2_switch: @ 80860C8
|
|
push {lr}
|
|
bl is_c1_link_related_active
|
|
cmp r0, 0x1
|
|
bne _080860E0
|
|
ldr r0, =c2_exit_to_overworld_2_link
|
|
bl SetMainCallback2
|
|
b _080860EA
|
|
.pool
|
|
_080860E0:
|
|
bl sub_808631C
|
|
ldr r0, =c2_exit_to_overworld_2_local
|
|
bl SetMainCallback2
|
|
_080860EA:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end c2_exit_to_overworld_2_switch
|
|
|
|
thumb_func_start c2_exit_to_overworld_2_local
|
|
c2_exit_to_overworld_2_local: @ 80860F4
|
|
push {lr}
|
|
ldr r0, =gUnknown_030026F8
|
|
bl sub_8086638
|
|
cmp r0, 0
|
|
beq _0808610A
|
|
bl SetFieldVBlankCallback
|
|
ldr r0, =c2_overworld
|
|
bl SetMainCallback2
|
|
_0808610A:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end c2_exit_to_overworld_2_local
|
|
|
|
thumb_func_start c2_exit_to_overworld_2_link
|
|
c2_exit_to_overworld_2_link: @ 8086118
|
|
push {lr}
|
|
bl sub_8087598
|
|
cmp r0, 0
|
|
bne _08086132
|
|
ldr r0, =gUnknown_030026F8
|
|
bl map_loading_iteration_2_link
|
|
cmp r0, 0
|
|
beq _08086132
|
|
ldr r0, =c2_overworld
|
|
bl SetMainCallback2
|
|
_08086132:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end c2_exit_to_overworld_2_link
|
|
|
|
thumb_func_start c2_8056854
|
|
c2_8056854: @ 8086140
|
|
push {lr}
|
|
bl sub_808631C
|
|
bl StopMapMusic
|
|
ldr r0, =c1_link_related
|
|
bl set_callback1
|
|
bl sub_8086C2C
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08086174
|
|
ldr r1, =gFieldCallback
|
|
ldr r0, =sub_80AF314
|
|
b _08086178
|
|
.pool
|
|
_08086174:
|
|
ldr r1, =gFieldCallback
|
|
ldr r0, =sub_80AF214
|
|
_08086178:
|
|
str r0, [r1]
|
|
bl ScriptContext1_Init
|
|
bl ScriptContext2_Disable
|
|
bl c2_exit_to_overworld_2_switch
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end c2_8056854
|
|
|
|
thumb_func_start sub_8086194
|
|
sub_8086194: @ 8086194
|
|
push {lr}
|
|
bl sub_808631C
|
|
ldr r1, =gUnknown_03005DB0
|
|
ldr r0, =sub_80AF6A4
|
|
str r0, [r1]
|
|
bl c2_exit_to_overworld_2_switch
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8086194
|
|
|
|
thumb_func_start sub_80861B0
|
|
sub_80861B0: @ 80861B0
|
|
push {lr}
|
|
bl sub_808631C
|
|
ldr r1, =gFieldCallback
|
|
ldr r0, =sub_80AF188
|
|
str r0, [r1]
|
|
bl c2_exit_to_overworld_2_switch
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80861B0
|
|
|
|
thumb_func_start c2_exit_to_overworld_1_continue_scripts_restart_music
|
|
c2_exit_to_overworld_1_continue_scripts_restart_music: @ 80861CC
|
|
push {lr}
|
|
bl sub_808631C
|
|
ldr r1, =gFieldCallback
|
|
ldr r0, =sub_80AF168
|
|
str r0, [r1]
|
|
bl c2_exit_to_overworld_2_switch
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end c2_exit_to_overworld_1_continue_scripts_restart_music
|
|
|
|
thumb_func_start sub_80861E8
|
|
sub_80861E8: @ 80861E8
|
|
push {lr}
|
|
bl sub_808631C
|
|
ldr r1, =gFieldCallback
|
|
ldr r0, =sub_80AF3C8
|
|
str r0, [r1]
|
|
bl c2_exit_to_overworld_2_switch
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80861E8
|
|
|
|
thumb_func_start sub_8086204
|
|
sub_8086204: @ 8086204
|
|
push {lr}
|
|
ldr r0, =gMapHeader
|
|
ldrb r1, [r0, 0x1A]
|
|
movs r0, 0xF8
|
|
ands r0, r1
|
|
cmp r0, 0x8
|
|
bne _08086222
|
|
bl sub_80E909C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08086222
|
|
bl AddMapNamePopUpWindowTask
|
|
_08086222:
|
|
bl sub_80AF3C8
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8086204
|
|
|
|
thumb_func_start sub_8086230
|
|
sub_8086230: @ 8086230
|
|
push {r4,lr}
|
|
bl sub_808631C
|
|
bl StopMapMusic
|
|
bl ResetSafariZoneFlag_
|
|
ldr r0, =gSaveFileStatus
|
|
ldrh r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _0808624A
|
|
bl sub_81A3908
|
|
_0808624A:
|
|
bl set_current_map_header_from_sav1
|
|
bl set_warp2_warp3_to_neg_1
|
|
bl GetCurrentTrainerHillMapId
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, =gMapHeader
|
|
ldrh r1, [r0, 0x12]
|
|
ldr r0, =0x00000169
|
|
cmp r1, r0
|
|
bne _08086278
|
|
bl sub_81AA2F8
|
|
b _0808628A
|
|
.pool
|
|
_08086278:
|
|
cmp r4, 0
|
|
beq _08086286
|
|
cmp r4, 0x6
|
|
beq _08086286
|
|
bl sub_81D5F48
|
|
b _0808628A
|
|
_08086286:
|
|
bl CopyFieldObjectTemplateCoordsToSav1
|
|
_0808628A:
|
|
bl UnfreezeMapObjects
|
|
bl DoTimeBasedEvents
|
|
bl sub_8084788
|
|
ldr r0, =gMapHeader
|
|
ldrh r1, [r0, 0x12]
|
|
ldr r0, =0x00000169
|
|
cmp r1, r0
|
|
bne _080862B0
|
|
movs r0, 0x1
|
|
bl battle_pyramid_map_load_related
|
|
b _080862BE
|
|
.pool
|
|
_080862B0:
|
|
cmp r4, 0
|
|
beq _080862BA
|
|
bl trainer_hill_map_load_related
|
|
b _080862BE
|
|
_080862BA:
|
|
bl sub_8087D74
|
|
_080862BE:
|
|
bl PlayTimeCounter_Start
|
|
bl ScriptContext1_Init
|
|
bl ScriptContext2_Disable
|
|
bl sub_8195E10
|
|
bl sav2_x1_query_bit1
|
|
cmp r0, 0x1
|
|
bne _080862F4
|
|
bl sav2_x9_clear_bit1
|
|
bl warp1_set_to_sav1w
|
|
bl warp_in
|
|
bl sub_80EDB44
|
|
ldr r0, =c2_load_new_map
|
|
bl SetMainCallback2
|
|
b _08086308
|
|
.pool
|
|
_080862F4:
|
|
bl sub_80EDB44
|
|
ldr r0, =gFieldCallback
|
|
ldr r1, =sub_8086204
|
|
str r1, [r0]
|
|
ldr r0, =c1_overworld
|
|
bl set_callback1
|
|
bl c2_exit_to_overworld_2_switch
|
|
_08086308:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8086230
|
|
|
|
thumb_func_start sub_808631C
|
|
@ void sub_808631C()
|
|
sub_808631C: @ 808631C
|
|
push {r4,lr}
|
|
bl warp0_in_pokecenter
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0808632E
|
|
bl sub_80097E8
|
|
_0808632E:
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08086348
|
|
movs r0, 0xC5
|
|
bl EnableInterrupts
|
|
movs r0, 0x2
|
|
bl DisableInterrupts
|
|
b _08086362
|
|
.pool
|
|
_08086348:
|
|
ldr r4, =0x04000208
|
|
ldrh r3, [r4]
|
|
strh r0, [r4]
|
|
ldr r2, =0x04000200
|
|
ldrh r1, [r2]
|
|
ldr r0, =0x0000fffd
|
|
ands r0, r1
|
|
strh r0, [r2]
|
|
ldrh r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
strh r3, [r4]
|
|
_08086362:
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
movs r0, 0
|
|
bl SetHBlankCallback
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_808631C
|
|
|
|
thumb_func_start SetFieldVBlankCallback
|
|
@ void SetFieldVBlankCallback()
|
|
SetFieldVBlankCallback: @ 8086380
|
|
push {lr}
|
|
ldr r0, =VBlankCB_Field
|
|
bl SetVBlankCallback
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end SetFieldVBlankCallback
|
|
|
|
thumb_func_start VBlankCB_Field
|
|
VBlankCB_Field: @ 8086390
|
|
push {lr}
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl sub_80BA0A8
|
|
bl FieldUpdateBgTilemapScroll
|
|
bl TransferPlttBuffer
|
|
bl TransferTilesetAnimsBuffer
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end VBlankCB_Field
|
|
|
|
thumb_func_start sub_80863B0
|
|
sub_80863B0: @ 80863B0
|
|
push {lr}
|
|
bl sub_81A9E6C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080863D4
|
|
bl door_upload_tiles
|
|
ldr r2, =gUnknown_08339DBC
|
|
ldr r0, [r2]
|
|
ldr r1, [r2, 0x4]
|
|
ldr r2, [r2, 0x8]
|
|
bl sub_80BA038
|
|
b _080863F0
|
|
.pool
|
|
_080863D4:
|
|
bl Overworld_GetFlashLevel
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _080863F0
|
|
bl sub_80B00E8
|
|
ldr r2, =gUnknown_08339DBC
|
|
ldr r0, [r2]
|
|
ldr r1, [r2, 0x4]
|
|
ldr r2, [r2, 0x8]
|
|
bl sub_80BA038
|
|
_080863F0:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80863B0
|
|
|
|
thumb_func_start map_loading_iteration_3
|
|
map_loading_iteration_3: @ 80863F8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xD
|
|
bls _08086404
|
|
b _08086512
|
|
_08086404:
|
|
lsls r0, 2
|
|
ldr r1, =_08086414
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08086414:
|
|
.4byte _0808644C
|
|
.4byte _08086462
|
|
.4byte _0808646A
|
|
.4byte _08086472
|
|
.4byte _08086484
|
|
.4byte _08086492
|
|
.4byte _08086498
|
|
.4byte _080864A8
|
|
.4byte _080864B8
|
|
.4byte _080864D4
|
|
.4byte _080864DA
|
|
.4byte _080864E0
|
|
.4byte _080864FC
|
|
.4byte _0808650E
|
|
_0808644C:
|
|
bl overworld_bg_setup
|
|
bl ScriptContext1_Init
|
|
bl ScriptContext2_Disable
|
|
bl MoveSaveBlocks_ResetHeap_
|
|
bl sub_80867D8
|
|
b _08086506
|
|
_08086462:
|
|
movs r0, 0x1
|
|
bl mli0_load_map
|
|
b _08086506
|
|
_0808646A:
|
|
movs r0, 0x1
|
|
bl sub_8086988
|
|
b _08086506
|
|
_08086472:
|
|
bl sub_8086AE4
|
|
bl sub_80869DC
|
|
bl sub_8086B14
|
|
bl sub_8086AAC
|
|
b _08086506
|
|
_08086484:
|
|
bl sub_80863B0
|
|
bl map_loading_lcd_reset
|
|
bl sub_8197200
|
|
b _08086506
|
|
_08086492:
|
|
bl move_tilemap_camera_to_upper_left_corner
|
|
b _08086506
|
|
_08086498:
|
|
ldr r0, =gMapHeader
|
|
ldr r0, [r0]
|
|
bl copy_map_tileset1_to_vram
|
|
b _08086506
|
|
.pool
|
|
_080864A8:
|
|
ldr r0, =gMapHeader
|
|
ldr r0, [r0]
|
|
bl copy_map_tileset2_to_vram
|
|
b _08086506
|
|
.pool
|
|
_080864B8:
|
|
bl free_temp_tile_data_buffers_if_possible
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08086512
|
|
ldr r0, =gMapHeader
|
|
ldr r0, [r0]
|
|
bl apply_map_tileset1_tileset2_palette
|
|
b _08086506
|
|
.pool
|
|
_080864D4:
|
|
bl DrawWholeMapView
|
|
b _08086506
|
|
_080864DA:
|
|
bl cur_mapheader_run_tileset_funcs_after_some_cpuset
|
|
b _08086506
|
|
_080864E0:
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08086506
|
|
bl sub_800E0E8
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_800DFB4
|
|
b _08086506
|
|
.pool
|
|
_080864FC:
|
|
bl map_post_load_hook_exec
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08086512
|
|
_08086506:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _08086512
|
|
_0808650E:
|
|
movs r0, 0x1
|
|
b _08086514
|
|
_08086512:
|
|
movs r0, 0
|
|
_08086514:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end map_loading_iteration_3
|
|
|
|
thumb_func_start load_map_stuff
|
|
@ int load_map_stuff(u8 *a1, int a2)
|
|
load_map_stuff: @ 808651C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xD
|
|
bls _0808652A
|
|
b _0808662E
|
|
_0808652A:
|
|
lsls r0, 2
|
|
ldr r1, =_08086538
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08086538:
|
|
.4byte _08086570
|
|
.4byte _0808657C
|
|
.4byte _08086586
|
|
.4byte _0808658E
|
|
.4byte _08086598
|
|
.4byte _080865A6
|
|
.4byte _080865AC
|
|
.4byte _080865BC
|
|
.4byte _080865CC
|
|
.4byte _080865E8
|
|
.4byte _080865EE
|
|
.4byte _080865F4
|
|
.4byte _08086618
|
|
.4byte _0808662A
|
|
_08086570:
|
|
bl sub_808631C
|
|
adds r0, r5, 0
|
|
bl mli0_load_map
|
|
b _08086622
|
|
_0808657C:
|
|
bl MoveSaveBlocks_ResetHeap_
|
|
bl sub_80867D8
|
|
b _08086622
|
|
_08086586:
|
|
adds r0, r5, 0
|
|
bl sub_8086988
|
|
b _08086622
|
|
_0808658E:
|
|
bl mli4_mapscripts_and_other
|
|
bl sub_8086A80
|
|
b _08086622
|
|
_08086598:
|
|
bl sub_80863B0
|
|
bl map_loading_lcd_reset
|
|
bl sub_8197200
|
|
b _08086622
|
|
_080865A6:
|
|
bl move_tilemap_camera_to_upper_left_corner
|
|
b _08086622
|
|
_080865AC:
|
|
ldr r0, =gMapHeader
|
|
ldr r0, [r0]
|
|
bl copy_map_tileset1_to_vram
|
|
b _08086622
|
|
.pool
|
|
_080865BC:
|
|
ldr r0, =gMapHeader
|
|
ldr r0, [r0]
|
|
bl copy_map_tileset2_to_vram
|
|
b _08086622
|
|
.pool
|
|
_080865CC:
|
|
bl free_temp_tile_data_buffers_if_possible
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0808662E
|
|
ldr r0, =gMapHeader
|
|
ldr r0, [r0]
|
|
bl apply_map_tileset1_tileset2_palette
|
|
b _08086622
|
|
.pool
|
|
_080865E8:
|
|
bl DrawWholeMapView
|
|
b _08086622
|
|
_080865EE:
|
|
bl cur_mapheader_run_tileset_funcs_after_some_cpuset
|
|
b _08086622
|
|
_080865F4:
|
|
ldr r0, =gMapHeader
|
|
ldrb r1, [r0, 0x1A]
|
|
movs r0, 0xF8
|
|
ands r0, r1
|
|
cmp r0, 0x8
|
|
bne _08086622
|
|
bl sub_80E909C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08086622
|
|
bl AddMapNamePopUpWindowTask
|
|
b _08086622
|
|
.pool
|
|
_08086618:
|
|
bl map_post_load_hook_exec
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0808662E
|
|
_08086622:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _0808662E
|
|
_0808662A:
|
|
movs r0, 0x1
|
|
b _08086630
|
|
_0808662E:
|
|
movs r0, 0
|
|
_08086630:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end load_map_stuff
|
|
|
|
thumb_func_start sub_8086638
|
|
sub_8086638: @ 8086638
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x1
|
|
beq _0808666E
|
|
cmp r0, 0x1
|
|
bgt _0808664C
|
|
cmp r0, 0
|
|
beq _08086656
|
|
b _0808668E
|
|
_0808664C:
|
|
cmp r0, 0x2
|
|
beq _08086678
|
|
cmp r0, 0x3
|
|
beq _0808668A
|
|
b _0808668E
|
|
_08086656:
|
|
bl MoveSaveBlocks_ResetHeap_
|
|
bl sub_80867D8
|
|
movs r0, 0
|
|
bl sub_8086988
|
|
bl sub_8086A68
|
|
bl sub_8086A80
|
|
b _08086682
|
|
_0808666E:
|
|
bl sub_8086860
|
|
bl sub_81D64C0
|
|
b _08086682
|
|
_08086678:
|
|
bl map_post_load_hook_exec
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0808668E
|
|
_08086682:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _0808668E
|
|
_0808668A:
|
|
movs r0, 0x1
|
|
b _08086690
|
|
_0808668E:
|
|
movs r0, 0
|
|
_08086690:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8086638
|
|
|
|
thumb_func_start map_loading_iteration_2_link
|
|
map_loading_iteration_2_link: @ 8086698
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xD
|
|
bls _080866A4
|
|
b _080867A8
|
|
_080866A4:
|
|
lsls r0, 2
|
|
ldr r1, =_080866B4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080866B4:
|
|
.4byte _080866EC
|
|
.4byte _080866FA
|
|
.4byte _08086702
|
|
.4byte _08086710
|
|
.4byte _0808671E
|
|
.4byte _08086724
|
|
.4byte _08086734
|
|
.4byte _08086744
|
|
.4byte _08086760
|
|
.4byte _08086766
|
|
.4byte _08086792
|
|
.4byte _0808676C
|
|
.4byte _08086788
|
|
.4byte _0808679A
|
|
_080866EC:
|
|
bl sub_808631C
|
|
bl MoveSaveBlocks_ResetHeap_
|
|
bl sub_80867D8
|
|
b _08086792
|
|
_080866FA:
|
|
movs r0, 0x1
|
|
bl sub_8086988
|
|
b _08086792
|
|
_08086702:
|
|
bl sub_8086B9C
|
|
bl sub_8086A68
|
|
bl sub_8086AC8
|
|
b _08086792
|
|
_08086710:
|
|
bl sub_80863B0
|
|
bl map_loading_lcd_reset
|
|
bl sub_8197200
|
|
b _08086792
|
|
_0808671E:
|
|
bl move_tilemap_camera_to_upper_left_corner
|
|
b _08086792
|
|
_08086724:
|
|
ldr r0, =gMapHeader
|
|
ldr r0, [r0]
|
|
bl copy_map_tileset1_to_vram
|
|
b _08086792
|
|
.pool
|
|
_08086734:
|
|
ldr r0, =gMapHeader
|
|
ldr r0, [r0]
|
|
bl copy_map_tileset2_to_vram
|
|
b _08086792
|
|
.pool
|
|
_08086744:
|
|
bl free_temp_tile_data_buffers_if_possible
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _080867A8
|
|
ldr r0, =gMapHeader
|
|
ldr r0, [r0]
|
|
bl apply_map_tileset1_tileset2_palette
|
|
b _08086792
|
|
.pool
|
|
_08086760:
|
|
bl DrawWholeMapView
|
|
b _08086792
|
|
_08086766:
|
|
bl cur_mapheader_run_tileset_funcs_after_some_cpuset
|
|
b _08086792
|
|
_0808676C:
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08086792
|
|
bl sub_800E0E8
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_800DFB4
|
|
b _08086792
|
|
.pool
|
|
_08086788:
|
|
bl map_post_load_hook_exec
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080867A8
|
|
_08086792:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _080867A8
|
|
_0808679A:
|
|
bl SetFieldVBlankCallback
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
movs r0, 0x1
|
|
b _080867AA
|
|
_080867A8:
|
|
movs r0, 0
|
|
_080867AA:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end map_loading_iteration_2_link
|
|
|
|
thumb_func_start do_load_map_stuff_loop
|
|
do_load_map_stuff_loop: @ 80867B0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
_080867B4:
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl load_map_stuff
|
|
cmp r0, 0
|
|
beq _080867B4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end do_load_map_stuff_loop
|
|
|
|
thumb_func_start MoveSaveBlocks_ResetHeap_
|
|
MoveSaveBlocks_ResetHeap_: @ 80867C8
|
|
push {lr}
|
|
bl sub_81BE6AC
|
|
bl MoveSaveBlocks_ResetHeap
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end MoveSaveBlocks_ResetHeap_
|
|
|
|
thumb_func_start sub_80867D8
|
|
sub_80867D8: @ 80867D8
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
bl remove_some_task
|
|
ldr r2, =0x05000002
|
|
mov r1, sp
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r1, =0x040000d4
|
|
mov r0, sp
|
|
str r0, [r1]
|
|
str r2, [r1, 0x4]
|
|
ldr r0, =0x810001ff
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
movs r2, 0xC0
|
|
lsls r2, 19
|
|
movs r3, 0xC0
|
|
lsls r3, 9
|
|
mov r4, sp
|
|
movs r6, 0
|
|
movs r5, 0x80
|
|
lsls r5, 5
|
|
ldr r7, =0x81000800
|
|
movs r0, 0x81
|
|
lsls r0, 24
|
|
mov r12, r0
|
|
_08086816:
|
|
strh r6, [r4]
|
|
mov r0, sp
|
|
str r0, [r1]
|
|
str r2, [r1, 0x4]
|
|
str r7, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r2, r5
|
|
subs r3, r5
|
|
cmp r3, r5
|
|
bhi _08086816
|
|
strh r6, [r4]
|
|
mov r0, sp
|
|
str r0, [r1]
|
|
str r2, [r1, 0x4]
|
|
lsrs r0, r3, 1
|
|
mov r2, r12
|
|
orrs r0, r2
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x80
|
|
bl ResetOamRange
|
|
bl LoadOam
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80867D8
|
|
|
|
thumb_func_start sub_8086860
|
|
sub_8086860: @ 8086860
|
|
push {lr}
|
|
bl sub_80863B0
|
|
bl map_loading_lcd_reset
|
|
bl sub_8197200
|
|
bl mapdata_load_assets_to_gpu_and_full_redraw
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8086860
|
|
|
|
thumb_func_start map_loading_lcd_reset
|
|
map_loading_lcd_reset: @ 8086878
|
|
push {r4,lr}
|
|
bl clear_scheduled_bg_copies_to_vram
|
|
bl reset_temp_tile_data_buffers
|
|
movs r0, 0x4C
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r1, =0x00001f1f
|
|
movs r0, 0x48
|
|
bl SetGpuReg
|
|
ldr r1, =0x00000101
|
|
movs r0, 0x4A
|
|
bl SetGpuReg
|
|
movs r0, 0x40
|
|
movs r1, 0xFF
|
|
bl SetGpuReg
|
|
movs r0, 0x44
|
|
movs r1, 0xFF
|
|
bl SetGpuReg
|
|
ldr r4, =0x0000ffff
|
|
movs r0, 0x42
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x46
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_82EC7C4
|
|
ldrh r1, [r0, 0x2]
|
|
ldrh r2, [r0, 0x4]
|
|
orrs r1, r2
|
|
ldrh r0, [r0, 0x6]
|
|
orrs r1, r0
|
|
movs r2, 0x82
|
|
lsls r2, 5
|
|
adds r0, r2, 0
|
|
orrs r1, r0
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
ldr r1, =0x0000070d
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
bl overworld_bg_setup
|
|
movs r0, 0x1
|
|
bl schedule_bg_copy_tilemap_to_vram
|
|
movs r0, 0x2
|
|
bl schedule_bg_copy_tilemap_to_vram
|
|
movs r0, 0x3
|
|
bl schedule_bg_copy_tilemap_to_vram
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
ldr r1, =0x00007060
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
movs r0, 0x3
|
|
bl ShowBg
|
|
bl sub_8098128
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end map_loading_lcd_reset
|
|
|
|
thumb_func_start sub_8086988
|
|
sub_8086988: @ 8086988
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl ResetTasks
|
|
bl ResetSpriteData
|
|
bl ResetPaletteFade
|
|
bl dp12_8087EA4
|
|
bl dp13_810BB8C
|
|
bl ResetCameraUpdateInfo
|
|
bl InstallCameraPanAheadCallback
|
|
cmp r4, 0
|
|
bne _080869B4
|
|
movs r0, 0
|
|
bl npc_paltag_set_load
|
|
b _080869BA
|
|
_080869B4:
|
|
movs r0, 0x1
|
|
bl npc_paltag_set_load
|
|
_080869BA:
|
|
bl FieldEffectActiveListClear
|
|
bl sub_80AAFA4
|
|
bl sub_80AEE84
|
|
cmp r4, 0
|
|
bne _080869CE
|
|
bl overworld_ensure_per_step_coros_running
|
|
_080869CE:
|
|
bl mapheader_run_script_with_tag_x5
|
|
bl sub_81BE6B8
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8086988
|
|
|
|
thumb_func_start sub_80869DC
|
|
sub_80869DC: @ 80869DC
|
|
push {lr}
|
|
ldr r0, =gUnknown_03005DEC
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_03005DE8
|
|
strh r1, [r0]
|
|
bl sub_808D438
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl SpawnFieldObjectsInView
|
|
bl mapheader_run_first_tag4_script_list_match
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80869DC
|
|
|
|
thumb_func_start mli4_mapscripts_and_other
|
|
mli4_mapscripts_and_other: @ 8086A04
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
ldr r0, =gUnknown_03005DEC
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_03005DE8
|
|
strh r1, [r0]
|
|
bl sub_808D438
|
|
mov r4, sp
|
|
adds r4, 0x2
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl sav1_camera_get_focus_coords
|
|
bl sub_80852D4
|
|
adds r5, r0, 0
|
|
mov r0, sp
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
movs r2, 0
|
|
ldrsh r1, [r4, r2]
|
|
ldrb r2, [r5, 0x1]
|
|
ldr r3, =gSaveBlock2Ptr
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, 0x8]
|
|
bl InitPlayerAvatar
|
|
ldrb r0, [r5]
|
|
bl SetPlayerAvatarTransitionFlags
|
|
bl player_avatar_init_params_reset
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl SpawnFieldObjectsInView
|
|
bl mapheader_run_first_tag4_script_list_match
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end mli4_mapscripts_and_other
|
|
|
|
thumb_func_start sub_8086A68
|
|
sub_8086A68: @ 8086A68
|
|
push {lr}
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_808E16C
|
|
bl sub_80FBED0
|
|
bl mapheader_run_script_with_tag_x7
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8086A68
|
|
|
|
thumb_func_start sub_8086A80
|
|
sub_8086A80: @ 8086A80
|
|
push {lr}
|
|
ldr r2, =gMapObjects
|
|
ldr r3, =gPlayerAvatar
|
|
ldrb r1, [r3, 0x5]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x1]
|
|
movs r2, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x1]
|
|
ldrb r0, [r3, 0x4]
|
|
bl InitCameraUpdateCallback
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8086A80
|
|
|
|
thumb_func_start sub_8086AAC
|
|
sub_8086AAC: @ 8086AAC
|
|
push {lr}
|
|
ldr r0, =gUnknown_03005DB4
|
|
ldrb r0, [r0]
|
|
bl sub_8087858
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl InitCameraUpdateCallback
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8086AAC
|
|
|
|
thumb_func_start sub_8086AC8
|
|
sub_8086AC8: @ 8086AC8
|
|
push {lr}
|
|
ldr r0, =gUnknown_03005DB4
|
|
ldrb r0, [r0]
|
|
bl sub_8087858
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl InitCameraUpdateCallback
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8086AC8
|
|
|
|
thumb_func_start sub_8086AE4
|
|
sub_8086AE4: @ 8086AE4
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
mov r4, sp
|
|
adds r4, 0x2
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl sav1_camera_get_focus_coords
|
|
mov r2, sp
|
|
ldr r0, =gUnknown_03005DB4
|
|
ldrb r1, [r0]
|
|
ldrh r0, [r2]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrh r1, [r4]
|
|
bl sub_8088B3C
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8086AE4
|
|
|
|
thumb_func_start sub_8086B14
|
|
sub_8086B14: @ 8086B14
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
mov r4, sp
|
|
adds r4, 0x2
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl sav1_camera_get_focus_coords
|
|
mov r3, sp
|
|
mov r2, sp
|
|
ldr r0, =gUnknown_03005DB4
|
|
ldrb r1, [r0]
|
|
ldrh r0, [r2]
|
|
subs r0, r1
|
|
strh r0, [r3]
|
|
movs r6, 0
|
|
ldr r0, =gUnknown_03005DB8
|
|
mov r8, r4
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcs _08086B7E
|
|
ldr r7, =gLinkPlayers
|
|
_08086B44:
|
|
lsls r5, r6, 24
|
|
lsrs r5, 24
|
|
mov r0, sp
|
|
ldrh r1, [r0]
|
|
adds r1, r6, r1
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
mov r0, r8
|
|
movs r3, 0
|
|
ldrsh r2, [r0, r3]
|
|
lsls r4, r6, 3
|
|
subs r4, r6
|
|
lsls r4, 2
|
|
adds r4, r7
|
|
ldrb r3, [r4, 0x13]
|
|
adds r0, r5, 0
|
|
bl sub_80876F0
|
|
ldrb r1, [r4]
|
|
adds r0, r5, 0
|
|
bl sub_8087BCC
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r0, =gUnknown_03005DB8
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcc _08086B44
|
|
_08086B7E:
|
|
bl sub_8086C40
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8086B14
|
|
|
|
thumb_func_start sub_8086B9C
|
|
sub_8086B9C: @ 8086B9C
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_03005DB8
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcs _08086BCA
|
|
ldr r5, =gLinkPlayers
|
|
_08086BAA:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
lsls r1, r4, 3
|
|
subs r1, r4
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrb r1, [r1]
|
|
bl sub_8087BCC
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r0, =gUnknown_03005DB8
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcc _08086BAA
|
|
_08086BCA:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8086B9C
|
|
|
|
thumb_func_start c1_link_related
|
|
c1_link_related: @ 8086BD8
|
|
push {r4,lr}
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08086BF2
|
|
bl sub_800F0B8
|
|
cmp r0, 0
|
|
beq _08086BF2
|
|
bl sub_8009F3C
|
|
cmp r0, 0
|
|
bne _08086C14
|
|
_08086BF2:
|
|
ldr r0, =gUnknown_03005DB4
|
|
ldrb r4, [r0]
|
|
ldr r0, =gUnknown_03003020
|
|
adds r1, r4, 0
|
|
bl sub_8086F38
|
|
ldr r0, =gUnknown_03000E14
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
bl _call_via_r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl sub_8086FA0
|
|
bl sub_8086C40
|
|
_08086C14:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end c1_link_related
|
|
|
|
thumb_func_start sub_8086C2C
|
|
sub_8086C2C: @ 8086C2C
|
|
push {lr}
|
|
bl sub_8086C90
|
|
ldr r0, =sub_80870B0
|
|
bl c1_link_related_func_set
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8086C2C
|
|
|
|
thumb_func_start sub_8086C40
|
|
sub_8086C40: @ 8086C40
|
|
push {lr}
|
|
ldr r0, =gUnknown_03003020
|
|
bl sub_808709C
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8086C40
|
|
|
|
thumb_func_start c1_link_related_func_set
|
|
c1_link_related_func_set: @ 8086C50
|
|
ldr r2, =gUnknown_03000E19
|
|
movs r1, 0
|
|
strb r1, [r2]
|
|
ldr r1, =gUnknown_03000E14
|
|
str r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end c1_link_related_func_set
|
|
|
|
thumb_func_start sub_8086C64
|
|
sub_8086C64: @ 8086C64
|
|
push {lr}
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08086C82
|
|
ldr r1, =gUnknown_03000E19
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3C
|
|
bls _08086C82
|
|
bl sub_8010198
|
|
_08086C82:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8086C64
|
|
|
|
thumb_func_start sub_8086C90
|
|
sub_8086C90: @ 8086C90
|
|
push {lr}
|
|
ldr r1, =gUnknown_03000E10
|
|
movs r2, 0x80
|
|
adds r0, r1, 0x3
|
|
_08086C98:
|
|
strb r2, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, r1
|
|
bge _08086C98
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8086C90
|
|
|
|
thumb_func_start sub_8086CA8
|
|
sub_8086CA8: @ 8086CA8
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
ldr r0, =gUnknown_03005DB8
|
|
ldrb r2, [r0]
|
|
movs r1, 0
|
|
cmp r1, r2
|
|
bge _08086CD6
|
|
ldr r4, =gUnknown_03000E10
|
|
_08086CBA:
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, r3
|
|
beq _08086CD0
|
|
movs r0, 0
|
|
b _08086CD8
|
|
.pool
|
|
_08086CD0:
|
|
adds r1, 0x1
|
|
cmp r1, r2
|
|
blt _08086CBA
|
|
_08086CD6:
|
|
movs r0, 0x1
|
|
_08086CD8:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8086CA8
|
|
|
|
thumb_func_start sub_8086CE0
|
|
sub_8086CE0: @ 8086CE0
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
ldr r0, =gUnknown_03005DB8
|
|
ldrb r2, [r0]
|
|
movs r1, 0
|
|
cmp r1, r2
|
|
bge _08086D0E
|
|
ldr r4, =gUnknown_03000E10
|
|
_08086CF2:
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, r3
|
|
bne _08086D08
|
|
movs r0, 0x1
|
|
b _08086D10
|
|
.pool
|
|
_08086D08:
|
|
adds r1, 0x1
|
|
cmp r1, r2
|
|
blt _08086CF2
|
|
_08086D0E:
|
|
movs r0, 0
|
|
_08086D10:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8086CE0
|
|
|
|
thumb_func_start sub_8086D18
|
|
sub_8086D18: @ 8086D18
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r7, r0, 0
|
|
adds r6, r2, 0
|
|
mov r9, r3
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r8, r1
|
|
ldr r0, =gUnknown_03000E10
|
|
adds r5, r7, r0
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x80
|
|
beq _08086D38
|
|
b _08086EB2
|
|
_08086D38:
|
|
adds r0, r6, 0
|
|
bl sub_8087370
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
beq _08086D70
|
|
bl sub_8087480
|
|
mov r1, r9
|
|
strh r0, [r1]
|
|
movs r0, 0x81
|
|
strb r0, [r5]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
bne _08086D58
|
|
b _08086F26
|
|
_08086D58:
|
|
ldr r0, =sub_80870F8
|
|
bl c1_link_related_func_set
|
|
adds r0, r4, 0
|
|
bl sub_8087530
|
|
b _08086F26
|
|
.pool
|
|
_08086D70:
|
|
movs r0, 0x83
|
|
bl sub_8086CE0
|
|
cmp r0, 0x1
|
|
bne _08086D98
|
|
movs r0, 0x81
|
|
strb r0, [r5]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
bne _08086D86
|
|
b _08086F26
|
|
_08086D86:
|
|
ldr r0, =sub_80870F8
|
|
bl c1_link_related_func_set
|
|
bl sub_8087584
|
|
b _08086F26
|
|
.pool
|
|
_08086D98:
|
|
mov r0, r8
|
|
subs r0, 0x12
|
|
cmp r0, 0xA
|
|
bls _08086DA2
|
|
b _08086EB2
|
|
_08086DA2:
|
|
lsls r0, 2
|
|
ldr r1, =_08086DB0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08086DB0:
|
|
.4byte _08086E08
|
|
.4byte _08086EB2
|
|
.4byte _08086EB2
|
|
.4byte _08086EB2
|
|
.4byte _08086EB2
|
|
.4byte _08086EB2
|
|
.4byte _08086DDC
|
|
.4byte _08086E34
|
|
.4byte _08086EB2
|
|
.4byte _08086E64
|
|
.4byte _08086E90
|
|
_08086DDC:
|
|
adds r0, r6, 0
|
|
bl sub_8087358
|
|
cmp r0, 0
|
|
beq _08086EB2
|
|
ldr r0, =gUnknown_03000E10
|
|
adds r0, r7, r0
|
|
movs r1, 0x81
|
|
strb r1, [r0]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
beq _08086EB2
|
|
ldr r0, =sub_80870F8
|
|
bl c1_link_related_func_set
|
|
bl sub_808751C
|
|
b _08086EB2
|
|
.pool
|
|
_08086E08:
|
|
adds r0, r6, 0
|
|
bl sub_8087388
|
|
cmp r0, 0x1
|
|
bne _08086EB2
|
|
ldr r0, =gUnknown_03000E10
|
|
adds r0, r7, r0
|
|
movs r1, 0x81
|
|
strb r1, [r0]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
beq _08086EB2
|
|
ldr r0, =sub_80870F8
|
|
bl c1_link_related_func_set
|
|
bl sub_808754C
|
|
b _08086EB2
|
|
.pool
|
|
_08086E34:
|
|
adds r0, r6, 0
|
|
bl sub_80873B4
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
beq _08086EB2
|
|
ldr r0, =gUnknown_03000E10
|
|
adds r0, r7, r0
|
|
movs r1, 0x81
|
|
strb r1, [r0]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
beq _08086EB2
|
|
ldr r0, =sub_80870F8
|
|
bl c1_link_related_func_set
|
|
adds r0, r4, 0
|
|
bl sub_8087568
|
|
b _08086EB2
|
|
.pool
|
|
_08086E64:
|
|
adds r0, r6, 0
|
|
bl sub_8087340
|
|
cmp r0, 0
|
|
beq _08086EB2
|
|
ldr r0, =gUnknown_03000E10
|
|
adds r0, r7, r0
|
|
movs r1, 0x81
|
|
strb r1, [r0]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
beq _08086EB2
|
|
ldr r0, =sub_808711C
|
|
bl c1_link_related_func_set
|
|
bl sub_8087510
|
|
b _08086EB2
|
|
.pool
|
|
_08086E90:
|
|
adds r0, r6, 0
|
|
bl sub_8087340
|
|
cmp r0, 0
|
|
beq _08086EB2
|
|
ldr r0, =gUnknown_03000E10
|
|
adds r0, r7, r0
|
|
movs r1, 0x81
|
|
strb r1, [r0]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
beq _08086EB2
|
|
ldr r0, =sub_8087140
|
|
bl c1_link_related_func_set
|
|
bl sub_8087510
|
|
_08086EB2:
|
|
mov r0, r8
|
|
cmp r0, 0x17
|
|
beq _08086ED8
|
|
cmp r0, 0x17
|
|
bgt _08086ECC
|
|
cmp r0, 0x16
|
|
beq _08086EE8
|
|
b _08086F26
|
|
.pool
|
|
_08086ECC:
|
|
mov r1, r8
|
|
cmp r1, 0x1A
|
|
beq _08086EF8
|
|
cmp r1, 0x1D
|
|
beq _08086F18
|
|
b _08086F26
|
|
_08086ED8:
|
|
ldr r0, =gUnknown_03000E10
|
|
adds r0, r7, r0
|
|
movs r1, 0x83
|
|
strb r1, [r0]
|
|
b _08086F26
|
|
.pool
|
|
_08086EE8:
|
|
ldr r0, =gUnknown_03000E10
|
|
adds r0, r7, r0
|
|
movs r1, 0x82
|
|
strb r1, [r0]
|
|
b _08086F26
|
|
.pool
|
|
_08086EF8:
|
|
ldr r0, =gUnknown_03000E10
|
|
adds r0, r7, r0
|
|
movs r1, 0x80
|
|
strb r1, [r0]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
beq _08086F26
|
|
ldr r0, =sub_80870B0
|
|
bl c1_link_related_func_set
|
|
b _08086F26
|
|
.pool
|
|
_08086F18:
|
|
ldr r0, =gUnknown_03000E10
|
|
adds r1, r7, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x82
|
|
bne _08086F26
|
|
movs r0, 0x81
|
|
strb r0, [r1]
|
|
_08086F26:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8086D18
|
|
|
|
thumb_func_start sub_8086F38
|
|
sub_8086F38: @ 8086F38
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x14
|
|
mov r8, r1
|
|
movs r6, 0
|
|
add r5, sp, 0x10
|
|
mov r9, r5
|
|
adds r7, r0, 0
|
|
_08086F4C:
|
|
ldrb r4, [r7]
|
|
movs r0, 0
|
|
strh r0, [r5]
|
|
adds r0, r6, 0
|
|
mov r1, r8
|
|
mov r2, sp
|
|
bl sub_80872D8
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
mov r2, sp
|
|
adds r3, r5, 0
|
|
bl sub_8086D18
|
|
ldr r0, =gUnknown_03000E10
|
|
adds r0, r6, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x80
|
|
bne _08086F7C
|
|
adds r0, r4, 0
|
|
bl sub_8087068
|
|
mov r1, r9
|
|
strh r0, [r1]
|
|
_08086F7C:
|
|
lsls r0, r6, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r5]
|
|
bl sub_808796C
|
|
adds r7, 0x2
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08086F4C
|
|
add sp, 0x14
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8086F38
|
|
|
|
thumb_func_start sub_8086FA0
|
|
sub_8086FA0: @ 8086FA0
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r1, =0xffef0000
|
|
adds r0, r1
|
|
lsrs r0, 16
|
|
cmp r0, 0xC
|
|
bhi _08086FC0
|
|
ldr r0, =gUnknown_03005DA8
|
|
strh r4, [r0]
|
|
b _08086FC6
|
|
.pool
|
|
_08086FC0:
|
|
ldr r1, =gUnknown_03005DA8
|
|
movs r0, 0x11
|
|
strh r0, [r1]
|
|
_08086FC6:
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08086FFC
|
|
bl sub_8087690
|
|
cmp r0, 0x1
|
|
bls _08086FFC
|
|
bl is_c1_link_related_active
|
|
cmp r0, 0x1
|
|
bne _08086FFC
|
|
bl sub_8009F3C
|
|
cmp r0, 0x1
|
|
bne _08086FFC
|
|
cmp r4, 0x11
|
|
blt _08086FFC
|
|
cmp r4, 0x15
|
|
ble _08086FF6
|
|
cmp r4, 0x19
|
|
bgt _08086FFC
|
|
cmp r4, 0x18
|
|
blt _08086FFC
|
|
_08086FF6:
|
|
ldr r1, =gUnknown_03005DA8
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
_08086FFC:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8086FA0
|
|
|
|
thumb_func_start sub_808700C
|
|
sub_808700C: @ 808700C
|
|
push {lr}
|
|
ldr r2, =gMain
|
|
ldrh r1, [r2, 0x2C]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08087024
|
|
movs r0, 0x13
|
|
b _08087064
|
|
.pool
|
|
_08087024:
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08087030
|
|
movs r0, 0x12
|
|
b _08087064
|
|
_08087030:
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0808703C
|
|
movs r0, 0x14
|
|
b _08087064
|
|
_0808703C:
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08087048
|
|
movs r0, 0x15
|
|
b _08087064
|
|
_08087048:
|
|
ldrh r1, [r2, 0x2E]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08087056
|
|
movs r0, 0x18
|
|
b _08087064
|
|
_08087056:
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08087062
|
|
movs r0, 0x11
|
|
b _08087064
|
|
_08087062:
|
|
movs r0, 0x19
|
|
_08087064:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_808700C
|
|
|
|
thumb_func_start sub_8087068
|
|
sub_8087068: @ 8087068
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r1, r0, 0
|
|
cmp r0, 0x13
|
|
beq _0808708E
|
|
cmp r0, 0x13
|
|
bgt _0808707E
|
|
cmp r0, 0x12
|
|
beq _08087092
|
|
b _08087096
|
|
_0808707E:
|
|
cmp r1, 0x14
|
|
beq _0808708A
|
|
cmp r1, 0x15
|
|
bne _08087096
|
|
movs r0, 0x4
|
|
b _08087098
|
|
_0808708A:
|
|
movs r0, 0x3
|
|
b _08087098
|
|
_0808708E:
|
|
movs r0, 0x1
|
|
b _08087098
|
|
_08087092:
|
|
movs r0, 0x2
|
|
b _08087098
|
|
_08087096:
|
|
movs r0, 0
|
|
_08087098:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8087068
|
|
|
|
thumb_func_start sub_808709C
|
|
sub_808709C: @ 808709C
|
|
push {lr}
|
|
movs r2, 0x11
|
|
adds r1, r0, 0x6
|
|
_080870A2:
|
|
strh r2, [r1]
|
|
subs r1, 0x2
|
|
cmp r1, r0
|
|
bge _080870A2
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_808709C
|
|
|
|
thumb_func_start sub_80870B0
|
|
sub_80870B0: @ 80870B0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl ScriptContext2_IsEnabled
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080870C4
|
|
movs r0, 0x11
|
|
b _080870E6
|
|
_080870C4:
|
|
bl sub_800B4DC
|
|
cmp r0, 0x4
|
|
bls _080870D0
|
|
movs r0, 0x1B
|
|
b _080870E6
|
|
_080870D0:
|
|
bl sub_8087690
|
|
cmp r0, 0x4
|
|
bls _080870DC
|
|
movs r0, 0x1C
|
|
b _080870E6
|
|
_080870DC:
|
|
adds r0, r4, 0
|
|
bl sub_808700C
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
_080870E6:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80870B0
|
|
|
|
thumb_func_start sub_80870EC
|
|
sub_80870EC: @ 80870EC
|
|
push {lr}
|
|
bl sub_8086C64
|
|
movs r0, 0x11
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80870EC
|
|
|
|
thumb_func_start sub_80870F8
|
|
sub_80870F8: @ 80870F8
|
|
push {r4,lr}
|
|
bl ScriptContext2_IsEnabled
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r4, 0x11
|
|
cmp r0, 0x1
|
|
beq _08087110
|
|
movs r4, 0x1A
|
|
ldr r0, =sub_80870EC
|
|
bl c1_link_related_func_set
|
|
_08087110:
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80870F8
|
|
|
|
thumb_func_start sub_808711C
|
|
sub_808711C: @ 808711C
|
|
push {r4,lr}
|
|
bl sub_800B4DC
|
|
movs r4, 0x11
|
|
cmp r0, 0x2
|
|
bhi _08087134
|
|
movs r4, 0x1A
|
|
bl ScriptContext2_Disable
|
|
ldr r0, =sub_80870EC
|
|
bl c1_link_related_func_set
|
|
_08087134:
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_808711C
|
|
|
|
thumb_func_start sub_8087140
|
|
sub_8087140: @ 8087140
|
|
push {r4,lr}
|
|
bl sub_8087690
|
|
movs r4, 0x11
|
|
cmp r0, 0x2
|
|
bhi _08087158
|
|
movs r4, 0x1A
|
|
bl ScriptContext2_Disable
|
|
ldr r0, =sub_80870EC
|
|
bl c1_link_related_func_set
|
|
_08087158:
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8087140
|
|
|
|
thumb_func_start sub_8087164
|
|
sub_8087164: @ 8087164
|
|
push {lr}
|
|
bl sub_8086C64
|
|
movs r0, 0x11
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8087164
|
|
|
|
thumb_func_start sub_8087170
|
|
sub_8087170: @ 8087170
|
|
push {lr}
|
|
ldr r1, =gUnknown_03000E10
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x82
|
|
bne _080871A0
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080871A4
|
|
ldr r0, =sub_8087164
|
|
bl c1_link_related_func_set
|
|
movs r0, 0x1D
|
|
b _080871A6
|
|
.pool
|
|
_080871A0:
|
|
bl sub_8086C64
|
|
_080871A4:
|
|
movs r0, 0x11
|
|
_080871A6:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8087170
|
|
|
|
thumb_func_start sub_80871AC
|
|
sub_80871AC: @ 80871AC
|
|
push {lr}
|
|
ldr r0, =sub_8087170
|
|
bl c1_link_related_func_set
|
|
movs r0, 0x16
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80871AC
|
|
|
|
thumb_func_start sub_80871C0
|
|
sub_80871C0: @ 80871C0
|
|
movs r0, 0x11
|
|
bx lr
|
|
thumb_func_end sub_80871C0
|
|
|
|
thumb_func_start sub_80871C4
|
|
sub_80871C4: @ 80871C4
|
|
push {lr}
|
|
ldr r1, =gUnknown_03000E10
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x83
|
|
beq _080871D4
|
|
bl sub_8086C64
|
|
_080871D4:
|
|
movs r0, 0x83
|
|
bl sub_8086CA8
|
|
cmp r0, 0x1
|
|
bne _080871EA
|
|
ldr r0, =gUnknown_08277513
|
|
bl ScriptContext1_SetupScript
|
|
ldr r0, =sub_80871C0
|
|
bl c1_link_related_func_set
|
|
_080871EA:
|
|
movs r0, 0x11
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80871C4
|
|
|
|
thumb_func_start sub_80871FC
|
|
sub_80871FC: @ 80871FC
|
|
push {lr}
|
|
ldr r0, =sub_80871C4
|
|
bl c1_link_related_func_set
|
|
movs r0, 0x17
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80871FC
|
|
|
|
thumb_func_start sub_8087210
|
|
sub_8087210: @ 8087210
|
|
movs r0, 0x11
|
|
bx lr
|
|
thumb_func_end sub_8087210
|
|
|
|
thumb_func_start sub_8087214
|
|
sub_8087214: @ 8087214
|
|
push {lr}
|
|
movs r0, 0x83
|
|
bl sub_8086CE0
|
|
cmp r0, 0x1
|
|
beq _08087250
|
|
ldr r0, =gUnknown_03000E14
|
|
ldr r2, [r0]
|
|
ldr r1, =sub_8087170
|
|
adds r3, r0, 0
|
|
cmp r2, r1
|
|
bne _0808723A
|
|
ldr r1, =gUnknown_03000E10
|
|
ldr r0, =gUnknown_03005DB4
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x82
|
|
bne _08087272
|
|
_0808723A:
|
|
ldr r1, [r3]
|
|
ldr r0, =sub_8087164
|
|
cmp r1, r0
|
|
bne _08087268
|
|
ldr r1, =gUnknown_03000E10
|
|
ldr r0, =gUnknown_03005DB4
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x81
|
|
bne _08087268
|
|
_08087250:
|
|
movs r0, 0x2
|
|
b _08087278
|
|
.pool
|
|
_08087268:
|
|
movs r0, 0x82
|
|
bl sub_8086CA8
|
|
cmp r0, 0
|
|
bne _08087276
|
|
_08087272:
|
|
movs r0, 0
|
|
b _08087278
|
|
_08087276:
|
|
movs r0, 0x1
|
|
_08087278:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8087214
|
|
|
|
thumb_func_start sub_808727C
|
|
sub_808727C: @ 808727C
|
|
push {lr}
|
|
movs r0, 0x83
|
|
bl sub_8086CE0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_808727C
|
|
|
|
thumb_func_start sub_8087288
|
|
sub_8087288: @ 8087288
|
|
push {lr}
|
|
ldr r0, =sub_80871AC
|
|
bl c1_link_related_func_set
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8087288
|
|
|
|
thumb_func_start sub_808729C
|
|
sub_808729C: @ 808729C
|
|
push {lr}
|
|
ldr r0, =sub_80870F8
|
|
bl c1_link_related_func_set
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_808729C
|
|
|
|
thumb_func_start sub_80872B0
|
|
sub_80872B0: @ 80872B0
|
|
push {lr}
|
|
ldr r0, =sub_80871FC
|
|
bl c1_link_related_func_set
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80872B0
|
|
|
|
thumb_func_start sub_80872C4
|
|
sub_80872C4: @ 80872C4
|
|
push {lr}
|
|
ldr r0, =sub_8087210
|
|
bl c1_link_related_func_set
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80872C4
|
|
|
|
thumb_func_start sub_80872D8
|
|
sub_80872D8: @ 80872D8
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r6, r2, 0
|
|
strb r4, [r6]
|
|
movs r0, 0
|
|
cmp r4, r1
|
|
bne _080872EA
|
|
movs r0, 0x1
|
|
_080872EA:
|
|
strb r0, [r6, 0x1]
|
|
ldr r1, =gLinkPlayerMapObjects
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x3]
|
|
strb r0, [r6, 0x2]
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
bl sub_80878A0
|
|
strb r0, [r6, 0x3]
|
|
mov r5, sp
|
|
adds r5, 0x2
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
adds r2, r5, 0
|
|
bl sub_8087878
|
|
mov r0, sp
|
|
ldrh r0, [r0]
|
|
strh r0, [r6, 0x4]
|
|
ldrh r0, [r5]
|
|
strh r0, [r6, 0x6]
|
|
adds r0, r4, 0
|
|
bl sub_80878C0
|
|
strb r0, [r6, 0x8]
|
|
mov r0, sp
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
movs r2, 0
|
|
ldrsh r1, [r5, r2]
|
|
bl MapGridGetMetatileBehaviorAt
|
|
strh r0, [r6, 0xC]
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80872D8
|
|
|
|
thumb_func_start sub_8087340
|
|
sub_8087340: @ 8087340
|
|
push {lr}
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r0, 0x2
|
|
beq _0808734C
|
|
cmp r0, 0
|
|
bne _08087350
|
|
_0808734C:
|
|
movs r0, 0x1
|
|
b _08087352
|
|
_08087350:
|
|
movs r0, 0
|
|
_08087352:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8087340
|
|
|
|
thumb_func_start sub_8087358
|
|
sub_8087358: @ 8087358
|
|
push {lr}
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r0, 0x2
|
|
beq _08087364
|
|
cmp r0, 0
|
|
bne _08087368
|
|
_08087364:
|
|
movs r0, 0x1
|
|
b _0808736A
|
|
_08087368:
|
|
movs r0, 0
|
|
_0808736A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8087358
|
|
|
|
thumb_func_start sub_8087370
|
|
sub_8087370: @ 8087370
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0x2
|
|
bne _08087382
|
|
adds r0, r1, 0x4
|
|
bl sub_809D0F4
|
|
b _08087384
|
|
_08087382:
|
|
movs r0, 0
|
|
_08087384:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8087370
|
|
|
|
thumb_func_start sub_8087388
|
|
sub_8087388: @ 8087388
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0x2
|
|
beq _08087396
|
|
cmp r0, 0
|
|
bne _080873AC
|
|
_08087396:
|
|
ldrb r0, [r4, 0xC]
|
|
bl MetatileBehavior_IsSouthArrowWarp
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080873AC
|
|
ldrb r0, [r4, 0x3]
|
|
cmp r0, 0x1
|
|
bne _080873AC
|
|
movs r0, 0x1
|
|
b _080873AE
|
|
_080873AC:
|
|
movs r0, 0
|
|
_080873AE:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8087388
|
|
|
|
thumb_func_start sub_80873B4
|
|
sub_80873B4: @ 80873B4
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0
|
|
beq _080873C8
|
|
cmp r0, 0x2
|
|
beq _080873C8
|
|
movs r0, 0
|
|
b _08087476
|
|
_080873C8:
|
|
ldr r0, [r4, 0x4]
|
|
ldr r1, [r4, 0x8]
|
|
str r0, [sp]
|
|
str r1, [sp, 0x4]
|
|
ldr r3, =gUnknown_08339D64
|
|
ldrb r0, [r4, 0x3]
|
|
lsls r0, 3
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
mov r1, sp
|
|
ldrh r1, [r1]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, =0xffff0000
|
|
ldr r2, [sp]
|
|
ands r2, r1
|
|
orrs r2, r0
|
|
str r2, [sp]
|
|
asrs r1, r2, 16
|
|
ldrb r0, [r4, 0x3]
|
|
lsls r0, 3
|
|
adds r3, 0x4
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
ldr r1, =0x0000ffff
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
str r1, [sp]
|
|
ldr r2, =0xffffff00
|
|
ldr r0, [sp, 0x4]
|
|
ands r0, r2
|
|
str r0, [sp, 0x4]
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
asrs r1, 16
|
|
bl sub_808790C
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
adds r2, r1, 0
|
|
cmp r1, 0x4
|
|
beq _0808746C
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0
|
|
beq _08087434
|
|
ldr r0, =gUnknown_03000E10
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x80
|
|
beq _08087450
|
|
_08087434:
|
|
ldr r0, =gUnknown_0827749C
|
|
b _08087476
|
|
.pool
|
|
_08087450:
|
|
adds r0, r2, 0
|
|
bl sub_80B39D4
|
|
cmp r0, 0
|
|
bne _08087464
|
|
ldr r0, =gUnknown_0827747E
|
|
b _08087476
|
|
.pool
|
|
_08087464:
|
|
ldr r0, =gUnknown_0827748D
|
|
b _08087476
|
|
.pool
|
|
_0808746C:
|
|
ldrb r1, [r4, 0xC]
|
|
ldrb r2, [r4, 0x3]
|
|
mov r0, sp
|
|
bl sub_809C2C8
|
|
_08087476:
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80873B4
|
|
|
|
thumb_func_start sub_8087480
|
|
sub_8087480: @ 8087480
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldr r0, =gUnknown_08277388
|
|
cmp r1, r0
|
|
beq _080874C6
|
|
ldr r0, =gUnknown_082773A3
|
|
cmp r1, r0
|
|
beq _08087508
|
|
ldr r0, =gUnknown_082773BE
|
|
cmp r1, r0
|
|
beq _080874C6
|
|
ldr r0, =gUnknown_082773D9
|
|
cmp r1, r0
|
|
beq _08087508
|
|
ldr r0, =gUnknown_0827741D
|
|
cmp r1, r0
|
|
beq _080874C6
|
|
ldr r0, =gUnknown_08277432
|
|
cmp r1, r0
|
|
beq _08087508
|
|
ldr r0, =gUnknown_08277447
|
|
cmp r1, r0
|
|
beq _080874C6
|
|
ldr r0, =gUnknown_0827745C
|
|
cmp r1, r0
|
|
beq _08087508
|
|
ldr r0, =gUnknown_08277374
|
|
cmp r1, r0
|
|
beq _080874C6
|
|
ldr r0, =gUnknown_0827737E
|
|
cmp r1, r0
|
|
beq _08087508
|
|
ldr r0, =gUnknown_082773F5
|
|
cmp r1, r0
|
|
bne _080874F8
|
|
_080874C6:
|
|
movs r0, 0xA
|
|
b _0808750A
|
|
.pool
|
|
_080874F8:
|
|
ldr r0, =gUnknown_082773FF
|
|
cmp r1, r0
|
|
beq _08087508
|
|
movs r0, 0
|
|
b _0808750A
|
|
.pool
|
|
_08087508:
|
|
movs r0, 0x9
|
|
_0808750A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8087480
|
|
|
|
thumb_func_start sub_8087510
|
|
sub_8087510: @ 8087510
|
|
push {lr}
|
|
bl ScriptContext2_Enable
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8087510
|
|
|
|
thumb_func_start sub_808751C
|
|
sub_808751C: @ 808751C
|
|
push {lr}
|
|
movs r0, 0x6
|
|
bl PlaySE
|
|
bl sub_809FA9C
|
|
bl ScriptContext2_Enable
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_808751C
|
|
|
|
thumb_func_start sub_8087530
|
|
sub_8087530: @ 8087530
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
adds r0, r4, 0
|
|
bl ScriptContext1_SetupScript
|
|
bl ScriptContext2_Enable
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8087530
|
|
|
|
thumb_func_start sub_808754C
|
|
sub_808754C: @ 808754C
|
|
push {lr}
|
|
movs r0, 0x6
|
|
bl PlaySE
|
|
ldr r0, =gUnknown_082774EF
|
|
bl ScriptContext1_SetupScript
|
|
bl ScriptContext2_Enable
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_808754C
|
|
|
|
thumb_func_start sub_8087568
|
|
sub_8087568: @ 8087568
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
adds r0, r4, 0
|
|
bl ScriptContext1_SetupScript
|
|
bl ScriptContext2_Enable
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8087568
|
|
|
|
thumb_func_start sub_8087584
|
|
sub_8087584: @ 8087584
|
|
push {lr}
|
|
ldr r0, =gUnknown_08277509
|
|
bl ScriptContext1_SetupScript
|
|
bl ScriptContext2_Enable
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8087584
|
|
|
|
thumb_func_start sub_8087598
|
|
sub_8087598: @ 8087598
|
|
push {lr}
|
|
bl is_c1_link_related_active
|
|
cmp r0, 0
|
|
bne _080875A6
|
|
movs r0, 0
|
|
b _080875C0
|
|
_080875A6:
|
|
bl sub_800B4DC
|
|
cmp r0, 0x2
|
|
bls _080875B8
|
|
ldr r1, =gUnknown_03000E18
|
|
movs r0, 0x1
|
|
b _080875BC
|
|
.pool
|
|
_080875B8:
|
|
ldr r1, =gUnknown_03000E18
|
|
movs r0, 0
|
|
_080875BC:
|
|
strb r0, [r1]
|
|
ldrb r0, [r1]
|
|
_080875C0:
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8087598
|
|
|
|
thumb_func_start sub_80875C8
|
|
sub_80875C8: @ 80875C8
|
|
push {lr}
|
|
bl sub_800B4DC
|
|
cmp r0, 0x1
|
|
bls _0808762C
|
|
bl is_c1_link_related_active
|
|
cmp r0, 0x1
|
|
bne _0808762C
|
|
bl sub_8009F3C
|
|
cmp r0, 0x1
|
|
bne _0808762C
|
|
ldr r0, =gUnknown_03000E14
|
|
ldr r1, [r0]
|
|
ldr r0, =sub_808711C
|
|
cmp r1, r0
|
|
beq _08087614
|
|
ldr r0, =sub_80870F8
|
|
cmp r1, r0
|
|
bne _0808762C
|
|
ldr r0, =gUnknown_03000E18
|
|
ldrb r2, [r0]
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
cmp r2, 0x1
|
|
beq _08087614
|
|
ldr r2, =gPaletteFade
|
|
ldrb r1, [r2, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0808762C
|
|
ldrb r1, [r2, 0xA]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0808762C
|
|
_08087614:
|
|
movs r0, 0x1
|
|
b _0808762E
|
|
.pool
|
|
_0808762C:
|
|
movs r0, 0
|
|
_0808762E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80875C8
|
|
|
|
thumb_func_start sub_8087634
|
|
sub_8087634: @ 8087634
|
|
push {lr}
|
|
bl sub_8087690
|
|
cmp r0, 0x1
|
|
bls _08087658
|
|
bl is_c1_link_related_active
|
|
cmp r0, 0x1
|
|
bne _08087658
|
|
bl sub_8009F3C
|
|
cmp r0, 0x1
|
|
bne _08087658
|
|
ldr r0, =gUnknown_03000E14
|
|
ldr r1, [r0]
|
|
ldr r0, =sub_8087140
|
|
cmp r1, r0
|
|
beq _08087664
|
|
_08087658:
|
|
movs r0, 0
|
|
b _08087666
|
|
.pool
|
|
_08087664:
|
|
movs r0, 0x1
|
|
_08087666:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8087634
|
|
|
|
thumb_func_start sub_808766C
|
|
sub_808766C: @ 808766C
|
|
push {lr}
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08087688
|
|
bl sub_8009F3C
|
|
cmp r0, 0
|
|
beq _08087688
|
|
movs r0, 0x1
|
|
b _0808768A
|
|
.pool
|
|
_08087688:
|
|
movs r0, 0
|
|
_0808768A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_808766C
|
|
|
|
thumb_func_start sub_8087690
|
|
sub_8087690: @ 8087690
|
|
push {lr}
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080876B0
|
|
ldr r0, =gUnknown_03003170
|
|
ldr r1, =0x00000339
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
b _080876B8
|
|
.pool
|
|
_080876B0:
|
|
ldr r0, =gUnknown_03005000
|
|
ldr r1, =0x00000c1a
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
_080876B8:
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8087690
|
|
|
|
thumb_func_start sub_80876C4
|
|
sub_80876C4: @ 80876C4
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
bx lr
|
|
thumb_func_end sub_80876C4
|
|
|
|
thumb_func_start strange_npc_table_clear
|
|
strange_npc_table_clear: @ 80876CC
|
|
push {lr}
|
|
ldr r0, =gLinkPlayerMapObjects
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
bl memset
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end strange_npc_table_clear
|
|
|
|
thumb_func_start sub_80876E0
|
|
sub_80876E0: @ 80876E0
|
|
push {lr}
|
|
movs r1, 0
|
|
movs r2, 0x24
|
|
bl memset
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80876E0
|
|
|
|
thumb_func_start sub_80876F0
|
|
sub_80876F0: @ 80876F0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
mov r9, r1
|
|
mov r10, r2
|
|
mov r8, r3
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
mov r0, r9
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
mov r1, r10
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r10, r1
|
|
mov r2, r8
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r8, r2
|
|
bl sub_808D4F4
|
|
adds r6, r0, 0
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
lsls r4, r7, 2
|
|
ldr r0, =gLinkPlayerMapObjects
|
|
adds r4, r0
|
|
lsls r5, r6, 3
|
|
adds r5, r6
|
|
lsls r5, 2
|
|
ldr r0, =gMapObjects
|
|
adds r5, r0
|
|
adds r0, r4, 0
|
|
bl sub_80876C4
|
|
adds r0, r5, 0
|
|
bl sub_80876E0
|
|
movs r2, 0
|
|
movs r1, 0x1
|
|
movs r0, 0x1
|
|
strb r0, [r4]
|
|
strb r7, [r4, 0x1]
|
|
strb r6, [r4, 0x2]
|
|
strb r2, [r4, 0x3]
|
|
ldrb r0, [r5]
|
|
orrs r0, r1
|
|
mov r2, r8
|
|
ands r2, r1
|
|
lsls r2, 1
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r5]
|
|
movs r0, 0x2
|
|
strb r0, [r5, 0x19]
|
|
movs r0, 0x40
|
|
strb r0, [r5, 0x4]
|
|
mov r0, r9
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r9, r0
|
|
mov r1, r10
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
mov r10, r1
|
|
adds r0, r5, 0
|
|
mov r1, r9
|
|
mov r2, r10
|
|
bl sub_808779C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80876F0
|
|
|
|
thumb_func_start sub_808779C
|
|
sub_808779C: @ 808779C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r0, r1, 0
|
|
adds r1, r2, 0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
strh r0, [r4, 0x10]
|
|
strh r1, [r4, 0x12]
|
|
strh r0, [r4, 0x14]
|
|
strh r1, [r4, 0x16]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r2, r4, 0
|
|
adds r2, 0xC
|
|
adds r3, r4, 0
|
|
adds r3, 0xE
|
|
bl sub_8093038
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0xC]
|
|
adds r0, r4, 0
|
|
bl FieldObjectUpdateZCoord
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_808779C
|
|
|
|
thumb_func_start sub_80877DC
|
|
sub_80877DC: @ 80877DC
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsls r1, 24
|
|
lsrs r2, r1, 24
|
|
ldr r1, =gLinkPlayerMapObjects
|
|
lsrs r0, 22
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _080877FE
|
|
ldrb r0, [r1, 0x2]
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, =gMapObjects
|
|
adds r1, r0
|
|
strb r2, [r1, 0x19]
|
|
_080877FE:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80877DC
|
|
|
|
thumb_func_start sub_808780C
|
|
sub_808780C: @ 808780C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
ldr r1, =gLinkPlayerMapObjects
|
|
adds r5, r0, r1
|
|
ldrb r1, [r5, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gMapObjects
|
|
adds r4, r0, r1
|
|
ldrb r0, [r4, 0x4]
|
|
cmp r0, 0x40
|
|
beq _08087838
|
|
adds r1, r0, 0
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
bl DestroySprite
|
|
_08087838:
|
|
movs r0, 0
|
|
strb r0, [r5]
|
|
ldrb r1, [r4]
|
|
subs r0, 0x2
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_808780C
|
|
|
|
thumb_func_start sub_8087858
|
|
sub_8087858: @ 8087858
|
|
lsls r0, 24
|
|
ldr r1, =gLinkPlayerMapObjects
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gMapObjects
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x4]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8087858
|
|
|
|
thumb_func_start sub_8087878
|
|
sub_8087878: @ 8087878
|
|
lsls r0, 24
|
|
ldr r3, =gLinkPlayerMapObjects
|
|
lsrs r0, 22
|
|
adds r0, r3
|
|
ldrb r3, [r0, 0x2]
|
|
lsls r0, r3, 3
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
ldr r3, =gMapObjects
|
|
adds r0, r3
|
|
ldrh r3, [r0, 0x10]
|
|
strh r3, [r1]
|
|
ldrh r0, [r0, 0x12]
|
|
strh r0, [r2]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8087878
|
|
|
|
thumb_func_start sub_80878A0
|
|
sub_80878A0: @ 80878A0
|
|
lsls r0, 24
|
|
ldr r1, =gLinkPlayerMapObjects
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gMapObjects
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x19]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_80878A0
|
|
|
|
thumb_func_start sub_80878C0
|
|
sub_80878C0: @ 80878C0
|
|
lsls r0, 24
|
|
ldr r1, =gLinkPlayerMapObjects
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gMapObjects
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0xB]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_80878C0
|
|
|
|
thumb_func_start sub_80878E4
|
|
sub_80878E4: @ 80878E4
|
|
lsls r0, 24
|
|
ldr r1, =gLinkPlayerMapObjects
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gMapObjects
|
|
adds r0, r1
|
|
adds r0, 0x21
|
|
movs r1, 0
|
|
ldrsb r1, [r0, r1]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_80878E4
|
|
|
|
thumb_func_start sub_808790C
|
|
sub_808790C: @ 808790C
|
|
push {r4-r6,lr}
|
|
movs r2, 0
|
|
ldr r5, =gLinkPlayerMapObjects
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
lsls r1, 16
|
|
asrs r3, r1, 16
|
|
_0808791A:
|
|
lsls r0, r2, 2
|
|
adds r1, r0, r5
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08087958
|
|
ldrb r0, [r1, 0x3]
|
|
cmp r0, 0
|
|
beq _0808792E
|
|
cmp r0, 0x2
|
|
bne _08087958
|
|
_0808792E:
|
|
ldrb r1, [r1, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gMapObjects
|
|
adds r1, r0, r1
|
|
movs r6, 0x10
|
|
ldrsh r0, [r1, r6]
|
|
cmp r0, r4
|
|
bne _08087958
|
|
movs r6, 0x12
|
|
ldrsh r0, [r1, r6]
|
|
cmp r0, r3
|
|
bne _08087958
|
|
adds r0, r2, 0
|
|
b _08087964
|
|
.pool
|
|
_08087958:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x3
|
|
bls _0808791A
|
|
movs r0, 0x4
|
|
_08087964:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_808790C
|
|
|
|
thumb_func_start sub_808796C
|
|
sub_808796C: @ 808796C
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsls r1, 24
|
|
lsrs r3, r1, 24
|
|
adds r2, r3, 0
|
|
lsrs r0, 22
|
|
ldr r1, =gLinkPlayerMapObjects
|
|
adds r5, r0, r1
|
|
ldrb r1, [r5, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gMapObjects
|
|
adds r6, r0, r1
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
beq _080879C8
|
|
cmp r3, 0xA
|
|
bls _080879A4
|
|
ldrb r0, [r6]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r6]
|
|
b _080879C8
|
|
.pool
|
|
_080879A4:
|
|
ldr r4, =gUnknown_08339E00
|
|
ldr r1, =gUnknown_08339DC8
|
|
ldrb r0, [r5, 0x3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r3, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl _call_via_r3
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r0, r4
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl _call_via_r2
|
|
_080879C8:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_808796C
|
|
|
|
thumb_func_start sub_80879D8
|
|
sub_80879D8: @ 80879D8
|
|
push {r4,lr}
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r4, =gUnknown_08339DD4
|
|
lsls r3, r2, 2
|
|
adds r3, r4
|
|
ldr r3, [r3]
|
|
bl _call_via_r3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80879D8
|
|
|
|
thumb_func_start sub_80879F8
|
|
sub_80879F8: @ 80879F8
|
|
movs r0, 0x1
|
|
bx lr
|
|
thumb_func_end sub_80879F8
|
|
|
|
thumb_func_start sub_80879FC
|
|
sub_80879FC: @ 80879FC
|
|
push {r4,lr}
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r4, =gUnknown_08339DD4
|
|
lsls r3, r2, 2
|
|
adds r3, r4
|
|
ldr r3, [r3]
|
|
bl _call_via_r3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80879FC
|
|
|
|
thumb_func_start sub_8087A1C
|
|
sub_8087A1C: @ 8087A1C
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_8087A1C
|
|
|
|
thumb_func_start sub_8087A20
|
|
sub_8087A20: @ 8087A20
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r0, r2, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r5, 0x19]
|
|
bl npc_something3
|
|
strb r0, [r5, 0x19]
|
|
ldrb r1, [r5, 0x19]
|
|
mov r6, sp
|
|
adds r6, 0x2
|
|
adds r0, r5, 0
|
|
mov r2, sp
|
|
adds r3, r6, 0
|
|
bl FieldObjectMoveDestCoords
|
|
ldrb r0, [r4, 0x2]
|
|
ldrb r1, [r5, 0x19]
|
|
mov r2, sp
|
|
movs r3, 0
|
|
ldrsh r2, [r2, r3]
|
|
movs r4, 0
|
|
ldrsh r3, [r6, r4]
|
|
bl npc_080587EC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08087A7E
|
|
adds r1, r5, 0
|
|
adds r1, 0x21
|
|
movs r0, 0x10
|
|
strb r0, [r1]
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r3, 0
|
|
ldrsh r2, [r6, r3]
|
|
adds r0, r5, 0
|
|
bl npc_coords_shift
|
|
adds r0, r5, 0
|
|
bl FieldObjectUpdateZCoord
|
|
movs r0, 0x1
|
|
b _08087A80
|
|
_08087A7E:
|
|
movs r0, 0
|
|
_08087A80:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8087A20
|
|
|
|
thumb_func_start sub_8087A88
|
|
sub_8087A88: @ 8087A88
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
lsls r0, r2, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r4, 0x19]
|
|
bl npc_something3
|
|
strb r0, [r4, 0x19]
|
|
movs r0, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8087A88
|
|
|
|
thumb_func_start sub_8087AA0
|
|
sub_8087AA0: @ 8087AA0
|
|
movs r1, 0
|
|
strb r1, [r0, 0x3]
|
|
bx lr
|
|
thumb_func_end sub_8087AA0
|
|
|
|
thumb_func_start sub_8087AA8
|
|
sub_8087AA8: @ 8087AA8
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r5, r4, 0
|
|
adds r5, 0x21
|
|
ldrb r0, [r5]
|
|
subs r0, 0x1
|
|
strb r0, [r5]
|
|
movs r0, 0x1
|
|
strb r0, [r6, 0x3]
|
|
ldrb r0, [r4, 0x19]
|
|
adds r1, 0xC
|
|
adds r2, r4, 0
|
|
adds r2, 0xE
|
|
bl MoveCoords
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
bne _08087AD8
|
|
adds r0, r4, 0
|
|
bl npc_coords_shift_still
|
|
movs r0, 0x2
|
|
strb r0, [r6, 0x3]
|
|
_08087AD8:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8087AA8
|
|
|
|
thumb_func_start npc_something3
|
|
npc_something3: @ 8087AE0
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r2, r1, 24
|
|
subs r0, 0x1
|
|
cmp r0, 0x9
|
|
bhi _08087B38
|
|
lsls r0, 2
|
|
ldr r1, =_08087B00
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08087B00:
|
|
.4byte _08087B28
|
|
.4byte _08087B2C
|
|
.4byte _08087B30
|
|
.4byte _08087B34
|
|
.4byte _08087B38
|
|
.4byte _08087B38
|
|
.4byte _08087B28
|
|
.4byte _08087B2C
|
|
.4byte _08087B30
|
|
.4byte _08087B34
|
|
_08087B28:
|
|
movs r0, 0x2
|
|
b _08087B3A
|
|
_08087B2C:
|
|
movs r0, 0x1
|
|
b _08087B3A
|
|
_08087B30:
|
|
movs r0, 0x3
|
|
b _08087B3A
|
|
_08087B34:
|
|
movs r0, 0x4
|
|
b _08087B3A
|
|
_08087B38:
|
|
adds r0, r2, 0
|
|
_08087B3A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end npc_something3
|
|
|
|
thumb_func_start npc_080587EC
|
|
npc_080587EC: @ 8087B40
|
|
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
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
mov r12, r2
|
|
lsls r3, 16
|
|
movs r4, 0
|
|
ldr r0, =gMapObjects
|
|
mov r9, r0
|
|
lsrs r2, r3, 16
|
|
mov r10, r2
|
|
asrs r6, r3, 16
|
|
_08087B64:
|
|
mov r7, r12
|
|
lsls r3, r7, 16
|
|
mov r0, r10
|
|
lsls r5, r0, 16
|
|
cmp r4, r8
|
|
beq _08087BA8
|
|
lsls r0, r4, 3
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
mov r2, r9
|
|
adds r1, r0, r2
|
|
movs r7, 0x10
|
|
ldrsh r0, [r1, r7]
|
|
asrs r2, r3, 16
|
|
cmp r0, r2
|
|
bne _08087B8C
|
|
movs r7, 0x12
|
|
ldrsh r0, [r1, r7]
|
|
cmp r0, r6
|
|
beq _08087B9E
|
|
_08087B8C:
|
|
movs r7, 0x14
|
|
ldrsh r0, [r1, r7]
|
|
cmp r0, r2
|
|
bne _08087BA8
|
|
movs r0, 0x16
|
|
ldrsh r1, [r1, r0]
|
|
asrs r0, r5, 16
|
|
cmp r1, r0
|
|
bne _08087BA8
|
|
_08087B9E:
|
|
movs r0, 0x1
|
|
b _08087BBE
|
|
.pool
|
|
_08087BA8:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0xF
|
|
bls _08087B64
|
|
asrs r0, r3, 16
|
|
asrs r1, r5, 16
|
|
bl MapGridIsImpassableAt
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_08087BBE:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end npc_080587EC
|
|
|
|
thumb_func_start sub_8087BCC
|
|
sub_8087BCC: @ 8087BCC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r1, 24
|
|
lsrs r3, r1, 24
|
|
lsls r2, r5, 2
|
|
ldr r0, =gLinkPlayerMapObjects
|
|
adds r2, r0
|
|
ldrb r1, [r2, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gMapObjects
|
|
adds r4, r0, r1
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
beq _08087C7A
|
|
subs r0, r3, 0x1
|
|
cmp r0, 0x4
|
|
bhi _08087C56
|
|
lsls r0, 2
|
|
ldr r1, =_08087C0C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08087C0C:
|
|
.4byte _08087C2C
|
|
.4byte _08087C2C
|
|
.4byte _08087C38
|
|
.4byte _08087C20
|
|
.4byte _08087C20
|
|
_08087C20:
|
|
ldrb r0, [r4]
|
|
lsls r0, 30
|
|
lsrs r0, 31
|
|
bl sub_808BD6C
|
|
b _08087C44
|
|
_08087C2C:
|
|
ldrb r0, [r4]
|
|
lsls r0, 30
|
|
lsrs r0, 31
|
|
bl sub_808BD7C
|
|
b _08087C44
|
|
_08087C38:
|
|
ldrb r1, [r4]
|
|
lsls r1, 30
|
|
lsrs r1, 31
|
|
movs r0, 0
|
|
bl sub_808BD3C
|
|
_08087C44:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =sub_8087C8C
|
|
movs r2, 0
|
|
str r2, [sp]
|
|
movs r3, 0
|
|
bl AddPseudoFieldObject
|
|
strb r0, [r4, 0x4]
|
|
_08087C56:
|
|
ldrb r1, [r4, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
adds r3, r0, 0
|
|
adds r3, 0x3E
|
|
ldrb r1, [r3]
|
|
movs r2, 0x2
|
|
orrs r1, r2
|
|
strb r1, [r3]
|
|
strh r5, [r0, 0x2E]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
_08087C7A:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8087BCC
|
|
|
|
thumb_func_start sub_8087C8C
|
|
sub_8087C8C: @ 8087C8C
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r4, [r5, r0]
|
|
lsls r4, 2
|
|
ldr r0, =gLinkPlayerMapObjects
|
|
adds r4, r0
|
|
ldrb r1, [r4, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gMapObjects
|
|
adds r6, r0, r1
|
|
ldrh r0, [r6, 0xC]
|
|
strh r0, [r5, 0x20]
|
|
ldrh r0, [r6, 0xE]
|
|
strh r0, [r5, 0x22]
|
|
ldrb r0, [r6, 0xB]
|
|
lsrs r0, 4
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl SetObjectSubpriorityByZCoord
|
|
ldrb r0, [r6, 0xB]
|
|
lsrs r0, 4
|
|
bl ZCoordToPriority
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r5, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x5]
|
|
ldrb r0, [r4, 0x3]
|
|
cmp r0, 0
|
|
bne _08087CF8
|
|
ldrb r0, [r6, 0x19]
|
|
bl FieldObjectDirectionToImageAnimId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnim
|
|
b _08087D0A
|
|
.pool
|
|
_08087CF8:
|
|
ldrb r0, [r6, 0x19]
|
|
bl get_go_image_anim_num
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnimIfDifferent
|
|
_08087D0A:
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_80979D4
|
|
ldrb r0, [r6]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
bge _08087D3C
|
|
ldrh r0, [r5, 0x3C]
|
|
movs r1, 0x4
|
|
ands r1, r0
|
|
lsls r1, 16
|
|
adds r3, r5, 0
|
|
adds r3, 0x3E
|
|
lsrs r1, 18
|
|
lsls r1, 2
|
|
ldrb r2, [r3]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
ldrh r0, [r5, 0x3C]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x3C]
|
|
_08087D3C:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8087C8C
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|