pokeruby/asm/field_specials.s
DizzyEggg 102f5b1e15 Battle labels named (#333)
* Changed battle labels
2017-06-19 23:46:48 -04:00

4935 lines
86 KiB
ArmAsm

.include "constants/gba_constants.inc"
.include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start SetSSTidalFlag
SetSSTidalFlag: @ 810D980
push {lr}
ldr r0, _0810D998 @ =0x0000082d
bl FlagSet
ldr r0, _0810D99C @ =0x0000404a
bl GetVarPointer
movs r1, 0
strh r1, [r0]
pop {r0}
bx r0
.align 2, 0
_0810D998: .4byte 0x0000082d
_0810D99C: .4byte 0x0000404a
thumb_func_end SetSSTidalFlag
thumb_func_start ResetSSTidalFlag
ResetSSTidalFlag: @ 810D9A0
push {lr}
ldr r0, _0810D9AC @ =0x0000082d
bl FlagReset
pop {r0}
bx r0
.align 2, 0
_0810D9AC: .4byte 0x0000082d
thumb_func_end ResetSSTidalFlag
thumb_func_start CountSSTidalStep
CountSSTidalStep: @ 810D9B0
push {r4,lr}
lsls r0, 16
lsrs r4, r0, 16
ldr r0, _0810D9DC @ =0x0000082d
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _0810D9D6
ldr r0, _0810D9E0 @ =0x0000404a
bl GetVarPointer
ldrh r1, [r0]
adds r1, r4, r1
strh r1, [r0]
lsls r1, 16
lsrs r1, 16
cmp r1, 0xCC
bhi _0810D9E4
_0810D9D6:
movs r0, 0
b _0810D9E6
.align 2, 0
_0810D9DC: .4byte 0x0000082d
_0810D9E0: .4byte 0x0000404a
_0810D9E4:
movs r0, 0x1
_0810D9E6:
pop {r4}
pop {r1}
bx r1
thumb_func_end CountSSTidalStep
thumb_func_start GetSSTidalLocation
GetSSTidalLocation: @ 810D9EC
push {r4-r7,lr}
mov r7, r8
push {r7}
mov r8, r0
adds r5, r1, 0
adds r6, r2, 0
adds r7, r3, 0
ldr r0, _0810DA1C @ =0x0000404a
bl GetVarPointer
adds r4, r0, 0
ldr r0, _0810DA20 @ =0x000040b4
bl GetVarPointer
ldrh r0, [r0]
subs r0, 0x1
cmp r0, 0x9
bhi _0810DAB2
lsls r0, 2
ldr r1, _0810DA24 @ =_0810DA28
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0810DA1C: .4byte 0x0000404a
_0810DA20: .4byte 0x000040b4
_0810DA24: .4byte _0810DA28
.align 2, 0
_0810DA28:
.4byte _0810DA50
.4byte _0810DA60
.4byte _0810DA54
.4byte _0810DA58
.4byte _0810DA58
.4byte _0810DA5C
.4byte _0810DA88
.4byte _0810DA50
.4byte _0810DA54
.4byte _0810DA5C
_0810DA50:
movs r0, 0x1
b _0810DABE
_0810DA54:
movs r0, 0x4
b _0810DABE
_0810DA58:
movs r0, 0x2
b _0810DABE
_0810DA5C:
movs r0, 0x3
b _0810DABE
_0810DA60:
ldrh r0, [r4]
cmp r0, 0x3B
bhi _0810DA70
movs r0, 0x31
strb r0, [r5]
ldrh r0, [r4]
adds r0, 0x13
b _0810DAB0
_0810DA70:
cmp r0, 0x8B
bhi _0810DA7E
movs r0, 0x30
strb r0, [r5]
ldrh r0, [r4]
subs r0, 0x3C
b _0810DAB0
_0810DA7E:
movs r0, 0x2F
strb r0, [r5]
ldrh r0, [r4]
subs r0, 0x8C
b _0810DAB0
_0810DA88:
ldrh r0, [r4]
cmp r0, 0x41
bhi _0810DA98
movs r0, 0x2F
strb r0, [r5]
ldrh r1, [r4]
movs r0, 0x41
b _0810DAAE
_0810DA98:
cmp r0, 0x91
bhi _0810DAA6
movs r0, 0x30
strb r0, [r5]
ldrh r1, [r4]
movs r0, 0x91
b _0810DAAE
_0810DAA6:
movs r0, 0x31
strb r0, [r5]
ldrh r1, [r4]
movs r0, 0xE0
_0810DAAE:
subs r0, r1
_0810DAB0:
strh r0, [r6]
_0810DAB2:
movs r0, 0
mov r1, r8
strb r0, [r1]
movs r0, 0x14
strh r0, [r7]
movs r0, 0
_0810DABE:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end GetSSTidalLocation
thumb_func_start GetLinkPartnerNames
GetLinkPartnerNames: @ 810DAC8
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r6, 0
bl sub_8008218
lsls r0, 24
lsrs r7, r0, 24
bl sub_800820C
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
cmp r4, r5
bcs _0810DB12
ldr r0, _0810DB20 @ =gUnknown_083D1464
mov r8, r0
_0810DAEA:
cmp r7, r4
beq _0810DB08
lsls r0, r6, 2
add r0, r8
ldr r0, [r0]
lsls r1, r4, 3
subs r1, r4
lsls r1, 2
ldr r2, _0810DB24 @ =gLinkPlayers + 0x8
adds r1, r2
bl StringCopy
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
_0810DB08:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r5
bcc _0810DAEA
_0810DB12:
adds r0, r5, 0
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0810DB20: .4byte gUnknown_083D1464
_0810DB24: .4byte gLinkPlayers + 0x8
thumb_func_end GetLinkPartnerNames
thumb_func_start SpawnBerryBlenderLinkPlayerSprites
SpawnBerryBlenderLinkPlayerSprites: @ 810DB28
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
movs r7, 0
movs r0, 0
mov r9, r0
mov r8, r0
ldr r1, _0810DB74 @ =gUnknown_083F8358
add r0, sp, 0x8
movs r2, 0x4
bl memcpy
add r4, sp, 0xC
ldr r1, _0810DB78 @ =gUnknown_083F835C
adds r0, r4, 0
movs r2, 0x8
bl memcpy
bl sub_8008218
lsls r0, 24
lsrs r0, 24
mov r10, r0
bl player_get_direction_lower_nybble
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
cmp r0, 0x2
beq _0810DB94
cmp r0, 0x2
bgt _0810DB7C
cmp r0, 0x1
beq _0810DBC0
b _0810DBD2
.align 2, 0
_0810DB74: .4byte gUnknown_083F8358
_0810DB78: .4byte gUnknown_083F835C
_0810DB7C:
cmp r1, 0x3
beq _0810DB86
cmp r1, 0x4
beq _0810DBA8
b _0810DBD2
_0810DB86:
movs r7, 0x2
ldr r1, _0810DB90 @ =gSaveBlock1
ldrh r0, [r1]
subs r0, 0x1
b _0810DBAE
.align 2, 0
_0810DB90: .4byte gSaveBlock1
_0810DB94:
movs r7, 0x1
ldr r0, _0810DBA4 @ =gSaveBlock1
ldrh r1, [r0]
mov r9, r1
ldrh r0, [r0, 0x2]
subs r0, 0x1
b _0810DBCC
.align 2, 0
_0810DBA4: .4byte gSaveBlock1
_0810DBA8:
ldr r1, _0810DBBC @ =gSaveBlock1
ldrh r0, [r1]
adds r0, 0x1
_0810DBAE:
lsls r0, 16
lsrs r0, 16
mov r9, r0
ldrh r1, [r1, 0x2]
mov r8, r1
b _0810DBD2
.align 2, 0
_0810DBBC: .4byte gSaveBlock1
_0810DBC0:
movs r7, 0x3
ldr r0, _0810DBD8 @ =gSaveBlock1
ldrh r4, [r0]
mov r9, r4
ldrh r0, [r0, 0x2]
adds r0, 0x1
_0810DBCC:
lsls r0, 16
lsrs r0, 16
mov r8, r0
_0810DBD2:
movs r6, 0
b _0810DC5C
.align 2, 0
_0810DBD8: .4byte gSaveBlock1
_0810DBDC:
cmp r10, r6
beq _0810DC56
ldr r1, _0810DC74 @ =gLinkPlayers
lsls r0, r6, 3
subs r0, r6
lsls r0, 2
adds r0, r1
ldrb r1, [r0, 0x13]
movs r0, 0
bl GetRivalAvatarGraphicsIdByStateIdAndGender
lsls r0, 24
lsrs r0, 24
mov r1, sp
adds r1, r7
adds r1, 0x8
ldrb r1, [r1]
movs r2, 0xF0
subs r2, r6
lsls r2, 24
lsrs r2, 24
lsls r5, r7, 1
mov r3, sp
adds r3, r5
adds r3, 0xC
ldrb r3, [r3]
lsls r3, 24
asrs r3, 24
mov r12, r3
mov r4, r9
lsls r3, r4, 16
asrs r3, 16
add r3, r12
adds r3, 0x7
lsls r3, 16
asrs r3, 16
mov r4, sp
adds r4, 0xD
adds r4, r5
ldrb r4, [r4]
lsls r4, 24
asrs r4, 24
mov r12, r4
mov r5, r8
lsls r4, r5, 16
asrs r4, 16
add r4, r12
adds r4, 0x7
lsls r4, 16
asrs r4, 16
str r4, [sp]
movs r4, 0
str r4, [sp, 0x4]
bl SpawnSpecialFieldObjectParametrized
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
cmp r7, 0x4
bne _0810DC56
movs r7, 0
_0810DC56:
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
_0810DC5C:
ldr r0, _0810DC78 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r6, r0
bcc _0810DBDC
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0810DC74: .4byte gLinkPlayers
_0810DC78: .4byte gSpecialVar_0x8004
thumb_func_end SpawnBerryBlenderLinkPlayerSprites
thumb_func_start MauvilleGymSpecial1
MauvilleGymSpecial1: @ 810DC7C
push {r4,r5,lr}
movs r4, 0
ldr r5, _0810DC9C @ =gUnknown_083F8364
_0810DC82:
ldr r0, _0810DCA0 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r4, r0
bne _0810DCA8
lsls r1, r4, 2
adds r1, r5
ldrb r0, [r1]
ldrb r1, [r1, 0x1]
ldr r2, _0810DCA4 @ =0x00000206
bl MapGridSetMetatileIdAt
b _0810DCB6
.align 2, 0
_0810DC9C: .4byte gUnknown_083F8364
_0810DCA0: .4byte gSpecialVar_0x8004
_0810DCA4: .4byte 0x00000206
_0810DCA8:
lsls r1, r4, 2
adds r1, r5
ldrb r0, [r1]
ldrb r1, [r1, 0x1]
ldr r2, _0810DCC8 @ =0x00000205
bl MapGridSetMetatileIdAt
_0810DCB6:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x2
bls _0810DC82
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810DCC8: .4byte 0x00000205
thumb_func_end MauvilleGymSpecial1
thumb_func_start MauvilleGymSpecial2
MauvilleGymSpecial2: @ 810DCCC
push {r4-r6,lr}
movs r5, 0xC
_0810DCD0:
movs r4, 0x7
adds r6, r5, 0x1
_0810DCD4:
adds r0, r4, 0
adds r1, r5, 0
bl MapGridGetMetatileIdAt
ldr r1, _0810DCF0 @ =0xfffffde6
adds r0, r1
cmp r0, 0x37
bls _0810DCE6
b _0810DEC0
_0810DCE6:
lsls r0, 2
ldr r1, _0810DCF4 @ =_0810DCF8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0810DCF0: .4byte 0xfffffde6
_0810DCF4: .4byte _0810DCF8
.align 2, 0
_0810DCF8:
.4byte _0810DE7E
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DDD8
.4byte _0810DDDE
.4byte _0810DE18
.4byte _0810DE20
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DDE8
.4byte _0810DDEE
.4byte _0810DE28
.4byte _0810DE30
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DDF8
.4byte _0810DDFE
.4byte _0810DE38
.4byte _0810DE40
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DE08
.4byte _0810DE10
.4byte _0810DE48
.4byte _0810DE50
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DE58
.4byte _0810DE68
.4byte _0810DE78
.4byte _0810DEA0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DE60
.4byte _0810DE70
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEB6
.4byte _0810DEA8
_0810DDD8:
movs r2, 0x8C
lsls r2, 2
b _0810DEAC
_0810DDDE:
ldr r2, _0810DDE4 @ =0x00000231
b _0810DEAC
.align 2, 0
_0810DDE4: .4byte 0x00000231
_0810DDE8:
movs r2, 0x8E
lsls r2, 2
b _0810DEAC
_0810DDEE:
ldr r2, _0810DDF4 @ =0x00000239
b _0810DEAC
.align 2, 0
_0810DDF4: .4byte 0x00000239
_0810DDF8:
movs r2, 0x88
lsls r2, 2
b _0810DEAC
_0810DDFE:
ldr r2, _0810DE04 @ =0x00000221
b _0810DEAC
.align 2, 0
_0810DE04: .4byte 0x00000221
_0810DE08:
ldr r2, _0810DE0C @ =0x00000e28
b _0810DEAC
.align 2, 0
_0810DE0C: .4byte 0x00000e28
_0810DE10:
ldr r2, _0810DE14 @ =0x00000e29
b _0810DEAC
.align 2, 0
_0810DE14: .4byte 0x00000e29
_0810DE18:
ldr r2, _0810DE1C @ =0x00000232
b _0810DEAC
.align 2, 0
_0810DE1C: .4byte 0x00000232
_0810DE20:
ldr r2, _0810DE24 @ =0x00000233
b _0810DEAC
.align 2, 0
_0810DE24: .4byte 0x00000233
_0810DE28:
ldr r2, _0810DE2C @ =0x0000023a
b _0810DEAC
.align 2, 0
_0810DE2C: .4byte 0x0000023a
_0810DE30:
ldr r2, _0810DE34 @ =0x0000023b
b _0810DEAC
.align 2, 0
_0810DE34: .4byte 0x0000023b
_0810DE38:
ldr r2, _0810DE3C @ =0x00000222
b _0810DEAC
.align 2, 0
_0810DE3C: .4byte 0x00000222
_0810DE40:
ldr r2, _0810DE44 @ =0x00000223
b _0810DEAC
.align 2, 0
_0810DE44: .4byte 0x00000223
_0810DE48:
ldr r2, _0810DE4C @ =0x00000e2a
b _0810DEAC
.align 2, 0
_0810DE4C: .4byte 0x00000e2a
_0810DE50:
ldr r2, _0810DE54 @ =0x00000e2b
b _0810DEAC
.align 2, 0
_0810DE54: .4byte 0x00000e2b
_0810DE58:
ldr r2, _0810DE5C @ =0x00000e42
b _0810DEAC
.align 2, 0
_0810DE5C: .4byte 0x00000e42
_0810DE60:
ldr r2, _0810DE64 @ =0x0000021a
b _0810DEAC
.align 2, 0
_0810DE64: .4byte 0x0000021a
_0810DE68:
ldr r2, _0810DE6C @ =0x00000e43
b _0810DEAC
.align 2, 0
_0810DE6C: .4byte 0x00000e43
_0810DE70:
ldr r2, _0810DE74 @ =0x0000021a
b _0810DEAC
.align 2, 0
_0810DE74: .4byte 0x0000021a
_0810DE78:
movs r2, 0xE4
lsls r2, 4
b _0810DEAC
_0810DE7E:
subs r1, r5, 0x1
adds r0, r4, 0
bl MapGridGetMetatileIdAt
movs r1, 0x90
lsls r1, 2
cmp r0, r1
bne _0810DE98
ldr r2, _0810DE94 @ =0x00000e48
b _0810DEAC
.align 2, 0
_0810DE94: .4byte 0x00000e48
_0810DE98:
ldr r2, _0810DE9C @ =0x00000e49
b _0810DEAC
.align 2, 0
_0810DE9C: .4byte 0x00000e49
_0810DEA0:
ldr r2, _0810DEA4 @ =0x00000e41
b _0810DEAC
.align 2, 0
_0810DEA4: .4byte 0x00000e41
_0810DEA8:
movs r2, 0xE5
lsls r2, 4
_0810DEAC:
adds r0, r4, 0
adds r1, r5, 0
bl MapGridSetMetatileIdAt
b _0810DEC0
_0810DEB6:
ldr r2, _0810DED8 @ =0x00000251
adds r0, r4, 0
adds r1, r5, 0
bl MapGridSetMetatileIdAt
_0810DEC0:
adds r4, 0x1
cmp r4, 0xF
bgt _0810DEC8
b _0810DCD4
_0810DEC8:
adds r5, r6, 0
cmp r5, 0x17
bgt _0810DED0
b _0810DCD0
_0810DED0:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0810DED8: .4byte 0x00000251
thumb_func_end MauvilleGymSpecial2
thumb_func_start MauvilleGymSpecial3
MauvilleGymSpecial3: @ 810DEDC
push {r4-r6,lr}
ldr r4, _0810DF18 @ =gUnknown_083F8364
movs r5, 0x2
_0810DEE2:
ldrb r0, [r4]
ldrb r1, [r4, 0x1]
ldr r2, _0810DF1C @ =0x00000206
bl MapGridSetMetatileIdAt
adds r4, 0x4
subs r5, 0x1
cmp r5, 0
bge _0810DEE2
movs r5, 0xC
_0810DEF6:
movs r4, 0x7
adds r6, r5, 0x1
_0810DEFA:
adds r0, r4, 0
adds r1, r5, 0
bl MapGridGetMetatileIdAt
ldr r1, _0810DF20 @ =0xfffffde0
adds r0, r1
cmp r0, 0x30
bls _0810DF0C
b _0810E056
_0810DF0C:
lsls r0, 2
ldr r1, _0810DF24 @ =_0810DF28
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0810DF18: .4byte gUnknown_083F8364
_0810DF1C: .4byte 0x00000206
_0810DF20: .4byte 0xfffffde0
_0810DF24: .4byte _0810DF28
.align 2, 0
_0810DF28:
.4byte _0810DFEC
.4byte _0810DFF2
.4byte _0810E00C
.4byte _0810E014
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810DFFC
.4byte _0810E002
.4byte _0810E01C
.4byte _0810E024
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E02C
.4byte _0810E034
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E03C
.4byte _0810E03C
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E04C
_0810DFEC:
movs r2, 0x8C
lsls r2, 2
b _0810E03E
_0810DFF2:
ldr r2, _0810DFF8 @ =0x00000231
b _0810E03E
.align 2, 0
_0810DFF8: .4byte 0x00000231
_0810DFFC:
movs r2, 0x8E
lsls r2, 2
b _0810E03E
_0810E002:
ldr r2, _0810E008 @ =0x00000239
b _0810E03E
.align 2, 0
_0810E008: .4byte 0x00000239
_0810E00C:
ldr r2, _0810E010 @ =0x00000232
b _0810E03E
.align 2, 0
_0810E010: .4byte 0x00000232
_0810E014:
ldr r2, _0810E018 @ =0x00000233
b _0810E03E
.align 2, 0
_0810E018: .4byte 0x00000233
_0810E01C:
ldr r2, _0810E020 @ =0x0000023a
b _0810E03E
.align 2, 0
_0810E020: .4byte 0x0000023a
_0810E024:
ldr r2, _0810E028 @ =0x0000023b
b _0810E03E
.align 2, 0
_0810E028: .4byte 0x0000023b
_0810E02C:
ldr r2, _0810E030 @ =0x00000e42
b _0810E03E
.align 2, 0
_0810E030: .4byte 0x00000e42
_0810E034:
ldr r2, _0810E038 @ =0x00000e43
b _0810E03E
.align 2, 0
_0810E038: .4byte 0x00000e43
_0810E03C:
ldr r2, _0810E048 @ =0x0000021a
_0810E03E:
adds r0, r4, 0
adds r1, r5, 0
bl MapGridSetMetatileIdAt
b _0810E056
.align 2, 0
_0810E048: .4byte 0x0000021a
_0810E04C:
ldr r2, _0810E06C @ =0x00000251
adds r0, r4, 0
adds r1, r5, 0
bl MapGridSetMetatileIdAt
_0810E056:
adds r4, 0x1
cmp r4, 0xF
bgt _0810E05E
b _0810DEFA
_0810E05E:
adds r5, r6, 0
cmp r5, 0x17
bgt _0810E066
b _0810DEF6
_0810E066:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0810E06C: .4byte 0x00000251
thumb_func_end MauvilleGymSpecial3
thumb_func_start PetalburgGymSpecial1
PetalburgGymSpecial1: @ 810E070
push {lr}
ldr r0, _0810E090 @ =gUnknown_02039258
movs r1, 0
strb r1, [r0]
ldr r0, _0810E094 @ =gUnknown_02039259
strb r1, [r0]
movs r0, 0x2C
bl PlaySE
ldr r0, _0810E098 @ =Task_PetalburgGym
movs r1, 0x8
bl CreateTask
pop {r0}
bx r0
.align 2, 0
_0810E090: .4byte gUnknown_02039258
_0810E094: .4byte gUnknown_02039259
_0810E098: .4byte Task_PetalburgGym
thumb_func_end PetalburgGymSpecial1
thumb_func_start Task_PetalburgGym
Task_PetalburgGym: @ 810E09C
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
ldr r0, _0810E0E4 @ =gUnknown_083F8370
ldr r5, _0810E0E8 @ =gUnknown_02039259
ldrb r1, [r5]
adds r0, r1, r0
ldr r4, _0810E0EC @ =gUnknown_02039258
ldrb r2, [r4]
ldrb r0, [r0]
cmp r0, r2
bne _0810E0F8
ldr r0, _0810E0F0 @ =gSpecialVar_0x8004
ldrb r0, [r0]
ldr r2, _0810E0F4 @ =gUnknown_083F8376
lsls r1, 1
adds r1, r2
ldrh r1, [r1]
bl PetalburgGymFunc
movs r0, 0
strb r0, [r4]
ldrb r0, [r5]
adds r0, 0x1
strb r0, [r5]
lsls r0, 24
lsrs r0, 24
cmp r0, 0x5
bne _0810E0FC
adds r0, r6, 0
bl DestroyTask
bl EnableBothScriptContexts
b _0810E0FC
.align 2, 0
_0810E0E4: .4byte gUnknown_083F8370
_0810E0E8: .4byte gUnknown_02039259
_0810E0EC: .4byte gUnknown_02039258
_0810E0F0: .4byte gSpecialVar_0x8004
_0810E0F4: .4byte gUnknown_083F8376
_0810E0F8:
adds r0, r2, 0x1
strb r0, [r4]
_0810E0FC:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end Task_PetalburgGym
thumb_func_start PetalburgGymFunc
PetalburgGymFunc: @ 810E104
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x10
lsls r0, 24
lsrs r0, 24
lsls r1, 16
lsrs r2, r1, 16
movs r7, 0
subs r0, 0x1
cmp r0, 0x7
bhi _0810E1CC
lsls r0, 2
ldr r1, _0810E128 @ =_0810E12C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0810E128: .4byte _0810E12C
.align 2, 0
_0810E12C:
.4byte _0810E14C
.4byte _0810E15E
.4byte _0810E170
.4byte _0810E182
.4byte _0810E190
.4byte _0810E1A6
.4byte _0810E1B2
.4byte _0810E1C0
_0810E14C:
movs r7, 0x2
mov r1, sp
movs r0, 0x1
strh r0, [r1]
movs r0, 0x7
strh r0, [r1, 0x2]
add r1, sp, 0x8
movs r0, 0x68
b _0810E1A0
_0810E15E:
movs r7, 0x2
mov r1, sp
movs r0, 0x1
strh r0, [r1]
movs r0, 0x7
strh r0, [r1, 0x2]
add r1, sp, 0x8
movs r0, 0x4E
b _0810E1A0
_0810E170:
movs r7, 0x2
mov r1, sp
movs r0, 0x1
strh r0, [r1]
movs r0, 0x7
strh r0, [r1, 0x2]
add r1, sp, 0x8
movs r0, 0x5B
b _0810E1A0
_0810E182:
movs r7, 0x1
mov r1, sp
movs r0, 0x7
strh r0, [r1]
add r1, sp, 0x8
movs r0, 0x27
b _0810E1CA
_0810E190:
movs r7, 0x2
mov r1, sp
movs r0, 0x1
strh r0, [r1]
movs r0, 0x7
strh r0, [r1, 0x2]
add r1, sp, 0x8
movs r0, 0x34
_0810E1A0:
strh r0, [r1]
strh r0, [r1, 0x2]
b _0810E1CC
_0810E1A6:
movs r7, 0x1
mov r0, sp
strh r7, [r0]
add r1, sp, 0x8
movs r0, 0x41
b _0810E1CA
_0810E1B2:
movs r7, 0x1
mov r1, sp
movs r0, 0x7
strh r0, [r1]
add r1, sp, 0x8
movs r0, 0xD
b _0810E1CA
_0810E1C0:
movs r7, 0x1
mov r0, sp
strh r7, [r0]
add r1, sp, 0x8
movs r0, 0x1A
_0810E1CA:
strh r0, [r1]
_0810E1CC:
movs r6, 0
cmp r6, r7
bcs _0810E21E
movs r1, 0xC0
lsls r1, 4
adds r0, r1, 0
adds r1, r2, 0
orrs r1, r0
lsls r1, 16
mov r9, r1
adds r1, r2, 0
adds r1, 0x8
orrs r1, r0
lsls r1, 16
mov r8, r1
_0810E1EA:
lsls r1, r6, 1
mov r3, sp
adds r5, r3, r1
ldrh r0, [r5]
adds r0, 0x7
add r4, sp, 0x8
adds r4, r1
ldrh r1, [r4]
adds r1, 0x7
mov r3, r9
lsrs r2, r3, 16
bl MapGridSetMetatileIdAt
ldrh r0, [r5]
adds r0, 0x7
ldrh r1, [r4]
adds r1, 0x8
mov r3, r8
lsrs r2, r3, 16
bl MapGridSetMetatileIdAt
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, r7
bcc _0810E1EA
_0810E21E:
bl DrawWholeMapView
add sp, 0x10
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end PetalburgGymFunc
thumb_func_start PetalburgGymSpecial2
PetalburgGymSpecial2: @ 810E230
push {lr}
ldr r0, _0810E244 @ =gSpecialVar_0x8004
ldrb r0, [r0]
ldr r1, _0810E248 @ =gUnknown_083F8376
ldrh r1, [r1, 0x8]
bl PetalburgGymFunc
pop {r0}
bx r0
.align 2, 0
_0810E244: .4byte gSpecialVar_0x8004
_0810E248: .4byte gUnknown_083F8376
thumb_func_end PetalburgGymSpecial2
thumb_func_start ShowFieldMessageStringVar4
ShowFieldMessageStringVar4: @ 810E24C
push {lr}
ldr r0, _0810E258 @ =gStringVar4
bl ShowFieldMessage
pop {r0}
bx r0
.align 2, 0
_0810E258: .4byte gStringVar4
thumb_func_end ShowFieldMessageStringVar4
thumb_func_start StorePlayerCoordsInVars
StorePlayerCoordsInVars: @ 810E25C
ldr r1, _0810E26C @ =gSpecialVar_0x8004
ldr r2, _0810E270 @ =gSaveBlock1
ldrh r0, [r2]
strh r0, [r1]
ldr r1, _0810E274 @ =gSpecialVar_0x8005
ldrh r0, [r2, 0x2]
strh r0, [r1]
bx lr
.align 2, 0
_0810E26C: .4byte gSpecialVar_0x8004
_0810E270: .4byte gSaveBlock1
_0810E274: .4byte gSpecialVar_0x8005
thumb_func_end StorePlayerCoordsInVars
thumb_func_start GetPlayerTrainerIdOnesDigit
GetPlayerTrainerIdOnesDigit: @ 810E278
push {lr}
ldr r0, _0810E294 @ =gSaveBlock2
ldrb r1, [r0, 0xB]
lsls r1, 8
ldrb r0, [r0, 0xA]
orrs r0, r1
movs r1, 0xA
bl __umodsi3
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_0810E294: .4byte gSaveBlock2
thumb_func_end GetPlayerTrainerIdOnesDigit
thumb_func_start GetPlayerBigGuyGirlString
GetPlayerBigGuyGirlString: @ 810E298
push {lr}
ldr r0, _0810E2AC @ =gSaveBlock2
ldrb r0, [r0, 0x8]
cmp r0, 0
bne _0810E2B8
ldr r0, _0810E2B0 @ =gStringVar1
ldr r1, _0810E2B4 @ =gOtherText_BigGuy
bl StringCopy
b _0810E2C0
.align 2, 0
_0810E2AC: .4byte gSaveBlock2
_0810E2B0: .4byte gStringVar1
_0810E2B4: .4byte gOtherText_BigGuy
_0810E2B8:
ldr r0, _0810E2C4 @ =gStringVar1
ldr r1, _0810E2C8 @ =gOtherText_BigGirl
bl StringCopy
_0810E2C0:
pop {r0}
bx r0
.align 2, 0
_0810E2C4: .4byte gStringVar1
_0810E2C8: .4byte gOtherText_BigGirl
thumb_func_end GetPlayerBigGuyGirlString
thumb_func_start GetRivalSonDaughterString
GetRivalSonDaughterString: @ 810E2CC
push {lr}
ldr r0, _0810E2E0 @ =gSaveBlock2
ldrb r0, [r0, 0x8]
cmp r0, 0
bne _0810E2EC
ldr r0, _0810E2E4 @ =gStringVar1
ldr r1, _0810E2E8 @ =gOtherText_Daughter
bl StringCopy
b _0810E2F4
.align 2, 0
_0810E2E0: .4byte gSaveBlock2
_0810E2E4: .4byte gStringVar1
_0810E2E8: .4byte gOtherText_Daughter
_0810E2EC:
ldr r0, _0810E2F8 @ =gStringVar1
ldr r1, _0810E2FC @ =gOtherText_Son
bl StringCopy
_0810E2F4:
pop {r0}
bx r0
.align 2, 0
_0810E2F8: .4byte gStringVar1
_0810E2FC: .4byte gOtherText_Son
thumb_func_end GetRivalSonDaughterString
thumb_func_start sub_810E300
sub_810E300: @ 810E300
ldr r0, _0810E308 @ =gBattleOutcome
ldrb r0, [r0]
bx lr
.align 2, 0
_0810E308: .4byte gBattleOutcome
thumb_func_end sub_810E300
thumb_func_start CableCarWarp
CableCarWarp: @ 810E30C
push {lr}
sub sp, 0x4
ldr r0, _0810E32C @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0
beq _0810E330
movs r2, 0x1
negs r2, r2
movs r0, 0x4
str r0, [sp]
movs r0, 0x13
movs r1, 0
movs r3, 0x6
bl warp1_set
b _0810E342
.align 2, 0
_0810E32C: .4byte gSpecialVar_0x8004
_0810E330:
movs r2, 0x1
negs r2, r2
movs r0, 0x4
str r0, [sp]
movs r0, 0x13
movs r1, 0x1
movs r3, 0x6
bl warp1_set
_0810E342:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end CableCarWarp
thumb_func_start SetFlagInVar
SetFlagInVar: @ 810E348
push {lr}
ldr r0, _0810E358 @ =gSpecialVar_0x8004
ldrh r0, [r0]
bl FlagSet
pop {r0}
bx r0
.align 2, 0
_0810E358: .4byte gSpecialVar_0x8004
thumb_func_end SetFlagInVar
thumb_func_start GetWeekCount
GetWeekCount: @ 810E35C
push {lr}
ldr r0, _0810E37C @ =gLocalTime
movs r1, 0
ldrsh r0, [r0, r1]
movs r1, 0x7
bl __divsi3
lsls r0, 16
lsrs r0, 16
ldr r1, _0810E380 @ =0x0000270f
cmp r0, r1
bls _0810E376
adds r0, r1, 0
_0810E376:
pop {r1}
bx r1
.align 2, 0
_0810E37C: .4byte gLocalTime
_0810E380: .4byte 0x0000270f
thumb_func_end GetWeekCount
thumb_func_start GetLeadMonFriendshipScore
GetLeadMonFriendshipScore: @ 810E384
push {r4,lr}
bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
muls r1, r0
ldr r0, _0810E3A8 @ =gPlayerParty
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x20
bl GetMonData
cmp r0, 0xFF
bne _0810E3AC
movs r0, 0x6
b _0810E3FE
.align 2, 0
_0810E3A8: .4byte gPlayerParty
_0810E3AC:
adds r0, r4, 0
movs r1, 0x20
bl GetMonData
cmp r0, 0xC7
bls _0810E3BC
movs r0, 0x5
b _0810E3FE
_0810E3BC:
adds r0, r4, 0
movs r1, 0x20
bl GetMonData
cmp r0, 0x95
bls _0810E3CC
movs r0, 0x4
b _0810E3FE
_0810E3CC:
adds r0, r4, 0
movs r1, 0x20
bl GetMonData
cmp r0, 0x63
bls _0810E3DC
movs r0, 0x3
b _0810E3FE
_0810E3DC:
adds r0, r4, 0
movs r1, 0x20
bl GetMonData
cmp r0, 0x31
bls _0810E3EC
movs r0, 0x2
b _0810E3FE
_0810E3EC:
adds r0, r4, 0
movs r1, 0x20
bl GetMonData
cmp r0, 0
bne _0810E3FC
movs r0, 0
b _0810E3FE
_0810E3FC:
movs r0, 0x1
_0810E3FE:
pop {r4}
pop {r1}
bx r1
thumb_func_end GetLeadMonFriendshipScore
thumb_func_start CB2_FieldShowRegionMap
CB2_FieldShowRegionMap: @ 810E404
push {lr}
ldr r0, _0810E410 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
bl FieldInitRegionMap
pop {r0}
bx r0
.align 2, 0
_0810E410: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
thumb_func_end CB2_FieldShowRegionMap
thumb_func_start FieldShowRegionMap
FieldShowRegionMap: @ 810E414
push {lr}
ldr r0, _0810E420 @ =CB2_FieldShowRegionMap
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_0810E420: .4byte CB2_FieldShowRegionMap
thumb_func_end FieldShowRegionMap
thumb_func_start DoPCTurnOnEffect
DoPCTurnOnEffect: @ 810E424
push {r4,lr}
ldr r4, _0810E460 @ =Task_PCTurnOnEffect
adds r0, r4, 0
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0810E458
adds r0, r4, 0
movs r1, 0x8
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _0810E464 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
movs r2, 0
strh r2, [r1, 0x8]
strh r0, [r1, 0xA]
strh r2, [r1, 0xC]
strh r2, [r1, 0xE]
strh r2, [r1, 0x10]
_0810E458:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810E460: .4byte Task_PCTurnOnEffect
_0810E464: .4byte gTasks
thumb_func_end DoPCTurnOnEffect
thumb_func_start Task_PCTurnOnEffect
Task_PCTurnOnEffect: @ 810E468
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, _0810E48C @ =gTasks
adds r1, r0
movs r2, 0x8
ldrsh r0, [r1, r2]
cmp r0, 0
bne _0810E486
adds r0, r1, 0
bl PCTurnOffEffect_0
_0810E486:
pop {r0}
bx r0
.align 2, 0
_0810E48C: .4byte gTasks
thumb_func_end Task_PCTurnOnEffect
thumb_func_start PCTurnOffEffect_0
PCTurnOffEffect_0: @ 810E490
push {r4-r6,lr}
adds r4, r0, 0
movs r6, 0
movs r5, 0
movs r1, 0xE
ldrsh r0, [r4, r1]
cmp r0, 0x6
bne _0810E4FC
strh r5, [r4, 0xE]
bl player_get_direction_lower_nybble
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
cmp r0, 0x3
beq _0810E4C4
cmp r0, 0x3
bgt _0810E4BA
cmp r0, 0x2
beq _0810E4C0
b _0810E4CC
_0810E4BA:
cmp r1, 0x4
beq _0810E4C8
b _0810E4CC
_0810E4C0:
movs r6, 0
b _0810E4CA
_0810E4C4:
movs r6, 0xFF
b _0810E4CA
_0810E4C8:
movs r6, 0x1
_0810E4CA:
movs r5, 0xFF
_0810E4CC:
movs r1, 0x10
ldrsh r0, [r4, r1]
lsls r1, r6, 24
asrs r1, 24
lsls r2, r5, 24
asrs r2, 24
bl PCTurnOffEffect_1
bl DrawWholeMapView
ldrh r0, [r4, 0x10]
movs r1, 0x1
eors r0, r1
strh r0, [r4, 0x10]
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
lsls r0, 16
asrs r0, 16
cmp r0, 0x5
bne _0810E4FC
ldrb r0, [r4, 0xA]
bl DestroyTask
_0810E4FC:
ldrh r0, [r4, 0xE]
adds r0, 0x1
strh r0, [r4, 0xE]
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end PCTurnOffEffect_0
thumb_func_start PCTurnOffEffect_1
PCTurnOffEffect_1: @ 810E508
push {r4,r5,lr}
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r4, r2, 24
movs r3, 0
lsls r0, 16
cmp r0, 0
beq _0810E544
ldr r0, _0810E528 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0
bne _0810E52C
movs r3, 0x4
b _0810E566
.align 2, 0
_0810E528: .4byte gSpecialVar_0x8004
_0810E52C:
cmp r0, 0x1
bne _0810E538
ldr r3, _0810E534 @ =0x0000025a
b _0810E566
.align 2, 0
_0810E534: .4byte 0x0000025a
_0810E538:
cmp r0, 0x2
bne _0810E566
ldr r3, _0810E540 @ =0x00000259
b _0810E566
.align 2, 0
_0810E540: .4byte 0x00000259
_0810E544:
ldr r0, _0810E550 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0
bne _0810E554
movs r3, 0x5
b _0810E566
.align 2, 0
_0810E550: .4byte gSpecialVar_0x8004
_0810E554:
cmp r0, 0x1
bne _0810E560
ldr r3, _0810E55C @ =0x0000027f
b _0810E566
.align 2, 0
_0810E55C: .4byte 0x0000027f
_0810E560:
cmp r0, 0x2
bne _0810E566
ldr r3, _0810E594 @ =0x0000027e
_0810E566:
ldr r2, _0810E598 @ =gSaveBlock1
movs r5, 0
ldrsh r0, [r2, r5]
lsls r1, 24
asrs r1, 24
adds r0, r1
adds r0, 0x7
movs r5, 0x2
ldrsh r1, [r2, r5]
lsls r2, r4, 24
asrs r2, 24
adds r1, r2
adds r1, 0x7
movs r4, 0xC0
lsls r4, 4
adds r2, r4, 0
orrs r3, r2
adds r2, r3, 0
bl MapGridSetMetatileIdAt
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810E594: .4byte 0x0000027e
_0810E598: .4byte gSaveBlock1
thumb_func_end PCTurnOffEffect_1
thumb_func_start DoPCTurnOffEffect
DoPCTurnOffEffect: @ 810E59C
push {lr}
bl PCTurnOffEffect
pop {r0}
bx r0
thumb_func_end DoPCTurnOffEffect
thumb_func_start PCTurnOffEffect
PCTurnOffEffect: @ 810E5A8
push {r4-r6,lr}
movs r6, 0
movs r5, 0
movs r4, 0
bl player_get_direction_lower_nybble
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
cmp r0, 0x3
beq _0810E5D2
cmp r0, 0x3
bgt _0810E5C8
cmp r0, 0x2
beq _0810E5CE
b _0810E5DA
_0810E5C8:
cmp r1, 0x4
beq _0810E5D6
b _0810E5DA
_0810E5CE:
movs r6, 0
b _0810E5D8
_0810E5D2:
movs r6, 0xFF
b _0810E5D8
_0810E5D6:
movs r6, 0x1
_0810E5D8:
movs r5, 0xFF
_0810E5DA:
ldr r0, _0810E5E8 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0
bne _0810E5EC
movs r4, 0x4
b _0810E5FE
.align 2, 0
_0810E5E8: .4byte gSpecialVar_0x8004
_0810E5EC:
cmp r0, 0x1
bne _0810E5F8
ldr r4, _0810E5F4 @ =0x0000025a
b _0810E5FE
.align 2, 0
_0810E5F4: .4byte 0x0000025a
_0810E5F8:
cmp r0, 0x2
bne _0810E5FE
ldr r4, _0810E630 @ =0x00000259
_0810E5FE:
ldr r2, _0810E634 @ =gSaveBlock1
movs r1, 0
ldrsh r0, [r2, r1]
lsls r1, r6, 24
asrs r1, 24
adds r0, r1
adds r0, 0x7
movs r3, 0x2
ldrsh r1, [r2, r3]
lsls r2, r5, 24
asrs r2, 24
adds r1, r2
adds r1, 0x7
movs r3, 0xC0
lsls r3, 4
adds r2, r3, 0
orrs r4, r2
adds r2, r4, 0
bl MapGridSetMetatileIdAt
bl DrawWholeMapView
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0810E630: .4byte 0x00000259
_0810E634: .4byte gSaveBlock1
thumb_func_end PCTurnOffEffect
thumb_func_start DoLotteryCornerComputerEffect
DoLotteryCornerComputerEffect: @ 810E638
push {r4,lr}
ldr r4, _0810E674 @ =Task_LotteryCornerComputerEffect
adds r0, r4, 0
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0810E66C
adds r0, r4, 0
movs r1, 0x8
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _0810E678 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
movs r2, 0
strh r2, [r1, 0x8]
strh r0, [r1, 0xA]
strh r2, [r1, 0xC]
strh r2, [r1, 0xE]
strh r2, [r1, 0x10]
_0810E66C:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810E674: .4byte Task_LotteryCornerComputerEffect
_0810E678: .4byte gTasks
thumb_func_end DoLotteryCornerComputerEffect
thumb_func_start Task_LotteryCornerComputerEffect
Task_LotteryCornerComputerEffect: @ 810E67C
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, _0810E6A0 @ =gTasks
adds r1, r0
movs r2, 0x8
ldrsh r0, [r1, r2]
cmp r0, 0
bne _0810E69A
adds r0, r1, 0
bl LotteryCornerComputerEffect
_0810E69A:
pop {r0}
bx r0
.align 2, 0
_0810E6A0: .4byte gTasks
thumb_func_end Task_LotteryCornerComputerEffect
thumb_func_start LotteryCornerComputerEffect
LotteryCornerComputerEffect: @ 810E6A4
push {r4,lr}
adds r4, r0, 0
movs r1, 0xE
ldrsh r0, [r4, r1]
cmp r0, 0x6
bne _0810E712
movs r0, 0
strh r0, [r4, 0xE]
movs r1, 0x10
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0810E6DC
ldr r2, _0810E6D4 @ =0x00000e9d
movs r0, 0x12
movs r1, 0x8
bl MapGridSetMetatileIdAt
ldr r2, _0810E6D8 @ =0x00000ea5
movs r0, 0x12
movs r1, 0x9
bl MapGridSetMetatileIdAt
b _0810E6F2
.align 2, 0
_0810E6D4: .4byte 0x00000e9d
_0810E6D8: .4byte 0x00000ea5
_0810E6DC:
ldr r2, _0810E720 @ =0x00000e58
movs r0, 0x12
movs r1, 0x8
bl MapGridSetMetatileIdAt
movs r2, 0xE6
lsls r2, 4
movs r0, 0x12
movs r1, 0x9
bl MapGridSetMetatileIdAt
_0810E6F2:
bl DrawWholeMapView
ldrh r0, [r4, 0x10]
movs r1, 0x1
eors r0, r1
strh r0, [r4, 0x10]
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
lsls r0, 16
asrs r0, 16
cmp r0, 0x5
bne _0810E712
ldrb r0, [r4, 0xA]
bl DestroyTask
_0810E712:
ldrh r0, [r4, 0xE]
adds r0, 0x1
strh r0, [r4, 0xE]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810E720: .4byte 0x00000e58
thumb_func_end LotteryCornerComputerEffect
thumb_func_start EndLotteryCornerComputerEffect
EndLotteryCornerComputerEffect: @ 810E724
push {lr}
ldr r2, _0810E744 @ =0x00000e9d
movs r0, 0x12
movs r1, 0x8
bl MapGridSetMetatileIdAt
ldr r2, _0810E748 @ =0x00000ea5
movs r0, 0x12
movs r1, 0x9
bl MapGridSetMetatileIdAt
bl DrawWholeMapView
pop {r0}
bx r0
.align 2, 0
_0810E744: .4byte 0x00000e9d
_0810E748: .4byte 0x00000ea5
thumb_func_end EndLotteryCornerComputerEffect
thumb_func_start SetDepartmentStoreFloorVar
SetDepartmentStoreFloorVar: @ 810E74C
push {lr}
ldr r0, _0810E768 @ =gSaveBlock1
ldrb r0, [r0, 0x15]
subs r0, 0x11
lsls r0, 24
asrs r0, 24
cmp r0, 0x5
bhi _0810E79C
lsls r0, 2
ldr r1, _0810E76C @ =_0810E770
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0810E768: .4byte gSaveBlock1
_0810E76C: .4byte _0810E770
.align 2, 0
_0810E770:
.4byte _0810E79C
.4byte _0810E788
.4byte _0810E78C
.4byte _0810E790
.4byte _0810E794
.4byte _0810E798
_0810E788:
movs r1, 0x1
b _0810E79E
_0810E78C:
movs r1, 0x2
b _0810E79E
_0810E790:
movs r1, 0x3
b _0810E79E
_0810E794:
movs r1, 0x4
b _0810E79E
_0810E798:
movs r1, 0xF
b _0810E79E
_0810E79C:
movs r1, 0
_0810E79E:
ldr r0, _0810E7A8 @ =0x00004043
bl VarSet
pop {r0}
bx r0
.align 2, 0
_0810E7A8: .4byte 0x00004043
thumb_func_end SetDepartmentStoreFloorVar
thumb_func_start ScriptAddElevatorMenuItem
ScriptAddElevatorMenuItem: @ 810E7AC
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r6, r0, 24
lsls r1, 24
lsrs r7, r1, 24
lsls r2, 24
lsrs r2, 24
mov r12, r2
lsls r3, 24
lsrs r3, 24
mov r8, r3
ldr r0, _0810E81C @ =gSpecialVar_0x8004
ldrh r1, [r0]
adds r2, r0, 0
ldr r3, _0810E820 @ =gUnknown_03000760
cmp r1, 0
bne _0810E7E8
movs r1, 0
adds r5, r3, 0
movs r4, 0x10
_0810E7D8:
lsls r0, r1, 2
adds r0, r5
strb r4, [r0]
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x13
bls _0810E7D8
_0810E7E8:
ldrh r0, [r2]
lsls r0, 2
adds r0, r3
strb r6, [r0]
ldrh r0, [r2]
lsls r0, 2
adds r0, r3
strb r7, [r0, 0x1]
ldrh r0, [r2]
lsls r0, 2
adds r0, r3
mov r1, r12
strb r1, [r0, 0x2]
ldrh r0, [r2]
lsls r0, 2
adds r0, r3
mov r1, r8
strb r1, [r0, 0x3]
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0810E81C: .4byte gSpecialVar_0x8004
_0810E820: .4byte gUnknown_03000760
thumb_func_end ScriptAddElevatorMenuItem
thumb_func_start ScriptShowElevatorMenu
ScriptShowElevatorMenu: @ 810E824
push {r4,r5,lr}
movs r4, 0
ldr r5, _0810E868 @ =gUnknown_0203925A
strb r4, [r5]
ldr r0, _0810E86C @ =gUnknown_0203925B
strb r4, [r0]
movs r0, 0x10
movs r1, 0
movs r2, 0
movs r3, 0
bl ScriptAddElevatorMenuItem
ldr r2, _0810E870 @ =gUnknown_03000760
ldrb r0, [r2]
cmp r0, 0x10
beq _0810E85C
adds r1, r5, 0
_0810E846:
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r2
ldrb r0, [r0]
cmp r0, 0x10
bne _0810E846
_0810E85C:
bl sub_810E874
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810E868: .4byte gUnknown_0203925A
_0810E86C: .4byte gUnknown_0203925B
_0810E870: .4byte gUnknown_03000760
thumb_func_end ScriptShowElevatorMenu
thumb_func_start sub_810E874
sub_810E874: @ 810E874
push {r4-r6,lr}
sub sp, 0x8
bl ScriptContext2_Enable
ldr r4, _0810E8B8 @ =gUnknown_0203925A
ldrb r0, [r4]
cmp r0, 0x5
bls _0810E8C0
movs r0, 0
movs r1, 0
movs r2, 0x8
movs r3, 0xB
bl MenuDrawTextWindow
movs r4, 0
str r4, [sp]
movs r0, 0x7
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0x1
movs r2, 0x1
movs r3, 0x5
bl InitMenu
ldr r0, _0810E8BC @ =gUnknown_0203925C
strb r4, [r0]
bl sub_80F944C
bl LoadScrollIndicatorPalette
bl sub_810ECD4
b _0810E8E8
.align 2, 0
_0810E8B8: .4byte gUnknown_0203925A
_0810E8BC: .4byte gUnknown_0203925C
_0810E8C0:
ldrb r3, [r4]
lsls r3, 1
adds r3, 0x1
lsls r3, 24
lsrs r3, 24
movs r0, 0
movs r1, 0
movs r2, 0x8
bl MenuDrawTextWindow
ldrb r3, [r4]
movs r0, 0
str r0, [sp]
movs r0, 0x7
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl InitMenu
_0810E8E8:
movs r4, 0
ldr r1, _0810E938 @ =gUnknown_03000760
ldrb r0, [r1]
cmp r0, 0x10
beq _0810E924
ldr r6, _0810E93C @ =gUnknown_083F8380
adds r5, r1, 0
_0810E8F6:
lsls r0, r4, 2
adds r0, r5
ldrb r0, [r0]
lsls r0, 2
adds r0, r6
ldr r0, [r0]
lsls r2, r4, 1
adds r2, 0x1
lsls r2, 24
lsrs r2, 24
movs r1, 0x1
bl MenuPrint
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x4
bhi _0810E924
lsls r0, r4, 2
adds r0, r5
ldrb r0, [r0]
cmp r0, 0x10
bne _0810E8F6
_0810E924:
bl sub_810E944
ldr r0, _0810E940 @ =sub_810E984
movs r1, 0x8
bl CreateTask
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0810E938: .4byte gUnknown_03000760
_0810E93C: .4byte gUnknown_083F8380
_0810E940: .4byte sub_810E984
thumb_func_end sub_810E874
thumb_func_start sub_810E944
sub_810E944: @ 810E944
push {lr}
movs r0, 0x14
movs r1, 0
movs r2, 0x1D
movs r3, 0x5
bl MenuDrawTextWindow
ldr r0, _0810E978 @ =gOtherText_NowOn
movs r1, 0x15
movs r2, 0x1
movs r3, 0x40
bl sub_8072BD8
ldr r1, _0810E97C @ =gUnknown_083F8380
ldr r0, _0810E980 @ =gSpecialVar_0x8005
ldrh r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0x15
movs r2, 0x3
movs r3, 0x40
bl sub_8072BD8
pop {r0}
bx r0
.align 2, 0
_0810E978: .4byte gOtherText_NowOn
_0810E97C: .4byte gUnknown_083F8380
_0810E980: .4byte gSpecialVar_0x8005
thumb_func_end sub_810E944
thumb_func_start sub_810E984
sub_810E984: @ 810E984
push {r4-r6,lr}
sub sp, 0x8
lsls r0, 24
lsrs r6, r0, 24
ldr r0, _0810EA44 @ =gMain
ldrh r0, [r0, 0x2E]
cmp r0, 0x40
bne _0810E9B8
ldr r1, _0810EA48 @ =gUnknown_0203925B
ldrb r0, [r1]
cmp r0, 0
beq _0810E9B8
subs r0, 0x1
strb r0, [r1]
bl GetMenuCursorPos
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x1
negs r0, r0
bl MoveMenuCursorNoWrap
adds r0, r4, 0
movs r1, 0x40
bl sub_810EAC8
_0810E9B8:
ldr r0, _0810EA44 @ =gMain
ldrh r0, [r0, 0x2E]
cmp r0, 0x80
bne _0810E9E8
ldr r2, _0810EA48 @ =gUnknown_0203925B
ldrb r1, [r2]
ldr r0, _0810EA4C @ =gUnknown_0203925A
ldrb r0, [r0]
subs r0, 0x1
cmp r1, r0
beq _0810E9E8
adds r0, r1, 0x1
strb r0, [r2]
bl GetMenuCursorPos
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x1
bl MoveMenuCursorNoWrap
adds r0, r4, 0
movs r1, 0x80
bl sub_810EAC8
_0810E9E8:
ldr r0, _0810EA44 @ =gMain
ldrh r2, [r0, 0x2E]
movs r5, 0x1
adds r1, r5, 0
ands r1, r2
cmp r1, 0
beq _0810EA94
ldr r1, _0810EA50 @ =gUnknown_03000760
ldr r4, _0810EA48 @ =gUnknown_0203925B
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
movs r1, 0x1
ldrsb r1, [r0, r1]
movs r2, 0x2
ldrsb r2, [r0, r2]
movs r3, 0x1
negs r3, r3
movs r0, 0x2
str r0, [sp]
str r5, [sp, 0x4]
movs r0, 0
bl saved_warp2_set_2
ldr r1, _0810EA54 @ =gSpecialVar_0x8005
ldrh r0, [r1]
ldrb r2, [r4]
cmp r0, r2
bne _0810EA5C
ldr r1, _0810EA58 @ =gScriptResult
movs r0, 0
strh r0, [r1]
movs r0, 0x5
bl PlaySE
movs r0, 0
movs r1, 0
movs r2, 0x1D
movs r3, 0xC
bl MenuZeroFillWindowRect
adds r0, r6, 0
bl sub_810EC9C
b _0810EABC
.align 2, 0
_0810EA44: .4byte gMain
_0810EA48: .4byte gUnknown_0203925B
_0810EA4C: .4byte gUnknown_0203925A
_0810EA50: .4byte gUnknown_03000760
_0810EA54: .4byte gSpecialVar_0x8005
_0810EA58: .4byte gScriptResult
_0810EA5C:
ldr r0, _0810EA88 @ =gScriptResult
strh r5, [r0]
ldrb r0, [r4]
strh r0, [r1]
bl sub_810EBEC
ldr r0, _0810EA8C @ =gScriptLastTalked
ldrb r0, [r0]
ldr r2, _0810EA90 @ =gSaveBlock1
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
movs r3, 0x1
bl FieldObjectTurnByLocalIdAndMap
bl sub_810EEDC
bl MenuZeroFillScreen
adds r0, r6, 0
bl DestroyTask
b _0810EABC
.align 2, 0
_0810EA88: .4byte gScriptResult
_0810EA8C: .4byte gScriptLastTalked
_0810EA90: .4byte gSaveBlock1
_0810EA94:
movs r0, 0x2
ands r0, r2
cmp r0, 0
beq _0810EABC
ldr r0, _0810EAC4 @ =gScriptResult
strh r1, [r0]
movs r0, 0x5
bl PlaySE
bl sub_810EEDC
movs r0, 0
movs r1, 0
movs r2, 0x1D
movs r3, 0xC
bl MenuZeroFillWindowRect
adds r0, r6, 0
bl sub_810EC9C
_0810EABC:
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0810EAC4: .4byte gScriptResult
thumb_func_end sub_810E984
thumb_func_start sub_810EAC8
sub_810EAC8: @ 810EAC8
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r2, r0, 24
adds r5, r2, 0
lsls r1, 24
lsrs r1, 24
adds r3, r1, 0
movs r7, 0
movs r4, 0
ldr r0, _0810EAEC @ =gUnknown_0203925A
ldrb r0, [r0]
cmp r0, 0x4
bhi _0810EAF0
movs r0, 0
b _0810EB78
.align 2, 0
_0810EAEC: .4byte gUnknown_0203925A
_0810EAF0:
cmp r1, 0x40
bne _0810EB04
cmp r2, 0
bne _0810EB18
ldr r0, _0810EB00 @ =gUnknown_0203925B
ldrb r4, [r0]
movs r7, 0x1
b _0810EB1C
.align 2, 0
_0810EB00: .4byte gUnknown_0203925B
_0810EB04:
cmp r3, 0x80
bne _0810EB18
cmp r5, 0x4
bne _0810EB18
ldr r0, _0810EB84 @ =gUnknown_0203925B
ldrb r0, [r0]
subs r0, 0x4
lsls r0, 24
lsrs r4, r0, 24
movs r7, 0x1
_0810EB18:
cmp r7, 0
beq _0810EB76
_0810EB1C:
adds r0, r4, 0
movs r1, 0x5
bl sub_810EB90
movs r0, 0x2
movs r1, 0x1
movs r2, 0x7
movs r3, 0xA
bl MenuFillWindowRectWithBlankTile
movs r5, 0
ldr r2, _0810EB88 @ =gUnknown_03000760
lsls r1, r4, 2
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0x10
beq _0810EB76
ldr r0, _0810EB8C @ =gUnknown_083F8380
mov r8, r0
adds r6, r2, 0
_0810EB44:
adds r0, r1, r6
ldrb r0, [r0]
lsls r0, 2
add r0, r8
ldr r0, [r0]
lsls r2, r5, 1
adds r2, 0x1
lsls r2, 24
lsrs r2, 24
movs r1, 0x1
bl MenuPrint
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x4
bhi _0810EB76
lsls r1, r4, 2
adds r0, r1, r6
ldrb r0, [r0]
cmp r0, 0x10
bne _0810EB44
_0810EB76:
adds r0, r7, 0
_0810EB78:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0810EB84: .4byte gUnknown_0203925B
_0810EB88: .4byte gUnknown_03000760
_0810EB8C: .4byte gUnknown_083F8380
thumb_func_end sub_810EAC8
thumb_func_start sub_810EB90
sub_810EB90: @ 810EB90
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 24
lsrs r5, r1, 24
cmp r4, 0
bne _0810EBB4
ldr r0, _0810EBB0 @ =gUnknown_0203925C
ldrb r1, [r0]
movs r2, 0x2
eors r1, r2
strb r1, [r0]
movs r0, 0
bl DestroyVerticalScrollIndicator
b _0810EBB8
.align 2, 0
_0810EBB0: .4byte gUnknown_0203925C
_0810EBB4:
bl sub_810ECB0
_0810EBB8:
adds r1, r4, r5
ldr r0, _0810EBC8 @ =gUnknown_0203925A
ldrb r0, [r0]
cmp r1, r0
bge _0810EBCC
bl sub_810ECD4
b _0810EBE0
.align 2, 0
_0810EBC8: .4byte gUnknown_0203925A
_0810EBCC:
cmp r1, r0
bne _0810EBE0
ldr r0, _0810EBE8 @ =gUnknown_0203925C
ldrb r1, [r0]
movs r2, 0x1
eors r1, r2
strb r1, [r0]
movs r0, 0x1
bl DestroyVerticalScrollIndicator
_0810EBE0:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810EBE8: .4byte gUnknown_0203925C
thumb_func_end sub_810EB90
thumb_func_start sub_810EBEC
sub_810EBEC: @ 810EBEC
push {lr}
ldr r0, _0810EC2C @ =sub_810EC34
movs r1, 0x9
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _0810EC30 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
movs r0, 0
movs r2, 0x1
strh r2, [r1, 0x8]
strh r0, [r1, 0xA]
strh r0, [r1, 0xC]
strh r0, [r1, 0xE]
strh r2, [r1, 0x10]
movs r0, 0x3
strh r0, [r1, 0x12]
movs r0, 0
bl SetCameraPanningCallback
bl sub_810ECFC
movs r0, 0x59
bl PlaySE
pop {r0}
bx r0
.align 2, 0
_0810EC2C: .4byte sub_810EC34
_0810EC30: .4byte gTasks
thumb_func_end sub_810EBEC
thumb_func_start sub_810EC34
sub_810EC34: @ 810EC34
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, _0810EC98 @ =gTasks
adds r4, r0, r1
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
movs r1, 0xA
ldrsh r0, [r4, r1]
movs r2, 0x12
ldrsh r1, [r4, r2]
bl __modsi3
cmp r0, 0
bne _0810EC92
strh r0, [r4, 0xA]
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
movs r1, 0xE
ldrsh r0, [r4, r1]
cmp r0, 0
bne _0810EC92
ldrh r0, [r4, 0x10]
negs r0, r0
strh r0, [r4, 0x10]
movs r2, 0x10
ldrsh r1, [r4, r2]
movs r0, 0
bl SetCameraPanning
movs r1, 0xC
ldrsh r0, [r4, r1]
cmp r0, 0x17
bne _0810EC92
movs r0, 0x49
bl PlaySE
adds r0, r5, 0
bl sub_810EC9C
bl InstallCameraPanAheadCallback
_0810EC92:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810EC98: .4byte gTasks
thumb_func_end sub_810EC34
thumb_func_start sub_810EC9C
sub_810EC9C: @ 810EC9C
push {lr}
lsls r0, 24
lsrs r0, 24
bl DestroyTask
bl EnableBothScriptContexts
pop {r0}
bx r0
thumb_func_end sub_810EC9C
thumb_func_start sub_810ECB0
sub_810ECB0: @ 810ECB0
push {lr}
ldr r2, _0810ECD0 @ =gUnknown_0203925C
ldrb r1, [r2]
lsrs r0, r1, 1
cmp r0, 0x1
beq _0810ECCC
movs r0, 0x2
orrs r0, r1
strb r0, [r2]
movs r0, 0
movs r1, 0x24
movs r2, 0x8
bl CreateVerticalScrollIndicators
_0810ECCC:
pop {r0}
bx r0
.align 2, 0
_0810ECD0: .4byte gUnknown_0203925C
thumb_func_end sub_810ECB0
thumb_func_start sub_810ECD4
sub_810ECD4: @ 810ECD4
push {lr}
ldr r2, _0810ECF8 @ =gUnknown_0203925C
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _0810ECF2
movs r0, 0x1
orrs r0, r1
strb r0, [r2]
movs r0, 0x1
movs r1, 0x24
movs r2, 0x48
bl CreateVerticalScrollIndicators
_0810ECF2:
pop {r0}
bx r0
.align 2, 0
_0810ECF8: .4byte gUnknown_0203925C
thumb_func_end sub_810ECD4
thumb_func_start sub_810ECFC
sub_810ECFC: @ 810ECFC
push {r4,lr}
ldr r4, _0810ED38 @ =sub_810ED40
adds r0, r4, 0
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0810ED30
adds r0, r4, 0
movs r1, 0x8
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _0810ED3C @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
movs r2, 0
strh r2, [r1, 0x8]
strh r0, [r1, 0xA]
strh r2, [r1, 0xC]
strh r2, [r1, 0xE]
strh r2, [r1, 0x10]
_0810ED30:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810ED38: .4byte sub_810ED40
_0810ED3C: .4byte gTasks
thumb_func_end sub_810ECFC
thumb_func_start sub_810ED40
sub_810ED40: @ 810ED40
push {lr}
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
ldr r1, _0810ED5C @ =gTasks
adds r0, r1
bl sub_810ED60
pop {r0}
bx r0
.align 2, 0
_0810ED5C: .4byte gTasks
thumb_func_end sub_810ED40
thumb_func_start sub_810ED60
sub_810ED60: @ 810ED60
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0xE
ldrsh r0, [r5, r1]
cmp r0, 0x8
beq _0810ED6E
b _0810EEB2
_0810ED6E:
movs r0, 0
strh r0, [r5, 0xE]
movs r1, 0x10
ldrsh r0, [r5, r1]
cmp r0, 0
beq _0810EE14
ldr r2, _0810EDFC @ =0x00000e68
movs r0, 0x7
movs r1, 0x7
bl MapGridSetMetatileIdAt
ldr r4, _0810EE00 @ =0x00000e69
movs r0, 0x8
movs r1, 0x7
adds r2, r4, 0
bl MapGridSetMetatileIdAt
movs r0, 0x9
movs r1, 0x7
adds r2, r4, 0
bl MapGridSetMetatileIdAt
ldr r2, _0810EE04 @ =0x00000e6a
movs r0, 0xA
movs r1, 0x7
bl MapGridSetMetatileIdAt
movs r2, 0xE7
lsls r2, 4
movs r0, 0x7
movs r1, 0x8
bl MapGridSetMetatileIdAt
adds r4, 0x8
movs r0, 0x8
movs r1, 0x8
adds r2, r4, 0
bl MapGridSetMetatileIdAt
movs r0, 0x9
movs r1, 0x8
adds r2, r4, 0
bl MapGridSetMetatileIdAt
ldr r2, _0810EE08 @ =0x00000e72
movs r0, 0xA
movs r1, 0x8
bl MapGridSetMetatileIdAt
ldr r2, _0810EE0C @ =0x00000e78
movs r0, 0x7
movs r1, 0x9
bl MapGridSetMetatileIdAt
adds r4, 0x8
movs r0, 0x8
movs r1, 0x9
adds r2, r4, 0
bl MapGridSetMetatileIdAt
movs r0, 0x9
movs r1, 0x9
adds r2, r4, 0
bl MapGridSetMetatileIdAt
ldr r2, _0810EE10 @ =0x00000e7a
movs r0, 0xA
movs r1, 0x9
bl MapGridSetMetatileIdAt
b _0810EE92
.align 2, 0
_0810EDFC: .4byte 0x00000e68
_0810EE00: .4byte 0x00000e69
_0810EE04: .4byte 0x00000e6a
_0810EE08: .4byte 0x00000e72
_0810EE0C: .4byte 0x00000e78
_0810EE10: .4byte 0x00000e7a
_0810EE14:
ldr r2, _0810EEC0 @ =0x00000e6b
movs r0, 0x7
movs r1, 0x7
bl MapGridSetMetatileIdAt
ldr r4, _0810EEC4 @ =0x00000e6c
movs r0, 0x8
movs r1, 0x7
adds r2, r4, 0
bl MapGridSetMetatileIdAt
movs r0, 0x9
movs r1, 0x7
adds r2, r4, 0
bl MapGridSetMetatileIdAt
ldr r2, _0810EEC8 @ =0x00000e6d
movs r0, 0xA
movs r1, 0x7
bl MapGridSetMetatileIdAt
ldr r2, _0810EECC @ =0x00000e73
movs r0, 0x7
movs r1, 0x8
bl MapGridSetMetatileIdAt
adds r4, 0x8
movs r0, 0x8
movs r1, 0x8
adds r2, r4, 0
bl MapGridSetMetatileIdAt
movs r0, 0x9
movs r1, 0x8
adds r2, r4, 0
bl MapGridSetMetatileIdAt
ldr r2, _0810EED0 @ =0x00000e75
movs r0, 0xA
movs r1, 0x8
bl MapGridSetMetatileIdAt
ldr r2, _0810EED4 @ =0x00000e7b
movs r0, 0x7
movs r1, 0x9
bl MapGridSetMetatileIdAt
adds r4, 0x8
movs r0, 0x8
movs r1, 0x9
adds r2, r4, 0
bl MapGridSetMetatileIdAt
movs r0, 0x9
movs r1, 0x9
adds r2, r4, 0
bl MapGridSetMetatileIdAt
ldr r2, _0810EED8 @ =0x00000e7d
movs r0, 0xA
movs r1, 0x9
bl MapGridSetMetatileIdAt
_0810EE92:
bl DrawWholeMapView
ldrh r0, [r5, 0x10]
movs r1, 0x1
eors r0, r1
strh r0, [r5, 0x10]
ldrh r0, [r5, 0xC]
adds r0, 0x1
strh r0, [r5, 0xC]
lsls r0, 16
asrs r0, 16
cmp r0, 0x8
bne _0810EEB2
ldrb r0, [r5, 0xA]
bl DestroyTask
_0810EEB2:
ldrh r0, [r5, 0xE]
adds r0, 0x1
strh r0, [r5, 0xE]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810EEC0: .4byte 0x00000e6b
_0810EEC4: .4byte 0x00000e6c
_0810EEC8: .4byte 0x00000e6d
_0810EECC: .4byte 0x00000e73
_0810EED0: .4byte 0x00000e75
_0810EED4: .4byte 0x00000e7b
_0810EED8: .4byte 0x00000e7d
thumb_func_end sub_810ED60
thumb_func_start sub_810EEDC
sub_810EEDC: @ 810EEDC
push {r4,lr}
ldr r4, _0810EF08 @ =gUnknown_0203925C
ldrb r1, [r4]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0810EEF0
movs r0, 0x1
bl DestroyVerticalScrollIndicator
_0810EEF0:
ldrb r0, [r4]
lsrs r0, 1
cmp r0, 0x1
bne _0810EEFE
movs r0, 0
bl DestroyVerticalScrollIndicator
_0810EEFE:
bl BuyMenuFreeMemory
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810EF08: .4byte gUnknown_0203925C
thumb_func_end sub_810EEDC
thumb_func_start SetTrickHouseEndRoomFlag
SetTrickHouseEndRoomFlag: @ 810EF0C
push {lr}
ldr r1, _0810EF1C @ =gSpecialVar_0x8004
ldr r0, _0810EF20 @ =0x00000259
strh r0, [r1]
bl FlagSet
pop {r0}
bx r0
.align 2, 0
_0810EF1C: .4byte gSpecialVar_0x8004
_0810EF20: .4byte 0x00000259
thumb_func_end SetTrickHouseEndRoomFlag
thumb_func_start ResetTrickHouseEndRoomFlag
ResetTrickHouseEndRoomFlag: @ 810EF24
push {lr}
ldr r1, _0810EF34 @ =gSpecialVar_0x8004
ldr r0, _0810EF38 @ =0x00000259
strh r0, [r1]
bl FlagReset
pop {r0}
bx r0
.align 2, 0
_0810EF34: .4byte gSpecialVar_0x8004
_0810EF38: .4byte 0x00000259
thumb_func_end ResetTrickHouseEndRoomFlag
thumb_func_start CheckLeadMonCool
CheckLeadMonCool: @ 810EF3C
push {lr}
bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
muls r0, r1
ldr r1, _0810EF5C @ =gPlayerParty
adds r0, r1
movs r1, 0x16
bl GetMonData
cmp r0, 0xC7
bls _0810EF60
movs r0, 0x1
b _0810EF62
.align 2, 0
_0810EF5C: .4byte gPlayerParty
_0810EF60:
movs r0, 0
_0810EF62:
pop {r1}
bx r1
thumb_func_end CheckLeadMonCool
thumb_func_start CheckLeadMonBeauty
CheckLeadMonBeauty: @ 810EF68
push {lr}
bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
muls r0, r1
ldr r1, _0810EF88 @ =gPlayerParty
adds r0, r1
movs r1, 0x17
bl GetMonData
cmp r0, 0xC7
bls _0810EF8C
movs r0, 0x1
b _0810EF8E
.align 2, 0
_0810EF88: .4byte gPlayerParty
_0810EF8C:
movs r0, 0
_0810EF8E:
pop {r1}
bx r1
thumb_func_end CheckLeadMonBeauty
thumb_func_start CheckLeadMonCute
CheckLeadMonCute: @ 810EF94
push {lr}
bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
muls r0, r1
ldr r1, _0810EFB4 @ =gPlayerParty
adds r0, r1
movs r1, 0x18
bl GetMonData
cmp r0, 0xC7
bls _0810EFB8
movs r0, 0x1
b _0810EFBA
.align 2, 0
_0810EFB4: .4byte gPlayerParty
_0810EFB8:
movs r0, 0
_0810EFBA:
pop {r1}
bx r1
thumb_func_end CheckLeadMonCute
thumb_func_start CheckLeadMonSmart
CheckLeadMonSmart: @ 810EFC0
push {lr}
bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
muls r0, r1
ldr r1, _0810EFE0 @ =gPlayerParty
adds r0, r1
movs r1, 0x21
bl GetMonData
cmp r0, 0xC7
bls _0810EFE4
movs r0, 0x1
b _0810EFE6
.align 2, 0
_0810EFE0: .4byte gPlayerParty
_0810EFE4:
movs r0, 0
_0810EFE6:
pop {r1}
bx r1
thumb_func_end CheckLeadMonSmart
thumb_func_start CheckLeadMonTough
CheckLeadMonTough: @ 810EFEC
push {lr}
bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
muls r0, r1
ldr r1, _0810F00C @ =gPlayerParty
adds r0, r1
movs r1, 0x2F
bl GetMonData
cmp r0, 0xC7
bls _0810F010
movs r0, 0x1
b _0810F012
.align 2, 0
_0810F00C: .4byte gPlayerParty
_0810F010:
movs r0, 0
_0810F012:
pop {r1}
bx r1
thumb_func_end CheckLeadMonTough
thumb_func_start IsGrassTypeInParty
IsGrassTypeInParty: @ 810F018
push {r4-r6,lr}
movs r5, 0
ldr r6, _0810F068 @ =gBaseStats
_0810F01E:
movs r0, 0x64
adds r1, r5, 0
muls r1, r0
ldr r0, _0810F06C @ =gPlayerParty
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x5
bl GetMonData
cmp r0, 0
beq _0810F074
adds r0, r4, 0
movs r1, 0x2D
bl GetMonData
cmp r0, 0
bne _0810F074
adds r0, r4, 0
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r0, 16
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r1, r6
ldrb r0, [r1, 0x6]
cmp r0, 0xC
beq _0810F060
ldrb r0, [r1, 0x7]
cmp r0, 0xC
bne _0810F074
_0810F060:
ldr r1, _0810F070 @ =gScriptResult
movs r0, 0x1
b _0810F082
.align 2, 0
_0810F068: .4byte gBaseStats
_0810F06C: .4byte gPlayerParty
_0810F070: .4byte gScriptResult
_0810F074:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x5
bls _0810F01E
ldr r1, _0810F08C @ =gScriptResult
movs r0, 0
_0810F082:
strh r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0810F08C: .4byte gScriptResult
thumb_func_end IsGrassTypeInParty
thumb_func_start ShowGlassWorkshopMenu
ShowGlassWorkshopMenu: @ 810F090
push {r4,r5,lr}
sub sp, 0x8
bl ScriptContext2_Enable
movs r0, 0
movs r1, 0
movs r2, 0xA
movs r3, 0xB
bl MenuDrawTextWindow
movs r4, 0
str r4, [sp]
movs r0, 0x9
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0x1
movs r2, 0x1
movs r3, 0x5
bl InitMenu
ldr r0, _0810F104 @ =gUnknown_0203925C
strb r4, [r0]
bl sub_80F944C
bl LoadScrollIndicatorPalette
bl sub_810F2B4
ldr r5, _0810F108 @ =gUnknown_083F83C0
_0810F0CA:
lsls r0, r4, 2
adds r0, r5
ldr r0, [r0]
lsls r2, r4, 1
adds r2, 0x1
lsls r2, 24
lsrs r2, 24
movs r1, 0x1
bl MenuPrint
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x4
bls _0810F0CA
ldr r1, _0810F10C @ =gUnknown_0203925B
movs r0, 0
strb r0, [r1]
ldr r1, _0810F110 @ =gUnknown_0203925A
movs r0, 0x8
strb r0, [r1]
ldr r0, _0810F114 @ =sub_810F118
movs r1, 0x8
bl CreateTask
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810F104: .4byte gUnknown_0203925C
_0810F108: .4byte gUnknown_083F83C0
_0810F10C: .4byte gUnknown_0203925B
_0810F110: .4byte gUnknown_0203925A
_0810F114: .4byte sub_810F118
thumb_func_end ShowGlassWorkshopMenu
thumb_func_start sub_810F118
sub_810F118: @ 810F118
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r0, _0810F1E4 @ =gMain
ldrh r0, [r0, 0x2E]
cmp r0, 0x40
bne _0810F14A
ldr r1, _0810F1E8 @ =gUnknown_0203925B
ldrb r0, [r1]
cmp r0, 0
beq _0810F14A
subs r0, 0x1
strb r0, [r1]
bl GetMenuCursorPos
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x1
negs r0, r0
bl MoveMenuCursorNoWrap
adds r0, r4, 0
movs r1, 0x40
bl sub_810F1F4
_0810F14A:
ldr r0, _0810F1E4 @ =gMain
ldrh r0, [r0, 0x2E]
cmp r0, 0x80
bne _0810F17A
ldr r2, _0810F1E8 @ =gUnknown_0203925B
ldrb r1, [r2]
ldr r0, _0810F1EC @ =gUnknown_0203925A
ldrb r0, [r0]
subs r0, 0x1
cmp r1, r0
beq _0810F17A
adds r0, r1, 0x1
strb r0, [r2]
bl GetMenuCursorPos
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x1
bl MoveMenuCursorNoWrap
adds r0, r4, 0
movs r1, 0x80
bl sub_810F1F4
_0810F17A:
ldr r4, _0810F1E4 @ =gMain
ldrh r1, [r4, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0810F1AE
bl HandleDestroyMenuCursors
ldr r0, _0810F1F0 @ =gScriptResult
ldr r1, _0810F1E8 @ =gUnknown_0203925B
ldrb r1, [r1]
strh r1, [r0]
movs r0, 0x5
bl PlaySE
bl sub_810EEDC
movs r0, 0
movs r1, 0
movs r2, 0x1D
movs r3, 0xC
bl MenuZeroFillWindowRect
adds r0, r5, 0
bl sub_810EC9C
_0810F1AE:
ldrh r1, [r4, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0810F1DE
bl HandleDestroyMenuCursors
ldr r1, _0810F1F0 @ =gScriptResult
movs r0, 0x7F
strh r0, [r1]
movs r0, 0x5
bl PlaySE
bl sub_810EEDC
movs r0, 0
movs r1, 0
movs r2, 0x1D
movs r3, 0xC
bl MenuZeroFillWindowRect
adds r0, r5, 0
bl sub_810EC9C
_0810F1DE:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810F1E4: .4byte gMain
_0810F1E8: .4byte gUnknown_0203925B
_0810F1EC: .4byte gUnknown_0203925A
_0810F1F0: .4byte gScriptResult
thumb_func_end sub_810F118
thumb_func_start sub_810F1F4
sub_810F1F4: @ 810F1F4
push {r4-r7,lr}
lsls r0, 24
lsrs r2, r0, 24
adds r5, r2, 0
lsls r1, 24
lsrs r1, 24
adds r3, r1, 0
movs r6, 0
movs r4, 0
ldr r0, _0810F214 @ =gUnknown_0203925A
ldrb r0, [r0]
cmp r0, 0x4
bhi _0810F218
movs r0, 0
b _0810F282
.align 2, 0
_0810F214: .4byte gUnknown_0203925A
_0810F218:
cmp r1, 0x40
bne _0810F22C
cmp r2, 0
bne _0810F240
ldr r0, _0810F228 @ =gUnknown_0203925B
ldrb r4, [r0]
movs r6, 0x1
b _0810F244
.align 2, 0
_0810F228: .4byte gUnknown_0203925B
_0810F22C:
cmp r3, 0x80
bne _0810F240
cmp r5, 0x4
bne _0810F240
ldr r0, _0810F288 @ =gUnknown_0203925B
ldrb r0, [r0]
subs r0, 0x4
lsls r0, 24
lsrs r4, r0, 24
movs r6, 0x1
_0810F240:
cmp r6, 0
beq _0810F280
_0810F244:
adds r0, r4, 0
movs r1, 0x5
bl GlassWorkshopUpdateScrollIndicators
movs r0, 0x2
movs r1, 0x1
movs r2, 0x9
movs r3, 0xA
bl MenuFillWindowRectWithBlankTile
movs r5, 0
ldr r7, _0810F28C @ =gUnknown_083F83C0
_0810F25C:
lsls r0, r4, 2
adds r0, r7
ldr r0, [r0]
lsls r2, r5, 1
adds r2, 0x1
lsls r2, 24
lsrs r2, 24
movs r1, 0x1
bl MenuPrint
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x4
bls _0810F25C
_0810F280:
adds r0, r6, 0
_0810F282:
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0810F288: .4byte gUnknown_0203925B
_0810F28C: .4byte gUnknown_083F83C0
thumb_func_end sub_810F1F4
thumb_func_start sub_810F290
sub_810F290: @ 810F290
push {lr}
ldr r2, _0810F2B0 @ =gUnknown_0203925C
ldrb r1, [r2]
lsrs r0, r1, 1
cmp r0, 0x1
beq _0810F2AC
movs r0, 0x2
orrs r0, r1
strb r0, [r2]
movs r0, 0
movs r1, 0x2C
movs r2, 0x8
bl CreateVerticalScrollIndicators
_0810F2AC:
pop {r0}
bx r0
.align 2, 0
_0810F2B0: .4byte gUnknown_0203925C
thumb_func_end sub_810F290
thumb_func_start sub_810F2B4
sub_810F2B4: @ 810F2B4
push {lr}
ldr r2, _0810F2D8 @ =gUnknown_0203925C
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _0810F2D2
movs r0, 0x1
orrs r0, r1
strb r0, [r2]
movs r0, 0x1
movs r1, 0x2C
movs r2, 0x58
bl CreateVerticalScrollIndicators
_0810F2D2:
pop {r0}
bx r0
.align 2, 0
_0810F2D8: .4byte gUnknown_0203925C
thumb_func_end sub_810F2B4
thumb_func_start GlassWorkshopUpdateScrollIndicators
GlassWorkshopUpdateScrollIndicators: @ 810F2DC
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 24
lsrs r5, r1, 24
cmp r4, 0
bne _0810F300
ldr r0, _0810F2FC @ =gUnknown_0203925C
ldrb r1, [r0]
movs r2, 0x2
eors r1, r2
strb r1, [r0]
movs r0, 0
bl DestroyVerticalScrollIndicator
b _0810F304
.align 2, 0
_0810F2FC: .4byte gUnknown_0203925C
_0810F300:
bl sub_810F290
_0810F304:
adds r1, r4, r5
ldr r0, _0810F314 @ =gUnknown_0203925A
ldrb r0, [r0]
cmp r1, r0
bge _0810F318
bl sub_810F2B4
b _0810F32C
.align 2, 0
_0810F314: .4byte gUnknown_0203925A
_0810F318:
cmp r1, r0
bne _0810F32C
ldr r0, _0810F334 @ =gUnknown_0203925C
ldrb r1, [r0]
movs r2, 0x1
eors r1, r2
strb r1, [r0]
movs r0, 0x1
bl DestroyVerticalScrollIndicator
_0810F32C:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810F334: .4byte gUnknown_0203925C
thumb_func_end GlassWorkshopUpdateScrollIndicators
thumb_func_start SpawnCameraDummy
SpawnCameraDummy: @ 810F338
push {lr}
sub sp, 0x8
ldr r0, _0810F380 @ =gSaveBlock1
ldrh r3, [r0]
adds r3, 0x7
lsls r3, 16
asrs r3, 16
ldrh r0, [r0, 0x2]
adds r0, 0x7
lsls r0, 16
asrs r0, 16
str r0, [sp]
movs r0, 0x3
str r0, [sp, 0x4]
movs r0, 0x7
movs r1, 0x8
movs r2, 0x7F
bl SpawnSpecialFieldObjectParametrized
lsls r0, 24
lsrs r0, 24
ldr r2, _0810F384 @ =gMapObjects
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
adds r1, r2
ldrb r0, [r1, 0x1]
movs r2, 0x20
orrs r0, r2
strb r0, [r1, 0x1]
ldrb r0, [r1, 0x4]
bl CameraObjectSetFollowedObjectId
add sp, 0x8
pop {r0}
bx r0
.align 2, 0
_0810F380: .4byte gSaveBlock1
_0810F384: .4byte gMapObjects
thumb_func_end SpawnCameraDummy
thumb_func_start RemoveCameraDummy
RemoveCameraDummy: @ 810F388
push {lr}
bl GetPlayerAvatarObjectId
lsls r0, 24
lsrs r0, 24
bl CameraObjectSetFollowedObjectId
ldr r0, _0810F3A8 @ =gSaveBlock1
ldrb r1, [r0, 0x5]
ldrb r2, [r0, 0x4]
movs r0, 0x7F
bl RemoveFieldObjectByLocalIdAndMap
pop {r0}
bx r0
.align 2, 0
_0810F3A8: .4byte gSaveBlock1
thumb_func_end RemoveCameraDummy
thumb_func_start GetPokeblockNameByMonNature
GetPokeblockNameByMonNature: @ 810F3AC
push {lr}
bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
muls r0, r1
ldr r1, _0810F3D4 @ =gPlayerParty
adds r0, r1
bl GetNature
lsls r0, 24
lsrs r0, 24
ldr r1, _0810F3D8 @ =gStringVar1
bl sub_810CB68
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_0810F3D4: .4byte gPlayerParty
_0810F3D8: .4byte gStringVar1
thumb_func_end GetPokeblockNameByMonNature
thumb_func_start GetSecretBaseNearbyMapName
GetSecretBaseNearbyMapName: @ 810F3DC
push {r4,lr}
ldr r4, _0810F3FC @ =gStringVar1
ldr r0, _0810F400 @ =0x00004026
bl VarGet
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
movs r2, 0
bl sub_80FBFB4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810F3FC: .4byte gStringVar1
_0810F400: .4byte 0x00004026
thumb_func_end GetSecretBaseNearbyMapName
thumb_func_start sub_810F404
sub_810F404: @ 810F404
push {lr}
movs r0, 0x20
bl GetGameStat
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
thumb_func_end sub_810F404
thumb_func_start sub_810F414
sub_810F414: @ 810F414
push {lr}
ldr r0, _0810F420 @ =gStringVar1
bl sub_8135FF4
pop {r0}
bx r0
.align 2, 0
_0810F420: .4byte gStringVar1
thumb_func_end sub_810F414
thumb_func_start sub_810F424
sub_810F424: @ 810F424
push {r4,r5,lr}
ldr r2, _0810F458 @ =gSaveBlock1
ldr r1, _0810F45C @ =0x00002dd4
adds r0, r2, r1
ldrb r1, [r0]
lsls r1, 25
ldr r0, _0810F460 @ =0x00002dd6
adds r2, r0
lsrs r1, 25
ldrh r2, [r2]
adds r1, r2
ldr r2, _0810F464 @ =gUnknown_083F83E0
ldr r0, _0810F468 @ =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 _0810F470
ldr r4, _0810F46C @ =gUnknown_083F83EC
b _0810F472
.align 2, 0
_0810F458: .4byte gSaveBlock1
_0810F45C: .4byte 0x00002dd4
_0810F460: .4byte 0x00002dd6
_0810F464: .4byte gUnknown_083F83E0
_0810F468: .4byte gSpecialVar_0x8004
_0810F46C: .4byte gUnknown_083F83EC
_0810F470:
ldr r4, _0810F484 @ =gUnknown_083F83F8
_0810F472:
adds r0, r5, 0
movs r1, 0xC
bl __umodsi3
adds r0, r4
ldrb r0, [r0]
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0810F484: .4byte gUnknown_083F83F8
thumb_func_end sub_810F424
thumb_func_start sub_810F488
sub_810F488: @ 810F488
push {lr}
ldr r1, _0810F4A0 @ =gSpecialVar_0x8004
ldr r0, _0810F4A4 @ =0x00000277
strh r0, [r1]
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _0810F4A8
movs r0, 0x1
b _0810F4AA
.align 2, 0
_0810F4A0: .4byte gSpecialVar_0x8004
_0810F4A4: .4byte 0x00000277
_0810F4A8:
movs r0, 0
_0810F4AA:
pop {r1}
bx r1
thumb_func_end sub_810F488
thumb_func_start sub_810F4B0
sub_810F4B0: @ 810F4B0
push {lr}
ldr r1, _0810F4C8 @ =gSpecialVar_0x8004
movs r0, 0x9E
lsls r0, 2
strh r0, [r1]
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _0810F4CC
movs r0, 0x1
b _0810F4CE
.align 2, 0
_0810F4C8: .4byte gSpecialVar_0x8004
_0810F4CC:
movs r0, 0
_0810F4CE:
pop {r1}
bx r1
thumb_func_end sub_810F4B0
thumb_func_start sub_810F4D4
sub_810F4D4: @ 810F4D4
push {lr}
ldr r1, _0810F4EC @ =gSpecialVar_0x8004
ldr r0, _0810F4F0 @ =0x00000279
strh r0, [r1]
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _0810F4F4
movs r0, 0x1
b _0810F4F6
.align 2, 0
_0810F4EC: .4byte gSpecialVar_0x8004
_0810F4F0: .4byte 0x00000279
_0810F4F4:
movs r0, 0
_0810F4F6:
pop {r1}
bx r1
thumb_func_end sub_810F4D4
thumb_func_start sub_810F4FC
sub_810F4FC: @ 810F4FC
push {lr}
ldr r1, _0810F514 @ =gSpecialVar_0x8004
ldr r0, _0810F518 @ =0x0000027a
strh r0, [r1]
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _0810F51C
movs r0, 0x1
b _0810F51E
.align 2, 0
_0810F514: .4byte gSpecialVar_0x8004
_0810F518: .4byte 0x0000027a
_0810F51C:
movs r0, 0
_0810F51E:
pop {r1}
bx r1
thumb_func_end sub_810F4FC
thumb_func_start LeadMonHasEffortRibbon
LeadMonHasEffortRibbon: @ 810F524
push {lr}
bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
muls r0, r1
ldr r1, _0810F548 @ =gPlayerParty
adds r0, r1
movs r1, 0x47
movs r2, 0
bl GetMonData
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_0810F548: .4byte gPlayerParty
thumb_func_end LeadMonHasEffortRibbon
thumb_func_start GivLeadMonEffortRibbon
GivLeadMonEffortRibbon: @ 810F54C
push {lr}
sub sp, 0x4
movs r0, 0x2A
bl IncrementGameStat
ldr r0, _0810F580 @ =0x0000083b
bl FlagSet
movs r1, 0x1
mov r0, sp
strb r1, [r0]
bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
muls r0, r1
ldr r1, _0810F584 @ =gPlayerParty
adds r0, r1
movs r1, 0x47
mov r2, sp
bl SetMonData
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0810F580: .4byte 0x0000083b
_0810F584: .4byte gPlayerParty
thumb_func_end GivLeadMonEffortRibbon
thumb_func_start GetLeadMonEVCount
GetLeadMonEVCount: @ 810F588
push {lr}
bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
muls r0, r1
ldr r1, _0810F5AC @ =gPlayerParty
adds r0, r1
bl GetMonEVCount
lsls r0, 16
ldr r1, _0810F5B0 @ =0x01fd0000
cmp r0, r1
bhi _0810F5B4
movs r0, 0
b _0810F5B6
.align 2, 0
_0810F5AC: .4byte gPlayerParty
_0810F5B0: .4byte 0x01fd0000
_0810F5B4:
movs r0, 0x1
_0810F5B6:
pop {r1}
bx r1
thumb_func_end GetLeadMonEVCount
thumb_func_start sub_810F5BC
sub_810F5BC: @ 810F5BC
push {lr}
movs r0, 0xC7
bl FlagGet
lsls r0, 24
cmp r0, 0
bne _0810F610
ldr r0, _0810F5E8 @ =gSaveBlock1
ldrh r1, [r0, 0x4]
movs r0, 0x83
lsls r0, 3
cmp r1, r0
bne _0810F610
subs r0, 0x75
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _0810F5F0
ldr r0, _0810F5EC @ =0x0000409a
movs r1, 0x4
b _0810F602
.align 2, 0
_0810F5E8: .4byte gSaveBlock1
_0810F5EC: .4byte 0x0000409a
_0810F5F0:
movs r0, 0xE9
lsls r0, 2
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _0810F610
ldr r0, _0810F60C @ =0x0000409a
movs r1, 0x5
_0810F602:
bl VarSet
movs r0, 0x1
b _0810F612
.align 2, 0
_0810F60C: .4byte 0x0000409a
_0810F610:
movs r0, 0
_0810F612:
pop {r1}
bx r1
thumb_func_end sub_810F5BC
thumb_func_start SetShoalItemFlag
SetShoalItemFlag: @ 810F618
push {lr}
ldr r0, _0810F624 @ =0x0000085f
bl FlagSet
pop {r0}
bx r0
.align 2, 0
_0810F624: .4byte 0x0000085f
thumb_func_end SetShoalItemFlag
thumb_func_start PutZigzagoonInPlayerParty
PutZigzagoonInPlayerParty: @ 810F628
push {r4,r5,lr}
sub sp, 0x14
ldr r5, _0810F690 @ =gPlayerParty
movs r1, 0x90
lsls r1, 1
movs r4, 0
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
str r4, [sp, 0xC]
adds r0, r5, 0
movs r2, 0x7
movs r3, 0x20
bl CreateMon
movs r1, 0x1
add r0, sp, 0x10
strh r1, [r0]
adds r0, r5, 0
movs r1, 0x2E
add r2, sp, 0x10
bl SetMonData
add r1, sp, 0x10
movs r0, 0x21
strh r0, [r1]
adds r0, r5, 0
movs r1, 0xD
add r2, sp, 0x10
bl SetMonData
add r0, sp, 0x10
strh r4, [r0]
adds r0, r5, 0
movs r1, 0xE
add r2, sp, 0x10
bl SetMonData
adds r0, r5, 0
movs r1, 0xF
add r2, sp, 0x10
bl SetMonData
adds r0, r5, 0
movs r1, 0x10
add r2, sp, 0x10
bl SetMonData
add sp, 0x14
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810F690: .4byte gPlayerParty
thumb_func_end PutZigzagoonInPlayerParty
thumb_func_start IsStarterInParty
IsStarterInParty: @ 810F694
push {r4-r6,lr}
ldr r0, _0810F6D0 @ =0x00004023
bl VarGet
lsls r0, 16
lsrs r0, 16
bl GetStarterPokemon
lsls r0, 16
lsrs r6, r0, 16
bl CalculatePlayerPartyCount
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
cmp r4, r5
bcs _0810F6E2
_0810F6B6:
movs r0, 0x64
muls r0, r4
ldr r1, _0810F6D4 @ =gPlayerParty
adds r0, r1
movs r1, 0x41
movs r2, 0
bl GetMonData
cmp r0, r6
bne _0810F6D8
movs r0, 0x1
b _0810F6E4
.align 2, 0
_0810F6D0: .4byte 0x00004023
_0810F6D4: .4byte gPlayerParty
_0810F6D8:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r5
bcc _0810F6B6
_0810F6E2:
movs r0, 0
_0810F6E4:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end IsStarterInParty
thumb_func_start CheckFreePokemonStorageSpace
CheckFreePokemonStorageSpace: @ 810F6EC
push {r4-r6,lr}
movs r5, 0
_0810F6F0:
movs r4, 0
lsls r1, r5, 2
adds r1, r5
lsls r0, r1, 4
subs r0, r1
lsls r6, r0, 5
_0810F6FC:
lsls r0, r4, 2
adds r0, r4
lsls r0, 4
ldr r1, _0810F718 @ =gPokemonStorage + 0x4
adds r0, r1
adds r0, r6, r0
movs r1, 0xB
movs r2, 0
bl GetBoxMonData
cmp r0, 0
bne _0810F71C
movs r0, 0x1
b _0810F732
.align 2, 0
_0810F718: .4byte gPokemonStorage + 0x4
_0810F71C:
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0x1D
bls _0810F6FC
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0xD
bls _0810F6F0
movs r0, 0
_0810F732:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end CheckFreePokemonStorageSpace
thumb_func_start IsPokerusInParty
IsPokerusInParty: @ 810F738
push {lr}
ldr r0, _0810F74C @ =gPlayerParty
movs r1, 0x3F
bl CheckPartyPokerus
lsls r0, 24
cmp r0, 0
beq _0810F750
movs r0, 0x1
b _0810F752
.align 2, 0
_0810F74C: .4byte gPlayerParty
_0810F750:
movs r0, 0
_0810F752:
pop {r1}
bx r1
thumb_func_end IsPokerusInParty
thumb_func_start sub_810F758
sub_810F758: @ 810F758
push {lr}
ldr r0, _0810F798 @ =sub_810F7A8
movs r1, 0x9
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _0810F79C @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
ldr r0, _0810F7A0 @ =gSpecialVar_0x8005
ldrh r2, [r0]
movs r0, 0
strh r2, [r1, 0x8]
strh r0, [r1, 0xA]
strh r0, [r1, 0xC]
strh r0, [r1, 0xE]
ldr r0, _0810F7A4 @ =gSpecialVar_0x8004
ldrh r0, [r0]
strh r0, [r1, 0x10]
movs r0, 0x5
strh r0, [r1, 0x12]
movs r0, 0
bl SetCameraPanningCallback
movs r0, 0xD6
bl PlaySE
pop {r0}
bx r0
.align 2, 0
_0810F798: .4byte sub_810F7A8
_0810F79C: .4byte gTasks
_0810F7A0: .4byte gSpecialVar_0x8005
_0810F7A4: .4byte gSpecialVar_0x8004
thumb_func_end sub_810F758
thumb_func_start sub_810F7A8
sub_810F7A8: @ 810F7A8
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, _0810F810 @ =gTasks
adds r4, r0, r1
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
movs r1, 0xA
ldrsh r0, [r4, r1]
movs r2, 0x12
ldrsh r1, [r4, r2]
bl __modsi3
cmp r0, 0
bne _0810F808
strh r0, [r4, 0xA]
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
movs r1, 0xE
ldrsh r0, [r4, r1]
cmp r0, 0
bne _0810F808
ldrh r0, [r4, 0x8]
negs r0, r0
strh r0, [r4, 0x8]
ldrh r0, [r4, 0x10]
negs r0, r0
strh r0, [r4, 0x10]
movs r2, 0x8
ldrsh r0, [r4, r2]
movs r2, 0x10
ldrsh r1, [r4, r2]
bl SetCameraPanning
movs r1, 0xC
ldrsh r0, [r4, r1]
cmp r0, 0x8
bne _0810F808
adds r0, r5, 0
bl sub_810F814
bl InstallCameraPanAheadCallback
_0810F808:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810F810: .4byte gTasks
thumb_func_end sub_810F7A8
thumb_func_start sub_810F814
sub_810F814: @ 810F814
push {lr}
lsls r0, 24
lsrs r0, 24
bl DestroyTask
bl EnableBothScriptContexts
pop {r0}
bx r0
thumb_func_end sub_810F814
thumb_func_start sub_810F828
sub_810F828: @ 810F828
push {lr}
movs r0, 0xAE
lsls r0, 2
bl FlagGet
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_810F828
thumb_func_start SetRoute119Weather
SetRoute119Weather: @ 810F83C
push {lr}
bl get_map_light_from_warp0
lsls r0, 24
lsrs r0, 24
bl is_light_level_1_2_3_5_or_6
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0810F858
movs r0, 0x14
bl SetSav1Weather
_0810F858:
pop {r0}
bx r0
thumb_func_end SetRoute119Weather
thumb_func_start SetRoute123Weather
SetRoute123Weather: @ 810F85C
push {lr}
bl get_map_light_from_warp0
lsls r0, 24
lsrs r0, 24
bl is_light_level_1_2_3_5_or_6
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0810F878
movs r0, 0x15
bl SetSav1Weather
_0810F878:
pop {r0}
bx r0
thumb_func_end SetRoute123Weather
thumb_func_start GetLeadMonIndex
GetLeadMonIndex: @ 810F87C
push {r4-r6,lr}
bl CalculatePlayerPartyCount
lsls r0, 24
lsrs r6, r0, 24
movs r5, 0
cmp r5, r6
bcs _0810F8CA
_0810F88C:
movs r0, 0x64
adds r1, r5, 0
muls r1, r0
ldr r0, _0810F8BC @ =gPlayerParty
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x41
movs r2, 0
bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
beq _0810F8C0
adds r0, r4, 0
movs r1, 0x41
movs r2, 0
bl GetMonData
cmp r0, 0
beq _0810F8C0
adds r0, r5, 0
b _0810F8CC
.align 2, 0
_0810F8BC: .4byte gPlayerParty
_0810F8C0:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, r6
bcc _0810F88C
_0810F8CA:
movs r0, 0
_0810F8CC:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end GetLeadMonIndex
thumb_func_start ScriptGetPartyMonSpecies
ScriptGetPartyMonSpecies: @ 810F8D4
push {lr}
ldr r0, _0810F8F4 @ =gSpecialVar_0x8004
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _0810F8F8 @ =gPlayerParty
adds r0, r1
movs r1, 0x41
movs r2, 0
bl GetMonData
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
.align 2, 0
_0810F8F4: .4byte gSpecialVar_0x8004
_0810F8F8: .4byte gPlayerParty
thumb_func_end ScriptGetPartyMonSpecies
thumb_func_start sub_810F8FC
sub_810F8FC: @ 810F8FC
push {lr}
movs r0, 0x6
bl sub_805ADDC
pop {r0}
bx r0
thumb_func_end sub_810F8FC
thumb_func_start sub_810F908
sub_810F908: @ 810F908
push {r4,lr}
ldr r0, _0810F928 @ =0x000040c2
bl VarGet
lsls r0, 16
lsrs r0, 16
adds r3, r0, 0
ldr r2, _0810F92C @ =gLocalTime
movs r1, 0
ldrsh r0, [r2, r1]
subs r0, r3
cmp r0, 0x6
ble _0810F930
movs r0, 0
b _0810F948
.align 2, 0
_0810F928: .4byte 0x000040c2
_0810F92C: .4byte gLocalTime
_0810F930:
ldrh r1, [r2]
movs r4, 0
ldrsh r0, [r2, r4]
cmp r0, 0
blt _0810F946
subs r1, r3
movs r0, 0x7
subs r0, r1
lsls r0, 16
lsrs r0, 16
b _0810F948
_0810F946:
movs r0, 0x8
_0810F948:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_810F908
thumb_func_start sub_810F950
sub_810F950: @ 810F950
push {r4,lr}
ldr r0, _0810F964 @ =0x000040c2
ldr r4, _0810F968 @ =gLocalTime
ldrh r1, [r4]
bl VarSet
ldrh r0, [r4]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0810F964: .4byte 0x000040c2
_0810F968: .4byte gLocalTime
thumb_func_end sub_810F950
thumb_func_start sub_810F96C
sub_810F96C: @ 810F96C
push {r4,lr}
ldr r0, _0810F994 @ =gSpecialVar_0x8004
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _0810F998 @ =gPlayerParty
adds r0, r1
ldr r4, _0810F99C @ =gStringVar1
movs r1, 0x7
adds r2, r4, 0
bl GetMonData
ldr r0, _0810F9A0 @ =gSaveBlock2
adds r1, r4, 0
bl StringCompareWithoutExtCtrlCodes
cmp r0, 0
beq _0810F9A4
movs r0, 0x1
b _0810F9A6
.align 2, 0
_0810F994: .4byte gSpecialVar_0x8004
_0810F998: .4byte gPlayerParty
_0810F99C: .4byte gStringVar1
_0810F9A0: .4byte gSaveBlock2
_0810F9A4:
movs r0, 0
_0810F9A6:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_810F96C
thumb_func_start sub_810F9AC
sub_810F9AC: @ 810F9AC
push {r4,r5,lr}
ldr r2, _0810F9C0 @ =gScriptResult
ldrh r1, [r2]
ldr r0, _0810F9C4 @ =0x0000270f
cmp r1, r0
bls _0810F9C8
movs r0, 0
bl sub_80BF088
b _0810FA4A
.align 2, 0
_0810F9C0: .4byte gScriptResult
_0810F9C4: .4byte 0x0000270f
_0810F9C8:
ldr r0, _0810F9D8 @ =0x000003e7
cmp r1, r0
bls _0810F9E0
ldr r4, _0810F9DC @ =gStringVar1
movs r0, 0xA1
strb r0, [r4]
adds r4, 0x1
b _0810FA04
.align 2, 0
_0810F9D8: .4byte 0x000003e7
_0810F9DC: .4byte gStringVar1
_0810F9E0:
cmp r1, 0x63
bls _0810F9F4
ldr r4, _0810F9F0 @ =gStringVar1
movs r0, 0xA1
strb r0, [r4]
strb r0, [r4, 0x1]
adds r4, 0x2
b _0810FA04
.align 2, 0
_0810F9F0: .4byte gStringVar1
_0810F9F4:
cmp r1, 0x9
bls _0810FA24
ldr r4, _0810FA20 @ =gStringVar1
movs r0, 0xA1
strb r0, [r4]
strb r0, [r4, 0x1]
strb r0, [r4, 0x2]
adds r4, 0x3
_0810FA04:
ldrh r5, [r2]
adds r0, r5, 0
bl sub_80BF0B8
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0
bl ConvertIntToDecimalStringN
b _0810FA4A
.align 2, 0
_0810FA20: .4byte gStringVar1
_0810FA24:
ldr r4, _0810FA50 @ =gStringVar1
movs r0, 0xA1
strb r0, [r4]
strb r0, [r4, 0x1]
strb r0, [r4, 0x2]
strb r0, [r4, 0x3]
adds r4, 0x4
ldrh r5, [r2]
adds r0, r5, 0
bl sub_80BF0B8
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0
bl ConvertIntToDecimalStringN
_0810FA4A:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810FA50: .4byte gStringVar1
thumb_func_end sub_810F9AC
thumb_func_start ResetFanClub
ResetFanClub: @ 810FA54
ldr r0, _0810FA68 @ =gSaveBlock1
ldr r2, _0810FA6C @ =0x000013c2
adds r1, r0, r2
movs r2, 0
strh r2, [r1]
ldr r1, _0810FA70 @ =0x000013c4
adds r0, r1
strh r2, [r0]
bx lr
.align 2, 0
_0810FA68: .4byte gSaveBlock1
_0810FA6C: .4byte 0x000013c2
_0810FA70: .4byte 0x000013c4
thumb_func_end ResetFanClub
thumb_func_start sub_810FA74
sub_810FA74: @ 810FA74
push {lr}
bl sub_810FF30
lsls r0, 24
cmp r0, 0
beq _0810FA90
bl sub_810FCE8
ldr r0, _0810FA94 @ =gSaveBlock1
ldr r1, _0810FA98 @ =gSaveBlock2
ldrh r1, [r1, 0xE]
ldr r2, _0810FA9C @ =0x000013c4
adds r0, r2
strh r1, [r0]
_0810FA90:
pop {r0}
bx r0
.align 2, 0
_0810FA94: .4byte gSaveBlock1
_0810FA98: .4byte gSaveBlock2
_0810FA9C: .4byte 0x000013c4
thumb_func_end sub_810FA74
thumb_func_start sub_810FAA0
sub_810FAA0: @ 810FAA0
push {r4,lr}
ldr r4, _0810FAF0 @ =gSaveBlock1
ldr r1, _0810FAF4 @ =0x000013c2
adds r0, r4, r1
ldrh r0, [r0]
lsrs r0, 7
movs r1, 0x1
ands r0, r1
cmp r0, 0
bne _0810FAE8
bl sub_810FF48
bl sub_810FD80
ldr r0, _0810FAF8 @ =gSaveBlock2
ldrh r1, [r0, 0xE]
ldr r2, _0810FAFC @ =0x000013c4
adds r0, r4, r2
strh r1, [r0]
ldr r0, _0810FB00 @ =0x00000315
bl FlagReset
ldr r0, _0810FB04 @ =0x00000316
bl FlagReset
ldr r0, _0810FB08 @ =0x00000317
bl FlagReset
movs r0, 0xC6
lsls r0, 2
bl FlagReset
ldr r0, _0810FB0C @ =0x00004095
movs r1, 0x1
bl VarSet
_0810FAE8:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810FAF0: .4byte gSaveBlock1
_0810FAF4: .4byte 0x000013c2
_0810FAF8: .4byte gSaveBlock2
_0810FAFC: .4byte 0x000013c4
_0810FB00: .4byte 0x00000315
_0810FB04: .4byte 0x00000316
_0810FB08: .4byte 0x00000317
_0810FB0C: .4byte 0x00004095
thumb_func_end sub_810FAA0
thumb_func_start sub_810FB10
sub_810FB10: @ 810FB10
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r0, _0810FB54 @ =0x00004095
bl VarGet
lsls r0, 16
lsrs r0, 16
cmp r0, 0x2
bne _0810FB80
ldr r0, _0810FB58 @ =gSaveBlock1
ldr r1, _0810FB5C @ =0x000013c2
adds r4, r0, r1
ldrh r2, [r4]
movs r1, 0x7F
ands r1, r2
ldr r0, _0810FB60 @ =gUnknown_083F8404
adds r0, r5, r0
ldrb r0, [r0]
adds r1, r0
cmp r1, 0x13
ble _0810FB7C
bl sub_810FCB0
lsls r0, 16
lsrs r0, 16
cmp r0, 0x2
bhi _0810FB68
bl sub_810FB9C
ldrh r1, [r4]
ldr r0, _0810FB64 @ =0x0000ff80
ands r0, r1
b _0810FB7E
.align 2, 0
_0810FB54: .4byte 0x00004095
_0810FB58: .4byte gSaveBlock1
_0810FB5C: .4byte 0x000013c2
_0810FB60: .4byte gUnknown_083F8404
_0810FB64: .4byte 0x0000ff80
_0810FB68:
ldrh r0, [r4]
ldr r1, _0810FB78 @ =0x0000ff80
ands r1, r0
movs r0, 0x14
orrs r1, r0
strh r1, [r4]
b _0810FB80
.align 2, 0
_0810FB78: .4byte 0x0000ff80
_0810FB7C:
adds r0, r2, r0
_0810FB7E:
strh r0, [r4]
_0810FB80:
ldr r0, _0810FB94 @ =gSaveBlock1
ldr r1, _0810FB98 @ =0x000013c2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x7F
ands r0, r1
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0810FB94: .4byte gSaveBlock1
_0810FB98: .4byte 0x000013c2
thumb_func_end sub_810FB10
thumb_func_start sub_810FB9C
sub_810FB9C: @ 810FB9C
push {r4-r7,lr}
sub sp, 0x4
movs r3, 0
movs r5, 0
ldr r7, _0810FBD8 @ =gSaveBlock1 + 0x13C2
movs r6, 0x1
_0810FBA8:
ldrh r1, [r7]
ldr r0, _0810FBDC @ =gUnknown_083F8408
adds r0, r5, r0
ldrb r4, [r0]
asrs r1, r4
ands r1, r6
cmp r1, 0
bne _0810FBE0
adds r3, r5, 0
str r3, [sp]
bl Random
adds r1, r6, 0
ands r1, r0
ldr r3, [sp]
cmp r1, 0
beq _0810FBE0
adds r0, r6, 0
lsls r0, r4
ldrh r1, [r7]
orrs r0, r1
strh r0, [r7]
b _0810FC00
.align 2, 0
_0810FBD8: .4byte gSaveBlock1 + 0x13C2
_0810FBDC: .4byte gUnknown_083F8408
_0810FBE0:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x7
bls _0810FBA8
ldr r2, _0810FC0C @ =gSaveBlock1
ldr r0, _0810FC10 @ =0x000013c2
adds r2, r0
ldr r1, _0810FC14 @ =gUnknown_083F8408
adds r1, r3, r1
movs r0, 0x1
ldrb r1, [r1]
lsls r0, r1
ldrh r1, [r2]
orrs r0, r1
strh r0, [r2]
_0810FC00:
adds r0, r3, 0
add sp, 0x4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0810FC0C: .4byte gSaveBlock1
_0810FC10: .4byte 0x000013c2
_0810FC14: .4byte gUnknown_083F8408
thumb_func_end sub_810FB9C
thumb_func_start sub_810FC18
sub_810FC18: @ 810FC18
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
movs r0, 0
mov r8, r0
bl sub_810FCB0
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
bne _0810FC3E
movs r0, 0
b _0810FC94
_0810FC34:
lsls r4, r6
ldrh r0, [r2]
eors r4, r0
strh r4, [r2]
b _0810FC92
_0810FC3E:
movs r5, 0
ldr r2, _0810FCA0 @ =gSaveBlock1 + 0x13C2
movs r4, 0x1
_0810FC44:
ldrh r1, [r2]
ldr r7, _0810FCA4 @ =gUnknown_083F8410
adds r0, r5, r7
ldrb r6, [r0]
asrs r1, r6
ands r1, r4
cmp r1, 0
beq _0810FC66
mov r8, r5
str r2, [sp]
bl Random
adds r1, r4, 0
ands r1, r0
ldr r2, [sp]
cmp r1, 0
bne _0810FC34
_0810FC66:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x7
bls _0810FC44
ldr r0, _0810FCA8 @ =gSaveBlock1
ldr r1, _0810FCAC @ =0x000013c2
adds r4, r0, r1
ldrh r1, [r4]
mov r2, r8
adds r0, r2, r7
ldrb r2, [r0]
adds r0, r1, 0
asrs r0, r2
movs r3, 0x1
ands r0, r3
cmp r0, 0
beq _0810FC92
adds r0, r3, 0
lsls r0, r2
eors r1, r0
strh r1, [r4]
_0810FC92:
mov r0, r8
_0810FC94:
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0810FCA0: .4byte gSaveBlock1 + 0x13C2
_0810FCA4: .4byte gUnknown_083F8410
_0810FCA8: .4byte gSaveBlock1
_0810FCAC: .4byte 0x000013c2
thumb_func_end sub_810FC18
thumb_func_start sub_810FCB0
sub_810FCB0: @ 810FCB0
push {r4,r5,lr}
movs r3, 0
movs r2, 0
ldr r0, _0810FCE4 @ =gSaveBlock1 + 0x13C2
ldrh r4, [r0]
movs r5, 0x1
_0810FCBC:
adds r1, r2, 0
adds r1, 0x8
adds r0, r4, 0
asrs r0, r1
ands r0, r5
cmp r0, 0
beq _0810FCD0
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
_0810FCD0:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x7
bls _0810FCBC
adds r0, r3, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0810FCE4: .4byte gSaveBlock1 + 0x13C2
thumb_func_end sub_810FCB0
thumb_func_start sub_810FCE8
sub_810FCE8: @ 810FCE8
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r5, 0
ldr r2, _0810FD08 @ =gSaveBlock2
ldrh r1, [r2, 0xE]
ldr r0, _0810FD0C @ =0x000003e6
cmp r1, r0
bhi _0810FD54
ldr r7, _0810FD10 @ =gSaveBlock1
adds r6, r2, 0
ldr r0, _0810FD14 @ =0x000013c4
adds r0, r7
mov r8, r0
b _0810FD36
.align 2, 0
_0810FD08: .4byte gSaveBlock2
_0810FD0C: .4byte 0x000003e6
_0810FD10: .4byte gSaveBlock1
_0810FD14: .4byte 0x000013c4
_0810FD18:
ldrh r1, [r6, 0xE]
ldr r0, _0810FD4C @ =0x000013c4
adds r4, r7, r0
ldrh r0, [r4]
subs r1, r0
cmp r1, 0xB
ble _0810FD54
bl sub_810FC18
ldrh r0, [r4]
adds r0, 0xC
strh r0, [r4]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
_0810FD36:
bl sub_810FCB0
lsls r0, 16
lsrs r0, 16
cmp r0, 0x4
bhi _0810FD50
ldrh r0, [r6, 0xE]
mov r1, r8
strh r0, [r1]
b _0810FD54
.align 2, 0
_0810FD4C: .4byte 0x000013c4
_0810FD50:
cmp r5, 0x8
bne _0810FD18
_0810FD54:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_810FCE8
thumb_func_start sub_810FD60
sub_810FD60: @ 810FD60
ldr r0, _0810FD74 @ =gSaveBlock1
ldr r1, _0810FD78 @ =0x000013c2
adds r0, r1
ldrh r0, [r0]
ldr r1, _0810FD7C @ =gSpecialVar_0x8004
ldrh r1, [r1]
asrs r0, r1
movs r1, 0x1
ands r0, r1
bx lr
.align 2, 0
_0810FD74: .4byte gSaveBlock1
_0810FD78: .4byte 0x000013c2
_0810FD7C: .4byte gSpecialVar_0x8004
thumb_func_end sub_810FD60
thumb_func_start sub_810FD80
sub_810FD80: @ 810FD80
ldr r2, _0810FDA4 @ =gSaveBlock1
ldr r0, _0810FDA8 @ =0x000013c2
adds r2, r0
ldrh r1, [r2]
movs r3, 0x80
lsls r3, 6
adds r0, r3, 0
orrs r0, r1
movs r3, 0x80
lsls r3, 1
adds r1, r3, 0
orrs r0, r1
movs r3, 0x80
lsls r3, 3
adds r1, r3, 0
orrs r0, r1
strh r0, [r2]
bx lr
.align 2, 0
_0810FDA4: .4byte gSaveBlock1
_0810FDA8: .4byte 0x000013c2
thumb_func_end sub_810FD80
thumb_func_start sub_810FDAC
sub_810FDAC: @ 810FDAC
push {lr}
movs r3, 0
movs r2, 0
ldr r0, _0810FDC8 @ =gSpecialVar_0x8004
ldrh r0, [r0]
subs r0, 0x8
cmp r0, 0x7
bhi _0810FE0C
lsls r0, 2
ldr r1, _0810FDCC @ =_0810FDD0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0810FDC8: .4byte gSpecialVar_0x8004
_0810FDCC: .4byte _0810FDD0
.align 2, 0
_0810FDD0:
.4byte _0810FE0C
.4byte _0810FE0C
.4byte _0810FDF0
.4byte _0810FDF6
.4byte _0810FDFC
.4byte _0810FE02
.4byte _0810FE08
.4byte _0810FE0C
_0810FDF0:
movs r3, 0
movs r2, 0x3
b _0810FE0C
_0810FDF6:
movs r3, 0
movs r2, 0x1
b _0810FE0C
_0810FDFC:
movs r3, 0x1
movs r2, 0
b _0810FE0C
_0810FE02:
movs r3, 0
movs r2, 0x4
b _0810FE0C
_0810FE08:
movs r3, 0x1
movs r2, 0x5
_0810FE0C:
ldr r0, _0810FE18 @ =gSaveBlock1 + 0x30B8
adds r1, r3, 0
bl sub_810FE1C
pop {r0}
bx r0
.align 2, 0
_0810FE18: .4byte gSaveBlock1 + 0x30B8
thumb_func_end sub_810FDAC
thumb_func_start sub_810FE1C
sub_810FE1C: @ 810FE1C
push {r4,lr}
lsls r1, 24
lsls r2, 24
lsrs r2, 24
lsrs r1, 20
adds r1, r0, r1
ldrb r0, [r1]
cmp r0, 0xFF
bne _0810FED0
cmp r2, 0x5
bhi _0810FEBC
lsls r0, r2, 2
ldr r1, _0810FE3C @ =_0810FE40
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0810FE3C: .4byte _0810FE40
.align 2, 0
_0810FE40:
.4byte _0810FEBC
.4byte _0810FE58
.4byte _0810FE6C
.4byte _0810FE80
.4byte _0810FE94
.4byte _0810FEA8
_0810FE58:
ldr r0, _0810FE64 @ =gStringVar1
ldr r1, _0810FE68 @ =gOtherText_Steven
bl StringCopy
b _0810FEF2
.align 2, 0
_0810FE64: .4byte gStringVar1
_0810FE68: .4byte gOtherText_Steven
_0810FE6C:
ldr r0, _0810FE78 @ =gStringVar1
ldr r1, _0810FE7C @ =gOtherText_Brawly
bl StringCopy
b _0810FEF2
.align 2, 0
_0810FE78: .4byte gStringVar1
_0810FE7C: .4byte gOtherText_Brawly
_0810FE80:
ldr r0, _0810FE8C @ =gStringVar1
ldr r1, _0810FE90 @ =gOtherText_Winona
bl StringCopy
b _0810FEF2
.align 2, 0
_0810FE8C: .4byte gStringVar1
_0810FE90: .4byte gOtherText_Winona
_0810FE94:
ldr r0, _0810FEA0 @ =gStringVar1
ldr r1, _0810FEA4 @ =gOtherText_Phoebe
bl StringCopy
b _0810FEF2
.align 2, 0
_0810FEA0: .4byte gStringVar1
_0810FEA4: .4byte gOtherText_Phoebe
_0810FEA8:
ldr r0, _0810FEB4 @ =gStringVar1
ldr r1, _0810FEB8 @ =gOtherText_Glacia
bl StringCopy
b _0810FEF2
.align 2, 0
_0810FEB4: .4byte gStringVar1
_0810FEB8: .4byte gOtherText_Glacia
_0810FEBC:
ldr r0, _0810FEC8 @ =gStringVar1
ldr r1, _0810FECC @ =gOtherText_Wallace
bl StringCopy
b _0810FEF2
.align 2, 0
_0810FEC8: .4byte gStringVar1
_0810FECC: .4byte gOtherText_Wallace
_0810FED0:
ldr r4, _0810FEF8 @ =gStringVar1
adds r0, r4, 0
movs r2, 0x7
bl StringCopyN
movs r0, 0xFF
strb r0, [r4, 0x7]
ldrb r0, [r4]
cmp r0, 0xFC
bne _0810FEF2
ldrb r0, [r4, 0x1]
cmp r0, 0x15
bne _0810FEF2
adds r0, r4, 0
movs r1, 0x1
bl ConvertInternationalString
_0810FEF2:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810FEF8: .4byte gStringVar1
thumb_func_end sub_810FE1C
thumb_func_start sub_810FEFC
sub_810FEFC: @ 810FEFC
push {lr}
ldr r0, _0810FF20 @ =0x00004095
bl VarGet
lsls r0, 16
lsrs r0, 16
cmp r0, 0x2
bne _0810FF2C
bl sub_810FA74
ldr r0, _0810FF24 @ =gBattleOutcome
ldrb r0, [r0]
cmp r0, 0x1
bne _0810FF28
bl sub_810FB9C
b _0810FF2C
.align 2, 0
_0810FF20: .4byte 0x00004095
_0810FF24: .4byte gBattleOutcome
_0810FF28:
bl sub_810FC18
_0810FF2C:
pop {r0}
bx r0
thumb_func_end sub_810FEFC
thumb_func_start sub_810FF30
sub_810FF30: @ 810FF30
ldr r0, _0810FF40 @ =gSaveBlock1
ldr r1, _0810FF44 @ =0x000013c2
adds r0, r1
ldrh r0, [r0]
lsrs r0, 7
movs r1, 0x1
ands r0, r1
bx lr
.align 2, 0
_0810FF40: .4byte gSaveBlock1
_0810FF44: .4byte 0x000013c2
thumb_func_end sub_810FF30
thumb_func_start sub_810FF48
sub_810FF48: @ 810FF48
ldr r0, _0810FF58 @ =gSaveBlock1
ldr r1, _0810FF5C @ =0x000013c2
adds r0, r1
ldrh r2, [r0]
movs r1, 0x80
orrs r1, r2
strh r1, [r0]
bx lr
.align 2, 0
_0810FF58: .4byte gSaveBlock1
_0810FF5C: .4byte 0x000013c2
thumb_func_end sub_810FF48
thumb_func_start sub_810FF60
sub_810FF60: @ 810FF60
push {lr}
ldr r0, _0810FF74 @ =gSpecialVar_0x8004
ldrb r0, [r0]
bl sub_810FB10
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_0810FF74: .4byte gSpecialVar_0x8004
thumb_func_end sub_810FF60
.align 2, 0 @ Don't pad with nop.