mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-06 22:28:44 -05:00
8011 lines
141 KiB
ArmAsm
8011 lines
141 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_8054BC8
|
|
sub_8054BC8: @ 8054BC8
|
|
push {r4,lr}
|
|
ldr r0, _08054BFC @ =gUnknown_81A654B
|
|
bl ScriptContext2_RunNewScript
|
|
ldr r0, _08054C00 @ =gSaveBlock1Ptr
|
|
ldr r4, [r0]
|
|
movs r0, 0xA4
|
|
lsls r0, 2
|
|
adds r4, r0
|
|
bl sub_8054C04
|
|
adds r1, r0, 0
|
|
adds r0, r4, 0
|
|
bl RemoveMoney
|
|
bl sp000_heal_pokemon
|
|
bl sub_8054DD8
|
|
bl sub_80554BC
|
|
bl WarpIntoMap
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054BFC: .4byte gUnknown_81A654B
|
|
_08054C00: .4byte gSaveBlock1Ptr
|
|
thumb_func_end sub_8054BC8
|
|
|
|
thumb_func_start sub_8054C04
|
|
sub_8054C04: @ 8054C04
|
|
push {r4,lr}
|
|
bl sub_8054C70
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl GetPlayerPartyHighestLevel
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _08054C40 @ =gUnknown_826D294
|
|
adds r4, r1
|
|
ldrb r1, [r4]
|
|
lsls r1, 2
|
|
adds r4, r0, 0
|
|
muls r4, r1
|
|
ldr r0, _08054C44 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
movs r1, 0xA4
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
bl GetMoney
|
|
cmp r4, r0
|
|
bls _08054C38
|
|
adds r4, r0, 0
|
|
_08054C38:
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08054C40: .4byte gUnknown_826D294
|
|
_08054C44: .4byte gSaveBlock1Ptr
|
|
thumb_func_end sub_8054C04
|
|
|
|
thumb_func_start sub_8054C48
|
|
sub_8054C48: @ 8054C48
|
|
push {r4,r5,lr}
|
|
bl sub_8054C04
|
|
adds r4, r0, 0
|
|
ldr r5, _08054C6C @ =gStringVar1
|
|
bl CountDigits
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl ConvertIntToDecimalStringN
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054C6C: .4byte gStringVar1
|
|
thumb_func_end sub_8054C48
|
|
|
|
thumb_func_start sub_8054C70
|
|
sub_8054C70: @ 8054C70
|
|
push {r4-r6,lr}
|
|
movs r6, 0
|
|
movs r5, 0
|
|
ldr r4, _08054C9C @ =gUnknown_826D29E
|
|
_08054C78:
|
|
ldrh r0, [r4]
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08054C8A
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_08054C8A:
|
|
adds r4, 0x2
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
bls _08054C78
|
|
adds r0, r6, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08054C9C: .4byte gUnknown_826D29E
|
|
thumb_func_end sub_8054C70
|
|
|
|
thumb_func_start sub_8054CA0
|
|
sub_8054CA0: @ 8054CA0
|
|
push {lr}
|
|
bl ResetInitialPlayerAvatarState
|
|
movs r0, 0x83
|
|
lsls r0, 4
|
|
bl FlagClear
|
|
ldr r0, _08054CEC @ =0x0000405e
|
|
movs r1, 0
|
|
bl VarSet
|
|
ldr r0, _08054CF0 @ =0x00000802
|
|
bl FlagClear
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
bl FlagClear
|
|
ldr r0, _08054CF4 @ =0x0000406e
|
|
movs r1, 0
|
|
bl VarSet
|
|
ldr r0, _08054CF8 @ =0x00000805
|
|
bl FlagClear
|
|
ldr r0, _08054CFC @ =0x00000806
|
|
bl FlagClear
|
|
ldr r0, _08054D00 @ =0x00000808
|
|
bl FlagClear
|
|
ldr r0, _08054D04 @ =0x0000404d
|
|
movs r1, 0
|
|
bl VarSet
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054CEC: .4byte 0x0000405e
|
|
_08054CF0: .4byte 0x00000802
|
|
_08054CF4: .4byte 0x0000406e
|
|
_08054CF8: .4byte 0x00000805
|
|
_08054CFC: .4byte 0x00000806
|
|
_08054D00: .4byte 0x00000808
|
|
_08054D04: .4byte 0x0000404d
|
|
thumb_func_end sub_8054CA0
|
|
|
|
thumb_func_start Overworld_ResetStateAfterTeleport
|
|
Overworld_ResetStateAfterTeleport: @ 8054D08
|
|
push {lr}
|
|
bl ResetInitialPlayerAvatarState
|
|
movs r0, 0x83
|
|
lsls r0, 4
|
|
bl FlagClear
|
|
ldr r0, _08054D54 @ =0x0000405e
|
|
movs r1, 0
|
|
bl VarSet
|
|
ldr r0, _08054D58 @ =0x00000802
|
|
bl FlagClear
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
bl FlagClear
|
|
ldr r0, _08054D5C @ =0x0000406e
|
|
movs r1, 0
|
|
bl VarSet
|
|
ldr r0, _08054D60 @ =0x00000805
|
|
bl FlagClear
|
|
ldr r0, _08054D64 @ =0x00000806
|
|
bl FlagClear
|
|
ldr r0, _08054D68 @ =0x00000808
|
|
bl FlagClear
|
|
ldr r0, _08054D6C @ =0x0000404d
|
|
movs r1, 0
|
|
bl VarSet
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054D54: .4byte 0x0000405e
|
|
_08054D58: .4byte 0x00000802
|
|
_08054D5C: .4byte 0x0000406e
|
|
_08054D60: .4byte 0x00000805
|
|
_08054D64: .4byte 0x00000806
|
|
_08054D68: .4byte 0x00000808
|
|
_08054D6C: .4byte 0x0000404d
|
|
thumb_func_end Overworld_ResetStateAfterTeleport
|
|
|
|
thumb_func_start Overworld_ResetStateAfterDigEscRope
|
|
Overworld_ResetStateAfterDigEscRope: @ 8054D70
|
|
push {lr}
|
|
bl ResetInitialPlayerAvatarState
|
|
movs r0, 0x83
|
|
lsls r0, 4
|
|
bl FlagClear
|
|
ldr r0, _08054DBC @ =0x0000405e
|
|
movs r1, 0
|
|
bl VarSet
|
|
ldr r0, _08054DC0 @ =0x00000802
|
|
bl FlagClear
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
bl FlagClear
|
|
ldr r0, _08054DC4 @ =0x0000406e
|
|
movs r1, 0
|
|
bl VarSet
|
|
ldr r0, _08054DC8 @ =0x00000805
|
|
bl FlagClear
|
|
ldr r0, _08054DCC @ =0x00000806
|
|
bl FlagClear
|
|
ldr r0, _08054DD0 @ =0x00000808
|
|
bl FlagClear
|
|
ldr r0, _08054DD4 @ =0x0000404d
|
|
movs r1, 0
|
|
bl VarSet
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054DBC: .4byte 0x0000405e
|
|
_08054DC0: .4byte 0x00000802
|
|
_08054DC4: .4byte 0x0000406e
|
|
_08054DC8: .4byte 0x00000805
|
|
_08054DCC: .4byte 0x00000806
|
|
_08054DD0: .4byte 0x00000808
|
|
_08054DD4: .4byte 0x0000404d
|
|
thumb_func_end Overworld_ResetStateAfterDigEscRope
|
|
|
|
thumb_func_start sub_8054DD8
|
|
sub_8054DD8: @ 8054DD8
|
|
push {lr}
|
|
bl ResetInitialPlayerAvatarState
|
|
movs r0, 0x83
|
|
lsls r0, 4
|
|
bl FlagClear
|
|
ldr r0, _08054E24 @ =0x0000405e
|
|
movs r1, 0
|
|
bl VarSet
|
|
ldr r0, _08054E28 @ =0x00000802
|
|
bl FlagClear
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
bl FlagClear
|
|
ldr r0, _08054E2C @ =0x0000406e
|
|
movs r1, 0
|
|
bl VarSet
|
|
ldr r0, _08054E30 @ =0x00000805
|
|
bl FlagClear
|
|
ldr r0, _08054E34 @ =0x00000806
|
|
bl FlagClear
|
|
ldr r0, _08054E38 @ =0x00000808
|
|
bl FlagClear
|
|
ldr r0, _08054E3C @ =0x0000404d
|
|
movs r1, 0
|
|
bl VarSet
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054E24: .4byte 0x0000405e
|
|
_08054E28: .4byte 0x00000802
|
|
_08054E2C: .4byte 0x0000406e
|
|
_08054E30: .4byte 0x00000805
|
|
_08054E34: .4byte 0x00000806
|
|
_08054E38: .4byte 0x00000808
|
|
_08054E3C: .4byte 0x0000404d
|
|
thumb_func_end sub_8054DD8
|
|
|
|
thumb_func_start sub_8054E40
|
|
sub_8054E40: @ 8054E40
|
|
push {lr}
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
bl FlagClear
|
|
ldr r0, _08054E64 @ =0x0000406e
|
|
movs r1, 0
|
|
bl VarSet
|
|
bl sub_805610C
|
|
bl UpdateLocationHistoryForRoamer
|
|
bl RoamerMoveToOtherLocationSet
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054E64: .4byte 0x0000406e
|
|
thumb_func_end sub_8054E40
|
|
|
|
thumb_func_start sub_8054E68
|
|
sub_8054E68: @ 8054E68
|
|
push {r4,r5,lr}
|
|
movs r2, 0
|
|
ldr r5, _08054E8C @ =gSaveBlock1Ptr
|
|
movs r4, 0x90
|
|
lsls r4, 5
|
|
movs r3, 0
|
|
_08054E74:
|
|
ldr r0, [r5]
|
|
lsls r1, r2, 2
|
|
adds r0, r4
|
|
adds r0, r1
|
|
str r3, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x3F
|
|
ble _08054E74
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054E8C: .4byte gSaveBlock1Ptr
|
|
thumb_func_end sub_8054E68
|
|
|
|
thumb_func_start IncrementGameStat
|
|
IncrementGameStat: @ 8054E90
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x33
|
|
bhi _08054EB8
|
|
adds r0, r4, 0
|
|
bl GetGameStat
|
|
adds r1, r0, 0
|
|
ldr r0, _08054EAC @ =0x00fffffe
|
|
cmp r1, r0
|
|
bhi _08054EB0
|
|
adds r1, 0x1
|
|
b _08054EB2
|
|
.align 2, 0
|
|
_08054EAC: .4byte 0x00fffffe
|
|
_08054EB0:
|
|
ldr r1, _08054EC0 @ =0x00ffffff
|
|
_08054EB2:
|
|
adds r0, r4, 0
|
|
bl SetGameStat
|
|
_08054EB8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054EC0: .4byte 0x00ffffff
|
|
thumb_func_end IncrementGameStat
|
|
|
|
thumb_func_start GetGameStat
|
|
GetGameStat: @ 8054EC4
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x33
|
|
bhi _08054EF8
|
|
ldr r0, _08054EF0 @ =gSaveBlock1Ptr
|
|
ldr r2, [r0]
|
|
lsls r0, r1, 2
|
|
movs r1, 0x90
|
|
lsls r1, 5
|
|
adds r2, r1
|
|
adds r2, r0
|
|
ldr r0, _08054EF4 @ =gSaveBlock2Ptr
|
|
ldr r1, [r0]
|
|
movs r0, 0xF2
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
ldr r0, [r2]
|
|
ldr r1, [r1]
|
|
eors r0, r1
|
|
b _08054EFA
|
|
.align 2, 0
|
|
_08054EF0: .4byte gSaveBlock1Ptr
|
|
_08054EF4: .4byte gSaveBlock2Ptr
|
|
_08054EF8:
|
|
movs r0, 0
|
|
_08054EFA:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetGameStat
|
|
|
|
thumb_func_start SetGameStat
|
|
SetGameStat: @ 8054F00
|
|
push {lr}
|
|
adds r3, r1, 0
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x33
|
|
bhi _08054F2A
|
|
ldr r0, _08054F30 @ =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
lsls r0, r2, 2
|
|
movs r2, 0x90
|
|
lsls r2, 5
|
|
adds r1, r2
|
|
adds r1, r0
|
|
ldr r0, _08054F34 @ =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
movs r2, 0xF2
|
|
lsls r2, 4
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
eors r0, r3
|
|
str r0, [r1]
|
|
_08054F2A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054F30: .4byte gSaveBlock1Ptr
|
|
_08054F34: .4byte gSaveBlock2Ptr
|
|
thumb_func_end SetGameStat
|
|
|
|
thumb_func_start sub_8054F38
|
|
sub_8054F38: @ 8054F38
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r4, 0
|
|
ldr r6, _08054F64 @ =gSaveBlock1Ptr
|
|
_08054F40:
|
|
lsls r1, r4, 2
|
|
movs r0, 0x90
|
|
lsls r0, 5
|
|
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 _08054F40
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054F64: .4byte gSaveBlock1Ptr
|
|
thumb_func_end sub_8054F38
|
|
|
|
thumb_func_start sub_8054F68
|
|
sub_8054F68: @ 8054F68
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
movs r0, 0
|
|
mov r9, r0
|
|
mov r8, r0
|
|
ldr r1, _08055040 @ =gMapHeader
|
|
ldr r0, [r1, 0x4]
|
|
ldrb r0, [r0]
|
|
cmp r9, r0
|
|
bcc _08054F86
|
|
b _08055092
|
|
_08054F86:
|
|
ldr r2, _08055044 @ =gSaveBlock1Ptr
|
|
mov r10, r2
|
|
_08054F8A:
|
|
ldr r3, _08055040 @ =gMapHeader
|
|
ldr r0, [r3, 0x4]
|
|
ldr r1, [r0, 0x4]
|
|
mov r4, r9
|
|
lsls r0, r4, 1
|
|
add r0, r9
|
|
lsls r7, r0, 3
|
|
adds r2, r7, r1
|
|
ldrb r0, [r2, 0x2]
|
|
cmp r0, 0xFF
|
|
bne _08055054
|
|
ldrb r4, [r2, 0x8]
|
|
ldrb r5, [r2, 0xC]
|
|
str r5, [sp]
|
|
ldrb r2, [r2, 0xE]
|
|
str r2, [sp, 0x4]
|
|
adds r0, r2, 0
|
|
adds r1, r5, 0
|
|
bl get_mapheader_by_bank_and_number
|
|
mov r6, r10
|
|
ldr r1, [r6]
|
|
mov r2, r8
|
|
lsls r3, r2, 1
|
|
add r3, r8
|
|
lsls r3, 3
|
|
adds r1, r3
|
|
ldr r0, [r0, 0x4]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
movs r5, 0x8E
|
|
lsls r5, 4
|
|
adds r1, r5
|
|
subs r0, 0x18
|
|
ldm r0!, {r2,r5,r6}
|
|
stm r1!, {r2,r5,r6}
|
|
ldm r0!, {r2,r5,r6}
|
|
stm r1!, {r2,r5,r6}
|
|
mov r6, r10
|
|
ldr r1, [r6]
|
|
adds r1, r3
|
|
ldr r2, _08055040 @ =gMapHeader
|
|
ldr r0, [r2, 0x4]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r7, r0
|
|
ldrb r0, [r0]
|
|
movs r5, 0x8E
|
|
lsls r5, 4
|
|
adds r1, r5
|
|
strb r0, [r1]
|
|
ldr r1, [r6]
|
|
adds r1, r3
|
|
ldr r0, [r2, 0x4]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r7, r0
|
|
ldrh r2, [r0, 0x4]
|
|
ldr r6, _08055048 @ =0x000008e4
|
|
adds r0, r1, r6
|
|
strh r2, [r0]
|
|
ldr r2, _08055040 @ =gMapHeader
|
|
ldr r0, [r2, 0x4]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r7, r0
|
|
ldrh r2, [r0, 0x6]
|
|
adds r5, 0x6
|
|
adds r0, r1, r5
|
|
strh r2, [r0]
|
|
adds r6, 0x4
|
|
adds r1, r6
|
|
strb r4, [r1]
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
adds r0, r3
|
|
ldr r2, _0805504C @ =0x000008ec
|
|
adds r1, r0, r2
|
|
mov r3, sp
|
|
ldrh r3, [r3]
|
|
strh r3, [r1]
|
|
ldr r4, _08055050 @ =0x000008ee
|
|
adds r1, r0, r4
|
|
mov r5, sp
|
|
ldrh r5, [r5, 0x4]
|
|
strh r5, [r1]
|
|
subs r6, 0x6
|
|
adds r0, r6
|
|
movs r1, 0xFF
|
|
strb r1, [r0]
|
|
b _08055072
|
|
.align 2, 0
|
|
_08055040: .4byte gMapHeader
|
|
_08055044: .4byte gSaveBlock1Ptr
|
|
_08055048: .4byte 0x000008e4
|
|
_0805504C: .4byte 0x000008ec
|
|
_08055050: .4byte 0x000008ee
|
|
_08055054:
|
|
mov r0, r10
|
|
ldr r1, [r0]
|
|
mov r3, r8
|
|
lsls r0, r3, 1
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
movs r4, 0x8E
|
|
lsls r4, 4
|
|
adds r1, r4
|
|
adds r0, r2, 0
|
|
ldm r0!, {r2,r5,r6}
|
|
stm r1!, {r2,r5,r6}
|
|
ldm r0!, {r3-r5}
|
|
stm r1!, {r3-r5}
|
|
_08055072:
|
|
mov r0, r8
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldr r6, _080550A4 @ =gMapHeader
|
|
ldr r0, [r6, 0x4]
|
|
ldrb r0, [r0]
|
|
cmp r9, r0
|
|
bcs _08055092
|
|
b _08054F8A
|
|
_08055092:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080550A4: .4byte gMapHeader
|
|
thumb_func_end sub_8054F68
|
|
|
|
thumb_func_start sub_80550A8
|
|
sub_80550A8: @ 80550A8
|
|
push {lr}
|
|
ldr r0, _080550D0 @ =gMapHeader
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, _080550D4 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r2, [r1, 0x4]
|
|
movs r3, 0x8E
|
|
lsls r3, 4
|
|
adds r1, r0, r3
|
|
movs r3, 0x3F
|
|
_080550BC:
|
|
ldr r0, [r2, 0x10]
|
|
str r0, [r1, 0x10]
|
|
adds r2, 0x18
|
|
adds r1, 0x18
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080550BC
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080550D0: .4byte gMapHeader
|
|
_080550D4: .4byte gSaveBlock1Ptr
|
|
thumb_func_end sub_80550A8
|
|
|
|
thumb_func_start Overworld_SetMapObjTemplateCoords
|
|
Overworld_SetMapObjTemplateCoords: @ 80550D8
|
|
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, _08055100 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
movs r6, 0x8E
|
|
lsls r6, 4
|
|
adds r3, r0, r6
|
|
_080550F2:
|
|
ldrb r0, [r3]
|
|
cmp r0, r5
|
|
bne _08055104
|
|
strh r4, [r3, 0x4]
|
|
strh r2, [r3, 0x6]
|
|
b _0805510C
|
|
.align 2, 0
|
|
_08055100: .4byte gSaveBlock1Ptr
|
|
_08055104:
|
|
adds r3, 0x18
|
|
adds r1, 0x1
|
|
cmp r1, 0x3F
|
|
ble _080550F2
|
|
_0805510C:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end Overworld_SetMapObjTemplateCoords
|
|
|
|
thumb_func_start Overworld_SetMapObjTemplateMovementType
|
|
Overworld_SetMapObjTemplateMovementType: @ 8055114
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r0, _08055134 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
movs r3, 0
|
|
movs r5, 0x8E
|
|
lsls r5, 4
|
|
adds r2, r0, r5
|
|
_0805512A:
|
|
ldrb r0, [r2]
|
|
cmp r0, r4
|
|
bne _08055138
|
|
strb r1, [r2, 0x9]
|
|
b _08055140
|
|
.align 2, 0
|
|
_08055134: .4byte gSaveBlock1Ptr
|
|
_08055138:
|
|
adds r2, 0x18
|
|
adds r3, 0x1
|
|
cmp r3, 0x3F
|
|
ble _0805512A
|
|
_08055140:
|
|
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: @ 8055148
|
|
push {r4,lr}
|
|
bl move_tilemap_camera_to_upper_left_corner
|
|
ldr r4, _0805516C @ =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
|
|
.align 2, 0
|
|
_0805516C: .4byte gMapHeader
|
|
thumb_func_end mapdata_load_assets_to_gpu_and_full_redraw
|
|
|
|
thumb_func_start get_mapdata_header
|
|
get_mapdata_header: @ 8055170
|
|
push {lr}
|
|
ldr r0, _08055180 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0, 0x32]
|
|
cmp r1, 0
|
|
bne _08055184
|
|
movs r0, 0
|
|
b _0805518E
|
|
.align 2, 0
|
|
_08055180: .4byte gSaveBlock1Ptr
|
|
_08055184:
|
|
ldr r0, _08055194 @ =gMapLayouts
|
|
subs r1, 0x1
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
_0805518E:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08055194: .4byte gMapLayouts
|
|
thumb_func_end get_mapdata_header
|
|
|
|
thumb_func_start warp_shift
|
|
warp_shift: @ 8055198
|
|
ldr r3, _080551C4 @ =gUnknown_2031DB4
|
|
ldr r0, _080551C8 @ =gSaveBlock1Ptr
|
|
ldr r2, [r0]
|
|
ldr r0, [r2, 0x4]
|
|
ldr r1, [r2, 0x8]
|
|
str r0, [r3]
|
|
str r1, [r3, 0x4]
|
|
ldr r0, _080551CC @ =gUnknown_2031DBC
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [r2, 0x4]
|
|
str r1, [r2, 0x8]
|
|
ldr r2, _080551D0 @ =gUnknown_2031DC4
|
|
ldr r0, _080551D4 @ =gUnknown_826D2B0
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
ldr r2, _080551D8 @ =gUnknown_2031DCC
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_080551C4: .4byte gUnknown_2031DB4
|
|
_080551C8: .4byte gSaveBlock1Ptr
|
|
_080551CC: .4byte gUnknown_2031DBC
|
|
_080551D0: .4byte gUnknown_2031DC4
|
|
_080551D4: .4byte gUnknown_826D2B0
|
|
_080551D8: .4byte gUnknown_2031DCC
|
|
thumb_func_end warp_shift
|
|
|
|
thumb_func_start warp_set
|
|
warp_set: @ 80551DC
|
|
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
|
|
warp_data_is_not_neg_1: @ 80551FC
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r2, 0
|
|
ldrsb r2, [r1, r2]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r2, r0
|
|
bne _08055230
|
|
movs r0, 0x1
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, r2
|
|
bne _08055230
|
|
movs r2, 0x2
|
|
ldrsb r2, [r1, r2]
|
|
cmp r2, r0
|
|
bne _08055230
|
|
movs r0, 0x4
|
|
ldrsh r3, [r1, r0]
|
|
cmp r3, r2
|
|
bne _08055230
|
|
movs r2, 0x6
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, r3
|
|
bne _08055230
|
|
movs r0, 0x1
|
|
b _08055232
|
|
_08055230:
|
|
movs r0, 0
|
|
_08055232:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end warp_data_is_not_neg_1
|
|
|
|
thumb_func_start get_mapheader_by_bank_and_number
|
|
get_mapheader_by_bank_and_number: @ 8055238
|
|
lsls r0, 16
|
|
lsls r1, 16
|
|
ldr r2, _0805524C @ =gMapGroups
|
|
lsrs r0, 14
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
lsrs r1, 14
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805524C: .4byte gMapGroups
|
|
thumb_func_end get_mapheader_by_bank_and_number
|
|
|
|
thumb_func_start warp1_get_mapheader
|
|
warp1_get_mapheader: @ 8055250
|
|
push {lr}
|
|
ldr r1, _08055270 @ =gUnknown_2031DBC
|
|
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
|
|
.align 2, 0
|
|
_08055270: .4byte gUnknown_2031DBC
|
|
thumb_func_end warp1_get_mapheader
|
|
|
|
thumb_func_start set_current_map_header_from_sav1_save_old_name
|
|
set_current_map_header_from_sav1_save_old_name: @ 8055274
|
|
push {r4-r6,lr}
|
|
ldr r4, _080552B4 @ =gMapHeader
|
|
ldr r5, _080552B8 @ =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
|
|
.align 2, 0
|
|
_080552B4: .4byte gMapHeader
|
|
_080552B8: .4byte gSaveBlock1Ptr
|
|
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: @ 80552BC
|
|
push {r4,r5,lr}
|
|
ldr r4, _080552F4 @ =gMapHeader
|
|
ldr r0, _080552F8 @ =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
|
|
.align 2, 0
|
|
_080552F4: .4byte gMapHeader
|
|
_080552F8: .4byte gSaveBlock1Ptr
|
|
thumb_func_end set_current_map_header_from_sav1
|
|
|
|
thumb_func_start update_camera_pos_from_warpid
|
|
update_camera_pos_from_warpid: @ 80552FC
|
|
push {r4,r5,lr}
|
|
ldr r0, _0805532C @ =gSaveBlock1Ptr
|
|
ldr r2, [r0]
|
|
movs r1, 0x6
|
|
ldrsb r1, [r2, r1]
|
|
adds r4, r0, 0
|
|
cmp r1, 0
|
|
blt _08055334
|
|
ldr r3, _08055330 @ =gMapHeader
|
|
ldr r0, [r3, 0x4]
|
|
ldrb r5, [r0, 0x1]
|
|
cmp r1, r5
|
|
bge _08055334
|
|
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 _0805536C
|
|
.align 2, 0
|
|
_0805532C: .4byte gSaveBlock1Ptr
|
|
_08055330: .4byte gMapHeader
|
|
_08055334:
|
|
ldr r1, [r4]
|
|
ldrh r3, [r1, 0x8]
|
|
movs r2, 0x8
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
blt _08055350
|
|
ldrh r2, [r1, 0xA]
|
|
movs r5, 0xA
|
|
ldrsh r0, [r1, r5]
|
|
cmp r0, 0
|
|
blt _08055350
|
|
strh r3, [r1]
|
|
strh r2, [r1, 0x2]
|
|
b _0805536C
|
|
_08055350:
|
|
ldr r3, [r4]
|
|
ldr r2, _08055374 @ =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]
|
|
_0805536C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055374: .4byte gMapHeader
|
|
thumb_func_end update_camera_pos_from_warpid
|
|
|
|
thumb_func_start WarpIntoMap
|
|
WarpIntoMap: @ 8055378
|
|
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 WarpIntoMap
|
|
|
|
thumb_func_start Overworld_SetWarpDestination
|
|
Overworld_SetWarpDestination: @ 805538C
|
|
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, _080553C4 @ =gUnknown_2031DBC
|
|
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
|
|
.align 2, 0
|
|
_080553C4: .4byte gUnknown_2031DBC
|
|
thumb_func_end Overworld_SetWarpDestination
|
|
|
|
thumb_func_start warp1_set_2
|
|
warp1_set_2: @ 80553C8
|
|
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
|
|
saved_warp2_set: @ 80553E8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
ldr r0, _08055418 @ =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
|
|
.align 2, 0
|
|
_08055418: .4byte gSaveBlock1Ptr
|
|
thumb_func_end saved_warp2_set
|
|
|
|
thumb_func_start SetDynamicWarpWithCoords
|
|
SetDynamicWarpWithCoords: @ 805541C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
ldr r4, [sp, 0x14]
|
|
ldr r5, [sp, 0x18]
|
|
ldr r0, _08055450 @ =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
|
|
.align 2, 0
|
|
_08055450: .4byte gSaveBlock1Ptr
|
|
thumb_func_end SetDynamicWarpWithCoords
|
|
|
|
thumb_func_start copy_saved_warp2_bank_and_enter_x_to_warp1
|
|
copy_saved_warp2_bank_and_enter_x_to_warp1: @ 8055454
|
|
ldr r2, _08055464 @ =gUnknown_2031DBC
|
|
ldr r0, _08055468 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x18]
|
|
ldr r0, [r0, 0x14]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_08055464: .4byte gUnknown_2031DBC
|
|
_08055468: .4byte gSaveBlock1Ptr
|
|
thumb_func_end copy_saved_warp2_bank_and_enter_x_to_warp1
|
|
|
|
thumb_func_start sub_805546C
|
|
sub_805546C: @ 805546C
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl GetHealLocationPointer
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
beq _0805549A
|
|
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
|
|
_0805549A:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805546C
|
|
|
|
thumb_func_start copy_saved_warp3_bank_and_enter_x_to_warp1
|
|
copy_saved_warp3_bank_and_enter_x_to_warp1: @ 80554A4
|
|
ldr r2, _080554B4 @ =gUnknown_2031DBC
|
|
ldr r0, _080554B8 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x20]
|
|
ldr r0, [r0, 0x1C]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_080554B4: .4byte gUnknown_2031DBC
|
|
_080554B8: .4byte gSaveBlock1Ptr
|
|
thumb_func_end copy_saved_warp3_bank_and_enter_x_to_warp1
|
|
|
|
thumb_func_start sub_80554BC
|
|
sub_80554BC: @ 80554BC
|
|
push {lr}
|
|
ldr r0, _080554C8 @ =gUnknown_2031DBC
|
|
bl SetBlackoutRespawnWarpAndHealerNpc
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080554C8: .4byte gUnknown_2031DBC
|
|
thumb_func_end sub_80554BC
|
|
|
|
thumb_func_start SetLastHealLocationWarp
|
|
SetLastHealLocationWarp: @ 80554CC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl GetHealLocationPointer
|
|
adds r5, r0, 0
|
|
cmp r5, 0
|
|
beq _08055500
|
|
ldr r0, _08055508 @ =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
|
|
_08055500:
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055508: .4byte gSaveBlock1Ptr
|
|
thumb_func_end SetLastHealLocationWarp
|
|
|
|
thumb_func_start sub_805550C
|
|
sub_805550C: @ 805550C
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
lsls r1, 16
|
|
lsrs r7, r1, 16
|
|
bl GetCurrentMapType
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r1, _08055598 @ =gUnknown_2031DBC
|
|
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 _08055590
|
|
adds r0, r5, 0
|
|
bl is_light_level_1_2_3_5_or_6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08055590
|
|
ldr r5, _0805559C @ =gSaveBlock1Ptr
|
|
ldr r0, [r5]
|
|
ldrh r0, [r0, 0x4]
|
|
cmp r0, 0x1
|
|
beq _08055590
|
|
bl GetPlayerFacingDirection
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
negs r4, r0
|
|
orrs r4, r0
|
|
ldr r1, [r5]
|
|
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
|
|
lsrs r4, 31
|
|
subs r4, 0x7
|
|
adds r4, r7, r4
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
str r4, [sp]
|
|
bl SetEscapeWarp
|
|
_08055590:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055598: .4byte gUnknown_2031DBC
|
|
_0805559C: .4byte gSaveBlock1Ptr
|
|
thumb_func_end sub_805550C
|
|
|
|
thumb_func_start SetEscapeWarp
|
|
SetEscapeWarp: @ 80555A0
|
|
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, _080555DC @ =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
|
|
.align 2, 0
|
|
_080555DC: .4byte gSaveBlock1Ptr
|
|
thumb_func_end SetEscapeWarp
|
|
|
|
thumb_func_start sub_80555E0
|
|
sub_80555E0: @ 80555E0
|
|
ldr r2, _080555F0 @ =gUnknown_2031DBC
|
|
ldr r0, _080555F4 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x28]
|
|
ldr r0, [r0, 0x24]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_080555F0: .4byte gUnknown_2031DBC
|
|
_080555F4: .4byte gSaveBlock1Ptr
|
|
thumb_func_end sub_80555E0
|
|
|
|
thumb_func_start SetFixedDiveWarp
|
|
SetFixedDiveWarp: @ 80555F8
|
|
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, _08055630 @ =gUnknown_2031DC4
|
|
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
|
|
.align 2, 0
|
|
_08055630: .4byte gUnknown_2031DC4
|
|
thumb_func_end SetFixedDiveWarp
|
|
|
|
thumb_func_start warp1_set_to_warp2
|
|
warp1_set_to_warp2: @ 8055634
|
|
ldr r2, _08055644 @ =gUnknown_2031DBC
|
|
ldr r0, _08055648 @ =gUnknown_2031DC4
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_08055644: .4byte gUnknown_2031DBC
|
|
_08055648: .4byte gUnknown_2031DC4
|
|
thumb_func_end warp1_set_to_warp2
|
|
|
|
thumb_func_start SetFixedHoleWarp
|
|
SetFixedHoleWarp: @ 805564C
|
|
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, _08055684 @ =gUnknown_2031DCC
|
|
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
|
|
.align 2, 0
|
|
_08055684: .4byte gUnknown_2031DCC
|
|
thumb_func_end SetFixedHoleWarp
|
|
|
|
thumb_func_start SetWarpDestinationToFixedHoleWarp
|
|
SetWarpDestinationToFixedHoleWarp: @ 8055688
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
ldr r4, _080556B0 @ =gUnknown_2031DCC
|
|
adds r0, r4, 0
|
|
bl warp_data_is_not_neg_1
|
|
cmp r0, 0x1
|
|
bne _080556BC
|
|
ldr r2, _080556B4 @ =gUnknown_2031DBC
|
|
ldr r0, _080556B8 @ =gUnknown_2031DB4
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
b _080556D6
|
|
.align 2, 0
|
|
_080556B0: .4byte gUnknown_2031DCC
|
|
_080556B4: .4byte gUnknown_2031DBC
|
|
_080556B8: .4byte gUnknown_2031DB4
|
|
_080556BC:
|
|
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
|
|
_080556D6:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end SetWarpDestinationToFixedHoleWarp
|
|
|
|
thumb_func_start warp1_set_to_sav1w
|
|
warp1_set_to_sav1w: @ 80556E0
|
|
ldr r2, _080556F0 @ =gUnknown_2031DBC
|
|
ldr r0, _080556F4 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x10]
|
|
ldr r0, [r0, 0xC]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_080556F0: .4byte gUnknown_2031DBC
|
|
_080556F4: .4byte gSaveBlock1Ptr
|
|
thumb_func_end warp1_set_to_sav1w
|
|
|
|
thumb_func_start sub_80556F8
|
|
sub_80556F8: @ 80556F8
|
|
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, _08055734 @ =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
|
|
.align 2, 0
|
|
_08055734: .4byte gSaveBlock1Ptr
|
|
thumb_func_end sub_80556F8
|
|
|
|
thumb_func_start sub_8055738
|
|
sub_8055738: @ 8055738
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl GetHealLocationPointer
|
|
adds r5, r0, 0
|
|
cmp r5, 0
|
|
beq _0805576C
|
|
ldr r0, _08055774 @ =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
|
|
_0805576C:
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055774: .4byte gSaveBlock1Ptr
|
|
thumb_func_end sub_8055738
|
|
|
|
thumb_func_start sub_8055778
|
|
sub_8055778: @ 8055778
|
|
ldr r0, _08055788 @ =gSaveBlock1Ptr
|
|
ldr r2, [r0]
|
|
ldr r0, [r2, 0x14]
|
|
ldr r1, [r2, 0x18]
|
|
str r0, [r2, 0xC]
|
|
str r1, [r2, 0x10]
|
|
bx lr
|
|
.align 2, 0
|
|
_08055788: .4byte gSaveBlock1Ptr
|
|
thumb_func_end sub_8055778
|
|
|
|
thumb_func_start GetMapConnection
|
|
GetMapConnection: @ 805578C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _080557A0 @ =gMapHeader
|
|
ldr r0, [r0, 0xC]
|
|
ldr r3, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
cmp r1, 0
|
|
bne _080557A8
|
|
b _080557BC
|
|
.align 2, 0
|
|
_080557A0: .4byte gMapHeader
|
|
_080557A4:
|
|
adds r0, r1, 0
|
|
b _080557BE
|
|
_080557A8:
|
|
movs r2, 0
|
|
cmp r2, r3
|
|
bge _080557BC
|
|
_080557AE:
|
|
ldrb r0, [r1]
|
|
cmp r0, r4
|
|
beq _080557A4
|
|
adds r2, 0x1
|
|
adds r1, 0xC
|
|
cmp r2, r3
|
|
blt _080557AE
|
|
_080557BC:
|
|
movs r0, 0
|
|
_080557BE:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetMapConnection
|
|
|
|
thumb_func_start sub_80557C4
|
|
sub_80557C4: @ 80557C4
|
|
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 GetMapConnection
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
beq _080557FC
|
|
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 _08055818
|
|
_080557FC:
|
|
bl mapheader_run_script_with_tag_x6
|
|
ldr r0, _08055810 @ =gUnknown_2031DC4
|
|
bl warp_data_is_not_neg_1
|
|
cmp r0, 0
|
|
beq _08055814
|
|
movs r0, 0
|
|
b _0805581A
|
|
.align 2, 0
|
|
_08055810: .4byte gUnknown_2031DC4
|
|
_08055814:
|
|
bl warp1_set_to_warp2
|
|
_08055818:
|
|
movs r0, 0x1
|
|
_0805581A:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80557C4
|
|
|
|
thumb_func_start sub_8055824
|
|
sub_8055824: @ 8055824
|
|
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_80557C4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8055824
|
|
|
|
thumb_func_start sub_8055844
|
|
sub_8055844: @ 8055844
|
|
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_80557C4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8055844
|
|
|
|
thumb_func_start sub_8055864
|
|
sub_8055864: @ 8055864
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r0, 24
|
|
asrs r0, 24
|
|
lsrs r4, r1, 24
|
|
asrs r1, 24
|
|
movs r3, 0x1
|
|
negs r3, r3
|
|
str r3, [sp]
|
|
adds r2, r3, 0
|
|
bl Overworld_SetWarpDestination
|
|
bl sub_8055E94
|
|
bl warp_shift
|
|
bl set_current_map_header_from_sav1_save_old_name
|
|
bl sub_8054F68
|
|
bl TrySetMapSaveWarpStatus
|
|
bl sub_806E110
|
|
bl nullsub_74
|
|
bl sub_806D7E8
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_810C578
|
|
bl SetSav1WeatherFromCurrMapHeader
|
|
bl sub_805610C
|
|
bl sub_8055CB8
|
|
bl sav1_reset_battle_music_maybe
|
|
bl mapheader_run_script_with_tag_x3
|
|
bl sub_815D8F8
|
|
bl not_trainer_hill_battle_pyramid
|
|
ldr r4, _0805591C @ =gMapHeader
|
|
ldr r0, [r4]
|
|
bl copy_map_tileset2_to_vram_2
|
|
ldr r0, [r4]
|
|
bl apply_map_tileset2_palette
|
|
movs r4, 0x7
|
|
_080558D4:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_807AB74
|
|
adds r4, 0x1
|
|
cmp r4, 0xC
|
|
ble _080558D4
|
|
bl sub_806FFB0
|
|
bl UpdateLocationHistoryForRoamer
|
|
bl RoamerMove
|
|
bl sub_8110920
|
|
bl DoCurrentWeather
|
|
bl wild_encounter_reset_coro_args
|
|
bl mapheader_run_script_with_tag_x5
|
|
bl sub_80561B4
|
|
ldr r1, _0805591C @ =gMapHeader
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1, 0x14]
|
|
cmp r0, r1
|
|
beq _08055914
|
|
movs r0, 0x1
|
|
bl sub_8098110
|
|
_08055914:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805591C: .4byte gMapHeader
|
|
thumb_func_end sub_8055864
|
|
|
|
thumb_func_start sub_8055920
|
|
sub_8055920: @ 8055920
|
|
push {r4,lr}
|
|
bl set_current_map_header_from_sav1_save_old_name
|
|
bl sub_8054F68
|
|
ldr r0, _0805599C @ =gMapHeader
|
|
ldrb r0, [r0, 0x17]
|
|
bl is_light_level_1_2_3_5_or_6
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl TrySetMapSaveWarpStatus
|
|
bl sub_806E110
|
|
bl nullsub_74
|
|
bl sub_806D7E8
|
|
ldr r0, _080559A0 @ =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 sub_810C578
|
|
bl SetSav1WeatherFromCurrMapHeader
|
|
bl sub_805610C
|
|
cmp r4, 0
|
|
beq _08055974
|
|
ldr r0, _080559A4 @ =0x00000806
|
|
bl FlagClear
|
|
_08055974:
|
|
bl sub_8055CB8
|
|
bl sav1_reset_battle_music_maybe
|
|
bl mapheader_run_script_with_tag_x3
|
|
bl sub_815D8F8
|
|
bl UpdateLocationHistoryForRoamer
|
|
bl RoamerMoveToOtherLocationSet
|
|
bl sub_8110920
|
|
bl not_trainer_hill_battle_pyramid
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805599C: .4byte gMapHeader
|
|
_080559A0: .4byte gSaveBlock1Ptr
|
|
_080559A4: .4byte 0x00000806
|
|
thumb_func_end sub_8055920
|
|
|
|
thumb_func_start sub_80559A8
|
|
sub_80559A8: @ 80559A8
|
|
push {lr}
|
|
bl set_current_map_header_from_sav1_save_old_name
|
|
bl sub_8054F68
|
|
ldr r0, _080559E0 @ =gMapHeader
|
|
ldrb r0, [r0, 0x17]
|
|
bl is_light_level_1_2_3_5_or_6
|
|
bl TrySetMapSaveWarpStatus
|
|
bl SetSav1WeatherFromCurrMapHeader
|
|
bl sub_805610C
|
|
bl sub_8055CB8
|
|
bl sub_8110920
|
|
bl sub_8111708
|
|
bl set_current_map_header_from_sav1
|
|
bl not_trainer_hill_battle_pyramid
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080559E0: .4byte gMapHeader
|
|
thumb_func_end sub_80559A8
|
|
|
|
thumb_func_start ResetInitialPlayerAvatarState
|
|
ResetInitialPlayerAvatarState: @ 80559E4
|
|
ldr r0, _080559F4 @ =gUnknown_2031DD4
|
|
movs r2, 0
|
|
movs r1, 0x1
|
|
strb r1, [r0, 0x1]
|
|
strb r1, [r0]
|
|
strb r2, [r0, 0x2]
|
|
bx lr
|
|
.align 2, 0
|
|
_080559F4: .4byte gUnknown_2031DD4
|
|
thumb_func_end ResetInitialPlayerAvatarState
|
|
|
|
thumb_func_start sub_80559F8
|
|
sub_80559F8: @ 80559F8
|
|
ldr r1, _08055A04 @ =gUnknown_2031DD4
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
strb r0, [r1, 0x2]
|
|
bx lr
|
|
.align 2, 0
|
|
_08055A04: .4byte gUnknown_2031DD4
|
|
thumb_func_end sub_80559F8
|
|
|
|
thumb_func_start sub_8055A08
|
|
sub_8055A08: @ 8055A08
|
|
push {r4,lr}
|
|
bl GetPlayerFacingDirection
|
|
ldr r4, _08055A24 @ =gUnknown_2031DD4
|
|
strb r0, [r4, 0x1]
|
|
movs r0, 0x2
|
|
bl TestPlayerAvatarFlags
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08055A28
|
|
movs r0, 0x2
|
|
b _08055A5A
|
|
.align 2, 0
|
|
_08055A24: .4byte gUnknown_2031DD4
|
|
_08055A28:
|
|
movs r0, 0x4
|
|
bl TestPlayerAvatarFlags
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08055A38
|
|
movs r0, 0x4
|
|
b _08055A5A
|
|
_08055A38:
|
|
movs r0, 0x8
|
|
bl TestPlayerAvatarFlags
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08055A48
|
|
movs r0, 0x8
|
|
b _08055A5A
|
|
_08055A48:
|
|
movs r0, 0x10
|
|
bl TestPlayerAvatarFlags
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08055A58
|
|
movs r0, 0x10
|
|
b _08055A5A
|
|
_08055A58:
|
|
movs r0, 0x1
|
|
_08055A5A:
|
|
strb r0, [r4]
|
|
ldr r1, _08055A68 @ =gUnknown_2031DD4
|
|
movs r0, 0
|
|
strb r0, [r1, 0x2]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055A68: .4byte gUnknown_2031DD4
|
|
thumb_func_end sub_8055A08
|
|
|
|
thumb_func_start sub_8055A6C
|
|
sub_8055A6C: @ 8055A6C
|
|
push {r4-r7,lr}
|
|
bl GetCurrentMapType
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
bl sub_8055C74
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
ldr r6, _08055ABC @ =gUnknown_2031DD4
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_8055ACC
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r0, _08055AC0 @ =0xffffff00
|
|
ands r7, r0
|
|
orrs r7, r1
|
|
adds r0, r6, 0
|
|
adds r2, r4, 0
|
|
adds r3, r5, 0
|
|
bl sub_8055B74
|
|
lsls r0, 24
|
|
lsrs r0, 16
|
|
ldr r1, _08055AC4 @ =0xffff00ff
|
|
ands r7, r1
|
|
orrs r7, r0
|
|
ldr r0, _08055AC8 @ =0xff00ffff
|
|
ands r7, r0
|
|
str r7, [r6]
|
|
adds r0, r6, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08055ABC: .4byte gUnknown_2031DD4
|
|
_08055AC0: .4byte 0xffffff00
|
|
_08055AC4: .4byte 0xffff00ff
|
|
_08055AC8: .4byte 0xff00ffff
|
|
thumb_func_end sub_8055A6C
|
|
|
|
thumb_func_start sub_8055ACC
|
|
sub_8055ACC: @ 8055ACC
|
|
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 _08055AE8
|
|
ldr r0, _08055AF0 @ =0x00000802
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08055B30
|
|
_08055AE8:
|
|
cmp r4, 0x5
|
|
bne _08055AF4
|
|
movs r0, 0x10
|
|
b _08055B32
|
|
.align 2, 0
|
|
_08055AF0: .4byte 0x00000802
|
|
_08055AF4:
|
|
adds r0, r5, 0
|
|
bl sub_8055B38
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08055B30
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
bl MetatileBehavior_IsSurfable
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08055B16
|
|
movs r0, 0x8
|
|
b _08055B32
|
|
_08055B16:
|
|
bl sub_8055C9C
|
|
cmp r0, 0x1
|
|
bne _08055B30
|
|
ldrb r0, [r6]
|
|
cmp r0, 0x2
|
|
bne _08055B28
|
|
movs r0, 0x2
|
|
b _08055B32
|
|
_08055B28:
|
|
cmp r0, 0x4
|
|
bne _08055B30
|
|
movs r0, 0x4
|
|
b _08055B32
|
|
_08055B30:
|
|
movs r0, 0x1
|
|
_08055B32:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8055ACC
|
|
|
|
thumb_func_start sub_8055B38
|
|
sub_8055B38: @ 8055B38
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl MetatileBehavior_IsSurfable
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08055B6C
|
|
ldr r0, _08055B60 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0, 0x4]
|
|
ldr r0, _08055B64 @ =0x00005601
|
|
cmp r1, r0
|
|
beq _08055B5C
|
|
ldr r0, _08055B68 @ =0x00005701
|
|
cmp r1, r0
|
|
bne _08055B6C
|
|
_08055B5C:
|
|
movs r0, 0x1
|
|
b _08055B6E
|
|
.align 2, 0
|
|
_08055B60: .4byte gSaveBlock1Ptr
|
|
_08055B64: .4byte 0x00005601
|
|
_08055B68: .4byte 0x00005701
|
|
_08055B6C:
|
|
movs r0, 0
|
|
_08055B6E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8055B38
|
|
|
|
thumb_func_start sub_8055B74
|
|
sub_8055B74: @ 8055B74
|
|
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, _08055BD4 @ =0x00000802
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08055B94
|
|
cmp r5, 0x6
|
|
beq _08055C3E
|
|
_08055B94:
|
|
lsls r4, 24
|
|
lsrs r5, r4, 24
|
|
adds r0, r5, 0
|
|
bl MetatileBehavior_ReturnFalse_2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08055BD0
|
|
adds r0, r5, 0
|
|
bl MetatileBehavior_IsCaveDoor
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08055C68
|
|
adds r0, r5, 0
|
|
bl MetatileBehavior_IsWarpDoor_2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08055C68
|
|
adds r0, r5, 0
|
|
bl MetatileBehavior_IsSouthArrowWarp
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08055BD8
|
|
_08055BD0:
|
|
movs r0, 0x2
|
|
b _08055C6E
|
|
.align 2, 0
|
|
_08055BD4: .4byte 0x00000802
|
|
_08055BD8:
|
|
adds r0, r5, 0
|
|
bl MetatileBehavior_IsNorthArrowWarp
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08055C68
|
|
adds r0, r5, 0
|
|
bl MetatileBehavior_IsWestArrowWarp
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08055C3E
|
|
adds r0, r5, 0
|
|
bl MetatileBehavior_IsEastArrowWarp
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08055C1E
|
|
adds r0, r5, 0
|
|
bl MetatileBehavior_IsUnknownWarp6C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08055C1E
|
|
adds r0, r5, 0
|
|
bl MetatileBehavior_IsUnknownWarp6E
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08055C22
|
|
_08055C1E:
|
|
movs r0, 0x3
|
|
b _08055C6E
|
|
_08055C22:
|
|
adds r0, r5, 0
|
|
bl MetatileBehavior_IsUnknownWarp6D
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08055C3E
|
|
adds r0, r5, 0
|
|
bl MetatileBehavior_IsUnknownWarp6F
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08055C42
|
|
_08055C3E:
|
|
movs r0, 0x4
|
|
b _08055C6E
|
|
_08055C42:
|
|
ldrb r0, [r6]
|
|
cmp r0, 0x10
|
|
bne _08055C4C
|
|
cmp r7, 0x8
|
|
beq _08055C6C
|
|
_08055C4C:
|
|
cmp r0, 0x8
|
|
bne _08055C54
|
|
cmp r7, 0x10
|
|
beq _08055C6C
|
|
_08055C54:
|
|
lsrs r0, r4, 24
|
|
bl MetatileBehavior_IsLadder
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08055C6C
|
|
ldrb r0, [r6, 0x2]
|
|
cmp r0, 0
|
|
bne _08055C6C
|
|
_08055C68:
|
|
movs r0, 0x1
|
|
b _08055C6E
|
|
_08055C6C:
|
|
ldrb r0, [r6, 0x1]
|
|
_08055C6E:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8055B74
|
|
|
|
thumb_func_start sub_8055C74
|
|
sub_8055C74: @ 8055C74
|
|
push {lr}
|
|
ldr r0, _08055C98 @ =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1]
|
|
adds r0, 0x7
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldrh r1, [r1, 0x2]
|
|
adds r1, 0x7
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl MapGridGetMetatileBehaviorAt
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08055C98: .4byte gSaveBlock1Ptr
|
|
thumb_func_end sub_8055C74
|
|
|
|
thumb_func_start sub_8055C9C
|
|
sub_8055C9C: @ 8055C9C
|
|
push {lr}
|
|
ldr r0, _08055CAC @ =gMapHeader
|
|
ldrb r0, [r0, 0x18]
|
|
cmp r0, 0
|
|
beq _08055CB0
|
|
movs r0, 0x1
|
|
b _08055CB2
|
|
.align 2, 0
|
|
_08055CAC: .4byte gMapHeader
|
|
_08055CB0:
|
|
movs r0, 0
|
|
_08055CB2:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8055C9C
|
|
|
|
thumb_func_start sub_8055CB8
|
|
sub_8055CB8: @ 8055CB8
|
|
push {lr}
|
|
ldr r0, _08055CC8 @ =gMapHeader
|
|
ldrb r1, [r0, 0x15]
|
|
cmp r1, 0
|
|
bne _08055CD0
|
|
ldr r0, _08055CCC @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
b _08055CF8
|
|
.align 2, 0
|
|
_08055CC8: .4byte gMapHeader
|
|
_08055CCC: .4byte gSaveBlock1Ptr
|
|
_08055CD0:
|
|
ldr r0, _08055CE8 @ =0x00000806
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08055CF0
|
|
ldr r0, _08055CEC @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
adds r0, 0x30
|
|
movs r1, 0
|
|
b _08055CFA
|
|
.align 2, 0
|
|
_08055CE8: .4byte 0x00000806
|
|
_08055CEC: .4byte gSaveBlock1Ptr
|
|
_08055CF0:
|
|
ldr r0, _08055D00 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, _08055D04 @ =gUnknown_83C68E0
|
|
ldr r1, [r1]
|
|
_08055CF8:
|
|
adds r0, 0x30
|
|
_08055CFA:
|
|
strb r1, [r0]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055D00: .4byte gSaveBlock1Ptr
|
|
_08055D04: .4byte gUnknown_83C68E0
|
|
thumb_func_end sub_8055CB8
|
|
|
|
thumb_func_start Overworld_SetFlashLevel
|
|
Overworld_SetFlashLevel: @ 8055D08
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
blt _08055D18
|
|
ldr r0, _08055D28 @ =gUnknown_83C68E0
|
|
ldr r0, [r0]
|
|
cmp r1, r0
|
|
ble _08055D1A
|
|
_08055D18:
|
|
movs r1, 0
|
|
_08055D1A:
|
|
ldr r0, _08055D2C @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
adds r0, 0x30
|
|
strb r1, [r0]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055D28: .4byte gUnknown_83C68E0
|
|
_08055D2C: .4byte gSaveBlock1Ptr
|
|
thumb_func_end Overworld_SetFlashLevel
|
|
|
|
thumb_func_start sav1_get_flash_used_on_map
|
|
sav1_get_flash_used_on_map: @ 8055D30
|
|
ldr r0, _08055D3C @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
adds r0, 0x30
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08055D3C: .4byte gSaveBlock1Ptr
|
|
thumb_func_end sav1_get_flash_used_on_map
|
|
|
|
thumb_func_start SetCurrentMapLayout
|
|
SetCurrentMapLayout: @ 8055D40
|
|
push {lr}
|
|
ldr r1, _08055D54 @ =gSaveBlock1Ptr
|
|
ldr r1, [r1]
|
|
strh r0, [r1, 0x32]
|
|
bl get_mapdata_header
|
|
ldr r1, _08055D58 @ =gMapHeader
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055D54: .4byte gSaveBlock1Ptr
|
|
_08055D58: .4byte gMapHeader
|
|
thumb_func_end SetCurrentMapLayout
|
|
|
|
thumb_func_start sub_8055D5C
|
|
sub_8055D5C: @ 8055D5C
|
|
ldr r2, _08055D68 @ =gUnknown_2031DBC
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_08055D68: .4byte gUnknown_2031DBC
|
|
thumb_func_end sub_8055D5C
|
|
|
|
thumb_func_start sub_8055D6C
|
|
sub_8055D6C: @ 8055D6C
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
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
|
|
ldrh r0, [r0, 0x10]
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8055D6C
|
|
|
|
thumb_func_start sub_8055D8C
|
|
sub_8055D8C: @ 8055D8C
|
|
push {lr}
|
|
ldr r0, _08055DA0 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
adds r0, 0x4
|
|
bl sub_8055D6C
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08055DA0: .4byte gSaveBlock1Ptr
|
|
thumb_func_end sub_8055D8C
|
|
|
|
thumb_func_start sub_8055DA4
|
|
sub_8055DA4: @ 8055DA4
|
|
push {lr}
|
|
ldr r0, _08055DB4 @ =gUnknown_2031DBC
|
|
bl sub_8055D6C
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08055DB4: .4byte gUnknown_2031DBC
|
|
thumb_func_end sub_8055DA4
|
|
|
|
thumb_func_start sub_8055DB8
|
|
sub_8055DB8: @ 8055DB8
|
|
push {lr}
|
|
bl ResetMapMusic
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8055DB8
|
|
|
|
thumb_func_start Overworld_PlaySpecialMapMusic
|
|
Overworld_PlaySpecialMapMusic: @ 8055DC4
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
ldr r0, _08055DD8 @ =gUnknown_2031DD8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _08055DDC
|
|
bl StopMapMusic
|
|
b _08055E6C
|
|
.align 2, 0
|
|
_08055DD8: .4byte gUnknown_2031DD8
|
|
_08055DDC:
|
|
cmp r0, 0x2
|
|
beq _08055E6C
|
|
ldr r0, _08055E14 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0, 0x4]
|
|
ldr r0, _08055E18 @ =0x00004f01
|
|
cmp r1, r0
|
|
bne _08055E24
|
|
mov r4, sp
|
|
adds r4, 0x2
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl PlayerGetDestCoords
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
subs r0, 0x7
|
|
cmp r0, 0xA
|
|
bgt _08055E24
|
|
ldr r0, _08055E1C @ =gMPlayInfo_BGM
|
|
ldr r1, [r0]
|
|
ldr r0, _08055E20 @ =gSong_86E6B0C
|
|
cmp r1, r0
|
|
bne _08055E24
|
|
movs r0, 0x4
|
|
bl FadeInBGM
|
|
b _08055E6C
|
|
.align 2, 0
|
|
_08055E14: .4byte gSaveBlock1Ptr
|
|
_08055E18: .4byte 0x00004f01
|
|
_08055E1C: .4byte gMPlayInfo_BGM
|
|
_08055E20: .4byte gSong_86E6B0C
|
|
_08055E24:
|
|
bl sub_8055D8C
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r0, _08055E3C @ =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x2C]
|
|
cmp r0, 0
|
|
beq _08055E40
|
|
adds r4, r0, 0
|
|
b _08055E5A
|
|
.align 2, 0
|
|
_08055E3C: .4byte gSaveBlock1Ptr
|
|
_08055E40:
|
|
movs r0, 0x8
|
|
bl TestPlayerAvatarFlags
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08055E5A
|
|
ldr r5, _08055E74 @ =0x00000131 @ BGM_FRLG_SURF
|
|
adds r0, r5, 0
|
|
bl sub_8056124
|
|
cmp r0, 0
|
|
beq _08055E5A
|
|
adds r4, r5, 0
|
|
_08055E5A:
|
|
bl GetCurrentMapMusic
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r4, r0
|
|
beq _08055E6C
|
|
adds r0, r4, 0
|
|
bl PlayNewMapMusic
|
|
_08055E6C:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055E74: .4byte 0x00000131
|
|
thumb_func_end Overworld_PlaySpecialMapMusic
|
|
|
|
thumb_func_start Overworld_SetSavedMusic
|
|
Overworld_SetSavedMusic: @ 8055E78
|
|
ldr r1, _08055E80 @ =gSaveBlock1Ptr
|
|
ldr r1, [r1]
|
|
strh r0, [r1, 0x2C]
|
|
bx lr
|
|
.align 2, 0
|
|
_08055E80: .4byte gSaveBlock1Ptr
|
|
thumb_func_end Overworld_SetSavedMusic
|
|
|
|
thumb_func_start sav1_reset_battle_music_maybe
|
|
sav1_reset_battle_music_maybe: @ 8055E84
|
|
ldr r0, _08055E90 @ =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
strh r0, [r1, 0x2C]
|
|
bx lr
|
|
.align 2, 0
|
|
_08055E90: .4byte gSaveBlock1Ptr
|
|
thumb_func_end sav1_reset_battle_music_maybe
|
|
|
|
thumb_func_start sub_8055E94
|
|
sub_8055E94: @ 8055E94
|
|
push {r4-r6,lr}
|
|
ldr r0, _08055EA4 @ =gUnknown_2031DD8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _08055EA8
|
|
bl StopMapMusic
|
|
b _08055F14
|
|
.align 2, 0
|
|
_08055EA4: .4byte gUnknown_2031DD8
|
|
_08055EA8:
|
|
cmp r0, 0x2
|
|
beq _08055F14
|
|
ldr r0, _08055F04 @ =0x00004001
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08055F14
|
|
bl sub_8055DA4
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
bl GetCurrentMapMusic
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r5, _08055F08 @ =0x00000131 @ BGM_FRLG_SURF
|
|
cmp r6, r5
|
|
beq _08055F14
|
|
movs r0, 0x8
|
|
bl TestPlayerAvatarFlags
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08055EE8
|
|
adds r0, r5, 0
|
|
bl sub_8056124
|
|
cmp r0, 0
|
|
beq _08055EE8
|
|
adds r4, r5, 0
|
|
_08055EE8:
|
|
cmp r4, r6
|
|
beq _08055F14
|
|
movs r0, 0x6
|
|
bl TestPlayerAvatarFlags
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08055F0C
|
|
adds r0, r4, 0
|
|
movs r1, 0x4
|
|
movs r2, 0x4
|
|
bl FadeOutAndFadeInNewMapMusic
|
|
b _08055F14
|
|
.align 2, 0
|
|
_08055F04: .4byte 0x00004001
|
|
_08055F08: .4byte 0x00000131
|
|
_08055F0C:
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl FadeOutAndPlayNewMapMusic
|
|
_08055F14:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8055E94
|
|
|
|
thumb_func_start Overworld_ChangeMusicToDefault
|
|
Overworld_ChangeMusicToDefault: @ 8055F1C
|
|
push {r4,lr}
|
|
bl GetCurrentMapMusic
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
bl sub_8055D8C
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r4, r0
|
|
beq _08055F42
|
|
bl sub_8055D8C
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x8
|
|
bl FadeOutAndPlayNewMapMusic
|
|
_08055F42:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end Overworld_ChangeMusicToDefault
|
|
|
|
thumb_func_start Overworld_ChangeMusicTo
|
|
Overworld_ChangeMusicTo: @ 8055F48
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
bl GetCurrentMapMusic
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, r4
|
|
beq _08055F62
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl FadeOutAndPlayNewMapMusic
|
|
_08055F62:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end Overworld_ChangeMusicTo
|
|
|
|
thumb_func_start GetMapMusicFadeoutSpeed
|
|
GetMapMusicFadeoutSpeed: @ 8055F68
|
|
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 _08055F80
|
|
movs r0, 0x4
|
|
b _08055F82
|
|
_08055F80:
|
|
movs r0, 0x2
|
|
_08055F82:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetMapMusicFadeoutSpeed
|
|
|
|
thumb_func_start sub_8055F88
|
|
sub_8055F88: @ 8055F88
|
|
push {r4,lr}
|
|
bl sub_8055DA4
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r0, _08055FC0 @ =0x00004001
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08055FB8
|
|
bl GetCurrentMapMusic
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r4, r0
|
|
beq _08055FB8
|
|
bl GetMapMusicFadeoutSpeed
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl FadeOutMapMusic
|
|
_08055FB8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055FC0: .4byte 0x00004001
|
|
thumb_func_end sub_8055F88
|
|
|
|
thumb_func_start sub_8055FC4
|
|
sub_8055FC4: @ 8055FC4
|
|
push {lr}
|
|
bl IsNotWaitingForBGMStop
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8055FC4
|
|
|
|
thumb_func_start Overworld_FadeOutMapMusic
|
|
Overworld_FadeOutMapMusic: @ 8055FD4
|
|
push {lr}
|
|
movs r0, 0x4
|
|
bl FadeOutMapMusic
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end Overworld_FadeOutMapMusic
|
|
|
|
thumb_func_start sub_8055FE0
|
|
sub_8055FE0: @ 8055FE0
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
mov r4, sp
|
|
adds r4, 0x2
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl PlayerGetDestCoords
|
|
ldr r0, _0805604C @ =gUnknown_2031DDC
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _08056014
|
|
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_IsSurfable
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805606A
|
|
_08056014:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x58
|
|
bl __umodsi3
|
|
adds r0, 0xD4
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1E
|
|
bl __umodsi3
|
|
adds r0, 0x32
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _08056050 @ =gUnknown_2031DD8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _08056054
|
|
bl StopMapMusic
|
|
b _0805606A
|
|
.align 2, 0
|
|
_0805604C: .4byte gUnknown_2031DDC
|
|
_08056050: .4byte gUnknown_2031DD8
|
|
_08056054:
|
|
cmp r0, 0x2
|
|
beq _0805606A
|
|
ldr r0, _08056074 @ =gUnknown_2031DDA
|
|
ldrh r0, [r0]
|
|
lsls r1, r4, 24
|
|
asrs r1, 24
|
|
lsls r2, 24
|
|
asrs r2, 24
|
|
movs r3, 0x1
|
|
bl PlayCry2
|
|
_0805606A:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08056074: .4byte gUnknown_2031DDA
|
|
thumb_func_end sub_8055FE0
|
|
|
|
thumb_func_start sub_8056078
|
|
sub_8056078: @ 8056078
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0x4
|
|
bhi _08056106
|
|
lsls r0, 2
|
|
ldr r1, _08056090 @ =_08056094
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08056090: .4byte _08056094
|
|
.align 2, 0
|
|
_08056094:
|
|
.4byte _080560A8
|
|
.4byte _080560BC
|
|
.4byte _080560D8
|
|
.4byte _080560F2
|
|
.4byte _08056106
|
|
_080560A8:
|
|
ldr r0, _080560B4 @ =gUnknown_2031DDA
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _080560B8
|
|
movs r0, 0x4
|
|
b _08056104
|
|
.align 2, 0
|
|
_080560B4: .4byte gUnknown_2031DDA
|
|
_080560B8:
|
|
movs r0, 0x1
|
|
b _08056104
|
|
_080560BC:
|
|
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, [r5]
|
|
movs r0, 0x3
|
|
b _08056104
|
|
_080560D8:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r4, 0x96
|
|
lsls r4, 3
|
|
adds r1, r4, 0
|
|
bl __umodsi3
|
|
adds r0, r4
|
|
strh r0, [r5]
|
|
movs r0, 0x3
|
|
b _08056104
|
|
_080560F2:
|
|
ldrh r0, [r5]
|
|
subs r0, 0x1
|
|
strh r0, [r5]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08056106
|
|
bl sub_8055FE0
|
|
movs r0, 0x2
|
|
_08056104:
|
|
strh r0, [r6]
|
|
_08056106:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8056078
|
|
|
|
thumb_func_start sub_805610C
|
|
sub_805610C: @ 805610C
|
|
push {lr}
|
|
ldr r0, _0805611C @ =gUnknown_2031DDC
|
|
bl GetLocalWildMon
|
|
ldr r1, _08056120 @ =gUnknown_2031DDA
|
|
strh r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805611C: .4byte gUnknown_2031DDC
|
|
_08056120: .4byte gUnknown_2031DDA
|
|
thumb_func_end sub_805610C
|
|
|
|
thumb_func_start sub_8056124
|
|
sub_8056124: @ 8056124
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
movs r0, 0x8D
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
beq _08056138
|
|
adds r0, 0x17
|
|
cmp r1, r0
|
|
bne _08056150
|
|
_08056138:
|
|
ldr r0, _0805614C @ =gMapHeader
|
|
ldrb r0, [r0, 0x14]
|
|
cmp r0, 0x84
|
|
beq _08056148
|
|
cmp r0, 0x7B
|
|
beq _08056148
|
|
cmp r0, 0x61
|
|
bne _08056150
|
|
_08056148:
|
|
movs r0, 0
|
|
b _08056152
|
|
.align 2, 0
|
|
_0805614C: .4byte gMapHeader
|
|
_08056150:
|
|
movs r0, 0x1
|
|
_08056152:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8056124
|
|
|
|
thumb_func_start get_map_light_level_by_bank_and_number
|
|
get_map_light_level_by_bank_and_number: @ 8056158
|
|
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
|
|
get_map_light_level_from_warp: @ 8056170
|
|
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 GetCurrentMapType
|
|
GetCurrentMapType: @ 8056188
|
|
push {lr}
|
|
ldr r0, _0805619C @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
adds r0, 0x4
|
|
bl get_map_light_level_from_warp
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805619C: .4byte gSaveBlock1Ptr
|
|
thumb_func_end GetCurrentMapType
|
|
|
|
thumb_func_start get_map_light_from_warp0
|
|
get_map_light_from_warp0: @ 80561A0
|
|
push {lr}
|
|
ldr r0, _080561B0 @ =gUnknown_2031DB4
|
|
bl get_map_light_level_from_warp
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080561B0: .4byte gUnknown_2031DB4
|
|
thumb_func_end get_map_light_from_warp0
|
|
|
|
thumb_func_start sub_80561B4
|
|
sub_80561B4: @ 80561B4
|
|
push {lr}
|
|
ldr r1, _080561D4 @ =gUnknown_2031DB4
|
|
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
|
|
ldrb r0, [r0, 0x14]
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080561D4: .4byte gUnknown_2031DB4
|
|
thumb_func_end sub_80561B4
|
|
|
|
thumb_func_start is_light_level_1_2_3_5_or_6
|
|
is_light_level_1_2_3_5_or_6: @ 80561D8
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
beq _080561F2
|
|
cmp r0, 0x1
|
|
beq _080561F2
|
|
cmp r0, 0x5
|
|
beq _080561F2
|
|
cmp r0, 0x2
|
|
beq _080561F2
|
|
cmp r0, 0x6
|
|
bne _080561F6
|
|
_080561F2:
|
|
movs r0, 0x1
|
|
b _080561F8
|
|
_080561F6:
|
|
movs r0, 0
|
|
_080561F8:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end is_light_level_1_2_3_5_or_6
|
|
|
|
thumb_func_start Overworld_MapTypeAllowsTeleportAndFly
|
|
Overworld_MapTypeAllowsTeleportAndFly: @ 80561FC
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
beq _08056212
|
|
cmp r0, 0x1
|
|
beq _08056212
|
|
cmp r0, 0x6
|
|
beq _08056212
|
|
cmp r0, 0x2
|
|
bne _08056216
|
|
_08056212:
|
|
movs r0, 0x1
|
|
b _08056218
|
|
_08056216:
|
|
movs r0, 0
|
|
_08056218:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end Overworld_MapTypeAllowsTeleportAndFly
|
|
|
|
thumb_func_start is_light_level_8_or_9
|
|
is_light_level_8_or_9: @ 805621C
|
|
push {lr}
|
|
lsls r0, 24
|
|
movs r1, 0xF8
|
|
lsls r1, 24
|
|
adds r0, r1
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bls _08056230
|
|
movs r0, 0
|
|
b _08056232
|
|
_08056230:
|
|
movs r0, 0x1
|
|
_08056232:
|
|
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: @ 8056238
|
|
push {lr}
|
|
ldr r0, _0805625C @ =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
|
|
.align 2, 0
|
|
_0805625C: .4byte gSaveBlock1Ptr
|
|
thumb_func_end sav1_saved_warp2_map_get_name
|
|
|
|
thumb_func_start GetCurrentRegionMapSectionId
|
|
GetCurrentRegionMapSectionId: @ 8056260
|
|
push {lr}
|
|
ldr r0, _08056284 @ =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
|
|
.align 2, 0
|
|
_08056284: .4byte gSaveBlock1Ptr
|
|
thumb_func_end GetCurrentRegionMapSectionId
|
|
|
|
thumb_func_start sav1_map_get_battletype
|
|
sav1_map_get_battletype: @ 8056288
|
|
push {lr}
|
|
ldr r0, _080562AC @ =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
|
|
.align 2, 0
|
|
_080562AC: .4byte gSaveBlock1Ptr
|
|
thumb_func_end sav1_map_get_battletype
|
|
|
|
thumb_func_start sub_80562B0
|
|
sub_80562B0: @ 80562B0
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
bl MoveSaveBlocks_ResetHeap_
|
|
bl sub_8056E80
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
ldr r1, _08056344 @ =gUnknown_826D320
|
|
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, _08056348 @ =gUnknown_3005018
|
|
mov r8, r0
|
|
movs r4, 0x80
|
|
lsls r4, 4
|
|
adds r0, r4, 0
|
|
bl AllocZeroed
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
ldr r6, _0805634C @ =gUnknown_3005014
|
|
adds r0, r4, 0
|
|
bl AllocZeroed
|
|
str r0, [r6]
|
|
ldr r5, _08056350 @ =gUnknown_300501C
|
|
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 InitStandardTextBoxWindows
|
|
bl ResetBg0
|
|
bl sub_8069348
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08056344: .4byte gUnknown_826D320
|
|
_08056348: .4byte gUnknown_3005018
|
|
_0805634C: .4byte gUnknown_3005014
|
|
_08056350: .4byte gUnknown_300501C
|
|
thumb_func_end sub_80562B0
|
|
|
|
thumb_func_start sub_8056354
|
|
sub_8056354: @ 8056354
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
ldr r1, _080563E0 @ =gUnknown_826D320
|
|
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, _080563E4 @ =gUnknown_3005018
|
|
mov r8, r0
|
|
movs r4, 0x80
|
|
lsls r4, 4
|
|
adds r0, r4, 0
|
|
bl AllocZeroed
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
ldr r6, _080563E8 @ =gUnknown_3005014
|
|
adds r0, r4, 0
|
|
bl AllocZeroed
|
|
str r0, [r6]
|
|
ldr r5, _080563EC @ =gUnknown_300501C
|
|
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 InitStandardTextBoxWindows
|
|
bl ResetBg0
|
|
bl sub_8069348
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080563E0: .4byte gUnknown_826D320
|
|
_080563E4: .4byte gUnknown_3005018
|
|
_080563E8: .4byte gUnknown_3005014
|
|
_080563EC: .4byte gUnknown_300501C
|
|
thumb_func_end sub_8056354
|
|
|
|
thumb_func_start CleanupOverworldWindowsAndTilemaps
|
|
CleanupOverworldWindowsAndTilemaps: @ 80563F0
|
|
push {lr}
|
|
bl FreeAllOverworldWindowBuffers
|
|
ldr r0, _08056414 @ =gUnknown_300501C
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldr r0, _08056418 @ =gUnknown_3005014
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldr r0, _0805641C @ =gUnknown_3005018
|
|
ldr r0, [r0]
|
|
bl Free
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08056414: .4byte gUnknown_300501C
|
|
_08056418: .4byte gUnknown_3005014
|
|
_0805641C: .4byte gUnknown_3005018
|
|
thumb_func_end CleanupOverworldWindowsAndTilemaps
|
|
|
|
thumb_func_start sub_8056420
|
|
sub_8056420: @ 8056420
|
|
push {lr}
|
|
bl ResetSafariZoneFlag
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8056420
|
|
|
|
thumb_func_start IsUpdateLinkStateCBActive
|
|
IsUpdateLinkStateCBActive: @ 805642C
|
|
push {lr}
|
|
ldr r0, _0805643C @ =gMain
|
|
ldr r1, [r0]
|
|
ldr r0, _08056440 @ =c1_link_related
|
|
cmp r1, r0
|
|
beq _08056444
|
|
movs r0, 0
|
|
b _08056446
|
|
.align 2, 0
|
|
_0805643C: .4byte gMain
|
|
_08056440: .4byte c1_link_related
|
|
_08056444:
|
|
movs r0, 0x1
|
|
_08056446:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end IsUpdateLinkStateCBActive
|
|
|
|
thumb_func_start sub_805644C
|
|
sub_805644C: @ 805644C
|
|
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_8112B3C
|
|
bl sub_805BEB8
|
|
mov r6, sp
|
|
mov r0, sp
|
|
bl sub_806C888
|
|
mov r0, sp
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl FieldGetPlayerInput
|
|
mov r0, sp
|
|
bl sub_806CD30
|
|
bl ScriptContext2_IsEnabled
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080564BA
|
|
mov r0, sp
|
|
bl sub_806CAC8
|
|
cmp r0, 0x1
|
|
bne _080564B0
|
|
ldr r0, _080564A8 @ =gUnknown_3005E88
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _0805649E
|
|
ldr r0, _080564AC @ =gUnknown_3005078
|
|
bl sub_81127F8
|
|
_0805649E:
|
|
bl ScriptContext2_Enable
|
|
bl sub_80982EC
|
|
b _080564BA
|
|
.align 2, 0
|
|
_080564A8: .4byte gUnknown_3005E88
|
|
_080564AC: .4byte gUnknown_3005078
|
|
_080564B0:
|
|
ldrb r0, [r6, 0x2]
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl sub_805B3E0
|
|
_080564BA:
|
|
bl sub_811092C
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805644C
|
|
|
|
thumb_func_start sub_80564C8
|
|
sub_80564C8: @ 80564C8
|
|
push {lr}
|
|
sub sp, 0x4
|
|
bl sub_8112B3C
|
|
bl sub_805BEB8
|
|
bl sub_8111C68
|
|
mov r0, sp
|
|
bl sub_806C888
|
|
ldr r0, _08056508 @ =gUnknown_3005E90
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
mov r0, sp
|
|
bl sub_806CD30
|
|
bl ScriptContext2_IsEnabled
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08056512
|
|
mov r0, sp
|
|
bl sub_806CAC8
|
|
cmp r0, 0x1
|
|
bne _0805650C
|
|
bl ScriptContext2_Enable
|
|
bl sub_80982EC
|
|
b _08056522
|
|
.align 2, 0
|
|
_08056508: .4byte gUnknown_3005E90
|
|
_0805650C:
|
|
bl sub_811092C
|
|
b _08056522
|
|
_08056512:
|
|
bl sub_8111CD0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08056522
|
|
bl sub_811092C
|
|
_08056522:
|
|
ldr r0, _08056530 @ =gUnknown_3005E90
|
|
bl sub_806C888
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08056530: .4byte gUnknown_3005E90
|
|
thumb_func_end sub_80564C8
|
|
|
|
thumb_func_start sub_8056534
|
|
sub_8056534: @ 8056534
|
|
push {r4,lr}
|
|
ldr r4, _0805655C @ =gMain
|
|
ldr r1, [r4, 0x4]
|
|
ldr r0, _08056560 @ =sub_80565B4
|
|
cmp r1, r0
|
|
bne _08056570
|
|
bl sub_8112CAC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08056554
|
|
ldr r0, _08056564 @ =gUnknown_203ADFA
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _08056568
|
|
_08056554:
|
|
bl sub_80564C8
|
|
b _08056570
|
|
.align 2, 0
|
|
_0805655C: .4byte gMain
|
|
_08056560: .4byte sub_80565B4
|
|
_08056564: .4byte gUnknown_203ADFA
|
|
_08056568:
|
|
ldrh r0, [r4, 0x2E]
|
|
ldrh r1, [r4, 0x2C]
|
|
bl sub_805644C
|
|
_08056570:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8056534
|
|
|
|
thumb_func_start sub_8056578
|
|
sub_8056578: @ 8056578
|
|
push {lr}
|
|
bl ScriptContext2_RunScript
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl CameraUpdate
|
|
bl sub_8115798
|
|
bl UpdateCameraPanning
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
bl sub_806FFBC
|
|
bl DoScheduledBgTilemapCopiesToVram
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8056578
|
|
|
|
thumb_func_start CB2_OverworldBasic
|
|
CB2_OverworldBasic: @ 80565A8
|
|
push {lr}
|
|
bl sub_8056578
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end CB2_OverworldBasic
|
|
|
|
thumb_func_start sub_80565B4
|
|
sub_80565B4: @ 80565B4
|
|
push {r4,lr}
|
|
ldr r0, _080565DC @ =gPaletteFade
|
|
ldrb r0, [r0, 0x7]
|
|
lsrs r0, 7
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
beq _080565C8
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
_080565C8:
|
|
bl sub_8056578
|
|
cmp r4, 0
|
|
beq _080565D4
|
|
bl SetFieldVBlankCallback
|
|
_080565D4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080565DC: .4byte gPaletteFade
|
|
thumb_func_end sub_80565B4
|
|
|
|
thumb_func_start sub_80565E0
|
|
sub_80565E0: @ 80565E0
|
|
ldr r1, _080565E8 @ =gMain
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080565E8: .4byte gMain
|
|
thumb_func_end sub_80565E0
|
|
|
|
thumb_func_start map_post_load_hook_exec
|
|
map_post_load_hook_exec: @ 80565EC
|
|
push {r4,lr}
|
|
ldr r4, _08056604 @ =gFieldCallback2
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _08056618
|
|
bl _call_via_r0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08056608
|
|
movs r0, 0
|
|
b _08056638
|
|
.align 2, 0
|
|
_08056604: .4byte gFieldCallback2
|
|
_08056608:
|
|
movs r1, 0
|
|
str r1, [r4]
|
|
ldr r0, _08056614 @ =gFieldCallback
|
|
str r1, [r0]
|
|
b _08056636
|
|
.align 2, 0
|
|
_08056614: .4byte gFieldCallback
|
|
_08056618:
|
|
ldr r0, _08056628 @ =gFieldCallback
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0805662C
|
|
bl _call_via_r0
|
|
b _08056630
|
|
.align 2, 0
|
|
_08056628: .4byte gFieldCallback
|
|
_0805662C:
|
|
bl sub_807DF64
|
|
_08056630:
|
|
ldr r1, _08056640 @ =gFieldCallback
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
_08056636:
|
|
movs r0, 0x1
|
|
_08056638:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08056640: .4byte gFieldCallback
|
|
thumb_func_end map_post_load_hook_exec
|
|
|
|
thumb_func_start CB2_NewGame
|
|
CB2_NewGame: @ 8056644
|
|
push {lr}
|
|
bl sub_80569BC
|
|
bl StopMapMusic
|
|
bl sub_8056420
|
|
bl sub_8054A60
|
|
bl ResetInitialPlayerAvatarState
|
|
bl PlayTimeCounter_Start
|
|
bl ScriptContext1_Init
|
|
bl ScriptContext2_Disable
|
|
ldr r1, _0805668C @ =gFieldCallback
|
|
ldr r0, _08056690 @ =sub_807DF7C
|
|
str r0, [r1]
|
|
ldr r1, _08056694 @ =gFieldCallback2
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r0, _08056698 @ =gMain + 0x438
|
|
bl do_load_map_stuff_loop
|
|
bl SetFieldVBlankCallback
|
|
ldr r0, _0805669C @ =sub_8056534
|
|
bl sub_80565E0
|
|
ldr r0, _080566A0 @ =sub_80565B4
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805668C: .4byte gFieldCallback
|
|
_08056690: .4byte sub_807DF7C
|
|
_08056694: .4byte gFieldCallback2
|
|
_08056698: .4byte gMain + 0x438
|
|
_0805669C: .4byte sub_8056534
|
|
_080566A0: .4byte sub_80565B4
|
|
thumb_func_end CB2_NewGame
|
|
|
|
thumb_func_start c2_whiteout
|
|
c2_whiteout: @ 80566A4
|
|
push {lr}
|
|
sub sp, 0x4
|
|
ldr r1, _08056708 @ =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 _08056702
|
|
bl sub_80569BC
|
|
bl StopMapMusic
|
|
bl sub_8056420
|
|
bl sub_8054BC8
|
|
movs r0, 0x2
|
|
bl sub_80559F8
|
|
bl ScriptContext1_Init
|
|
bl ScriptContext2_Disable
|
|
ldr r1, _0805670C @ =gFieldCallback
|
|
ldr r0, _08056710 @ =sub_807F5F0
|
|
str r0, [r1]
|
|
mov r1, sp
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
mov r0, sp
|
|
bl do_load_map_stuff_loop
|
|
bl sub_8112364
|
|
bl SetFieldVBlankCallback
|
|
ldr r0, _08056714 @ =sub_8056534
|
|
bl sub_80565E0
|
|
ldr r0, _08056718 @ =sub_80565B4
|
|
bl SetMainCallback2
|
|
_08056702:
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08056708: .4byte gMain
|
|
_0805670C: .4byte gFieldCallback
|
|
_08056710: .4byte sub_807F5F0
|
|
_08056714: .4byte sub_8056534
|
|
_08056718: .4byte sub_80565B4
|
|
thumb_func_end c2_whiteout
|
|
|
|
thumb_func_start CB2_LoadMap
|
|
CB2_LoadMap: @ 805671C
|
|
push {lr}
|
|
bl sub_80569BC
|
|
bl ScriptContext1_Init
|
|
bl ScriptContext2_Disable
|
|
movs r0, 0
|
|
bl sub_80565E0
|
|
ldr r0, _08056740 @ =sub_80C9BFC
|
|
bl SetMainCallback2
|
|
ldr r1, _08056744 @ =gMain
|
|
ldr r0, _08056748 @ =sub_805674C
|
|
str r0, [r1, 0x8]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08056740: .4byte sub_80C9BFC
|
|
_08056744: .4byte gMain
|
|
_08056748: .4byte sub_805674C
|
|
thumb_func_end CB2_LoadMap
|
|
|
|
thumb_func_start sub_805674C
|
|
sub_805674C: @ 805674C
|
|
push {lr}
|
|
ldr r0, _08056768 @ =gMain + 0x438
|
|
bl do_load_map_stuff_loop
|
|
bl sub_8113748
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0805676C
|
|
bl sub_81119C8
|
|
b _0805677C
|
|
.align 2, 0
|
|
_08056768: .4byte gMain + 0x438
|
|
_0805676C:
|
|
bl SetFieldVBlankCallback
|
|
ldr r0, _08056780 @ =sub_8056534
|
|
bl sub_80565E0
|
|
ldr r0, _08056784 @ =sub_80565B4
|
|
bl SetMainCallback2
|
|
_0805677C:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08056780: .4byte sub_8056534
|
|
_08056784: .4byte sub_80565B4
|
|
thumb_func_end sub_805674C
|
|
|
|
thumb_func_start sub_8056788
|
|
sub_8056788: @ 8056788
|
|
push {lr}
|
|
bl sub_80569BC
|
|
ldr r0, _080567A0 @ =gFieldCallback
|
|
ldr r1, _080567A4 @ =sub_807DE58
|
|
str r1, [r0]
|
|
ldr r0, _080567A8 @ =c2_80567AC
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080567A0: .4byte gFieldCallback
|
|
_080567A4: .4byte sub_807DE58
|
|
_080567A8: .4byte c2_80567AC
|
|
thumb_func_end sub_8056788
|
|
|
|
thumb_func_start c2_80567AC
|
|
c2_80567AC: @ 80567AC
|
|
push {lr}
|
|
ldr r0, _080567D0 @ =gMain + 0x438
|
|
bl sub_8056A5C
|
|
cmp r0, 0
|
|
beq _080567CC
|
|
bl SetFieldVBlankCallback
|
|
ldr r0, _080567D4 @ =c1_link_related
|
|
bl sub_80565E0
|
|
bl sub_80578D8
|
|
ldr r0, _080567D8 @ =sub_80565B4
|
|
bl SetMainCallback2
|
|
_080567CC:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080567D0: .4byte gMain + 0x438
|
|
_080567D4: .4byte c1_link_related
|
|
_080567D8: .4byte sub_80565B4
|
|
thumb_func_end c2_80567AC
|
|
|
|
thumb_func_start CB2_ReturnToField
|
|
CB2_ReturnToField: @ 80567DC
|
|
push {lr}
|
|
bl IsUpdateLinkStateCBActive
|
|
cmp r0, 0x1
|
|
bne _080567F4
|
|
ldr r0, _080567F0 @ =c2_exit_to_overworld_2_link
|
|
bl SetMainCallback2
|
|
b _080567FE
|
|
.align 2, 0
|
|
_080567F0: .4byte c2_exit_to_overworld_2_link
|
|
_080567F4:
|
|
bl sub_80569BC
|
|
ldr r0, _08056804 @ =c2_exit_to_overworld_2_local
|
|
bl SetMainCallback2
|
|
_080567FE:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08056804: .4byte c2_exit_to_overworld_2_local
|
|
thumb_func_end CB2_ReturnToField
|
|
|
|
thumb_func_start c2_exit_to_overworld_2_local
|
|
c2_exit_to_overworld_2_local: @ 8056808
|
|
push {lr}
|
|
ldr r0, _08056824 @ =gMain + 0x438
|
|
bl sub_8056CD8
|
|
cmp r0, 0
|
|
beq _0805681E
|
|
bl SetFieldVBlankCallback
|
|
ldr r0, _08056828 @ =sub_80565B4
|
|
bl SetMainCallback2
|
|
_0805681E:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08056824: .4byte gMain + 0x438
|
|
_08056828: .4byte sub_80565B4
|
|
thumb_func_end c2_exit_to_overworld_2_local
|
|
|
|
thumb_func_start c2_exit_to_overworld_2_link
|
|
c2_exit_to_overworld_2_link: @ 805682C
|
|
push {lr}
|
|
bl sub_8058244
|
|
cmp r0, 0
|
|
bne _08056846
|
|
ldr r0, _0805684C @ =gMain + 0x438
|
|
bl map_loading_iteration_2_link
|
|
cmp r0, 0
|
|
beq _08056846
|
|
ldr r0, _08056850 @ =sub_80565B4
|
|
bl SetMainCallback2
|
|
_08056846:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805684C: .4byte gMain + 0x438
|
|
_08056850: .4byte sub_80565B4
|
|
thumb_func_end c2_exit_to_overworld_2_link
|
|
|
|
thumb_func_start c2_8056854
|
|
c2_8056854: @ 8056854
|
|
push {lr}
|
|
bl sub_80569BC
|
|
bl StopMapMusic
|
|
ldr r0, _08056878 @ =c1_link_related
|
|
bl sub_80565E0
|
|
bl sub_80578D8
|
|
ldr r0, _0805687C @ =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08056888
|
|
ldr r1, _08056880 @ =gFieldCallback
|
|
ldr r0, _08056884 @ =sub_807DE58
|
|
b _0805688C
|
|
.align 2, 0
|
|
_08056878: .4byte c1_link_related
|
|
_0805687C: .4byte gWirelessCommType
|
|
_08056880: .4byte gFieldCallback
|
|
_08056884: .4byte sub_807DE58
|
|
_08056888:
|
|
ldr r1, _080568A0 @ =gFieldCallback
|
|
ldr r0, _080568A4 @ =sub_807DDD0
|
|
_0805688C:
|
|
str r0, [r1]
|
|
bl ScriptContext1_Init
|
|
bl ScriptContext2_Disable
|
|
bl CB2_ReturnToField
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080568A0: .4byte gFieldCallback
|
|
_080568A4: .4byte sub_807DDD0
|
|
thumb_func_end c2_8056854
|
|
|
|
thumb_func_start sub_80568A8
|
|
sub_80568A8: @ 80568A8
|
|
push {lr}
|
|
bl sub_80569BC
|
|
ldr r1, _080568BC @ =gFieldCallback2
|
|
ldr r0, _080568C0 @ =sub_807E3BC
|
|
str r0, [r1]
|
|
bl CB2_ReturnToField
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080568BC: .4byte gFieldCallback2
|
|
_080568C0: .4byte sub_807E3BC
|
|
thumb_func_end sub_80568A8
|
|
|
|
thumb_func_start sub_80568C4
|
|
sub_80568C4: @ 80568C4
|
|
push {lr}
|
|
bl sub_80569BC
|
|
ldr r1, _080568D8 @ =gFieldCallback
|
|
ldr r0, _080568DC @ =sub_807DD44
|
|
str r0, [r1]
|
|
bl CB2_ReturnToField
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080568D8: .4byte gFieldCallback
|
|
_080568DC: .4byte sub_807DD44
|
|
thumb_func_end sub_80568C4
|
|
|
|
thumb_func_start CB2_ReturnToFieldContinueScriptPlayMapMusic
|
|
CB2_ReturnToFieldContinueScriptPlayMapMusic: @ 80568E0
|
|
push {lr}
|
|
bl sub_80569BC
|
|
ldr r1, _080568F4 @ =gFieldCallback
|
|
ldr r0, _080568F8 @ =FieldCallback_ReturnToEventScript2
|
|
str r0, [r1]
|
|
bl CB2_ReturnToField
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080568F4: .4byte gFieldCallback
|
|
_080568F8: .4byte FieldCallback_ReturnToEventScript2
|
|
thumb_func_end CB2_ReturnToFieldContinueScriptPlayMapMusic
|
|
|
|
thumb_func_start CB2_Overworld
|
|
CB2_Overworld: @ 80568FC
|
|
push {lr}
|
|
bl sub_80569BC
|
|
ldr r1, _08056910 @ =gFieldCallback
|
|
ldr r0, _08056914 @ =sub_807DF7C
|
|
str r0, [r1]
|
|
bl CB2_ReturnToField
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08056910: .4byte gFieldCallback
|
|
_08056914: .4byte sub_807DF7C
|
|
thumb_func_end CB2_Overworld
|
|
|
|
thumb_func_start sub_8056918
|
|
sub_8056918: @ 8056918
|
|
push {lr}
|
|
ldr r0, _08056934 @ =gMapHeader
|
|
ldrb r1, [r0, 0x19]
|
|
movs r0, 0xFC
|
|
ands r0, r1
|
|
cmp r0, 0x4
|
|
bne _0805692C
|
|
movs r0, 0
|
|
bl sub_8098110
|
|
_0805692C:
|
|
bl sub_807DF7C
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08056934: .4byte gMapHeader
|
|
thumb_func_end sub_8056918
|
|
|
|
thumb_func_start CB2_ContinueSavedGame
|
|
CB2_ContinueSavedGame: @ 8056938
|
|
push {lr}
|
|
bl sub_80569BC
|
|
bl StopMapMusic
|
|
bl sub_8056420
|
|
bl set_current_map_header_from_sav1
|
|
bl sub_80550A8
|
|
bl UnfreezeMapObjects
|
|
bl sub_8054E40
|
|
bl sub_80589E8
|
|
bl PlayTimeCounter_Start
|
|
bl ScriptContext1_Init
|
|
bl ScriptContext2_Disable
|
|
ldr r1, _08056990 @ =gFieldCallback2
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r1, _08056994 @ =gUnknown_2031DE0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
bl sav2_x1_query_bit1
|
|
cmp r0, 0x1
|
|
bne _0805699C
|
|
bl sav2_x9_clear_bit1
|
|
bl warp1_set_to_sav1w
|
|
bl WarpIntoMap
|
|
ldr r0, _08056998 @ =CB2_LoadMap
|
|
bl SetMainCallback2
|
|
b _080569AC
|
|
.align 2, 0
|
|
_08056990: .4byte gFieldCallback2
|
|
_08056994: .4byte gUnknown_2031DE0
|
|
_08056998: .4byte CB2_LoadMap
|
|
_0805699C:
|
|
ldr r0, _080569B0 @ =gFieldCallback
|
|
ldr r1, _080569B4 @ =sub_8056918
|
|
str r1, [r0]
|
|
ldr r0, _080569B8 @ =sub_8056534
|
|
bl sub_80565E0
|
|
bl CB2_ReturnToField
|
|
_080569AC:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080569B0: .4byte gFieldCallback
|
|
_080569B4: .4byte sub_8056918
|
|
_080569B8: .4byte sub_8056534
|
|
thumb_func_end CB2_ContinueSavedGame
|
|
|
|
thumb_func_start sub_80569BC
|
|
sub_80569BC: @ 80569BC
|
|
push {lr}
|
|
bl sub_80CC87C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080569CE
|
|
bl CloseLink
|
|
_080569CE:
|
|
ldr r0, _080569E4 @ =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080569E8
|
|
movs r0, 0xC5
|
|
bl EnableInterrupts
|
|
movs r0, 0x2
|
|
bl DisableInterrupts
|
|
b _080569F4
|
|
.align 2, 0
|
|
_080569E4: .4byte gWirelessCommType
|
|
_080569E8:
|
|
movs r0, 0x2
|
|
bl DisableInterrupts
|
|
movs r0, 0x1
|
|
bl EnableInterrupts
|
|
_080569F4:
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
movs r0, 0
|
|
bl SetHBlankCallback
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80569BC
|
|
|
|
thumb_func_start SetFieldVBlankCallback
|
|
SetFieldVBlankCallback: @ 8056A04
|
|
push {lr}
|
|
ldr r0, _08056A10 @ =VBlankCB_Field
|
|
bl SetVBlankCallback
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08056A10: .4byte VBlankCB_Field
|
|
thumb_func_end SetFieldVBlankCallback
|
|
|
|
thumb_func_start VBlankCB_Field
|
|
VBlankCB_Field: @ 8056A14
|
|
push {lr}
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl ScanlineEffect_InitHBlankDmaTransfer
|
|
bl FieldUpdateBgTilemapScroll
|
|
bl TransferPlttBuffer
|
|
bl TransferTilesetAnimsBuffer
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end VBlankCB_Field
|
|
|
|
thumb_func_start sub_8056A34
|
|
sub_8056A34: @ 8056A34
|
|
push {lr}
|
|
bl sav1_get_flash_used_on_map
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _08056A52
|
|
bl sub_807F074
|
|
ldr r2, _08056A58 @ =gUnknown_826D330
|
|
ldr r0, [r2]
|
|
ldr r1, [r2, 0x4]
|
|
ldr r2, [r2, 0x8]
|
|
bl ScanlineEffect_SetParams
|
|
_08056A52:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08056A58: .4byte gUnknown_826D330
|
|
thumb_func_end sub_8056A34
|
|
|
|
thumb_func_start sub_8056A5C
|
|
sub_8056A5C: @ 8056A5C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xD
|
|
bls _08056A68
|
|
b _08056B6E
|
|
_08056A68:
|
|
lsls r0, 2
|
|
ldr r1, _08056A74 @ =_08056A78
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08056A74: .4byte _08056A78
|
|
.align 2, 0
|
|
_08056A78:
|
|
.4byte _08056AB0
|
|
.4byte _08056ABE
|
|
.4byte _08056AC6
|
|
.4byte _08056ACE
|
|
.4byte _08056AE4
|
|
.4byte _08056AEE
|
|
.4byte _08056AF4
|
|
.4byte _08056B04
|
|
.4byte _08056B14
|
|
.4byte _08056B30
|
|
.4byte _08056B36
|
|
.4byte _08056B3C
|
|
.4byte _08056B58
|
|
.4byte _08056B6A
|
|
_08056AB0:
|
|
bl sub_80562B0
|
|
bl ScriptContext1_Init
|
|
bl ScriptContext2_Disable
|
|
b _08056B62
|
|
_08056ABE:
|
|
movs r0, 0x1
|
|
bl sub_8055920
|
|
b _08056B62
|
|
_08056AC6:
|
|
movs r0, 0x1
|
|
bl sub_8057024
|
|
b _08056B62
|
|
_08056ACE:
|
|
bl sub_8057178
|
|
bl sub_8057074
|
|
bl sub_80571A8
|
|
bl sub_8057140
|
|
bl sub_812B35C
|
|
b _08056B62
|
|
_08056AE4:
|
|
bl sub_8056A34
|
|
bl sub_8056F1C
|
|
b _08056B62
|
|
_08056AEE:
|
|
bl move_tilemap_camera_to_upper_left_corner
|
|
b _08056B62
|
|
_08056AF4:
|
|
ldr r0, _08056B00 @ =gMapHeader
|
|
ldr r0, [r0]
|
|
bl copy_map_tileset1_to_vram
|
|
b _08056B62
|
|
.align 2, 0
|
|
_08056B00: .4byte gMapHeader
|
|
_08056B04:
|
|
ldr r0, _08056B10 @ =gMapHeader
|
|
ldr r0, [r0]
|
|
bl copy_map_tileset2_to_vram
|
|
b _08056B62
|
|
.align 2, 0
|
|
_08056B10: .4byte gMapHeader
|
|
_08056B14:
|
|
bl FreeTempTileDataBuffersIfPossible
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08056B6E
|
|
ldr r0, _08056B2C @ =gMapHeader
|
|
ldr r0, [r0]
|
|
bl apply_map_tileset1_tileset2_palette
|
|
b _08056B62
|
|
.align 2, 0
|
|
_08056B2C: .4byte gMapHeader
|
|
_08056B30:
|
|
bl DrawWholeMapView
|
|
b _08056B62
|
|
_08056B36:
|
|
bl cur_mapheader_run_tileset_funcs_after_some_cpuset
|
|
b _08056B62
|
|
_08056B3C:
|
|
ldr r0, _08056B54 @ =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08056B62
|
|
bl LoadWirelessStatusIndicatorSpriteGfx
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl CreateWirelessStatusIndicatorSprite
|
|
b _08056B62
|
|
.align 2, 0
|
|
_08056B54: .4byte gWirelessCommType
|
|
_08056B58:
|
|
bl map_post_load_hook_exec
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08056B6E
|
|
_08056B62:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _08056B6E
|
|
_08056B6A:
|
|
movs r0, 0x1
|
|
b _08056B70
|
|
_08056B6E:
|
|
movs r0, 0
|
|
_08056B70:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8056A5C
|
|
|
|
thumb_func_start sub_8056B78
|
|
sub_8056B78: @ 8056B78
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xE
|
|
bls _08056B86
|
|
b _08056CD0
|
|
_08056B86:
|
|
lsls r0, 2
|
|
ldr r1, _08056B90 @ =_08056B94
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08056B90: .4byte _08056B94
|
|
.align 2, 0
|
|
_08056B94:
|
|
.4byte _08056BD0
|
|
.4byte _08056BE0
|
|
.4byte _08056BE6
|
|
.4byte _08056BEE
|
|
.4byte _08056BFE
|
|
.4byte _08056C20
|
|
.4byte _08056C2A
|
|
.4byte _08056C30
|
|
.4byte _08056C40
|
|
.4byte _08056C50
|
|
.4byte _08056C6C
|
|
.4byte _08056C72
|
|
.4byte _08056C78
|
|
.4byte _08056CC0
|
|
.4byte _08056BFA
|
|
_08056BD0:
|
|
bl sub_80562B0
|
|
bl sub_80569BC
|
|
adds r0, r5, 0
|
|
bl sub_8055920
|
|
b _08056CCA
|
|
_08056BE0:
|
|
bl sub_8111F14
|
|
b _08056CCA
|
|
_08056BE6:
|
|
adds r0, r5, 0
|
|
bl sub_8057024
|
|
b _08056CCA
|
|
_08056BEE:
|
|
bl sub_8113748
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08056CCA
|
|
_08056BFA:
|
|
movs r0, 0x1
|
|
b _08056CD2
|
|
_08056BFE:
|
|
bl mli4_mapscripts_and_other
|
|
bl sub_8057114
|
|
ldr r0, _08056C1C @ =gUnknown_203ADFA
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _08056C16
|
|
bl sub_80CC534
|
|
bl sub_80CC59C
|
|
_08056C16:
|
|
bl sub_812B35C
|
|
b _08056CCA
|
|
.align 2, 0
|
|
_08056C1C: .4byte gUnknown_203ADFA
|
|
_08056C20:
|
|
bl sub_8056A34
|
|
bl sub_8056F1C
|
|
b _08056CCA
|
|
_08056C2A:
|
|
bl move_tilemap_camera_to_upper_left_corner
|
|
b _08056CCA
|
|
_08056C30:
|
|
ldr r0, _08056C3C @ =gMapHeader
|
|
ldr r0, [r0]
|
|
bl copy_map_tileset1_to_vram
|
|
b _08056CCA
|
|
.align 2, 0
|
|
_08056C3C: .4byte gMapHeader
|
|
_08056C40:
|
|
ldr r0, _08056C4C @ =gMapHeader
|
|
ldr r0, [r0]
|
|
bl copy_map_tileset2_to_vram
|
|
b _08056CCA
|
|
.align 2, 0
|
|
_08056C4C: .4byte gMapHeader
|
|
_08056C50:
|
|
bl FreeTempTileDataBuffersIfPossible
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08056CD0
|
|
ldr r0, _08056C68 @ =gMapHeader
|
|
ldr r0, [r0]
|
|
bl apply_map_tileset1_tileset2_palette
|
|
b _08056CCA
|
|
.align 2, 0
|
|
_08056C68: .4byte gMapHeader
|
|
_08056C6C:
|
|
bl DrawWholeMapView
|
|
b _08056CCA
|
|
_08056C72:
|
|
bl cur_mapheader_run_tileset_funcs_after_some_cpuset
|
|
b _08056CCA
|
|
_08056C78:
|
|
bl sub_80561B4
|
|
ldr r5, _08056CA4 @ =gMapHeader
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r5, 0x14]
|
|
cmp r0, r1
|
|
beq _08056CA8
|
|
ldrb r0, [r5, 0x14]
|
|
movs r1, 0x1
|
|
bl sub_80F8154
|
|
cmp r0, 0x1
|
|
bne _08056CA8
|
|
ldrb r0, [r5, 0x14]
|
|
bl sub_80F819C
|
|
ldrb r0, [r5, 0x14]
|
|
bl sub_80F8268
|
|
b _08056CCA
|
|
.align 2, 0
|
|
_08056CA4: .4byte gMapHeader
|
|
_08056CA8:
|
|
ldr r0, _08056CBC @ =gMapHeader
|
|
ldrb r1, [r0, 0x19]
|
|
movs r0, 0xFC
|
|
ands r0, r1
|
|
cmp r0, 0x4
|
|
bne _08056CCA
|
|
movs r0, 0
|
|
bl sub_8098110
|
|
b _08056CCA
|
|
.align 2, 0
|
|
_08056CBC: .4byte gMapHeader
|
|
_08056CC0:
|
|
bl map_post_load_hook_exec
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08056CD0
|
|
_08056CCA:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
_08056CD0:
|
|
movs r0, 0
|
|
_08056CD2:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8056B78
|
|
|
|
thumb_func_start sub_8056CD8
|
|
sub_8056CD8: @ 8056CD8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x4
|
|
bhi _08056D3C
|
|
lsls r0, 2
|
|
ldr r1, _08056CEC @ =_08056CF0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08056CEC: .4byte _08056CF0
|
|
.align 2, 0
|
|
_08056CF0:
|
|
.4byte _08056D04
|
|
.4byte _08056D30
|
|
.4byte _08056D1C
|
|
.4byte _08056D26
|
|
.4byte _08056D38
|
|
_08056D04:
|
|
bl sub_80562B0
|
|
bl sub_8111F14
|
|
movs r0, 0
|
|
bl sub_8057024
|
|
bl sub_8057100
|
|
bl sub_8057114
|
|
b _08056D30
|
|
_08056D1C:
|
|
bl sub_8056F08
|
|
bl sub_812B35C
|
|
b _08056D30
|
|
_08056D26:
|
|
bl map_post_load_hook_exec
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08056D3C
|
|
_08056D30:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _08056D3C
|
|
_08056D38:
|
|
movs r0, 0x1
|
|
b _08056D3E
|
|
_08056D3C:
|
|
movs r0, 0
|
|
_08056D3E:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8056CD8
|
|
|
|
thumb_func_start map_loading_iteration_2_link
|
|
map_loading_iteration_2_link: @ 8056D44
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xD
|
|
bls _08056D50
|
|
b _08056E54
|
|
_08056D50:
|
|
lsls r0, 2
|
|
ldr r1, _08056D5C @ =_08056D60
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08056D5C: .4byte _08056D60
|
|
.align 2, 0
|
|
_08056D60:
|
|
.4byte _08056D98
|
|
.4byte _08056DA2
|
|
.4byte _08056DAE
|
|
.4byte _08056DC0
|
|
.4byte _08056DCA
|
|
.4byte _08056DD0
|
|
.4byte _08056DE0
|
|
.4byte _08056DF0
|
|
.4byte _08056E0C
|
|
.4byte _08056E12
|
|
.4byte _08056E3E
|
|
.4byte _08056E18
|
|
.4byte _08056E34
|
|
.4byte _08056E46
|
|
_08056D98:
|
|
bl sub_80562B0
|
|
bl sub_80569BC
|
|
b _08056E3E
|
|
_08056DA2:
|
|
bl sub_8111F14
|
|
movs r0, 0x1
|
|
bl sub_8057024
|
|
b _08056E3E
|
|
_08056DAE:
|
|
bl sub_8057230
|
|
bl sub_8057100
|
|
bl sub_805715C
|
|
bl sub_812B35C
|
|
b _08056E3E
|
|
_08056DC0:
|
|
bl sub_8056A34
|
|
bl sub_8056F1C
|
|
b _08056E3E
|
|
_08056DCA:
|
|
bl move_tilemap_camera_to_upper_left_corner
|
|
b _08056E3E
|
|
_08056DD0:
|
|
ldr r0, _08056DDC @ =gMapHeader
|
|
ldr r0, [r0]
|
|
bl copy_map_tileset1_to_vram
|
|
b _08056E3E
|
|
.align 2, 0
|
|
_08056DDC: .4byte gMapHeader
|
|
_08056DE0:
|
|
ldr r0, _08056DEC @ =gMapHeader
|
|
ldr r0, [r0]
|
|
bl copy_map_tileset2_to_vram
|
|
b _08056E3E
|
|
.align 2, 0
|
|
_08056DEC: .4byte gMapHeader
|
|
_08056DF0:
|
|
bl FreeTempTileDataBuffersIfPossible
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08056E54
|
|
ldr r0, _08056E08 @ =gMapHeader
|
|
ldr r0, [r0]
|
|
bl apply_map_tileset1_tileset2_palette
|
|
b _08056E3E
|
|
.align 2, 0
|
|
_08056E08: .4byte gMapHeader
|
|
_08056E0C:
|
|
bl DrawWholeMapView
|
|
b _08056E3E
|
|
_08056E12:
|
|
bl cur_mapheader_run_tileset_funcs_after_some_cpuset
|
|
b _08056E3E
|
|
_08056E18:
|
|
ldr r0, _08056E30 @ =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08056E3E
|
|
bl LoadWirelessStatusIndicatorSpriteGfx
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl CreateWirelessStatusIndicatorSprite
|
|
b _08056E3E
|
|
.align 2, 0
|
|
_08056E30: .4byte gWirelessCommType
|
|
_08056E34:
|
|
bl map_post_load_hook_exec
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08056E54
|
|
_08056E3E:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _08056E54
|
|
_08056E46:
|
|
bl SetFieldVBlankCallback
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
movs r0, 0x1
|
|
b _08056E56
|
|
_08056E54:
|
|
movs r0, 0
|
|
_08056E56:
|
|
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: @ 8056E5C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
_08056E60:
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_8056B78
|
|
cmp r0, 0
|
|
beq _08056E60
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end do_load_map_stuff_loop
|
|
|
|
thumb_func_start MoveSaveBlocks_ResetHeap_
|
|
MoveSaveBlocks_ResetHeap_: @ 8056E74
|
|
push {lr}
|
|
bl MoveSaveBlocks_ResetHeap
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end MoveSaveBlocks_ResetHeap_
|
|
|
|
thumb_func_start sub_8056E80
|
|
sub_8056E80: @ 8056E80
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
bl ScanlineEffect_Stop
|
|
ldr r2, _08056EF8 @ =0x05000002
|
|
mov r1, sp
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r1, _08056EFC @ =0x040000d4
|
|
mov r0, sp
|
|
str r0, [r1]
|
|
str r2, [r1, 0x4]
|
|
ldr r0, _08056F00 @ =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, _08056F04 @ =0x81000800
|
|
movs r0, 0x81
|
|
lsls r0, 24
|
|
mov r12, r0
|
|
_08056EBE:
|
|
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 _08056EBE
|
|
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
|
|
.align 2, 0
|
|
_08056EF8: .4byte 0x05000002
|
|
_08056EFC: .4byte 0x040000d4
|
|
_08056F00: .4byte 0x810001ff
|
|
_08056F04: .4byte 0x81000800
|
|
thumb_func_end sub_8056E80
|
|
|
|
thumb_func_start sub_8056F08
|
|
sub_8056F08: @ 8056F08
|
|
push {lr}
|
|
bl sub_8056A34
|
|
bl sub_8056F1C
|
|
bl mapdata_load_assets_to_gpu_and_full_redraw
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8056F08
|
|
|
|
thumb_func_start sub_8056F1C
|
|
sub_8056F1C: @ 8056F1C
|
|
push {r4,lr}
|
|
bl ClearScheduledBgCopiesToVram
|
|
bl ResetTempTileDataBuffers
|
|
movs r0, 0x4C
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r1, _0805700C @ =0x00001f1f
|
|
movs r0, 0x48
|
|
bl SetGpuReg
|
|
ldr r1, _08057010 @ =0x00000101
|
|
movs r0, 0x4A
|
|
bl SetGpuReg
|
|
movs r0, 0x40
|
|
movs r1, 0xFF
|
|
bl SetGpuReg
|
|
movs r0, 0x44
|
|
movs r1, 0xFF
|
|
bl SetGpuReg
|
|
ldr r4, _08057014 @ =0x0000ffff
|
|
movs r0, 0x42
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x46
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
ldr r0, _08057018 @ =gBLDCNTTarget2BGFlags
|
|
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, _0805701C @ =0x0000070d
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0x1
|
|
bl ScheduleBgCopyTilemapToVram
|
|
movs r0, 0x2
|
|
bl ScheduleBgCopyTilemapToVram
|
|
movs r0, 0x3
|
|
bl ScheduleBgCopyTilemapToVram
|
|
ldr r1, _08057020 @ =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
|
|
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
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805700C: .4byte 0x00001f1f
|
|
_08057010: .4byte 0x00000101
|
|
_08057014: .4byte 0x0000ffff
|
|
_08057018: .4byte gBLDCNTTarget2BGFlags
|
|
_0805701C: .4byte 0x0000070d
|
|
_08057020: .4byte 0x00007060
|
|
thumb_func_end sub_8056F1C
|
|
|
|
thumb_func_start sub_8057024
|
|
sub_8057024: @ 8057024
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl ResetTasks
|
|
bl ResetSpriteData
|
|
bl ResetPaletteFade
|
|
bl ScanlineEffect_Clear
|
|
bl ResetAllPicSprites
|
|
bl ResetCameraUpdateInfo
|
|
bl InstallCameraPanAheadCallback
|
|
cmp r4, 0
|
|
bne _08057050
|
|
movs r0, 0
|
|
bl npc_paltag_set_load
|
|
b _08057056
|
|
_08057050:
|
|
movs r0, 0x1
|
|
bl npc_paltag_set_load
|
|
_08057056:
|
|
bl FieldEffectActiveListClear
|
|
bl sub_8079C08
|
|
bl sub_807B1B8
|
|
cmp r4, 0
|
|
bne _0805706A
|
|
bl sub_806E87C
|
|
_0805706A:
|
|
bl mapheader_run_script_with_tag_x5
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8057024
|
|
|
|
thumb_func_start sub_8057074
|
|
sub_8057074: @ 8057074
|
|
push {lr}
|
|
ldr r0, _08057094 @ =gUnknown_300506C
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _08057098 @ =gUnknown_3005068
|
|
strh r1, [r0]
|
|
bl sub_805DE74
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_805EC30
|
|
bl mapheader_run_first_tag4_script_list_match
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08057094: .4byte gUnknown_300506C
|
|
_08057098: .4byte gUnknown_3005068
|
|
thumb_func_end sub_8057074
|
|
|
|
thumb_func_start mli4_mapscripts_and_other
|
|
mli4_mapscripts_and_other: @ 805709C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
ldr r0, _080570F4 @ =gUnknown_300506C
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _080570F8 @ =gUnknown_3005068
|
|
strh r1, [r0]
|
|
bl sub_805DE74
|
|
mov r4, sp
|
|
adds r4, 0x2
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl GetCameraFocusCoords
|
|
bl sub_8055A6C
|
|
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, _080570FC @ =gSaveBlock2Ptr
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, 0x8]
|
|
bl InitPlayerAvatar
|
|
ldrb r0, [r5]
|
|
bl SetPlayerAvatarTransitionFlags
|
|
bl ResetInitialPlayerAvatarState
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_805EC30
|
|
bl mapheader_run_first_tag4_script_list_match
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080570F4: .4byte gUnknown_300506C
|
|
_080570F8: .4byte gUnknown_3005068
|
|
_080570FC: .4byte gSaveBlock2Ptr
|
|
thumb_func_end mli4_mapscripts_and_other
|
|
|
|
thumb_func_start sub_8057100
|
|
sub_8057100: @ 8057100
|
|
push {lr}
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_805EDF0
|
|
bl mapheader_run_script_with_tag_x7
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8057100
|
|
|
|
thumb_func_start sub_8057114
|
|
sub_8057114: @ 8057114
|
|
push {lr}
|
|
ldr r2, _08057138 @ =gMapObjects
|
|
ldr r3, _0805713C @ =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
|
|
.align 2, 0
|
|
_08057138: .4byte gMapObjects
|
|
_0805713C: .4byte gPlayerAvatar
|
|
thumb_func_end sub_8057114
|
|
|
|
thumb_func_start sub_8057140
|
|
sub_8057140: @ 8057140
|
|
push {lr}
|
|
ldr r0, _08057158 @ =gUnknown_300502C
|
|
ldrb r0, [r0]
|
|
bl sub_8058504
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl InitCameraUpdateCallback
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08057158: .4byte gUnknown_300502C
|
|
thumb_func_end sub_8057140
|
|
|
|
thumb_func_start sub_805715C
|
|
sub_805715C: @ 805715C
|
|
push {lr}
|
|
ldr r0, _08057174 @ =gUnknown_300502C
|
|
ldrb r0, [r0]
|
|
bl sub_8058504
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl InitCameraUpdateCallback
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08057174: .4byte gUnknown_300502C
|
|
thumb_func_end sub_805715C
|
|
|
|
thumb_func_start sub_8057178
|
|
sub_8057178: @ 8057178
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
mov r4, sp
|
|
adds r4, 0x2
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl GetCameraFocusCoords
|
|
mov r2, sp
|
|
ldr r0, _080571A4 @ =gUnknown_300502C
|
|
ldrb r1, [r0]
|
|
ldrh r0, [r2]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrh r1, [r4]
|
|
bl SetCameraFocusCoords
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080571A4: .4byte gUnknown_300502C
|
|
thumb_func_end sub_8057178
|
|
|
|
thumb_func_start sub_80571A8
|
|
sub_80571A8: @ 80571A8
|
|
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 GetCameraFocusCoords
|
|
mov r3, sp
|
|
mov r2, sp
|
|
ldr r0, _08057224 @ =gUnknown_300502C
|
|
ldrb r1, [r0]
|
|
ldrh r0, [r2]
|
|
subs r0, r1
|
|
strh r0, [r3]
|
|
movs r6, 0
|
|
ldr r0, _08057228 @ =gUnknown_3005030
|
|
mov r8, r4
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcs _08057212
|
|
ldr r7, _0805722C @ =gLinkPlayers
|
|
_080571D8:
|
|
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 SpawnLinkPlayerMapObject
|
|
ldrb r1, [r4]
|
|
adds r0, r5, 0
|
|
bl sub_8058878
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r0, _08057228 @ =gUnknown_3005030
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcc _080571D8
|
|
_08057212:
|
|
bl sub_80578EC
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08057224: .4byte gUnknown_300502C
|
|
_08057228: .4byte gUnknown_3005030
|
|
_0805722C: .4byte gLinkPlayers
|
|
thumb_func_end sub_80571A8
|
|
|
|
thumb_func_start sub_8057230
|
|
sub_8057230: @ 8057230
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
ldr r0, _08057264 @ =gUnknown_3005030
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcs _0805725E
|
|
ldr r5, _08057268 @ =gLinkPlayers
|
|
_0805723E:
|
|
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_8058878
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r0, _08057264 @ =gUnknown_3005030
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcc _0805723E
|
|
_0805725E:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08057264: .4byte gUnknown_3005030
|
|
_08057268: .4byte gLinkPlayers
|
|
thumb_func_end sub_8057230
|
|
|
|
thumb_func_start sub_805726C
|
|
sub_805726C: @ 805726C
|
|
push {lr}
|
|
bl sub_80569BC
|
|
ldr r1, _08057298 @ =gUnknown_2036E28
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
bl ScriptContext1_Init
|
|
bl ScriptContext2_Disable
|
|
movs r0, 0
|
|
bl sub_80565E0
|
|
ldr r0, _0805729C @ =sub_80C9BFC
|
|
bl SetMainCallback2
|
|
ldr r1, _080572A0 @ =gMain
|
|
ldr r0, _080572A4 @ =sub_80572D8
|
|
str r0, [r1, 0x8]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08057298: .4byte gUnknown_2036E28
|
|
_0805729C: .4byte sub_80C9BFC
|
|
_080572A0: .4byte gMain
|
|
_080572A4: .4byte sub_80572D8
|
|
thumb_func_end sub_805726C
|
|
|
|
thumb_func_start sub_80572A8
|
|
sub_80572A8: @ 80572A8
|
|
push {lr}
|
|
bl sub_80569BC
|
|
ldr r0, _080572D0 @ =gUnknown_2036E28
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
bl set_current_map_header_from_sav1
|
|
bl ScriptContext1_Init
|
|
bl ScriptContext2_Disable
|
|
movs r0, 0
|
|
bl sub_80565E0
|
|
ldr r0, _080572D4 @ =sub_80572D8
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080572D0: .4byte gUnknown_2036E28
|
|
_080572D4: .4byte sub_80572D8
|
|
thumb_func_end sub_80572A8
|
|
|
|
thumb_func_start sub_80572D8
|
|
sub_80572D8: @ 80572D8
|
|
push {lr}
|
|
ldr r0, _080572F4 @ =gMain + 0x438
|
|
bl sub_8057300
|
|
bl SetFieldVBlankCallback
|
|
ldr r0, _080572F8 @ =sub_8056534
|
|
bl sub_80565E0
|
|
ldr r0, _080572FC @ =sub_80565B4
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080572F4: .4byte gMain + 0x438
|
|
_080572F8: .4byte sub_8056534
|
|
_080572FC: .4byte sub_80565B4
|
|
thumb_func_end sub_80572D8
|
|
|
|
thumb_func_start sub_8057300
|
|
sub_8057300: @ 8057300
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
_08057304:
|
|
adds r0, r4, 0
|
|
bl sub_8057314
|
|
cmp r0, 0
|
|
beq _08057304
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8057300
|
|
|
|
thumb_func_start sub_8057314
|
|
sub_8057314: @ 8057314
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xA
|
|
bls _08057320
|
|
b _0805741A
|
|
_08057320:
|
|
lsls r0, 2
|
|
ldr r1, _0805732C @ =_08057330
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0805732C: .4byte _08057330
|
|
.align 2, 0
|
|
_08057330:
|
|
.4byte _0805735C
|
|
.4byte _080573A0
|
|
.4byte _080573A6
|
|
.4byte _080573AE
|
|
.4byte _080573B8
|
|
.4byte _080573C2
|
|
.4byte _080573C8
|
|
.4byte _080573D8
|
|
.4byte _080573E8
|
|
.4byte _08057404
|
|
.4byte _0805740A
|
|
_0805735C:
|
|
bl sub_80562B0
|
|
bl sub_80569BC
|
|
bl sub_8111F14
|
|
bl sub_81113E4
|
|
bl sub_8111438
|
|
bl sub_8110AC8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _08057390
|
|
ldr r1, _0805738C @ =gUnknown_2031DE0
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
bl sub_8055920
|
|
b _08057412
|
|
.align 2, 0
|
|
_0805738C: .4byte gUnknown_2031DE0
|
|
_08057390:
|
|
ldr r1, _0805739C @ =gUnknown_2031DE0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
bl sub_80559A8
|
|
b _08057412
|
|
.align 2, 0
|
|
_0805739C: .4byte gUnknown_2031DE0
|
|
_080573A0:
|
|
bl sub_8110FCC
|
|
b _08057412
|
|
_080573A6:
|
|
movs r0, 0
|
|
bl sub_8057024
|
|
b _08057412
|
|
_080573AE:
|
|
bl sub_8057100
|
|
bl sub_8057114
|
|
b _08057412
|
|
_080573B8:
|
|
bl sub_8056A34
|
|
bl sub_8056F1C
|
|
b _08057412
|
|
_080573C2:
|
|
bl move_tilemap_camera_to_upper_left_corner
|
|
b _08057412
|
|
_080573C8:
|
|
ldr r0, _080573D4 @ =gMapHeader
|
|
ldr r0, [r0]
|
|
bl copy_map_tileset1_to_vram
|
|
b _08057412
|
|
.align 2, 0
|
|
_080573D4: .4byte gMapHeader
|
|
_080573D8:
|
|
ldr r0, _080573E4 @ =gMapHeader
|
|
ldr r0, [r0]
|
|
bl copy_map_tileset2_to_vram
|
|
b _08057412
|
|
.align 2, 0
|
|
_080573E4: .4byte gMapHeader
|
|
_080573E8:
|
|
bl FreeTempTileDataBuffersIfPossible
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08057428
|
|
ldr r0, _08057400 @ =gMapHeader
|
|
ldr r0, [r0]
|
|
bl apply_map_tileset1_tileset2_palette
|
|
b _08057412
|
|
.align 2, 0
|
|
_08057400: .4byte gMapHeader
|
|
_08057404:
|
|
bl DrawWholeMapView
|
|
b _08057412
|
|
_0805740A:
|
|
bl cur_mapheader_run_tileset_funcs_after_some_cpuset
|
|
bl sub_815A540
|
|
_08057412:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _08057428
|
|
_0805741A:
|
|
bl map_post_load_hook_exec
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08057428
|
|
movs r0, 0x1
|
|
b _0805742A
|
|
_08057428:
|
|
movs r0, 0
|
|
_0805742A:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057314
|
|
|
|
thumb_func_start sub_8057430
|
|
sub_8057430: @ 8057430
|
|
push {lr}
|
|
bl sub_80569BC
|
|
bl StopMapMusic
|
|
ldr r1, _08057484 @ =gUnknown_2036E28
|
|
movs r0, 0x3
|
|
strb r0, [r1]
|
|
bl sub_8056420
|
|
bl set_current_map_header_from_sav1
|
|
bl sub_80550A8
|
|
bl UnfreezeMapObjects
|
|
bl sub_8054E40
|
|
bl sub_80589E8
|
|
bl PlayTimeCounter_Start
|
|
bl ScriptContext1_Init
|
|
ldr r1, _08057488 @ =gUnknown_2031DE0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
bl sav2_x1_query_bit1
|
|
cmp r0, 0x1
|
|
bne _08057490
|
|
bl sav2_x9_clear_bit1
|
|
bl warp1_set_to_sav1w
|
|
bl WarpIntoMap
|
|
ldr r0, _0805748C @ =CB2_LoadMap
|
|
bl SetMainCallback2
|
|
b _0805749A
|
|
.align 2, 0
|
|
_08057484: .4byte gUnknown_2036E28
|
|
_08057488: .4byte gUnknown_2031DE0
|
|
_0805748C: .4byte CB2_LoadMap
|
|
_08057490:
|
|
ldr r0, _080574A0 @ =sub_8056534
|
|
bl sub_80565E0
|
|
bl CB2_ReturnToField
|
|
_0805749A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080574A0: .4byte sub_8056534
|
|
thumb_func_end sub_8057430
|
|
|
|
thumb_func_start sub_80574A4
|
|
sub_80574A4: @ 80574A4
|
|
push {r4,lr}
|
|
ldr r0, _080574E8 @ =gPaletteFade
|
|
ldrb r0, [r0, 0x7]
|
|
lsrs r0, 7
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
beq _080574B8
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
_080574B8:
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl sub_805ACF0
|
|
bl UpdateCameraPanning
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
bl sub_806FFBC
|
|
bl DoScheduledBgTilemapCopiesToVram
|
|
cmp r4, 0
|
|
beq _080574E0
|
|
bl SetFieldVBlankCallback
|
|
_080574E0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080574E8: .4byte gPaletteFade
|
|
thumb_func_end sub_80574A4
|
|
|
|
thumb_func_start sub_80574EC
|
|
sub_80574EC: @ 80574EC
|
|
push {lr}
|
|
ldr r0, _08057500 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08057504
|
|
movs r0, 0
|
|
b _08057506
|
|
.align 2, 0
|
|
_08057500: .4byte gPaletteFade
|
|
_08057504:
|
|
movs r0, 0x1
|
|
_08057506:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80574EC
|
|
|
|
thumb_func_start sub_805750C
|
|
sub_805750C: @ 805750C
|
|
push {lr}
|
|
ldr r3, _08057520 @ =gUnknown_2031DE4
|
|
str r1, [r3]
|
|
ldr r1, _08057524 @ =gUnknown_2036E28
|
|
strb r2, [r1]
|
|
movs r1, 0
|
|
bl sub_8057528
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057520: .4byte gUnknown_2031DE4
|
|
_08057524: .4byte gUnknown_2036E28
|
|
thumb_func_end sub_805750C
|
|
|
|
thumb_func_start sub_8057528
|
|
sub_8057528: @ 8057528
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
ldrb r1, [r7]
|
|
cmp r1, 0x1
|
|
beq _08057560
|
|
cmp r1, 0x1
|
|
bgt _0805753C
|
|
cmp r1, 0
|
|
beq _08057546
|
|
b _08057648
|
|
_0805753C:
|
|
cmp r1, 0x2
|
|
beq _08057620
|
|
cmp r1, 0x3
|
|
beq _0805762C
|
|
b _08057648
|
|
_08057546:
|
|
ldr r0, _08057558 @ =gUnknown_2031DEA
|
|
strh r1, [r0]
|
|
ldr r0, _0805755C @ =gUnknown_2031DE8
|
|
strh r1, [r0]
|
|
_0805754E:
|
|
ldrb r0, [r7]
|
|
adds r0, 0x1
|
|
strb r0, [r7]
|
|
b _08057648
|
|
.align 2, 0
|
|
_08057558: .4byte gUnknown_2031DEA
|
|
_0805755C: .4byte gUnknown_2031DE8
|
|
_08057560:
|
|
ldr r3, _080575F0 @ =gUnknown_2031DEA
|
|
movs r0, 0
|
|
ldrsh r1, [r3, r0]
|
|
ldr r0, _080575F4 @ =gUnknown_2031DE4
|
|
ldr r4, [r0]
|
|
lsls r1, 3
|
|
adds r1, r4
|
|
ldrb r2, [r1, 0x2]
|
|
ldr r0, _080575F8 @ =0xffffff00
|
|
ands r0, r5
|
|
orrs r0, r2
|
|
ldrb r1, [r1, 0x4]
|
|
lsls r1, 8
|
|
ldr r2, _080575FC @ =0xffff00ff
|
|
ands r0, r2
|
|
adds r5, r0, 0
|
|
orrs r5, r1
|
|
movs r0, 0xFF
|
|
lsls r0, 16
|
|
orrs r5, r0
|
|
ldrh r0, [r3]
|
|
adds r0, 0x1
|
|
strh r0, [r3]
|
|
movs r2, 0
|
|
ldrsh r1, [r3, r2]
|
|
lsls r1, 3
|
|
adds r1, r4
|
|
ldrh r2, [r1]
|
|
ldr r0, _08057600 @ =0xffff0000
|
|
ands r0, r6
|
|
orrs r0, r2
|
|
ldrh r1, [r1, 0x2]
|
|
lsls r1, 16
|
|
ldr r2, _08057604 @ =0x0000ffff
|
|
ands r0, r2
|
|
adds r6, r0, 0
|
|
orrs r6, r1
|
|
ldr r0, _08057608 @ =gUnknown_2031DBC
|
|
str r5, [r0]
|
|
str r6, [r0, 0x4]
|
|
ldr r1, _0805760C @ =gUnknown_2031DE8
|
|
movs r2, 0
|
|
ldrsh r0, [r3, r2]
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
ldrh r0, [r0, 0x4]
|
|
strh r0, [r1]
|
|
bl WarpIntoMap
|
|
ldr r2, _08057610 @ =gPaletteFade
|
|
ldrb r0, [r2, 0x8]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x8]
|
|
bl ScriptContext1_Init
|
|
bl ScriptContext2_Disable
|
|
movs r0, 0
|
|
bl sub_80565E0
|
|
ldr r1, _08057614 @ =gFieldCallback2
|
|
ldr r0, _08057618 @ =sub_80574EC
|
|
str r0, [r1]
|
|
ldr r0, _0805761C @ =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
b _0805754E
|
|
.align 2, 0
|
|
_080575F0: .4byte gUnknown_2031DEA
|
|
_080575F4: .4byte gUnknown_2031DE4
|
|
_080575F8: .4byte 0xffffff00
|
|
_080575FC: .4byte 0xffff00ff
|
|
_08057600: .4byte 0xffff0000
|
|
_08057604: .4byte 0x0000ffff
|
|
_08057608: .4byte gUnknown_2031DBC
|
|
_0805760C: .4byte gUnknown_2031DE8
|
|
_08057610: .4byte gPaletteFade
|
|
_08057614: .4byte gFieldCallback2
|
|
_08057618: .4byte sub_80574EC
|
|
_0805761C: .4byte gMain
|
|
_08057620:
|
|
bl sub_8057650
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08057648
|
|
b _0805754E
|
|
_0805762C:
|
|
ldr r0, _08057640 @ =gUnknown_3005050
|
|
ldr r1, _08057644 @ =sub_8057748
|
|
str r1, [r0]
|
|
bl SetFieldVBlankCallback
|
|
movs r0, 0
|
|
strb r0, [r7]
|
|
movs r0, 0x1
|
|
b _0805764A
|
|
.align 2, 0
|
|
_08057640: .4byte gUnknown_3005050
|
|
_08057644: .4byte sub_8057748
|
|
_08057648:
|
|
movs r0, 0
|
|
_0805764A:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057528
|
|
|
|
thumb_func_start sub_8057650
|
|
sub_8057650: @ 8057650
|
|
push {r4,lr}
|
|
ldr r4, _08057664 @ =gMain + 0x438
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x8
|
|
bhi _0805773C
|
|
lsls r0, 2
|
|
ldr r1, _08057668 @ =_0805766C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08057664: .4byte gMain + 0x438
|
|
_08057668: .4byte _0805766C
|
|
.align 2, 0
|
|
_0805766C:
|
|
.4byte _08057690
|
|
.4byte _0805769C
|
|
.4byte _080576C2
|
|
.4byte _080576CC
|
|
.4byte _080576D2
|
|
.4byte _080576E0
|
|
.4byte _080576F0
|
|
.4byte _0805770C
|
|
.4byte _08057712
|
|
_08057690:
|
|
bl sub_8056354
|
|
movs r0, 0
|
|
bl sub_8055920
|
|
b _0805772A
|
|
_0805769C:
|
|
bl ScanlineEffect_Clear
|
|
bl ResetAllPicSprites
|
|
bl ResetCameraUpdateInfo
|
|
bl InstallCameraPanAheadCallback
|
|
bl FieldEffectActiveListClear
|
|
bl sub_8079C08
|
|
bl sub_807B1B8
|
|
bl sub_806E87C
|
|
bl mapheader_run_script_with_tag_x5
|
|
b _0805772A
|
|
_080576C2:
|
|
bl sub_8056A34
|
|
bl sub_8056F1C
|
|
b _0805772A
|
|
_080576CC:
|
|
bl move_tilemap_camera_to_upper_left_corner
|
|
b _0805772A
|
|
_080576D2:
|
|
ldr r0, _080576DC @ =gMapHeader
|
|
ldr r0, [r0]
|
|
bl copy_map_tileset1_to_vram
|
|
b _0805772A
|
|
.align 2, 0
|
|
_080576DC: .4byte gMapHeader
|
|
_080576E0:
|
|
ldr r0, _080576EC @ =gMapHeader
|
|
ldr r0, [r0]
|
|
bl copy_map_tileset2_to_vram
|
|
b _0805772A
|
|
.align 2, 0
|
|
_080576EC: .4byte gMapHeader
|
|
_080576F0:
|
|
bl FreeTempTileDataBuffersIfPossible
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08057740
|
|
ldr r0, _08057708 @ =gMapHeader
|
|
ldr r0, [r0]
|
|
bl apply_map_tileset1_tileset2_palette
|
|
b _0805772A
|
|
.align 2, 0
|
|
_08057708: .4byte gMapHeader
|
|
_0805770C:
|
|
bl DrawWholeMapView
|
|
b _0805772A
|
|
_08057712:
|
|
bl cur_mapheader_run_tileset_funcs_after_some_cpuset
|
|
ldr r2, _08057734 @ =gPaletteFade
|
|
ldrb r1, [r2, 0x8]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2, 0x8]
|
|
ldr r2, _08057738 @ =0x3fffffff
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_807A944
|
|
_0805772A:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _08057740
|
|
.align 2, 0
|
|
_08057734: .4byte gPaletteFade
|
|
_08057738: .4byte 0x3fffffff
|
|
_0805773C:
|
|
movs r0, 0x1
|
|
b _08057742
|
|
_08057740:
|
|
movs r0, 0
|
|
_08057742:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057650
|
|
|
|
thumb_func_start sub_8057748
|
|
sub_8057748: @ 8057748
|
|
push {r4-r6,lr}
|
|
adds r2, r0, 0
|
|
ldr r0, _08057784 @ =gUnknown_2031DE8
|
|
movs r3, 0
|
|
ldrsh r1, [r0, r3]
|
|
adds r5, r0, 0
|
|
ldr r4, _08057788 @ =gUnknown_2031DEA
|
|
ldr r6, _0805778C @ =gUnknown_2031DE4
|
|
cmp r1, 0
|
|
bne _080577F4
|
|
ldrh r0, [r4]
|
|
adds r0, 0x1
|
|
strh r0, [r4]
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
ldr r1, [r6]
|
|
lsls r0, 3
|
|
adds r3, r0, r1
|
|
ldrh r0, [r3]
|
|
subs r0, 0xFB
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
bhi _080577D4
|
|
lsls r0, 2
|
|
ldr r1, _08057790 @ =_08057794
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08057784: .4byte gUnknown_2031DE8
|
|
_08057788: .4byte gUnknown_2031DEA
|
|
_0805778C: .4byte gUnknown_2031DE4
|
|
_08057790: .4byte _08057794
|
|
.align 2, 0
|
|
_08057794:
|
|
.4byte _080577C0
|
|
.4byte _08057814
|
|
.4byte _080577CA
|
|
.4byte _08057814
|
|
.4byte _080577A8
|
|
_080577A8:
|
|
movs r0, 0
|
|
str r0, [r2, 0x8]
|
|
str r0, [r2, 0xC]
|
|
str r0, [r2]
|
|
ldr r0, _080577BC @ =sub_805781C
|
|
movs r1, 0
|
|
bl CreateTask
|
|
b _08057814
|
|
.align 2, 0
|
|
_080577BC: .4byte sub_805781C
|
|
_080577C0:
|
|
movs r0, 0
|
|
str r0, [r2, 0x8]
|
|
str r0, [r2, 0xC]
|
|
str r0, [r2]
|
|
b _080577F4
|
|
_080577CA:
|
|
movs r0, 0
|
|
str r0, [r2, 0x8]
|
|
str r0, [r2, 0xC]
|
|
str r0, [r2]
|
|
b _08057814
|
|
_080577D4:
|
|
ldrh r0, [r3, 0x4]
|
|
strh r0, [r5]
|
|
movs r3, 0
|
|
ldrsh r0, [r4, r3]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
str r0, [r2, 0x8]
|
|
movs r3, 0
|
|
ldrsh r0, [r4, r3]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
str r0, [r2, 0xC]
|
|
_080577F4:
|
|
movs r3, 0
|
|
ldrsh r0, [r4, r3]
|
|
ldr r1, [r6]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0xFF
|
|
bne _0805780E
|
|
movs r0, 0
|
|
str r0, [r2, 0x8]
|
|
str r0, [r2, 0xC]
|
|
b _08057814
|
|
_0805780E:
|
|
ldrh r0, [r5]
|
|
subs r0, 0x1
|
|
strh r0, [r5]
|
|
_08057814:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8057748
|
|
|
|
thumb_func_start sub_805781C
|
|
sub_805781C: @ 805781C
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r1, _0805784C @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _08057850 @ =sub_8057854
|
|
str r1, [r0]
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805784C: .4byte gTasks
|
|
_08057850: .4byte sub_8057854
|
|
thumb_func_end sub_805781C
|
|
|
|
thumb_func_start sub_8057854
|
|
sub_8057854: @ 8057854
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _0805787C @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08057876
|
|
bl CleanupOverworldWindowsAndTilemaps
|
|
ldr r0, _08057880 @ =CB2_LoadMap
|
|
bl SetMainCallback2
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_08057876:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805787C: .4byte gPaletteFade
|
|
_08057880: .4byte CB2_LoadMap
|
|
thumb_func_end sub_8057854
|
|
|
|
thumb_func_start c1_link_related
|
|
c1_link_related: @ 8057884
|
|
push {r4,lr}
|
|
ldr r0, _080578C8 @ =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0805789E
|
|
bl sub_80F90DC
|
|
cmp r0, 0
|
|
beq _0805789E
|
|
bl sub_800A00C
|
|
cmp r0, 0
|
|
bne _080578C0
|
|
_0805789E:
|
|
ldr r0, _080578CC @ =gUnknown_300502C
|
|
ldrb r4, [r0]
|
|
ldr r0, _080578D0 @ =gUnknown_3003E60
|
|
adds r1, r4, 0
|
|
bl sub_8057BE4
|
|
ldr r0, _080578D4 @ =gUnknown_3000E84
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
bl _call_via_r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl sub_8057C4C
|
|
bl sub_80578EC
|
|
_080578C0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080578C8: .4byte gWirelessCommType
|
|
_080578CC: .4byte gUnknown_300502C
|
|
_080578D0: .4byte gUnknown_3003E60
|
|
_080578D4: .4byte gUnknown_3000E84
|
|
thumb_func_end c1_link_related
|
|
|
|
thumb_func_start sub_80578D8
|
|
sub_80578D8: @ 80578D8
|
|
push {lr}
|
|
bl sub_805793C
|
|
ldr r0, _080578E8 @ =sub_8057D5C
|
|
bl c1_link_related_func_set
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080578E8: .4byte sub_8057D5C
|
|
thumb_func_end sub_80578D8
|
|
|
|
thumb_func_start sub_80578EC
|
|
sub_80578EC: @ 80578EC
|
|
push {lr}
|
|
ldr r0, _080578F8 @ =gUnknown_3003E60
|
|
bl sub_8057D48
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080578F8: .4byte gUnknown_3003E60
|
|
thumb_func_end sub_80578EC
|
|
|
|
thumb_func_start c1_link_related_func_set
|
|
c1_link_related_func_set: @ 80578FC
|
|
ldr r2, _08057908 @ =gUnknown_3000E89
|
|
movs r1, 0
|
|
strb r1, [r2]
|
|
ldr r1, _0805790C @ =gUnknown_3000E84
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08057908: .4byte gUnknown_3000E89
|
|
_0805790C: .4byte gUnknown_3000E84
|
|
thumb_func_end c1_link_related_func_set
|
|
|
|
thumb_func_start sub_8057910
|
|
sub_8057910: @ 8057910
|
|
push {lr}
|
|
ldr r0, _08057934 @ =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0805792E
|
|
ldr r1, _08057938 @ =gUnknown_3000E89
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3C
|
|
bls _0805792E
|
|
bl sub_80FA190
|
|
_0805792E:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08057934: .4byte gWirelessCommType
|
|
_08057938: .4byte gUnknown_3000E89
|
|
thumb_func_end sub_8057910
|
|
|
|
thumb_func_start sub_805793C
|
|
sub_805793C: @ 805793C
|
|
push {lr}
|
|
ldr r1, _08057950 @ =gUnknown_3000E80
|
|
movs r2, 0x80
|
|
adds r0, r1, 0x3
|
|
_08057944:
|
|
strb r2, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, r1
|
|
bge _08057944
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08057950: .4byte gUnknown_3000E80
|
|
thumb_func_end sub_805793C
|
|
|
|
thumb_func_start sub_8057954
|
|
sub_8057954: @ 8057954
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
ldr r0, _08057974 @ =gUnknown_3005030
|
|
ldrb r2, [r0]
|
|
movs r1, 0
|
|
cmp r1, r2
|
|
bge _08057982
|
|
ldr r4, _08057978 @ =gUnknown_3000E80
|
|
_08057966:
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, r3
|
|
beq _0805797C
|
|
movs r0, 0
|
|
b _08057984
|
|
.align 2, 0
|
|
_08057974: .4byte gUnknown_3005030
|
|
_08057978: .4byte gUnknown_3000E80
|
|
_0805797C:
|
|
adds r1, 0x1
|
|
cmp r1, r2
|
|
blt _08057966
|
|
_08057982:
|
|
movs r0, 0x1
|
|
_08057984:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057954
|
|
|
|
thumb_func_start sub_805798C
|
|
sub_805798C: @ 805798C
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
ldr r0, _080579AC @ =gUnknown_3005030
|
|
ldrb r2, [r0]
|
|
movs r1, 0
|
|
cmp r1, r2
|
|
bge _080579BA
|
|
ldr r4, _080579B0 @ =gUnknown_3000E80
|
|
_0805799E:
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, r3
|
|
bne _080579B4
|
|
movs r0, 0x1
|
|
b _080579BC
|
|
.align 2, 0
|
|
_080579AC: .4byte gUnknown_3005030
|
|
_080579B0: .4byte gUnknown_3000E80
|
|
_080579B4:
|
|
adds r1, 0x1
|
|
cmp r1, r2
|
|
blt _0805799E
|
|
_080579BA:
|
|
movs r0, 0
|
|
_080579BC:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805798C
|
|
|
|
thumb_func_start sub_80579C4
|
|
sub_80579C4: @ 80579C4
|
|
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, _08057A14 @ =gUnknown_3000E80
|
|
adds r5, r7, r0
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x80
|
|
beq _080579E4
|
|
b _08057B5E
|
|
_080579E4:
|
|
adds r0, r6, 0
|
|
bl sub_805801C
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
beq _08057A1C
|
|
bl sub_805812C
|
|
mov r1, r9
|
|
strh r0, [r1]
|
|
movs r0, 0x81
|
|
strb r0, [r5]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
bne _08057A04
|
|
b _08057BD2
|
|
_08057A04:
|
|
ldr r0, _08057A18 @ =sub_8057DA4
|
|
bl c1_link_related_func_set
|
|
adds r0, r4, 0
|
|
bl sub_80581DC
|
|
b _08057BD2
|
|
.align 2, 0
|
|
_08057A14: .4byte gUnknown_3000E80
|
|
_08057A18: .4byte sub_8057DA4
|
|
_08057A1C:
|
|
movs r0, 0x83
|
|
bl sub_805798C
|
|
cmp r0, 0x1
|
|
bne _08057A44
|
|
movs r0, 0x81
|
|
strb r0, [r5]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
bne _08057A32
|
|
b _08057BD2
|
|
_08057A32:
|
|
ldr r0, _08057A40 @ =sub_8057DA4
|
|
bl c1_link_related_func_set
|
|
bl sub_8058230
|
|
b _08057BD2
|
|
.align 2, 0
|
|
_08057A40: .4byte sub_8057DA4
|
|
_08057A44:
|
|
mov r0, r8
|
|
subs r0, 0x12
|
|
cmp r0, 0xA
|
|
bls _08057A4E
|
|
b _08057B5E
|
|
_08057A4E:
|
|
lsls r0, 2
|
|
ldr r1, _08057A58 @ =_08057A5C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08057A58: .4byte _08057A5C
|
|
.align 2, 0
|
|
_08057A5C:
|
|
.4byte _08057AB4
|
|
.4byte _08057B5E
|
|
.4byte _08057B5E
|
|
.4byte _08057B5E
|
|
.4byte _08057B5E
|
|
.4byte _08057B5E
|
|
.4byte _08057A88
|
|
.4byte _08057AE0
|
|
.4byte _08057B5E
|
|
.4byte _08057B10
|
|
.4byte _08057B3C
|
|
_08057A88:
|
|
adds r0, r6, 0
|
|
bl sub_8058004
|
|
cmp r0, 0
|
|
beq _08057B5E
|
|
ldr r0, _08057AAC @ =gUnknown_3000E80
|
|
adds r0, r7, r0
|
|
movs r1, 0x81
|
|
strb r1, [r0]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
beq _08057B5E
|
|
ldr r0, _08057AB0 @ =sub_8057DA4
|
|
bl c1_link_related_func_set
|
|
bl sub_80581C8
|
|
b _08057B5E
|
|
.align 2, 0
|
|
_08057AAC: .4byte gUnknown_3000E80
|
|
_08057AB0: .4byte sub_8057DA4
|
|
_08057AB4:
|
|
adds r0, r6, 0
|
|
bl sub_8058034
|
|
cmp r0, 0x1
|
|
bne _08057B5E
|
|
ldr r0, _08057AD8 @ =gUnknown_3000E80
|
|
adds r0, r7, r0
|
|
movs r1, 0x81
|
|
strb r1, [r0]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
beq _08057B5E
|
|
ldr r0, _08057ADC @ =sub_8057DA4
|
|
bl c1_link_related_func_set
|
|
bl sub_80581F8
|
|
b _08057B5E
|
|
.align 2, 0
|
|
_08057AD8: .4byte gUnknown_3000E80
|
|
_08057ADC: .4byte sub_8057DA4
|
|
_08057AE0:
|
|
adds r0, r6, 0
|
|
bl sub_8058060
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
beq _08057B5E
|
|
ldr r0, _08057B08 @ =gUnknown_3000E80
|
|
adds r0, r7, r0
|
|
movs r1, 0x81
|
|
strb r1, [r0]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
beq _08057B5E
|
|
ldr r0, _08057B0C @ =sub_8057DA4
|
|
bl c1_link_related_func_set
|
|
adds r0, r4, 0
|
|
bl sub_8058214
|
|
b _08057B5E
|
|
.align 2, 0
|
|
_08057B08: .4byte gUnknown_3000E80
|
|
_08057B0C: .4byte sub_8057DA4
|
|
_08057B10:
|
|
adds r0, r6, 0
|
|
bl sub_8057FEC
|
|
cmp r0, 0
|
|
beq _08057B5E
|
|
ldr r0, _08057B34 @ =gUnknown_3000E80
|
|
adds r0, r7, r0
|
|
movs r1, 0x81
|
|
strb r1, [r0]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
beq _08057B5E
|
|
ldr r0, _08057B38 @ =sub_8057DC8
|
|
bl c1_link_related_func_set
|
|
bl sub_80581BC
|
|
b _08057B5E
|
|
.align 2, 0
|
|
_08057B34: .4byte gUnknown_3000E80
|
|
_08057B38: .4byte sub_8057DC8
|
|
_08057B3C:
|
|
adds r0, r6, 0
|
|
bl sub_8057FEC
|
|
cmp r0, 0
|
|
beq _08057B5E
|
|
ldr r0, _08057B70 @ =gUnknown_3000E80
|
|
adds r0, r7, r0
|
|
movs r1, 0x81
|
|
strb r1, [r0]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
beq _08057B5E
|
|
ldr r0, _08057B74 @ =sub_8057DEC
|
|
bl c1_link_related_func_set
|
|
bl sub_80581BC
|
|
_08057B5E:
|
|
mov r0, r8
|
|
cmp r0, 0x17
|
|
beq _08057B84
|
|
cmp r0, 0x17
|
|
bgt _08057B78
|
|
cmp r0, 0x16
|
|
beq _08057B94
|
|
b _08057BD2
|
|
.align 2, 0
|
|
_08057B70: .4byte gUnknown_3000E80
|
|
_08057B74: .4byte sub_8057DEC
|
|
_08057B78:
|
|
mov r1, r8
|
|
cmp r1, 0x1A
|
|
beq _08057BA4
|
|
cmp r1, 0x1D
|
|
beq _08057BC4
|
|
b _08057BD2
|
|
_08057B84:
|
|
ldr r0, _08057B90 @ =gUnknown_3000E80
|
|
adds r0, r7, r0
|
|
movs r1, 0x83
|
|
strb r1, [r0]
|
|
b _08057BD2
|
|
.align 2, 0
|
|
_08057B90: .4byte gUnknown_3000E80
|
|
_08057B94:
|
|
ldr r0, _08057BA0 @ =gUnknown_3000E80
|
|
adds r0, r7, r0
|
|
movs r1, 0x82
|
|
strb r1, [r0]
|
|
b _08057BD2
|
|
.align 2, 0
|
|
_08057BA0: .4byte gUnknown_3000E80
|
|
_08057BA4:
|
|
ldr r0, _08057BBC @ =gUnknown_3000E80
|
|
adds r0, r7, r0
|
|
movs r1, 0x80
|
|
strb r1, [r0]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
beq _08057BD2
|
|
ldr r0, _08057BC0 @ =sub_8057D5C
|
|
bl c1_link_related_func_set
|
|
b _08057BD2
|
|
.align 2, 0
|
|
_08057BBC: .4byte gUnknown_3000E80
|
|
_08057BC0: .4byte sub_8057D5C
|
|
_08057BC4:
|
|
ldr r0, _08057BE0 @ =gUnknown_3000E80
|
|
adds r1, r7, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x82
|
|
bne _08057BD2
|
|
movs r0, 0x81
|
|
strb r0, [r1]
|
|
_08057BD2:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08057BE0: .4byte gUnknown_3000E80
|
|
thumb_func_end sub_80579C4
|
|
|
|
thumb_func_start sub_8057BE4
|
|
sub_8057BE4: @ 8057BE4
|
|
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
|
|
_08057BF8:
|
|
ldrb r4, [r7]
|
|
movs r0, 0
|
|
strh r0, [r5]
|
|
adds r0, r6, 0
|
|
mov r1, r8
|
|
mov r2, sp
|
|
bl sub_8057F84
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
mov r2, sp
|
|
adds r3, r5, 0
|
|
bl sub_80579C4
|
|
ldr r0, _08057C48 @ =gUnknown_3000E80
|
|
adds r0, r6, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x80
|
|
bne _08057C28
|
|
adds r0, r4, 0
|
|
bl sub_8057D14
|
|
mov r1, r9
|
|
strh r0, [r1]
|
|
_08057C28:
|
|
lsls r0, r6, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r5]
|
|
bl sub_8058618
|
|
adds r7, 0x2
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08057BF8
|
|
add sp, 0x14
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08057C48: .4byte gUnknown_3000E80
|
|
thumb_func_end sub_8057BE4
|
|
|
|
thumb_func_start sub_8057C4C
|
|
sub_8057C4C: @ 8057C4C
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r1, _08057C64 @ =0xffef0000
|
|
adds r0, r1
|
|
lsrs r0, 16
|
|
cmp r0, 0xC
|
|
bhi _08057C6C
|
|
ldr r0, _08057C68 @ =gUnknown_3005028
|
|
strh r4, [r0]
|
|
b _08057C72
|
|
.align 2, 0
|
|
_08057C64: .4byte 0xffef0000
|
|
_08057C68: .4byte gUnknown_3005028
|
|
_08057C6C:
|
|
ldr r1, _08057CB0 @ =gUnknown_3005028
|
|
movs r0, 0x11
|
|
strh r0, [r1]
|
|
_08057C72:
|
|
ldr r0, _08057CB4 @ =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08057CA8
|
|
bl sub_805833C
|
|
cmp r0, 0x1
|
|
bls _08057CA8
|
|
bl IsUpdateLinkStateCBActive
|
|
cmp r0, 0x1
|
|
bne _08057CA8
|
|
bl sub_800A00C
|
|
cmp r0, 0x1
|
|
bne _08057CA8
|
|
cmp r4, 0x11
|
|
blt _08057CA8
|
|
cmp r4, 0x15
|
|
ble _08057CA2
|
|
cmp r4, 0x19
|
|
bgt _08057CA8
|
|
cmp r4, 0x18
|
|
blt _08057CA8
|
|
_08057CA2:
|
|
ldr r1, _08057CB0 @ =gUnknown_3005028
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
_08057CA8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08057CB0: .4byte gUnknown_3005028
|
|
_08057CB4: .4byte gWirelessCommType
|
|
thumb_func_end sub_8057C4C
|
|
|
|
thumb_func_start sub_8057CB8
|
|
sub_8057CB8: @ 8057CB8
|
|
push {lr}
|
|
ldr r2, _08057CCC @ =gMain
|
|
ldrh r1, [r2, 0x2C]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08057CD0
|
|
movs r0, 0x13
|
|
b _08057D10
|
|
.align 2, 0
|
|
_08057CCC: .4byte gMain
|
|
_08057CD0:
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08057CDC
|
|
movs r0, 0x12
|
|
b _08057D10
|
|
_08057CDC:
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08057CE8
|
|
movs r0, 0x14
|
|
b _08057D10
|
|
_08057CE8:
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08057CF4
|
|
movs r0, 0x15
|
|
b _08057D10
|
|
_08057CF4:
|
|
ldrh r1, [r2, 0x2E]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08057D02
|
|
movs r0, 0x18
|
|
b _08057D10
|
|
_08057D02:
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08057D0E
|
|
movs r0, 0x11
|
|
b _08057D10
|
|
_08057D0E:
|
|
movs r0, 0x19
|
|
_08057D10:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057CB8
|
|
|
|
thumb_func_start sub_8057D14
|
|
sub_8057D14: @ 8057D14
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r1, r0, 0
|
|
cmp r0, 0x13
|
|
beq _08057D3A
|
|
cmp r0, 0x13
|
|
bgt _08057D2A
|
|
cmp r0, 0x12
|
|
beq _08057D3E
|
|
b _08057D42
|
|
_08057D2A:
|
|
cmp r1, 0x14
|
|
beq _08057D36
|
|
cmp r1, 0x15
|
|
bne _08057D42
|
|
movs r0, 0x4
|
|
b _08057D44
|
|
_08057D36:
|
|
movs r0, 0x3
|
|
b _08057D44
|
|
_08057D3A:
|
|
movs r0, 0x1
|
|
b _08057D44
|
|
_08057D3E:
|
|
movs r0, 0x2
|
|
b _08057D44
|
|
_08057D42:
|
|
movs r0, 0
|
|
_08057D44:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057D14
|
|
|
|
thumb_func_start sub_8057D48
|
|
sub_8057D48: @ 8057D48
|
|
push {lr}
|
|
movs r2, 0x11
|
|
adds r1, r0, 0x6
|
|
_08057D4E:
|
|
strh r2, [r1]
|
|
subs r1, 0x2
|
|
cmp r1, r0
|
|
bge _08057D4E
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8057D48
|
|
|
|
thumb_func_start sub_8057D5C
|
|
sub_8057D5C: @ 8057D5C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl ScriptContext2_IsEnabled
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08057D70
|
|
movs r0, 0x11
|
|
b _08057D92
|
|
_08057D70:
|
|
bl sub_800B248
|
|
cmp r0, 0x4
|
|
bls _08057D7C
|
|
movs r0, 0x1B
|
|
b _08057D92
|
|
_08057D7C:
|
|
bl sub_805833C
|
|
cmp r0, 0x4
|
|
bls _08057D88
|
|
movs r0, 0x1C
|
|
b _08057D92
|
|
_08057D88:
|
|
adds r0, r4, 0
|
|
bl sub_8057CB8
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
_08057D92:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057D5C
|
|
|
|
thumb_func_start sub_8057D98
|
|
sub_8057D98: @ 8057D98
|
|
push {lr}
|
|
bl sub_8057910
|
|
movs r0, 0x11
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057D98
|
|
|
|
thumb_func_start sub_8057DA4
|
|
sub_8057DA4: @ 8057DA4
|
|
push {r4,lr}
|
|
bl ScriptContext2_IsEnabled
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r4, 0x11
|
|
cmp r0, 0x1
|
|
beq _08057DBC
|
|
movs r4, 0x1A
|
|
ldr r0, _08057DC4 @ =sub_8057D98
|
|
bl c1_link_related_func_set
|
|
_08057DBC:
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057DC4: .4byte sub_8057D98
|
|
thumb_func_end sub_8057DA4
|
|
|
|
thumb_func_start sub_8057DC8
|
|
sub_8057DC8: @ 8057DC8
|
|
push {r4,lr}
|
|
bl sub_800B248
|
|
movs r4, 0x11
|
|
cmp r0, 0x2
|
|
bhi _08057DE0
|
|
movs r4, 0x1A
|
|
bl ScriptContext2_Disable
|
|
ldr r0, _08057DE8 @ =sub_8057D98
|
|
bl c1_link_related_func_set
|
|
_08057DE0:
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057DE8: .4byte sub_8057D98
|
|
thumb_func_end sub_8057DC8
|
|
|
|
thumb_func_start sub_8057DEC
|
|
sub_8057DEC: @ 8057DEC
|
|
push {r4,lr}
|
|
bl sub_805833C
|
|
movs r4, 0x11
|
|
cmp r0, 0x2
|
|
bhi _08057E04
|
|
movs r4, 0x1A
|
|
bl ScriptContext2_Disable
|
|
ldr r0, _08057E0C @ =sub_8057D98
|
|
bl c1_link_related_func_set
|
|
_08057E04:
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057E0C: .4byte sub_8057D98
|
|
thumb_func_end sub_8057DEC
|
|
|
|
thumb_func_start sub_8057E10
|
|
sub_8057E10: @ 8057E10
|
|
push {lr}
|
|
bl sub_8057910
|
|
movs r0, 0x11
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057E10
|
|
|
|
thumb_func_start sub_8057E1C
|
|
sub_8057E1C: @ 8057E1C
|
|
push {lr}
|
|
ldr r1, _08057E40 @ =gUnknown_3000E80
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x82
|
|
bne _08057E4C
|
|
ldr r0, _08057E44 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08057E50
|
|
ldr r0, _08057E48 @ =sub_8057E10
|
|
bl c1_link_related_func_set
|
|
movs r0, 0x1D
|
|
b _08057E52
|
|
.align 2, 0
|
|
_08057E40: .4byte gUnknown_3000E80
|
|
_08057E44: .4byte gMain
|
|
_08057E48: .4byte sub_8057E10
|
|
_08057E4C:
|
|
bl sub_8057910
|
|
_08057E50:
|
|
movs r0, 0x11
|
|
_08057E52:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057E1C
|
|
|
|
thumb_func_start sub_8057E58
|
|
sub_8057E58: @ 8057E58
|
|
push {lr}
|
|
ldr r0, _08057E68 @ =sub_8057E1C
|
|
bl c1_link_related_func_set
|
|
movs r0, 0x16
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057E68: .4byte sub_8057E1C
|
|
thumb_func_end sub_8057E58
|
|
|
|
thumb_func_start sub_8057E6C
|
|
sub_8057E6C: @ 8057E6C
|
|
movs r0, 0x11
|
|
bx lr
|
|
thumb_func_end sub_8057E6C
|
|
|
|
thumb_func_start sub_8057E70
|
|
sub_8057E70: @ 8057E70
|
|
push {lr}
|
|
ldr r1, _08057E9C @ =gUnknown_3000E80
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x83
|
|
beq _08057E80
|
|
bl sub_8057910
|
|
_08057E80:
|
|
movs r0, 0x83
|
|
bl sub_8057954
|
|
cmp r0, 0x1
|
|
bne _08057E96
|
|
ldr r0, _08057EA0 @ =gUnknown_81BB9FC
|
|
bl ScriptContext1_SetupScript
|
|
ldr r0, _08057EA4 @ =sub_8057E6C
|
|
bl c1_link_related_func_set
|
|
_08057E96:
|
|
movs r0, 0x11
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057E9C: .4byte gUnknown_3000E80
|
|
_08057EA0: .4byte gUnknown_81BB9FC
|
|
_08057EA4: .4byte sub_8057E6C
|
|
thumb_func_end sub_8057E70
|
|
|
|
thumb_func_start sub_8057EA8
|
|
sub_8057EA8: @ 8057EA8
|
|
push {lr}
|
|
ldr r0, _08057EB8 @ =sub_8057E70
|
|
bl c1_link_related_func_set
|
|
movs r0, 0x17
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057EB8: .4byte sub_8057E70
|
|
thumb_func_end sub_8057EA8
|
|
|
|
thumb_func_start sub_8057EBC
|
|
sub_8057EBC: @ 8057EBC
|
|
movs r0, 0x11
|
|
bx lr
|
|
thumb_func_end sub_8057EBC
|
|
|
|
thumb_func_start sub_8057EC0
|
|
sub_8057EC0: @ 8057EC0
|
|
push {lr}
|
|
movs r0, 0x83
|
|
bl sub_805798C
|
|
cmp r0, 0x1
|
|
beq _08057EFC
|
|
ldr r0, _08057F00 @ =gUnknown_3000E84
|
|
ldr r2, [r0]
|
|
ldr r1, _08057F04 @ =sub_8057E1C
|
|
adds r3, r0, 0
|
|
cmp r2, r1
|
|
bne _08057EE6
|
|
ldr r1, _08057F08 @ =gUnknown_3000E80
|
|
ldr r0, _08057F0C @ =gUnknown_300502C
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x82
|
|
bne _08057F1E
|
|
_08057EE6:
|
|
ldr r1, [r3]
|
|
ldr r0, _08057F10 @ =sub_8057E10
|
|
cmp r1, r0
|
|
bne _08057F14
|
|
ldr r1, _08057F08 @ =gUnknown_3000E80
|
|
ldr r0, _08057F0C @ =gUnknown_300502C
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x81
|
|
bne _08057F14
|
|
_08057EFC:
|
|
movs r0, 0x2
|
|
b _08057F24
|
|
.align 2, 0
|
|
_08057F00: .4byte gUnknown_3000E84
|
|
_08057F04: .4byte sub_8057E1C
|
|
_08057F08: .4byte gUnknown_3000E80
|
|
_08057F0C: .4byte gUnknown_300502C
|
|
_08057F10: .4byte sub_8057E10
|
|
_08057F14:
|
|
movs r0, 0x82
|
|
bl sub_8057954
|
|
cmp r0, 0
|
|
bne _08057F22
|
|
_08057F1E:
|
|
movs r0, 0
|
|
b _08057F24
|
|
_08057F22:
|
|
movs r0, 0x1
|
|
_08057F24:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057EC0
|
|
|
|
thumb_func_start sub_8057F28
|
|
sub_8057F28: @ 8057F28
|
|
push {lr}
|
|
movs r0, 0x83
|
|
bl sub_805798C
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057F28
|
|
|
|
thumb_func_start sub_8057F34
|
|
sub_8057F34: @ 8057F34
|
|
push {lr}
|
|
ldr r0, _08057F44 @ =sub_8057E58
|
|
bl c1_link_related_func_set
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057F44: .4byte sub_8057E58
|
|
thumb_func_end sub_8057F34
|
|
|
|
thumb_func_start sub_8057F48
|
|
sub_8057F48: @ 8057F48
|
|
push {lr}
|
|
ldr r0, _08057F58 @ =sub_8057DA4
|
|
bl c1_link_related_func_set
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057F58: .4byte sub_8057DA4
|
|
thumb_func_end sub_8057F48
|
|
|
|
thumb_func_start sub_8057F5C
|
|
sub_8057F5C: @ 8057F5C
|
|
push {lr}
|
|
ldr r0, _08057F6C @ =sub_8057EA8
|
|
bl c1_link_related_func_set
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057F6C: .4byte sub_8057EA8
|
|
thumb_func_end sub_8057F5C
|
|
|
|
thumb_func_start sub_8057F70
|
|
sub_8057F70: @ 8057F70
|
|
push {lr}
|
|
ldr r0, _08057F80 @ =sub_8057EBC
|
|
bl c1_link_related_func_set
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057F80: .4byte sub_8057EBC
|
|
thumb_func_end sub_8057F70
|
|
|
|
thumb_func_start sub_8057F84
|
|
sub_8057F84: @ 8057F84
|
|
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 _08057F96
|
|
movs r0, 0x1
|
|
_08057F96:
|
|
strb r0, [r6, 0x1]
|
|
ldr r1, _08057FE8 @ =gUnknown_2031DEC
|
|
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_805854C
|
|
strb r0, [r6, 0x3]
|
|
mov r5, sp
|
|
adds r5, 0x2
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
adds r2, r5, 0
|
|
bl sub_8058524
|
|
mov r0, sp
|
|
ldrh r0, [r0]
|
|
strh r0, [r6, 0x4]
|
|
ldrh r0, [r5]
|
|
strh r0, [r6, 0x6]
|
|
adds r0, r4, 0
|
|
bl sub_805856C
|
|
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
|
|
.align 2, 0
|
|
_08057FE8: .4byte gUnknown_2031DEC
|
|
thumb_func_end sub_8057F84
|
|
|
|
thumb_func_start sub_8057FEC
|
|
sub_8057FEC: @ 8057FEC
|
|
push {lr}
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r0, 0x2
|
|
beq _08057FF8
|
|
cmp r0, 0
|
|
bne _08057FFC
|
|
_08057FF8:
|
|
movs r0, 0x1
|
|
b _08057FFE
|
|
_08057FFC:
|
|
movs r0, 0
|
|
_08057FFE:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057FEC
|
|
|
|
thumb_func_start sub_8058004
|
|
sub_8058004: @ 8058004
|
|
push {lr}
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r0, 0x2
|
|
beq _08058010
|
|
cmp r0, 0
|
|
bne _08058014
|
|
_08058010:
|
|
movs r0, 0x1
|
|
b _08058016
|
|
_08058014:
|
|
movs r0, 0
|
|
_08058016:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8058004
|
|
|
|
thumb_func_start sub_805801C
|
|
sub_805801C: @ 805801C
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0x2
|
|
bne _0805802E
|
|
adds r0, r1, 0x4
|
|
bl sub_806DEC4
|
|
b _08058030
|
|
_0805802E:
|
|
movs r0, 0
|
|
_08058030:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805801C
|
|
|
|
thumb_func_start sub_8058034
|
|
sub_8058034: @ 8058034
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0x2
|
|
beq _08058042
|
|
cmp r0, 0
|
|
bne _08058058
|
|
_08058042:
|
|
ldrb r0, [r4, 0xC]
|
|
bl MetatileBehavior_IsSouthArrowWarp
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058058
|
|
ldrb r0, [r4, 0x3]
|
|
cmp r0, 0x1
|
|
bne _08058058
|
|
movs r0, 0x1
|
|
b _0805805A
|
|
_08058058:
|
|
movs r0, 0
|
|
_0805805A:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8058034
|
|
|
|
thumb_func_start sub_8058060
|
|
sub_8058060: @ 8058060
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0
|
|
beq _08058074
|
|
cmp r0, 0x2
|
|
beq _08058074
|
|
movs r0, 0
|
|
b _08058122
|
|
_08058074:
|
|
ldr r0, [r4, 0x4]
|
|
ldr r1, [r4, 0x8]
|
|
str r0, [sp]
|
|
str r1, [sp, 0x4]
|
|
ldr r3, _080580E4 @ =gDirectionToVectors
|
|
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, _080580E8 @ =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, _080580EC @ =0x0000ffff
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
str r1, [sp]
|
|
ldr r2, _080580F0 @ =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 GetLinkPlayerIdAt
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
adds r2, r1, 0
|
|
cmp r1, 0x4
|
|
beq _08058118
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0
|
|
beq _080580E0
|
|
ldr r0, _080580F4 @ =gUnknown_3000E80
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x80
|
|
beq _080580FC
|
|
_080580E0:
|
|
ldr r0, _080580F8 @ =gUnknown_81BB9A3
|
|
b _08058122
|
|
.align 2, 0
|
|
_080580E4: .4byte gDirectionToVectors
|
|
_080580E8: .4byte 0xffff0000
|
|
_080580EC: .4byte 0x0000ffff
|
|
_080580F0: .4byte 0xffffff00
|
|
_080580F4: .4byte gUnknown_3000E80
|
|
_080580F8: .4byte gUnknown_81BB9A3
|
|
_080580FC:
|
|
adds r0, r2, 0
|
|
bl sub_8081A34
|
|
cmp r0, 0
|
|
bne _08058110
|
|
ldr r0, _0805810C @ =gUnknown_81BB981
|
|
b _08058122
|
|
.align 2, 0
|
|
_0805810C: .4byte gUnknown_81BB981
|
|
_08058110:
|
|
ldr r0, _08058114 @ =gUnknown_81BB992
|
|
b _08058122
|
|
.align 2, 0
|
|
_08058114: .4byte gUnknown_81BB992
|
|
_08058118:
|
|
ldrb r1, [r4, 0xC]
|
|
ldrb r2, [r4, 0x3]
|
|
mov r0, sp
|
|
bl sub_806CF38
|
|
_08058122:
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8058060
|
|
|
|
thumb_func_start sub_805812C
|
|
sub_805812C: @ 805812C
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldr r0, _08058178 @ =gUnknown_81BB8DB
|
|
cmp r1, r0
|
|
beq _08058172
|
|
ldr r0, _0805817C @ =gUnknown_81BB8F8
|
|
cmp r1, r0
|
|
beq _080581B4
|
|
ldr r0, _08058180 @ =gUnknown_81BB915
|
|
cmp r1, r0
|
|
beq _08058172
|
|
ldr r0, _08058184 @ =gUnknown_81BB932
|
|
cmp r1, r0
|
|
beq _080581B4
|
|
ldr r0, _08058188 @ =gUnknown_81BB980
|
|
cmp r1, r0
|
|
beq _08058172
|
|
ldr r0, _0805818C @ =gUnknown_81BB980
|
|
cmp r1, r0
|
|
beq _080581B4
|
|
ldr r0, _08058190 @ =gUnknown_81BB980
|
|
cmp r1, r0
|
|
beq _08058172
|
|
ldr r0, _08058194 @ =gUnknown_81BB980
|
|
cmp r1, r0
|
|
beq _080581B4
|
|
ldr r0, _08058198 @ =gUnknown_81BB8C3
|
|
cmp r1, r0
|
|
beq _08058172
|
|
ldr r0, _0805819C @ =gUnknown_81BB8CF
|
|
cmp r1, r0
|
|
beq _080581B4
|
|
ldr r0, _080581A0 @ =gUnknown_81BB950
|
|
cmp r1, r0
|
|
bne _080581A4
|
|
_08058172:
|
|
movs r0, 0xA
|
|
b _080581B6
|
|
.align 2, 0
|
|
_08058178: .4byte gUnknown_81BB8DB
|
|
_0805817C: .4byte gUnknown_81BB8F8
|
|
_08058180: .4byte gUnknown_81BB915
|
|
_08058184: .4byte gUnknown_81BB932
|
|
_08058188: .4byte gUnknown_81BB980
|
|
_0805818C: .4byte gUnknown_81BB980
|
|
_08058190: .4byte gUnknown_81BB980
|
|
_08058194: .4byte gUnknown_81BB980
|
|
_08058198: .4byte gUnknown_81BB8C3
|
|
_0805819C: .4byte gUnknown_81BB8CF
|
|
_080581A0: .4byte gUnknown_81BB950
|
|
_080581A4:
|
|
ldr r0, _080581B0 @ =gUnknown_81BB95C
|
|
cmp r1, r0
|
|
beq _080581B4
|
|
movs r0, 0
|
|
b _080581B6
|
|
.align 2, 0
|
|
_080581B0: .4byte gUnknown_81BB95C
|
|
_080581B4:
|
|
movs r0, 0x9
|
|
_080581B6:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805812C
|
|
|
|
thumb_func_start sub_80581BC
|
|
sub_80581BC: @ 80581BC
|
|
push {lr}
|
|
bl ScriptContext2_Enable
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80581BC
|
|
|
|
thumb_func_start sub_80581C8
|
|
sub_80581C8: @ 80581C8
|
|
push {lr}
|
|
movs r0, 0x6
|
|
bl PlaySE
|
|
bl ShowStartMenu
|
|
bl ScriptContext2_Enable
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80581C8
|
|
|
|
thumb_func_start sub_80581DC
|
|
sub_80581DC: @ 80581DC
|
|
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_80581DC
|
|
|
|
thumb_func_start sub_80581F8
|
|
sub_80581F8: @ 80581F8
|
|
push {lr}
|
|
movs r0, 0x6
|
|
bl PlaySE
|
|
ldr r0, _08058210 @ =gUnknown_81BB9D4
|
|
bl ScriptContext1_SetupScript
|
|
bl ScriptContext2_Enable
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08058210: .4byte gUnknown_81BB9D4
|
|
thumb_func_end sub_80581F8
|
|
|
|
thumb_func_start sub_8058214
|
|
sub_8058214: @ 8058214
|
|
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_8058214
|
|
|
|
thumb_func_start sub_8058230
|
|
sub_8058230: @ 8058230
|
|
push {lr}
|
|
ldr r0, _08058240 @ =gUnknown_81BB9F0
|
|
bl ScriptContext1_SetupScript
|
|
bl ScriptContext2_Enable
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08058240: .4byte gUnknown_81BB9F0
|
|
thumb_func_end sub_8058230
|
|
|
|
thumb_func_start sub_8058244
|
|
sub_8058244: @ 8058244
|
|
push {lr}
|
|
bl IsUpdateLinkStateCBActive
|
|
cmp r0, 0
|
|
bne _08058252
|
|
movs r0, 0
|
|
b _0805826C
|
|
_08058252:
|
|
bl sub_800B248
|
|
cmp r0, 0x2
|
|
bls _08058264
|
|
ldr r1, _08058260 @ =gUnknown_3000E88
|
|
movs r0, 0x1
|
|
b _08058268
|
|
.align 2, 0
|
|
_08058260: .4byte gUnknown_3000E88
|
|
_08058264:
|
|
ldr r1, _08058270 @ =gUnknown_3000E88
|
|
movs r0, 0
|
|
_08058268:
|
|
strb r0, [r1]
|
|
ldrb r0, [r1]
|
|
_0805826C:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058270: .4byte gUnknown_3000E88
|
|
thumb_func_end sub_8058244
|
|
|
|
thumb_func_start sub_8058274
|
|
sub_8058274: @ 8058274
|
|
push {lr}
|
|
bl sub_800B248
|
|
cmp r0, 0x1
|
|
bls _080582D8
|
|
bl IsUpdateLinkStateCBActive
|
|
cmp r0, 0x1
|
|
bne _080582D8
|
|
bl sub_800A00C
|
|
cmp r0, 0x1
|
|
bne _080582D8
|
|
ldr r0, _080582C4 @ =gUnknown_3000E84
|
|
ldr r1, [r0]
|
|
ldr r0, _080582C8 @ =sub_8057DC8
|
|
cmp r1, r0
|
|
beq _080582C0
|
|
ldr r0, _080582CC @ =sub_8057DA4
|
|
cmp r1, r0
|
|
bne _080582D8
|
|
ldr r0, _080582D0 @ =gUnknown_3000E88
|
|
ldrb r2, [r0]
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
cmp r2, 0x1
|
|
beq _080582C0
|
|
ldr r2, _080582D4 @ =gPaletteFade
|
|
ldrb r1, [r2, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080582D8
|
|
ldrb r1, [r2, 0xA]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080582D8
|
|
_080582C0:
|
|
movs r0, 0x1
|
|
b _080582DA
|
|
.align 2, 0
|
|
_080582C4: .4byte gUnknown_3000E84
|
|
_080582C8: .4byte sub_8057DC8
|
|
_080582CC: .4byte sub_8057DA4
|
|
_080582D0: .4byte gUnknown_3000E88
|
|
_080582D4: .4byte gPaletteFade
|
|
_080582D8:
|
|
movs r0, 0
|
|
_080582DA:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8058274
|
|
|
|
thumb_func_start sub_80582E0
|
|
sub_80582E0: @ 80582E0
|
|
push {lr}
|
|
bl sub_805833C
|
|
cmp r0, 0x1
|
|
bls _08058304
|
|
bl IsUpdateLinkStateCBActive
|
|
cmp r0, 0x1
|
|
bne _08058304
|
|
bl sub_800A00C
|
|
cmp r0, 0x1
|
|
bne _08058304
|
|
ldr r0, _08058308 @ =gUnknown_3000E84
|
|
ldr r1, [r0]
|
|
ldr r0, _0805830C @ =sub_8057DEC
|
|
cmp r1, r0
|
|
beq _08058310
|
|
_08058304:
|
|
movs r0, 0
|
|
b _08058312
|
|
.align 2, 0
|
|
_08058308: .4byte gUnknown_3000E84
|
|
_0805830C: .4byte sub_8057DEC
|
|
_08058310:
|
|
movs r0, 0x1
|
|
_08058312:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80582E0
|
|
|
|
thumb_func_start sub_8058318
|
|
sub_8058318: @ 8058318
|
|
push {lr}
|
|
ldr r0, _08058330 @ =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08058334
|
|
bl sub_800A00C
|
|
cmp r0, 0
|
|
beq _08058334
|
|
movs r0, 0x1
|
|
b _08058336
|
|
.align 2, 0
|
|
_08058330: .4byte gWirelessCommType
|
|
_08058334:
|
|
movs r0, 0
|
|
_08058336:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8058318
|
|
|
|
thumb_func_start sub_805833C
|
|
sub_805833C: @ 805833C
|
|
push {lr}
|
|
ldr r0, _08058350 @ =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0805835C
|
|
ldr r0, _08058354 @ =gUnknown_3003FB0
|
|
ldr r1, _08058358 @ =0x00000339
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
b _08058364
|
|
.align 2, 0
|
|
_08058350: .4byte gWirelessCommType
|
|
_08058354: .4byte gUnknown_3003FB0
|
|
_08058358: .4byte 0x00000339
|
|
_0805835C:
|
|
ldr r0, _08058368 @ =gUnknown_3005450
|
|
ldr r1, _0805836C @ =0x000008d2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
_08058364:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058368: .4byte gUnknown_3005450
|
|
_0805836C: .4byte 0x000008d2
|
|
thumb_func_end sub_805833C
|
|
|
|
thumb_func_start ZeroLinkPlayerMapObject
|
|
ZeroLinkPlayerMapObject: @ 8058370
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
bx lr
|
|
thumb_func_end ZeroLinkPlayerMapObject
|
|
|
|
thumb_func_start strange_npc_table_clear
|
|
strange_npc_table_clear: @ 8058378
|
|
push {lr}
|
|
ldr r0, _08058388 @ =gUnknown_2031DEC
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
bl memset
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08058388: .4byte gUnknown_2031DEC
|
|
thumb_func_end strange_npc_table_clear
|
|
|
|
thumb_func_start ZeroMapObject
|
|
ZeroMapObject: @ 805838C
|
|
push {lr}
|
|
movs r1, 0
|
|
movs r2, 0x24
|
|
bl memset
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end ZeroMapObject
|
|
|
|
thumb_func_start SpawnLinkPlayerMapObject
|
|
SpawnLinkPlayerMapObject: @ 805839C
|
|
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_805DF30
|
|
adds r6, r0, 0
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
lsls r4, r7, 2
|
|
ldr r0, _08058440 @ =gUnknown_2031DEC
|
|
adds r4, r0
|
|
lsls r5, r6, 3
|
|
adds r5, r6
|
|
lsls r5, 2
|
|
ldr r0, _08058444 @ =gMapObjects
|
|
adds r5, r0
|
|
adds r0, r4, 0
|
|
bl ZeroLinkPlayerMapObject
|
|
adds r0, r5, 0
|
|
bl ZeroMapObject
|
|
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 InitLinkPlayerMapObjectPos
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08058440: .4byte gUnknown_2031DEC
|
|
_08058444: .4byte gMapObjects
|
|
thumb_func_end SpawnLinkPlayerMapObject
|
|
|
|
thumb_func_start InitLinkPlayerMapObjectPos
|
|
InitLinkPlayerMapObjectPos: @ 8058448
|
|
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_8063B1C
|
|
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 InitLinkPlayerMapObjectPos
|
|
|
|
thumb_func_start sub_8058488
|
|
sub_8058488: @ 8058488
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsls r1, 24
|
|
lsrs r2, r1, 24
|
|
ldr r1, _080584B0 @ =gUnknown_2031DEC
|
|
lsrs r0, 22
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _080584AA
|
|
ldrb r0, [r1, 0x2]
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _080584B4 @ =gMapObjects
|
|
adds r1, r0
|
|
strb r2, [r1, 0x19]
|
|
_080584AA:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080584B0: .4byte gUnknown_2031DEC
|
|
_080584B4: .4byte gMapObjects
|
|
thumb_func_end sub_8058488
|
|
|
|
thumb_func_start sub_80584B8
|
|
sub_80584B8: @ 80584B8
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
ldr r1, _080584F8 @ =gUnknown_2031DEC
|
|
adds r5, r0, r1
|
|
ldrb r1, [r5, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _080584FC @ =gMapObjects
|
|
adds r4, r0, r1
|
|
ldrb r0, [r4, 0x4]
|
|
cmp r0, 0x40
|
|
beq _080584E4
|
|
adds r1, r0, 0
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08058500 @ =gSprites
|
|
adds r0, r1
|
|
bl DestroySprite
|
|
_080584E4:
|
|
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
|
|
.align 2, 0
|
|
_080584F8: .4byte gUnknown_2031DEC
|
|
_080584FC: .4byte gMapObjects
|
|
_08058500: .4byte gSprites
|
|
thumb_func_end sub_80584B8
|
|
|
|
thumb_func_start sub_8058504
|
|
sub_8058504: @ 8058504
|
|
lsls r0, 24
|
|
ldr r1, _0805851C @ =gUnknown_2031DEC
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08058520 @ =gMapObjects
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805851C: .4byte gUnknown_2031DEC
|
|
_08058520: .4byte gMapObjects
|
|
thumb_func_end sub_8058504
|
|
|
|
thumb_func_start sub_8058524
|
|
sub_8058524: @ 8058524
|
|
lsls r0, 24
|
|
ldr r3, _08058544 @ =gUnknown_2031DEC
|
|
lsrs r0, 22
|
|
adds r0, r3
|
|
ldrb r3, [r0, 0x2]
|
|
lsls r0, r3, 3
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
ldr r3, _08058548 @ =gMapObjects
|
|
adds r0, r3
|
|
ldrh r3, [r0, 0x10]
|
|
strh r3, [r1]
|
|
ldrh r0, [r0, 0x12]
|
|
strh r0, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_08058544: .4byte gUnknown_2031DEC
|
|
_08058548: .4byte gMapObjects
|
|
thumb_func_end sub_8058524
|
|
|
|
thumb_func_start sub_805854C
|
|
sub_805854C: @ 805854C
|
|
lsls r0, 24
|
|
ldr r1, _08058564 @ =gUnknown_2031DEC
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08058568 @ =gMapObjects
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x19]
|
|
bx lr
|
|
.align 2, 0
|
|
_08058564: .4byte gUnknown_2031DEC
|
|
_08058568: .4byte gMapObjects
|
|
thumb_func_end sub_805854C
|
|
|
|
thumb_func_start sub_805856C
|
|
sub_805856C: @ 805856C
|
|
lsls r0, 24
|
|
ldr r1, _08058588 @ =gUnknown_2031DEC
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805858C @ =gMapObjects
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0xB]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bx lr
|
|
.align 2, 0
|
|
_08058588: .4byte gUnknown_2031DEC
|
|
_0805858C: .4byte gMapObjects
|
|
thumb_func_end sub_805856C
|
|
|
|
thumb_func_start sub_8058590
|
|
sub_8058590: @ 8058590
|
|
lsls r0, 24
|
|
ldr r1, _080585B0 @ =gUnknown_2031DEC
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _080585B4 @ =gMapObjects
|
|
adds r0, r1
|
|
adds r0, 0x21
|
|
movs r1, 0
|
|
ldrsb r1, [r0, r1]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
bx lr
|
|
.align 2, 0
|
|
_080585B0: .4byte gUnknown_2031DEC
|
|
_080585B4: .4byte gMapObjects
|
|
thumb_func_end sub_8058590
|
|
|
|
thumb_func_start GetLinkPlayerIdAt
|
|
GetLinkPlayerIdAt: @ 80585B8
|
|
push {r4-r6,lr}
|
|
movs r2, 0
|
|
ldr r5, _080585FC @ =gUnknown_2031DEC
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
lsls r1, 16
|
|
asrs r3, r1, 16
|
|
_080585C6:
|
|
lsls r0, r2, 2
|
|
adds r1, r0, r5
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08058604
|
|
ldrb r0, [r1, 0x3]
|
|
cmp r0, 0
|
|
beq _080585DA
|
|
cmp r0, 0x2
|
|
bne _08058604
|
|
_080585DA:
|
|
ldrb r1, [r1, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08058600 @ =gMapObjects
|
|
adds r1, r0, r1
|
|
movs r6, 0x10
|
|
ldrsh r0, [r1, r6]
|
|
cmp r0, r4
|
|
bne _08058604
|
|
movs r6, 0x12
|
|
ldrsh r0, [r1, r6]
|
|
cmp r0, r3
|
|
bne _08058604
|
|
adds r0, r2, 0
|
|
b _08058610
|
|
.align 2, 0
|
|
_080585FC: .4byte gUnknown_2031DEC
|
|
_08058600: .4byte gMapObjects
|
|
_08058604:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x3
|
|
bls _080585C6
|
|
movs r0, 0x4
|
|
_08058610:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetLinkPlayerIdAt
|
|
|
|
thumb_func_start sub_8058618
|
|
sub_8058618: @ 8058618
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsls r1, 24
|
|
lsrs r3, r1, 24
|
|
adds r2, r3, 0
|
|
lsrs r0, 22
|
|
ldr r1, _08058648 @ =gUnknown_2031DEC
|
|
adds r5, r0, r1
|
|
ldrb r1, [r5, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805864C @ =gMapObjects
|
|
adds r6, r0, r1
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
beq _08058674
|
|
cmp r3, 0xA
|
|
bls _08058650
|
|
ldrb r0, [r6]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r6]
|
|
b _08058674
|
|
.align 2, 0
|
|
_08058648: .4byte gUnknown_2031DEC
|
|
_0805864C: .4byte gMapObjects
|
|
_08058650:
|
|
ldr r4, _0805867C @ =gUnknown_826D374
|
|
ldr r1, _08058680 @ =gUnknown_826D33C
|
|
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
|
|
_08058674:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805867C: .4byte gUnknown_826D374
|
|
_08058680: .4byte gUnknown_826D33C
|
|
thumb_func_end sub_8058618
|
|
|
|
thumb_func_start sub_8058684
|
|
sub_8058684: @ 8058684
|
|
push {r4,lr}
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r4, _080586A0 @ =gUnknown_826D348
|
|
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
|
|
.align 2, 0
|
|
_080586A0: .4byte gUnknown_826D348
|
|
thumb_func_end sub_8058684
|
|
|
|
thumb_func_start sub_80586A4
|
|
sub_80586A4: @ 80586A4
|
|
movs r0, 0x1
|
|
bx lr
|
|
thumb_func_end sub_80586A4
|
|
|
|
thumb_func_start sub_80586A8
|
|
sub_80586A8: @ 80586A8
|
|
push {r4,lr}
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r4, _080586C4 @ =gUnknown_826D348
|
|
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
|
|
.align 2, 0
|
|
_080586C4: .4byte gUnknown_826D348
|
|
thumb_func_end sub_80586A8
|
|
|
|
thumb_func_start sub_80586C8
|
|
sub_80586C8: @ 80586C8
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_80586C8
|
|
|
|
thumb_func_start sub_80586CC
|
|
sub_80586CC: @ 80586CC
|
|
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 _0805872A
|
|
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 _0805872C
|
|
_0805872A:
|
|
movs r0, 0
|
|
_0805872C:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80586CC
|
|
|
|
thumb_func_start sub_8058734
|
|
sub_8058734: @ 8058734
|
|
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_8058734
|
|
|
|
thumb_func_start sub_805874C
|
|
sub_805874C: @ 805874C
|
|
movs r1, 0
|
|
strb r1, [r0, 0x3]
|
|
bx lr
|
|
thumb_func_end sub_805874C
|
|
|
|
thumb_func_start sub_8058754
|
|
sub_8058754: @ 8058754
|
|
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 _08058784
|
|
adds r0, r4, 0
|
|
bl npc_coords_shift_still
|
|
movs r0, 0x2
|
|
strb r0, [r6, 0x3]
|
|
_08058784:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8058754
|
|
|
|
thumb_func_start npc_something3
|
|
npc_something3: @ 805878C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r2, r1, 24
|
|
subs r0, 0x1
|
|
cmp r0, 0x9
|
|
bhi _080587E4
|
|
lsls r0, 2
|
|
ldr r1, _080587A8 @ =_080587AC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080587A8: .4byte _080587AC
|
|
.align 2, 0
|
|
_080587AC:
|
|
.4byte _080587D4
|
|
.4byte _080587D8
|
|
.4byte _080587DC
|
|
.4byte _080587E0
|
|
.4byte _080587E4
|
|
.4byte _080587E4
|
|
.4byte _080587D4
|
|
.4byte _080587D8
|
|
.4byte _080587DC
|
|
.4byte _080587E0
|
|
_080587D4:
|
|
movs r0, 0x2
|
|
b _080587E6
|
|
_080587D8:
|
|
movs r0, 0x1
|
|
b _080587E6
|
|
_080587DC:
|
|
movs r0, 0x3
|
|
b _080587E6
|
|
_080587E0:
|
|
movs r0, 0x4
|
|
b _080587E6
|
|
_080587E4:
|
|
adds r0, r2, 0
|
|
_080587E6:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end npc_something3
|
|
|
|
thumb_func_start npc_080587EC
|
|
npc_080587EC: @ 80587EC
|
|
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, _08058850 @ =gMapObjects
|
|
mov r9, r0
|
|
lsrs r2, r3, 16
|
|
mov r10, r2
|
|
asrs r6, r3, 16
|
|
_08058810:
|
|
mov r7, r12
|
|
lsls r3, r7, 16
|
|
mov r0, r10
|
|
lsls r5, r0, 16
|
|
cmp r4, r8
|
|
beq _08058854
|
|
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 _08058838
|
|
movs r7, 0x12
|
|
ldrsh r0, [r1, r7]
|
|
cmp r0, r6
|
|
beq _0805884A
|
|
_08058838:
|
|
movs r7, 0x14
|
|
ldrsh r0, [r1, r7]
|
|
cmp r0, r2
|
|
bne _08058854
|
|
movs r0, 0x16
|
|
ldrsh r1, [r1, r0]
|
|
asrs r0, r5, 16
|
|
cmp r1, r0
|
|
bne _08058854
|
|
_0805884A:
|
|
movs r0, 0x1
|
|
b _0805886A
|
|
.align 2, 0
|
|
_08058850: .4byte gMapObjects
|
|
_08058854:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0xF
|
|
bls _08058810
|
|
asrs r0, r3, 16
|
|
asrs r1, r5, 16
|
|
bl MapGridIsImpassableAt
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_0805886A:
|
|
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_8058878
|
|
sub_8058878: @ 8058878
|
|
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, _080588B4 @ =gUnknown_2031DEC
|
|
adds r2, r0
|
|
ldrb r1, [r2, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _080588B8 @ =gMapObjects
|
|
adds r4, r0, r1
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
beq _080588FC
|
|
subs r0, r3, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _080588BC
|
|
ldrb r1, [r4]
|
|
lsls r1, 30
|
|
lsrs r1, 31
|
|
movs r0, 0
|
|
bl sub_805C7C8
|
|
b _080588C6
|
|
.align 2, 0
|
|
_080588B4: .4byte gUnknown_2031DEC
|
|
_080588B8: .4byte gMapObjects
|
|
_080588BC:
|
|
ldrb r0, [r4]
|
|
lsls r0, 30
|
|
lsrs r0, 31
|
|
bl sub_805C7F8
|
|
_080588C6:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _08058904 @ =SpriteCB_LinkPlayer
|
|
movs r2, 0
|
|
str r2, [sp]
|
|
movs r3, 0
|
|
bl AddPseudoEventObject
|
|
strb r0, [r4, 0x4]
|
|
ldrb r1, [r4, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08058908 @ =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]
|
|
_080588FC:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08058904: .4byte SpriteCB_LinkPlayer
|
|
_08058908: .4byte gSprites
|
|
thumb_func_end sub_8058878
|
|
|
|
thumb_func_start SpriteCB_LinkPlayer
|
|
SpriteCB_LinkPlayer: @ 805890C
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r4, [r5, r0]
|
|
lsls r4, 2
|
|
ldr r0, _08058970 @ =gUnknown_2031DEC
|
|
adds r4, r0
|
|
ldrb r1, [r4, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08058974 @ =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 _08058978
|
|
ldrb r0, [r6, 0x19]
|
|
bl FieldObjectDirectionToImageAnimId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnim
|
|
b _0805898A
|
|
.align 2, 0
|
|
_08058970: .4byte gUnknown_2031DEC
|
|
_08058974: .4byte gMapObjects
|
|
_08058978:
|
|
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
|
|
_0805898A:
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8068EB4
|
|
ldrb r0, [r6]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
bge _080589BC
|
|
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]
|
|
_080589BC:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end SpriteCB_LinkPlayer
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|