mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-16 19:47:35 +01:00
8076 lines
123 KiB
ArmAsm
8076 lines
123 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start Special_ShowDiploma
|
|
Special_ShowDiploma: @ 8137CB4
|
|
push {lr}
|
|
ldr r0, =CB2_ShowDiploma
|
|
bl SetMainCallback2
|
|
bl ScriptContext2_Enable
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end Special_ShowDiploma
|
|
|
|
thumb_func_start Special_ViewWallClock
|
|
Special_ViewWallClock: @ 8137CC8
|
|
push {lr}
|
|
ldr r0, =gMain
|
|
ldr r1, =c2_exit_to_overworld_2_switch
|
|
str r1, [r0, 0x8]
|
|
ldr r0, =Cb2_ViewWallClock
|
|
bl SetMainCallback2
|
|
bl ScriptContext2_Enable
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end Special_ViewWallClock
|
|
|
|
thumb_func_start ResetCyclingRoadChallengeData
|
|
ResetCyclingRoadChallengeData: @ 8137CEC
|
|
ldr r0, =gBikeCyclingChallenge
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, =0x0203ab55
|
|
strb r1, [r0]
|
|
ldr r1, =gUnknown_0203AB58
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end ResetCyclingRoadChallengeData
|
|
|
|
thumb_func_start Special_BeginCyclingRoadChallenge
|
|
Special_BeginCyclingRoadChallenge: @ 8137D0C
|
|
ldr r1, =gBikeCyclingChallenge
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, =0x0203ab55
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_0203AB58
|
|
ldr r0, =gMain
|
|
ldr r0, [r0, 0x20]
|
|
str r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end Special_BeginCyclingRoadChallenge
|
|
|
|
thumb_func_start GetPlayerAvatarBike
|
|
GetPlayerAvatarBike: @ 8137D34
|
|
push {lr}
|
|
movs r0, 0x4
|
|
bl TestPlayerAvatarFlags
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08137D46
|
|
movs r0, 0x1
|
|
b _08137D58
|
|
_08137D46:
|
|
movs r0, 0x2
|
|
bl TestPlayerAvatarFlags
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08137D56
|
|
movs r0, 0
|
|
b _08137D58
|
|
_08137D56:
|
|
movs r0, 0x2
|
|
_08137D58:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetPlayerAvatarBike
|
|
|
|
thumb_func_start DetermineCyclingRoadResults
|
|
DetermineCyclingRoadResults: @ 8137D5C
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
cmp r6, 0x63
|
|
bhi _08137D88
|
|
ldr r4, =gStringVar1
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r1, =gText_SpaceTimes
|
|
adds r0, r4, 0
|
|
bl StringAppend
|
|
b _08137D90
|
|
.pool
|
|
_08137D88:
|
|
ldr r0, =gStringVar1
|
|
ldr r1, =gText_99TimesPlus
|
|
bl StringCopy
|
|
_08137D90:
|
|
ldr r0, =0x00000e0f
|
|
cmp r7, r0
|
|
bhi _08137DF0
|
|
ldr r4, =gStringVar2
|
|
adds r0, r7, 0
|
|
movs r1, 0x3C
|
|
bl __udivsi3
|
|
adds r1, r0, 0
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
movs r0, 0xAD
|
|
strb r0, [r4, 0x2]
|
|
adds r5, r4, 0x3
|
|
adds r0, r7, 0
|
|
movs r1, 0x3C
|
|
bl __umodsi3
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
movs r1, 0x3C
|
|
bl __udivsi3
|
|
adds r1, r0, 0
|
|
adds r0, r5, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r1, =gText_SpaceSeconds
|
|
adds r0, r4, 0
|
|
bl StringAppend
|
|
b _08137DF8
|
|
.pool
|
|
_08137DF0:
|
|
ldr r0, =gStringVar2
|
|
ldr r1, =gText_1MinutePlus
|
|
bl StringCopy
|
|
_08137DF8:
|
|
movs r4, 0
|
|
cmp r6, 0
|
|
bne _08137E0C
|
|
movs r4, 0x5
|
|
b _08137E2A
|
|
.pool
|
|
_08137E0C:
|
|
cmp r6, 0x3
|
|
bhi _08137E14
|
|
movs r4, 0x4
|
|
b _08137E2A
|
|
_08137E14:
|
|
cmp r6, 0x9
|
|
bhi _08137E1C
|
|
movs r4, 0x3
|
|
b _08137E2A
|
|
_08137E1C:
|
|
cmp r6, 0x13
|
|
bhi _08137E24
|
|
movs r4, 0x2
|
|
b _08137E2A
|
|
_08137E24:
|
|
cmp r6, 0x63
|
|
bhi _08137E2A
|
|
movs r4, 0x1
|
|
_08137E2A:
|
|
adds r0, r7, 0
|
|
movs r1, 0x3C
|
|
bl __udivsi3
|
|
cmp r0, 0xA
|
|
bhi _08137E3A
|
|
adds r0, r4, 0x5
|
|
b _08137E58
|
|
_08137E3A:
|
|
cmp r0, 0xF
|
|
bhi _08137E42
|
|
adds r0, r4, 0x4
|
|
b _08137E58
|
|
_08137E42:
|
|
cmp r0, 0x14
|
|
bhi _08137E4A
|
|
adds r0, r4, 0x3
|
|
b _08137E58
|
|
_08137E4A:
|
|
cmp r0, 0x28
|
|
bhi _08137E52
|
|
adds r0, r4, 0x2
|
|
b _08137E58
|
|
_08137E52:
|
|
cmp r0, 0x3B
|
|
bhi _08137E5C
|
|
adds r0, r4, 0x1
|
|
_08137E58:
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_08137E5C:
|
|
ldr r0, =gSpecialVar_Result
|
|
strh r4, [r0]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end DetermineCyclingRoadResults
|
|
|
|
thumb_func_start FinishCyclingRoadChallenge
|
|
FinishCyclingRoadChallenge: @ 8137E6C
|
|
push {r4,r5,lr}
|
|
ldr r0, =gMain
|
|
ldr r1, =gUnknown_0203AB58
|
|
ldr r4, [r0, 0x20]
|
|
ldr r0, [r1]
|
|
subs r4, r0
|
|
ldr r5, =0x0203ab55
|
|
ldrb r1, [r5]
|
|
adds r0, r4, 0
|
|
bl DetermineCyclingRoadResults
|
|
ldrb r1, [r5]
|
|
adds r0, r4, 0
|
|
bl RecordCyclingRoadResults
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end FinishCyclingRoadChallenge
|
|
|
|
thumb_func_start RecordCyclingRoadResults
|
|
RecordCyclingRoadResults: @ 8137E9C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r5, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
ldr r6, =0x00004028
|
|
adds r0, r6, 0
|
|
bl VarGet
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
ldr r7, =0x00004029
|
|
adds r0, r7, 0
|
|
bl VarGet
|
|
lsls r0, 16
|
|
adds r4, r0
|
|
cmp r4, r5
|
|
bhi _08137ECC
|
|
cmp r4, 0
|
|
bne _08137EE6
|
|
_08137ECC:
|
|
lsls r1, r5, 16
|
|
lsrs r1, 16
|
|
adds r0, r6, 0
|
|
bl VarSet
|
|
lsrs r1, r5, 16
|
|
adds r0, r7, 0
|
|
bl VarSet
|
|
ldr r0, =0x00004027
|
|
mov r1, r8
|
|
bl VarSet
|
|
_08137EE6:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end RecordCyclingRoadResults
|
|
|
|
thumb_func_start GetRecordedCyclingRoadResults
|
|
GetRecordedCyclingRoadResults: @ 8137EFC
|
|
push {r4,lr}
|
|
ldr r0, =0x00004028
|
|
bl VarGet
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
ldr r0, =0x00004029
|
|
bl VarGet
|
|
lsls r0, 16
|
|
adds r4, r0
|
|
cmp r4, 0
|
|
beq _08137F3C
|
|
ldr r0, =0x00004027
|
|
bl VarGet
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl DetermineCyclingRoadResults
|
|
movs r0, 0x1
|
|
b _08137F3E
|
|
.pool
|
|
_08137F3C:
|
|
movs r0, 0
|
|
_08137F3E:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetRecordedCyclingRoadResults
|
|
|
|
thumb_func_start UpdateCyclingRoadState
|
|
UpdateCyclingRoadState: @ 8137F44
|
|
push {r4,lr}
|
|
ldr r0, =gUnknown_020322DC
|
|
ldrh r1, [r0]
|
|
ldr r0, =0x00000c1d
|
|
cmp r1, r0
|
|
beq _08137F7C
|
|
ldr r4, =0x000040a9
|
|
adds r0, r4, 0
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x2
|
|
beq _08137F6E
|
|
adds r0, r4, 0
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x3
|
|
bne _08137F7C
|
|
_08137F6E:
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl VarSet
|
|
movs r0, 0
|
|
bl Overworld_SetSavedMusic
|
|
_08137F7C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end UpdateCyclingRoadState
|
|
|
|
thumb_func_start SetSSTidalFlag
|
|
SetSSTidalFlag: @ 8137F90
|
|
push {lr}
|
|
ldr r0, =0x0000088d
|
|
bl FlagSet
|
|
ldr r0, =0x0000404a
|
|
bl GetVarPointer
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end SetSSTidalFlag
|
|
|
|
thumb_func_start ResetSSTidalFlag
|
|
ResetSSTidalFlag: @ 8137FB0
|
|
push {lr}
|
|
ldr r0, =0x0000088d
|
|
bl FlagClear
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end ResetSSTidalFlag
|
|
|
|
thumb_func_start CountSSTidalStep
|
|
CountSSTidalStep: @ 8137FC0
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r0, =0x0000088d
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08137FE6
|
|
ldr r0, =0x0000404a
|
|
bl GetVarPointer
|
|
ldrh r1, [r0]
|
|
adds r1, r4, r1
|
|
strh r1, [r0]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
cmp r1, 0xCC
|
|
bhi _08137FF4
|
|
_08137FE6:
|
|
movs r0, 0
|
|
b _08137FF6
|
|
.pool
|
|
_08137FF4:
|
|
movs r0, 0x1
|
|
_08137FF6:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CountSSTidalStep
|
|
|
|
thumb_func_start GetSSTidalLocation
|
|
GetSSTidalLocation: @ 8137FFC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
mov r8, r0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
adds r7, r3, 0
|
|
ldr r0, =0x0000404a
|
|
bl GetVarPointer
|
|
adds r4, r0, 0
|
|
ldr r0, =0x000040b4
|
|
bl GetVarPointer
|
|
ldrh r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, 0x9
|
|
bhi _081380C2
|
|
lsls r0, 2
|
|
ldr r1, =_08138038
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08138038:
|
|
.4byte _08138060
|
|
.4byte _08138070
|
|
.4byte _08138064
|
|
.4byte _08138068
|
|
.4byte _08138068
|
|
.4byte _0813806C
|
|
.4byte _08138098
|
|
.4byte _08138060
|
|
.4byte _08138064
|
|
.4byte _0813806C
|
|
_08138060:
|
|
movs r0, 0x1
|
|
b _081380CE
|
|
_08138064:
|
|
movs r0, 0x4
|
|
b _081380CE
|
|
_08138068:
|
|
movs r0, 0x2
|
|
b _081380CE
|
|
_0813806C:
|
|
movs r0, 0x3
|
|
b _081380CE
|
|
_08138070:
|
|
ldrh r0, [r4]
|
|
cmp r0, 0x3B
|
|
bhi _08138080
|
|
movs r0, 0x31
|
|
strb r0, [r5]
|
|
ldrh r0, [r4]
|
|
adds r0, 0x13
|
|
b _081380C0
|
|
_08138080:
|
|
cmp r0, 0x8B
|
|
bhi _0813808E
|
|
movs r0, 0x30
|
|
strb r0, [r5]
|
|
ldrh r0, [r4]
|
|
subs r0, 0x3C
|
|
b _081380C0
|
|
_0813808E:
|
|
movs r0, 0x2F
|
|
strb r0, [r5]
|
|
ldrh r0, [r4]
|
|
subs r0, 0x8C
|
|
b _081380C0
|
|
_08138098:
|
|
ldrh r0, [r4]
|
|
cmp r0, 0x41
|
|
bhi _081380A8
|
|
movs r0, 0x2F
|
|
strb r0, [r5]
|
|
ldrh r1, [r4]
|
|
movs r0, 0x41
|
|
b _081380BE
|
|
_081380A8:
|
|
cmp r0, 0x91
|
|
bhi _081380B6
|
|
movs r0, 0x30
|
|
strb r0, [r5]
|
|
ldrh r1, [r4]
|
|
movs r0, 0x91
|
|
b _081380BE
|
|
_081380B6:
|
|
movs r0, 0x31
|
|
strb r0, [r5]
|
|
ldrh r1, [r4]
|
|
movs r0, 0xE0
|
|
_081380BE:
|
|
subs r0, r1
|
|
_081380C0:
|
|
strh r0, [r6]
|
|
_081380C2:
|
|
movs r0, 0
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
movs r0, 0x14
|
|
strh r0, [r7]
|
|
movs r0, 0
|
|
_081380CE:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetSSTidalLocation
|
|
|
|
thumb_func_start is_tile_that_overrides_player_control
|
|
is_tile_that_overrides_player_control: @ 81380D8
|
|
push {lr}
|
|
movs r0, 0x88
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0813810A
|
|
ldr r0, =gMapHeader
|
|
ldrb r0, [r0, 0x17]
|
|
cmp r0, 0x1
|
|
blt _0813810A
|
|
cmp r0, 0x3
|
|
ble _081380F6
|
|
cmp r0, 0x6
|
|
bne _0813810A
|
|
_081380F6:
|
|
ldr r0, =0x000040f2
|
|
bl GetVarPointer
|
|
ldrh r1, [r0]
|
|
adds r1, 0x1
|
|
strh r1, [r0]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
cmp r1, 0xF9
|
|
bhi _08138118
|
|
_0813810A:
|
|
movs r0, 0
|
|
b _0813811A
|
|
.pool
|
|
_08138118:
|
|
movs r0, 0x1
|
|
_0813811A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end is_tile_that_overrides_player_control
|
|
|
|
thumb_func_start sub_8138120
|
|
sub_8138120: @ 8138120
|
|
push {lr}
|
|
movs r0, 0x8A
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08138152
|
|
ldr r0, =gMapHeader
|
|
ldrb r0, [r0, 0x17]
|
|
cmp r0, 0x1
|
|
blt _08138152
|
|
cmp r0, 0x3
|
|
ble _0813813E
|
|
cmp r0, 0x6
|
|
bne _08138152
|
|
_0813813E:
|
|
ldr r0, =0x000040f3
|
|
bl GetVarPointer
|
|
ldrh r1, [r0]
|
|
adds r1, 0x1
|
|
strh r1, [r0]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
cmp r1, 0x9
|
|
bhi _08138160
|
|
_08138152:
|
|
movs r0, 0
|
|
b _08138162
|
|
.pool
|
|
_08138160:
|
|
movs r0, 0x1
|
|
_08138162:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8138120
|
|
|
|
thumb_func_start sub_8138168
|
|
sub_8138168: @ 8138168
|
|
push {lr}
|
|
movs r0, 0x72
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0813819A
|
|
ldr r0, =gMapHeader
|
|
ldrb r0, [r0, 0x17]
|
|
cmp r0, 0x1
|
|
blt _0813819A
|
|
cmp r0, 0x3
|
|
ble _08138186
|
|
cmp r0, 0x6
|
|
bne _0813819A
|
|
_08138186:
|
|
ldr r0, =0x000040f5
|
|
bl GetVarPointer
|
|
ldrh r1, [r0]
|
|
adds r1, 0x1
|
|
strh r1, [r0]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
cmp r1, 0x9
|
|
bhi _081381A8
|
|
_0813819A:
|
|
movs r0, 0
|
|
b _081381AA
|
|
.pool
|
|
_081381A8:
|
|
movs r0, 0x1
|
|
_081381AA:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8138168
|
|
|
|
thumb_func_start sub_81381B0
|
|
sub_81381B0: @ 81381B0
|
|
push {lr}
|
|
movs r0, 0x80
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _081381E2
|
|
ldr r0, =gMapHeader
|
|
ldrb r0, [r0, 0x17]
|
|
cmp r0, 0x1
|
|
blt _081381E2
|
|
cmp r0, 0x3
|
|
ble _081381CE
|
|
cmp r0, 0x6
|
|
bne _081381E2
|
|
_081381CE:
|
|
ldr r0, =0x000040f4
|
|
bl GetVarPointer
|
|
ldrh r1, [r0]
|
|
adds r1, 0x1
|
|
strh r1, [r0]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
cmp r1, 0xF9
|
|
bhi _081381F0
|
|
_081381E2:
|
|
movs r0, 0
|
|
b _081381F2
|
|
.pool
|
|
_081381F0:
|
|
movs r0, 0x1
|
|
_081381F2:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81381B0
|
|
|
|
thumb_func_start sub_81381F8
|
|
sub_81381F8: @ 81381F8
|
|
push {lr}
|
|
movs r0, 0x75
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0813822A
|
|
ldr r0, =gMapHeader
|
|
ldrb r0, [r0, 0x17]
|
|
cmp r0, 0x1
|
|
blt _0813822A
|
|
cmp r0, 0x3
|
|
ble _08138216
|
|
cmp r0, 0x6
|
|
bne _0813822A
|
|
_08138216:
|
|
ldr r0, =0x000040f6
|
|
bl GetVarPointer
|
|
ldrh r1, [r0]
|
|
adds r1, 0x1
|
|
strh r1, [r0]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
cmp r1, 0xF9
|
|
bhi _08138238
|
|
_0813822A:
|
|
movs r0, 0
|
|
b _0813823A
|
|
.pool
|
|
_08138238:
|
|
movs r0, 0x1
|
|
_0813823A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81381F8
|
|
|
|
thumb_func_start GetLinkPartnerNames
|
|
GetLinkPartnerNames: @ 8138240
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r6, 0
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
bl GetLinkPlayerCount
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bcs _0813828A
|
|
ldr r0, =gTVStringVarPtrs
|
|
mov r8, r0
|
|
_08138262:
|
|
cmp r7, r4
|
|
beq _08138280
|
|
lsls r0, r6, 2
|
|
add r0, r8
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 3
|
|
subs r1, r4
|
|
lsls r1, 2
|
|
ldr r2, =gLinkPlayers + 8
|
|
adds r1, r2
|
|
bl StringCopy
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_08138280:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _08138262
|
|
_0813828A:
|
|
adds r0, r5, 0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end GetLinkPartnerNames
|
|
|
|
thumb_func_start SpawnLinkPartnerFieldObject
|
|
SpawnLinkPartnerFieldObject: @ 81382A0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x14
|
|
movs r7, 0
|
|
movs r0, 0
|
|
mov r9, r0
|
|
mov r8, r0
|
|
ldr r1, =gUnknown_085B2B5C
|
|
add r0, sp, 0x8
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
add r4, sp, 0xC
|
|
ldr r1, =gUnknown_085B2B60
|
|
adds r0, r4, 0
|
|
movs r2, 0x8
|
|
bl memcpy
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
bl player_get_direction_lower_nybble
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r0, 0
|
|
cmp r0, 0x2
|
|
beq _08138310
|
|
cmp r0, 0x2
|
|
bgt _081382F4
|
|
cmp r0, 0x1
|
|
beq _0813833C
|
|
b _08138350
|
|
.pool
|
|
_081382F4:
|
|
cmp r1, 0x3
|
|
beq _081382FE
|
|
cmp r1, 0x4
|
|
beq _08138324
|
|
b _08138350
|
|
_081382FE:
|
|
movs r7, 0x2
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
b _0813832C
|
|
.pool
|
|
_08138310:
|
|
movs r7, 0x1
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0]
|
|
mov r9, r1
|
|
ldrh r0, [r0, 0x2]
|
|
subs r0, 0x1
|
|
b _0813834A
|
|
.pool
|
|
_08138324:
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
_0813832C:
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
ldrh r1, [r1, 0x2]
|
|
mov r8, r1
|
|
b _08138350
|
|
.pool
|
|
_0813833C:
|
|
movs r7, 0x3
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrh r3, [r0]
|
|
mov r9, r3
|
|
ldrh r0, [r0, 0x2]
|
|
adds r0, 0x1
|
|
_0813834A:
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
_08138350:
|
|
movs r6, 0
|
|
b _08138410
|
|
.pool
|
|
_08138358:
|
|
cmp r10, r6
|
|
beq _0813840A
|
|
ldr r0, =gLinkPlayers
|
|
lsls r2, r6, 3
|
|
subs r1, r2, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r3, [r1]
|
|
adds r4, r0, 0
|
|
cmp r3, 0x1
|
|
blt _0813838C
|
|
cmp r3, 0x2
|
|
ble _0813837C
|
|
cmp r3, 0x3
|
|
beq _08138388
|
|
b _0813838C
|
|
.pool
|
|
_0813837C:
|
|
ldrb r0, [r1, 0x13]
|
|
movs r5, 0xEC
|
|
cmp r0, 0
|
|
bne _0813839C
|
|
movs r5, 0xEB
|
|
b _0813839C
|
|
_08138388:
|
|
ldrb r0, [r1, 0x13]
|
|
b _08138394
|
|
_0813838C:
|
|
subs r0, r2, r6
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r0, [r0, 0x13]
|
|
_08138394:
|
|
movs r5, 0x69
|
|
cmp r0, 0
|
|
bne _0813839C
|
|
movs r5, 0x64
|
|
_0813839C:
|
|
mov r0, sp
|
|
adds r0, r7
|
|
adds r0, 0x8
|
|
ldrb r1, [r0]
|
|
movs r4, 0xF0
|
|
subs r4, r6
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r2, r7, 1
|
|
mov r0, sp
|
|
adds r0, r2
|
|
adds r0, 0xC
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
mov r3, r9
|
|
lsls r3, 16
|
|
asrs r3, 16
|
|
mov r12, r3
|
|
add r0, r12
|
|
adds r3, r0, 0x7
|
|
lsls r3, 16
|
|
asrs r3, 16
|
|
mov r12, r3
|
|
mov r0, sp
|
|
adds r0, 0xD
|
|
adds r0, r2
|
|
movs r2, 0
|
|
ldrsb r2, [r0, r2]
|
|
mov r3, r8
|
|
lsls r0, r3, 16
|
|
asrs r0, 16
|
|
adds r0, r2
|
|
adds r0, 0x7
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
adds r2, r4, 0
|
|
mov r3, r12
|
|
bl SpawnSpecialFieldObjectParametrized
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
adds r2, r6, 0
|
|
bl sub_813842C
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x4
|
|
bne _0813840A
|
|
movs r7, 0
|
|
_0813840A:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_08138410:
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
cmp r6, r0
|
|
bcc _08138358
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end SpawnLinkPartnerFieldObject
|
|
|
|
thumb_func_start sub_813842C
|
|
sub_813842C: @ 813842C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsls r1, 24
|
|
lsrs r3, r1, 24
|
|
lsls r2, 24
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
adds r2, r1
|
|
lsrs r5, r2, 24
|
|
lsrs r4, r0, 24
|
|
movs r2, 0xA8
|
|
lsls r2, 21
|
|
adds r0, r2
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bls _08138454
|
|
cmp r4, 0x64
|
|
beq _08138454
|
|
cmp r4, 0x69
|
|
bne _081384E6
|
|
_08138454:
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x5]
|
|
ldrb r2, [r0, 0x4]
|
|
adds r0, r3, 0
|
|
bl GetFieldObjectIdByLocalIdAndMap
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x10
|
|
beq _081384E6
|
|
ldr r1, =gMapObjects
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x4]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, =gSprites
|
|
adds r1, r0
|
|
lsls r3, r5, 4
|
|
ldrb r2, [r1, 0x5]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
orrs r0, r3
|
|
strb r0, [r1, 0x5]
|
|
cmp r4, 0x69
|
|
beq _081384D8
|
|
cmp r4, 0x69
|
|
bgt _081384A8
|
|
cmp r4, 0x64
|
|
beq _081384C4
|
|
b _081384E6
|
|
.pool
|
|
_081384A8:
|
|
cmp r4, 0xEB
|
|
beq _081384B2
|
|
cmp r4, 0xEC
|
|
beq _081384BC
|
|
b _081384E6
|
|
_081384B2:
|
|
ldr r0, =gFieldObjectPalette33
|
|
b _081384C6
|
|
.pool
|
|
_081384BC:
|
|
ldr r0, =gFieldObjectPalette34
|
|
b _081384C6
|
|
.pool
|
|
_081384C4:
|
|
ldr r0, =gFieldObjectPalette8
|
|
_081384C6:
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r3, r2
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
b _081384E6
|
|
.pool
|
|
_081384D8:
|
|
ldr r0, =gFieldObjectPalette17
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r3, r2
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
_081384E6:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813842C
|
|
|
|
thumb_func_start MauvilleGymSpecial1
|
|
MauvilleGymSpecial1: @ 81384F0
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
ldr r5, =gUnknown_085B2B68
|
|
_081384F6:
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
cmp r4, r0
|
|
bne _0813851C
|
|
lsls r1, r4, 2
|
|
adds r1, r5
|
|
ldrb r0, [r1]
|
|
ldrb r1, [r1, 0x1]
|
|
ldr r2, =0x00000206
|
|
bl MapGridSetMetatileIdAt
|
|
b _0813852A
|
|
.pool
|
|
_0813851C:
|
|
lsls r1, r4, 2
|
|
adds r1, r5
|
|
ldrb r0, [r1]
|
|
ldrb r1, [r1, 0x1]
|
|
ldr r2, =0x00000205
|
|
bl MapGridSetMetatileIdAt
|
|
_0813852A:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x3
|
|
bls _081384F6
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end MauvilleGymSpecial1
|
|
|
|
thumb_func_start MauvilleGymSpecial2
|
|
MauvilleGymSpecial2: @ 8138540
|
|
push {r4-r6,lr}
|
|
movs r5, 0xC
|
|
_08138544:
|
|
movs r4, 0x7
|
|
adds r6, r5, 0x1
|
|
_08138548:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl MapGridGetMetatileIdAt
|
|
ldr r1, =0xfffffde6
|
|
adds r0, r1
|
|
cmp r0, 0x37
|
|
bls _0813855A
|
|
b _08138734
|
|
_0813855A:
|
|
lsls r0, 2
|
|
ldr r1, =_0813856C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0813856C:
|
|
.4byte _081386F2
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _0813864C
|
|
.4byte _08138652
|
|
.4byte _0813868C
|
|
.4byte _08138694
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _0813865C
|
|
.4byte _08138662
|
|
.4byte _0813869C
|
|
.4byte _081386A4
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _0813866C
|
|
.4byte _08138672
|
|
.4byte _081386AC
|
|
.4byte _081386B4
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _0813867C
|
|
.4byte _08138684
|
|
.4byte _081386BC
|
|
.4byte _081386C4
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _081386CC
|
|
.4byte _081386DC
|
|
.4byte _081386EC
|
|
.4byte _08138714
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _081386D4
|
|
.4byte _081386E4
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _08138734
|
|
.4byte _0813872A
|
|
.4byte _0813871C
|
|
_0813864C:
|
|
movs r2, 0x8C
|
|
lsls r2, 2
|
|
b _08138720
|
|
_08138652:
|
|
ldr r2, =0x00000231
|
|
b _08138720
|
|
.pool
|
|
_0813865C:
|
|
movs r2, 0x8E
|
|
lsls r2, 2
|
|
b _08138720
|
|
_08138662:
|
|
ldr r2, =0x00000239
|
|
b _08138720
|
|
.pool
|
|
_0813866C:
|
|
movs r2, 0x88
|
|
lsls r2, 2
|
|
b _08138720
|
|
_08138672:
|
|
ldr r2, =0x00000221
|
|
b _08138720
|
|
.pool
|
|
_0813867C:
|
|
ldr r2, =0x00000e28
|
|
b _08138720
|
|
.pool
|
|
_08138684:
|
|
ldr r2, =0x00000e29
|
|
b _08138720
|
|
.pool
|
|
_0813868C:
|
|
ldr r2, =0x00000232
|
|
b _08138720
|
|
.pool
|
|
_08138694:
|
|
ldr r2, =0x00000233
|
|
b _08138720
|
|
.pool
|
|
_0813869C:
|
|
ldr r2, =0x0000023a
|
|
b _08138720
|
|
.pool
|
|
_081386A4:
|
|
ldr r2, =0x0000023b
|
|
b _08138720
|
|
.pool
|
|
_081386AC:
|
|
ldr r2, =0x00000222
|
|
b _08138720
|
|
.pool
|
|
_081386B4:
|
|
ldr r2, =0x00000223
|
|
b _08138720
|
|
.pool
|
|
_081386BC:
|
|
ldr r2, =0x00000e2a
|
|
b _08138720
|
|
.pool
|
|
_081386C4:
|
|
ldr r2, =0x00000e2b
|
|
b _08138720
|
|
.pool
|
|
_081386CC:
|
|
ldr r2, =0x00000e42
|
|
b _08138720
|
|
.pool
|
|
_081386D4:
|
|
ldr r2, =0x0000021a
|
|
b _08138720
|
|
.pool
|
|
_081386DC:
|
|
ldr r2, =0x00000e43
|
|
b _08138720
|
|
.pool
|
|
_081386E4:
|
|
ldr r2, =0x0000021a
|
|
b _08138720
|
|
.pool
|
|
_081386EC:
|
|
movs r2, 0xE4
|
|
lsls r2, 4
|
|
b _08138720
|
|
_081386F2:
|
|
subs r1, r5, 0x1
|
|
adds r0, r4, 0
|
|
bl MapGridGetMetatileIdAt
|
|
movs r1, 0x90
|
|
lsls r1, 2
|
|
cmp r0, r1
|
|
bne _0813870C
|
|
ldr r2, =0x00000e48
|
|
b _08138720
|
|
.pool
|
|
_0813870C:
|
|
ldr r2, =0x00000e49
|
|
b _08138720
|
|
.pool
|
|
_08138714:
|
|
ldr r2, =0x00000e41
|
|
b _08138720
|
|
.pool
|
|
_0813871C:
|
|
movs r2, 0xE5
|
|
lsls r2, 4
|
|
_08138720:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl MapGridSetMetatileIdAt
|
|
b _08138734
|
|
_0813872A:
|
|
ldr r2, =0x00000251
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl MapGridSetMetatileIdAt
|
|
_08138734:
|
|
adds r4, 0x1
|
|
cmp r4, 0xF
|
|
bgt _0813873C
|
|
b _08138548
|
|
_0813873C:
|
|
adds r5, r6, 0
|
|
cmp r5, 0x17
|
|
bgt _08138744
|
|
b _08138544
|
|
_08138744:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end MauvilleGymSpecial2
|
|
|
|
thumb_func_start MauvilleGymSpecial3
|
|
MauvilleGymSpecial3: @ 8138750
|
|
push {r4-r6,lr}
|
|
ldr r4, =gUnknown_085B2B68
|
|
movs r5, 0x3
|
|
_08138756:
|
|
ldrb r0, [r4]
|
|
ldrb r1, [r4, 0x1]
|
|
ldr r2, =0x00000206
|
|
bl MapGridSetMetatileIdAt
|
|
adds r4, 0x4
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _08138756
|
|
movs r5, 0xC
|
|
_0813876A:
|
|
movs r4, 0x7
|
|
adds r6, r5, 0x1
|
|
_0813876E:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl MapGridGetMetatileIdAt
|
|
ldr r1, =0xfffffde0
|
|
adds r0, r1
|
|
cmp r0, 0x30
|
|
bls _08138780
|
|
b _081388CA
|
|
_08138780:
|
|
lsls r0, 2
|
|
ldr r1, =_0813879C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0813879C:
|
|
.4byte _08138860
|
|
.4byte _08138866
|
|
.4byte _08138880
|
|
.4byte _08138888
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _08138870
|
|
.4byte _08138876
|
|
.4byte _08138890
|
|
.4byte _08138898
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388A0
|
|
.4byte _081388A8
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388B0
|
|
.4byte _081388B0
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388CA
|
|
.4byte _081388C0
|
|
_08138860:
|
|
movs r2, 0x8C
|
|
lsls r2, 2
|
|
b _081388B2
|
|
_08138866:
|
|
ldr r2, =0x00000231
|
|
b _081388B2
|
|
.pool
|
|
_08138870:
|
|
movs r2, 0x8E
|
|
lsls r2, 2
|
|
b _081388B2
|
|
_08138876:
|
|
ldr r2, =0x00000239
|
|
b _081388B2
|
|
.pool
|
|
_08138880:
|
|
ldr r2, =0x00000232
|
|
b _081388B2
|
|
.pool
|
|
_08138888:
|
|
ldr r2, =0x00000233
|
|
b _081388B2
|
|
.pool
|
|
_08138890:
|
|
ldr r2, =0x0000023a
|
|
b _081388B2
|
|
.pool
|
|
_08138898:
|
|
ldr r2, =0x0000023b
|
|
b _081388B2
|
|
.pool
|
|
_081388A0:
|
|
ldr r2, =0x00000e42
|
|
b _081388B2
|
|
.pool
|
|
_081388A8:
|
|
ldr r2, =0x00000e43
|
|
b _081388B2
|
|
.pool
|
|
_081388B0:
|
|
ldr r2, =0x0000021a
|
|
_081388B2:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl MapGridSetMetatileIdAt
|
|
b _081388CA
|
|
.pool
|
|
_081388C0:
|
|
ldr r2, =0x00000251
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl MapGridSetMetatileIdAt
|
|
_081388CA:
|
|
adds r4, 0x1
|
|
cmp r4, 0xF
|
|
bgt _081388D2
|
|
b _0813876E
|
|
_081388D2:
|
|
adds r5, r6, 0
|
|
cmp r5, 0x17
|
|
bgt _081388DA
|
|
b _0813876A
|
|
_081388DA:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end MauvilleGymSpecial3
|
|
|
|
thumb_func_start PetalburgGymSpecial1
|
|
PetalburgGymSpecial1: @ 81388E4
|
|
push {lr}
|
|
ldr r0, =gUnknown_0203AB5C
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_0203AB5D
|
|
strb r1, [r0]
|
|
movs r0, 0x2C
|
|
bl PlaySE
|
|
ldr r0, =Task_PetalburgGym
|
|
movs r1, 0x8
|
|
bl CreateTask
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PetalburgGymSpecial1
|
|
|
|
thumb_func_start Task_PetalburgGym
|
|
Task_PetalburgGym: @ 8138910
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, =gUnknown_085B2B78
|
|
ldr r5, =gUnknown_0203AB5D
|
|
ldrb r1, [r5]
|
|
adds r0, r1, r0
|
|
ldr r4, =gUnknown_0203AB5C
|
|
ldrb r2, [r4]
|
|
ldrb r0, [r0]
|
|
cmp r0, r2
|
|
bne _0813896C
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrb r0, [r0]
|
|
ldr r2, =gUnknown_085B2B7E
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r1, [r1]
|
|
bl PetalburgGymFunc
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
ldrb r0, [r5]
|
|
adds r0, 0x1
|
|
strb r0, [r5]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x5
|
|
bne _08138970
|
|
adds r0, r6, 0
|
|
bl DestroyTask
|
|
bl EnableBothScriptContexts
|
|
b _08138970
|
|
.pool
|
|
_0813896C:
|
|
adds r0, r2, 0x1
|
|
strb r0, [r4]
|
|
_08138970:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end Task_PetalburgGym
|
|
|
|
thumb_func_start PetalburgGymFunc
|
|
PetalburgGymFunc: @ 8138978
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 16
|
|
lsrs r2, r1, 16
|
|
movs r7, 0
|
|
subs r0, 0x1
|
|
cmp r0, 0x7
|
|
bhi _08138A40
|
|
lsls r0, 2
|
|
ldr r1, =_081389A0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_081389A0:
|
|
.4byte _081389C0
|
|
.4byte _081389D2
|
|
.4byte _081389E4
|
|
.4byte _081389F6
|
|
.4byte _08138A04
|
|
.4byte _08138A1A
|
|
.4byte _08138A26
|
|
.4byte _08138A34
|
|
_081389C0:
|
|
movs r7, 0x2
|
|
mov r1, sp
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
movs r0, 0x7
|
|
strh r0, [r1, 0x2]
|
|
add r1, sp, 0x8
|
|
movs r0, 0x68
|
|
b _08138A14
|
|
_081389D2:
|
|
movs r7, 0x2
|
|
mov r1, sp
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
movs r0, 0x7
|
|
strh r0, [r1, 0x2]
|
|
add r1, sp, 0x8
|
|
movs r0, 0x4E
|
|
b _08138A14
|
|
_081389E4:
|
|
movs r7, 0x2
|
|
mov r1, sp
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
movs r0, 0x7
|
|
strh r0, [r1, 0x2]
|
|
add r1, sp, 0x8
|
|
movs r0, 0x5B
|
|
b _08138A14
|
|
_081389F6:
|
|
movs r7, 0x1
|
|
mov r1, sp
|
|
movs r0, 0x7
|
|
strh r0, [r1]
|
|
add r1, sp, 0x8
|
|
movs r0, 0x27
|
|
b _08138A3E
|
|
_08138A04:
|
|
movs r7, 0x2
|
|
mov r1, sp
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
movs r0, 0x7
|
|
strh r0, [r1, 0x2]
|
|
add r1, sp, 0x8
|
|
movs r0, 0x34
|
|
_08138A14:
|
|
strh r0, [r1]
|
|
strh r0, [r1, 0x2]
|
|
b _08138A40
|
|
_08138A1A:
|
|
movs r7, 0x1
|
|
mov r0, sp
|
|
strh r7, [r0]
|
|
add r1, sp, 0x8
|
|
movs r0, 0x41
|
|
b _08138A3E
|
|
_08138A26:
|
|
movs r7, 0x1
|
|
mov r1, sp
|
|
movs r0, 0x7
|
|
strh r0, [r1]
|
|
add r1, sp, 0x8
|
|
movs r0, 0xD
|
|
b _08138A3E
|
|
_08138A34:
|
|
movs r7, 0x1
|
|
mov r0, sp
|
|
strh r7, [r0]
|
|
add r1, sp, 0x8
|
|
movs r0, 0x1A
|
|
_08138A3E:
|
|
strh r0, [r1]
|
|
_08138A40:
|
|
movs r6, 0
|
|
cmp r6, r7
|
|
bcs _08138A92
|
|
movs r1, 0xC0
|
|
lsls r1, 4
|
|
adds r0, r1, 0
|
|
adds r1, r2, 0
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
mov r9, r1
|
|
adds r1, r2, 0
|
|
adds r1, 0x8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
mov r8, r1
|
|
_08138A5E:
|
|
lsls r1, r6, 1
|
|
mov r3, sp
|
|
adds r5, r3, r1
|
|
ldrh r0, [r5]
|
|
adds r0, 0x7
|
|
add r4, sp, 0x8
|
|
adds r4, r1
|
|
ldrh r1, [r4]
|
|
adds r1, 0x7
|
|
mov r3, r9
|
|
lsrs r2, r3, 16
|
|
bl MapGridSetMetatileIdAt
|
|
ldrh r0, [r5]
|
|
adds r0, 0x7
|
|
ldrh r1, [r4]
|
|
adds r1, 0x8
|
|
mov r3, r8
|
|
lsrs r2, r3, 16
|
|
bl MapGridSetMetatileIdAt
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, r7
|
|
bcc _08138A5E
|
|
_08138A92:
|
|
bl DrawWholeMapView
|
|
add sp, 0x10
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PetalburgGymFunc
|
|
|
|
thumb_func_start PetalburgGymSpecial2
|
|
PetalburgGymSpecial2: @ 8138AA4
|
|
push {lr}
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrb r0, [r0]
|
|
ldr r1, =gUnknown_085B2B7E
|
|
ldrh r1, [r1, 0x8]
|
|
bl PetalburgGymFunc
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PetalburgGymSpecial2
|
|
|
|
thumb_func_start ShowFieldMessageStringVar4
|
|
ShowFieldMessageStringVar4: @ 8138AC0
|
|
push {lr}
|
|
ldr r0, =gStringVar4
|
|
bl ShowFieldMessage
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end ShowFieldMessageStringVar4
|
|
|
|
thumb_func_start StorePlayerCoordsInVars
|
|
StorePlayerCoordsInVars: @ 8138AD0
|
|
ldr r1, =gSpecialVar_0x8004
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r2, [r0]
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
ldr r1, =gSpecialVar_0x8005
|
|
ldrh r0, [r2, 0x2]
|
|
strh r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end StorePlayerCoordsInVars
|
|
|
|
thumb_func_start GetPlayerTrainerIdOnesDigit
|
|
GetPlayerTrainerIdOnesDigit: @ 8138AF0
|
|
push {lr}
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0xB]
|
|
lsls r1, 8
|
|
ldrb r0, [r0, 0xA]
|
|
orrs r0, r1
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end GetPlayerTrainerIdOnesDigit
|
|
|
|
thumb_func_start GetPlayerBigGuyGirlString
|
|
GetPlayerBigGuyGirlString: @ 8138B10
|
|
push {lr}
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r0, 0
|
|
bne _08138B34
|
|
ldr r0, =gStringVar1
|
|
ldr r1, =gText_BigGuy
|
|
bl StringCopy
|
|
b _08138B3C
|
|
.pool
|
|
_08138B34:
|
|
ldr r0, =gStringVar1
|
|
ldr r1, =gText_BigGirl
|
|
bl StringCopy
|
|
_08138B3C:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end GetPlayerBigGuyGirlString
|
|
|
|
thumb_func_start GetRivalSonDaughterString
|
|
GetRivalSonDaughterString: @ 8138B48
|
|
push {lr}
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r0, 0
|
|
bne _08138B6C
|
|
ldr r0, =gStringVar1
|
|
ldr r1, =gText_Daughter
|
|
bl StringCopy
|
|
b _08138B74
|
|
.pool
|
|
_08138B6C:
|
|
ldr r0, =gStringVar1
|
|
ldr r1, =gText_Son
|
|
bl StringCopy
|
|
_08138B74:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end GetRivalSonDaughterString
|
|
|
|
thumb_func_start sub_8138B80
|
|
sub_8138B80: @ 8138B80
|
|
ldr r0, =gBattleOutcome
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8138B80
|
|
|
|
thumb_func_start CableCarWarp
|
|
CableCarWarp: @ 8138B8C
|
|
push {lr}
|
|
sub sp, 0x4
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
beq _08138BB0
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x4
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r3, 0x6
|
|
bl Overworld_SetWarpDestination
|
|
b _08138BC2
|
|
.pool
|
|
_08138BB0:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x4
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0x1
|
|
movs r3, 0x6
|
|
bl Overworld_SetWarpDestination
|
|
_08138BC2:
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end CableCarWarp
|
|
|
|
thumb_func_start SetFlagInVar
|
|
SetFlagInVar: @ 8138BC8
|
|
push {lr}
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
bl FlagSet
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end SetFlagInVar
|
|
|
|
thumb_func_start GetWeekCount
|
|
GetWeekCount: @ 8138BDC
|
|
push {lr}
|
|
ldr r0, =gLocalTime
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
movs r1, 0x7
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, =0x0000270f
|
|
cmp r0, r1
|
|
bls _08138BF6
|
|
adds r0, r1, 0
|
|
_08138BF6:
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end GetWeekCount
|
|
|
|
thumb_func_start GetLeadMonFriendshipScore
|
|
GetLeadMonFriendshipScore: @ 8138C04
|
|
push {r4,lr}
|
|
bl GetLeadMonIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl GetMonData
|
|
cmp r0, 0xFF
|
|
bne _08138C2C
|
|
movs r0, 0x6
|
|
b _08138C7E
|
|
.pool
|
|
_08138C2C:
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl GetMonData
|
|
cmp r0, 0xC7
|
|
bls _08138C3C
|
|
movs r0, 0x5
|
|
b _08138C7E
|
|
_08138C3C:
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl GetMonData
|
|
cmp r0, 0x95
|
|
bls _08138C4C
|
|
movs r0, 0x4
|
|
b _08138C7E
|
|
_08138C4C:
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl GetMonData
|
|
cmp r0, 0x63
|
|
bls _08138C5C
|
|
movs r0, 0x3
|
|
b _08138C7E
|
|
_08138C5C:
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl GetMonData
|
|
cmp r0, 0x31
|
|
bls _08138C6C
|
|
movs r0, 0x2
|
|
b _08138C7E
|
|
_08138C6C:
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _08138C7C
|
|
movs r0, 0
|
|
b _08138C7E
|
|
_08138C7C:
|
|
movs r0, 0x1
|
|
_08138C7E:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetLeadMonFriendshipScore
|
|
|
|
thumb_func_start CB2_FieldShowRegionMap
|
|
CB2_FieldShowRegionMap: @ 8138C84
|
|
push {lr}
|
|
ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
|
|
bl sub_817018C
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end CB2_FieldShowRegionMap
|
|
|
|
thumb_func_start FieldShowRegionMap
|
|
FieldShowRegionMap: @ 8138C94
|
|
push {lr}
|
|
ldr r0, =CB2_FieldShowRegionMap
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end FieldShowRegionMap
|
|
|
|
thumb_func_start DoPCTurnOnEffect
|
|
DoPCTurnOnEffect: @ 8138CA4
|
|
push {r4,lr}
|
|
ldr r4, =Task_PCTurnOnEffect
|
|
adds r0, r4, 0
|
|
bl FuncIsActiveTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08138CD8
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r2, 0
|
|
strh r2, [r1, 0x8]
|
|
strh r0, [r1, 0xA]
|
|
strh r2, [r1, 0xC]
|
|
strh r2, [r1, 0xE]
|
|
strh r2, [r1, 0x10]
|
|
_08138CD8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end DoPCTurnOnEffect
|
|
|
|
thumb_func_start Task_PCTurnOnEffect
|
|
Task_PCTurnOnEffect: @ 8138CE8
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, =gTasks
|
|
adds r1, r0
|
|
movs r2, 0x8
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _08138D06
|
|
adds r0, r1, 0
|
|
bl PCTurnOnEffect_0
|
|
_08138D06:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end Task_PCTurnOnEffect
|
|
|
|
thumb_func_start PCTurnOnEffect_0
|
|
PCTurnOnEffect_0: @ 8138D10
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
movs r6, 0
|
|
movs r5, 0
|
|
movs r1, 0xE
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x6
|
|
bne _08138D7C
|
|
strh r5, [r4, 0xE]
|
|
bl player_get_direction_lower_nybble
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r0, 0
|
|
cmp r0, 0x3
|
|
beq _08138D44
|
|
cmp r0, 0x3
|
|
bgt _08138D3A
|
|
cmp r0, 0x2
|
|
beq _08138D40
|
|
b _08138D4C
|
|
_08138D3A:
|
|
cmp r1, 0x4
|
|
beq _08138D48
|
|
b _08138D4C
|
|
_08138D40:
|
|
movs r6, 0
|
|
b _08138D4A
|
|
_08138D44:
|
|
movs r6, 0xFF
|
|
b _08138D4A
|
|
_08138D48:
|
|
movs r6, 0x1
|
|
_08138D4A:
|
|
movs r5, 0xFF
|
|
_08138D4C:
|
|
movs r1, 0x10
|
|
ldrsh r0, [r4, r1]
|
|
lsls r1, r6, 24
|
|
asrs r1, 24
|
|
lsls r2, r5, 24
|
|
asrs r2, 24
|
|
bl PCTurnOnEffect_1
|
|
bl DrawWholeMapView
|
|
ldrh r0, [r4, 0x10]
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
strh r0, [r4, 0x10]
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x5
|
|
bne _08138D7C
|
|
ldrb r0, [r4, 0xA]
|
|
bl DestroyTask
|
|
_08138D7C:
|
|
ldrh r0, [r4, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xE]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PCTurnOnEffect_0
|
|
|
|
thumb_func_start PCTurnOnEffect_1
|
|
PCTurnOnEffect_1: @ 8138D88
|
|
push {r4,r5,lr}
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r4, r2, 24
|
|
movs r3, 0
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _08138DC4
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _08138DAC
|
|
movs r3, 0x4
|
|
b _08138DE6
|
|
.pool
|
|
_08138DAC:
|
|
cmp r0, 0x1
|
|
bne _08138DB8
|
|
ldr r3, =0x0000025a
|
|
b _08138DE6
|
|
.pool
|
|
_08138DB8:
|
|
cmp r0, 0x2
|
|
bne _08138DE6
|
|
ldr r3, =0x00000259
|
|
b _08138DE6
|
|
.pool
|
|
_08138DC4:
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _08138DD4
|
|
movs r3, 0x5
|
|
b _08138DE6
|
|
.pool
|
|
_08138DD4:
|
|
cmp r0, 0x1
|
|
bne _08138DE0
|
|
ldr r3, =0x0000027f
|
|
b _08138DE6
|
|
.pool
|
|
_08138DE0:
|
|
cmp r0, 0x2
|
|
bne _08138DE6
|
|
ldr r3, =0x0000027e
|
|
_08138DE6:
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r2, [r0]
|
|
movs r5, 0
|
|
ldrsh r0, [r2, r5]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
adds r0, r1
|
|
adds r0, 0x7
|
|
movs r5, 0x2
|
|
ldrsh r1, [r2, r5]
|
|
lsls r2, r4, 24
|
|
asrs r2, 24
|
|
adds r1, r2
|
|
adds r1, 0x7
|
|
movs r4, 0xC0
|
|
lsls r4, 4
|
|
adds r2, r4, 0
|
|
orrs r3, r2
|
|
adds r2, r3, 0
|
|
bl MapGridSetMetatileIdAt
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PCTurnOnEffect_1
|
|
|
|
thumb_func_start DoPCTurnOffEffect
|
|
DoPCTurnOffEffect: @ 8138E20
|
|
push {lr}
|
|
bl PCTurnOffEffect
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end DoPCTurnOffEffect
|
|
|
|
thumb_func_start PCTurnOffEffect
|
|
PCTurnOffEffect: @ 8138E2C
|
|
push {r4-r6,lr}
|
|
movs r6, 0
|
|
movs r5, 0
|
|
movs r4, 0
|
|
bl player_get_direction_lower_nybble
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r0, 0
|
|
cmp r0, 0x3
|
|
beq _08138E56
|
|
cmp r0, 0x3
|
|
bgt _08138E4C
|
|
cmp r0, 0x2
|
|
beq _08138E52
|
|
b _08138E5E
|
|
_08138E4C:
|
|
cmp r1, 0x4
|
|
beq _08138E5A
|
|
b _08138E5E
|
|
_08138E52:
|
|
movs r6, 0
|
|
b _08138E5C
|
|
_08138E56:
|
|
movs r6, 0xFF
|
|
b _08138E5C
|
|
_08138E5A:
|
|
movs r6, 0x1
|
|
_08138E5C:
|
|
movs r5, 0xFF
|
|
_08138E5E:
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _08138E70
|
|
movs r4, 0x4
|
|
b _08138E82
|
|
.pool
|
|
_08138E70:
|
|
cmp r0, 0x1
|
|
bne _08138E7C
|
|
ldr r4, =0x0000025a
|
|
b _08138E82
|
|
.pool
|
|
_08138E7C:
|
|
cmp r0, 0x2
|
|
bne _08138E82
|
|
ldr r4, =0x00000259
|
|
_08138E82:
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r2, [r0]
|
|
movs r1, 0
|
|
ldrsh r0, [r2, r1]
|
|
lsls r1, r6, 24
|
|
asrs r1, 24
|
|
adds r0, r1
|
|
adds r0, 0x7
|
|
movs r3, 0x2
|
|
ldrsh r1, [r2, r3]
|
|
lsls r2, r5, 24
|
|
asrs r2, 24
|
|
adds r1, r2
|
|
adds r1, 0x7
|
|
movs r3, 0xC0
|
|
lsls r3, 4
|
|
adds r2, r3, 0
|
|
orrs r4, r2
|
|
adds r2, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
bl DrawWholeMapView
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PCTurnOffEffect
|
|
|
|
thumb_func_start DoLotteryCornerComputerEffect
|
|
DoLotteryCornerComputerEffect: @ 8138EC0
|
|
push {r4,lr}
|
|
ldr r4, =Task_LotteryCornerComputerEffect
|
|
adds r0, r4, 0
|
|
bl FuncIsActiveTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08138EF4
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r2, 0
|
|
strh r2, [r1, 0x8]
|
|
strh r0, [r1, 0xA]
|
|
strh r2, [r1, 0xC]
|
|
strh r2, [r1, 0xE]
|
|
strh r2, [r1, 0x10]
|
|
_08138EF4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end DoLotteryCornerComputerEffect
|
|
|
|
thumb_func_start Task_LotteryCornerComputerEffect
|
|
Task_LotteryCornerComputerEffect: @ 8138F04
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, =gTasks
|
|
adds r1, r0
|
|
movs r2, 0x8
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _08138F22
|
|
adds r0, r1, 0
|
|
bl LotteryCornerComputerEffect
|
|
_08138F22:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end Task_LotteryCornerComputerEffect
|
|
|
|
thumb_func_start LotteryCornerComputerEffect
|
|
LotteryCornerComputerEffect: @ 8138F2C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0xE
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x6
|
|
bne _08138F9A
|
|
movs r0, 0
|
|
strh r0, [r4, 0xE]
|
|
movs r1, 0x10
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _08138F64
|
|
ldr r2, =0x00000e9d
|
|
movs r0, 0x12
|
|
movs r1, 0x8
|
|
bl MapGridSetMetatileIdAt
|
|
ldr r2, =0x00000ea5
|
|
movs r0, 0x12
|
|
movs r1, 0x9
|
|
bl MapGridSetMetatileIdAt
|
|
b _08138F7A
|
|
.pool
|
|
_08138F64:
|
|
ldr r2, =0x00000e58
|
|
movs r0, 0x12
|
|
movs r1, 0x8
|
|
bl MapGridSetMetatileIdAt
|
|
movs r2, 0xE6
|
|
lsls r2, 4
|
|
movs r0, 0x12
|
|
movs r1, 0x9
|
|
bl MapGridSetMetatileIdAt
|
|
_08138F7A:
|
|
bl DrawWholeMapView
|
|
ldrh r0, [r4, 0x10]
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
strh r0, [r4, 0x10]
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x5
|
|
bne _08138F9A
|
|
ldrb r0, [r4, 0xA]
|
|
bl DestroyTask
|
|
_08138F9A:
|
|
ldrh r0, [r4, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xE]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end LotteryCornerComputerEffect
|
|
|
|
thumb_func_start EndLotteryCornerComputerEffect
|
|
EndLotteryCornerComputerEffect: @ 8138FAC
|
|
push {lr}
|
|
ldr r2, =0x00000e9d
|
|
movs r0, 0x12
|
|
movs r1, 0x8
|
|
bl MapGridSetMetatileIdAt
|
|
ldr r2, =0x00000ea5
|
|
movs r0, 0x12
|
|
movs r1, 0x9
|
|
bl MapGridSetMetatileIdAt
|
|
bl DrawWholeMapView
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end EndLotteryCornerComputerEffect
|
|
|
|
thumb_func_start SetTrickHouseEndRoomFlag
|
|
SetTrickHouseEndRoomFlag: @ 8138FD4
|
|
push {lr}
|
|
ldr r1, =gSpecialVar_0x8004
|
|
ldr r0, =0x000001f5
|
|
strh r0, [r1]
|
|
bl FlagSet
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end SetTrickHouseEndRoomFlag
|
|
|
|
thumb_func_start ResetTrickHouseEndRoomFlag
|
|
ResetTrickHouseEndRoomFlag: @ 8138FEC
|
|
push {lr}
|
|
ldr r1, =gSpecialVar_0x8004
|
|
ldr r0, =0x000001f5
|
|
strh r0, [r1]
|
|
bl FlagClear
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end ResetTrickHouseEndRoomFlag
|
|
|
|
thumb_func_start CheckLeadMonCool
|
|
CheckLeadMonCool: @ 8139004
|
|
push {lr}
|
|
bl GetLeadMonIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x16
|
|
bl GetMonData
|
|
cmp r0, 0xC7
|
|
bls _08139028
|
|
movs r0, 0x1
|
|
b _0813902A
|
|
.pool
|
|
_08139028:
|
|
movs r0, 0
|
|
_0813902A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CheckLeadMonCool
|
|
|
|
thumb_func_start CheckLeadMonBeauty
|
|
CheckLeadMonBeauty: @ 8139030
|
|
push {lr}
|
|
bl GetLeadMonIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x17
|
|
bl GetMonData
|
|
cmp r0, 0xC7
|
|
bls _08139054
|
|
movs r0, 0x1
|
|
b _08139056
|
|
.pool
|
|
_08139054:
|
|
movs r0, 0
|
|
_08139056:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CheckLeadMonBeauty
|
|
|
|
thumb_func_start CheckLeadMonCute
|
|
CheckLeadMonCute: @ 813905C
|
|
push {lr}
|
|
bl GetLeadMonIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x18
|
|
bl GetMonData
|
|
cmp r0, 0xC7
|
|
bls _08139080
|
|
movs r0, 0x1
|
|
b _08139082
|
|
.pool
|
|
_08139080:
|
|
movs r0, 0
|
|
_08139082:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CheckLeadMonCute
|
|
|
|
thumb_func_start CheckLeadMonSmart
|
|
CheckLeadMonSmart: @ 8139088
|
|
push {lr}
|
|
bl GetLeadMonIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x21
|
|
bl GetMonData
|
|
cmp r0, 0xC7
|
|
bls _081390AC
|
|
movs r0, 0x1
|
|
b _081390AE
|
|
.pool
|
|
_081390AC:
|
|
movs r0, 0
|
|
_081390AE:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CheckLeadMonSmart
|
|
|
|
thumb_func_start CheckLeadMonTough
|
|
CheckLeadMonTough: @ 81390B4
|
|
push {lr}
|
|
bl GetLeadMonIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x2F
|
|
bl GetMonData
|
|
cmp r0, 0xC7
|
|
bls _081390D8
|
|
movs r0, 0x1
|
|
b _081390DA
|
|
.pool
|
|
_081390D8:
|
|
movs r0, 0
|
|
_081390DA:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CheckLeadMonTough
|
|
|
|
thumb_func_start IsGrassTypeInParty
|
|
IsGrassTypeInParty: @ 81390E0
|
|
push {r4-r6,lr}
|
|
movs r5, 0
|
|
ldr r6, =gBaseStats
|
|
_081390E6:
|
|
movs r0, 0x64
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x5
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0813913C
|
|
adds r0, r4, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0813913C
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrb r0, [r1, 0x6]
|
|
cmp r0, 0xC
|
|
beq _08139128
|
|
ldrb r0, [r1, 0x7]
|
|
cmp r0, 0xC
|
|
bne _0813913C
|
|
_08139128:
|
|
ldr r1, =gSpecialVar_Result
|
|
movs r0, 0x1
|
|
b _0813914A
|
|
.pool
|
|
_0813913C:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x5
|
|
bls _081390E6
|
|
ldr r1, =gSpecialVar_Result
|
|
movs r0, 0
|
|
_0813914A:
|
|
strh r0, [r1]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end IsGrassTypeInParty
|
|
|
|
thumb_func_start SpawnScriptFieldObject
|
|
SpawnScriptFieldObject: @ 8139158
|
|
push {lr}
|
|
sub sp, 0x8
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrh r3, [r0]
|
|
adds r3, 0x7
|
|
lsls r3, 16
|
|
asrs r3, 16
|
|
ldrh r0, [r0, 0x2]
|
|
adds r0, 0x7
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
str r0, [sp]
|
|
movs r0, 0x3
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x7
|
|
movs r1, 0x8
|
|
movs r2, 0x7F
|
|
bl SpawnSpecialFieldObjectParametrized
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gMapObjects
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r0, [r1, 0x1]
|
|
movs r2, 0x20
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x1]
|
|
ldrb r0, [r1, 0x4]
|
|
bl CameraObjectSetFollowedObjectId
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end SpawnScriptFieldObject
|
|
|
|
thumb_func_start RemoveScriptFieldObject
|
|
RemoveScriptFieldObject: @ 81391AC
|
|
push {lr}
|
|
bl GetPlayerAvatarObjectId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl CameraObjectSetFollowedObjectId
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x5]
|
|
ldrb r2, [r0, 0x4]
|
|
movs r0, 0x7F
|
|
bl RemoveFieldObjectByLocalIdAndMap
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end RemoveScriptFieldObject
|
|
|
|
thumb_func_start GetPokeblockNameByMonNature
|
|
GetPokeblockNameByMonNature: @ 81391D0
|
|
push {lr}
|
|
bl GetLeadMonIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
bl GetNature
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gStringVar1
|
|
bl CopyMonFavoritePokeblockName
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end GetPokeblockNameByMonNature
|
|
|
|
thumb_func_start GetSecretBaseNearbyMapName
|
|
GetSecretBaseNearbyMapName: @ 8139200
|
|
push {r4,lr}
|
|
ldr r4, =gStringVar1
|
|
ldr r0, =0x00004026
|
|
bl VarGet
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl GetMapName
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end GetSecretBaseNearbyMapName
|
|
|
|
thumb_func_start sub_8139228
|
|
sub_8139228: @ 8139228
|
|
push {lr}
|
|
movs r0, 0x20
|
|
bl GetGameStat
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8139228
|
|
|
|
thumb_func_start sub_8139238
|
|
sub_8139238: @ 8139238
|
|
push {lr}
|
|
ldr r0, =gStringVar1
|
|
bl GetEreaderTrainerName
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8139238
|
|
|
|
thumb_func_start sub_8139248
|
|
sub_8139248: @ 8139248
|
|
push {r4,r5,lr}
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r2, [r0]
|
|
ldr r1, =0x00002e68
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
lsls r1, 25
|
|
ldr r0, =0x00002e6a
|
|
adds r2, r0
|
|
lsrs r1, 25
|
|
ldrh r2, [r2]
|
|
adds r1, r2
|
|
ldr r2, =gUnknown_085B2B88
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
adds r5, r1, r0
|
|
movs r0, 0x2
|
|
bl GetPriceReduction
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08139294
|
|
ldr r4, =gUnknown_085B2B94
|
|
b _08139296
|
|
.pool
|
|
_08139294:
|
|
ldr r4, =gUnknown_085B2BA0
|
|
_08139296:
|
|
adds r0, r5, 0
|
|
movs r1, 0xC
|
|
bl __umodsi3
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8139248
|
|
|
|
thumb_func_start sub_81392AC
|
|
sub_81392AC: @ 81392AC
|
|
push {lr}
|
|
ldr r1, =gSpecialVar_0x8004
|
|
ldr r0, =0x00000213
|
|
strh r0, [r1]
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _081392CC
|
|
movs r0, 0x1
|
|
b _081392CE
|
|
.pool
|
|
_081392CC:
|
|
movs r0, 0
|
|
_081392CE:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81392AC
|
|
|
|
thumb_func_start sub_81392D4
|
|
sub_81392D4: @ 81392D4
|
|
push {lr}
|
|
ldr r1, =gSpecialVar_0x8004
|
|
movs r0, 0x85
|
|
lsls r0, 2
|
|
strh r0, [r1]
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _081392F0
|
|
movs r0, 0x1
|
|
b _081392F2
|
|
.pool
|
|
_081392F0:
|
|
movs r0, 0
|
|
_081392F2:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81392D4
|
|
|
|
thumb_func_start sub_81392F8
|
|
sub_81392F8: @ 81392F8
|
|
push {lr}
|
|
ldr r1, =gSpecialVar_0x8004
|
|
ldr r0, =0x00000215
|
|
strh r0, [r1]
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08139318
|
|
movs r0, 0x1
|
|
b _0813931A
|
|
.pool
|
|
_08139318:
|
|
movs r0, 0
|
|
_0813931A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81392F8
|
|
|
|
thumb_func_start sub_8139320
|
|
sub_8139320: @ 8139320
|
|
push {lr}
|
|
ldr r1, =gSpecialVar_0x8004
|
|
ldr r0, =0x00000216
|
|
strh r0, [r1]
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08139340
|
|
movs r0, 0x1
|
|
b _08139342
|
|
.pool
|
|
_08139340:
|
|
movs r0, 0
|
|
_08139342:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8139320
|
|
|
|
thumb_func_start LeadMonHasEffortRibbon
|
|
LeadMonHasEffortRibbon: @ 8139348
|
|
push {lr}
|
|
bl GetLeadMonIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x47
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end LeadMonHasEffortRibbon
|
|
|
|
thumb_func_start GiveLeadMonEffortRibbon
|
|
GiveLeadMonEffortRibbon: @ 8139370
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
movs r0, 0x2A
|
|
bl IncrementGameStat
|
|
ldr r0, =0x0000089b
|
|
bl FlagSet
|
|
movs r1, 0x1
|
|
mov r0, sp
|
|
strb r1, [r0]
|
|
bl GetLeadMonIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x47
|
|
mov r2, sp
|
|
bl SetMonData
|
|
adds r0, r4, 0
|
|
bl GetRibbonCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x4
|
|
bls _081393B6
|
|
adds r0, r4, 0
|
|
movs r1, 0x47
|
|
bl sub_80EE4DC
|
|
_081393B6:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end GiveLeadMonEffortRibbon
|
|
|
|
thumb_func_start Special_AreLeadMonEVsMaxedOut
|
|
Special_AreLeadMonEVsMaxedOut: @ 81393C8
|
|
push {lr}
|
|
bl GetLeadMonIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
bl GetMonEVCount
|
|
lsls r0, 16
|
|
ldr r1, =0x01fd0000
|
|
cmp r0, r1
|
|
bhi _081393F4
|
|
movs r0, 0
|
|
b _081393F6
|
|
.pool
|
|
_081393F4:
|
|
movs r0, 0x1
|
|
_081393F6:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end Special_AreLeadMonEVsMaxedOut
|
|
|
|
thumb_func_start sub_81393FC
|
|
sub_81393FC: @ 81393FC
|
|
push {lr}
|
|
movs r0, 0xC7
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08139454
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0, 0x4]
|
|
movs r0, 0x83
|
|
lsls r0, 3
|
|
cmp r1, r0
|
|
bne _08139454
|
|
subs r0, 0x75
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08139434
|
|
ldr r0, =0x0000409a
|
|
movs r1, 0x4
|
|
b _08139446
|
|
.pool
|
|
_08139434:
|
|
movs r0, 0xE9
|
|
lsls r0, 2
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08139454
|
|
ldr r0, =0x0000409a
|
|
movs r1, 0x5
|
|
_08139446:
|
|
bl VarSet
|
|
movs r0, 0x1
|
|
b _08139456
|
|
.pool
|
|
_08139454:
|
|
movs r0, 0
|
|
_08139456:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81393FC
|
|
|
|
thumb_func_start SetShoalItemFlag
|
|
SetShoalItemFlag: @ 813945C
|
|
push {lr}
|
|
ldr r0, =0x000008bf
|
|
bl FlagSet
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end SetShoalItemFlag
|
|
|
|
thumb_func_start PutZigzagoonInPlayerParty
|
|
PutZigzagoonInPlayerParty: @ 813946C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x14
|
|
ldr r5, =gPlayerParty
|
|
movs r1, 0x90
|
|
lsls r1, 1
|
|
movs r4, 0
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
str r4, [sp, 0xC]
|
|
adds r0, r5, 0
|
|
movs r2, 0x7
|
|
movs r3, 0x20
|
|
bl CreateMon
|
|
movs r1, 0x1
|
|
add r0, sp, 0x10
|
|
strh r1, [r0]
|
|
adds r0, r5, 0
|
|
movs r1, 0x2E
|
|
add r2, sp, 0x10
|
|
bl SetMonData
|
|
add r1, sp, 0x10
|
|
movs r0, 0x21
|
|
strh r0, [r1]
|
|
adds r0, r5, 0
|
|
movs r1, 0xD
|
|
add r2, sp, 0x10
|
|
bl SetMonData
|
|
add r0, sp, 0x10
|
|
strh r4, [r0]
|
|
adds r0, r5, 0
|
|
movs r1, 0xE
|
|
add r2, sp, 0x10
|
|
bl SetMonData
|
|
adds r0, r5, 0
|
|
movs r1, 0xF
|
|
add r2, sp, 0x10
|
|
bl SetMonData
|
|
adds r0, r5, 0
|
|
movs r1, 0x10
|
|
add r2, sp, 0x10
|
|
bl SetMonData
|
|
add sp, 0x14
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PutZigzagoonInPlayerParty
|
|
|
|
thumb_func_start IsStarterInParty
|
|
IsStarterInParty: @ 81394D8
|
|
push {r4-r6,lr}
|
|
ldr r0, =0x00004023
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl GetStarterPokemon
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
bl CalculatePlayerPartyCount
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bcs _08139526
|
|
_081394FA:
|
|
movs r0, 0x64
|
|
muls r0, r4
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x41
|
|
movs r2, 0
|
|
bl GetMonData
|
|
cmp r0, r6
|
|
bne _0813951C
|
|
movs r0, 0x1
|
|
b _08139528
|
|
.pool
|
|
_0813951C:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _081394FA
|
|
_08139526:
|
|
movs r0, 0
|
|
_08139528:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end IsStarterInParty
|
|
|
|
thumb_func_start ScriptCheckFreePokemonStorageSpace
|
|
ScriptCheckFreePokemonStorageSpace: @ 8139530
|
|
push {lr}
|
|
bl CheckFreePokemonStorageSpace
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end ScriptCheckFreePokemonStorageSpace
|
|
|
|
thumb_func_start IsPokerusInParty
|
|
IsPokerusInParty: @ 8139540
|
|
push {lr}
|
|
ldr r0, =gPlayerParty
|
|
movs r1, 0x3F
|
|
bl CheckPartyPokerus
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08139558
|
|
movs r0, 0x1
|
|
b _0813955A
|
|
.pool
|
|
_08139558:
|
|
movs r0, 0
|
|
_0813955A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end IsPokerusInParty
|
|
|
|
thumb_func_start sub_8139560
|
|
sub_8139560: @ 8139560
|
|
push {lr}
|
|
ldr r0, =sub_81395BC
|
|
movs r1, 0x9
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldr r0, =gSpecialVar_0x8005
|
|
ldrh r0, [r0]
|
|
movs r2, 0
|
|
strh r0, [r1, 0x8]
|
|
strh r2, [r1, 0xA]
|
|
ldr r0, =gSpecialVar_0x8006
|
|
ldrh r0, [r0]
|
|
strh r0, [r1, 0xC]
|
|
ldr r0, =gSpecialVar_0x8007
|
|
ldrh r0, [r0]
|
|
strh r0, [r1, 0xE]
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
strh r0, [r1, 0x10]
|
|
movs r0, 0
|
|
bl SetCameraPanningCallback
|
|
movs r0, 0xD6
|
|
bl PlaySE
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8139560
|
|
|
|
thumb_func_start sub_81395BC
|
|
sub_81395BC: @ 81395BC
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, =gTasks + 0x8
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4, 0x2]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2]
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x6
|
|
ldrsh r1, [r4, r2]
|
|
bl __modsi3
|
|
cmp r0, 0
|
|
bne _08139614
|
|
strh r0, [r4, 0x2]
|
|
ldrh r0, [r4, 0x4]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x4]
|
|
ldrh r0, [r4]
|
|
negs r0, r0
|
|
strh r0, [r4]
|
|
ldrh r0, [r4, 0x8]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x8]
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x8
|
|
ldrsh r1, [r4, r2]
|
|
bl SetCameraPanning
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _08139614
|
|
adds r0, r5, 0
|
|
bl sub_8139620
|
|
bl InstallCameraPanAheadCallback
|
|
_08139614:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81395BC
|
|
|
|
thumb_func_start sub_8139620
|
|
sub_8139620: @ 8139620
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl DestroyTask
|
|
bl EnableBothScriptContexts
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8139620
|
|
|
|
thumb_func_start sub_8139634
|
|
sub_8139634: @ 8139634
|
|
push {lr}
|
|
movs r0, 0x95
|
|
lsls r0, 2
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8139634
|
|
|
|
thumb_func_start SetRoute119Weather
|
|
SetRoute119Weather: @ 8139648
|
|
push {lr}
|
|
bl get_map_light_from_warp0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl is_light_level_1_2_3_5_or_6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08139664
|
|
movs r0, 0x14
|
|
bl SetSav1Weather
|
|
_08139664:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end SetRoute119Weather
|
|
|
|
thumb_func_start SetRoute123Weather
|
|
SetRoute123Weather: @ 8139668
|
|
push {lr}
|
|
bl get_map_light_from_warp0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl is_light_level_1_2_3_5_or_6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08139684
|
|
movs r0, 0x15
|
|
bl SetSav1Weather
|
|
_08139684:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end SetRoute123Weather
|
|
|
|
thumb_func_start GetLeadMonIndex
|
|
GetLeadMonIndex: @ 8139688
|
|
push {r4-r6,lr}
|
|
bl CalculatePlayerPartyCount
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r5, 0
|
|
cmp r5, r6
|
|
bcs _081396D6
|
|
_08139698:
|
|
movs r0, 0x64
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
movs r2, 0
|
|
bl GetMonData
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
beq _081396CC
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
movs r2, 0
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _081396CC
|
|
adds r0, r5, 0
|
|
b _081396D8
|
|
.pool
|
|
_081396CC:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, r6
|
|
bcc _08139698
|
|
_081396D6:
|
|
movs r0, 0
|
|
_081396D8:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetLeadMonIndex
|
|
|
|
thumb_func_start ScriptGetPartyMonSpecies
|
|
ScriptGetPartyMonSpecies: @ 81396E0
|
|
push {lr}
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x41
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end ScriptGetPartyMonSpecies
|
|
|
|
thumb_func_start nullsub_54
|
|
nullsub_54: @ 8139708
|
|
bx lr
|
|
thumb_func_end nullsub_54
|
|
|
|
thumb_func_start sub_813970C
|
|
sub_813970C: @ 813970C
|
|
push {r4,lr}
|
|
ldr r0, =0x000040c2
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r3, r0, 0
|
|
ldr r2, =gLocalTime
|
|
movs r1, 0
|
|
ldrsh r0, [r2, r1]
|
|
subs r0, r3
|
|
cmp r0, 0x6
|
|
ble _08139734
|
|
movs r0, 0
|
|
b _0813974C
|
|
.pool
|
|
_08139734:
|
|
ldrh r1, [r2]
|
|
movs r4, 0
|
|
ldrsh r0, [r2, r4]
|
|
cmp r0, 0
|
|
blt _0813974A
|
|
subs r1, r3
|
|
movs r0, 0x7
|
|
subs r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
b _0813974C
|
|
_0813974A:
|
|
movs r0, 0x8
|
|
_0813974C:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_813970C
|
|
|
|
thumb_func_start sub_8139754
|
|
sub_8139754: @ 8139754
|
|
push {r4,lr}
|
|
ldr r0, =0x000040c2
|
|
ldr r4, =gLocalTime
|
|
ldrh r1, [r4]
|
|
bl VarSet
|
|
ldrh r0, [r4]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8139754
|
|
|
|
thumb_func_start sub_8139770
|
|
sub_8139770: @ 8139770
|
|
push {r4-r6,lr}
|
|
ldr r6, =gSpecialVar_0x8004
|
|
ldrh r0, [r6]
|
|
movs r5, 0x64
|
|
muls r0, r5
|
|
ldr r4, =gPlayerParty
|
|
adds r0, r4
|
|
movs r1, 0x3
|
|
bl GetMonData
|
|
cmp r0, 0x2
|
|
bne _081397A6
|
|
ldrh r0, [r6]
|
|
muls r0, r5
|
|
adds r0, r4
|
|
ldr r4, =gStringVar1
|
|
movs r1, 0x7
|
|
adds r2, r4, 0
|
|
bl GetMonData
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
adds r1, r4, 0
|
|
bl StringCompare
|
|
cmp r0, 0
|
|
beq _081397BC
|
|
_081397A6:
|
|
movs r0, 0x1
|
|
b _081397BE
|
|
.pool
|
|
_081397BC:
|
|
movs r0, 0
|
|
_081397BE:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8139770
|
|
|
|
thumb_func_start sub_81397C4
|
|
sub_81397C4: @ 81397C4
|
|
push {r4,r5,lr}
|
|
ldr r2, =gSpecialVar_Result
|
|
ldrh r1, [r2]
|
|
ldr r0, =0x0000270f
|
|
cmp r1, r0
|
|
bls _081397E0
|
|
movs r0, 0
|
|
bl TV_PrintIntToStringVar
|
|
b _08139862
|
|
.pool
|
|
_081397E0:
|
|
ldr r0, =0x000003e7
|
|
cmp r1, r0
|
|
bls _081397F8
|
|
ldr r4, =gStringVar1
|
|
movs r0, 0xA1
|
|
strb r0, [r4]
|
|
adds r4, 0x1
|
|
b _0813981C
|
|
.pool
|
|
_081397F8:
|
|
cmp r1, 0x63
|
|
bls _0813980C
|
|
ldr r4, =gStringVar1
|
|
movs r0, 0xA1
|
|
strb r0, [r4]
|
|
strb r0, [r4, 0x1]
|
|
adds r4, 0x2
|
|
b _0813981C
|
|
.pool
|
|
_0813980C:
|
|
cmp r1, 0x9
|
|
bls _0813983C
|
|
ldr r4, =gStringVar1
|
|
movs r0, 0xA1
|
|
strb r0, [r4]
|
|
strb r0, [r4, 0x1]
|
|
strb r0, [r4, 0x2]
|
|
adds r4, 0x3
|
|
_0813981C:
|
|
ldrh r5, [r2]
|
|
adds r0, r5, 0
|
|
bl sub_80EF370
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl ConvertIntToDecimalStringN
|
|
b _08139862
|
|
.pool
|
|
_0813983C:
|
|
ldr r4, =gStringVar1
|
|
movs r0, 0xA1
|
|
strb r0, [r4]
|
|
strb r0, [r4, 0x1]
|
|
strb r0, [r4, 0x2]
|
|
strb r0, [r4, 0x3]
|
|
adds r4, 0x4
|
|
ldrh r5, [r2]
|
|
adds r0, r5, 0
|
|
bl sub_80EF370
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl ConvertIntToDecimalStringN
|
|
_08139862:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81397C4
|
|
|
|
thumb_func_start sub_813986C
|
|
sub_813986C: @ 813986C
|
|
push {lr}
|
|
ldr r0, =gSpecialVar_Result
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x4
|
|
bhi _081398B8
|
|
lsls r0, 2
|
|
ldr r1, =_08139888
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08139888:
|
|
.4byte _0813989C
|
|
.4byte _081398A0
|
|
.4byte _081398A4
|
|
.4byte _081398A8
|
|
.4byte _081398AC
|
|
_0813989C:
|
|
movs r0, 0x3
|
|
b _081398AE
|
|
_081398A0:
|
|
movs r0, 0x4
|
|
b _081398AE
|
|
_081398A4:
|
|
movs r0, 0
|
|
b _081398AE
|
|
_081398A8:
|
|
movs r0, 0x1
|
|
b _081398AE
|
|
_081398AC:
|
|
movs r0, 0x2
|
|
_081398AE:
|
|
bl mevent_081445C0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
b _081398BA
|
|
_081398B8:
|
|
movs r0, 0
|
|
_081398BA:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_813986C
|
|
|
|
thumb_func_start sub_81398C0
|
|
sub_81398C0: @ 81398C0
|
|
push {r4,lr}
|
|
ldr r1, =gSpecialVar_0x8004
|
|
ldr r2, =0xfffffedf
|
|
adds r0, r2, 0
|
|
ldrh r2, [r1]
|
|
adds r0, r2
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x39
|
|
bls _081398E0
|
|
movs r0, 0
|
|
b _081398FC
|
|
.pool
|
|
_081398E0:
|
|
ldr r4, =gStringVar2
|
|
ldrh r0, [r1]
|
|
bl ItemIdToBattleMoveId
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xD
|
|
muls r1, r0
|
|
ldr r0, =gMoveNames
|
|
adds r1, r0
|
|
adds r0, r4, 0
|
|
bl StringCopy
|
|
movs r0, 0x1
|
|
_081398FC:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_81398C0
|
|
|
|
thumb_func_start sub_813990C
|
|
sub_813990C: @ 813990C
|
|
push {r4,r5,lr}
|
|
bl CalculatePlayerPartyCount
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bcs _08139942
|
|
_0813991C:
|
|
movs r0, 0x64
|
|
muls r0, r4
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x4
|
|
bl GetMonData
|
|
cmp r0, 0x1
|
|
bne _08139938
|
|
movs r0, 0x1
|
|
b _08139944
|
|
.pool
|
|
_08139938:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _0813991C
|
|
_08139942:
|
|
movs r0, 0
|
|
_08139944:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_813990C
|
|
|
|
thumb_func_start InMultiBattleRoom
|
|
InMultiBattleRoom: @ 813994C
|
|
push {lr}
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0, 0x4]
|
|
ldr r0, =0x00000f1a
|
|
cmp r1, r0
|
|
bne _08139978
|
|
ldr r0, =0x000040ce
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x2
|
|
bne _08139978
|
|
movs r0, 0x1
|
|
b _0813997A
|
|
.pool
|
|
_08139978:
|
|
movs r0, 0
|
|
_0813997A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end InMultiBattleRoom
|
|
|
|
thumb_func_start sub_8139980
|
|
sub_8139980: @ 8139980
|
|
push {lr}
|
|
movs r0, 0
|
|
bl SetCameraPanningCallback
|
|
movs r0, 0x8
|
|
movs r1, 0
|
|
bl SetCameraPanning
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8139980
|
|
|
|
thumb_func_start sub_8139994
|
|
sub_8139994: @ 8139994
|
|
push {lr}
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x15]
|
|
subs r0, 0x10
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0x5
|
|
bhi _081399E4
|
|
lsls r0, 2
|
|
ldr r1, =_081399B8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_081399B8:
|
|
.4byte _081399E4
|
|
.4byte _081399D0
|
|
.4byte _081399D4
|
|
.4byte _081399D8
|
|
.4byte _081399DC
|
|
.4byte _081399E0
|
|
_081399D0:
|
|
movs r1, 0x5
|
|
b _081399E6
|
|
_081399D4:
|
|
movs r1, 0x6
|
|
b _081399E6
|
|
_081399D8:
|
|
movs r1, 0x7
|
|
b _081399E6
|
|
_081399DC:
|
|
movs r1, 0x8
|
|
b _081399E6
|
|
_081399E0:
|
|
movs r1, 0xF
|
|
b _081399E6
|
|
_081399E4:
|
|
movs r1, 0x4
|
|
_081399E6:
|
|
ldr r0, =0x00004043
|
|
bl VarSet
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8139994
|
|
|
|
thumb_func_start sub_81399F4
|
|
sub_81399F4: @ 81399F4
|
|
push {r4,lr}
|
|
ldr r2, =gUnknown_0203AB60
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
ldr r1, =gUnknown_0203AB62
|
|
strh r0, [r1]
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r3, [r0]
|
|
movs r0, 0x14
|
|
ldrsb r0, [r3, r0]
|
|
adds r4, r1, 0
|
|
cmp r0, 0xD
|
|
bne _08139A6E
|
|
ldrb r0, [r3, 0x15]
|
|
subs r0, 0x10
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0x4
|
|
bhi _08139A6E
|
|
lsls r0, 2
|
|
ldr r1, =_08139A34
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08139A34:
|
|
.4byte _08139A66
|
|
.4byte _08139A5E
|
|
.4byte _08139A56
|
|
.4byte _08139A4E
|
|
.4byte _08139A48
|
|
_08139A48:
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
b _08139A6C
|
|
_08139A4E:
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
movs r0, 0x1
|
|
b _08139A6C
|
|
_08139A56:
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
movs r0, 0x2
|
|
b _08139A6C
|
|
_08139A5E:
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
movs r0, 0x3
|
|
b _08139A6C
|
|
_08139A66:
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
movs r0, 0x4
|
|
_08139A6C:
|
|
strh r0, [r4]
|
|
_08139A6E:
|
|
ldrh r0, [r4]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81399F4
|
|
|
|
thumb_func_start sub_8139A78
|
|
sub_8139A78: @ 8139A78
|
|
push {r4-r6,lr}
|
|
ldr r0, =sub_8139AF4
|
|
movs r1, 0x9
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, =gTasks + 0x8
|
|
adds r4, r1, r0
|
|
movs r3, 0
|
|
strh r3, [r4, 0x2]
|
|
strh r3, [r4, 0x4]
|
|
movs r6, 0x1
|
|
strh r6, [r4, 0x8]
|
|
ldr r0, =gSpecialVar_0x8005
|
|
ldr r1, =gSpecialVar_0x8006
|
|
ldrh r2, [r0]
|
|
ldrh r0, [r1]
|
|
cmp r2, r0
|
|
bls _08139AC0
|
|
subs r0, r2, r0
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
strh r6, [r4, 0xC]
|
|
b _08139AC8
|
|
.pool
|
|
_08139AC0:
|
|
subs r0, r2
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
strh r3, [r4, 0xC]
|
|
_08139AC8:
|
|
cmp r5, 0x8
|
|
bls _08139ACE
|
|
movs r5, 0x8
|
|
_08139ACE:
|
|
ldr r0, =gUnknown_085B2C18
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0]
|
|
strh r0, [r4, 0xA]
|
|
movs r0, 0
|
|
bl SetCameraPanningCallback
|
|
ldrb r1, [r4, 0xC]
|
|
adds r0, r5, 0
|
|
bl sub_8139C2C
|
|
movs r0, 0x59
|
|
bl PlaySE
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8139A78
|
|
|
|
thumb_func_start sub_8139AF4
|
|
sub_8139AF4: @ 8139AF4
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, =gTasks + 0x8
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4, 0x2]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2]
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x3
|
|
bl __modsi3
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bne _08139B54
|
|
strh r0, [r4, 0x2]
|
|
ldrh r0, [r4, 0x4]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x4]
|
|
ldrh r0, [r4, 0x8]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x8]
|
|
movs r2, 0x8
|
|
ldrsh r1, [r4, r2]
|
|
movs r0, 0
|
|
bl SetCameraPanning
|
|
movs r0, 0x4
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
bne _08139B54
|
|
movs r0, 0x49
|
|
bl PlaySE
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
bl EnableBothScriptContexts
|
|
bl InstallCameraPanAheadCallback
|
|
_08139B54:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8139AF4
|
|
|
|
thumb_func_start sub_8139B60
|
|
sub_8139B60: @ 8139B60
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
sub sp, 0xC
|
|
ldr r5, =gUnknown_0203AB5E
|
|
ldr r0, =gUnknown_085B2BAC
|
|
bl AddWindow
|
|
strb r0, [r5]
|
|
ldrb r0, [r5]
|
|
movs r1, 0
|
|
bl SetStandardWindowBorderStyle
|
|
ldr r4, =gText_ElevatorNowOn
|
|
movs r0, 0x1
|
|
adds r1, r4, 0
|
|
movs r2, 0x40
|
|
bl GetStringCenterAlignXOffset
|
|
adds r3, r0, 0
|
|
ldrb r0, [r5]
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r1, 0x1
|
|
str r1, [sp]
|
|
movs r1, 0xFF
|
|
mov r9, r1
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
mov r8, r1
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0x1
|
|
adds r2, r4, 0
|
|
bl PrintTextOnWindow
|
|
ldr r6, =gElevatorFloorsTable
|
|
ldr r4, =gSpecialVar_0x8005
|
|
ldrh r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r1, [r0]
|
|
movs r0, 0x1
|
|
movs r2, 0x40
|
|
bl GetStringCenterAlignXOffset
|
|
adds r3, r0, 0
|
|
ldrb r0, [r5]
|
|
ldrh r1, [r4]
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldr r2, [r1]
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r1, 0x11
|
|
str r1, [sp]
|
|
mov r1, r9
|
|
str r1, [sp, 0x4]
|
|
mov r1, r8
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0x1
|
|
bl PrintTextOnWindow
|
|
ldrb r0, [r5]
|
|
bl PutWindowTilemap
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
add sp, 0xC
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8139B60
|
|
|
|
thumb_func_start sub_8139C10
|
|
sub_8139C10: @ 8139C10
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_0203AB5E
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8198070
|
|
ldrb r0, [r4]
|
|
bl RemoveWindow
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8139C10
|
|
|
|
thumb_func_start sub_8139C2C
|
|
sub_8139C2C: @ 8139C2C
|
|
push {r4-r6,lr}
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
ldr r4, =sub_8139C80
|
|
adds r0, r4, 0
|
|
bl FuncIsActiveTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08139C6C
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r0, 0
|
|
strh r0, [r1, 0x8]
|
|
strh r0, [r1, 0xA]
|
|
strh r5, [r1, 0xC]
|
|
ldr r0, =gUnknown_085B2C21
|
|
adds r0, r6, r0
|
|
ldrb r0, [r0]
|
|
strh r0, [r1, 0xE]
|
|
_08139C6C:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8139C2C
|
|
|
|
thumb_func_start sub_8139C80
|
|
sub_8139C80: @ 8139C80
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp]
|
|
lsls r0, 2
|
|
ldr r1, [sp]
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
ldr r1, =gTasks + 0x8
|
|
adds r6, r0, r1
|
|
movs r2, 0x2
|
|
ldrsh r0, [r6, r2]
|
|
cmp r0, 0x6
|
|
bne _08139D7C
|
|
ldrh r0, [r6]
|
|
adds r0, 0x1
|
|
strh r0, [r6]
|
|
movs r1, 0x4
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _08139D10
|
|
movs r1, 0
|
|
ldr r2, =gUnknown_085B2BF4
|
|
mov r10, r2
|
|
_08139CBA:
|
|
movs r5, 0
|
|
adds r7, r1, 0x7
|
|
lsls r0, r1, 1
|
|
adds r2, r1, 0x1
|
|
mov r8, r2
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
mov r9, r0
|
|
_08139CCA:
|
|
adds r4, r5, 0
|
|
adds r4, 0x8
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
movs r1, 0x3
|
|
bl __modsi3
|
|
lsls r0, 16
|
|
asrs r0, 15
|
|
add r0, r9
|
|
add r0, r10
|
|
ldrh r0, [r0]
|
|
movs r1, 0xC0
|
|
lsls r1, 4
|
|
adds r2, r1, 0
|
|
orrs r2, r0
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl MapGridSetMetatileIdAt
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x2
|
|
bls _08139CCA
|
|
mov r2, r8
|
|
lsls r0, r2, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x2
|
|
bls _08139CBA
|
|
b _08139D62
|
|
.pool
|
|
_08139D10:
|
|
movs r1, 0
|
|
ldr r0, =gUnknown_085B2C06
|
|
mov r10, r0
|
|
_08139D16:
|
|
movs r5, 0
|
|
adds r7, r1, 0x7
|
|
lsls r0, r1, 1
|
|
adds r2, r1, 0x1
|
|
mov r8, r2
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
mov r9, r0
|
|
_08139D26:
|
|
adds r4, r5, 0
|
|
adds r4, 0x8
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
movs r1, 0x3
|
|
bl __modsi3
|
|
lsls r0, 16
|
|
asrs r0, 15
|
|
add r0, r9
|
|
add r0, r10
|
|
ldrh r0, [r0]
|
|
movs r1, 0xC0
|
|
lsls r1, 4
|
|
adds r2, r1, 0
|
|
orrs r2, r0
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl MapGridSetMetatileIdAt
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x2
|
|
bls _08139D26
|
|
mov r2, r8
|
|
lsls r0, r2, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x2
|
|
bls _08139D16
|
|
_08139D62:
|
|
bl DrawWholeMapView
|
|
movs r0, 0
|
|
strh r0, [r6, 0x2]
|
|
movs r0, 0
|
|
ldrsh r1, [r6, r0]
|
|
movs r2, 0x6
|
|
ldrsh r0, [r6, r2]
|
|
cmp r1, r0
|
|
bne _08139D7C
|
|
ldr r0, [sp]
|
|
bl DestroyTask
|
|
_08139D7C:
|
|
ldrh r0, [r6, 0x2]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x2]
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8139C80
|
|
|
|
thumb_func_start sub_8139D98
|
|
sub_8139D98: @ 8139D98
|
|
push {r4-r7,lr}
|
|
sub sp, 0x18
|
|
ldr r6, =gSpecialVar_0x8004
|
|
ldrh r0, [r6]
|
|
movs r5, 0x64
|
|
muls r0, r5
|
|
ldr r4, =gPlayerParty
|
|
adds r0, r4
|
|
movs r1, 0x27
|
|
bl GetMonData
|
|
str r0, [sp]
|
|
ldrh r0, [r6]
|
|
muls r0, r5
|
|
adds r0, r4
|
|
movs r1, 0x28
|
|
bl GetMonData
|
|
str r0, [sp, 0x4]
|
|
ldrh r0, [r6]
|
|
muls r0, r5
|
|
adds r0, r4
|
|
movs r1, 0x29
|
|
bl GetMonData
|
|
str r0, [sp, 0x8]
|
|
ldrh r0, [r6]
|
|
muls r0, r5
|
|
adds r0, r4
|
|
movs r1, 0x2A
|
|
bl GetMonData
|
|
str r0, [sp, 0xC]
|
|
ldrh r0, [r6]
|
|
muls r0, r5
|
|
adds r0, r4
|
|
movs r1, 0x2B
|
|
bl GetMonData
|
|
str r0, [sp, 0x10]
|
|
ldrh r0, [r6]
|
|
muls r0, r5
|
|
adds r0, r4
|
|
movs r1, 0x2C
|
|
bl GetMonData
|
|
str r0, [sp, 0x14]
|
|
ldr r1, =gSpecialVar_0x8005
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
movs r4, 0
|
|
adds r2, r1, 0
|
|
_08139E00:
|
|
lsls r0, r4, 2
|
|
add r0, sp
|
|
ldr r1, [r0]
|
|
ldrh r0, [r2]
|
|
adds r0, r1
|
|
strh r0, [r2]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x5
|
|
bls _08139E00
|
|
ldr r2, =gSpecialVar_0x8006
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
ldr r1, =gSpecialVar_0x8007
|
|
ldr r0, [sp]
|
|
strh r0, [r1]
|
|
movs r4, 0x1
|
|
adds r6, r2, 0
|
|
adds r7, r1, 0
|
|
_08139E28:
|
|
ldrh r0, [r6]
|
|
lsls r0, 2
|
|
mov r2, sp
|
|
adds r1, r2, r0
|
|
lsls r0, r4, 2
|
|
adds r5, r2, r0
|
|
ldr r1, [r1]
|
|
ldr r0, [r5]
|
|
cmp r1, r0
|
|
bcs _08139E54
|
|
strh r4, [r6]
|
|
b _08139E6C
|
|
.pool
|
|
_08139E54:
|
|
cmp r1, r0
|
|
bne _08139E6E
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08139E6E
|
|
strh r4, [r6]
|
|
ldr r0, [r5]
|
|
_08139E6C:
|
|
strh r0, [r7]
|
|
_08139E6E:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x5
|
|
bls _08139E28
|
|
add sp, 0x18
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8139D98
|
|
|
|
thumb_func_start warp0_in_pokecenter
|
|
warp0_in_pokecenter: @ 8139E80
|
|
push {r4,lr}
|
|
ldr r0, =gUnknown_020322DC
|
|
movs r1, 0
|
|
ldrsb r1, [r0, r1]
|
|
lsls r1, 8
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
ldr r2, =gUnknown_085B2C2A
|
|
ldrh r0, [r2]
|
|
ldr r1, =0x0000ffff
|
|
cmp r0, r1
|
|
beq _08139EC6
|
|
adds r4, r1, 0
|
|
adds r1, r2, 0
|
|
_08139EA4:
|
|
ldrh r0, [r2]
|
|
cmp r0, r3
|
|
bne _08139EBC
|
|
movs r0, 0x1
|
|
b _08139EC8
|
|
.pool
|
|
_08139EBC:
|
|
adds r1, 0x2
|
|
adds r2, 0x2
|
|
ldrh r0, [r1]
|
|
cmp r0, r4
|
|
bne _08139EA4
|
|
_08139EC6:
|
|
movs r0, 0
|
|
_08139EC8:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end warp0_in_pokecenter
|
|
|
|
thumb_func_start sub_8139ED0
|
|
sub_8139ED0: @ 8139ED0
|
|
push {lr}
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0, 0x4]
|
|
ldr r0, =0x00003c1a
|
|
cmp r1, r0
|
|
beq _08139EEC
|
|
movs r0, 0x1
|
|
b _08139EEE
|
|
.pool
|
|
_08139EEC:
|
|
movs r0, 0
|
|
_08139EEE:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8139ED0
|
|
|
|
thumb_func_start UpdateFrontierManiac
|
|
UpdateFrontierManiac: @ 8139EF4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
ldr r0, =0x0000402f
|
|
bl GetVarPointer
|
|
adds r5, r0, 0
|
|
ldrh r0, [r5]
|
|
adds r4, r0
|
|
strh r4, [r5]
|
|
ldrh r0, [r5]
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
strh r0, [r5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end UpdateFrontierManiac
|
|
|
|
thumb_func_start sub_8139F20
|
|
sub_8139F20: @ 8139F20
|
|
push {r4-r7,lr}
|
|
movs r4, 0
|
|
ldr r0, =0x0000402f
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
cmp r6, 0x9
|
|
bls _08139F34
|
|
b _0813A03A
|
|
_08139F34:
|
|
lsls r0, r6, 2
|
|
ldr r1, =_08139F48
|
|
adds r1, r0, r1
|
|
ldr r1, [r1]
|
|
adds r2, r0, 0
|
|
mov pc, r1
|
|
.pool
|
|
.align 2, 0
|
|
_08139F48:
|
|
.4byte _08139F70
|
|
.4byte _08139F70
|
|
.4byte _08139F70
|
|
.4byte _08139F70
|
|
.4byte _08139F94
|
|
.4byte _08139FB4
|
|
.4byte _08139FCC
|
|
.4byte _08139FE4
|
|
.4byte _08139FFC
|
|
.4byte _0813A014
|
|
_08139F70:
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
movs r3, 0xCE
|
|
lsls r3, 4
|
|
adds r1, r0, r3
|
|
adds r3, r1, r2
|
|
ldr r1, =0x00000ce2
|
|
adds r0, r1
|
|
adds r1, r0, r2
|
|
ldrh r0, [r3]
|
|
ldrh r2, [r1]
|
|
cmp r0, r2
|
|
bcs _0813A028
|
|
b _0813A038
|
|
.pool
|
|
_08139F94:
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldr r3, =0x00000d0c
|
|
adds r2, r0, r3
|
|
adds r3, 0x2
|
|
_08139F9E:
|
|
adds r1, r0, r3
|
|
ldrh r0, [r2]
|
|
ldrh r3, [r1]
|
|
cmp r0, r3
|
|
bcs _0813A028
|
|
b _0813A038
|
|
.pool
|
|
_08139FB4:
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00000de2
|
|
adds r2, r0, r1
|
|
ldr r3, =0x00000de4
|
|
b _08139F9E
|
|
.pool
|
|
_08139FCC:
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00000dc8
|
|
adds r2, r0, r1
|
|
ldr r3, =0x00000dca
|
|
b _08139F9E
|
|
.pool
|
|
_08139FE4:
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00000dda
|
|
adds r2, r0, r1
|
|
ldr r3, =0x00000ddc
|
|
b _08139F9E
|
|
.pool
|
|
_08139FFC:
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00000e04
|
|
adds r2, r0, r1
|
|
ldr r3, =0x00000e06
|
|
b _08139F9E
|
|
.pool
|
|
_0813A014:
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00000e1a
|
|
adds r2, r0, r1
|
|
ldr r3, =0x00000e1c
|
|
adds r1, r0, r3
|
|
ldrh r0, [r2]
|
|
ldrh r3, [r1]
|
|
cmp r0, r3
|
|
bcc _0813A038
|
|
_0813A028:
|
|
adds r4, r0, 0
|
|
b _0813A03A
|
|
.pool
|
|
_0813A038:
|
|
ldrh r4, [r1]
|
|
_0813A03A:
|
|
movs r2, 0
|
|
ldr r5, =gUnknown_085B2CC8
|
|
lsls r0, r6, 1
|
|
adds r1, r0, r5
|
|
ldrb r1, [r1]
|
|
adds r3, r0, 0
|
|
ldr r7, =gUnknown_085B2C50
|
|
cmp r1, r4
|
|
bcs _0813A062
|
|
adds r1, r3, 0
|
|
_0813A04E:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x1
|
|
bhi _0813A062
|
|
adds r0, r2, r1
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, r4
|
|
bcc _0813A04E
|
|
_0813A062:
|
|
adds r0, r3, r6
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
ldr r0, [r0]
|
|
bl ShowFieldMessage
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8139F20
|
|
|
|
thumb_func_start sub_813A080
|
|
sub_813A080: @ 813A080
|
|
push {r4-r7,lr}
|
|
ldr r0, =0x000040ce
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00000ca9
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 30
|
|
lsrs r4, r0, 30
|
|
cmp r5, 0x2
|
|
bne _0813A0D8
|
|
movs r0, 0xA9
|
|
lsls r0, 1
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0813A0D8
|
|
ldr r1, =gSpecialVar_0x8005
|
|
movs r0, 0x5
|
|
strh r0, [r1]
|
|
ldr r1, =gSpecialVar_0x8006
|
|
movs r0, 0x4
|
|
strh r0, [r1]
|
|
b _0813A110
|
|
.pool
|
|
_0813A0D0:
|
|
movs r0, 0x4
|
|
strh r0, [r6]
|
|
adds r0, r3, 0x5
|
|
b _0813A10E
|
|
_0813A0D8:
|
|
movs r3, 0
|
|
ldr r6, =gSpecialVar_0x8005
|
|
ldr r7, =gSpecialVar_0x8006
|
|
lsls r1, r4, 1
|
|
lsls r2, r5, 2
|
|
ldr r4, =gUnknown_085B2CDC
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
adds r1, r2
|
|
movs r2, 0xCE
|
|
lsls r2, 4
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
_0813A0F4:
|
|
lsls r0, r3, 1
|
|
adds r0, r4
|
|
ldrh r0, [r0]
|
|
cmp r0, r1
|
|
bhi _0813A0D0
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x8
|
|
bls _0813A0F4
|
|
movs r0, 0x4
|
|
strh r0, [r6]
|
|
movs r0, 0xC
|
|
_0813A10E:
|
|
strh r0, [r7]
|
|
_0813A110:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813A080
|
|
|
|
thumb_func_start sub_813A128
|
|
sub_813A128: @ 813A128
|
|
push {r4,lr}
|
|
ldr r0, =sub_813A2DC
|
|
movs r1, 0x8
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r1, =gTasks
|
|
adds r3, r0, r1
|
|
ldr r1, =gSpecialVar_0x8004
|
|
ldrh r0, [r1]
|
|
strh r0, [r3, 0x1E]
|
|
ldrh r0, [r1]
|
|
cmp r0, 0xC
|
|
bls _0813A14E
|
|
b _0813A2C6
|
|
_0813A14E:
|
|
lsls r0, 2
|
|
ldr r1, =_0813A168
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0813A168:
|
|
.4byte _0813A19C
|
|
.4byte _0813A1AA
|
|
.4byte _0813A1C2
|
|
.4byte _0813A1D6
|
|
.4byte _0813A1F0
|
|
.4byte _0813A208
|
|
.4byte _0813A222
|
|
.4byte _0813A23C
|
|
.4byte _0813A25A
|
|
.4byte _0813A274
|
|
.4byte _0813A274
|
|
.4byte _0813A28E
|
|
.4byte _0813A2A8
|
|
_0813A19C:
|
|
movs r1, 0
|
|
movs r0, 0x1
|
|
strh r0, [r3, 0x8]
|
|
strh r0, [r3, 0xA]
|
|
strh r0, [r3, 0xC]
|
|
strh r0, [r3, 0xE]
|
|
b _0813A2BC
|
|
_0813A1AA:
|
|
movs r1, 0
|
|
movs r0, 0x5
|
|
strh r0, [r3, 0x8]
|
|
movs r0, 0x8
|
|
strh r0, [r3, 0xA]
|
|
movs r0, 0x1
|
|
strh r0, [r3, 0xC]
|
|
strh r0, [r3, 0xE]
|
|
movs r0, 0x9
|
|
strh r0, [r3, 0x10]
|
|
movs r0, 0xA
|
|
b _0813A2BE
|
|
_0813A1C2:
|
|
movs r2, 0
|
|
movs r0, 0x6
|
|
strh r0, [r3, 0x8]
|
|
movs r1, 0xC
|
|
strh r1, [r3, 0xA]
|
|
movs r0, 0x1
|
|
strh r0, [r3, 0xC]
|
|
strh r0, [r3, 0xE]
|
|
movs r0, 0x7
|
|
b _0813A250
|
|
_0813A1D6:
|
|
movs r1, 0
|
|
movs r0, 0x6
|
|
strh r0, [r3, 0x8]
|
|
movs r0, 0xB
|
|
strh r0, [r3, 0xA]
|
|
movs r0, 0xE
|
|
strh r0, [r3, 0xC]
|
|
movs r0, 0x1
|
|
strh r0, [r3, 0xE]
|
|
movs r0, 0xF
|
|
strh r0, [r3, 0x10]
|
|
movs r0, 0xC
|
|
b _0813A2BE
|
|
_0813A1F0:
|
|
movs r1, 0
|
|
movs r0, 0x6
|
|
strh r0, [r3, 0x8]
|
|
strh r0, [r3, 0xA]
|
|
movs r0, 0xE
|
|
strh r0, [r3, 0xC]
|
|
movs r0, 0x1
|
|
strh r0, [r3, 0xE]
|
|
movs r0, 0xF
|
|
strh r0, [r3, 0x10]
|
|
movs r0, 0xC
|
|
b _0813A2BE
|
|
_0813A208:
|
|
movs r1, 0
|
|
movs r0, 0x6
|
|
strh r0, [r3, 0x8]
|
|
movs r0, 0x7
|
|
strh r0, [r3, 0xA]
|
|
movs r0, 0xE
|
|
strh r0, [r3, 0xC]
|
|
movs r0, 0x1
|
|
strh r0, [r3, 0xE]
|
|
movs r0, 0xF
|
|
strh r0, [r3, 0x10]
|
|
movs r0, 0xC
|
|
b _0813A2BE
|
|
_0813A222:
|
|
movs r1, 0
|
|
movs r0, 0x6
|
|
strh r0, [r3, 0x8]
|
|
movs r0, 0xA
|
|
strh r0, [r3, 0xA]
|
|
movs r0, 0xE
|
|
strh r0, [r3, 0xC]
|
|
movs r0, 0x1
|
|
strh r0, [r3, 0xE]
|
|
movs r0, 0xF
|
|
strh r0, [r3, 0x10]
|
|
movs r0, 0xC
|
|
b _0813A2BE
|
|
_0813A23C:
|
|
movs r2, 0
|
|
movs r0, 0x6
|
|
strh r0, [r3, 0x8]
|
|
movs r1, 0xC
|
|
strh r1, [r3, 0xA]
|
|
movs r0, 0xF
|
|
strh r0, [r3, 0xC]
|
|
movs r0, 0x1
|
|
strh r0, [r3, 0xE]
|
|
movs r0, 0xE
|
|
_0813A250:
|
|
strh r0, [r3, 0x10]
|
|
strh r1, [r3, 0x12]
|
|
strh r2, [r3, 0x14]
|
|
strh r4, [r3, 0x26]
|
|
b _0813A2D2
|
|
_0813A25A:
|
|
movs r1, 0
|
|
movs r0, 0x6
|
|
strh r0, [r3, 0x8]
|
|
movs r0, 0xA
|
|
strh r0, [r3, 0xA]
|
|
movs r0, 0x11
|
|
strh r0, [r3, 0xC]
|
|
movs r0, 0x1
|
|
strh r0, [r3, 0xE]
|
|
movs r0, 0xB
|
|
strh r0, [r3, 0x10]
|
|
movs r0, 0xC
|
|
b _0813A2BE
|
|
_0813A274:
|
|
movs r1, 0
|
|
movs r0, 0x6
|
|
strh r0, [r3, 0x8]
|
|
movs r0, 0xB
|
|
strh r0, [r3, 0xA]
|
|
movs r0, 0xF
|
|
strh r0, [r3, 0xC]
|
|
movs r0, 0x1
|
|
strh r0, [r3, 0xE]
|
|
movs r0, 0xE
|
|
strh r0, [r3, 0x10]
|
|
movs r0, 0xC
|
|
b _0813A2BE
|
|
_0813A28E:
|
|
movs r1, 0
|
|
movs r0, 0x6
|
|
strh r0, [r3, 0x8]
|
|
movs r0, 0x7
|
|
strh r0, [r3, 0xA]
|
|
movs r0, 0x13
|
|
strh r0, [r3, 0xC]
|
|
movs r0, 0x1
|
|
strh r0, [r3, 0xE]
|
|
movs r0, 0xA
|
|
strh r0, [r3, 0x10]
|
|
movs r0, 0xC
|
|
b _0813A2BE
|
|
_0813A2A8:
|
|
movs r1, 0
|
|
movs r0, 0x6
|
|
strh r0, [r3, 0x8]
|
|
movs r0, 0x7
|
|
strh r0, [r3, 0xA]
|
|
movs r0, 0x11
|
|
strh r0, [r3, 0xC]
|
|
movs r0, 0x1
|
|
strh r0, [r3, 0xE]
|
|
movs r0, 0xC
|
|
_0813A2BC:
|
|
strh r0, [r3, 0x10]
|
|
_0813A2BE:
|
|
strh r0, [r3, 0x12]
|
|
strh r1, [r3, 0x14]
|
|
strh r4, [r3, 0x26]
|
|
b _0813A2D2
|
|
_0813A2C6:
|
|
ldr r1, =gSpecialVar_Result
|
|
movs r0, 0x7F
|
|
strh r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_0813A2D2:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813A128
|
|
|
|
thumb_func_start sub_813A2DC
|
|
sub_813A2DC: @ 813A2DC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x20
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
ldr r1, =gTasks
|
|
adds r6, r0, r1
|
|
bl ScriptContext2_Enable
|
|
ldr r0, =gUnknown_0203AB68
|
|
movs r5, 0
|
|
strh r5, [r0]
|
|
ldr r1, =gUnknown_0203AB6C
|
|
movs r0, 0x40
|
|
strb r0, [r1]
|
|
ldrh r0, [r6, 0x1E]
|
|
movs r1, 0
|
|
bl sub_813AA60
|
|
ldrb r0, [r6, 0x1E]
|
|
movs r1, 0
|
|
bl sub_813ACE8
|
|
ldr r4, =gUnknown_0203AB64
|
|
movs r1, 0xA
|
|
ldrsh r0, [r6, r1]
|
|
lsls r0, 3
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
ldr r0, =gUnknown_0203AB6A
|
|
strh r5, [r0]
|
|
bl sub_813A42C
|
|
movs r3, 0
|
|
movs r4, 0
|
|
movs r2, 0xA
|
|
ldrsh r0, [r6, r2]
|
|
add r1, sp, 0x18
|
|
mov r8, r1
|
|
cmp r3, r0
|
|
bge _0813A36A
|
|
ldr r5, =gUnknown_085B2CF0
|
|
_0813A33A:
|
|
lsls r1, r4, 2
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
lsls r0, 6
|
|
adds r1, r0
|
|
adds r1, r5
|
|
ldr r0, [r1]
|
|
ldr r1, =gUnknown_0203AB64
|
|
ldr r2, [r1]
|
|
lsls r1, r4, 3
|
|
adds r1, r2
|
|
str r0, [r1]
|
|
str r4, [r1, 0x4]
|
|
adds r1, r3, 0
|
|
bl display_text_and_get_width
|
|
adds r3, r0, 0
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r2, 0xA
|
|
ldrsh r0, [r6, r2]
|
|
cmp r4, r0
|
|
blt _0813A33A
|
|
_0813A36A:
|
|
adds r0, r3, 0
|
|
bl convert_pixel_width_to_tile_width
|
|
strh r0, [r6, 0x10]
|
|
movs r1, 0xC
|
|
ldrsh r0, [r6, r1]
|
|
movs r2, 0x10
|
|
ldrsh r1, [r6, r2]
|
|
adds r0, r1
|
|
cmp r0, 0x1D
|
|
ble _0813A38C
|
|
movs r0, 0x1D
|
|
subs r0, r1
|
|
cmp r0, 0
|
|
bge _0813A38A
|
|
movs r0, 0
|
|
_0813A38A:
|
|
strh r0, [r6, 0xC]
|
|
_0813A38C:
|
|
ldrb r2, [r6, 0xC]
|
|
ldrb r3, [r6, 0xE]
|
|
ldrb r0, [r6, 0x10]
|
|
str r0, [sp]
|
|
ldrb r0, [r6, 0x12]
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0xF
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x64
|
|
str r0, [sp, 0xC]
|
|
add r0, sp, 0x10
|
|
movs r1, 0
|
|
bl sub_8198A50
|
|
ldr r0, [sp, 0x10]
|
|
ldr r1, [sp, 0x14]
|
|
str r0, [sp, 0x18]
|
|
str r1, [sp, 0x1C]
|
|
mov r0, r8
|
|
bl AddWindow
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r6, 0x22]
|
|
movs r1, 0
|
|
bl SetStandardWindowBorderStyle
|
|
ldr r4, =gUnknown_030061D0
|
|
ldrh r0, [r6, 0xA]
|
|
strh r0, [r4, 0xC]
|
|
ldrh r0, [r6, 0x8]
|
|
strh r0, [r4, 0xE]
|
|
ldrh r0, [r6, 0x22]
|
|
strb r0, [r4, 0x10]
|
|
adds r0, r7, 0
|
|
bl sub_813A694
|
|
ldrh r1, [r6, 0x16]
|
|
ldrh r2, [r6, 0x18]
|
|
adds r0, r4, 0
|
|
bl ListMenuInit
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r6, 0x24]
|
|
movs r0, 0
|
|
bl schedule_bg_copy_tilemap_to_vram
|
|
ldr r1, =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, =sub_813A4EC
|
|
str r1, [r0]
|
|
add sp, 0x20
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813A2DC
|
|
|
|
thumb_func_start sub_813A42C
|
|
sub_813A42C: @ 813A42C
|
|
ldr r1, =gUnknown_030061D0
|
|
ldr r0, =gUnknown_0203AB64
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
ldr r0, =sub_813A46C
|
|
str r0, [r1, 0x4]
|
|
movs r0, 0
|
|
str r0, [r1, 0x8]
|
|
movs r2, 0
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0xC]
|
|
strh r0, [r1, 0xE]
|
|
strb r2, [r1, 0x10]
|
|
strb r2, [r1, 0x11]
|
|
movs r0, 0x8
|
|
strb r0, [r1, 0x12]
|
|
strb r2, [r1, 0x13]
|
|
movs r0, 0x21
|
|
strb r0, [r1, 0x14]
|
|
movs r0, 0x31
|
|
strb r0, [r1, 0x15]
|
|
movs r0, 0
|
|
strb r0, [r1, 0x16]
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x17]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_813A42C
|
|
|
|
thumb_func_start sub_813A46C
|
|
sub_813A46C: @ 813A46C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r0, =sub_813A4EC
|
|
bl FindTaskIdByFunc
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
beq _0813A4D4
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
ldr r0, =gTasks
|
|
adds r4, r0
|
|
ldrh r0, [r4, 0x24]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r1, sp
|
|
movs r2, 0
|
|
bl sub_81AE860
|
|
ldr r1, =gUnknown_0203AB68
|
|
mov r0, sp
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
ldrh r0, [r4, 0x24]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r1, sp
|
|
bl sub_81AE838
|
|
ldrh r0, [r4, 0x1E]
|
|
ldr r5, =gUnknown_0203AB6A
|
|
ldrh r1, [r5]
|
|
bl sub_813AC44
|
|
ldrh r0, [r4, 0x1E]
|
|
mov r1, sp
|
|
ldrh r1, [r1]
|
|
bl sub_813AA60
|
|
ldrb r0, [r4, 0x1E]
|
|
mov r1, sp
|
|
ldrh r1, [r1]
|
|
bl sub_813AD34
|
|
mov r0, sp
|
|
ldrh r0, [r0]
|
|
strh r0, [r5]
|
|
_0813A4D4:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813A46C
|
|
|
|
thumb_func_start sub_813A4EC
|
|
sub_813A4EC: @ 813A4EC
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, =gTasks
|
|
adds r6, r0, r1
|
|
ldrh r0, [r6, 0x24]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl ListMenuHandleInputGetItemId
|
|
adds r4, r0, 0
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
cmp r4, r0
|
|
beq _0813A51C
|
|
adds r0, 0x1
|
|
cmp r4, r0
|
|
bne _0813A530
|
|
b _0813A566
|
|
.pool
|
|
_0813A51C:
|
|
ldr r1, =gSpecialVar_Result
|
|
movs r0, 0x7F
|
|
strh r0, [r1]
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
b _0813A54C
|
|
.pool
|
|
_0813A530:
|
|
ldr r0, =gSpecialVar_Result
|
|
strh r4, [r0]
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
movs r1, 0x14
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
beq _0813A54C
|
|
movs r1, 0xA
|
|
ldrsh r0, [r6, r1]
|
|
subs r0, 0x1
|
|
cmp r4, r0
|
|
bne _0813A558
|
|
_0813A54C:
|
|
adds r0, r5, 0
|
|
bl sub_813A570
|
|
b _0813A566
|
|
.pool
|
|
_0813A558:
|
|
adds r0, r5, 0
|
|
bl sub_813A738
|
|
ldr r0, =sub_813A600
|
|
str r0, [r6]
|
|
bl EnableBothScriptContexts
|
|
_0813A566:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813A4EC
|
|
|
|
thumb_func_start sub_813A570
|
|
sub_813A570: @ 813A570
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
ldr r0, =gTasks
|
|
adds r4, r0
|
|
ldrh r0, [r4, 0x24]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r1, sp
|
|
bl sub_81AE838
|
|
ldrh r0, [r4, 0x1E]
|
|
mov r1, sp
|
|
ldrh r1, [r1]
|
|
bl sub_813AC44
|
|
adds r0, r5, 0
|
|
bl sub_813A738
|
|
ldrh r0, [r4, 0x24]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_81AE6C8
|
|
ldr r0, =gUnknown_0203AB64
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldrh r0, [r4, 0x22]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x1
|
|
bl sub_8198070
|
|
ldrh r0, [r4, 0x22]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
ldrh r0, [r4, 0x22]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldrh r0, [r4, 0x22]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl RemoveWindow
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
bl EnableBothScriptContexts
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813A570
|
|
|
|
thumb_func_start sub_813A600
|
|
sub_813A600: @ 813A600
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r2, 0x14
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x1
|
|
beq _0813A624
|
|
cmp r0, 0x2
|
|
bne _0813A624
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x14]
|
|
ldr r0, =sub_813A664
|
|
str r0, [r1]
|
|
_0813A624:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813A600
|
|
|
|
thumb_func_start sub_813A630
|
|
sub_813A630: @ 813A630
|
|
push {lr}
|
|
ldr r0, =sub_813A600
|
|
bl FindTaskIdByFunc
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0xFF
|
|
bne _0813A64C
|
|
bl EnableBothScriptContexts
|
|
b _0813A65C
|
|
.pool
|
|
_0813A64C:
|
|
ldr r0, =gTasks
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x14]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x14]
|
|
_0813A65C:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813A630
|
|
|
|
thumb_func_start sub_813A664
|
|
sub_813A664: @ 813A664
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl ScriptContext2_Enable
|
|
adds r0, r4, 0
|
|
bl sub_813A694
|
|
ldr r1, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, =sub_813A4EC
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813A664
|
|
|
|
thumb_func_start sub_813A694
|
|
sub_813A694: @ 813A694
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, =gTasks
|
|
adds r4, r1, r0
|
|
mov r1, sp
|
|
ldr r0, =gUnknown_085B3030
|
|
ldm r0!, {r2,r3,r5}
|
|
stm r1!, {r2,r3,r5}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
beq _0813A724
|
|
mov r2, sp
|
|
movs r3, 0x10
|
|
ldrsh r1, [r4, r3]
|
|
lsrs r0, r1, 31
|
|
adds r1, r0
|
|
asrs r1, 1
|
|
lsls r1, 3
|
|
adds r1, 0xC
|
|
movs r5, 0xC
|
|
ldrsh r0, [r4, r5]
|
|
subs r0, 0x1
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
movs r3, 0
|
|
strb r1, [r2, 0x1]
|
|
mov r1, sp
|
|
movs r0, 0x8
|
|
strb r0, [r1, 0x2]
|
|
movs r0, 0x10
|
|
ldrsh r1, [r4, r0]
|
|
lsrs r0, r1, 31
|
|
adds r1, r0
|
|
asrs r1, 1
|
|
lsls r1, 3
|
|
adds r1, 0xC
|
|
movs r5, 0xC
|
|
ldrsh r0, [r4, r5]
|
|
subs r0, 0x1
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
strb r1, [r2, 0x4]
|
|
mov r1, sp
|
|
movs r2, 0x12
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 3
|
|
adds r0, 0xA
|
|
strb r0, [r1, 0x5]
|
|
mov r0, sp
|
|
strh r3, [r0, 0x6]
|
|
mov r2, sp
|
|
ldrh r0, [r4, 0xA]
|
|
ldrh r1, [r4, 0x8]
|
|
subs r0, r1
|
|
strh r0, [r2, 0x8]
|
|
ldr r1, =gUnknown_0203AB68
|
|
mov r0, sp
|
|
bl AddScrollIndicatorArrowPair
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x20]
|
|
_0813A724:
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813A694
|
|
|
|
thumb_func_start sub_813A738
|
|
sub_813A738: @ 813A738
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, =gTasks
|
|
adds r2, r1, r0
|
|
movs r0, 0x8
|
|
ldrsh r1, [r2, r0]
|
|
movs r3, 0xA
|
|
ldrsh r0, [r2, r3]
|
|
cmp r1, r0
|
|
beq _0813A75E
|
|
ldrh r0, [r2, 0x20]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl RemoveScrollIndicatorArrowPair
|
|
_0813A75E:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813A738
|
|
|
|
thumb_func_start nullsub_55
|
|
nullsub_55: @ 813A768
|
|
bx lr
|
|
thumb_func_end nullsub_55
|
|
|
|
thumb_func_start sub_813A76C
|
|
sub_813A76C: @ 813A76C
|
|
push {r4-r6,lr}
|
|
movs r4, 0
|
|
ldr r6, =gLinkPlayers
|
|
ldr r0, =0x0000401f
|
|
adds r5, r0, 0
|
|
_0813A776:
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrb r0, [r0, 0x13]
|
|
cmp r0, 0
|
|
bne _0813A79C
|
|
subs r0, r5, r4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0
|
|
bl VarSet
|
|
b _0813A7A8
|
|
.pool
|
|
_0813A79C:
|
|
subs r0, r5, r4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x69
|
|
bl VarSet
|
|
_0813A7A8:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x1
|
|
bls _0813A776
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813A76C
|
|
|
|
thumb_func_start sub_813A7B8
|
|
sub_813A7B8: @ 813A7B8
|
|
push {lr}
|
|
ldr r1, =gSpecialVar_0x8004
|
|
ldrh r0, [r1]
|
|
cmp r0, 0x5
|
|
bls _0813A7C6
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
_0813A7C6:
|
|
ldrh r1, [r1]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
bl GetNature
|
|
lsls r0, 24
|
|
ldr r1, =gUnknown_085B3040
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl ShowFieldMessage
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813A7B8
|
|
|
|
thumb_func_start UpdateFrontierGambler
|
|
UpdateFrontierGambler: @ 813A7F4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
ldr r0, =0x00004030
|
|
bl GetVarPointer
|
|
adds r5, r0, 0
|
|
ldrh r0, [r5]
|
|
adds r4, r0
|
|
strh r4, [r5]
|
|
ldrh r0, [r5]
|
|
movs r1, 0xC
|
|
bl __umodsi3
|
|
strh r0, [r5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end UpdateFrontierGambler
|
|
|
|
thumb_func_start sub_813A820
|
|
sub_813A820: @ 813A820
|
|
push {r4,lr}
|
|
ldr r0, =0x00004030
|
|
bl VarGet
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
ldr r1, =gUnknown_085B30A4
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl ShowFieldMessage
|
|
ldr r0, =0x00004031
|
|
adds r1, r4, 0
|
|
bl VarSet
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813A820
|
|
|
|
thumb_func_start sub_813A854
|
|
sub_813A854: @ 813A854
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_085B30D4
|
|
ldr r0, =0x00004031
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 14
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
bl ShowFieldMessage
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813A854
|
|
|
|
thumb_func_start sub_813A878
|
|
sub_813A878: @ 813A878
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r0, =0x000040ce
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
ldr r0, =0x00004031
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r0, =0x000040cf
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldr r4, =0x00004033
|
|
adds r0, r4, 0
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _0813A8F0
|
|
ldr r1, =gUnknown_085B3104
|
|
lsls r0, r6, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
lsls r0, r5, 8
|
|
adds r0, r7
|
|
cmp r1, r0
|
|
bne _0813A8F0
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _0813A8E8
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl VarSet
|
|
b _0813A8F0
|
|
.pool
|
|
_0813A8E8:
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl VarSet
|
|
_0813A8F0:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813A878
|
|
|
|
thumb_func_start sub_813A8FC
|
|
sub_813A8FC: @ 813A8FC
|
|
push {lr}
|
|
sub sp, 0x2C
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00000eb8
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
add r0, sp, 0xC
|
|
movs r2, 0x1
|
|
movs r3, 0x4
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r1, =gText_BP
|
|
bl StringCopy
|
|
movs r0, 0x1
|
|
add r1, sp, 0xC
|
|
movs r2, 0x30
|
|
bl GetStringRightAlignXOffset
|
|
adds r3, r0, 0
|
|
ldr r0, =gUnknown_0203AB6D
|
|
ldrb r0, [r0]
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r1, 0x1
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
str r1, [sp, 0x4]
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0x1
|
|
add r2, sp, 0xC
|
|
bl PrintTextOnWindow
|
|
add sp, 0x2C
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813A8FC
|
|
|
|
thumb_func_start sub_813A958
|
|
sub_813A958: @ 813A958
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_0203AB6D
|
|
ldr r0, =gUnknown_085B311C
|
|
bl AddWindow
|
|
strb r0, [r4]
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl SetStandardWindowBorderStyle
|
|
bl sub_813A8FC
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813A958
|
|
|
|
thumb_func_start sub_813A988
|
|
sub_813A988: @ 813A988
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_0203AB6D
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8198070
|
|
ldrb r0, [r4]
|
|
bl RemoveWindow
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813A988
|
|
|
|
thumb_func_start sub_813A9A4
|
|
sub_813A9A4: @ 813A9A4
|
|
push {lr}
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldr r2, =0x00000eb8
|
|
adds r1, r0, r2
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r2, [r1]
|
|
ldrh r0, [r0]
|
|
cmp r2, r0
|
|
bcs _0813A9C8
|
|
movs r0, 0
|
|
b _0813A9CA
|
|
.pool
|
|
_0813A9C8:
|
|
subs r0, r2, r0
|
|
_0813A9CA:
|
|
strh r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813A9A4
|
|
|
|
thumb_func_start sub_813A9D0
|
|
sub_813A9D0: @ 813A9D0
|
|
push {lr}
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00000eb8
|
|
adds r2, r0, r1
|
|
ldrh r1, [r2]
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
adds r1, r0
|
|
ldr r0, =0x0000270f
|
|
cmp r1, r0
|
|
ble _0813A9FC
|
|
strh r0, [r2]
|
|
b _0813A9FE
|
|
.pool
|
|
_0813A9FC:
|
|
strh r1, [r2]
|
|
_0813A9FE:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813A9D0
|
|
|
|
thumb_func_start sub_813AA04
|
|
sub_813AA04: @ 813AA04
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00000eb8
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_813AA04
|
|
|
|
thumb_func_start sub_813AA18
|
|
sub_813AA18: @ 813AA18
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_0203AB6E
|
|
ldr r0, =gUnknown_085B3124
|
|
bl AddWindow
|
|
strb r0, [r4]
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl SetStandardWindowBorderStyle
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813AA18
|
|
|
|
thumb_func_start sub_813AA44
|
|
sub_813AA44: @ 813AA44
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_0203AB6E
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8198070
|
|
ldrb r0, [r4]
|
|
bl RemoveWindow
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813AA44
|
|
|
|
thumb_func_start sub_813AA60
|
|
sub_813AA60: @ 813AA60
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 16
|
|
lsls r1, 16
|
|
lsrs r5, r1, 16
|
|
lsrs r4, r0, 16
|
|
ldr r1, =0xfffd0000
|
|
adds r0, r1
|
|
lsrs r0, 16
|
|
cmp r0, 0x3
|
|
bls _0813AA78
|
|
b _0813ABC2
|
|
_0813AA78:
|
|
movs r0, 0xD8
|
|
str r0, [sp]
|
|
movs r0, 0x20
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0x11
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillWindowPixelRect
|
|
cmp r4, 0x4
|
|
beq _0813AAE8
|
|
cmp r4, 0x4
|
|
bgt _0813AAA0
|
|
cmp r4, 0x3
|
|
beq _0813AAAA
|
|
b _0813ABC2
|
|
.pool
|
|
_0813AAA0:
|
|
cmp r4, 0x5
|
|
beq _0813AB5C
|
|
cmp r4, 0x6
|
|
beq _0813AB94
|
|
b _0813ABC2
|
|
_0813AAAA:
|
|
ldr r1, =gUnknown_085B3170
|
|
lsls r0, r5, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x8]
|
|
str r4, [sp, 0xC]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r3, 0
|
|
bl AddTextPrinterParametrized
|
|
ldr r1, =gUnknown_085B312C
|
|
lsls r0, r5, 1
|
|
adds r1, r0, r1
|
|
ldrh r5, [r1]
|
|
ldr r0, =0x0000ffff
|
|
cmp r5, r0
|
|
beq _0813AB18
|
|
b _0813AB2C
|
|
.pool
|
|
_0813AAE8:
|
|
ldr r1, =gUnknown_085B319C
|
|
lsls r0, r5, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x3
|
|
str r0, [sp, 0xC]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r3, 0
|
|
bl AddTextPrinterParametrized
|
|
ldr r1, =gUnknown_085B3142
|
|
lsls r0, r5, 1
|
|
adds r1, r0, r1
|
|
ldrh r5, [r1]
|
|
ldr r0, =0x0000ffff
|
|
cmp r5, r0
|
|
bne _0813AB2C
|
|
_0813AB18:
|
|
ldrh r0, [r1]
|
|
bl sub_813ABD4
|
|
b _0813ABC2
|
|
.pool
|
|
_0813AB2C:
|
|
ldr r4, =0x0000157c
|
|
adds r0, r4, 0
|
|
bl FreeSpriteTilesByTag
|
|
adds r0, r4, 0
|
|
bl FreeSpritePaletteByTag
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
movs r1, 0x21
|
|
movs r2, 0x58
|
|
movs r3, 0
|
|
bl AddDecorationIconObject
|
|
ldr r1, =gUnknown_0203AB6C
|
|
strb r0, [r1]
|
|
b _0813ABC2
|
|
.pool
|
|
_0813AB5C:
|
|
ldr r1, =gUnknown_085B31B4
|
|
lsls r0, r5, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x3
|
|
str r0, [sp, 0xC]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r3, 0
|
|
bl AddTextPrinterParametrized
|
|
ldr r1, =gUnknown_085B314E
|
|
lsls r0, r5, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
bl sub_813ABD4
|
|
b _0813ABC2
|
|
.pool
|
|
_0813AB94:
|
|
ldr r1, =gUnknown_085B31D0
|
|
lsls r0, r5, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x3
|
|
str r0, [sp, 0xC]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r3, 0
|
|
bl AddTextPrinterParametrized
|
|
ldr r1, =gUnknown_085B315C
|
|
lsls r0, r5, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
bl sub_813ABD4
|
|
_0813ABC2:
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813AA60
|
|
|
|
thumb_func_start sub_813ABD4
|
|
sub_813ABD4: @ 813ABD4
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
ldr r4, =0x0000157c
|
|
adds r0, r4, 0
|
|
bl FreeSpriteTilesByTag
|
|
adds r0, r4, 0
|
|
bl FreeSpritePaletteByTag
|
|
adds r0, r4, 0
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl AddItemIconObject
|
|
ldr r4, =gUnknown_0203AB6C
|
|
strb r0, [r4]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x40
|
|
beq _0813AC32
|
|
ldr r3, =gSprites
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldrb r2, [r1, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x5]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
movs r1, 0x24
|
|
strh r1, [r0, 0x20]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
movs r1, 0x5C
|
|
strh r1, [r0, 0x22]
|
|
_0813AC32:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813ABD4
|
|
|
|
thumb_func_start sub_813AC44
|
|
sub_813AC44: @ 813AC44
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
ldr r2, =gUnknown_0203AB6C
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x40
|
|
beq _0813AC70
|
|
cmp r1, 0x6
|
|
bgt _0813AC6A
|
|
cmp r1, 0x3
|
|
blt _0813AC6A
|
|
adds r1, r0, 0
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
bl DestroySpriteAndFreeResources
|
|
_0813AC6A:
|
|
ldr r1, =gUnknown_0203AB6C
|
|
movs r0, 0x40
|
|
strb r0, [r1]
|
|
_0813AC70:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813AC44
|
|
|
|
thumb_func_start sub_813AC7C
|
|
sub_813AC7C: @ 813AC7C
|
|
push {lr}
|
|
ldr r0, =gSpecialVar_0x8005
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
beq _0813ACB8
|
|
ldr r0, =gStringVar1
|
|
ldr r2, =gUnknown_085B320C
|
|
ldr r1, =gSpecialVar_0x8004
|
|
ldrh r1, [r1]
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, 0xD
|
|
muls r1, r2
|
|
ldr r2, =gMoveNames
|
|
adds r1, r2
|
|
bl StringCopy
|
|
b _0813ACD2
|
|
.pool
|
|
_0813ACB8:
|
|
ldr r0, =gStringVar1
|
|
ldr r2, =gUnknown_085B31F8
|
|
ldr r1, =gSpecialVar_0x8004
|
|
ldrh r1, [r1]
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, 0xD
|
|
muls r1, r2
|
|
ldr r2, =gMoveNames
|
|
adds r1, r2
|
|
bl StringCopy
|
|
_0813ACD2:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813AC7C
|
|
|
|
thumb_func_start sub_813ACE8
|
|
sub_813ACE8: @ 813ACE8
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r5, r0, 0
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
subs r0, 0x9
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _0813AD20
|
|
ldr r0, =gSpecialVar_0x8006
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _0813AD18
|
|
ldr r4, =gUnknown_0203AB5E
|
|
ldr r0, =gUnknown_085B3220
|
|
bl AddWindow
|
|
strb r0, [r4]
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl SetStandardWindowBorderStyle
|
|
_0813AD18:
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_813AD34
|
|
_0813AD20:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813ACE8
|
|
|
|
thumb_func_start sub_813AD34
|
|
sub_813AD34: @ 813AD34
|
|
push {r4-r7,lr}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsls r1, 16
|
|
lsrs r5, r1, 16
|
|
adds r7, r5, 0
|
|
lsrs r6, r0, 24
|
|
movs r1, 0xF7
|
|
lsls r1, 24
|
|
adds r0, r1
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _0813ADAC
|
|
ldr r4, =gUnknown_0203AB5E
|
|
ldrb r0, [r4]
|
|
movs r1, 0x60
|
|
str r1, [sp]
|
|
movs r1, 0x30
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0x11
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillWindowPixelRect
|
|
cmp r6, 0xA
|
|
bne _0813AD90
|
|
ldrb r0, [r4]
|
|
ldr r2, =gUnknown_085B3254
|
|
lsls r1, r5, 2
|
|
adds r1, r2
|
|
ldr r2, [r1]
|
|
movs r1, 0x1
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
str r1, [sp, 0x4]
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0x1
|
|
movs r3, 0
|
|
bl PrintTextOnWindow
|
|
b _0813ADAC
|
|
.pool
|
|
_0813AD90:
|
|
ldrb r0, [r4]
|
|
ldr r2, =gUnknown_085B3228
|
|
lsls r1, r7, 2
|
|
adds r1, r2
|
|
ldr r2, [r1]
|
|
movs r1, 0x1
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
str r1, [sp, 0x4]
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0x1
|
|
movs r3, 0
|
|
bl PrintTextOnWindow
|
|
_0813ADAC:
|
|
add sp, 0xC
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813AD34
|
|
|
|
thumb_func_start sub_813ADB8
|
|
sub_813ADB8: @ 813ADB8
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_0203AB5E
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8198070
|
|
ldrb r0, [r4]
|
|
bl RemoveWindow
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813ADB8
|
|
|
|
thumb_func_start sub_813ADD4
|
|
sub_813ADD4: @ 813ADD4
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x18
|
|
ldr r0, =sub_813A600
|
|
bl FindTaskIdByFunc
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0xFF
|
|
beq _0813AE90
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
ldr r1, =gTasks
|
|
adds r6, r0, r1
|
|
ldrh r0, [r6, 0x24]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r4, sp
|
|
adds r4, 0x16
|
|
add r1, sp, 0x14
|
|
adds r2, r4, 0
|
|
bl sub_81AE860
|
|
ldrh r0, [r6, 0x22]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0
|
|
bl SetStandardWindowBorderStyle
|
|
movs r5, 0
|
|
mov r9, r4
|
|
ldr r0, =gUnknown_085B2CF0
|
|
mov r8, r0
|
|
movs r4, 0
|
|
_0813AE1E:
|
|
ldrh r0, [r6, 0x22]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add r1, sp, 0x14
|
|
ldrh r2, [r1]
|
|
adds r2, r5
|
|
lsls r2, 2
|
|
ldr r1, =gSpecialVar_0x8004
|
|
ldrh r1, [r1]
|
|
lsls r1, 6
|
|
adds r2, r1
|
|
add r2, r8
|
|
ldr r2, [r2]
|
|
lsls r1, r5, 28
|
|
lsrs r1, 24
|
|
str r1, [sp]
|
|
movs r7, 0xFF
|
|
str r7, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
str r4, [sp, 0xC]
|
|
str r4, [sp, 0x10]
|
|
movs r1, 0x1
|
|
movs r3, 0xA
|
|
bl sub_8199F74
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x5
|
|
bls _0813AE1E
|
|
ldrh r0, [r6, 0x22]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gText_SelectorArrow
|
|
mov r3, r9
|
|
ldrh r1, [r3]
|
|
lsls r1, 28
|
|
lsrs r1, 24
|
|
str r1, [sp]
|
|
str r7, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0x1
|
|
movs r3, 0
|
|
bl PrintTextOnWindow
|
|
ldrh r0, [r6, 0x22]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl PutWindowTilemap
|
|
ldrh r0, [r6, 0x22]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
_0813AE90:
|
|
add sp, 0x18
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813ADD4
|
|
|
|
thumb_func_start sub_813AEB4
|
|
sub_813AEB4: @ 813AEB4
|
|
push {r4,lr}
|
|
movs r1, 0
|
|
ldr r0, =gSpecialVar_0x8005
|
|
strh r1, [r0]
|
|
ldr r0, =0x0000400e
|
|
bl VarGet
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
ldr r0, =0x0000400d
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r4, 0
|
|
beq _0813AF18
|
|
movs r2, 0
|
|
lsls r1, 1
|
|
ldr r3, =gUnknown_0861500C
|
|
ldr r0, =gUnknown_085B320C
|
|
adds r0, r1, r0
|
|
ldrh r1, [r0]
|
|
_0813AEE2:
|
|
lsls r0, r2, 1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
cmp r0, r1
|
|
beq _0813AF0C
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x1D
|
|
bls _0813AEE2
|
|
b _0813AF38
|
|
.pool
|
|
_0813AF0C:
|
|
ldr r0, =gSpecialVar_0x8005
|
|
strh r2, [r0]
|
|
b _0813AF38
|
|
.pool
|
|
_0813AF18:
|
|
movs r2, 0
|
|
lsls r1, 1
|
|
ldr r3, =gUnknown_0861500C
|
|
ldr r0, =gUnknown_085B31F8
|
|
adds r0, r1, r0
|
|
ldrh r1, [r0]
|
|
_0813AF24:
|
|
lsls r0, r2, 1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
cmp r0, r1
|
|
beq _0813AF0C
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x1D
|
|
bls _0813AF24
|
|
_0813AF38:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813AEB4
|
|
|
|
thumb_func_start sub_813AF48
|
|
sub_813AF48: @ 813AF48
|
|
push {r4,r5,lr}
|
|
ldr r0, =sub_813A600
|
|
bl FindTaskIdByFunc
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0xFF
|
|
beq _0813AFB6
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
ldr r0, =gTasks
|
|
adds r4, r0
|
|
ldrh r0, [r4, 0x24]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_81AE6C8
|
|
ldr r0, =gUnknown_0203AB64
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldrh r0, [r4, 0x22]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x1
|
|
bl sub_8198070
|
|
ldrh r0, [r4, 0x22]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
ldrh r0, [r4, 0x22]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl ClearWindowTilemap
|
|
ldrh r0, [r4, 0x22]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldrh r0, [r4, 0x22]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl RemoveWindow
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_0813AFB6:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813AF48
|
|
|
|
thumb_func_start sub_813AFC8
|
|
sub_813AFC8: @ 813AFC8
|
|
push {lr}
|
|
ldr r0, =task_deoxys_sound
|
|
movs r1, 0x8
|
|
bl CreateTask
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813AFC8
|
|
|
|
thumb_func_start task_deoxys_sound
|
|
task_deoxys_sound: @ 813AFDC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r0, =0x000008d4
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0813B004
|
|
ldr r1, =gSpecialVar_Result
|
|
movs r0, 0x3
|
|
b _0813B06A
|
|
.pool
|
|
_0813B004:
|
|
ldr r0, =0x00004035
|
|
mov r8, r0
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldr r4, =0x00004034
|
|
adds r0, r4, 0
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl VarSet
|
|
cmp r5, 0
|
|
beq _0813B05C
|
|
ldr r0, =gUnknown_085B33F6
|
|
subs r1, r5, 0x1
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, r6
|
|
bcs _0813B05C
|
|
movs r0, 0
|
|
bl sub_813B0B4
|
|
mov r0, r8
|
|
movs r1, 0
|
|
bl VarSet
|
|
ldr r1, =gSpecialVar_Result
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
b _0813B070
|
|
.pool
|
|
_0813B05C:
|
|
cmp r5, 0xA
|
|
bne _0813B080
|
|
ldr r0, =0x000008d4
|
|
bl FlagSet
|
|
ldr r1, =gSpecialVar_Result
|
|
movs r0, 0x2
|
|
_0813B06A:
|
|
strh r0, [r1]
|
|
bl EnableBothScriptContexts
|
|
_0813B070:
|
|
adds r0, r7, 0
|
|
bl DestroyTask
|
|
b _0813B0A2
|
|
.pool
|
|
_0813B080:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
bl sub_813B0B4
|
|
ldr r0, =0x00004035
|
|
adds r1, r5, 0
|
|
bl VarSet
|
|
ldr r1, =gSpecialVar_Result
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
adds r0, r7, 0
|
|
bl DestroyTask
|
|
_0813B0A2:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end task_deoxys_sound
|
|
|
|
thumb_func_start sub_813B0B4
|
|
sub_813B0B4: @ 813B0B4
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r0, r4, 5
|
|
ldr r1, =gUnknown_085B3280
|
|
adds r0, r1
|
|
movs r1, 0xD0
|
|
lsls r1, 1
|
|
movs r2, 0x8
|
|
bl LoadPalette
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x5]
|
|
ldrb r2, [r0, 0x4]
|
|
movs r0, 0x1
|
|
mov r3, sp
|
|
bl TryGetFieldObjectIdByLocalIdAndMap
|
|
cmp r4, 0
|
|
bne _0813B0F0
|
|
movs r0, 0xC4
|
|
bl PlaySE
|
|
b _0813B0F8
|
|
.pool
|
|
_0813B0F0:
|
|
movs r0, 0x82
|
|
lsls r0, 1
|
|
bl PlaySE
|
|
_0813B0F8:
|
|
ldr r0, =sub_813B160
|
|
movs r1, 0x8
|
|
bl CreateTask
|
|
ldr r3, =gFieldEffectArguments
|
|
movs r0, 0x1
|
|
str r0, [r3]
|
|
movs r0, 0x3A
|
|
str r0, [r3, 0x4]
|
|
movs r0, 0x1A
|
|
str r0, [r3, 0x8]
|
|
ldr r0, =gUnknown_085B33E0
|
|
lsls r2, r4, 1
|
|
adds r1, r2, r0
|
|
ldrb r1, [r1]
|
|
str r1, [r3, 0xC]
|
|
adds r0, 0x1
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
str r0, [r3, 0x10]
|
|
adds r5, r2, 0
|
|
cmp r4, 0
|
|
bne _0813B138
|
|
movs r0, 0x3C
|
|
b _0813B13A
|
|
.pool
|
|
_0813B138:
|
|
movs r0, 0x5
|
|
_0813B13A:
|
|
str r0, [r3, 0x14]
|
|
movs r0, 0x42
|
|
bl FieldEffectStart
|
|
ldr r0, =gUnknown_085B33E0
|
|
adds r1, r5, r0
|
|
ldrb r1, [r1]
|
|
adds r0, 0x1
|
|
adds r0, r5, r0
|
|
ldrb r2, [r0]
|
|
movs r0, 0x1
|
|
bl Overworld_SetMapObjTemplateCoords
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813B0B4
|
|
|
|
thumb_func_start sub_813B160
|
|
sub_813B160: @ 813B160
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r0, 0x42
|
|
bl FieldEffectActiveListContains
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0813B17C
|
|
bl EnableBothScriptContexts
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_0813B17C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813B160
|
|
|
|
thumb_func_start increment_var_x4026_on_birth_island_modulo_100
|
|
increment_var_x4026_on_birth_island_modulo_100: @ 813B184
|
|
push {r4,lr}
|
|
ldr r4, =0x00004034
|
|
adds r0, r4, 0
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0, 0x4]
|
|
ldr r0, =0x00003a1a
|
|
cmp r1, r0
|
|
bne _0813B1C8
|
|
adds r0, r2, 0x1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0x63
|
|
bls _0813B1C0
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl VarSet
|
|
b _0813B1C8
|
|
.pool
|
|
_0813B1C0:
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl VarSet
|
|
_0813B1C8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end increment_var_x4026_on_birth_island_modulo_100
|
|
|
|
thumb_func_start sub_813B1D0
|
|
sub_813B1D0: @ 813B1D0
|
|
push {lr}
|
|
ldr r0, =0x00004035
|
|
bl VarGet
|
|
lsls r0, 24
|
|
lsrs r0, 19
|
|
ldr r1, =gUnknown_085B3280
|
|
adds r0, r1
|
|
movs r1, 0xD0
|
|
lsls r1, 1
|
|
movs r2, 0x8
|
|
bl LoadPalette
|
|
movs r0, 0x80
|
|
lsls r0, 19
|
|
movs r1, 0x10
|
|
movs r2, 0
|
|
bl BlendPalettes
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813B1D0
|
|
|
|
thumb_func_start set_unknown_box_id
|
|
@ void set_unknown_box_id(char id)
|
|
set_unknown_box_id: @ 813B204
|
|
ldr r1, =gUnknown_0203AB6F
|
|
strb r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end set_unknown_box_id
|
|
|
|
thumb_func_start get_unknown_box_id
|
|
get_unknown_box_id: @ 813B210
|
|
ldr r0, =gUnknown_0203AB6F
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end get_unknown_box_id
|
|
|
|
thumb_func_start sub_813B21C
|
|
sub_813B21C: @ 813B21C
|
|
push {r4,r5,lr}
|
|
ldr r5, =0x000008d7
|
|
adds r0, r5, 0
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0813B258
|
|
bl StorageGetCurrentBox
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, =0x00004036
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r4, r0
|
|
beq _0813B258
|
|
adds r0, r5, 0
|
|
bl FlagSet
|
|
movs r0, 0x1
|
|
b _0813B25A
|
|
.pool
|
|
_0813B258:
|
|
movs r0, 0
|
|
_0813B25A:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_813B21C
|
|
|
|
thumb_func_start sub_813B260
|
|
sub_813B260: @ 813B260
|
|
push {r4-r7,lr}
|
|
ldr r0, =0x00004036
|
|
bl VarGet
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl set_unknown_box_id
|
|
bl StorageGetCurrentBox
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_0813B278:
|
|
movs r5, 0
|
|
lsls r6, r4, 24
|
|
lsls r7, r4, 16
|
|
_0813B27E:
|
|
lsls r1, r5, 24
|
|
lsrs r1, 24
|
|
lsrs r0, r6, 24
|
|
bl GetBoxedMonPtr
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
bl GetBoxMonData
|
|
cmp r0, 0
|
|
bne _0813B2C0
|
|
bl get_unknown_box_id
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, r4
|
|
beq _0813B2A6
|
|
ldr r0, =0x000008d7
|
|
bl FlagClear
|
|
_0813B2A6:
|
|
ldr r0, =0x00004036
|
|
lsrs r1, r7, 16
|
|
bl VarSet
|
|
bl sub_813B21C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0813B2DC
|
|
.pool
|
|
_0813B2C0:
|
|
adds r5, 0x1
|
|
cmp r5, 0x1D
|
|
ble _0813B27E
|
|
adds r4, 0x1
|
|
cmp r4, 0xE
|
|
bne _0813B2CE
|
|
movs r4, 0
|
|
_0813B2CE:
|
|
bl StorageGetCurrentBox
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r4, r0
|
|
bne _0813B278
|
|
movs r0, 0
|
|
_0813B2DC:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_813B260
|
|
|
|
thumb_func_start sub_813B2E4
|
|
sub_813B2E4: @ 813B2E4
|
|
push {r4,lr}
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r0, =0x00004038
|
|
movs r1, 0
|
|
bl VarSet
|
|
movs r0, 0xDF
|
|
lsls r0, 1
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0813B340
|
|
ldr r0, =0x000001bf
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0813B330
|
|
ldr r0, =0x00004037
|
|
movs r1, 0x7
|
|
ands r4, r1
|
|
adds r1, r4, 0
|
|
adds r1, 0x9
|
|
bl VarSet
|
|
b _0813B36A
|
|
.pool
|
|
_0813B330:
|
|
movs r0, 0x1
|
|
ands r4, r0
|
|
cmp r4, 0
|
|
bne _0813B354
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
_0813B340:
|
|
ldr r0, =0x00004037
|
|
movs r1, 0x7
|
|
ands r4, r1
|
|
adds r1, r4, 0x1
|
|
bl VarSet
|
|
b _0813B36A
|
|
.pool
|
|
_0813B354:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r0, =0x00004037
|
|
movs r1, 0x7
|
|
ands r4, r1
|
|
adds r1, r4, 0
|
|
adds r1, 0x9
|
|
bl VarSet
|
|
_0813B36A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813B2E4
|
|
|
|
thumb_func_start sub_813B374
|
|
sub_813B374: @ 813B374
|
|
push {r4,lr}
|
|
ldr r0, =0x00004037
|
|
bl VarGet
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
ldr r0, =gStringVar1
|
|
ldr r2, =gUnknown_085B3400
|
|
subs r1, r4, 0x1
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
movs r2, 0
|
|
bl GetMapName
|
|
cmp r4, 0x8
|
|
bls _0813B3A8
|
|
movs r0, 0x1
|
|
b _0813B3AA
|
|
.pool
|
|
_0813B3A8:
|
|
movs r0, 0
|
|
_0813B3AA:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_813B374
|
|
|
|
thumb_func_start sub_813B3B0
|
|
sub_813B3B0: @ 813B3B0
|
|
push {r4-r6,lr}
|
|
ldr r5, =0x00004038
|
|
adds r0, r5, 0
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r0, =0x00004037
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
cmp r6, 0
|
|
beq _0813B47C
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r0, =0x000003e7
|
|
cmp r4, r0
|
|
bls _0813B474
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl VarSet
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
movs r0, 0x4
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, 0x18
|
|
bne _0813B414
|
|
movs r0, 0x5
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, 0x69
|
|
bgt _0813B414
|
|
cmp r0, 0x65
|
|
blt _0813B414
|
|
ldr r0, =0x00004039
|
|
movs r1, 0x1
|
|
b _0813B478
|
|
.pool
|
|
_0813B414:
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r2, [r0]
|
|
movs r1, 0x4
|
|
ldrsb r1, [r2, r1]
|
|
adds r3, r0, 0
|
|
cmp r1, 0
|
|
bne _0813B444
|
|
movs r0, 0x5
|
|
ldrsb r0, [r2, r0]
|
|
cmp r0, 0x34
|
|
beq _0813B436
|
|
cmp r0, 0x34
|
|
blt _0813B444
|
|
cmp r0, 0x38
|
|
bgt _0813B444
|
|
cmp r0, 0x36
|
|
blt _0813B444
|
|
_0813B436:
|
|
ldr r0, =0x00004039
|
|
movs r1, 0x1
|
|
b _0813B478
|
|
.pool
|
|
_0813B444:
|
|
ldr r3, [r3]
|
|
movs r2, 0x5
|
|
ldrsb r2, [r3, r2]
|
|
ldr r1, =gUnknown_085B3410
|
|
subs r0, r6, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bne _0813B468
|
|
movs r0, 0x4
|
|
ldrsb r0, [r3, r0]
|
|
cmp r0, 0
|
|
bne _0813B468
|
|
movs r0, 0x1
|
|
b _0813B47E
|
|
.pool
|
|
_0813B468:
|
|
ldr r0, =0x00004037
|
|
movs r1, 0
|
|
b _0813B478
|
|
.pool
|
|
_0813B474:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
_0813B478:
|
|
bl VarSet
|
|
_0813B47C:
|
|
movs r0, 0
|
|
_0813B47E:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_813B3B0
|
|
|
|
thumb_func_start sub_813B484
|
|
sub_813B484: @ 813B484
|
|
push {lr}
|
|
movs r0, 0x2
|
|
bl sub_80AB104
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813B484
|
|
|
|
thumb_func_start sub_813B490
|
|
sub_813B490: @ 813B490
|
|
push {r4-r7,lr}
|
|
movs r3, 0
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r4, [r0]
|
|
movs r6, 0x4
|
|
ldrsb r6, [r4, r6]
|
|
ldr r5, =gUnknown_085B3420
|
|
adds r0, r5, 0x2
|
|
mov r12, r0
|
|
adds r7, r5, 0x1
|
|
_0813B4A4:
|
|
lsls r0, r3, 1
|
|
adds r2, r0, r3
|
|
adds r0, r2, r5
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bne _0813B4CC
|
|
movs r1, 0x5
|
|
ldrsb r1, [r4, r1]
|
|
adds r0, r2, r7
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _0813B4CC
|
|
mov r1, r12
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
b _0813B4D8
|
|
.pool
|
|
_0813B4CC:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0xB
|
|
bls _0813B4A4
|
|
movs r0, 0x1
|
|
_0813B4D8:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_813B490
|
|
|
|
thumb_func_start sub_813B4E0
|
|
sub_813B4E0: @ 813B4E0
|
|
push {lr}
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
bl sub_81D15CC
|
|
cmp r0, 0
|
|
blt _0813B50C
|
|
movs r1, 0xAE
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0813B50C
|
|
movs r0, 0x1
|
|
b _0813B50E
|
|
.pool
|
|
_0813B50C:
|
|
movs r0, 0
|
|
_0813B50E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_813B4E0
|
|
|
|
thumb_func_start sub_813B514
|
|
sub_813B514: @ 813B514
|
|
push {lr}
|
|
ldr r0, =0x0000403f
|
|
bl VarGet
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _0813B52C
|
|
movs r0, 0x1
|
|
b _0813B52E
|
|
.pool
|
|
_0813B52C:
|
|
movs r0, 0
|
|
_0813B52E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_813B514
|
|
|
|
thumb_func_start sub_813B534
|
|
sub_813B534: @ 813B534
|
|
push {lr}
|
|
ldr r2, =gUnknown_0203AB70
|
|
ldr r1, =gBattleTypeFlags
|
|
ldr r0, [r1]
|
|
str r0, [r2]
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r0, =gReceivedRemoteLinkPlayers
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0813B552
|
|
ldr r0, =sub_80B3AF8
|
|
movs r1, 0x5
|
|
bl CreateTask
|
|
_0813B552:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813B534
|
|
|
|
thumb_func_start sub_813B568
|
|
sub_813B568: @ 813B568
|
|
push {lr}
|
|
ldr r0, =sub_813B57C
|
|
movs r1, 0x5
|
|
bl CreateTask
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813B568
|
|
|
|
thumb_func_start sub_813B57C
|
|
sub_813B57C: @ 813B57C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x9
|
|
bls _0813B596
|
|
b _0813B7C6
|
|
_0813B596:
|
|
lsls r0, 2
|
|
ldr r1, =_0813B5A8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0813B5A8:
|
|
.4byte _0813B5D0
|
|
.4byte _0813B5E4
|
|
.4byte _0813B614
|
|
.4byte _0813B6B4
|
|
.4byte _0813B6E4
|
|
.4byte _0813B728
|
|
.4byte _0813B764
|
|
.4byte _0813B772
|
|
.4byte _0813B784
|
|
.4byte _0813B7A8
|
|
_0813B5D0:
|
|
ldr r0, =sub_80B3AF8
|
|
bl FuncIsActiveTask
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0813B5DE
|
|
b _0813B7C6
|
|
_0813B5DE:
|
|
b _0813B790
|
|
.pool
|
|
_0813B5E4:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0813B5F2
|
|
b _0813B7C6
|
|
_0813B5F2:
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0813B5FE
|
|
b _0813B790
|
|
_0813B5FE:
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gSpecialVar_0x8004
|
|
movs r2, 0x2
|
|
bl SendBlock
|
|
b _0813B708
|
|
.pool
|
|
_0813B614:
|
|
bl GetBlockReceivedStatus
|
|
movs r1, 0x2
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0813B622
|
|
b _0813B7C6
|
|
_0813B622:
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0813B62E
|
|
b _0813B790
|
|
_0813B62E:
|
|
ldr r5, =gSpecialVar_0x8005
|
|
ldr r0, =gBlockRecvBuffer
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
strh r0, [r5]
|
|
movs r0, 0x1
|
|
bl ResetBlockReceivedFlag
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0813B668
|
|
ldrh r1, [r5]
|
|
cmp r1, 0x1
|
|
bne _0813B668
|
|
ldr r0, =gSpecialVar_Result
|
|
strh r1, [r0]
|
|
b _0813B790
|
|
.pool
|
|
_0813B668:
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r1, [r0]
|
|
adds r2, r0, 0
|
|
cmp r1, 0
|
|
bne _0813B68C
|
|
ldr r0, =gSpecialVar_0x8005
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0813B68C
|
|
ldr r1, =gSpecialVar_Result
|
|
movs r0, 0x2
|
|
b _0813B6AC
|
|
.pool
|
|
_0813B68C:
|
|
ldrh r0, [r2]
|
|
cmp r0, 0x1
|
|
bne _0813B6A8
|
|
ldr r0, =gSpecialVar_0x8005
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _0813B6A8
|
|
ldr r1, =gSpecialVar_Result
|
|
movs r0, 0x3
|
|
b _0813B6AC
|
|
.pool
|
|
_0813B6A8:
|
|
ldr r1, =gSpecialVar_Result
|
|
movs r0, 0
|
|
_0813B6AC:
|
|
strh r0, [r1]
|
|
b _0813B790
|
|
.pool
|
|
_0813B6B4:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0813B6C2
|
|
b _0813B7C6
|
|
_0813B6C2:
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0813B790
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gSpecialVar_Result
|
|
movs r2, 0x2
|
|
bl SendBlock
|
|
b _0813B708
|
|
.pool
|
|
_0813B6E4:
|
|
bl GetBlockReceivedStatus
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0813B7C6
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0813B790
|
|
ldr r1, =gSpecialVar_Result
|
|
ldr r0, =gBlockRecvBuffer
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
movs r0, 0
|
|
bl ResetBlockReceivedFlag
|
|
_0813B708:
|
|
ldr r1, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r1, [r0, 0x8]
|
|
adds r1, 0x1
|
|
strh r1, [r0, 0x8]
|
|
b _0813B7C6
|
|
.pool
|
|
_0813B728:
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0813B74C
|
|
ldr r0, =gSpecialVar_Result
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _0813B790
|
|
ldr r0, =gText_YourPartnerHasRetired
|
|
bl ShowFieldAutoScrollMessage
|
|
b _0813B790
|
|
.pool
|
|
_0813B74C:
|
|
ldr r0, =gSpecialVar_Result
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x3
|
|
bne _0813B790
|
|
ldr r0, =gText_YourPartnerHasRetired
|
|
bl ShowFieldAutoScrollMessage
|
|
b _0813B790
|
|
.pool
|
|
_0813B764:
|
|
movs r0, 0
|
|
bl IsTextPrinterActive
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _0813B7C6
|
|
b _0813B790
|
|
_0813B772:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0813B7C6
|
|
bl sub_800ADF8
|
|
b _0813B790
|
|
_0813B784:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0813B7C6
|
|
_0813B790:
|
|
ldr r0, =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
b _0813B7C6
|
|
.pool
|
|
_0813B7A8:
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0813B7B4
|
|
bl sub_800AC34
|
|
_0813B7B4:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, =gUnknown_0203AB70
|
|
ldr r1, [r1]
|
|
str r1, [r0]
|
|
bl EnableBothScriptContexts
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_0813B7C6:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813B57C
|
|
|
|
thumb_func_start sub_813B7D8
|
|
sub_813B7D8: @ 813B7D8
|
|
push {lr}
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _0813B7F8
|
|
ldr r2, =c2_exit_to_overworld_1_continue_scripts_restart_music
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl sub_81D6720
|
|
b _0813B802
|
|
.pool
|
|
_0813B7F8:
|
|
ldr r2, =c2_exit_to_overworld_1_continue_scripts_restart_music
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl sub_81D6720
|
|
_0813B802:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813B7D8
|
|
|
|
thumb_func_start sub_813B80C
|
|
sub_813B80C: @ 813B80C
|
|
push {lr}
|
|
ldr r0, =sub_813B824
|
|
movs r1, 0x8
|
|
bl CreateTask
|
|
movs r0, 0x9D
|
|
bl PlaySE
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813B80C
|
|
|
|
thumb_func_start sub_813B824
|
|
sub_813B824: @ 813B824
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r5, r0, 0
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, =gTasks + 0x8
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4, 0x2]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2]
|
|
movs r0, 0x2
|
|
ldrsh r1, [r4, r0]
|
|
ldr r0, =gSpecialVar_0x8005
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
bne _0813B858
|
|
ldrh r0, [r4]
|
|
adds r0, 0x1
|
|
strh r0, [r4]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2]
|
|
movs r0, 0x9D
|
|
bl PlaySE
|
|
_0813B858:
|
|
movs r0, 0
|
|
ldrsh r1, [r4, r0]
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r1, r0
|
|
bne _0813B86C
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_0813B86C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813B824
|
|
|
|
thumb_func_start sub_813B880
|
|
sub_813B880: @ 813B880
|
|
push {lr}
|
|
ldr r0, =_fwalk
|
|
movs r1, 0x8
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r2, 0
|
|
movs r0, 0x4
|
|
strh r0, [r1, 0x8]
|
|
strh r0, [r1, 0xA]
|
|
strh r0, [r1, 0xC]
|
|
strh r2, [r1, 0xE]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813B880
|
|
|
|
thumb_func_start _fwalk
|
|
_fwalk: @ 813B8B0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
lsls r0, 2
|
|
add r0, r9
|
|
lsls r0, 3
|
|
ldr r1, =gTasks + 0x8
|
|
adds r5, r0, r1
|
|
movs r0, 0x6
|
|
ldrsh r1, [r5, r0]
|
|
lsls r1, 1
|
|
adds r1, r5
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
movs r1, 0x6
|
|
ldrsh r0, [r5, r1]
|
|
lsls r0, 1
|
|
adds r0, r5
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, 0
|
|
bne _0813B94E
|
|
movs r6, 0
|
|
_0813B8EA:
|
|
movs r4, 0
|
|
lsls r3, r6, 3
|
|
mov r10, r3
|
|
adds r7, r6, 0x1
|
|
mov r8, r7
|
|
_0813B8F4:
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
adds r0, r4
|
|
adds r0, 0x6
|
|
movs r3, 0x2
|
|
ldrsh r1, [r1, r3]
|
|
adds r1, r6
|
|
adds r1, 0x4
|
|
ldr r7, =0x00000201
|
|
adds r2, r4, r7
|
|
add r2, r10
|
|
movs r7, 0x6
|
|
ldrsh r3, [r5, r7]
|
|
lsls r3, 5
|
|
adds r2, r3
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
bl MapGridSetMetatileIdAt
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x2
|
|
bls _0813B8F4
|
|
mov r1, r8
|
|
lsls r0, r1, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x3
|
|
bls _0813B8EA
|
|
bl DrawWholeMapView
|
|
ldrh r0, [r5, 0x6]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x6]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3
|
|
bne _0813B94E
|
|
mov r0, r9
|
|
bl DestroyTask
|
|
bl EnableBothScriptContexts
|
|
_0813B94E:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end _fwalk
|
|
|
|
thumb_func_start sub_813B968
|
|
sub_813B968: @ 813B968
|
|
push {r4,r5,lr}
|
|
ldr r5, =gSpecialVar_Result
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
movs r1, 0x7
|
|
bl __udivsi3
|
|
strh r0, [r5]
|
|
ldrh r4, [r5]
|
|
adds r0, r4, 0
|
|
movs r1, 0x14
|
|
bl __udivsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
subs r4, r1
|
|
strh r4, [r5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813B968
|
|
|
|
thumb_func_start sub_813B9A0
|
|
sub_813B9A0: @ 813B9A0
|
|
push {lr}
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0, 0x1C]
|
|
movs r0, 0xB0
|
|
lsls r0, 4
|
|
cmp r1, r0
|
|
bne _0813B9B6
|
|
movs r0, 0x3
|
|
bl Overworld_SetHealLocationWarp
|
|
_0813B9B6:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813B9A0
|
|
|
|
thumb_func_start sub_813B9C0
|
|
sub_813B9C0: @ 813B9C0
|
|
push {r4,lr}
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
movs r1, 0x4
|
|
ldrsb r1, [r0, r1]
|
|
lsls r1, 8
|
|
ldrb r0, [r0, 0x5]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
ldr r2, =gUnknown_085B3444
|
|
ldrh r0, [r2]
|
|
ldr r1, =0x0000ffff
|
|
cmp r0, r1
|
|
beq _0813BA06
|
|
adds r4, r1, 0
|
|
adds r1, r2, 0
|
|
_0813B9E6:
|
|
ldrh r0, [r2]
|
|
cmp r0, r3
|
|
bne _0813B9FC
|
|
movs r0, 0x1
|
|
b _0813BA08
|
|
.pool
|
|
_0813B9FC:
|
|
adds r1, 0x2
|
|
adds r2, 0x2
|
|
ldrh r0, [r1]
|
|
cmp r0, r4
|
|
bne _0813B9E6
|
|
_0813BA06:
|
|
movs r0, 0
|
|
_0813BA08:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_813B9C0
|
|
|
|
thumb_func_start ResetFanClub
|
|
ResetFanClub: @ 813BA10
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r2, =0x0000141e
|
|
adds r1, r0, r2
|
|
movs r2, 0
|
|
strh r2, [r1]
|
|
movs r1, 0xA1
|
|
lsls r1, 5
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end ResetFanClub
|
|
|
|
thumb_func_start sub_813BA30
|
|
sub_813BA30: @ 813BA30
|
|
push {lr}
|
|
bl sub_813BF44
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0813BA52
|
|
bl sub_813BCE8
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0, 0xE]
|
|
movs r2, 0xA1
|
|
lsls r2, 5
|
|
adds r1, r2
|
|
strh r0, [r1]
|
|
_0813BA52:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813BA30
|
|
|
|
thumb_func_start sub_813BA60
|
|
sub_813BA60: @ 813BA60
|
|
push {r4,lr}
|
|
ldr r4, =gSaveBlock1Ptr
|
|
ldr r0, [r4]
|
|
ldr r1, =0x0000141e
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
lsrs r0, 7
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0813BAB6
|
|
bl sub_813BF60
|
|
bl sub_813BD84
|
|
ldr r1, [r4]
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0, 0xE]
|
|
movs r2, 0xA1
|
|
lsls r2, 5
|
|
adds r1, r2
|
|
strh r0, [r1]
|
|
ldr r0, =0x00000315
|
|
bl FlagClear
|
|
ldr r0, =0x00000316
|
|
bl FlagClear
|
|
ldr r0, =0x00000317
|
|
bl FlagClear
|
|
movs r0, 0xC6
|
|
lsls r0, 2
|
|
bl FlagClear
|
|
ldr r0, =0x000002da
|
|
bl FlagClear
|
|
ldr r0, =0x00004095
|
|
movs r1, 0x1
|
|
bl VarSet
|
|
_0813BAB6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813BA60
|
|
|
|
thumb_func_start sub_813BADC
|
|
sub_813BADC: @ 813BADC
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, =0x00004095
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x2
|
|
bne _0813BB58
|
|
ldr r4, =gSaveBlock1Ptr
|
|
ldr r0, [r4]
|
|
ldr r5, =0x0000141e
|
|
adds r3, r0, r5
|
|
ldrh r2, [r3]
|
|
movs r1, 0x7F
|
|
ands r1, r2
|
|
ldr r0, =gUnknown_085B3470
|
|
adds r0, r6, r0
|
|
ldrb r0, [r0]
|
|
adds r1, r0
|
|
cmp r1, 0x13
|
|
ble _0813BB54
|
|
bl sub_813BCA8
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x2
|
|
bhi _0813BB3C
|
|
bl sub_813BB74
|
|
ldr r0, [r4]
|
|
adds r0, r5
|
|
ldrh r2, [r0]
|
|
ldr r1, =0x0000ff80
|
|
ands r1, r2
|
|
strh r1, [r0]
|
|
b _0813BB58
|
|
.pool
|
|
_0813BB3C:
|
|
ldr r2, [r4]
|
|
adds r2, r5
|
|
ldrh r1, [r2]
|
|
ldr r0, =0x0000ff80
|
|
ands r0, r1
|
|
movs r1, 0x14
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
b _0813BB58
|
|
.pool
|
|
_0813BB54:
|
|
adds r0, r2, r0
|
|
strh r0, [r3]
|
|
_0813BB58:
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, =0x0000141e
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_813BADC
|
|
|
|
thumb_func_start sub_813BB74
|
|
sub_813BB74: @ 813BB74
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
movs r3, 0
|
|
movs r5, 0
|
|
ldr r7, =gSaveBlock1Ptr
|
|
ldr r2, =0x0000141e
|
|
movs r6, 0x1
|
|
_0813BB82:
|
|
ldr r0, [r7]
|
|
adds r0, r2
|
|
ldrh r1, [r0]
|
|
ldr r0, =gUnknown_085B3474
|
|
adds r0, r5, r0
|
|
ldrb r4, [r0]
|
|
asrs r1, r4
|
|
ands r1, r6
|
|
cmp r1, 0
|
|
bne _0813BBC8
|
|
adds r3, r5, 0
|
|
str r2, [sp]
|
|
str r3, [sp, 0x4]
|
|
bl Random
|
|
adds r1, r6, 0
|
|
ands r1, r0
|
|
ldr r2, [sp]
|
|
ldr r3, [sp, 0x4]
|
|
cmp r1, 0
|
|
beq _0813BBC8
|
|
ldr r0, [r7]
|
|
adds r0, r2
|
|
adds r1, r6, 0
|
|
lsls r1, r4
|
|
ldrh r2, [r0]
|
|
orrs r1, r2
|
|
strh r1, [r0]
|
|
b _0813BBEA
|
|
.pool
|
|
_0813BBC8:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x7
|
|
bls _0813BB82
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r2, [r0]
|
|
ldr r0, =0x0000141e
|
|
adds r2, r0
|
|
ldr r1, =gUnknown_085B3474
|
|
adds r1, r3, r1
|
|
movs r0, 0x1
|
|
ldrb r1, [r1]
|
|
lsls r0, r1
|
|
ldrh r1, [r2]
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
_0813BBEA:
|
|
adds r0, r3, 0
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_813BB74
|
|
|
|
thumb_func_start sub_813BC00
|
|
sub_813BC00: @ 813BC00
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r0, 0
|
|
mov r10, r0
|
|
bl sub_813BCA8
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _0813BC2E
|
|
movs r0, 0
|
|
b _0813BC8E
|
|
_0813BC1E:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
add r0, r9
|
|
lsls r4, r6
|
|
ldrh r1, [r0]
|
|
eors r4, r1
|
|
strh r4, [r0]
|
|
b _0813BC8C
|
|
_0813BC2E:
|
|
movs r5, 0
|
|
ldr r2, =gSaveBlock1Ptr
|
|
mov r8, r2
|
|
ldr r0, =0x0000141e
|
|
mov r9, r0
|
|
movs r4, 0x1
|
|
_0813BC3A:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
add r0, r9
|
|
ldrh r1, [r0]
|
|
ldr r7, =gUnknown_085B347C
|
|
adds r0, r5, r7
|
|
ldrb r6, [r0]
|
|
asrs r1, r6
|
|
ands r1, r4
|
|
cmp r1, 0
|
|
beq _0813BC5E
|
|
mov r10, r5
|
|
bl Random
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0813BC1E
|
|
_0813BC5E:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x7
|
|
bls _0813BC3A
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r2, =0x0000141e
|
|
adds r4, r0, r2
|
|
ldrh r1, [r4]
|
|
mov r2, r10
|
|
adds r0, r2, r7
|
|
ldrb r2, [r0]
|
|
adds r0, r1, 0
|
|
asrs r0, r2
|
|
movs r3, 0x1
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _0813BC8C
|
|
adds r0, r3, 0
|
|
lsls r0, r2
|
|
eors r1, r0
|
|
strh r1, [r4]
|
|
_0813BC8C:
|
|
mov r0, r10
|
|
_0813BC8E:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_813BC00
|
|
|
|
thumb_func_start sub_813BCA8
|
|
sub_813BCA8: @ 813BCA8
|
|
push {r4,r5,lr}
|
|
movs r3, 0
|
|
movs r2, 0
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, =0x0000141e
|
|
adds r0, r1
|
|
ldrh r4, [r0]
|
|
movs r5, 0x1
|
|
_0813BCBA:
|
|
adds r1, r2, 0
|
|
adds r1, 0x8
|
|
adds r0, r4, 0
|
|
asrs r0, r1
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0813BCCE
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
_0813BCCE:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x7
|
|
bls _0813BCBA
|
|
adds r0, r3, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_813BCA8
|
|
|
|
thumb_func_start sub_813BCE8
|
|
sub_813BCE8: @ 813BCE8
|
|
push {r4-r6,lr}
|
|
movs r5, 0
|
|
ldr r2, =gSaveBlock2Ptr
|
|
ldr r0, [r2]
|
|
ldrh r1, [r0, 0xE]
|
|
ldr r0, =0x000003e6
|
|
cmp r1, r0
|
|
bhi _0813BD58
|
|
adds r6, r2, 0
|
|
b _0813BD32
|
|
.pool
|
|
_0813BD04:
|
|
ldr r0, [r6]
|
|
ldrh r1, [r0, 0xE]
|
|
ldr r4, =gSaveBlock1Ptr
|
|
ldr r0, [r4]
|
|
movs r2, 0xA1
|
|
lsls r2, 5
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
subs r1, r0
|
|
cmp r1, 0xB
|
|
ble _0813BD58
|
|
bl sub_813BC00
|
|
ldr r0, [r4]
|
|
movs r1, 0xA1
|
|
lsls r1, 5
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
adds r1, 0xC
|
|
strh r1, [r0]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_0813BD32:
|
|
bl sub_813BCA8
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x4
|
|
bhi _0813BD54
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
ldr r0, [r6]
|
|
ldrh r0, [r0, 0xE]
|
|
movs r2, 0xA1
|
|
lsls r2, 5
|
|
adds r1, r2
|
|
strh r0, [r1]
|
|
b _0813BD58
|
|
.pool
|
|
_0813BD54:
|
|
cmp r5, 0x8
|
|
bne _0813BD04
|
|
_0813BD58:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813BCE8
|
|
|
|
thumb_func_start sub_813BD60
|
|
sub_813BD60: @ 813BD60
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, =0x0000141e
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
ldr r1, =gSpecialVar_0x8004
|
|
ldrh r1, [r1]
|
|
asrs r0, r1
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_813BD60
|
|
|
|
thumb_func_start sub_813BD84
|
|
sub_813BD84: @ 813BD84
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r2, [r0]
|
|
ldr r0, =0x0000141e
|
|
adds r2, r0
|
|
ldrh r1, [r2]
|
|
movs r3, 0x80
|
|
lsls r3, 6
|
|
adds r0, r3, 0
|
|
orrs r0, r1
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
adds r1, r3, 0
|
|
orrs r0, r1
|
|
movs r3, 0x80
|
|
lsls r3, 3
|
|
adds r1, r3, 0
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_813BD84
|
|
|
|
thumb_func_start sub_813BDB4
|
|
sub_813BDB4: @ 813BDB4
|
|
push {lr}
|
|
movs r3, 0
|
|
movs r2, 0
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
subs r0, 0x8
|
|
cmp r0, 0x7
|
|
bhi _0813BE14
|
|
lsls r0, 2
|
|
ldr r1, =_0813BDD8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0813BDD8:
|
|
.4byte _0813BE14
|
|
.4byte _0813BE14
|
|
.4byte _0813BDF8
|
|
.4byte _0813BDFE
|
|
.4byte _0813BE04
|
|
.4byte _0813BE0A
|
|
.4byte _0813BE10
|
|
.4byte _0813BE14
|
|
_0813BDF8:
|
|
movs r3, 0
|
|
movs r2, 0x3
|
|
b _0813BE14
|
|
_0813BDFE:
|
|
movs r3, 0
|
|
movs r2, 0x1
|
|
b _0813BE14
|
|
_0813BE04:
|
|
movs r3, 0x1
|
|
movs r2, 0
|
|
b _0813BE14
|
|
_0813BE0A:
|
|
movs r3, 0
|
|
movs r2, 0x4
|
|
b _0813BE14
|
|
_0813BE10:
|
|
movs r3, 0x1
|
|
movs r2, 0x5
|
|
_0813BE14:
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00003150
|
|
adds r0, r1
|
|
adds r1, r3, 0
|
|
bl sub_813BE30
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813BDB4
|
|
|
|
thumb_func_start sub_813BE30
|
|
sub_813BE30: @ 813BE30
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r0, r5, 4
|
|
adds r1, r6, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
bne _0813BEE8
|
|
cmp r2, 0x5
|
|
bhi _0813BED4
|
|
lsls r0, r2, 2
|
|
ldr r1, =_0813BE58
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0813BE58:
|
|
.4byte _0813BED4
|
|
.4byte _0813BE70
|
|
.4byte _0813BE84
|
|
.4byte _0813BE98
|
|
.4byte _0813BEAC
|
|
.4byte _0813BEC0
|
|
_0813BE70:
|
|
ldr r0, =gStringVar1
|
|
ldr r1, =gText_Steven
|
|
bl StringCopy
|
|
b _0813BF04
|
|
.pool
|
|
_0813BE84:
|
|
ldr r0, =gStringVar1
|
|
ldr r1, =gText_Brawly
|
|
bl StringCopy
|
|
b _0813BF04
|
|
.pool
|
|
_0813BE98:
|
|
ldr r0, =gStringVar1
|
|
ldr r1, =gText_Winona
|
|
bl StringCopy
|
|
b _0813BF04
|
|
.pool
|
|
_0813BEAC:
|
|
ldr r0, =gStringVar1
|
|
ldr r1, =gText_Phoebe
|
|
bl StringCopy
|
|
b _0813BF04
|
|
.pool
|
|
_0813BEC0:
|
|
ldr r0, =gStringVar1
|
|
ldr r1, =gText_Glacia
|
|
bl StringCopy
|
|
b _0813BF04
|
|
.pool
|
|
_0813BED4:
|
|
ldr r0, =gStringVar1
|
|
ldr r1, =gText_Wallace
|
|
bl StringCopy
|
|
b _0813BF04
|
|
.pool
|
|
_0813BEE8:
|
|
ldr r4, =gStringVar1
|
|
adds r0, r4, 0
|
|
movs r2, 0x7
|
|
bl StringCopyN
|
|
movs r0, 0xFF
|
|
strb r0, [r4, 0x7]
|
|
adds r0, r6, 0
|
|
adds r0, 0x50
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
adds r0, r4, 0
|
|
bl ConvertInternationalString
|
|
_0813BF04:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_813BE30
|
|
|
|
thumb_func_start sub_813BF10
|
|
sub_813BF10: @ 813BF10
|
|
push {lr}
|
|
ldr r0, =0x00004095
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x2
|
|
bne _0813BF40
|
|
bl sub_813BA30
|
|
ldr r0, =gBattleOutcome
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0813BF3C
|
|
bl sub_813BB74
|
|
b _0813BF40
|
|
.pool
|
|
_0813BF3C:
|
|
bl sub_813BC00
|
|
_0813BF40:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813BF10
|
|
|
|
thumb_func_start sub_813BF44
|
|
sub_813BF44: @ 813BF44
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, =0x0000141e
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
lsrs r0, 7
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_813BF44
|
|
|
|
thumb_func_start sub_813BF60
|
|
sub_813BF60: @ 813BF60
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
ldr r0, =0x0000141e
|
|
adds r1, r0
|
|
ldrh r2, [r1]
|
|
movs r0, 0x80
|
|
orrs r0, r2
|
|
strh r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_813BF60
|
|
|
|
thumb_func_start sub_813BF7C
|
|
sub_813BF7C: @ 813BF7C
|
|
push {lr}
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrb r0, [r0]
|
|
bl sub_813BADC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_813BF7C
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|