pokeemerald/asm/field_specials.s

8076 lines
123 KiB
ArmAsm
Raw Normal View History

2017-12-10 19:02:51 +01:00
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start Special_ShowDiploma
Special_ShowDiploma: @ 8137CB4
2017-12-10 19:02:51 +01:00
push {lr}
ldr r0, =CB2_ShowDiploma
bl SetMainCallback2
bl ScriptContext2_Enable
pop {r0}
bx r0
.pool
thumb_func_end Special_ShowDiploma
2017-12-10 19:02:51 +01:00
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
2017-12-24 00:08:55 +01:00
ldr r0, =gBikeCyclingChallenge
2017-12-10 19:02:51 +01:00
movs r1, 0
strb r1, [r0]
2017-12-24 00:08:55 +01:00
ldr r0, =0x0203ab55
2017-12-10 19:02:51 +01:00
strb r1, [r0]
ldr r1, =gUnknown_0203AB58
movs r0, 0
str r0, [r1]
bx lr
.pool
thumb_func_end ResetCyclingRoadChallengeData
2017-12-10 19:02:51 +01:00
thumb_func_start Special_BeginCyclingRoadChallenge
Special_BeginCyclingRoadChallenge: @ 8137D0C
2017-12-24 00:08:55 +01:00
ldr r1, =gBikeCyclingChallenge
2017-12-10 19:02:51 +01:00
movs r0, 0x1
strb r0, [r1]
2017-12-24 00:08:55 +01:00
ldr r1, =0x0203ab55
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start GetPlayerAvatarBike
GetPlayerAvatarBike: @ 8137D34
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start DetermineCyclingRoadResults
DetermineCyclingRoadResults: @ 8137D5C
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start FinishCyclingRoadChallenge
FinishCyclingRoadChallenge: @ 8137E6C
2017-12-10 19:02:51 +01:00
push {r4,r5,lr}
ldr r0, =gMain
ldr r1, =gUnknown_0203AB58
ldr r4, [r0, 0x20]
ldr r0, [r1]
subs r4, r0
2017-12-24 00:08:55 +01:00
ldr r5, =0x0203ab55
2017-12-10 19:02:51 +01:00
ldrb r1, [r5]
adds r0, r4, 0
bl DetermineCyclingRoadResults
2017-12-10 19:02:51 +01:00
ldrb r1, [r5]
adds r0, r4, 0
bl RecordCyclingRoadResults
2017-12-10 19:02:51 +01:00
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end FinishCyclingRoadChallenge
2017-12-10 19:02:51 +01:00
thumb_func_start RecordCyclingRoadResults
RecordCyclingRoadResults: @ 8137E9C
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start GetRecordedCyclingRoadResults
GetRecordedCyclingRoadResults: @ 8137EFC
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
movs r0, 0x1
b _08137F3E
.pool
_08137F3C:
movs r0, 0
_08137F3E:
pop {r4}
pop {r1}
bx r1
thumb_func_end GetRecordedCyclingRoadResults
2017-12-10 19:02:51 +01:00
thumb_func_start UpdateCyclingRoadState
UpdateCyclingRoadState: @ 8137F44
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start SetSSTidalFlag
SetSSTidalFlag: @ 8137F90
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start ResetSSTidalFlag
ResetSSTidalFlag: @ 8137FB0
2017-12-10 19:02:51 +01:00
push {lr}
ldr r0, =0x0000088d
bl FlagClear
pop {r0}
bx r0
.pool
thumb_func_end ResetSSTidalFlag
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start MauvilleGymSpecial2
MauvilleGymSpecial2: @ 8138540
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start MauvilleGymSpecial3
MauvilleGymSpecial3: @ 8138750
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start PetalburgGymSpecial1
PetalburgGymSpecial1: @ 81388E4
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
movs r1, 0x8
bl CreateTask
pop {r0}
bx r0
.pool
thumb_func_end PetalburgGymSpecial1
2017-12-10 19:02:51 +01:00
thumb_func_start Task_PetalburgGym
Task_PetalburgGym: @ 8138910
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start PetalburgGymFunc
PetalburgGymFunc: @ 8138978
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start PetalburgGymSpecial2
PetalburgGymSpecial2: @ 8138AA4
2017-12-10 19:02:51 +01:00
push {lr}
ldr r0, =gSpecialVar_0x8004
ldrb r0, [r0]
ldr r1, =gUnknown_085B2B7E
ldrh r1, [r1, 0x8]
bl PetalburgGymFunc
2017-12-10 19:02:51 +01:00
pop {r0}
bx r0
.pool
thumb_func_end PetalburgGymSpecial2
2017-12-10 19:02:51 +01:00
thumb_func_start ShowFieldMessageStringVar4
ShowFieldMessageStringVar4: @ 8138AC0
2017-12-10 19:02:51 +01:00
push {lr}
ldr r0, =gStringVar4
bl ShowFieldMessage
pop {r0}
bx r0
.pool
thumb_func_end ShowFieldMessageStringVar4
2017-12-10 19:02:51 +01:00
thumb_func_start StorePlayerCoordsInVars
StorePlayerCoordsInVars: @ 8138AD0
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start GetPlayerTrainerIdOnesDigit
GetPlayerTrainerIdOnesDigit: @ 8138AF0
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start GetPlayerBigGuyGirlString
GetPlayerBigGuyGirlString: @ 8138B10
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start GetRivalSonDaughterString
GetRivalSonDaughterString: @ 8138B48
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start SetFlagInVar
SetFlagInVar: @ 8138BC8
2017-12-10 19:02:51 +01:00
push {lr}
ldr r0, =gSpecialVar_0x8004
ldrh r0, [r0]
bl FlagSet
pop {r0}
bx r0
.pool
thumb_func_end SetFlagInVar
2017-12-10 19:02:51 +01:00
thumb_func_start GetWeekCount
GetWeekCount: @ 8138BDC
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start GetLeadMonFriendshipScore
GetLeadMonFriendshipScore: @ 8138C04
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start CB2_FieldShowRegionMap
CB2_FieldShowRegionMap: @ 8138C84
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start FieldShowRegionMap
FieldShowRegionMap: @ 8138C94
2017-12-10 19:02:51 +01:00
push {lr}
ldr r0, =CB2_FieldShowRegionMap
2017-12-10 19:02:51 +01:00
bl SetMainCallback2
pop {r0}
bx r0
.pool
thumb_func_end FieldShowRegionMap
2017-12-10 19:02:51 +01:00
thumb_func_start DoPCTurnOnEffect
DoPCTurnOnEffect: @ 8138CA4
2017-12-10 19:02:51 +01:00
push {r4,lr}
ldr r4, =Task_PCTurnOnEffect
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start Task_PCTurnOnEffect
Task_PCTurnOnEffect: @ 8138CE8
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
_08138D06:
pop {r0}
bx r0
.pool
thumb_func_end Task_PCTurnOnEffect
2017-12-10 19:02:51 +01:00
thumb_func_start PCTurnOnEffect_0
PCTurnOnEffect_0: @ 8138D10
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start PCTurnOnEffect_1
PCTurnOnEffect_1: @ 8138D88
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start DoPCTurnOffEffect
DoPCTurnOffEffect: @ 8138E20
2017-12-10 19:02:51 +01:00
push {lr}
bl PCTurnOffEffect
2017-12-10 19:02:51 +01:00
pop {r0}
bx r0
thumb_func_end DoPCTurnOffEffect
2017-12-10 19:02:51 +01:00
thumb_func_start PCTurnOffEffect
PCTurnOffEffect: @ 8138E2C
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start DoLotteryCornerComputerEffect
DoLotteryCornerComputerEffect: @ 8138EC0
2017-12-10 19:02:51 +01:00
push {r4,lr}
ldr r4, =Task_LotteryCornerComputerEffect
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start Task_LotteryCornerComputerEffect
Task_LotteryCornerComputerEffect: @ 8138F04
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
_08138F22:
pop {r0}
bx r0
.pool
thumb_func_end Task_LotteryCornerComputerEffect
2017-12-10 19:02:51 +01:00
thumb_func_start LotteryCornerComputerEffect
LotteryCornerComputerEffect: @ 8138F2C
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start EndLotteryCornerComputerEffect
EndLotteryCornerComputerEffect: @ 8138FAC
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start SetTrickHouseEndRoomFlag
SetTrickHouseEndRoomFlag: @ 8138FD4
2017-12-10 19:02:51 +01:00
push {lr}
ldr r1, =gSpecialVar_0x8004
ldr r0, =0x000001f5
strh r0, [r1]
bl FlagSet
pop {r0}
bx r0
.pool
thumb_func_end SetTrickHouseEndRoomFlag
2017-12-10 19:02:51 +01:00
thumb_func_start ResetTrickHouseEndRoomFlag
ResetTrickHouseEndRoomFlag: @ 8138FEC
2017-12-10 19:02:51 +01:00
push {lr}
ldr r1, =gSpecialVar_0x8004
ldr r0, =0x000001f5
strh r0, [r1]
bl FlagClear
pop {r0}
bx r0
.pool
thumb_func_end ResetTrickHouseEndRoomFlag
2017-12-10 19:02:51 +01:00
thumb_func_start CheckLeadMonCool
CheckLeadMonCool: @ 8139004
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start CheckLeadMonBeauty
CheckLeadMonBeauty: @ 8139030
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start CheckLeadMonCute
CheckLeadMonCute: @ 813905C
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start CheckLeadMonSmart
CheckLeadMonSmart: @ 8139088
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start CheckLeadMonTough
CheckLeadMonTough: @ 81390B4
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start IsGrassTypeInParty
IsGrassTypeInParty: @ 81390E0
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
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
2017-12-16 15:10:29 +01:00
bl CopyMonFavoritePokeblockName
2017-12-10 19:02:51 +01:00
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.pool
thumb_func_end GetPokeblockNameByMonNature
2017-12-10 19:02:51 +01:00
thumb_func_start GetSecretBaseNearbyMapName
GetSecretBaseNearbyMapName: @ 8139200
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start GiveLeadMonEffortRibbon
GiveLeadMonEffortRibbon: @ 8139370
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start Special_AreLeadMonEVsMaxedOut
Special_AreLeadMonEVsMaxedOut: @ 81393C8
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
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
2017-12-18 16:58:14 +01:00
thumb_func_start SetShoalItemFlag
SetShoalItemFlag: @ 813945C
2017-12-10 19:02:51 +01:00
push {lr}
ldr r0, =0x000008bf
bl FlagSet
pop {r0}
bx r0
.pool
2017-12-18 16:58:14 +01:00
thumb_func_end SetShoalItemFlag
2017-12-10 19:02:51 +01:00
thumb_func_start PutZigzagoonInPlayerParty
PutZigzagoonInPlayerParty: @ 813946C
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start IsStarterInParty
IsStarterInParty: @ 81394D8
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start ScriptCheckFreePokemonStorageSpace
ScriptCheckFreePokemonStorageSpace: @ 8139530
2017-12-10 19:02:51 +01:00
push {lr}
bl CheckFreePokemonStorageSpace
2017-12-10 19:02:51 +01:00
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end ScriptCheckFreePokemonStorageSpace
2017-12-10 19:02:51 +01:00
thumb_func_start IsPokerusInParty
IsPokerusInParty: @ 8139540
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
thumb_func_start SetRoute123Weather
SetRoute123Weather: @ 8139668
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
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
2017-12-10 19:02:51 +01:00
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
2017-12-18 16:58:14 +01:00
thumb_func_start UpdateFrontierManiac
UpdateFrontierManiac: @ 8139EF4
2017-12-10 19:02:51 +01:00
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
2017-12-18 16:58:14 +01:00
thumb_func_end UpdateFrontierManiac
2017-12-10 19:02:51 +01:00
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
2017-12-16 00:08:23 +01:00
bl sub_81AE860
2017-12-10 19:02:51 +01:00
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
2017-12-16 00:08:23 +01:00
bl ListMenuHandleInputGetItemId
2017-12-10 19:02:51 +01:00
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
2017-12-18 16:58:14 +01:00
thumb_func_start UpdateFrontierGambler
UpdateFrontierGambler: @ 813A7F4
2017-12-10 19:02:51 +01:00
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
2017-12-18 16:58:14 +01:00
thumb_func_end UpdateFrontierGambler
2017-12-10 19:02:51 +01:00
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 AddTextPrinterParameterized
2017-12-10 19:02:51 +01:00
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 AddTextPrinterParameterized
2017-12-10 19:02:51 +01:00
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 AddTextPrinterParameterized
2017-12-10 19:02:51 +01:00
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 AddTextPrinterParameterized
2017-12-10 19:02:51 +01:00
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
2017-12-16 00:08:23 +01:00
bl sub_81AE860
2017-12-10 19:02:51 +01:00
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.