mirror of
https://github.com/pret/pokeemerald-jp.git
synced 2026-09-29 06:00:55 -04:00
6957 lines
120 KiB
ArmAsm
6957 lines
120 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
.text
|
|
.syntax unified
|
|
|
|
thumb_func_start CallFrontierUtilFunc
|
|
CallFrontierUtilFunc: @ 0x081A1628
|
|
push {lr}
|
|
ldr r1, _081A1640
|
|
ldr r0, _081A1644
|
|
ldrh r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
pop {r0}
|
|
thumb_func_end CallFrontierUtilFunc
|
|
|
|
thumb_func_start sub_081A163C
|
|
sub_081A163C: @ 0x081A163C
|
|
bx r0
|
|
.align 2, 0
|
|
_081A1640: .4byte 0x085DD244
|
|
_081A1644: .4byte 0x02037280
|
|
thumb_func_end sub_081A163C
|
|
|
|
thumb_func_start sub_081A1648
|
|
sub_081A1648: @ 0x081A1648
|
|
push {lr}
|
|
movs r0, #0x80
|
|
lsls r0, r0, #7
|
|
movs r1, #0xff
|
|
bl VarSet
|
|
ldr r0, _081A166C
|
|
ldr r0, [r0]
|
|
ldr r1, _081A1670
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, #4
|
|
bhi _081A16CA
|
|
lsls r0, r0, #2
|
|
ldr r1, _081A1674
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_081A166C: .4byte 0x03005AF0
|
|
_081A1670: .4byte 0x00000CA8
|
|
_081A1674: .4byte 0x081A1678
|
|
_081A1678: @ jump table
|
|
.4byte _081A16CA @ case 0
|
|
.4byte _081A168C @ case 1
|
|
.4byte _081A16B8 @ case 2
|
|
.4byte _081A1694 @ case 3
|
|
.4byte _081A1690 @ case 4
|
|
_081A168C:
|
|
movs r0, #0
|
|
b _081A1696
|
|
_081A1690:
|
|
movs r0, #0
|
|
b _081A1696
|
|
_081A1694:
|
|
movs r0, #1
|
|
_081A1696:
|
|
bl sub_0813A880
|
|
movs r0, #0x80
|
|
lsls r0, r0, #7
|
|
ldr r1, _081A16B0
|
|
ldr r1, [r1]
|
|
ldr r2, _081A16B4
|
|
adds r1, r1, r2
|
|
ldrb r1, [r1]
|
|
bl VarSet
|
|
b _081A16CA
|
|
.align 2, 0
|
|
_081A16B0: .4byte 0x03005AF0
|
|
_081A16B4: .4byte 0x00000CA8
|
|
_081A16B8:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #7
|
|
ldr r1, _081A16D0
|
|
ldr r1, [r1]
|
|
ldr r2, _081A16D4
|
|
adds r1, r1, r2
|
|
ldrb r1, [r1]
|
|
bl VarSet
|
|
_081A16CA:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A16D0: .4byte 0x03005AF0
|
|
_081A16D4: .4byte 0x00000CA8
|
|
thumb_func_end sub_081A1648
|
|
|
|
thumb_func_start sub_081A16D8
|
|
sub_081A16D8: @ 0x081A16D8
|
|
push {r4, r5, r6, lr}
|
|
ldr r0, _081A1708
|
|
bl VarGet
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
adds r0, r6, #0
|
|
bl GetPlayerSymbolCountForFacility
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
cmp r5, #2
|
|
bne _081A16F4
|
|
movs r5, #1
|
|
_081A16F4:
|
|
ldr r0, _081A170C
|
|
ldrh r0, [r0]
|
|
cmp r0, #7
|
|
bls _081A16FE
|
|
b _081A17FE
|
|
_081A16FE:
|
|
lsls r0, r0, #2
|
|
ldr r1, _081A1710
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_081A1708: .4byte 0x000040CF
|
|
_081A170C: .4byte 0x02037282
|
|
_081A1710: .4byte 0x081A1714
|
|
_081A1714: @ jump table
|
|
.4byte _081A1734 @ case 0
|
|
.4byte _081A1750 @ case 1
|
|
.4byte _081A1770 @ case 2
|
|
.4byte _081A178C @ case 3
|
|
.4byte _081A17FE @ case 4
|
|
.4byte _081A17A8 @ case 5
|
|
.4byte _081A17C0 @ case 6
|
|
.4byte _081A17E0 @ case 7
|
|
_081A1734:
|
|
ldr r1, _081A1744
|
|
ldr r0, _081A1748
|
|
ldr r0, [r0]
|
|
ldr r2, _081A174C
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
strh r0, [r1]
|
|
b _081A17FE
|
|
.align 2, 0
|
|
_081A1744: .4byte 0x02037290
|
|
_081A1748: .4byte 0x03005AF0
|
|
_081A174C: .4byte 0x00000CA8
|
|
_081A1750:
|
|
ldr r1, _081A1764
|
|
ldr r0, _081A1768
|
|
ldr r0, [r0]
|
|
ldr r2, _081A176C
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1e
|
|
lsrs r0, r0, #0x1e
|
|
strh r0, [r1]
|
|
b _081A17FE
|
|
.align 2, 0
|
|
_081A1764: .4byte 0x02037290
|
|
_081A1768: .4byte 0x03005AF0
|
|
_081A176C: .4byte 0x00000CA9
|
|
_081A1770:
|
|
ldr r1, _081A1780
|
|
ldr r0, _081A1784
|
|
ldr r0, [r0]
|
|
ldr r2, _081A1788
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
b _081A17FE
|
|
.align 2, 0
|
|
_081A1780: .4byte 0x02037290
|
|
_081A1784: .4byte 0x03005AF0
|
|
_081A1788: .4byte 0x00000CB2
|
|
_081A178C:
|
|
ldr r1, _081A179C
|
|
ldr r0, _081A17A0
|
|
ldr r0, [r0]
|
|
ldr r2, _081A17A4
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1d
|
|
b _081A17CE
|
|
.align 2, 0
|
|
_081A179C: .4byte 0x02037290
|
|
_081A17A0: .4byte 0x03005AF0
|
|
_081A17A4: .4byte 0x00000CA9
|
|
_081A17A8:
|
|
ldr r2, _081A17B8
|
|
ldr r1, _081A17BC
|
|
ldrb r0, [r1]
|
|
strh r0, [r2]
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
b _081A17FE
|
|
.align 2, 0
|
|
_081A17B8: .4byte 0x02037290
|
|
_081A17BC: .4byte 0x02023FDE
|
|
_081A17C0:
|
|
ldr r1, _081A17D4
|
|
ldr r0, _081A17D8
|
|
ldr r0, [r0]
|
|
ldr r2, _081A17DC
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1c
|
|
_081A17CE:
|
|
lsrs r0, r0, #0x1f
|
|
strh r0, [r1]
|
|
b _081A17FE
|
|
.align 2, 0
|
|
_081A17D4: .4byte 0x02037290
|
|
_081A17D8: .4byte 0x03005AF0
|
|
_081A17DC: .4byte 0x00000CA9
|
|
_081A17E0:
|
|
ldr r4, _081A1804
|
|
ldr r0, _081A1808
|
|
ldr r2, [r0]
|
|
movs r0, #0xd0
|
|
lsls r0, r0, #4
|
|
adds r2, r2, r0
|
|
ldr r3, _081A180C
|
|
lsls r0, r5, #1
|
|
lsls r1, r6, #2
|
|
adds r0, r0, r1
|
|
adds r0, r0, r3
|
|
ldrh r1, [r2]
|
|
ldrh r0, [r0]
|
|
ands r0, r1
|
|
strh r0, [r4]
|
|
_081A17FE:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A1804: .4byte 0x02037290
|
|
_081A1808: .4byte 0x03005AF0
|
|
_081A180C: .4byte 0x085DD228
|
|
thumb_func_end sub_081A16D8
|
|
|
|
thumb_func_start sub_081A1810
|
|
sub_081A1810: @ 0x081A1810
|
|
push {r4, r5, lr}
|
|
ldr r0, _081A1840
|
|
bl VarGet
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
adds r0, r5, #0
|
|
bl GetPlayerSymbolCountForFacility
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #2
|
|
bne _081A182C
|
|
movs r4, #1
|
|
_081A182C:
|
|
ldr r0, _081A1844
|
|
ldrh r0, [r0]
|
|
cmp r0, #7
|
|
bls _081A1836
|
|
b _081A196C
|
|
_081A1836:
|
|
lsls r0, r0, #2
|
|
ldr r1, _081A1848
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_081A1840: .4byte 0x000040CF
|
|
_081A1844: .4byte 0x02037282
|
|
_081A1848: .4byte 0x081A184C
|
|
_081A184C: @ jump table
|
|
.4byte _081A186C @ case 0
|
|
.4byte _081A1888 @ case 1
|
|
.4byte _081A18B4 @ case 2
|
|
.4byte _081A18D0 @ case 3
|
|
.4byte _081A18F8 @ case 4
|
|
.4byte _081A196C @ case 5
|
|
.4byte _081A1924 @ case 6
|
|
.4byte _081A1950 @ case 7
|
|
_081A186C:
|
|
ldr r0, _081A187C
|
|
ldr r0, [r0]
|
|
ldr r1, _081A1880
|
|
ldrh r1, [r1]
|
|
ldr r2, _081A1884
|
|
adds r0, r0, r2
|
|
strb r1, [r0]
|
|
b _081A196C
|
|
.align 2, 0
|
|
_081A187C: .4byte 0x03005AF0
|
|
_081A1880: .4byte 0x02037284
|
|
_081A1884: .4byte 0x00000CA8
|
|
_081A1888:
|
|
ldr r0, _081A18A8
|
|
ldr r2, [r0]
|
|
ldr r0, _081A18AC
|
|
ldrb r0, [r0]
|
|
ldr r1, _081A18B0
|
|
adds r2, r2, r1
|
|
movs r1, #3
|
|
ands r1, r0
|
|
ldrb r3, [r2]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
b _081A196C
|
|
.align 2, 0
|
|
_081A18A8: .4byte 0x03005AF0
|
|
_081A18AC: .4byte 0x02037284
|
|
_081A18B0: .4byte 0x00000CA9
|
|
_081A18B4:
|
|
ldr r0, _081A18C4
|
|
ldr r0, [r0]
|
|
ldr r1, _081A18C8
|
|
ldrh r1, [r1]
|
|
ldr r2, _081A18CC
|
|
adds r0, r0, r2
|
|
strh r1, [r0]
|
|
b _081A196C
|
|
.align 2, 0
|
|
_081A18C4: .4byte 0x03005AF0
|
|
_081A18C8: .4byte 0x02037284
|
|
_081A18CC: .4byte 0x00000CB2
|
|
_081A18D0:
|
|
ldr r0, _081A18EC
|
|
ldr r3, [r0]
|
|
ldr r0, _081A18F0
|
|
ldrb r0, [r0]
|
|
ldr r1, _081A18F4
|
|
adds r3, r3, r1
|
|
movs r1, #1
|
|
ands r1, r0
|
|
lsls r1, r1, #2
|
|
ldrb r2, [r3]
|
|
movs r0, #5
|
|
rsbs r0, r0, #0
|
|
b _081A193C
|
|
.align 2, 0
|
|
_081A18EC: .4byte 0x03005AF0
|
|
_081A18F0: .4byte 0x02037284
|
|
_081A18F4: .4byte 0x00000CA9
|
|
_081A18F8:
|
|
movs r2, #0
|
|
ldr r5, _081A1918
|
|
ldr r4, _081A191C
|
|
ldr r3, _081A1920
|
|
_081A1900:
|
|
ldr r1, [r5]
|
|
lsls r0, r2, #1
|
|
adds r1, r1, r4
|
|
adds r1, r1, r0
|
|
adds r0, r2, r3
|
|
ldrb r0, [r0]
|
|
strh r0, [r1]
|
|
adds r2, #1
|
|
cmp r2, #3
|
|
ble _081A1900
|
|
b _081A196C
|
|
.align 2, 0
|
|
_081A1918: .4byte 0x03005AF0
|
|
_081A191C: .4byte 0x00000CAA
|
|
_081A1920: .4byte 0x0203CBC4
|
|
_081A1924:
|
|
ldr r0, _081A1944
|
|
ldr r3, [r0]
|
|
ldr r0, _081A1948
|
|
ldrb r0, [r0]
|
|
ldr r2, _081A194C
|
|
adds r3, r3, r2
|
|
movs r1, #1
|
|
ands r1, r0
|
|
lsls r1, r1, #3
|
|
ldrb r2, [r3]
|
|
movs r0, #9
|
|
rsbs r0, r0, #0
|
|
_081A193C:
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
b _081A196C
|
|
.align 2, 0
|
|
_081A1944: .4byte 0x03005AF0
|
|
_081A1948: .4byte 0x02037284
|
|
_081A194C: .4byte 0x00000CA9
|
|
_081A1950:
|
|
ldr r0, _081A1974
|
|
ldr r2, [r0]
|
|
movs r0, #0xd0
|
|
lsls r0, r0, #4
|
|
adds r2, r2, r0
|
|
ldr r3, _081A1978
|
|
lsls r1, r4, #1
|
|
lsls r0, r5, #2
|
|
adds r1, r1, r0
|
|
adds r1, r1, r3
|
|
ldrh r0, [r2]
|
|
ldrh r1, [r1]
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
_081A196C:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A1974: .4byte 0x03005AF0
|
|
_081A1978: .4byte 0x085DD228
|
|
thumb_func_end sub_081A1810
|
|
|
|
thumb_func_start sub_081A197C
|
|
sub_081A197C: @ 0x081A197C
|
|
push {r4, r5, r6, r7, lr}
|
|
bl sub_081B81F8
|
|
movs r3, #0
|
|
ldr r4, _081A19B4
|
|
ldrh r0, [r4]
|
|
cmp r3, r0
|
|
bge _081A19A8
|
|
ldr r7, _081A19B8
|
|
ldr r6, _081A19BC
|
|
ldr r5, _081A19C0
|
|
_081A1992:
|
|
adds r2, r3, r7
|
|
ldr r0, [r6]
|
|
lsls r1, r3, #1
|
|
adds r0, r0, r5
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
strb r0, [r2]
|
|
adds r3, #1
|
|
ldrh r0, [r4]
|
|
cmp r3, r0
|
|
blt _081A1992
|
|
_081A19A8:
|
|
bl ReducePlayerPartyToSelectedMons
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A19B4: .4byte 0x02037282
|
|
_081A19B8: .4byte 0x0203CBC4
|
|
_081A19BC: .4byte 0x03005AF0
|
|
_081A19C0: .4byte 0x00000CAA
|
|
thumb_func_end sub_081A197C
|
|
|
|
thumb_func_start DoSoftReset_
|
|
DoSoftReset_: @ 0x081A19C4
|
|
push {lr}
|
|
bl DoSoftReset
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end DoSoftReset_
|
|
|
|
thumb_func_start sub_081A19D0
|
|
sub_081A19D0: @ 0x081A19D0
|
|
ldr r1, _081A19D8
|
|
ldr r0, _081A19DC
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_081A19D8: .4byte 0x0203B954
|
|
_081A19DC: .4byte 0x085B4A10
|
|
thumb_func_end sub_081A19D0
|
|
|
|
thumb_func_start sub_081A19E0
|
|
sub_081A19E0: @ 0x081A19E0
|
|
push {r4, r5, lr}
|
|
movs r4, #0
|
|
movs r5, #0x64
|
|
_081A19E6:
|
|
ldr r0, _081A1A30
|
|
ldr r0, [r0]
|
|
lsls r1, r4, #1
|
|
ldr r2, _081A1A34
|
|
adds r0, r0, r2
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1]
|
|
subs r0, #1
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, #5
|
|
bhi _081A1A1E
|
|
ldr r0, _081A1A38
|
|
ldr r0, [r0]
|
|
ldrh r1, [r1]
|
|
subs r1, #1
|
|
muls r1, r5, r1
|
|
adds r0, r0, r1
|
|
movs r1, #0x8e
|
|
lsls r1, r1, #2
|
|
adds r0, r0, r1
|
|
ldr r2, _081A1A3C
|
|
adds r1, r4, #0
|
|
muls r1, r5, r1
|
|
adds r1, r1, r2
|
|
movs r2, #0x64
|
|
bl memcpy
|
|
_081A1A1E:
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #3
|
|
bls _081A19E6
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A1A30: .4byte 0x03005AF0
|
|
_081A1A34: .4byte 0x00000CAA
|
|
_081A1A38: .4byte 0x03005AEC
|
|
_081A1A3C: .4byte 0x02024190
|
|
thumb_func_end sub_081A19E0
|
|
|
|
thumb_func_start ShowFacilityResultsWindow
|
|
ShowFacilityResultsWindow: @ 0x081A1A40
|
|
push {lr}
|
|
ldr r0, _081A1A64
|
|
ldrh r1, [r0]
|
|
adds r2, r0, #0
|
|
cmp r1, #3
|
|
bls _081A1A50
|
|
movs r0, #0
|
|
strh r0, [r2]
|
|
_081A1A50:
|
|
ldr r0, _081A1A68
|
|
ldrh r0, [r0]
|
|
cmp r0, #7
|
|
bhi _081A1AC6
|
|
lsls r0, r0, #2
|
|
ldr r1, _081A1A6C
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_081A1A64: .4byte 0x02037284
|
|
_081A1A68: .4byte 0x02037282
|
|
_081A1A6C: .4byte 0x081A1A70
|
|
_081A1A70: @ jump table
|
|
.4byte _081A1A90 @ case 0
|
|
.4byte _081A1A98 @ case 1
|
|
.4byte _081A1AA0 @ case 2
|
|
.4byte _081A1AB6 @ case 3
|
|
.4byte _081A1AAE @ case 4
|
|
.4byte _081A1AA8 @ case 5
|
|
.4byte _081A1ABC @ case 6
|
|
.4byte _081A1AC2 @ case 7
|
|
_081A1A90:
|
|
ldrb r0, [r2]
|
|
bl ShowTowerResultsWindow
|
|
b _081A1AC6
|
|
_081A1A98:
|
|
ldrb r0, [r2]
|
|
bl ShowDomeResultsWindow
|
|
b _081A1AC6
|
|
_081A1AA0:
|
|
ldrb r0, [r2]
|
|
bl ShowPalaceResultsWindow
|
|
b _081A1AC6
|
|
_081A1AA8:
|
|
bl ShowPikeResultsWindow
|
|
b _081A1AC6
|
|
_081A1AAE:
|
|
ldrb r0, [r2]
|
|
bl ShowFactoryResultsWindow
|
|
b _081A1AC6
|
|
_081A1AB6:
|
|
bl ShowArenaResultsWindow
|
|
b _081A1AC6
|
|
_081A1ABC:
|
|
bl ShowPyramidResultsWindow
|
|
b _081A1AC6
|
|
_081A1AC2:
|
|
bl PrintHallRecords
|
|
_081A1AC6:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end ShowFacilityResultsWindow
|
|
|
|
thumb_func_start sub_081A1ACC
|
|
sub_081A1ACC: @ 0x081A1ACC
|
|
push {lr}
|
|
ldr r1, _081A1AE4
|
|
ldr r1, [r1]
|
|
ldr r2, _081A1AE8
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _081A1AEC
|
|
movs r0, #0
|
|
b _081A1AEE
|
|
.align 2, 0
|
|
_081A1AE4: .4byte 0x03005AF0
|
|
_081A1AE8: .4byte 0x00000CDC
|
|
_081A1AEC:
|
|
movs r0, #1
|
|
_081A1AEE:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
thumb_func_end sub_081A1ACC
|
|
|
|
thumb_func_start TowerPrintStreak
|
|
TowerPrintStreak: @ 0x081A1AF4
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
sub sp, #0xc
|
|
mov ip, r0
|
|
lsls r1, r1, #0x10
|
|
lsrs r6, r1, #0x10
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
mov r8, r2
|
|
lsls r3, r3, #0x18
|
|
ldr r0, _081A1B78
|
|
mov sb, r0
|
|
ldrb r0, [r0]
|
|
lsls r4, r2, #0x1b
|
|
lsrs r4, r4, #0x18
|
|
lsrs r3, r3, #0x15
|
|
adds r3, #2
|
|
lsls r3, r3, #0x18
|
|
lsrs r5, r3, #0x18
|
|
str r5, [sp]
|
|
movs r7, #0
|
|
str r7, [sp, #4]
|
|
str r7, [sp, #8]
|
|
movs r1, #1
|
|
mov r2, ip
|
|
adds r3, r4, #0
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, _081A1B7C
|
|
cmp r6, r0
|
|
bls _081A1B38
|
|
adds r6, r0, #0
|
|
_081A1B38:
|
|
ldr r0, _081A1B80
|
|
adds r1, r6, #0
|
|
movs r2, #1
|
|
movs r3, #4
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r4, _081A1B84
|
|
ldr r1, _081A1B88
|
|
adds r0, r4, #0
|
|
bl StringExpandPlaceholders
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
mov r3, r8
|
|
adds r3, #6
|
|
lsls r3, r3, #0x1b
|
|
lsrs r3, r3, #0x18
|
|
str r5, [sp]
|
|
str r7, [sp, #4]
|
|
str r7, [sp, #8]
|
|
movs r1, #1
|
|
adds r2, r4, #0
|
|
bl AddTextPrinterParameterized
|
|
add sp, #0xc
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A1B78: .4byte 0x0203A840
|
|
_081A1B7C: .4byte 0x0000270F
|
|
_081A1B80: .4byte 0x02021C40
|
|
_081A1B84: .4byte 0x02021C7C
|
|
_081A1B88: .4byte 0x085DD41D
|
|
thumb_func_end TowerPrintStreak
|
|
|
|
thumb_func_start TowerPrintRecordStreak
|
|
TowerPrintRecordStreak: @ 0x081A1B8C
|
|
push {r4, lr}
|
|
lsls r0, r0, #0x18
|
|
lsls r1, r1, #0x18
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
ldr r4, _081A1BBC
|
|
ldr r4, [r4]
|
|
lsrs r1, r1, #0x17
|
|
lsrs r0, r0, #0x16
|
|
adds r1, r1, r0
|
|
movs r0, #0xcf
|
|
lsls r0, r0, #4
|
|
adds r4, r4, r0
|
|
adds r4, r4, r1
|
|
ldrh r1, [r4]
|
|
ldr r0, _081A1BC0
|
|
bl TowerPrintStreak
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A1BBC: .4byte 0x03005AF0
|
|
_081A1BC0: .4byte 0x085DD42A
|
|
thumb_func_end TowerPrintRecordStreak
|
|
|
|
thumb_func_start TowerGetWinStreak
|
|
TowerGetWinStreak: @ 0x081A1BC4
|
|
push {lr}
|
|
lsls r0, r0, #0x18
|
|
lsls r1, r1, #0x18
|
|
ldr r2, _081A1BEC
|
|
ldr r2, [r2]
|
|
lsrs r1, r1, #0x17
|
|
lsrs r0, r0, #0x16
|
|
adds r1, r1, r0
|
|
movs r0, #0xce
|
|
lsls r0, r0, #4
|
|
adds r2, r2, r0
|
|
adds r2, r2, r1
|
|
ldrh r0, [r2]
|
|
ldr r1, _081A1BF0
|
|
cmp r0, r1
|
|
bls _081A1BE6
|
|
adds r0, r1, #0
|
|
_081A1BE6:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_081A1BEC: .4byte 0x03005AF0
|
|
_081A1BF0: .4byte 0x0000270F
|
|
thumb_func_end TowerGetWinStreak
|
|
|
|
thumb_func_start TowerPrintPrevOrCurrentStreak
|
|
TowerPrintPrevOrCurrentStreak: @ 0x081A1BF4
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
lsls r1, r1, #0x18
|
|
lsrs r5, r1, #0x18
|
|
lsls r2, r2, #0x18
|
|
lsrs r7, r2, #0x18
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
mov r8, r3
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl TowerGetWinStreak
|
|
lsls r0, r0, #0x10
|
|
lsrs r6, r0, #0x10
|
|
cmp r4, #1
|
|
beq _081A1C34
|
|
cmp r4, #1
|
|
ble _081A1C28
|
|
cmp r4, #2
|
|
beq _081A1C44
|
|
cmp r4, #3
|
|
beq _081A1C54
|
|
_081A1C28:
|
|
cmp r5, #0
|
|
beq _081A1C30
|
|
movs r0, #2
|
|
b _081A1C62
|
|
_081A1C30:
|
|
movs r0, #1
|
|
b _081A1C62
|
|
_081A1C34:
|
|
cmp r5, #0
|
|
beq _081A1C3E
|
|
movs r0, #0x80
|
|
lsls r0, r0, #8
|
|
b _081A1C62
|
|
_081A1C3E:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #7
|
|
b _081A1C62
|
|
_081A1C44:
|
|
cmp r5, #0
|
|
beq _081A1C4E
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xa
|
|
b _081A1C62
|
|
_081A1C4E:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #9
|
|
b _081A1C62
|
|
_081A1C54:
|
|
cmp r5, #0
|
|
beq _081A1C5E
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xc
|
|
b _081A1C62
|
|
_081A1C5E:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xb
|
|
_081A1C62:
|
|
bl sub_081A1ACC
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
bne _081A1C80
|
|
ldr r0, _081A1C7C
|
|
adds r1, r6, #0
|
|
adds r2, r7, #0
|
|
mov r3, r8
|
|
bl TowerPrintStreak
|
|
b _081A1C8C
|
|
.align 2, 0
|
|
_081A1C7C: .4byte 0x085DD425
|
|
_081A1C80:
|
|
ldr r0, _081A1C98
|
|
adds r1, r6, #0
|
|
adds r2, r7, #0
|
|
mov r3, r8
|
|
bl TowerPrintStreak
|
|
_081A1C8C:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A1C98: .4byte 0x085DD42F
|
|
thumb_func_end TowerPrintPrevOrCurrentStreak
|
|
|
|
thumb_func_start ShowTowerResultsWindow
|
|
ShowTowerResultsWindow: @ 0x081A1C9C
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
ldr r4, _081A1CCC
|
|
ldr r0, _081A1CD0
|
|
bl AddWindow
|
|
strb r0, [r4]
|
|
ldrb r0, [r4]
|
|
movs r1, #0
|
|
bl ClearStdWindowAndFrame
|
|
ldrb r0, [r4]
|
|
movs r1, #0x11
|
|
bl FillWindowPixelBuffer
|
|
cmp r6, #0
|
|
bne _081A1CDC
|
|
ldr r0, _081A1CD4
|
|
ldr r1, _081A1CD8
|
|
bl StringExpandPlaceholders
|
|
b _081A1D14
|
|
.align 2, 0
|
|
_081A1CCC: .4byte 0x0203A840
|
|
_081A1CD0: .4byte 0x085DD2A0
|
|
_081A1CD4: .4byte 0x02021C7C
|
|
_081A1CD8: .4byte 0x085DD2EC
|
|
_081A1CDC:
|
|
cmp r6, #1
|
|
bne _081A1CF4
|
|
ldr r0, _081A1CEC
|
|
ldr r1, _081A1CF0
|
|
bl StringExpandPlaceholders
|
|
b _081A1D14
|
|
.align 2, 0
|
|
_081A1CEC: .4byte 0x02021C7C
|
|
_081A1CF0: .4byte 0x085DD303
|
|
_081A1CF4:
|
|
cmp r6, #2
|
|
bne _081A1D0C
|
|
ldr r0, _081A1D04
|
|
ldr r1, _081A1D08
|
|
bl StringExpandPlaceholders
|
|
b _081A1D14
|
|
.align 2, 0
|
|
_081A1D04: .4byte 0x02021C7C
|
|
_081A1D08: .4byte 0x085DD31A
|
|
_081A1D0C:
|
|
ldr r0, _081A1DC4
|
|
ldr r1, _081A1DC8
|
|
bl StringExpandPlaceholders
|
|
_081A1D14:
|
|
ldr r5, _081A1DCC
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A1DC4
|
|
movs r1, #0x12
|
|
str r1, [sp]
|
|
movs r4, #0
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #8
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A1DD0
|
|
movs r1, #0x32
|
|
str r1, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #0x10
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A1DD4
|
|
movs r1, #0x62
|
|
str r1, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #0x10
|
|
bl AddTextPrinterParameterized
|
|
movs r5, #0
|
|
_081A1D56:
|
|
ldr r7, _081A1DCC
|
|
ldrb r0, [r7]
|
|
lsls r3, r4, #1
|
|
adds r3, r3, r4
|
|
adds r3, #1
|
|
lsls r3, r3, #0x1b
|
|
lsrs r3, r3, #0x18
|
|
movs r1, #0x52
|
|
str r1, [sp]
|
|
str r5, [sp, #4]
|
|
str r5, [sp, #8]
|
|
movs r1, #1
|
|
ldr r2, _081A1DD8
|
|
bl AddTextPrinterParameterized
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
cmp r4, #0xa
|
|
bls _081A1D56
|
|
adds r0, r6, #0
|
|
movs r1, #0
|
|
movs r2, #0xb
|
|
movs r3, #6
|
|
bl TowerPrintPrevOrCurrentStreak
|
|
adds r0, r6, #0
|
|
movs r1, #0
|
|
movs r2, #0xb
|
|
movs r3, #8
|
|
bl TowerPrintRecordStreak
|
|
adds r0, r6, #0
|
|
movs r1, #1
|
|
movs r2, #0xb
|
|
movs r3, #0xc
|
|
bl TowerPrintPrevOrCurrentStreak
|
|
adds r0, r6, #0
|
|
movs r1, #1
|
|
movs r2, #0xb
|
|
movs r3, #0xe
|
|
bl TowerPrintRecordStreak
|
|
ldrb r0, [r7]
|
|
bl PutWindowTilemap
|
|
ldrb r0, [r7]
|
|
movs r1, #3
|
|
bl CopyWindowToVram
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A1DC4: .4byte 0x02021C7C
|
|
_081A1DC8: .4byte 0x085DD331
|
|
_081A1DCC: .4byte 0x0203A840
|
|
_081A1DD0: .4byte 0x085DD40E
|
|
_081A1DD4: .4byte 0x085DD415
|
|
_081A1DD8: .4byte 0x085DD2E8
|
|
thumb_func_end ShowTowerResultsWindow
|
|
|
|
thumb_func_start DomeGetWinStreak
|
|
DomeGetWinStreak: @ 0x081A1DDC
|
|
push {lr}
|
|
lsls r0, r0, #0x18
|
|
lsls r1, r1, #0x18
|
|
ldr r2, _081A1E00
|
|
ldr r2, [r2]
|
|
lsrs r1, r1, #0x17
|
|
lsrs r0, r0, #0x16
|
|
adds r1, r1, r0
|
|
ldr r0, _081A1E04
|
|
adds r2, r2, r0
|
|
adds r2, r2, r1
|
|
ldrh r0, [r2]
|
|
ldr r1, _081A1E08
|
|
cmp r0, r1
|
|
bls _081A1DFC
|
|
adds r0, r1, #0
|
|
_081A1DFC:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_081A1E00: .4byte 0x03005AF0
|
|
_081A1E04: .4byte 0x00000D0C
|
|
_081A1E08: .4byte 0x0000270F
|
|
thumb_func_end DomeGetWinStreak
|
|
|
|
thumb_func_start PrintTwoStrings
|
|
PrintTwoStrings: @ 0x081A1E0C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0xc
|
|
mov sl, r0
|
|
adds r7, r1, #0
|
|
adds r6, r2, #0
|
|
adds r5, r3, #0
|
|
ldr r4, [sp, #0x2c]
|
|
lsls r6, r6, #0x10
|
|
lsrs r6, r6, #0x10
|
|
lsls r5, r5, #0x18
|
|
lsrs r5, r5, #0x18
|
|
lsls r4, r4, #0x18
|
|
ldr r0, _081A1E94
|
|
mov sb, r0
|
|
ldrb r0, [r0]
|
|
lsls r3, r5, #0x1b
|
|
lsrs r3, r3, #0x18
|
|
lsrs r4, r4, #0x15
|
|
adds r4, #2
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
str r4, [sp]
|
|
movs r1, #0
|
|
mov r8, r1
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
movs r1, #1
|
|
mov r2, sl
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, _081A1E98
|
|
adds r1, r6, #0
|
|
movs r2, #1
|
|
movs r3, #4
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r6, _081A1E9C
|
|
adds r0, r6, #0
|
|
adds r1, r7, #0
|
|
bl StringExpandPlaceholders
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
adds r5, #5
|
|
lsls r5, r5, #0x1b
|
|
lsrs r5, r5, #0x18
|
|
str r4, [sp]
|
|
mov r1, r8
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
movs r1, #1
|
|
adds r2, r6, #0
|
|
adds r3, r5, #0
|
|
bl AddTextPrinterParameterized
|
|
add sp, #0xc
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A1E94: .4byte 0x0203A840
|
|
_081A1E98: .4byte 0x02021C40
|
|
_081A1E9C: .4byte 0x02021C7C
|
|
thumb_func_end PrintTwoStrings
|
|
|
|
thumb_func_start PyramidPrintPrevOrCurrentStreak
|
|
PyramidPrintPrevOrCurrentStreak: @ 0x081A1EA0
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, #4
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
lsls r1, r1, #0x18
|
|
lsrs r5, r1, #0x18
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
mov r8, r2
|
|
lsls r3, r3, #0x18
|
|
lsrs r6, r3, #0x18
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl DomeGetWinStreak
|
|
lsls r0, r0, #0x10
|
|
lsrs r7, r0, #0x10
|
|
cmp r4, #0
|
|
beq _081A1ECE
|
|
cmp r4, #1
|
|
beq _081A1EDA
|
|
_081A1ECE:
|
|
cmp r5, #0
|
|
beq _081A1ED6
|
|
movs r0, #8
|
|
b _081A1EE8
|
|
_081A1ED6:
|
|
movs r0, #4
|
|
b _081A1EE8
|
|
_081A1EDA:
|
|
cmp r5, #0
|
|
beq _081A1EE4
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xe
|
|
b _081A1EE8
|
|
_081A1EE4:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xd
|
|
_081A1EE8:
|
|
bl sub_081A1ACC
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
bne _081A1F0C
|
|
ldr r0, _081A1F04
|
|
ldr r1, _081A1F08
|
|
str r6, [sp]
|
|
adds r2, r7, #0
|
|
mov r3, r8
|
|
bl PrintTwoStrings
|
|
b _081A1F1A
|
|
.align 2, 0
|
|
_081A1F04: .4byte 0x085DD425
|
|
_081A1F08: .4byte 0x085DD447
|
|
_081A1F0C:
|
|
ldr r0, _081A1F28
|
|
ldr r1, _081A1F2C
|
|
str r6, [sp]
|
|
adds r2, r7, #0
|
|
mov r3, r8
|
|
bl PrintTwoStrings
|
|
_081A1F1A:
|
|
add sp, #4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A1F28: .4byte 0x085DD42F
|
|
_081A1F2C: .4byte 0x085DD447
|
|
thumb_func_end PyramidPrintPrevOrCurrentStreak
|
|
|
|
thumb_func_start ShowDomeResultsWindow
|
|
ShowDomeResultsWindow: @ 0x081A1F30
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0xc
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
ldr r4, _081A1F68
|
|
ldr r0, _081A1F6C
|
|
bl AddWindow
|
|
strb r0, [r4]
|
|
ldrb r0, [r4]
|
|
movs r1, #0
|
|
bl ClearStdWindowAndFrame
|
|
ldrb r0, [r4]
|
|
movs r1, #0x11
|
|
bl FillWindowPixelBuffer
|
|
cmp r6, #0
|
|
bne _081A1F78
|
|
ldr r0, _081A1F70
|
|
ldr r1, _081A1F74
|
|
bl StringExpandPlaceholders
|
|
b _081A1F80
|
|
.align 2, 0
|
|
_081A1F68: .4byte 0x0203A840
|
|
_081A1F6C: .4byte 0x085DD2A8
|
|
_081A1F70: .4byte 0x02021C7C
|
|
_081A1F74: .4byte 0x085DD34A
|
|
_081A1F78:
|
|
ldr r0, _081A2094
|
|
ldr r1, _081A2098
|
|
bl StringExpandPlaceholders
|
|
_081A1F80:
|
|
ldr r5, _081A209C
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A2094
|
|
movs r1, #2
|
|
str r1, [sp]
|
|
movs r4, #0
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #8
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A20A0
|
|
movs r1, #0x22
|
|
str r1, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #8
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A20A4
|
|
movs r1, #0x62
|
|
str r1, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #8
|
|
bl AddTextPrinterParameterized
|
|
lsls r7, r6, #2
|
|
movs r5, #0
|
|
_081A1FC4:
|
|
ldr r0, _081A209C
|
|
mov sl, r0
|
|
ldrb r0, [r0]
|
|
lsls r3, r4, #1
|
|
adds r3, r3, r4
|
|
lsls r3, r3, #0x1b
|
|
lsrs r3, r3, #0x18
|
|
movs r1, #0x52
|
|
str r1, [sp]
|
|
str r5, [sp, #4]
|
|
str r5, [sp, #8]
|
|
movs r1, #1
|
|
ldr r2, _081A20A8
|
|
bl AddTextPrinterParameterized
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
cmp r4, #9
|
|
bls _081A1FC4
|
|
adds r0, r6, #0
|
|
movs r1, #0
|
|
movs r2, #0xa
|
|
movs r3, #4
|
|
bl PyramidPrintPrevOrCurrentStreak
|
|
ldr r1, _081A20AC
|
|
mov r8, r1
|
|
ldr r4, _081A20B0
|
|
ldr r0, [r4]
|
|
ldr r1, _081A20B4
|
|
adds r0, r0, r1
|
|
adds r0, r0, r7
|
|
ldrh r2, [r0]
|
|
movs r0, #6
|
|
str r0, [sp]
|
|
mov r0, r8
|
|
ldr r1, _081A20B8
|
|
movs r3, #0xa
|
|
bl PrintTwoStrings
|
|
ldr r5, _081A20BC
|
|
ldr r0, _081A20C0
|
|
mov sb, r0
|
|
ldr r0, [r4]
|
|
ldr r1, _081A20C4
|
|
adds r0, r0, r1
|
|
adds r0, r0, r7
|
|
ldrh r2, [r0]
|
|
movs r0, #8
|
|
str r0, [sp]
|
|
adds r0, r5, #0
|
|
mov r1, sb
|
|
movs r3, #0xa
|
|
bl PrintTwoStrings
|
|
adds r0, r6, #0
|
|
movs r1, #1
|
|
movs r2, #0xa
|
|
movs r3, #0xc
|
|
bl PyramidPrintPrevOrCurrentStreak
|
|
ldr r0, [r4]
|
|
ldr r1, _081A20C8
|
|
adds r0, r0, r1
|
|
adds r0, r0, r7
|
|
ldrh r2, [r0]
|
|
movs r0, #0xe
|
|
str r0, [sp]
|
|
mov r0, r8
|
|
ldr r1, _081A20B8
|
|
movs r3, #0xa
|
|
bl PrintTwoStrings
|
|
ldr r0, [r4]
|
|
ldr r1, _081A20CC
|
|
adds r0, r0, r1
|
|
adds r0, r0, r7
|
|
ldrh r2, [r0]
|
|
movs r0, #0x10
|
|
str r0, [sp]
|
|
adds r0, r5, #0
|
|
mov r1, sb
|
|
movs r3, #0xa
|
|
bl PrintTwoStrings
|
|
mov r1, sl
|
|
ldrb r0, [r1]
|
|
bl PutWindowTilemap
|
|
mov r1, sl
|
|
ldrb r0, [r1]
|
|
movs r1, #3
|
|
bl CopyWindowToVram
|
|
add sp, #0xc
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A2094: .4byte 0x02021C7C
|
|
_081A2098: .4byte 0x085DD363
|
|
_081A209C: .4byte 0x0203A840
|
|
_081A20A0: .4byte 0x085DD40E
|
|
_081A20A4: .4byte 0x085DD415
|
|
_081A20A8: .4byte 0x085DD2E8
|
|
_081A20AC: .4byte 0x085DD42A
|
|
_081A20B0: .4byte 0x03005AF0
|
|
_081A20B4: .4byte 0x00000D14
|
|
_081A20B8: .4byte 0x085DD447
|
|
_081A20BC: .4byte 0x085DD442
|
|
_081A20C0: .4byte 0x085DD44D
|
|
_081A20C4: .4byte 0x00000D1C
|
|
_081A20C8: .4byte 0x00000D16
|
|
_081A20CC: .4byte 0x00000D1E
|
|
thumb_func_end ShowDomeResultsWindow
|
|
|
|
thumb_func_start PalacePrintStreak
|
|
PalacePrintStreak: @ 0x081A20D0
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
sub sp, #0xc
|
|
mov ip, r0
|
|
lsls r1, r1, #0x10
|
|
lsrs r6, r1, #0x10
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
mov r8, r2
|
|
lsls r3, r3, #0x18
|
|
ldr r0, _081A2154
|
|
mov sb, r0
|
|
ldrb r0, [r0]
|
|
lsls r4, r2, #0x1b
|
|
lsrs r4, r4, #0x18
|
|
lsrs r3, r3, #0x15
|
|
adds r3, #2
|
|
lsls r3, r3, #0x18
|
|
lsrs r5, r3, #0x18
|
|
str r5, [sp]
|
|
movs r7, #0
|
|
str r7, [sp, #4]
|
|
str r7, [sp, #8]
|
|
movs r1, #1
|
|
mov r2, ip
|
|
adds r3, r4, #0
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, _081A2158
|
|
cmp r6, r0
|
|
bls _081A2114
|
|
adds r6, r0, #0
|
|
_081A2114:
|
|
ldr r0, _081A215C
|
|
adds r1, r6, #0
|
|
movs r2, #1
|
|
movs r3, #4
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r4, _081A2160
|
|
ldr r1, _081A2164
|
|
adds r0, r4, #0
|
|
bl StringExpandPlaceholders
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
mov r3, r8
|
|
adds r3, #6
|
|
lsls r3, r3, #0x1b
|
|
lsrs r3, r3, #0x18
|
|
str r5, [sp]
|
|
str r7, [sp, #4]
|
|
str r7, [sp, #8]
|
|
movs r1, #1
|
|
adds r2, r4, #0
|
|
bl AddTextPrinterParameterized
|
|
add sp, #0xc
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A2154: .4byte 0x0203A840
|
|
_081A2158: .4byte 0x0000270F
|
|
_081A215C: .4byte 0x02021C40
|
|
_081A2160: .4byte 0x02021C7C
|
|
_081A2164: .4byte 0x085DD41D
|
|
thumb_func_end PalacePrintStreak
|
|
|
|
thumb_func_start PalacePrintRecordStreak
|
|
PalacePrintRecordStreak: @ 0x081A2168
|
|
push {r4, lr}
|
|
lsls r0, r0, #0x18
|
|
lsls r1, r1, #0x18
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
ldr r4, _081A2198
|
|
ldr r4, [r4]
|
|
lsrs r1, r1, #0x17
|
|
lsrs r0, r0, #0x16
|
|
adds r1, r1, r0
|
|
movs r0, #0xdd
|
|
lsls r0, r0, #4
|
|
adds r4, r4, r0
|
|
adds r4, r4, r1
|
|
ldrh r1, [r4]
|
|
ldr r0, _081A219C
|
|
bl PalacePrintStreak
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A2198: .4byte 0x03005AF0
|
|
_081A219C: .4byte 0x085DD42A
|
|
thumb_func_end PalacePrintRecordStreak
|
|
|
|
thumb_func_start FactoryGetRentsCount
|
|
FactoryGetRentsCount: @ 0x081A21A0
|
|
push {lr}
|
|
lsls r0, r0, #0x18
|
|
lsls r1, r1, #0x18
|
|
ldr r2, _081A21C4
|
|
ldr r2, [r2]
|
|
lsrs r1, r1, #0x17
|
|
lsrs r0, r0, #0x16
|
|
adds r1, r1, r0
|
|
ldr r0, _081A21C8
|
|
adds r2, r2, r0
|
|
adds r2, r2, r1
|
|
ldrh r0, [r2]
|
|
ldr r1, _081A21CC
|
|
cmp r0, r1
|
|
bls _081A21C0
|
|
adds r0, r1, #0
|
|
_081A21C0:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_081A21C4: .4byte 0x03005AF0
|
|
_081A21C8: .4byte 0x00000DC8
|
|
_081A21CC: .4byte 0x0000270F
|
|
thumb_func_end FactoryGetRentsCount
|
|
|
|
thumb_func_start ArenaPrintPrevOrCurrentStreak
|
|
ArenaPrintPrevOrCurrentStreak: @ 0x081A21D0
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
lsls r1, r1, #0x18
|
|
lsrs r5, r1, #0x18
|
|
lsls r2, r2, #0x18
|
|
lsrs r7, r2, #0x18
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
mov r8, r3
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl FactoryGetRentsCount
|
|
lsls r0, r0, #0x10
|
|
lsrs r6, r0, #0x10
|
|
cmp r4, #0
|
|
beq _081A21FC
|
|
cmp r4, #1
|
|
beq _081A2208
|
|
_081A21FC:
|
|
cmp r5, #0
|
|
beq _081A2204
|
|
movs r0, #0x20
|
|
b _081A2216
|
|
_081A2204:
|
|
movs r0, #0x10
|
|
b _081A2216
|
|
_081A2208:
|
|
cmp r5, #0
|
|
beq _081A2212
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0x10
|
|
b _081A2216
|
|
_081A2212:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xf
|
|
_081A2216:
|
|
bl sub_081A1ACC
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
bne _081A2234
|
|
ldr r0, _081A2230
|
|
adds r1, r6, #0
|
|
adds r2, r7, #0
|
|
mov r3, r8
|
|
bl PalacePrintStreak
|
|
b _081A2240
|
|
.align 2, 0
|
|
_081A2230: .4byte 0x085DD425
|
|
_081A2234:
|
|
ldr r0, _081A224C
|
|
adds r1, r6, #0
|
|
adds r2, r7, #0
|
|
mov r3, r8
|
|
bl PalacePrintStreak
|
|
_081A2240:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A224C: .4byte 0x085DD42F
|
|
thumb_func_end ArenaPrintPrevOrCurrentStreak
|
|
|
|
thumb_func_start ShowPalaceResultsWindow
|
|
ShowPalaceResultsWindow: @ 0x081A2250
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
lsls r0, r0, #0x18
|
|
lsrs r7, r0, #0x18
|
|
ldr r4, _081A2280
|
|
ldr r0, _081A2284
|
|
bl AddWindow
|
|
strb r0, [r4]
|
|
ldrb r0, [r4]
|
|
movs r1, #0
|
|
bl ClearStdWindowAndFrame
|
|
ldrb r0, [r4]
|
|
movs r1, #0x11
|
|
bl FillWindowPixelBuffer
|
|
cmp r7, #0
|
|
bne _081A2290
|
|
ldr r0, _081A2288
|
|
ldr r1, _081A228C
|
|
bl StringExpandPlaceholders
|
|
b _081A2298
|
|
.align 2, 0
|
|
_081A2280: .4byte 0x0203A840
|
|
_081A2284: .4byte 0x085DD2B0
|
|
_081A2288: .4byte 0x02021C7C
|
|
_081A228C: .4byte 0x085DD37B
|
|
_081A2290:
|
|
ldr r0, _081A2348
|
|
ldr r1, _081A234C
|
|
bl StringExpandPlaceholders
|
|
_081A2298:
|
|
ldr r5, _081A2350
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A2348
|
|
movs r1, #0x12
|
|
str r1, [sp]
|
|
movs r4, #0
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #0x10
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A2354
|
|
movs r1, #0x32
|
|
str r1, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #0x10
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A2358
|
|
movs r1, #0x62
|
|
str r1, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #0x10
|
|
bl AddTextPrinterParameterized
|
|
movs r5, #0
|
|
_081A22DA:
|
|
ldr r6, _081A2350
|
|
ldrb r0, [r6]
|
|
lsls r3, r4, #1
|
|
adds r3, r3, r4
|
|
lsls r3, r3, #0x1b
|
|
lsrs r3, r3, #0x18
|
|
movs r1, #0x52
|
|
str r1, [sp]
|
|
str r5, [sp, #4]
|
|
str r5, [sp, #8]
|
|
movs r1, #1
|
|
ldr r2, _081A235C
|
|
bl AddTextPrinterParameterized
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
cmp r4, #0xa
|
|
bls _081A22DA
|
|
adds r0, r7, #0
|
|
movs r1, #0
|
|
movs r2, #0xb
|
|
movs r3, #6
|
|
bl ArenaPrintPrevOrCurrentStreak
|
|
adds r0, r7, #0
|
|
movs r1, #0
|
|
movs r2, #0xb
|
|
movs r3, #8
|
|
bl PalacePrintRecordStreak
|
|
adds r0, r7, #0
|
|
movs r1, #1
|
|
movs r2, #0xb
|
|
movs r3, #0xc
|
|
bl ArenaPrintPrevOrCurrentStreak
|
|
adds r0, r7, #0
|
|
movs r1, #1
|
|
movs r2, #0xb
|
|
movs r3, #0xe
|
|
bl PalacePrintRecordStreak
|
|
ldrb r0, [r6]
|
|
bl PutWindowTilemap
|
|
ldrb r0, [r6]
|
|
movs r1, #3
|
|
bl CopyWindowToVram
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A2348: .4byte 0x02021C7C
|
|
_081A234C: .4byte 0x085DD391
|
|
_081A2350: .4byte 0x0203A840
|
|
_081A2354: .4byte 0x085DD40E
|
|
_081A2358: .4byte 0x085DD415
|
|
_081A235C: .4byte 0x085DD2E8
|
|
thumb_func_end ShowPalaceResultsWindow
|
|
|
|
thumb_func_start ArenaGetWinStreak
|
|
ArenaGetWinStreak: @ 0x081A2360
|
|
push {lr}
|
|
lsls r0, r0, #0x18
|
|
ldr r1, _081A2380
|
|
ldr r1, [r1]
|
|
lsrs r0, r0, #0x17
|
|
ldr r2, _081A2384
|
|
adds r1, r1, r2
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
ldr r1, _081A2388
|
|
cmp r0, r1
|
|
bls _081A237A
|
|
adds r0, r1, #0
|
|
_081A237A:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_081A2380: .4byte 0x03005AF0
|
|
_081A2384: .4byte 0x00000E04
|
|
_081A2388: .4byte 0x0000270F
|
|
thumb_func_end ArenaGetWinStreak
|
|
|
|
thumb_func_start PikePrintCleared
|
|
PikePrintCleared: @ 0x081A238C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0xc
|
|
mov sl, r0
|
|
adds r7, r1, #0
|
|
adds r6, r2, #0
|
|
adds r5, r3, #0
|
|
ldr r4, [sp, #0x2c]
|
|
lsls r6, r6, #0x10
|
|
lsrs r6, r6, #0x10
|
|
lsls r5, r5, #0x18
|
|
lsrs r5, r5, #0x18
|
|
lsls r4, r4, #0x18
|
|
ldr r0, _081A2414
|
|
mov sb, r0
|
|
ldrb r0, [r0]
|
|
lsls r3, r5, #0x1b
|
|
lsrs r3, r3, #0x18
|
|
lsrs r4, r4, #0x15
|
|
adds r4, #2
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
str r4, [sp]
|
|
movs r1, #0
|
|
mov r8, r1
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
movs r1, #1
|
|
mov r2, sl
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, _081A2418
|
|
adds r1, r6, #0
|
|
movs r2, #1
|
|
movs r3, #4
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r6, _081A241C
|
|
adds r0, r6, #0
|
|
adds r1, r7, #0
|
|
bl StringExpandPlaceholders
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
adds r5, #5
|
|
lsls r5, r5, #0x1b
|
|
lsrs r5, r5, #0x18
|
|
str r4, [sp]
|
|
mov r1, r8
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
movs r1, #1
|
|
adds r2, r6, #0
|
|
adds r3, r5, #0
|
|
bl AddTextPrinterParameterized
|
|
add sp, #0xc
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A2414: .4byte 0x0203A840
|
|
_081A2418: .4byte 0x02021C40
|
|
_081A241C: .4byte 0x02021C7C
|
|
thumb_func_end PikePrintCleared
|
|
|
|
thumb_func_start PikePrintPrevOrCurrentStreak
|
|
PikePrintPrevOrCurrentStreak: @ 0x081A2420
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #4
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
lsls r1, r1, #0x18
|
|
lsrs r7, r1, #0x18
|
|
lsls r2, r2, #0x18
|
|
lsrs r5, r2, #0x18
|
|
adds r0, r4, #0
|
|
bl ArenaGetWinStreak
|
|
lsls r0, r0, #0x10
|
|
lsrs r6, r0, #0x10
|
|
cmp r4, #0
|
|
beq _081A2446
|
|
movs r0, #0x80
|
|
lsls r0, r0, #4
|
|
b _081A244A
|
|
_081A2446:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #3
|
|
_081A244A:
|
|
bl sub_081A1ACC
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
bne _081A2470
|
|
ldr r0, _081A2468
|
|
ldr r1, _081A246C
|
|
str r5, [sp]
|
|
adds r2, r6, #0
|
|
adds r3, r7, #0
|
|
bl PrintTwoStrings
|
|
b _081A247E
|
|
.align 2, 0
|
|
_081A2468: .4byte 0x085DD425
|
|
_081A246C: .4byte 0x085DD458
|
|
_081A2470:
|
|
ldr r0, _081A2488
|
|
ldr r1, _081A248C
|
|
str r5, [sp]
|
|
adds r2, r6, #0
|
|
adds r3, r7, #0
|
|
bl PrintTwoStrings
|
|
_081A247E:
|
|
add sp, #4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A2488: .4byte 0x085DD42F
|
|
_081A248C: .4byte 0x085DD458
|
|
thumb_func_end PikePrintPrevOrCurrentStreak
|
|
|
|
thumb_func_start ShowPikeResultsWindow
|
|
ShowPikeResultsWindow: @ 0x081A2490
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
sub sp, #0xc
|
|
ldr r5, _081A25BC
|
|
ldr r0, _081A25C0
|
|
bl AddWindow
|
|
strb r0, [r5]
|
|
ldrb r0, [r5]
|
|
movs r1, #0
|
|
bl ClearStdWindowAndFrame
|
|
ldrb r0, [r5]
|
|
movs r1, #0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r6, _081A25C4
|
|
ldr r1, _081A25C8
|
|
adds r0, r6, #0
|
|
bl StringExpandPlaceholders
|
|
ldrb r0, [r5]
|
|
movs r1, #2
|
|
str r1, [sp]
|
|
movs r4, #0
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
adds r2, r6, #0
|
|
movs r3, #0x28
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A25CC
|
|
movs r1, #0x22
|
|
str r1, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #8
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A25D0
|
|
movs r1, #0x62
|
|
str r1, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #8
|
|
bl AddTextPrinterParameterized
|
|
movs r5, #0
|
|
_081A24FE:
|
|
ldr r7, _081A25BC
|
|
ldrb r0, [r7]
|
|
lsls r3, r4, #1
|
|
adds r3, r3, r4
|
|
lsls r3, r3, #0x1b
|
|
lsrs r3, r3, #0x18
|
|
movs r1, #0x52
|
|
str r1, [sp]
|
|
str r5, [sp, #4]
|
|
str r5, [sp, #8]
|
|
movs r1, #1
|
|
ldr r2, _081A25D4
|
|
bl AddTextPrinterParameterized
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
cmp r4, #0xa
|
|
bls _081A24FE
|
|
movs r0, #0
|
|
movs r1, #0xb
|
|
movs r2, #4
|
|
bl PikePrintPrevOrCurrentStreak
|
|
ldr r0, _081A25D8
|
|
mov r8, r0
|
|
ldr r1, _081A25DC
|
|
mov sb, r1
|
|
ldr r4, _081A25E0
|
|
ldr r0, [r4]
|
|
ldr r1, _081A25E4
|
|
adds r0, r0, r1
|
|
ldrh r2, [r0]
|
|
movs r0, #6
|
|
str r0, [sp]
|
|
mov r0, r8
|
|
mov r1, sb
|
|
movs r3, #0xb
|
|
bl PikePrintCleared
|
|
ldr r5, _081A25E8
|
|
ldr r6, _081A25EC
|
|
ldr r0, [r4]
|
|
ldr r1, _081A25F0
|
|
adds r0, r0, r1
|
|
ldrh r2, [r0]
|
|
movs r0, #8
|
|
str r0, [sp]
|
|
adds r0, r5, #0
|
|
adds r1, r6, #0
|
|
movs r3, #0xb
|
|
bl PikePrintCleared
|
|
movs r0, #1
|
|
movs r1, #0xb
|
|
movs r2, #0xc
|
|
bl PikePrintPrevOrCurrentStreak
|
|
ldr r0, [r4]
|
|
ldr r1, _081A25F4
|
|
adds r0, r0, r1
|
|
ldrh r2, [r0]
|
|
movs r0, #0xe
|
|
str r0, [sp]
|
|
mov r0, r8
|
|
mov r1, sb
|
|
movs r3, #0xb
|
|
bl PikePrintCleared
|
|
ldr r0, [r4]
|
|
ldr r1, _081A25F8
|
|
adds r0, r0, r1
|
|
ldrh r2, [r0]
|
|
movs r0, #0x10
|
|
str r0, [sp]
|
|
adds r0, r5, #0
|
|
adds r1, r6, #0
|
|
movs r3, #0xb
|
|
bl PikePrintCleared
|
|
ldrb r0, [r7]
|
|
bl PutWindowTilemap
|
|
ldrb r0, [r7]
|
|
movs r1, #3
|
|
bl CopyWindowToVram
|
|
add sp, #0xc
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A25BC: .4byte 0x0203A840
|
|
_081A25C0: .4byte 0x085DD2B8
|
|
_081A25C4: .4byte 0x02021C7C
|
|
_081A25C8: .4byte 0x085DD3A6
|
|
_081A25CC: .4byte 0x085DD40E
|
|
_081A25D0: .4byte 0x085DD415
|
|
_081A25D4: .4byte 0x085DD2E8
|
|
_081A25D8: .4byte 0x085DD42A
|
|
_081A25DC: .4byte 0x085DD458
|
|
_081A25E0: .4byte 0x03005AF0
|
|
_081A25E4: .4byte 0x00000E08
|
|
_081A25E8: .4byte 0x085DD442
|
|
_081A25EC: .4byte 0x085DD461
|
|
_081A25F0: .4byte 0x00000E0C
|
|
_081A25F4: .4byte 0x00000E0A
|
|
_081A25F8: .4byte 0x00000E0E
|
|
thumb_func_end ShowPikeResultsWindow
|
|
|
|
thumb_func_start ArenaPrintStreak
|
|
ArenaPrintStreak: @ 0x081A25FC
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
sub sp, #0xc
|
|
mov ip, r0
|
|
lsls r1, r1, #0x10
|
|
lsrs r6, r1, #0x10
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
mov r8, r2
|
|
lsls r3, r3, #0x18
|
|
ldr r0, _081A2684
|
|
mov sb, r0
|
|
ldrb r0, [r0]
|
|
lsls r4, r2, #0x1b
|
|
lsrs r4, r4, #0x18
|
|
lsrs r3, r3, #0x15
|
|
adds r3, #2
|
|
lsls r3, r3, #0x18
|
|
lsrs r5, r3, #0x18
|
|
str r5, [sp]
|
|
movs r7, #0
|
|
str r7, [sp, #4]
|
|
str r7, [sp, #8]
|
|
movs r1, #1
|
|
mov r2, ip
|
|
adds r3, r4, #0
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, _081A2688
|
|
cmp r6, r0
|
|
bls _081A2640
|
|
adds r6, r0, #0
|
|
_081A2640:
|
|
ldr r0, _081A268C
|
|
adds r1, r6, #0
|
|
movs r2, #1
|
|
movs r3, #4
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r4, _081A2690
|
|
ldr r1, _081A2694
|
|
adds r0, r4, #0
|
|
bl StringExpandPlaceholders
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
mov r1, r8
|
|
lsls r3, r1, #0x1b
|
|
movs r1, #0xc0
|
|
lsls r1, r1, #0x16
|
|
adds r3, r3, r1
|
|
lsrs r3, r3, #0x18
|
|
str r5, [sp]
|
|
str r7, [sp, #4]
|
|
str r7, [sp, #8]
|
|
movs r1, #1
|
|
adds r2, r4, #0
|
|
bl AddTextPrinterParameterized
|
|
add sp, #0xc
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A2684: .4byte 0x0203A840
|
|
_081A2688: .4byte 0x0000270F
|
|
_081A268C: .4byte 0x02021C40
|
|
_081A2690: .4byte 0x02021C7C
|
|
_081A2694: .4byte 0x085DD46A
|
|
thumb_func_end ArenaPrintStreak
|
|
|
|
thumb_func_start ArenaPrintRecordStreak
|
|
ArenaPrintRecordStreak: @ 0x081A2698
|
|
push {r4, lr}
|
|
adds r4, r1, #0
|
|
adds r3, r2, #0
|
|
lsls r0, r0, #0x18
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
ldr r1, _081A26C4
|
|
ldr r1, [r1]
|
|
lsrs r0, r0, #0x17
|
|
ldr r2, _081A26C8
|
|
adds r1, r1, r2
|
|
adds r1, r1, r0
|
|
ldrh r1, [r1]
|
|
ldr r0, _081A26CC
|
|
adds r2, r4, #0
|
|
bl ArenaPrintStreak
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A26C4: .4byte 0x03005AF0
|
|
_081A26C8: .4byte 0x00000DDE
|
|
_081A26CC: .4byte 0x085DD42A
|
|
thumb_func_end ArenaPrintRecordStreak
|
|
|
|
thumb_func_start PikeGetWinStreak
|
|
PikeGetWinStreak: @ 0x081A26D0
|
|
push {lr}
|
|
lsls r0, r0, #0x18
|
|
ldr r1, _081A26F0
|
|
ldr r1, [r1]
|
|
lsrs r0, r0, #0x17
|
|
ldr r2, _081A26F4
|
|
adds r1, r1, r2
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
ldr r1, _081A26F8
|
|
cmp r0, r1
|
|
bls _081A26EA
|
|
adds r0, r1, #0
|
|
_081A26EA:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_081A26F0: .4byte 0x03005AF0
|
|
_081A26F4: .4byte 0x00000DDA
|
|
_081A26F8: .4byte 0x0000270F
|
|
thumb_func_end PikeGetWinStreak
|
|
|
|
thumb_func_start sub_081A26FC
|
|
sub_081A26FC: @ 0x081A26FC
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
lsls r1, r1, #0x18
|
|
lsrs r6, r1, #0x18
|
|
lsls r2, r2, #0x18
|
|
lsrs r7, r2, #0x18
|
|
adds r0, r4, #0
|
|
bl PikeGetWinStreak
|
|
lsls r0, r0, #0x10
|
|
lsrs r5, r0, #0x10
|
|
cmp r4, #0
|
|
beq _081A271E
|
|
movs r0, #0x80
|
|
b _081A2720
|
|
_081A271E:
|
|
movs r0, #0x40
|
|
_081A2720:
|
|
bl sub_081A1ACC
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
bne _081A2740
|
|
ldr r0, _081A273C
|
|
adds r1, r5, #0
|
|
adds r2, r6, #0
|
|
adds r3, r7, #0
|
|
bl ArenaPrintStreak
|
|
b _081A274C
|
|
.align 2, 0
|
|
_081A273C: .4byte 0x085DD425
|
|
_081A2740:
|
|
ldr r0, _081A2754
|
|
adds r1, r5, #0
|
|
adds r2, r6, #0
|
|
adds r3, r7, #0
|
|
bl ArenaPrintStreak
|
|
_081A274C:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A2754: .4byte 0x085DD42F
|
|
thumb_func_end sub_081A26FC
|
|
|
|
thumb_func_start ShowArenaResultsWindow
|
|
ShowArenaResultsWindow: @ 0x081A2758
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
ldr r4, _081A2828
|
|
ldr r0, _081A282C
|
|
bl AddWindow
|
|
strb r0, [r4]
|
|
ldrb r0, [r4]
|
|
movs r1, #0
|
|
bl ClearStdWindowAndFrame
|
|
ldrb r0, [r4]
|
|
movs r1, #0x11
|
|
bl FillWindowPixelBuffer
|
|
movs r4, #0
|
|
movs r5, #0
|
|
_081A277A:
|
|
ldr r6, _081A2828
|
|
ldrb r0, [r6]
|
|
lsls r3, r4, #1
|
|
adds r3, r3, r4
|
|
lsls r3, r3, #0x1b
|
|
lsrs r3, r3, #0x18
|
|
movs r1, #0x52
|
|
str r1, [sp]
|
|
str r5, [sp, #4]
|
|
str r5, [sp, #8]
|
|
movs r1, #1
|
|
ldr r2, _081A2830
|
|
bl AddTextPrinterParameterized
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
cmp r4, #9
|
|
bls _081A277A
|
|
ldr r5, _081A2834
|
|
ldr r1, _081A2838
|
|
adds r0, r5, #0
|
|
bl StringExpandPlaceholders
|
|
ldrb r0, [r6]
|
|
movs r1, #0x10
|
|
str r1, [sp]
|
|
movs r4, #0
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
adds r2, r5, #0
|
|
movs r3, #0x10
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r6]
|
|
ldr r2, _081A283C
|
|
movs r1, #0x30
|
|
str r1, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #0x10
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r6]
|
|
ldr r2, _081A2840
|
|
movs r1, #0x60
|
|
str r1, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #0x10
|
|
bl AddTextPrinterParameterized
|
|
movs r0, #0
|
|
movs r1, #0xb
|
|
movs r2, #6
|
|
bl sub_081A26FC
|
|
movs r0, #0
|
|
movs r1, #0xb
|
|
movs r2, #8
|
|
bl ArenaPrintRecordStreak
|
|
movs r0, #1
|
|
movs r1, #0xb
|
|
movs r2, #0xc
|
|
bl sub_081A26FC
|
|
movs r0, #1
|
|
movs r1, #0xb
|
|
movs r2, #0xe
|
|
bl ArenaPrintRecordStreak
|
|
ldrb r0, [r6]
|
|
bl PutWindowTilemap
|
|
ldrb r0, [r6]
|
|
movs r1, #3
|
|
bl CopyWindowToVram
|
|
add sp, #0xc
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A2828: .4byte 0x0203A840
|
|
_081A282C: .4byte 0x085DD2C0
|
|
_081A2830: .4byte 0x085DD2E8
|
|
_081A2834: .4byte 0x02021C7C
|
|
_081A2838: .4byte 0x085DD3B7
|
|
_081A283C: .4byte 0x085DD40E
|
|
_081A2840: .4byte 0x085DD415
|
|
thumb_func_end ShowArenaResultsWindow
|
|
|
|
thumb_func_start FactoryPrintStreak
|
|
FactoryPrintStreak: @ 0x081A2844
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x10
|
|
mov ip, r0
|
|
ldr r4, [sp, #0x30]
|
|
lsls r1, r1, #0x10
|
|
lsrs r6, r1, #0x10
|
|
lsls r2, r2, #0x10
|
|
lsrs r2, r2, #0x10
|
|
str r2, [sp, #0xc]
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
adds r5, r3, #0
|
|
lsls r4, r4, #0x18
|
|
ldr r0, _081A290C
|
|
mov sb, r0
|
|
ldrb r0, [r0]
|
|
lsls r3, r5, #0x1b
|
|
lsrs r3, r3, #0x18
|
|
lsrs r4, r4, #0x15
|
|
adds r4, #2
|
|
lsls r4, r4, #0x18
|
|
lsrs r7, r4, #0x18
|
|
str r7, [sp]
|
|
movs r1, #0
|
|
mov r8, r1
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
movs r1, #1
|
|
mov r2, ip
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, _081A2910
|
|
cmp r6, r0
|
|
bls _081A2892
|
|
adds r6, r0, #0
|
|
_081A2892:
|
|
ldr r0, _081A2914
|
|
mov sl, r0
|
|
adds r1, r6, #0
|
|
movs r2, #1
|
|
movs r3, #4
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r4, _081A2918
|
|
ldr r1, _081A291C
|
|
adds r0, r4, #0
|
|
bl StringExpandPlaceholders
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
lsls r3, r5, #0x1b
|
|
movs r1, #0xc0
|
|
lsls r1, r1, #0x16
|
|
adds r3, r3, r1
|
|
lsrs r3, r3, #0x18
|
|
str r7, [sp]
|
|
mov r1, r8
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
movs r1, #1
|
|
adds r2, r4, #0
|
|
bl AddTextPrinterParameterized
|
|
mov r0, sl
|
|
ldr r1, [sp, #0xc]
|
|
movs r2, #1
|
|
movs r3, #4
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r1, _081A2920
|
|
adds r0, r4, #0
|
|
bl StringExpandPlaceholders
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
lsls r3, r5, #0x1b
|
|
movs r1, #0x98
|
|
lsls r1, r1, #0x18
|
|
adds r3, r3, r1
|
|
lsrs r3, r3, #0x18
|
|
str r7, [sp]
|
|
mov r1, r8
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
movs r1, #1
|
|
adds r2, r4, #0
|
|
bl AddTextPrinterParameterized
|
|
add sp, #0x10
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A290C: .4byte 0x0203A840
|
|
_081A2910: .4byte 0x0000270F
|
|
_081A2914: .4byte 0x02021C40
|
|
_081A2918: .4byte 0x02021C7C
|
|
_081A291C: .4byte 0x085DD41D
|
|
_081A2920: .4byte 0x085DD471
|
|
thumb_func_end FactoryPrintStreak
|
|
|
|
thumb_func_start PyramidPrintRecordStreak
|
|
PyramidPrintRecordStreak: @ 0x081A2924
|
|
push {r4, r5, lr}
|
|
sub sp, #4
|
|
adds r4, r2, #0
|
|
lsls r0, r0, #0x18
|
|
lsls r1, r1, #0x18
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
ldr r2, _081A2964
|
|
ldr r2, [r2]
|
|
lsrs r1, r1, #0x17
|
|
lsrs r0, r0, #0x16
|
|
adds r1, r1, r0
|
|
ldr r5, _081A2968
|
|
adds r0, r2, r5
|
|
adds r0, r0, r1
|
|
ldrh r5, [r0]
|
|
ldr r0, _081A296C
|
|
adds r2, r2, r0
|
|
adds r2, r2, r1
|
|
ldrh r2, [r2]
|
|
ldr r0, _081A2970
|
|
str r3, [sp]
|
|
adds r1, r5, #0
|
|
adds r3, r4, #0
|
|
bl FactoryPrintStreak
|
|
add sp, #4
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A2964: .4byte 0x03005AF0
|
|
_081A2968: .4byte 0x00000DEA
|
|
_081A296C: .4byte 0x00000DFA
|
|
_081A2970: .4byte 0x085DD42A
|
|
thumb_func_end PyramidPrintRecordStreak
|
|
|
|
thumb_func_start FactoryGetWinStreak
|
|
FactoryGetWinStreak: @ 0x081A2974
|
|
push {lr}
|
|
lsls r0, r0, #0x18
|
|
lsls r1, r1, #0x18
|
|
ldr r2, _081A2998
|
|
ldr r2, [r2]
|
|
lsrs r1, r1, #0x17
|
|
lsrs r0, r0, #0x16
|
|
adds r1, r1, r0
|
|
ldr r0, _081A299C
|
|
adds r2, r2, r0
|
|
adds r2, r2, r1
|
|
ldrh r0, [r2]
|
|
ldr r1, _081A29A0
|
|
cmp r0, r1
|
|
bls _081A2994
|
|
adds r0, r1, #0
|
|
_081A2994:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_081A2998: .4byte 0x03005AF0
|
|
_081A299C: .4byte 0x00000DE2
|
|
_081A29A0: .4byte 0x0000270F
|
|
thumb_func_end FactoryGetWinStreak
|
|
|
|
thumb_func_start PalaceGetWinStreak
|
|
PalaceGetWinStreak: @ 0x081A29A4
|
|
push {lr}
|
|
lsls r0, r0, #0x18
|
|
lsls r1, r1, #0x18
|
|
ldr r2, _081A29C8
|
|
ldr r2, [r2]
|
|
lsrs r1, r1, #0x17
|
|
lsrs r0, r0, #0x16
|
|
adds r1, r1, r0
|
|
ldr r0, _081A29CC
|
|
adds r2, r2, r0
|
|
adds r2, r2, r1
|
|
ldrh r0, [r2]
|
|
ldr r1, _081A29D0
|
|
cmp r0, r1
|
|
bls _081A29C4
|
|
adds r0, r1, #0
|
|
_081A29C4:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_081A29C8: .4byte 0x03005AF0
|
|
_081A29CC: .4byte 0x00000DF2
|
|
_081A29D0: .4byte 0x0000270F
|
|
thumb_func_end PalaceGetWinStreak
|
|
|
|
thumb_func_start PalacePrintPrevOrCurrentStreak
|
|
PalacePrintPrevOrCurrentStreak: @ 0x081A29D4
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
sub sp, #4
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
lsls r1, r1, #0x18
|
|
lsrs r5, r1, #0x18
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
mov sb, r2
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
mov r8, r3
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl FactoryGetWinStreak
|
|
lsls r0, r0, #0x10
|
|
lsrs r7, r0, #0x10
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl PalaceGetWinStreak
|
|
lsls r0, r0, #0x10
|
|
lsrs r6, r0, #0x10
|
|
cmp r4, #0
|
|
beq _081A2A12
|
|
cmp r4, #1
|
|
beq _081A2A22
|
|
_081A2A12:
|
|
cmp r5, #0
|
|
beq _081A2A1C
|
|
movs r0, #0x80
|
|
lsls r0, r0, #2
|
|
b _081A2A30
|
|
_081A2A1C:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #1
|
|
b _081A2A30
|
|
_081A2A22:
|
|
cmp r5, #0
|
|
beq _081A2A2C
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0x12
|
|
b _081A2A30
|
|
_081A2A2C:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0x11
|
|
_081A2A30:
|
|
bl sub_081A1ACC
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
bne _081A2A54
|
|
ldr r0, _081A2A50
|
|
mov r1, r8
|
|
str r1, [sp]
|
|
adds r1, r7, #0
|
|
adds r2, r6, #0
|
|
mov r3, sb
|
|
bl FactoryPrintStreak
|
|
b _081A2A64
|
|
.align 2, 0
|
|
_081A2A50: .4byte 0x085DD425
|
|
_081A2A54:
|
|
ldr r0, _081A2A74
|
|
mov r1, r8
|
|
str r1, [sp]
|
|
adds r1, r7, #0
|
|
adds r2, r6, #0
|
|
mov r3, sb
|
|
bl FactoryPrintStreak
|
|
_081A2A64:
|
|
add sp, #4
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A2A74: .4byte 0x085DD42F
|
|
thumb_func_end PalacePrintPrevOrCurrentStreak
|
|
|
|
thumb_func_start ShowFactoryResultsWindow
|
|
ShowFactoryResultsWindow: @ 0x081A2A78
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
lsls r0, r0, #0x18
|
|
lsrs r7, r0, #0x18
|
|
ldr r4, _081A2AA8
|
|
ldr r0, _081A2AAC
|
|
bl AddWindow
|
|
strb r0, [r4]
|
|
ldrb r0, [r4]
|
|
movs r1, #0
|
|
bl ClearStdWindowAndFrame
|
|
ldrb r0, [r4]
|
|
movs r1, #0x11
|
|
bl FillWindowPixelBuffer
|
|
cmp r7, #0
|
|
bne _081A2AB8
|
|
ldr r0, _081A2AB0
|
|
ldr r1, _081A2AB4
|
|
bl StringExpandPlaceholders
|
|
b _081A2AC0
|
|
.align 2, 0
|
|
_081A2AA8: .4byte 0x0203A840
|
|
_081A2AAC: .4byte 0x085DD2C8
|
|
_081A2AB0: .4byte 0x02021C7C
|
|
_081A2AB4: .4byte 0x085DD3CC
|
|
_081A2AB8:
|
|
ldr r0, _081A2B80
|
|
ldr r1, _081A2B84
|
|
bl StringExpandPlaceholders
|
|
_081A2AC0:
|
|
ldr r5, _081A2B88
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A2B80
|
|
movs r1, #2
|
|
str r1, [sp]
|
|
movs r4, #0
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #8
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A2B8C
|
|
movs r6, #0x22
|
|
str r6, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #8
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A2B90
|
|
str r6, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #0x80
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A2B94
|
|
movs r1, #0x62
|
|
str r1, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #8
|
|
bl AddTextPrinterParameterized
|
|
movs r5, #0
|
|
_081A2B14:
|
|
ldr r6, _081A2B88
|
|
ldrb r0, [r6]
|
|
lsls r3, r4, #1
|
|
adds r3, r3, r4
|
|
lsls r3, r3, #0x1b
|
|
lsrs r3, r3, #0x18
|
|
movs r1, #0x52
|
|
str r1, [sp]
|
|
str r5, [sp, #4]
|
|
str r5, [sp, #8]
|
|
movs r1, #1
|
|
ldr r2, _081A2B98
|
|
bl AddTextPrinterParameterized
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
cmp r4, #9
|
|
bls _081A2B14
|
|
adds r0, r7, #0
|
|
movs r1, #0
|
|
movs r2, #1
|
|
movs r3, #6
|
|
bl PalacePrintPrevOrCurrentStreak
|
|
adds r0, r7, #0
|
|
movs r1, #0
|
|
movs r2, #1
|
|
movs r3, #8
|
|
bl PyramidPrintRecordStreak
|
|
adds r0, r7, #0
|
|
movs r1, #1
|
|
movs r2, #1
|
|
movs r3, #0xe
|
|
bl PalacePrintPrevOrCurrentStreak
|
|
adds r0, r7, #0
|
|
movs r1, #1
|
|
movs r2, #1
|
|
movs r3, #0x10
|
|
bl PyramidPrintRecordStreak
|
|
ldrb r0, [r6]
|
|
bl PutWindowTilemap
|
|
ldrb r0, [r6]
|
|
movs r1, #3
|
|
bl CopyWindowToVram
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A2B80: .4byte 0x02021C7C
|
|
_081A2B84: .4byte 0x085DD3E3
|
|
_081A2B88: .4byte 0x0203A840
|
|
_081A2B8C: .4byte 0x085DD40E
|
|
_081A2B90: .4byte 0x085DD438
|
|
_081A2B94: .4byte 0x085DD415
|
|
_081A2B98: .4byte 0x085DD2E8
|
|
thumb_func_end ShowFactoryResultsWindow
|
|
|
|
thumb_func_start PyramidPrintStreak
|
|
PyramidPrintStreak: @ 0x081A2B9C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
sub sp, #0xc
|
|
mov ip, r0
|
|
lsls r1, r1, #0x10
|
|
lsrs r6, r1, #0x10
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
mov r8, r2
|
|
lsls r3, r3, #0x18
|
|
ldr r0, _081A2C24
|
|
mov sb, r0
|
|
ldrb r0, [r0]
|
|
lsls r4, r2, #0x1b
|
|
lsrs r4, r4, #0x18
|
|
lsrs r3, r3, #0x15
|
|
adds r3, #2
|
|
lsls r3, r3, #0x18
|
|
lsrs r5, r3, #0x18
|
|
str r5, [sp]
|
|
movs r7, #0
|
|
str r7, [sp, #4]
|
|
str r7, [sp, #8]
|
|
movs r1, #1
|
|
mov r2, ip
|
|
adds r3, r4, #0
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, _081A2C28
|
|
cmp r6, r0
|
|
bls _081A2BE0
|
|
adds r6, r0, #0
|
|
_081A2BE0:
|
|
ldr r0, _081A2C2C
|
|
adds r1, r6, #0
|
|
movs r2, #1
|
|
movs r3, #4
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r4, _081A2C30
|
|
ldr r1, _081A2C34
|
|
adds r0, r4, #0
|
|
bl StringExpandPlaceholders
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
mov r1, r8
|
|
lsls r3, r1, #0x1b
|
|
movs r1, #0xc0
|
|
lsls r1, r1, #0x16
|
|
adds r3, r3, r1
|
|
lsrs r3, r3, #0x18
|
|
str r5, [sp]
|
|
str r7, [sp, #4]
|
|
str r7, [sp, #8]
|
|
movs r1, #1
|
|
adds r2, r4, #0
|
|
bl AddTextPrinterParameterized
|
|
add sp, #0xc
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A2C24: .4byte 0x0203A840
|
|
_081A2C28: .4byte 0x0000270F
|
|
_081A2C2C: .4byte 0x02021C40
|
|
_081A2C30: .4byte 0x02021C7C
|
|
_081A2C34: .4byte 0x085DD476
|
|
thumb_func_end PyramidPrintStreak
|
|
|
|
thumb_func_start PyramidGetWinStreak
|
|
PyramidGetWinStreak: @ 0x081A2C38
|
|
push {r4, lr}
|
|
adds r4, r1, #0
|
|
adds r3, r2, #0
|
|
lsls r0, r0, #0x18
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
ldr r1, _081A2C64
|
|
ldr r1, [r1]
|
|
lsrs r0, r0, #0x17
|
|
ldr r2, _081A2C68
|
|
adds r1, r1, r2
|
|
adds r1, r1, r0
|
|
ldrh r1, [r1]
|
|
ldr r0, _081A2C6C
|
|
adds r2, r4, #0
|
|
bl PyramidPrintStreak
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A2C64: .4byte 0x03005AF0
|
|
_081A2C68: .4byte 0x00000E1E
|
|
_081A2C6C: .4byte 0x085DD42A
|
|
thumb_func_end PyramidGetWinStreak
|
|
|
|
thumb_func_start sub_081A2C70
|
|
sub_081A2C70: @ 0x081A2C70
|
|
push {lr}
|
|
lsls r0, r0, #0x18
|
|
ldr r1, _081A2C90
|
|
ldr r1, [r1]
|
|
lsrs r0, r0, #0x17
|
|
ldr r2, _081A2C94
|
|
adds r1, r1, r2
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
ldr r1, _081A2C98
|
|
cmp r0, r1
|
|
bls _081A2C8A
|
|
adds r0, r1, #0
|
|
_081A2C8A:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_081A2C90: .4byte 0x03005AF0
|
|
_081A2C94: .4byte 0x00000E1A
|
|
_081A2C98: .4byte 0x0000270F
|
|
thumb_func_end sub_081A2C70
|
|
|
|
thumb_func_start sub_081A2C9C
|
|
sub_081A2C9C: @ 0x081A2C9C
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
lsls r1, r1, #0x18
|
|
lsrs r6, r1, #0x18
|
|
lsls r2, r2, #0x18
|
|
lsrs r7, r2, #0x18
|
|
adds r0, r4, #0
|
|
bl sub_081A2C70
|
|
lsls r0, r0, #0x10
|
|
lsrs r5, r0, #0x10
|
|
cmp r4, #0
|
|
beq _081A2CC0
|
|
movs r0, #0x80
|
|
lsls r0, r0, #6
|
|
b _081A2CC4
|
|
_081A2CC0:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #5
|
|
_081A2CC4:
|
|
bl sub_081A1ACC
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
bne _081A2CE4
|
|
ldr r0, _081A2CE0
|
|
adds r1, r5, #0
|
|
adds r2, r6, #0
|
|
adds r3, r7, #0
|
|
bl PyramidPrintStreak
|
|
b _081A2CF0
|
|
.align 2, 0
|
|
_081A2CE0: .4byte 0x085DD425
|
|
_081A2CE4:
|
|
ldr r0, _081A2CF8
|
|
adds r1, r5, #0
|
|
adds r2, r6, #0
|
|
adds r3, r7, #0
|
|
bl PyramidPrintStreak
|
|
_081A2CF0:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A2CF8: .4byte 0x085DD42F
|
|
thumb_func_end sub_081A2C9C
|
|
|
|
thumb_func_start ShowPyramidResultsWindow
|
|
ShowPyramidResultsWindow: @ 0x081A2CFC
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
ldr r5, _081A2DC8
|
|
ldr r0, _081A2DCC
|
|
bl AddWindow
|
|
strb r0, [r5]
|
|
ldrb r0, [r5]
|
|
movs r1, #0
|
|
bl ClearStdWindowAndFrame
|
|
ldrb r0, [r5]
|
|
movs r1, #0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r6, _081A2DD0
|
|
ldr r1, _081A2DD4
|
|
adds r0, r6, #0
|
|
bl StringExpandPlaceholders
|
|
ldrb r0, [r5]
|
|
movs r1, #0x12
|
|
str r1, [sp]
|
|
movs r4, #0
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
adds r2, r6, #0
|
|
movs r3, #0x18
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A2DD8
|
|
movs r1, #0x32
|
|
str r1, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #0x10
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A2DDC
|
|
movs r1, #0x62
|
|
str r1, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #0x10
|
|
bl AddTextPrinterParameterized
|
|
movs r5, #0
|
|
_081A2D64:
|
|
ldr r6, _081A2DC8
|
|
ldrb r0, [r6]
|
|
lsls r3, r4, #1
|
|
adds r3, r3, r4
|
|
lsls r3, r3, #0x1b
|
|
lsrs r3, r3, #0x18
|
|
movs r1, #0x52
|
|
str r1, [sp]
|
|
str r5, [sp, #4]
|
|
str r5, [sp, #8]
|
|
movs r1, #1
|
|
ldr r2, _081A2DE0
|
|
bl AddTextPrinterParameterized
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
cmp r4, #0xa
|
|
bls _081A2D64
|
|
movs r0, #0
|
|
movs r1, #0xa
|
|
movs r2, #6
|
|
bl sub_081A2C9C
|
|
movs r0, #0
|
|
movs r1, #0xa
|
|
movs r2, #8
|
|
bl PyramidGetWinStreak
|
|
movs r0, #1
|
|
movs r1, #0xa
|
|
movs r2, #0xc
|
|
bl sub_081A2C9C
|
|
movs r0, #1
|
|
movs r1, #0xa
|
|
movs r2, #0xe
|
|
bl PyramidGetWinStreak
|
|
ldrb r0, [r6]
|
|
bl PutWindowTilemap
|
|
ldrb r0, [r6]
|
|
movs r1, #3
|
|
bl CopyWindowToVram
|
|
add sp, #0xc
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A2DC8: .4byte 0x0203A840
|
|
_081A2DCC: .4byte 0x085DD2D0
|
|
_081A2DD0: .4byte 0x02021C7C
|
|
_081A2DD4: .4byte 0x085DD3F9
|
|
_081A2DD8: .4byte 0x085DD40E
|
|
_081A2DDC: .4byte 0x085DD415
|
|
_081A2DE0: .4byte 0x085DD2E8
|
|
thumb_func_end ShowPyramidResultsWindow
|
|
|
|
thumb_func_start PrintHallRecords
|
|
PrintHallRecords: @ 0x081A2DE4
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0xc
|
|
ldr r5, _081A2F54
|
|
ldr r0, _081A2F58
|
|
bl AddWindow
|
|
strb r0, [r5]
|
|
ldrb r0, [r5]
|
|
movs r1, #0
|
|
bl ClearStdWindowAndFrame
|
|
ldrb r0, [r5]
|
|
movs r1, #0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, _081A2F5C
|
|
mov r8, r0
|
|
ldr r1, _081A2F60
|
|
bl StringExpandPlaceholders
|
|
ldrb r0, [r5]
|
|
movs r4, #0
|
|
str r4, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
mov r2, r8
|
|
movs r3, #0x10
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A2F64
|
|
movs r6, #0x20
|
|
str r6, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #0x48
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A2F68
|
|
str r6, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #0x70
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A2F6C
|
|
str r6, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #0x98
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A2F70
|
|
str r6, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #0xc0
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A2F74
|
|
movs r1, #0x30
|
|
str r1, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #8
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A2F78
|
|
movs r1, #0x40
|
|
str r1, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #8
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A2F7C
|
|
movs r1, #0x50
|
|
str r1, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #8
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A2F80
|
|
movs r1, #0x60
|
|
str r1, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #8
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A2F84
|
|
movs r1, #0x70
|
|
str r1, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #8
|
|
bl AddTextPrinterParameterized
|
|
movs r1, #0
|
|
mov sl, r8
|
|
_081A2EDA:
|
|
adds r2, r1, #1
|
|
mov sb, r2
|
|
lsls r0, r1, #0x1c
|
|
movs r2, #0xc0
|
|
lsls r2, r2, #0x16
|
|
adds r0, r0, r2
|
|
lsrs r0, r0, #0x18
|
|
mov r8, r0
|
|
movs r6, #0xe0
|
|
lsls r6, r6, #0x16
|
|
lsls r4, r1, #3
|
|
movs r5, #3
|
|
_081A2EF2:
|
|
ldr r0, _081A2F88
|
|
ldr r0, [r0]
|
|
ldr r1, _081A2F8C
|
|
adds r0, r0, r1
|
|
adds r0, r0, r4
|
|
ldrh r1, [r0]
|
|
mov r0, sl
|
|
movs r2, #1
|
|
movs r3, #4
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r7, _081A2F54
|
|
ldrb r0, [r7]
|
|
lsrs r3, r6, #0x18
|
|
mov r2, r8
|
|
str r2, [sp]
|
|
movs r1, #0
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
movs r1, #1
|
|
mov r2, sl
|
|
bl AddTextPrinterParameterized
|
|
movs r0, #0xa0
|
|
lsls r0, r0, #0x16
|
|
adds r6, r6, r0
|
|
adds r4, #2
|
|
subs r5, #1
|
|
cmp r5, #0
|
|
bge _081A2EF2
|
|
mov r1, sb
|
|
cmp r1, #4
|
|
ble _081A2EDA
|
|
ldrb r0, [r7]
|
|
bl PutWindowTilemap
|
|
ldrb r0, [r7]
|
|
movs r1, #3
|
|
bl CopyWindowToVram
|
|
add sp, #0xc
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A2F54: .4byte 0x0203A840
|
|
_081A2F58: .4byte 0x085DD2D8
|
|
_081A2F5C: .4byte 0x02021C7C
|
|
_081A2F60: .4byte 0x085CCEA5
|
|
_081A2F64: .4byte 0x085CCEB9
|
|
_081A2F68: .4byte 0x085CCEBC
|
|
_081A2F6C: .4byte 0x085CCEBF
|
|
_081A2F70: .4byte 0x085CCEC2
|
|
_081A2F74: .4byte 0x085CAC84
|
|
_081A2F78: .4byte 0x085CAC8A
|
|
_081A2F7C: .4byte 0x085CAC90
|
|
_081A2F80: .4byte 0x085CAC95
|
|
_081A2F84: .4byte 0x085CAC9A
|
|
_081A2F88: .4byte 0x03005AF0
|
|
_081A2F8C: .4byte 0x00000624
|
|
thumb_func_end PrintHallRecords
|
|
|
|
thumb_func_start sub_081A2F90
|
|
sub_081A2F90: @ 0x081A2F90
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0xc
|
|
ldr r0, _081A2FD0
|
|
ldr r0, [r0]
|
|
ldr r1, _081A2FD4
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1e
|
|
lsrs r5, r0, #0x1e
|
|
ldr r0, _081A2FD8
|
|
bl VarGet
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
ldr r0, _081A2FDC
|
|
bl VarGet
|
|
lsls r0, r0, #0x10
|
|
lsrs r6, r0, #0x10
|
|
cmp r4, #6
|
|
bls _081A2FC4
|
|
b _081A335E
|
|
_081A2FC4:
|
|
lsls r0, r4, #2
|
|
ldr r1, _081A2FE0
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_081A2FD0: .4byte 0x03005AF0
|
|
_081A2FD4: .4byte 0x00000CA9
|
|
_081A2FD8: .4byte 0x000040CF
|
|
_081A2FDC: .4byte 0x000040CE
|
|
_081A2FE0: .4byte 0x081A2FE4
|
|
_081A2FE4: @ jump table
|
|
.4byte _081A3000 @ case 0
|
|
.4byte _081A3138 @ case 1
|
|
.4byte _081A31A0 @ case 2
|
|
.4byte _081A3208 @ case 3
|
|
.4byte _081A3258 @ case 4
|
|
.4byte _081A32DA @ case 5
|
|
.4byte _081A3324 @ case 6
|
|
_081A3000:
|
|
ldr r2, _081A30D0
|
|
mov r8, r2
|
|
ldr r1, [r2]
|
|
lsls r3, r5, #1
|
|
lsls r4, r6, #2
|
|
adds r2, r3, r4
|
|
movs r7, #0xce
|
|
lsls r7, r7, #4
|
|
adds r0, r1, r7
|
|
adds r0, r0, r2
|
|
adds r7, #0x10
|
|
adds r1, r1, r7
|
|
adds r1, r1, r2
|
|
ldrh r0, [r0]
|
|
str r3, [sp]
|
|
str r4, [sp, #8]
|
|
ldrh r2, [r1]
|
|
cmp r0, r2
|
|
bhi _081A3028
|
|
b _081A335E
|
|
_081A3028:
|
|
strh r0, [r1]
|
|
cmp r6, #3
|
|
bne _081A309A
|
|
movs r3, #0
|
|
ldr r7, _081A30D4
|
|
mov sl, r7
|
|
lsls r0, r5, #2
|
|
str r0, [sp, #4]
|
|
mov sb, r8
|
|
movs r1, #0x25
|
|
add r1, sl
|
|
mov ip, r1
|
|
ldr r2, _081A30D8
|
|
adds r2, #8
|
|
mov r8, r2
|
|
lsls r7, r5, #3
|
|
ldr r4, _081A30DC
|
|
_081A304A:
|
|
mov r0, sb
|
|
ldr r2, [r0]
|
|
adds r0, r3, r7
|
|
adds r2, r2, r4
|
|
adds r2, r2, r0
|
|
mov r1, ip
|
|
ldrb r0, [r1]
|
|
movs r5, #1
|
|
adds r1, r5, #0
|
|
eors r1, r0
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r3, r0
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
adds r3, #1
|
|
cmp r3, #7
|
|
ble _081A304A
|
|
mov r0, sl
|
|
adds r0, #0x25
|
|
ldrb r0, [r0]
|
|
adds r1, r5, #0
|
|
eors r1, r0
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
ldr r1, _081A30D8
|
|
adds r1, #4
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, _081A30D0
|
|
ldr r2, _081A30E0
|
|
ldr r3, [sp, #4]
|
|
adds r2, r3, r2
|
|
ldr r1, [r1]
|
|
adds r1, r1, r2
|
|
bl SetTrainerId
|
|
_081A309A:
|
|
ldr r4, _081A30D0
|
|
ldr r0, [r4]
|
|
ldr r5, [sp]
|
|
ldr r7, [sp, #8]
|
|
adds r1, r5, r7
|
|
movs r7, #0xce
|
|
lsls r7, r7, #4
|
|
adds r0, r0, r7
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, #1
|
|
bhi _081A30B4
|
|
b _081A335E
|
|
_081A30B4:
|
|
bl sub_080EF330
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _081A30C0
|
|
b _081A335E
|
|
_081A30C0:
|
|
cmp r6, #1
|
|
beq _081A30FE
|
|
cmp r6, #1
|
|
bgt _081A30E4
|
|
cmp r6, #0
|
|
beq _081A30EE
|
|
b _081A335E
|
|
.align 2, 0
|
|
_081A30D0: .4byte 0x03005AF0
|
|
_081A30D4: .4byte 0x02024118
|
|
_081A30D8: .4byte 0x020226A0
|
|
_081A30DC: .4byte 0x00000EE1
|
|
_081A30E0: .4byte 0x00000EF1
|
|
_081A30E4:
|
|
cmp r6, #2
|
|
beq _081A3110
|
|
cmp r6, #3
|
|
beq _081A3124
|
|
b _081A335E
|
|
_081A30EE:
|
|
ldr r0, [r4]
|
|
adds r0, r0, r7
|
|
adds r0, r0, r5
|
|
ldrh r0, [r0]
|
|
movs r1, #1
|
|
bl sub_080EF3E0
|
|
b _081A335E
|
|
_081A30FE:
|
|
ldr r0, [r4]
|
|
adds r1, r5, #4
|
|
adds r0, r0, r7
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
movs r1, #2
|
|
bl sub_080EF3E0
|
|
b _081A335E
|
|
_081A3110:
|
|
ldr r0, [r4]
|
|
adds r1, r5, #0
|
|
adds r1, #8
|
|
adds r0, r0, r7
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
movs r1, #3
|
|
bl sub_080EF3E0
|
|
b _081A335E
|
|
_081A3124:
|
|
ldr r0, [r4]
|
|
ldr r1, [sp]
|
|
adds r1, #0xc
|
|
adds r0, r0, r7
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
movs r1, #4
|
|
bl sub_080EF3E0
|
|
b _081A335E
|
|
_081A3138:
|
|
ldr r7, _081A3184
|
|
ldr r0, [r7]
|
|
lsls r5, r5, #1
|
|
mov r8, r5
|
|
lsls r1, r6, #2
|
|
adds r4, r5, r1
|
|
ldr r5, _081A3188
|
|
adds r1, r0, r5
|
|
adds r1, r1, r4
|
|
ldr r2, _081A318C
|
|
adds r0, r0, r2
|
|
adds r0, r0, r4
|
|
ldrh r2, [r1]
|
|
ldrh r3, [r0]
|
|
cmp r2, r3
|
|
bhi _081A315A
|
|
b _081A335E
|
|
_081A315A:
|
|
strh r2, [r0]
|
|
ldrh r0, [r1]
|
|
cmp r0, #1
|
|
bhi _081A3164
|
|
b _081A335E
|
|
_081A3164:
|
|
bl sub_080EF330
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _081A3170
|
|
b _081A335E
|
|
_081A3170:
|
|
cmp r6, #0
|
|
bne _081A3190
|
|
ldr r0, [r7]
|
|
adds r0, r0, r5
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
movs r1, #5
|
|
bl sub_080EF3E0
|
|
b _081A335E
|
|
.align 2, 0
|
|
_081A3184: .4byte 0x03005AF0
|
|
_081A3188: .4byte 0x00000D0C
|
|
_081A318C: .4byte 0x00000D14
|
|
_081A3190:
|
|
ldr r0, [r7]
|
|
adds r0, r0, r5
|
|
adds r0, r0, r4
|
|
ldrh r0, [r0]
|
|
movs r1, #6
|
|
bl sub_080EF3E0
|
|
b _081A335E
|
|
_081A31A0:
|
|
ldr r7, _081A31F0
|
|
ldr r0, [r7]
|
|
lsls r5, r5, #1
|
|
mov r8, r5
|
|
lsls r1, r6, #2
|
|
adds r4, r5, r1
|
|
ldr r5, _081A31F4
|
|
adds r1, r0, r5
|
|
adds r1, r1, r4
|
|
movs r2, #0xdd
|
|
lsls r2, r2, #4
|
|
adds r0, r0, r2
|
|
adds r0, r0, r4
|
|
ldrh r2, [r1]
|
|
ldrh r3, [r0]
|
|
cmp r2, r3
|
|
bhi _081A31C4
|
|
b _081A335E
|
|
_081A31C4:
|
|
strh r2, [r0]
|
|
ldrh r0, [r1]
|
|
cmp r0, #1
|
|
bhi _081A31CE
|
|
b _081A335E
|
|
_081A31CE:
|
|
bl sub_080EF330
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _081A31DA
|
|
b _081A335E
|
|
_081A31DA:
|
|
cmp r6, #0
|
|
bne _081A31F8
|
|
ldr r0, [r7]
|
|
adds r0, r0, r5
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
movs r1, #0xb
|
|
bl sub_080EF3E0
|
|
b _081A335E
|
|
.align 2, 0
|
|
_081A31F0: .4byte 0x03005AF0
|
|
_081A31F4: .4byte 0x00000DC8
|
|
_081A31F8:
|
|
ldr r0, [r7]
|
|
adds r0, r0, r5
|
|
adds r0, r0, r4
|
|
ldrh r0, [r0]
|
|
movs r1, #0xc
|
|
bl sub_080EF3E0
|
|
b _081A335E
|
|
_081A3208:
|
|
ldr r6, _081A324C
|
|
ldr r1, [r6]
|
|
lsls r4, r5, #1
|
|
ldr r5, _081A3250
|
|
adds r0, r1, r5
|
|
adds r0, r0, r4
|
|
ldr r7, _081A3254
|
|
adds r1, r1, r7
|
|
adds r1, r1, r4
|
|
ldrh r2, [r0]
|
|
ldrh r3, [r1]
|
|
cmp r2, r3
|
|
bhi _081A3224
|
|
b _081A335E
|
|
_081A3224:
|
|
strh r2, [r1]
|
|
ldrh r0, [r0]
|
|
cmp r0, #1
|
|
bhi _081A322E
|
|
b _081A335E
|
|
_081A322E:
|
|
bl sub_080EF330
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _081A323A
|
|
b _081A335E
|
|
_081A323A:
|
|
ldr r0, [r6]
|
|
adds r0, r0, r5
|
|
adds r0, r0, r4
|
|
ldrh r0, [r0]
|
|
movs r1, #0xa
|
|
bl sub_080EF3E0
|
|
b _081A335E
|
|
.align 2, 0
|
|
_081A324C: .4byte 0x03005AF0
|
|
_081A3250: .4byte 0x00000DDA
|
|
_081A3254: .4byte 0x00000DDE
|
|
_081A3258:
|
|
ldr r7, _081A32B4
|
|
mov sb, r7
|
|
mov r0, sb
|
|
ldr r2, [r0]
|
|
lsls r5, r5, #1
|
|
mov r8, r5
|
|
lsls r0, r6, #2
|
|
adds r4, r5, r0
|
|
ldr r5, _081A32B8
|
|
adds r0, r2, r5
|
|
adds r3, r0, r4
|
|
ldr r1, _081A32BC
|
|
adds r0, r2, r1
|
|
adds r0, r0, r4
|
|
ldrh r1, [r3]
|
|
ldrh r7, [r0]
|
|
cmp r1, r7
|
|
bls _081A335E
|
|
strh r1, [r0]
|
|
ldr r0, _081A32C0
|
|
adds r1, r2, r0
|
|
adds r1, r1, r4
|
|
ldr r7, _081A32C4
|
|
adds r0, r2, r7
|
|
adds r0, r0, r4
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
ldrh r0, [r3]
|
|
cmp r0, #1
|
|
bls _081A335E
|
|
bl sub_080EF330
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _081A335E
|
|
cmp r6, #0
|
|
bne _081A32C8
|
|
mov r1, sb
|
|
ldr r0, [r1]
|
|
adds r0, r0, r5
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
movs r1, #7
|
|
bl sub_080EF3E0
|
|
b _081A335E
|
|
.align 2, 0
|
|
_081A32B4: .4byte 0x03005AF0
|
|
_081A32B8: .4byte 0x00000DE2
|
|
_081A32BC: .4byte 0x00000DEA
|
|
_081A32C0: .4byte 0x00000DFA
|
|
_081A32C4: .4byte 0x00000DF2
|
|
_081A32C8:
|
|
mov r2, sb
|
|
ldr r0, [r2]
|
|
adds r0, r0, r5
|
|
adds r0, r0, r4
|
|
ldrh r0, [r0]
|
|
movs r1, #8
|
|
bl sub_080EF3E0
|
|
b _081A335E
|
|
_081A32DA:
|
|
ldr r6, _081A3318
|
|
ldr r1, [r6]
|
|
lsls r4, r5, #1
|
|
ldr r5, _081A331C
|
|
adds r0, r1, r5
|
|
adds r0, r0, r4
|
|
ldr r3, _081A3320
|
|
adds r1, r1, r3
|
|
adds r1, r1, r4
|
|
ldrh r2, [r0]
|
|
ldrh r7, [r1]
|
|
cmp r2, r7
|
|
bls _081A335E
|
|
strh r2, [r1]
|
|
ldrh r0, [r0]
|
|
cmp r0, #1
|
|
bls _081A335E
|
|
bl sub_080EF330
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _081A335E
|
|
ldr r0, [r6]
|
|
adds r0, r0, r5
|
|
adds r0, r0, r4
|
|
ldrh r0, [r0]
|
|
movs r1, #9
|
|
bl sub_080EF3E0
|
|
b _081A335E
|
|
.align 2, 0
|
|
_081A3318: .4byte 0x03005AF0
|
|
_081A331C: .4byte 0x00000E04
|
|
_081A3320: .4byte 0x00000E08
|
|
_081A3324:
|
|
ldr r6, _081A3370
|
|
ldr r1, [r6]
|
|
lsls r4, r5, #1
|
|
ldr r5, _081A3374
|
|
adds r0, r1, r5
|
|
adds r0, r0, r4
|
|
ldr r2, _081A3378
|
|
adds r1, r1, r2
|
|
adds r1, r1, r4
|
|
ldrh r2, [r0]
|
|
ldrh r3, [r1]
|
|
cmp r2, r3
|
|
bls _081A335E
|
|
strh r2, [r1]
|
|
ldrh r0, [r0]
|
|
cmp r0, #1
|
|
bls _081A335E
|
|
bl sub_080EF330
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _081A335E
|
|
ldr r0, [r6]
|
|
adds r0, r0, r5
|
|
adds r0, r0, r4
|
|
ldrh r0, [r0]
|
|
movs r1, #0xd
|
|
bl sub_080EF3E0
|
|
_081A335E:
|
|
add sp, #0xc
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A3370: .4byte 0x03005AF0
|
|
_081A3374: .4byte 0x00000E1A
|
|
_081A3378: .4byte 0x00000E1E
|
|
thumb_func_end sub_081A2F90
|
|
|
|
thumb_func_start sub_081A337C
|
|
sub_081A337C: @ 0x081A337C
|
|
push {r4, lr}
|
|
ldr r0, _081A3398
|
|
bl VarGet
|
|
ldr r4, _081A339C
|
|
bl sub_081A33A0
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
strh r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A3398: .4byte 0x000040CF
|
|
_081A339C: .4byte 0x02037290
|
|
thumb_func_end sub_081A337C
|
|
|
|
thumb_func_start sub_081A33A0
|
|
sub_081A33A0: @ 0x081A33A0
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
movs r0, #0
|
|
mov r8, r0
|
|
ldr r0, _081A33E0
|
|
bl VarGet
|
|
lsls r0, r0, #0x10
|
|
lsrs r6, r0, #0x10
|
|
ldr r0, _081A33E4
|
|
bl VarGet
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x10
|
|
lsrs r4, r4, #0x10
|
|
bl GetCurrentFacilityWinStreak
|
|
lsls r0, r0, #0x10
|
|
ldr r1, _081A33E8
|
|
mov sb, r1
|
|
lsls r7, r6, #2
|
|
adds r1, #3
|
|
adds r1, r7, r1
|
|
lsrs r0, r0, #0x10
|
|
ldrb r1, [r1]
|
|
adds r5, r0, r1
|
|
cmp r4, #0
|
|
beq _081A33EC
|
|
movs r0, #0
|
|
b _081A3452
|
|
.align 2, 0
|
|
_081A33E0: .4byte 0x000040CF
|
|
_081A33E4: .4byte 0x000040CE
|
|
_081A33E8: .4byte 0x085DCB7C
|
|
_081A33EC:
|
|
lsls r0, r6, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl GetPlayerSymbolCountForFacility
|
|
lsls r0, r0, #0x18
|
|
lsrs r1, r0, #0x18
|
|
cmp r1, #0
|
|
blt _081A3410
|
|
cmp r1, #1
|
|
bgt _081A3410
|
|
adds r0, r1, r7
|
|
add r0, sb
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bne _081A344C
|
|
adds r1, #1
|
|
mov r8, r1
|
|
b _081A344C
|
|
_081A3410:
|
|
ldr r1, _081A3420
|
|
lsls r2, r6, #2
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bne _081A3424
|
|
movs r0, #3
|
|
b _081A344A
|
|
.align 2, 0
|
|
_081A3420: .4byte 0x085DCB7C
|
|
_081A3424:
|
|
adds r0, r1, #1
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bne _081A3434
|
|
movs r1, #4
|
|
mov r8, r1
|
|
b _081A344C
|
|
_081A3434:
|
|
cmp r5, r0
|
|
ble _081A344C
|
|
subs r0, r5, r0
|
|
adds r1, #2
|
|
adds r1, r2, r1
|
|
ldrb r1, [r1]
|
|
bl __modsi3
|
|
cmp r0, #0
|
|
bne _081A344C
|
|
movs r0, #4
|
|
_081A344A:
|
|
mov r8, r0
|
|
_081A344C:
|
|
mov r1, r8
|
|
lsls r0, r1, #0x18
|
|
lsrs r0, r0, #0x18
|
|
_081A3452:
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
thumb_func_end sub_081A33A0
|
|
|
|
thumb_func_start CopyFrontierTrainerText
|
|
CopyFrontierTrainerText: @ 0x081A3460
|
|
push {lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
adds r2, r0, #0
|
|
lsls r1, r1, #0x10
|
|
lsrs r3, r1, #0x10
|
|
cmp r0, #1
|
|
beq _081A34F6
|
|
cmp r0, #1
|
|
bgt _081A347A
|
|
cmp r0, #0
|
|
beq _081A3482
|
|
b _081A368E
|
|
_081A347A:
|
|
cmp r2, #2
|
|
bne _081A3480
|
|
b _081A35A8
|
|
_081A3480:
|
|
b _081A368E
|
|
_081A3482:
|
|
movs r0, #0xfa
|
|
lsls r0, r0, #1
|
|
cmp r3, r0
|
|
bne _081A349C
|
|
ldr r0, _081A3494
|
|
ldr r0, [r0]
|
|
ldr r1, _081A3498
|
|
b _081A3656
|
|
.align 2, 0
|
|
_081A3494: .4byte 0x03005AF0
|
|
_081A3498: .4byte 0x00000BFC
|
|
_081A349C:
|
|
ldr r0, _081A34BC
|
|
cmp r3, r0
|
|
beq _081A3516
|
|
ldr r0, _081A34C0
|
|
cmp r3, r0
|
|
bhi _081A34C8
|
|
ldr r2, _081A34C4
|
|
movs r0, #0x34
|
|
adds r1, r3, #0
|
|
muls r1, r0, r1
|
|
ldr r0, [r2]
|
|
adds r0, r0, r1
|
|
adds r0, #0xc
|
|
bl FrontierSpeechToString
|
|
b _081A368E
|
|
.align 2, 0
|
|
_081A34BC: .4byte 0x000003FE
|
|
_081A34C0: .4byte 0x0000012B
|
|
_081A34C4: .4byte 0x0203B954
|
|
_081A34C8:
|
|
ldr r0, _081A34DC
|
|
cmp r3, r0
|
|
bhi _081A34E8
|
|
ldr r1, _081A34E0
|
|
movs r0, #0xec
|
|
muls r0, r3, r0
|
|
ldr r1, [r1]
|
|
adds r0, r0, r1
|
|
ldr r1, _081A34E4
|
|
b _081A3656
|
|
.align 2, 0
|
|
_081A34DC: .4byte 0x0000018F
|
|
_081A34E0: .4byte 0x03005AF0
|
|
_081A34E4: .4byte 0xFFFEF2B8
|
|
_081A34E8:
|
|
adds r0, r3, #0
|
|
adds r0, #0x70
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl CopyFriendsApprenticeChallengeText
|
|
b _081A368E
|
|
_081A34F6:
|
|
movs r0, #0xfa
|
|
lsls r0, r0, #1
|
|
cmp r3, r0
|
|
bne _081A3510
|
|
ldr r0, _081A3508
|
|
ldr r0, [r0]
|
|
ldr r1, _081A350C
|
|
b _081A3656
|
|
.align 2, 0
|
|
_081A3508: .4byte 0x03005AF0
|
|
_081A350C: .4byte 0x00000C08
|
|
_081A3510:
|
|
ldr r0, _081A3520
|
|
cmp r3, r0
|
|
bne _081A3524
|
|
_081A3516:
|
|
movs r0, #0
|
|
bl CopyFrontierBrainText
|
|
b _081A368E
|
|
.align 2, 0
|
|
_081A3520: .4byte 0x000003FE
|
|
_081A3524:
|
|
ldr r0, _081A3540
|
|
cmp r3, r0
|
|
bhi _081A3548
|
|
ldr r2, _081A3544
|
|
movs r0, #0x34
|
|
adds r1, r3, #0
|
|
muls r1, r0, r1
|
|
ldr r0, [r2]
|
|
adds r0, r0, r1
|
|
adds r0, #0x18
|
|
bl FrontierSpeechToString
|
|
b _081A368E
|
|
.align 2, 0
|
|
_081A3540: .4byte 0x0000012B
|
|
_081A3544: .4byte 0x0203B954
|
|
_081A3548:
|
|
ldr r0, _081A356C
|
|
cmp r3, r0
|
|
bhi _081A357C
|
|
ldr r0, _081A3570
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x11
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _081A360C
|
|
ldr r1, _081A3574
|
|
movs r0, #0xec
|
|
muls r0, r3, r0
|
|
ldr r1, [r1]
|
|
adds r0, r0, r1
|
|
ldr r1, _081A3578
|
|
b _081A3656
|
|
.align 2, 0
|
|
_081A356C: .4byte 0x0000018F
|
|
_081A3570: .4byte 0x02022C90
|
|
_081A3574: .4byte 0x03005AF0
|
|
_081A3578: .4byte 0xFFFEF2C4
|
|
_081A357C:
|
|
ldr r0, _081A359C
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x11
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _081A360C
|
|
ldr r1, _081A35A0
|
|
lsls r0, r3, #4
|
|
adds r0, r0, r3
|
|
lsls r0, r0, #2
|
|
ldr r1, [r1]
|
|
adds r0, r0, r1
|
|
ldr r1, _081A35A4
|
|
b _081A3656
|
|
.align 2, 0
|
|
_081A359C: .4byte 0x02022C90
|
|
_081A35A0: .4byte 0x03005AF0
|
|
_081A35A4: .4byte 0xFFFF96C4
|
|
_081A35A8:
|
|
movs r0, #0xfa
|
|
lsls r0, r0, #1
|
|
cmp r3, r0
|
|
bne _081A35C0
|
|
ldr r0, _081A35B8
|
|
ldr r0, [r0]
|
|
ldr r1, _081A35BC
|
|
b _081A3656
|
|
.align 2, 0
|
|
_081A35B8: .4byte 0x03005AF0
|
|
_081A35BC: .4byte 0x00000C14
|
|
_081A35C0:
|
|
ldr r0, _081A35D0
|
|
cmp r3, r0
|
|
bne _081A35D4
|
|
movs r0, #1
|
|
bl CopyFrontierBrainText
|
|
b _081A368E
|
|
.align 2, 0
|
|
_081A35D0: .4byte 0x000003FE
|
|
_081A35D4:
|
|
ldr r0, _081A35F0
|
|
cmp r3, r0
|
|
bhi _081A35F8
|
|
ldr r2, _081A35F4
|
|
movs r0, #0x34
|
|
adds r1, r3, #0
|
|
muls r1, r0, r1
|
|
ldr r0, [r2]
|
|
adds r0, r0, r1
|
|
adds r0, #0x24
|
|
bl FrontierSpeechToString
|
|
b _081A368E
|
|
.align 2, 0
|
|
_081A35F0: .4byte 0x0000012B
|
|
_081A35F4: .4byte 0x0203B954
|
|
_081A35F8:
|
|
ldr r0, _081A3618
|
|
cmp r3, r0
|
|
bhi _081A3638
|
|
ldr r0, _081A361C
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x11
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _081A3620
|
|
_081A360C:
|
|
bl GetRecordedBattleEasyChatSpeech
|
|
bl FrontierSpeechToString
|
|
b _081A368E
|
|
.align 2, 0
|
|
_081A3618: .4byte 0x0000018F
|
|
_081A361C: .4byte 0x02022C90
|
|
_081A3620:
|
|
ldr r1, _081A3630
|
|
movs r0, #0xec
|
|
muls r0, r3, r0
|
|
ldr r1, [r1]
|
|
adds r0, r0, r1
|
|
ldr r1, _081A3634
|
|
b _081A3656
|
|
.align 2, 0
|
|
_081A3630: .4byte 0x03005AF0
|
|
_081A3634: .4byte 0xFFFEF2D0
|
|
_081A3638:
|
|
ldr r0, _081A3660
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x11
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _081A3668
|
|
bl GetTextSpeedInRecordedBattle
|
|
lsls r0, r0, #0x18
|
|
lsrs r3, r0, #0x18
|
|
lsls r0, r3, #1
|
|
adds r0, r0, r3
|
|
lsls r0, r0, #4
|
|
ldr r1, _081A3664
|
|
_081A3656:
|
|
adds r0, r0, r1
|
|
bl FrontierSpeechToString
|
|
b _081A368E
|
|
.align 2, 0
|
|
_081A3660: .4byte 0x02022C90
|
|
_081A3664: .4byte 0x085DC23E
|
|
_081A3668:
|
|
ldr r0, _081A3694
|
|
ldr r1, [r0]
|
|
ldr r0, _081A3698
|
|
adds r2, r3, r0
|
|
lsls r0, r2, #4
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r1, r1, r0
|
|
adds r1, #0xdc
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #0x1b
|
|
lsrs r3, r0, #0x1b
|
|
lsls r0, r3, #1
|
|
adds r0, r0, r3
|
|
lsls r0, r0, #4
|
|
ldr r1, _081A369C
|
|
adds r0, r0, r1
|
|
bl FrontierSpeechToString
|
|
_081A368E:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A3694: .4byte 0x03005AF0
|
|
_081A3698: .4byte 0xFFFFFE70
|
|
_081A369C: .4byte 0x085DC23E
|
|
thumb_func_end CopyFrontierTrainerText
|
|
|
|
thumb_func_start sub_081A36A0
|
|
sub_081A36A0: @ 0x081A36A0
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
ldr r0, _081A3744
|
|
ldr r1, [r0]
|
|
ldr r2, _081A3748
|
|
adds r1, r1, r2
|
|
movs r2, #0
|
|
str r2, [r1]
|
|
movs r4, #0
|
|
mov sb, r0
|
|
mov r8, sb
|
|
movs r6, #0
|
|
_081A36BE:
|
|
movs r5, #0
|
|
lsls r7, r4, #2
|
|
mov sl, r7
|
|
adds r0, r4, #1
|
|
mov ip, r0
|
|
_081A36C8:
|
|
mov r1, r8
|
|
ldr r2, [r1]
|
|
lsls r3, r5, #1
|
|
mov r7, sl
|
|
adds r1, r3, r7
|
|
movs r7, #0xce
|
|
lsls r7, r7, #4
|
|
adds r0, r2, r7
|
|
adds r0, r0, r1
|
|
strh r6, [r0]
|
|
cmp r4, #1
|
|
bgt _081A36F8
|
|
adds r7, #0x2c
|
|
adds r0, r2, r7
|
|
adds r0, r0, r1
|
|
strh r6, [r0]
|
|
adds r7, #0xbc
|
|
adds r0, r2, r7
|
|
adds r0, r0, r1
|
|
strh r6, [r0]
|
|
adds r7, #0x1a
|
|
adds r0, r2, r7
|
|
adds r0, r0, r1
|
|
strh r6, [r0]
|
|
_081A36F8:
|
|
cmp r4, #0
|
|
bne _081A3718
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldr r2, _081A374C
|
|
adds r1, r0, r2
|
|
adds r1, r1, r3
|
|
strh r4, [r1]
|
|
ldr r7, _081A3750
|
|
adds r1, r0, r7
|
|
adds r1, r1, r3
|
|
strh r4, [r1]
|
|
ldr r1, _081A3754
|
|
adds r0, r0, r1
|
|
adds r0, r0, r3
|
|
strh r4, [r0]
|
|
_081A3718:
|
|
adds r5, #1
|
|
cmp r5, #1
|
|
ble _081A36C8
|
|
mov r4, ip
|
|
cmp r4, #3
|
|
ble _081A36BE
|
|
mov r2, sb
|
|
ldr r0, [r2]
|
|
ldr r7, _081A3758
|
|
adds r1, r0, r7
|
|
ldrb r0, [r1]
|
|
cmp r0, #0
|
|
beq _081A3736
|
|
movs r0, #1
|
|
strb r0, [r1]
|
|
_081A3736:
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A3744: .4byte 0x03005AF0
|
|
_081A3748: .4byte 0x00000CDC
|
|
_081A374C: .4byte 0x00000DDA
|
|
_081A3750: .4byte 0x00000E04
|
|
_081A3754: .4byte 0x00000E1A
|
|
_081A3758: .4byte 0x00000CA8
|
|
thumb_func_end sub_081A36A0
|
|
|
|
thumb_func_start GetCurrentFacilityWinStreak
|
|
GetCurrentFacilityWinStreak: @ 0x081A375C
|
|
push {r4, r5, lr}
|
|
ldr r0, _081A3790
|
|
ldr r0, [r0]
|
|
ldr r1, _081A3794
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1e
|
|
lsrs r4, r0, #0x1e
|
|
ldr r0, _081A3798
|
|
bl VarGet
|
|
lsls r0, r0, #0x10
|
|
lsrs r5, r0, #0x10
|
|
ldr r0, _081A379C
|
|
bl VarGet
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, #6
|
|
bhi _081A385C
|
|
lsls r0, r0, #2
|
|
ldr r1, _081A37A0
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_081A3790: .4byte 0x03005AF0
|
|
_081A3794: .4byte 0x00000CA9
|
|
_081A3798: .4byte 0x000040CE
|
|
_081A379C: .4byte 0x000040CF
|
|
_081A37A0: .4byte 0x081A37A4
|
|
_081A37A4: @ jump table
|
|
.4byte _081A37C0 @ case 0
|
|
.4byte _081A37D4 @ case 1
|
|
.4byte _081A37EC @ case 2
|
|
.4byte _081A3804 @ case 3
|
|
.4byte _081A3818 @ case 4
|
|
.4byte _081A3830 @ case 5
|
|
.4byte _081A3844 @ case 6
|
|
_081A37C0:
|
|
ldr r0, _081A37D0
|
|
ldr r0, [r0]
|
|
lsls r1, r4, #1
|
|
lsls r2, r5, #2
|
|
adds r1, r1, r2
|
|
movs r2, #0xce
|
|
lsls r2, r2, #4
|
|
b _081A384C
|
|
.align 2, 0
|
|
_081A37D0: .4byte 0x03005AF0
|
|
_081A37D4:
|
|
ldr r0, _081A37E4
|
|
ldr r0, [r0]
|
|
lsls r1, r4, #1
|
|
lsls r2, r5, #2
|
|
adds r1, r1, r2
|
|
ldr r2, _081A37E8
|
|
b _081A384C
|
|
.align 2, 0
|
|
_081A37E4: .4byte 0x03005AF0
|
|
_081A37E8: .4byte 0x00000D0C
|
|
_081A37EC:
|
|
ldr r0, _081A37FC
|
|
ldr r0, [r0]
|
|
lsls r1, r4, #1
|
|
lsls r2, r5, #2
|
|
adds r1, r1, r2
|
|
ldr r2, _081A3800
|
|
b _081A384C
|
|
.align 2, 0
|
|
_081A37FC: .4byte 0x03005AF0
|
|
_081A3800: .4byte 0x00000DC8
|
|
_081A3804:
|
|
ldr r0, _081A3810
|
|
ldr r0, [r0]
|
|
lsls r1, r4, #1
|
|
ldr r2, _081A3814
|
|
b _081A384C
|
|
.align 2, 0
|
|
_081A3810: .4byte 0x03005AF0
|
|
_081A3814: .4byte 0x00000DDA
|
|
_081A3818:
|
|
ldr r0, _081A3828
|
|
ldr r0, [r0]
|
|
lsls r1, r4, #1
|
|
lsls r2, r5, #2
|
|
adds r1, r1, r2
|
|
ldr r2, _081A382C
|
|
b _081A384C
|
|
.align 2, 0
|
|
_081A3828: .4byte 0x03005AF0
|
|
_081A382C: .4byte 0x00000DE2
|
|
_081A3830:
|
|
ldr r0, _081A383C
|
|
ldr r0, [r0]
|
|
lsls r1, r4, #1
|
|
ldr r2, _081A3840
|
|
b _081A384C
|
|
.align 2, 0
|
|
_081A383C: .4byte 0x03005AF0
|
|
_081A3840: .4byte 0x00000E04
|
|
_081A3844:
|
|
ldr r0, _081A3854
|
|
ldr r0, [r0]
|
|
lsls r1, r4, #1
|
|
ldr r2, _081A3858
|
|
_081A384C:
|
|
adds r0, r0, r2
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
b _081A385E
|
|
.align 2, 0
|
|
_081A3854: .4byte 0x03005AF0
|
|
_081A3858: .4byte 0x00000E1A
|
|
_081A385C:
|
|
movs r0, #0
|
|
_081A385E:
|
|
pop {r4, r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetCurrentFacilityWinStreak
|
|
|
|
thumb_func_start sub_081A3864
|
|
sub_081A3864: @ 0x081A3864
|
|
push {r4, r5, lr}
|
|
movs r2, #0
|
|
ldr r5, _081A388C
|
|
ldr r4, _081A3890
|
|
ldr r0, _081A3894
|
|
adds r3, r0, #0
|
|
_081A3870:
|
|
ldr r0, [r5]
|
|
lsls r1, r2, #1
|
|
adds r0, r0, r4
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
orrs r1, r3
|
|
strh r1, [r0]
|
|
adds r2, #1
|
|
cmp r2, #0x13
|
|
ble _081A3870
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A388C: .4byte 0x03005AF0
|
|
_081A3890: .4byte 0x00000CB4
|
|
_081A3894: .4byte 0x0000FFFF
|
|
thumb_func_end sub_081A3864
|
|
|
|
thumb_func_start sub_081A3898
|
|
sub_081A3898: @ 0x081A3898
|
|
push {lr}
|
|
ldr r0, _081A38AC
|
|
ldrh r1, [r0]
|
|
ldr r0, _081A38B0
|
|
cmp r1, r0
|
|
bne _081A38B8
|
|
ldr r1, _081A38B4
|
|
movs r0, #1
|
|
b _081A38BC
|
|
.align 2, 0
|
|
_081A38AC: .4byte 0x0203886A
|
|
_081A38B0: .4byte 0x000003FE
|
|
_081A38B4: .4byte 0x02037290
|
|
_081A38B8:
|
|
ldr r1, _081A38C4
|
|
movs r0, #0
|
|
_081A38BC:
|
|
strh r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A38C4: .4byte 0x02037290
|
|
thumb_func_end sub_081A3898
|
|
|
|
thumb_func_start GetPlayerSymbolCountForFacility
|
|
GetPlayerSymbolCountForFacility: @ 0x081A38C8
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x17
|
|
ldr r1, _081A38F4
|
|
adds r0, r4, r1
|
|
bl FlagGet
|
|
adds r5, r0, #0
|
|
ldr r0, _081A38F8
|
|
adds r4, r4, r0
|
|
adds r0, r4, #0
|
|
bl FlagGet
|
|
adds r5, r5, r0
|
|
lsls r5, r5, #0x18
|
|
lsrs r5, r5, #0x18
|
|
adds r0, r5, #0
|
|
pop {r4, r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_081A38F4: .4byte 0x000008C4
|
|
_081A38F8: .4byte 0x000008C5
|
|
thumb_func_end GetPlayerSymbolCountForFacility
|
|
|
|
thumb_func_start sub_081A38FC
|
|
sub_081A38FC: @ 0x081A38FC
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
movs r5, #0
|
|
ldr r0, _081A3938
|
|
ldr r0, [r0]
|
|
ldr r1, _081A393C
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1e
|
|
lsrs r4, r0, #0x1e
|
|
ldr r0, _081A3940
|
|
bl VarGet
|
|
lsls r0, r0, #0x10
|
|
lsrs r7, r0, #0x10
|
|
ldr r0, _081A3944
|
|
bl VarGet
|
|
lsls r0, r0, #0x10
|
|
lsrs r6, r0, #0x10
|
|
cmp r7, #6
|
|
bhi _081A3A10
|
|
lsls r0, r7, #2
|
|
ldr r1, _081A3948
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_081A3938: .4byte 0x03005AF0
|
|
_081A393C: .4byte 0x00000CA9
|
|
_081A3940: .4byte 0x000040CF
|
|
_081A3944: .4byte 0x000040CE
|
|
_081A3948: .4byte 0x081A394C
|
|
_081A394C: @ jump table
|
|
.4byte _081A3968 @ case 0
|
|
.4byte _081A397C @ case 1
|
|
.4byte _081A3998 @ case 2
|
|
.4byte _081A39B0 @ case 3
|
|
.4byte _081A39C4 @ case 4
|
|
.4byte _081A39DC @ case 5
|
|
.4byte _081A39F8 @ case 6
|
|
_081A3968:
|
|
ldr r0, _081A3978
|
|
ldr r0, [r0]
|
|
lsls r1, r4, #1
|
|
lsls r2, r6, #2
|
|
adds r1, r1, r2
|
|
movs r2, #0xce
|
|
lsls r2, r2, #4
|
|
b _081A3A00
|
|
.align 2, 0
|
|
_081A3978: .4byte 0x03005AF0
|
|
_081A397C:
|
|
ldr r0, _081A3990
|
|
ldr r0, [r0]
|
|
lsls r1, r4, #1
|
|
lsls r2, r6, #2
|
|
adds r1, r1, r2
|
|
ldr r2, _081A3994
|
|
adds r0, r0, r2
|
|
adds r0, r0, r1
|
|
ldrh r5, [r0]
|
|
b _081A3A10
|
|
.align 2, 0
|
|
_081A3990: .4byte 0x03005AF0
|
|
_081A3994: .4byte 0x00000D0C
|
|
_081A3998:
|
|
ldr r0, _081A39A8
|
|
ldr r0, [r0]
|
|
lsls r1, r4, #1
|
|
lsls r2, r6, #2
|
|
adds r1, r1, r2
|
|
ldr r2, _081A39AC
|
|
b _081A3A00
|
|
.align 2, 0
|
|
_081A39A8: .4byte 0x03005AF0
|
|
_081A39AC: .4byte 0x00000DC8
|
|
_081A39B0:
|
|
ldr r0, _081A39BC
|
|
ldr r0, [r0]
|
|
lsls r1, r4, #1
|
|
ldr r2, _081A39C0
|
|
b _081A3A00
|
|
.align 2, 0
|
|
_081A39BC: .4byte 0x03005AF0
|
|
_081A39C0: .4byte 0x00000DDA
|
|
_081A39C4:
|
|
ldr r0, _081A39D4
|
|
ldr r0, [r0]
|
|
lsls r1, r4, #1
|
|
lsls r2, r6, #2
|
|
adds r1, r1, r2
|
|
ldr r2, _081A39D8
|
|
b _081A3A00
|
|
.align 2, 0
|
|
_081A39D4: .4byte 0x03005AF0
|
|
_081A39D8: .4byte 0x00000DE2
|
|
_081A39DC:
|
|
ldr r0, _081A39F0
|
|
ldr r0, [r0]
|
|
lsls r1, r4, #1
|
|
ldr r2, _081A39F4
|
|
adds r0, r0, r2
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
movs r1, #0xe
|
|
b _081A3A08
|
|
.align 2, 0
|
|
_081A39F0: .4byte 0x03005AF0
|
|
_081A39F4: .4byte 0x00000E04
|
|
_081A39F8:
|
|
ldr r0, _081A3AA0
|
|
ldr r0, [r0]
|
|
lsls r1, r4, #1
|
|
ldr r2, _081A3AA4
|
|
_081A3A00:
|
|
adds r0, r0, r2
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
movs r1, #7
|
|
_081A3A08:
|
|
bl __udivsi3
|
|
lsls r0, r0, #0x10
|
|
lsrs r5, r0, #0x10
|
|
_081A3A10:
|
|
cmp r5, #0
|
|
beq _081A3A16
|
|
subs r5, #1
|
|
_081A3A16:
|
|
cmp r5, #0x1d
|
|
bls _081A3A1C
|
|
movs r5, #0x1d
|
|
_081A3A1C:
|
|
ldr r2, _081A3AA8
|
|
lsls r1, r7, #2
|
|
adds r1, r6, r1
|
|
lsls r0, r5, #3
|
|
subs r0, r0, r5
|
|
lsls r0, r0, #2
|
|
adds r1, r1, r0
|
|
adds r7, r1, r2
|
|
ldrb r5, [r7]
|
|
ldr r0, _081A3AAC
|
|
mov sb, r0
|
|
ldrh r0, [r0]
|
|
ldr r1, _081A3AB0
|
|
mov r8, r1
|
|
cmp r0, r8
|
|
bne _081A3A3E
|
|
adds r5, #0xa
|
|
_081A3A3E:
|
|
ldr r6, _081A3AA0
|
|
ldr r1, [r6]
|
|
ldr r4, _081A3AB4
|
|
adds r1, r1, r4
|
|
ldrh r0, [r1]
|
|
adds r0, r0, r5
|
|
strh r0, [r1]
|
|
ldr r0, _081A3AB8
|
|
adds r1, r5, #0
|
|
movs r2, #0
|
|
movs r3, #2
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r0, [r6]
|
|
adds r2, r0, r4
|
|
ldrh r0, [r2]
|
|
ldr r1, _081A3ABC
|
|
cmp r0, r1
|
|
bls _081A3A66
|
|
strh r1, [r2]
|
|
_081A3A66:
|
|
ldr r0, [r6]
|
|
ldr r4, _081A3AC0
|
|
adds r0, r0, r4
|
|
ldrh r5, [r0]
|
|
ldrb r0, [r7]
|
|
adds r5, r5, r0
|
|
bl sub_080EF864
|
|
mov r2, sb
|
|
ldrh r0, [r2]
|
|
cmp r0, r8
|
|
bne _081A3A86
|
|
adds r5, #0xa
|
|
movs r0, #0xa
|
|
bl sub_080EF864
|
|
_081A3A86:
|
|
ldr r0, _081A3AC4
|
|
cmp r5, r0
|
|
ble _081A3A8E
|
|
adds r5, r0, #0
|
|
_081A3A8E:
|
|
ldr r0, [r6]
|
|
adds r0, r0, r4
|
|
strh r5, [r0]
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A3AA0: .4byte 0x03005AF0
|
|
_081A3AA4: .4byte 0x00000E1A
|
|
_081A3AA8: .4byte 0x085DCEE0
|
|
_081A3AAC: .4byte 0x0203886A
|
|
_081A3AB0: .4byte 0x000003FE
|
|
_081A3AB4: .4byte 0x00000EB8
|
|
_081A3AB8: .4byte 0x02021C40
|
|
_081A3ABC: .4byte 0x0000270F
|
|
_081A3AC0: .4byte 0x00000EBA
|
|
_081A3AC4: .4byte 0x0000FFFF
|
|
thumb_func_end sub_081A38FC
|
|
|
|
thumb_func_start sub_081A3AC8
|
|
sub_081A3AC8: @ 0x081A3AC8
|
|
push {r4, lr}
|
|
ldr r0, _081A3AE8
|
|
bl VarGet
|
|
ldr r4, _081A3AEC
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl GetPlayerSymbolCountForFacility
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
strh r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A3AE8: .4byte 0x000040CF
|
|
_081A3AEC: .4byte 0x02037290
|
|
thumb_func_end sub_081A3AC8
|
|
|
|
thumb_func_start sub_081A3AF0
|
|
sub_081A3AF0: @ 0x081A3AF0
|
|
push {r4, lr}
|
|
ldr r0, _081A3B18
|
|
bl VarGet
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
lsls r0, r4, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl GetPlayerSymbolCountForFacility
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _081A3B20
|
|
lsls r0, r4, #0x11
|
|
ldr r1, _081A3B1C
|
|
adds r0, r0, r1
|
|
lsrs r0, r0, #0x10
|
|
bl FlagSet
|
|
b _081A3B2C
|
|
.align 2, 0
|
|
_081A3B18: .4byte 0x000040CF
|
|
_081A3B1C: .4byte 0x08C40000
|
|
_081A3B20:
|
|
lsls r0, r4, #0x11
|
|
ldr r1, _081A3B34
|
|
adds r0, r0, r1
|
|
lsrs r0, r0, #0x10
|
|
bl FlagSet
|
|
_081A3B2C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A3B34: .4byte 0x08C50000
|
|
thumb_func_end sub_081A3AF0
|
|
|
|
thumb_func_start sub_081A3B38
|
|
sub_081A3B38: @ 0x081A3B38
|
|
push {lr}
|
|
ldr r0, _081A3B50
|
|
ldr r1, _081A3B54
|
|
ldrh r1, [r1]
|
|
ldr r2, [r0]
|
|
ands r2, r1
|
|
cmp r2, #0
|
|
beq _081A3B5C
|
|
ldr r1, _081A3B58
|
|
movs r0, #1
|
|
strh r0, [r1]
|
|
b _081A3B60
|
|
.align 2, 0
|
|
_081A3B50: .4byte 0x02022C90
|
|
_081A3B54: .4byte 0x02037282
|
|
_081A3B58: .4byte 0x02037290
|
|
_081A3B5C:
|
|
ldr r0, _081A3B64
|
|
strh r2, [r0]
|
|
_081A3B60:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A3B64: .4byte 0x02037290
|
|
thumb_func_end sub_081A3B38
|
|
|
|
thumb_func_start sub_081A3B68
|
|
sub_081A3B68: @ 0x081A3B68
|
|
push {r4, r5, r6, lr}
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
adds r5, r0, #0
|
|
lsls r1, r1, #0x18
|
|
lsrs r4, r1, #0x18
|
|
bl HoennToNationalOrder
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #1
|
|
bl GetSetPokedexFlag
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _081A3BFC
|
|
cmp r4, #0
|
|
bne _081A3B94
|
|
ldr r0, _081A3BBC
|
|
ldr r1, _081A3BC0
|
|
bl StringAppend
|
|
_081A3B94:
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
ldr r6, _081A3BBC
|
|
lsls r1, r5, #1
|
|
adds r1, r1, r5
|
|
lsls r1, r1, #1
|
|
ldr r0, _081A3BC4
|
|
adds r1, r1, r0
|
|
adds r0, r6, #0
|
|
bl StringAppend
|
|
cmp r4, #5
|
|
beq _081A3BE0
|
|
cmp r4, #5
|
|
bgt _081A3BC8
|
|
cmp r4, #2
|
|
beq _081A3BD2
|
|
b _081A3BF4
|
|
.align 2, 0
|
|
_081A3BBC: .4byte 0x02021C40
|
|
_081A3BC0: .4byte 0x085ABC6C
|
|
_081A3BC4: .4byte 0x082EA31C
|
|
_081A3BC8:
|
|
cmp r4, #8
|
|
beq _081A3BE0
|
|
cmp r4, #0xb
|
|
beq _081A3BE0
|
|
b _081A3BF4
|
|
_081A3BD2:
|
|
ldr r1, _081A3BDC
|
|
adds r0, r6, #0
|
|
bl StringAppend
|
|
b _081A3BFC
|
|
.align 2, 0
|
|
_081A3BDC: .4byte 0x085ABC70
|
|
_081A3BE0:
|
|
ldr r0, _081A3BEC
|
|
ldr r1, _081A3BF0
|
|
bl StringAppend
|
|
b _081A3BFC
|
|
.align 2, 0
|
|
_081A3BEC: .4byte 0x02021C40
|
|
_081A3BF0: .4byte 0x085ABC6E
|
|
_081A3BF4:
|
|
ldr r0, _081A3C04
|
|
ldr r1, _081A3C08
|
|
bl StringAppend
|
|
_081A3BFC:
|
|
adds r0, r4, #0
|
|
pop {r4, r5, r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_081A3C04: .4byte 0x02021C40
|
|
_081A3C08: .4byte 0x085ABC6C
|
|
thumb_func_end sub_081A3B68
|
|
|
|
thumb_func_start AppendIfValid
|
|
AppendIfValid: @ 0x081A3C0C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
ldr r2, [sp, #0x20]
|
|
ldr r4, [sp, #0x24]
|
|
mov sb, r4
|
|
ldr r4, [sp, #0x28]
|
|
mov sl, r4
|
|
ldr r7, [sp, #0x2c]
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
lsls r1, r1, #0x10
|
|
lsrs r6, r1, #0x10
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
mov ip, r3
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
mov r8, r2
|
|
movs r2, #0
|
|
movs r0, #0xce
|
|
lsls r0, r0, #1
|
|
cmp r4, r0
|
|
beq _081A3CDA
|
|
cmp r4, #0
|
|
beq _081A3CDA
|
|
ldr r0, _081A3CE8
|
|
ldrh r1, [r0]
|
|
ldr r5, _081A3CEC
|
|
adds r3, r0, #0
|
|
cmp r1, r5
|
|
beq _081A3C70
|
|
cmp r1, r4
|
|
beq _081A3C64
|
|
adds r1, r3, #0
|
|
_081A3C56:
|
|
adds r1, #2
|
|
adds r2, #1
|
|
ldrh r0, [r1]
|
|
cmp r0, r5
|
|
beq _081A3C70
|
|
cmp r0, r4
|
|
bne _081A3C56
|
|
_081A3C64:
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r3
|
|
ldrh r1, [r0]
|
|
ldr r0, _081A3CEC
|
|
cmp r1, r0
|
|
bne _081A3CDA
|
|
_081A3C70:
|
|
mov r0, ip
|
|
cmp r0, #0
|
|
bne _081A3C7C
|
|
mov r1, r8
|
|
cmp r1, #0x32
|
|
bhi _081A3CDA
|
|
_081A3C7C:
|
|
movs r2, #0
|
|
ldrb r3, [r7]
|
|
cmp r2, r3
|
|
bge _081A3C9C
|
|
mov r1, sb
|
|
ldrh r0, [r1]
|
|
cmp r0, r4
|
|
beq _081A3C9C
|
|
adds r5, r3, #0
|
|
_081A3C8E:
|
|
adds r1, #2
|
|
adds r2, #1
|
|
cmp r2, r5
|
|
bge _081A3C9C
|
|
ldrh r0, [r1]
|
|
cmp r0, r4
|
|
bne _081A3C8E
|
|
_081A3C9C:
|
|
cmp r2, r3
|
|
bne _081A3CDA
|
|
cmp r6, #0
|
|
beq _081A3CC6
|
|
movs r2, #0
|
|
cmp r2, r3
|
|
bge _081A3CC2
|
|
mov r1, sl
|
|
ldrh r0, [r1]
|
|
cmp r0, r6
|
|
beq _081A3CC2
|
|
adds r5, r3, #0
|
|
_081A3CB4:
|
|
adds r1, #2
|
|
adds r2, #1
|
|
cmp r2, r5
|
|
bge _081A3CC2
|
|
ldrh r0, [r1]
|
|
cmp r0, r6
|
|
bne _081A3CB4
|
|
_081A3CC2:
|
|
cmp r2, r3
|
|
bne _081A3CDA
|
|
_081A3CC6:
|
|
lsls r0, r3, #1
|
|
add r0, sb
|
|
strh r4, [r0]
|
|
ldrb r0, [r7]
|
|
lsls r0, r0, #1
|
|
add r0, sl
|
|
strh r6, [r0]
|
|
ldrb r0, [r7]
|
|
adds r0, #1
|
|
strb r0, [r7]
|
|
_081A3CDA:
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A3CE8: .4byte 0x085DD48E
|
|
_081A3CEC: .4byte 0x0000FFFF
|
|
thumb_func_end AppendIfValid
|
|
|
|
thumb_func_start sub_081A3CF0
|
|
sub_081A3CF0: @ 0x081A3CF0
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x2c
|
|
movs r0, #0
|
|
mov sl, r0
|
|
add r4, sp, #0x28
|
|
mov r1, sl
|
|
strb r1, [r4]
|
|
ldr r0, _081A3D20
|
|
bl VarGet
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
mov sb, r4
|
|
cmp r0, #1
|
|
beq _081A3D32
|
|
cmp r0, #1
|
|
bgt _081A3D24
|
|
cmp r0, #0
|
|
beq _081A3D2C
|
|
b _081A3D46
|
|
.align 2, 0
|
|
_081A3D20: .4byte 0x000040CE
|
|
_081A3D24:
|
|
cmp r0, #3
|
|
bgt _081A3D46
|
|
movs r0, #2
|
|
b _081A3D44
|
|
_081A3D2C:
|
|
movs r1, #3
|
|
mov sl, r1
|
|
b _081A3D46
|
|
_081A3D32:
|
|
ldr r0, _081A3DB4
|
|
bl VarGet
|
|
lsls r0, r0, #0x10
|
|
movs r1, #3
|
|
mov sl, r1
|
|
cmp r0, #0
|
|
bne _081A3D46
|
|
movs r0, #4
|
|
_081A3D44:
|
|
mov sl, r0
|
|
_081A3D46:
|
|
movs r1, #0
|
|
mov r8, r1
|
|
_081A3D4A:
|
|
movs r0, #0x64
|
|
mov r4, r8
|
|
muls r4, r0, r4
|
|
ldr r0, _081A3DB8
|
|
adds r4, r4, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x41
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r7, r0, #0x10
|
|
adds r0, r4, #0
|
|
movs r1, #0xc
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r6, r0, #0x10
|
|
adds r0, r4, #0
|
|
movs r1, #0x38
|
|
bl GetMonData
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
adds r0, r4, #0
|
|
movs r1, #0x39
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
ldr r0, _081A3DB4
|
|
bl VarGet
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, #6
|
|
bne _081A3DC0
|
|
cmp r6, #0
|
|
bne _081A3DDC
|
|
ldr r0, _081A3DBC
|
|
ldrb r3, [r0]
|
|
str r5, [sp]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, sp, #0x1c
|
|
str r0, [sp, #8]
|
|
mov r1, sb
|
|
str r1, [sp, #0xc]
|
|
adds r0, r7, #0
|
|
movs r1, #0
|
|
adds r2, r4, #0
|
|
bl AppendIfValid
|
|
b _081A3DDC
|
|
.align 2, 0
|
|
_081A3DB4: .4byte 0x000040CF
|
|
_081A3DB8: .4byte 0x02024190
|
|
_081A3DBC: .4byte 0x02037290
|
|
_081A3DC0:
|
|
ldr r0, _081A3E44
|
|
ldrb r3, [r0]
|
|
str r5, [sp]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, sp, #0x1c
|
|
str r0, [sp, #8]
|
|
mov r1, sb
|
|
str r1, [sp, #0xc]
|
|
adds r0, r7, #0
|
|
adds r1, r6, #0
|
|
adds r2, r4, #0
|
|
bl AppendIfValid
|
|
_081A3DDC:
|
|
movs r0, #1
|
|
add r8, r0
|
|
mov r1, r8
|
|
cmp r1, #5
|
|
ble _081A3D4A
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
cmp r0, sl
|
|
bge _081A3E6C
|
|
ldr r1, _081A3E48
|
|
movs r0, #0xff
|
|
strb r0, [r1]
|
|
ldr r1, _081A3E4C
|
|
movs r0, #1
|
|
strh r0, [r1]
|
|
movs r0, #0
|
|
mov r1, sb
|
|
strb r0, [r1]
|
|
ldr r2, _081A3E50
|
|
ldrh r0, [r2]
|
|
ldr r1, _081A3E54
|
|
cmp r0, r1
|
|
beq _081A3E22
|
|
mov r5, sb
|
|
adds r6, r1, #0
|
|
adds r4, r2, #0
|
|
_081A3E10:
|
|
ldrh r0, [r4]
|
|
ldrb r1, [r5]
|
|
bl sub_081A3B68
|
|
strb r0, [r5]
|
|
adds r4, #2
|
|
ldrh r0, [r4]
|
|
cmp r0, r6
|
|
bne _081A3E10
|
|
_081A3E22:
|
|
ldr r4, _081A3E48
|
|
adds r0, r4, #0
|
|
bl StringLength
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
mov r8, r0
|
|
subs r0, #1
|
|
adds r0, r0, r4
|
|
movs r1, #0xff
|
|
strb r1, [r0]
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
cmp r0, #2
|
|
bhi _081A3E5C
|
|
ldr r1, _081A3E58
|
|
b _081A3E5E
|
|
.align 2, 0
|
|
_081A3E44: .4byte 0x02037290
|
|
_081A3E48: .4byte 0x02021C40
|
|
_081A3E4C: .4byte 0x02037280
|
|
_081A3E50: .4byte 0x085DD48E
|
|
_081A3E54: .4byte 0x0000FFFF
|
|
_081A3E58: .4byte 0x085ABC72
|
|
_081A3E5C:
|
|
ldr r1, _081A3E68
|
|
_081A3E5E:
|
|
adds r0, r4, #0
|
|
bl StringAppend
|
|
b _081A3E8E
|
|
.align 2, 0
|
|
_081A3E68: .4byte 0x085ABC75
|
|
_081A3E6C:
|
|
ldr r1, _081A3EA0
|
|
movs r0, #0
|
|
strh r0, [r1]
|
|
ldr r0, _081A3EA4
|
|
ldr r2, [r0]
|
|
ldr r0, _081A3EA8
|
|
ldrb r0, [r0]
|
|
ldr r1, _081A3EAC
|
|
adds r2, r2, r1
|
|
movs r1, #3
|
|
ands r1, r0
|
|
ldrb r3, [r2]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_081A3E8E:
|
|
add sp, #0x2c
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A3EA0: .4byte 0x02037280
|
|
_081A3EA4: .4byte 0x03005AF0
|
|
_081A3EA8: .4byte 0x02037290
|
|
_081A3EAC: .4byte 0x00000CA9
|
|
thumb_func_end sub_081A3CF0
|
|
|
|
thumb_func_start sub_081A3EB0
|
|
sub_081A3EB0: @ 0x081A3EB0
|
|
push {lr}
|
|
bl ValidateEReaderTrainer
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end sub_081A3EB0
|
|
|
|
thumb_func_start sub_081A3EBC
|
|
sub_081A3EBC: @ 0x081A3EBC
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r0, _081A3EF0
|
|
ldr r0, [r0]
|
|
ldr r1, _081A3EF4
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1e
|
|
lsrs r4, r0, #0x1e
|
|
ldr r0, _081A3EF8
|
|
bl VarGet
|
|
lsls r0, r0, #0x10
|
|
lsrs r5, r0, #0x10
|
|
ldr r0, _081A3EFC
|
|
bl VarGet
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, #6
|
|
bls _081A3EE6
|
|
b _081A4020
|
|
_081A3EE6:
|
|
lsls r0, r0, #2
|
|
ldr r1, _081A3F00
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_081A3EF0: .4byte 0x03005AF0
|
|
_081A3EF4: .4byte 0x00000CA9
|
|
_081A3EF8: .4byte 0x000040CE
|
|
_081A3EFC: .4byte 0x000040CF
|
|
_081A3F00: .4byte 0x081A3F04
|
|
_081A3F04: @ jump table
|
|
.4byte _081A3F20 @ case 0
|
|
.4byte _081A3F68 @ case 1
|
|
.4byte _081A3FA8 @ case 2
|
|
.4byte _081A3FC4 @ case 3
|
|
.4byte _081A3FD8 @ case 4
|
|
.4byte _081A3FF4 @ case 5
|
|
.4byte _081A4008 @ case 6
|
|
_081A3F20:
|
|
ldr r7, _081A3F5C
|
|
ldr r0, [r7]
|
|
lsls r4, r4, #1
|
|
lsls r1, r5, #2
|
|
adds r1, r4, r1
|
|
movs r6, #0xce
|
|
lsls r6, r6, #4
|
|
adds r3, r0, r6
|
|
adds r2, r3, r1
|
|
ldrh r1, [r2]
|
|
ldr r0, _081A3F60
|
|
cmp r1, r0
|
|
bhi _081A4020
|
|
adds r0, r1, #1
|
|
strh r0, [r2]
|
|
cmp r5, #0
|
|
bne _081A4020
|
|
adds r0, r3, r4
|
|
ldrh r1, [r0]
|
|
movs r0, #0x20
|
|
bl SetGameStat
|
|
ldr r1, [r7]
|
|
adds r0, r1, r6
|
|
adds r0, r0, r4
|
|
ldrh r0, [r0]
|
|
ldr r2, _081A3F64
|
|
adds r1, r1, r2
|
|
b _081A401E
|
|
.align 2, 0
|
|
_081A3F5C: .4byte 0x03005AF0
|
|
_081A3F60: .4byte 0x0000270E
|
|
_081A3F64: .4byte 0x00000D02
|
|
_081A3F68:
|
|
ldr r6, _081A3F98
|
|
ldr r0, [r6]
|
|
lsls r2, r4, #1
|
|
lsls r1, r5, #2
|
|
adds r1, r2, r1
|
|
ldr r3, _081A3F9C
|
|
adds r0, r0, r3
|
|
adds r3, r0, r1
|
|
ldrh r0, [r3]
|
|
ldr r2, _081A3FA0
|
|
cmp r0, r2
|
|
bhi _081A3F84
|
|
adds r0, #1
|
|
strh r0, [r3]
|
|
_081A3F84:
|
|
ldr r0, [r6]
|
|
ldr r3, _081A3FA4
|
|
adds r0, r0, r3
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1]
|
|
cmp r0, r2
|
|
bhi _081A4020
|
|
adds r0, #1
|
|
b _081A401E
|
|
.align 2, 0
|
|
_081A3F98: .4byte 0x03005AF0
|
|
_081A3F9C: .4byte 0x00000D0C
|
|
_081A3FA0: .4byte 0x0000270E
|
|
_081A3FA4: .4byte 0x00000D1C
|
|
_081A3FA8:
|
|
ldr r0, _081A3FBC
|
|
ldr r2, [r0]
|
|
lsls r0, r4, #1
|
|
lsls r1, r5, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081A3FC0
|
|
adds r2, r2, r1
|
|
adds r1, r2, r0
|
|
b _081A4014
|
|
.align 2, 0
|
|
_081A3FBC: .4byte 0x03005AF0
|
|
_081A3FC0: .4byte 0x00000DC8
|
|
_081A3FC4:
|
|
ldr r0, _081A3FD0
|
|
ldr r0, [r0]
|
|
lsls r1, r4, #1
|
|
ldr r2, _081A3FD4
|
|
adds r0, r0, r2
|
|
b _081A4012
|
|
.align 2, 0
|
|
_081A3FD0: .4byte 0x03005AF0
|
|
_081A3FD4: .4byte 0x00000DDA
|
|
_081A3FD8:
|
|
ldr r0, _081A3FEC
|
|
ldr r2, [r0]
|
|
lsls r0, r4, #1
|
|
lsls r1, r5, #2
|
|
adds r0, r0, r1
|
|
ldr r3, _081A3FF0
|
|
adds r2, r2, r3
|
|
adds r1, r2, r0
|
|
b _081A4014
|
|
.align 2, 0
|
|
_081A3FEC: .4byte 0x03005AF0
|
|
_081A3FF0: .4byte 0x00000DE2
|
|
_081A3FF4:
|
|
ldr r0, _081A4000
|
|
ldr r0, [r0]
|
|
lsls r1, r4, #1
|
|
ldr r2, _081A4004
|
|
adds r0, r0, r2
|
|
b _081A4012
|
|
.align 2, 0
|
|
_081A4000: .4byte 0x03005AF0
|
|
_081A4004: .4byte 0x00000E04
|
|
_081A4008:
|
|
ldr r0, _081A4028
|
|
ldr r0, [r0]
|
|
lsls r1, r4, #1
|
|
ldr r3, _081A402C
|
|
adds r0, r0, r3
|
|
_081A4012:
|
|
adds r1, r0, r1
|
|
_081A4014:
|
|
ldrh r3, [r1]
|
|
ldr r0, _081A4030
|
|
cmp r3, r0
|
|
bhi _081A4020
|
|
adds r0, r3, #1
|
|
_081A401E:
|
|
strh r0, [r1]
|
|
_081A4020:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A4028: .4byte 0x03005AF0
|
|
_081A402C: .4byte 0x00000E1A
|
|
_081A4030: .4byte 0x0000270E
|
|
thumb_func_end sub_081A3EBC
|
|
|
|
thumb_func_start sub_081A4034
|
|
sub_081A4034: @ 0x081A4034
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #4
|
|
movs r4, #0
|
|
ldr r6, _081A408C
|
|
movs r5, #0x64
|
|
_081A403E:
|
|
ldr r0, _081A4090
|
|
ldr r0, [r0]
|
|
lsls r1, r4, #1
|
|
ldr r2, _081A4094
|
|
adds r0, r0, r2
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
beq _081A407A
|
|
adds r1, r0, #0
|
|
muls r1, r5, r1
|
|
movs r0, #0xea
|
|
lsls r0, r0, #1
|
|
adds r1, r1, r0
|
|
ldr r0, [r6]
|
|
adds r0, r0, r1
|
|
movs r1, #0xc
|
|
movs r2, #0
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
adds r0, r4, #0
|
|
muls r0, r5, r0
|
|
ldr r1, _081A4098
|
|
adds r0, r0, r1
|
|
movs r1, #0xc
|
|
mov r2, sp
|
|
bl SetMonData
|
|
_081A407A:
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #3
|
|
bls _081A403E
|
|
add sp, #4
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A408C: .4byte 0x03005AEC
|
|
_081A4090: .4byte 0x03005AF0
|
|
_081A4094: .4byte 0x00000CAA
|
|
_081A4098: .4byte 0x02024190
|
|
thumb_func_end sub_081A4034
|
|
|
|
thumb_func_start PrintAligned
|
|
PrintAligned: @ 0x081A409C
|
|
push {r4, lr}
|
|
ldr r4, _081A40BC
|
|
bl MoveRecordedBattleToSaveData
|
|
strh r0, [r4]
|
|
ldr r0, _081A40C0
|
|
ldr r1, [r0]
|
|
ldr r0, _081A40C4
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
movs r2, #8
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A40BC: .4byte 0x02037290
|
|
_081A40C0: .4byte 0x03005AF0
|
|
_081A40C4: .4byte 0x00000CA9
|
|
thumb_func_end PrintAligned
|
|
|
|
thumb_func_start GetFrontierBrainTrainerClass
|
|
GetFrontierBrainTrainerClass: @ 0x081A40C8
|
|
push {lr}
|
|
ldr r0, _081A40D8
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
beq _081A40DC
|
|
cmp r0, #1
|
|
beq _081A40F0
|
|
b _081A40FA
|
|
.align 2, 0
|
|
_081A40D8: .4byte 0x02037282
|
|
_081A40DC:
|
|
ldr r0, _081A40E8
|
|
ldr r1, _081A40EC
|
|
ldrh r1, [r1]
|
|
bl GetFrontierTrainerName
|
|
b _081A40FA
|
|
.align 2, 0
|
|
_081A40E8: .4byte 0x02021C40
|
|
_081A40EC: .4byte 0x0203886A
|
|
_081A40F0:
|
|
ldr r0, _081A4100
|
|
ldr r1, _081A4104
|
|
ldrh r1, [r1]
|
|
bl GetFrontierTrainerName
|
|
_081A40FA:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A4100: .4byte 0x02021C54
|
|
_081A4104: .4byte 0x0203886A
|
|
thumb_func_end GetFrontierBrainTrainerClass
|
|
|
|
thumb_func_start sub_081A4108
|
|
sub_081A4108: @ 0x081A4108
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #8
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
_081A4118:
|
|
ldr r1, _081A41F8
|
|
ldr r0, [r1]
|
|
ldr r2, [sp]
|
|
lsls r1, r2, #1
|
|
ldr r4, _081A41FC
|
|
adds r0, r0, r4
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
subs r0, #1
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
mov sb, r1
|
|
adds r2, #1
|
|
str r2, [sp, #4]
|
|
cmp r0, #5
|
|
bhi _081A41DA
|
|
movs r6, #0
|
|
ldr r0, [sp]
|
|
movs r2, #0x64
|
|
adds r1, r0, #0
|
|
muls r1, r2, r1
|
|
ldr r0, _081A4200
|
|
adds r7, r1, r0
|
|
_081A4146:
|
|
movs r5, #0
|
|
movs r4, #0xd
|
|
adds r4, r4, r6
|
|
mov r8, r4
|
|
adds r0, r6, #1
|
|
mov sl, r0
|
|
_081A4152:
|
|
ldr r1, _081A41F8
|
|
ldr r0, [r1]
|
|
ldr r2, _081A41FC
|
|
adds r0, r0, r2
|
|
add r0, sb
|
|
ldrh r0, [r0]
|
|
movs r4, #0x64
|
|
adds r1, r0, #0
|
|
muls r1, r4, r1
|
|
movs r0, #0xea
|
|
lsls r0, r0, #1
|
|
adds r1, r1, r0
|
|
ldr r2, _081A4204
|
|
ldr r0, [r2]
|
|
adds r0, r0, r1
|
|
adds r1, r5, #0
|
|
adds r1, #0xd
|
|
movs r2, #0
|
|
bl GetMonData
|
|
adds r4, r0, #0
|
|
adds r0, r7, #0
|
|
mov r1, r8
|
|
movs r2, #0
|
|
bl GetMonData
|
|
cmp r4, r0
|
|
beq _081A4194
|
|
adds r0, r5, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
cmp r5, #3
|
|
bls _081A4152
|
|
_081A4194:
|
|
cmp r5, #4
|
|
bne _081A41A2
|
|
adds r0, r7, #0
|
|
movs r1, #0xa6
|
|
adds r2, r6, #0
|
|
bl SetMonMoveSlot
|
|
_081A41A2:
|
|
mov r4, sl
|
|
lsls r0, r4, #0x18
|
|
lsrs r6, r0, #0x18
|
|
cmp r6, #3
|
|
bls _081A4146
|
|
ldr r0, _081A4204
|
|
ldr r0, [r0]
|
|
ldr r2, _081A41F8
|
|
ldr r1, [r2]
|
|
ldr r4, _081A41FC
|
|
adds r1, r1, r4
|
|
add r1, sb
|
|
ldrh r1, [r1]
|
|
subs r1, #1
|
|
movs r3, #0x64
|
|
muls r1, r3, r1
|
|
adds r0, r0, r1
|
|
movs r1, #0x8e
|
|
lsls r1, r1, #2
|
|
adds r0, r0, r1
|
|
ldr r2, _081A4200
|
|
ldr r4, [sp]
|
|
adds r1, r4, #0
|
|
muls r1, r3, r1
|
|
adds r1, r1, r2
|
|
movs r2, #0x64
|
|
bl memcpy
|
|
_081A41DA:
|
|
ldr r1, [sp, #4]
|
|
lsls r0, r1, #0x18
|
|
lsrs r0, r0, #0x18
|
|
str r0, [sp]
|
|
cmp r0, #3
|
|
bls _081A4118
|
|
add sp, #8
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A41F8: .4byte 0x03005AF0
|
|
_081A41FC: .4byte 0x00000CAA
|
|
_081A4200: .4byte 0x02024190
|
|
_081A4204: .4byte 0x03005AEC
|
|
thumb_func_end sub_081A4108
|
|
|
|
thumb_func_start GetFrontierBrainTrainerPicIndex
|
|
GetFrontierBrainTrainerPicIndex: @ 0x081A4208
|
|
push {lr}
|
|
ldr r0, _081A421C
|
|
bl VarGet
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl SetFrontierBrainEventObjGfx
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A421C: .4byte 0x000040CF
|
|
thumb_func_end GetFrontierBrainTrainerPicIndex
|
|
|
|
thumb_func_start Print1PRecord
|
|
Print1PRecord: @ 0x081A4220
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0xc
|
|
mov sb, r1
|
|
adds r6, r3, #0
|
|
ldr r1, _081A42DC
|
|
mov sl, r1
|
|
ldrb r5, [r1]
|
|
lsls r4, r0, #1
|
|
ldr r1, _081A42E0
|
|
adds r4, r4, r1
|
|
mov r1, sb
|
|
lsls r3, r1, #0x1b
|
|
lsrs r3, r3, #0x18
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
adds r2, r2, r1
|
|
lsls r2, r2, #3
|
|
adds r2, #2
|
|
lsls r2, r2, #0x18
|
|
lsrs r7, r2, #0x18
|
|
str r7, [sp]
|
|
movs r0, #0
|
|
mov r8, r0
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
adds r0, r5, #0
|
|
movs r1, #1
|
|
adds r2, r4, #0
|
|
bl AddTextPrinterParameterized
|
|
movs r0, #0xff
|
|
strb r0, [r6, #0xd]
|
|
ldrh r0, [r6, #4]
|
|
cmp r0, #0
|
|
beq _081A42CC
|
|
mov r1, sl
|
|
ldrb r0, [r1]
|
|
adds r2, r6, #6
|
|
mov r3, sb
|
|
adds r3, #2
|
|
lsls r3, r3, #0x1b
|
|
lsrs r3, r3, #0x18
|
|
str r7, [sp]
|
|
mov r1, r8
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
movs r1, #1
|
|
bl AddTextPrinterParameterized
|
|
ldrh r1, [r6, #4]
|
|
ldr r0, _081A42E4
|
|
cmp r1, r0
|
|
bls _081A4294
|
|
adds r1, r0, #0
|
|
_081A4294:
|
|
ldr r0, _081A42E8
|
|
movs r2, #1
|
|
movs r3, #4
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r4, _081A42EC
|
|
ldr r1, _081A42F0
|
|
ldr r0, [sp, #0x2c]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
adds r0, r4, #0
|
|
bl StringExpandPlaceholders
|
|
mov r1, sl
|
|
ldrb r0, [r1]
|
|
mov r3, sb
|
|
adds r3, #0xe
|
|
lsls r3, r3, #0x1b
|
|
lsrs r3, r3, #0x18
|
|
str r7, [sp]
|
|
mov r1, r8
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
movs r1, #1
|
|
adds r2, r4, #0
|
|
bl AddTextPrinterParameterized
|
|
_081A42CC:
|
|
add sp, #0xc
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A42DC: .4byte 0x0203A840
|
|
_081A42E0: .4byte 0x085DD564
|
|
_081A42E4: .4byte 0x0000270F
|
|
_081A42E8: .4byte 0x02021C54
|
|
_081A42EC: .4byte 0x02021C7C
|
|
_081A42F0: .4byte 0x085DD53C
|
|
thumb_func_end Print1PRecord
|
|
|
|
thumb_func_start FactoryPrintPrevOrCurrentStreak
|
|
FactoryPrintPrevOrCurrentStreak: @ 0x081A42F4
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0xc
|
|
mov r8, r1
|
|
adds r4, r2, #0
|
|
adds r6, r3, #0
|
|
ldr r1, _081A43E0
|
|
mov sb, r1
|
|
ldrb r5, [r1]
|
|
lsls r2, r0, #1
|
|
ldr r1, _081A43E4
|
|
adds r2, r2, r1
|
|
mov r1, r8
|
|
lsls r3, r1, #0x1b
|
|
lsrs r3, r3, #0x18
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
adds r4, r4, r1
|
|
lsls r0, r4, #3
|
|
adds r0, #2
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
mov sl, r0
|
|
str r0, [sp]
|
|
movs r7, #0
|
|
str r7, [sp, #4]
|
|
str r7, [sp, #8]
|
|
adds r0, r5, #0
|
|
movs r1, #1
|
|
bl AddTextPrinterParameterized
|
|
ldrh r0, [r6, #8]
|
|
cmp r0, #0
|
|
beq _081A43D0
|
|
movs r0, #0xff
|
|
strb r0, [r6, #0x11]
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
strb r0, [r6, #0x19]
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
adds r2, r6, #0
|
|
adds r2, #0xa
|
|
mov r3, r8
|
|
adds r3, #2
|
|
lsls r3, r3, #0x1b
|
|
lsrs r3, r3, #0x18
|
|
subs r1, r4, #1
|
|
lsls r1, r1, #3
|
|
adds r1, #2
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
str r1, [sp]
|
|
str r7, [sp, #4]
|
|
str r7, [sp, #8]
|
|
movs r1, #1
|
|
bl AddTextPrinterParameterized
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
adds r2, r6, #0
|
|
adds r2, #0x12
|
|
mov r3, r8
|
|
adds r3, #4
|
|
lsls r3, r3, #0x1b
|
|
lsrs r3, r3, #0x18
|
|
adds r1, r4, #1
|
|
lsls r1, r1, #3
|
|
adds r1, #2
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
str r1, [sp]
|
|
str r7, [sp, #4]
|
|
str r7, [sp, #8]
|
|
movs r1, #1
|
|
bl AddTextPrinterParameterized
|
|
ldrh r1, [r6, #8]
|
|
ldr r0, _081A43E8
|
|
cmp r1, r0
|
|
bls _081A439E
|
|
adds r1, r0, #0
|
|
_081A439E:
|
|
ldr r0, _081A43EC
|
|
movs r2, #1
|
|
movs r3, #4
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r4, _081A43F0
|
|
ldr r0, _081A43F4
|
|
ldr r1, [r0, #0x24]
|
|
adds r0, r4, #0
|
|
bl StringExpandPlaceholders
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
mov r3, r8
|
|
adds r3, #0xe
|
|
lsls r3, r3, #0x1b
|
|
lsrs r3, r3, #0x18
|
|
mov r1, sl
|
|
str r1, [sp]
|
|
str r7, [sp, #4]
|
|
str r7, [sp, #8]
|
|
movs r1, #1
|
|
adds r2, r4, #0
|
|
bl AddTextPrinterParameterized
|
|
_081A43D0:
|
|
add sp, #0xc
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A43E0: .4byte 0x0203A840
|
|
_081A43E4: .4byte 0x085DD564
|
|
_081A43E8: .4byte 0x0000270F
|
|
_081A43EC: .4byte 0x02021C54
|
|
_081A43F0: .4byte 0x02021C7C
|
|
_081A43F4: .4byte 0x085DD53C
|
|
thumb_func_end FactoryPrintPrevOrCurrentStreak
|
|
|
|
thumb_func_start Fill1PRecords
|
|
Fill1PRecords: @ 0x081A43F8
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x44
|
|
mov sb, r0
|
|
mov sl, r1
|
|
str r2, [sp, #0x40]
|
|
movs r0, #0xac
|
|
lsls r0, r0, #1
|
|
bl AllocZeroed
|
|
mov r8, r0
|
|
bl GetPlayerHallRecords
|
|
add r0, sp, #0x30
|
|
mov ip, r0
|
|
ldr r0, _081A44C8
|
|
ldr r2, [r0]
|
|
ldr r3, [sp, #0x40]
|
|
lsls r1, r3, #1
|
|
adds r1, r1, r3
|
|
lsls r1, r1, #4
|
|
mov r4, sl
|
|
lsls r0, r4, #1
|
|
add r0, sl
|
|
lsls r0, r0, #5
|
|
adds r1, r1, r0
|
|
adds r4, r1, r2
|
|
mov r3, sp
|
|
movs r2, #2
|
|
_081A4438:
|
|
adds r0, r3, #0
|
|
movs r5, #0x87
|
|
lsls r5, r5, #2
|
|
adds r1, r4, r5
|
|
ldm r1!, {r5, r6, r7}
|
|
stm r0!, {r5, r6, r7}
|
|
ldr r1, [r1]
|
|
str r1, [r0]
|
|
adds r4, #0x10
|
|
adds r3, #0x10
|
|
subs r2, #1
|
|
cmp r2, #0
|
|
bge _081A4438
|
|
ldr r6, [sp, #0x40]
|
|
lsls r0, r6, #4
|
|
mov r7, sl
|
|
lsls r1, r7, #5
|
|
adds r0, r0, r1
|
|
mov r1, ip
|
|
add r0, r8
|
|
ldm r0!, {r2, r3, r4}
|
|
stm r1!, {r2, r3, r4}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
movs r2, #0
|
|
_081A446A:
|
|
movs r1, #0
|
|
movs r4, #0
|
|
movs r3, #0
|
|
lsls r5, r2, #4
|
|
adds r6, r2, #1
|
|
mov r2, sp
|
|
_081A4476:
|
|
ldrh r0, [r2, #4]
|
|
cmp r0, r1
|
|
ble _081A4480
|
|
adds r4, r3, #0
|
|
adds r1, r0, #0
|
|
_081A4480:
|
|
adds r2, #0x10
|
|
adds r3, #1
|
|
cmp r3, #3
|
|
ble _081A4476
|
|
mov r0, sp
|
|
ldrh r0, [r0, #0x34]
|
|
cmp r0, r1
|
|
blt _081A4492
|
|
movs r4, #3
|
|
_081A4492:
|
|
lsls r0, r4, #4
|
|
mov r7, sp
|
|
adds r2, r7, r0
|
|
mov r0, sb
|
|
adds r1, r5, r0
|
|
adds r0, r2, #0
|
|
ldm r0!, {r3, r4, r5}
|
|
stm r1!, {r3, r4, r5}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
movs r0, #0
|
|
strh r0, [r2, #4]
|
|
adds r2, r6, #0
|
|
cmp r2, #2
|
|
ble _081A446A
|
|
mov r0, r8
|
|
bl Free
|
|
add sp, #0x44
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A44C8: .4byte 0x03005AF0
|
|
thumb_func_end Fill1PRecords
|
|
|
|
thumb_func_start Fill2PRecords
|
|
Fill2PRecords: @ 0x081A44CC
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x74
|
|
mov sb, r0
|
|
mov sl, r1
|
|
movs r0, #0xac
|
|
lsls r0, r0, #1
|
|
bl AllocZeroed
|
|
mov r8, r0
|
|
bl GetPlayerHallRecords
|
|
mov r0, sp
|
|
adds r0, #0x54
|
|
str r0, [sp, #0x70]
|
|
add r1, sp, #0x5c
|
|
mov ip, r1
|
|
ldr r0, _081A45A8
|
|
ldr r1, [r0]
|
|
movs r0, #0x54
|
|
mov r2, sl
|
|
muls r2, r0, r2
|
|
adds r0, r2, #0
|
|
adds r3, r0, r1
|
|
mov r2, sp
|
|
movs r4, #2
|
|
_081A4506:
|
|
adds r0, r2, #0
|
|
ldr r5, _081A45AC
|
|
adds r1, r3, r5
|
|
ldm r1!, {r5, r6, r7}
|
|
stm r0!, {r5, r6, r7}
|
|
ldm r1!, {r5, r6, r7}
|
|
stm r0!, {r5, r6, r7}
|
|
ldr r1, [r1]
|
|
str r1, [r0]
|
|
adds r3, #0x1c
|
|
adds r2, #0x1c
|
|
subs r4, #1
|
|
cmp r4, #0
|
|
bge _081A4506
|
|
mov r6, sl
|
|
lsls r0, r6, #3
|
|
subs r0, r0, r6
|
|
lsls r0, r0, #2
|
|
add r0, r8
|
|
ldr r1, [sp, #0x70]
|
|
movs r7, #0x90
|
|
lsls r7, r7, #1
|
|
adds r0, r0, r7
|
|
ldm r0!, {r2, r3, r4}
|
|
stm r1!, {r2, r3, r4}
|
|
ldm r0!, {r5, r6, r7}
|
|
stm r1!, {r5, r6, r7}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
movs r4, #0
|
|
_081A4542:
|
|
movs r1, #0
|
|
movs r5, #0
|
|
movs r3, #0
|
|
lsls r6, r4, #3
|
|
adds r7, r4, #1
|
|
mov r2, sp
|
|
_081A454E:
|
|
ldrh r0, [r2, #8]
|
|
cmp r0, r1
|
|
ble _081A4558
|
|
adds r5, r3, #0
|
|
adds r1, r0, #0
|
|
_081A4558:
|
|
adds r2, #0x1c
|
|
adds r3, #1
|
|
cmp r3, #2
|
|
ble _081A454E
|
|
mov r2, ip
|
|
ldrh r0, [r2]
|
|
cmp r0, r1
|
|
blt _081A456A
|
|
movs r5, #3
|
|
_081A456A:
|
|
subs r1, r6, r4
|
|
lsls r1, r1, #2
|
|
lsls r0, r5, #3
|
|
subs r0, r0, r5
|
|
lsls r0, r0, #2
|
|
mov r3, sp
|
|
adds r2, r3, r0
|
|
add r1, sb
|
|
adds r0, r2, #0
|
|
ldm r0!, {r4, r5, r6}
|
|
stm r1!, {r4, r5, r6}
|
|
ldm r0!, {r3, r4, r5}
|
|
stm r1!, {r3, r4, r5}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
movs r0, #0
|
|
strh r0, [r2, #8]
|
|
adds r4, r7, #0
|
|
cmp r4, #2
|
|
ble _081A4542
|
|
mov r0, r8
|
|
bl Free
|
|
add sp, #0x74
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A45A8: .4byte 0x03005AF0
|
|
_081A45AC: .4byte 0x0000057C
|
|
thumb_func_end Fill2PRecords
|
|
|
|
thumb_func_start DomePrintPrevOrCurrentStreak
|
|
DomePrintPrevOrCurrentStreak: @ 0x081A45B0
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
sub sp, #0x90
|
|
adds r7, r0, #0
|
|
mov sb, r1
|
|
ldr r0, _081A464C
|
|
ldr r4, _081A4650
|
|
lsls r5, r7, #3
|
|
adds r1, r5, r4
|
|
ldr r1, [r1]
|
|
bl StringCopy
|
|
ldr r0, _081A4654
|
|
mov r8, r0
|
|
adds r4, #4
|
|
adds r5, r5, r4
|
|
ldr r1, [r5]
|
|
bl StringExpandPlaceholders
|
|
ldr r5, _081A4658
|
|
ldrb r0, [r5]
|
|
movs r6, #2
|
|
str r6, [sp]
|
|
movs r4, #0
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
mov r2, r8
|
|
movs r3, #0xc
|
|
bl AddTextPrinterParameterized
|
|
ldrb r0, [r5]
|
|
ldr r2, _081A465C
|
|
mov r3, sb
|
|
lsls r1, r3, #2
|
|
adds r1, r1, r2
|
|
ldr r2, [r1]
|
|
str r6, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r3, #0x84
|
|
bl AddTextPrinterParameterized
|
|
cmp r7, #9
|
|
bne _081A4668
|
|
ldr r2, _081A4660
|
|
ldr r0, [r2]
|
|
ldr r1, _081A4664
|
|
adds r0, r0, r1
|
|
movs r1, #0xff
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
movs r3, #0xef
|
|
lsls r3, r3, #4
|
|
adds r0, r0, r3
|
|
movs r1, #1
|
|
rsbs r1, r1, #0
|
|
strb r1, [r0]
|
|
add r4, sp, #0x3c
|
|
adds r0, r4, #0
|
|
mov r1, sb
|
|
bl Fill2PRecords
|
|
movs r5, #0
|
|
_081A4636:
|
|
adds r0, r5, #0
|
|
movs r1, #1
|
|
movs r2, #4
|
|
adds r3, r4, #0
|
|
bl FactoryPrintPrevOrCurrentStreak
|
|
adds r4, #0x1c
|
|
adds r5, #1
|
|
cmp r5, #2
|
|
ble _081A4636
|
|
b _081A468C
|
|
.align 2, 0
|
|
_081A464C: .4byte 0x02021C40
|
|
_081A4650: .4byte 0x085DD4A4
|
|
_081A4654: .4byte 0x02021C7C
|
|
_081A4658: .4byte 0x0203A840
|
|
_081A465C: .4byte 0x085DD504
|
|
_081A4660: .4byte 0x03005AF0
|
|
_081A4664: .4byte 0x00000EE8
|
|
_081A4668:
|
|
add r0, sp, #0xc
|
|
adds r1, r7, #0
|
|
mov r2, sb
|
|
bl Fill1PRecords
|
|
movs r5, #0
|
|
add r4, sp, #0xc
|
|
_081A4676:
|
|
str r7, [sp]
|
|
adds r0, r5, #0
|
|
movs r1, #1
|
|
movs r2, #4
|
|
adds r3, r4, #0
|
|
bl Print1PRecord
|
|
adds r4, #0x10
|
|
adds r5, #1
|
|
cmp r5, #2
|
|
ble _081A4676
|
|
_081A468C:
|
|
add sp, #0x90
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end DomePrintPrevOrCurrentStreak
|
|
|
|
thumb_func_start ShowRankingHallRecordsWindow
|
|
ShowRankingHallRecordsWindow: @ 0x081A469C
|
|
push {r4, lr}
|
|
ldr r4, _081A46D8
|
|
ldr r0, _081A46DC
|
|
bl AddWindow
|
|
strb r0, [r4]
|
|
ldrb r0, [r4]
|
|
movs r1, #0
|
|
bl ClearStdWindowAndFrame
|
|
ldrb r0, [r4]
|
|
movs r1, #0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, _081A46E0
|
|
ldrh r0, [r0]
|
|
movs r1, #0
|
|
bl DomePrintPrevOrCurrentStreak
|
|
ldrb r0, [r4]
|
|
bl PutWindowTilemap
|
|
ldrb r0, [r4]
|
|
movs r1, #3
|
|
bl CopyWindowToVram
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A46D8: .4byte 0x0203A840
|
|
_081A46DC: .4byte 0x085DD2E0
|
|
_081A46E0: .4byte 0x02037282
|
|
thumb_func_end ShowRankingHallRecordsWindow
|
|
|
|
thumb_func_start ScrollRankingHallRecordsWindow
|
|
ScrollRankingHallRecordsWindow: @ 0x081A46E4
|
|
push {r4, lr}
|
|
ldr r4, _081A4708
|
|
ldrb r0, [r4]
|
|
movs r1, #0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, _081A470C
|
|
ldrh r0, [r0]
|
|
movs r1, #1
|
|
bl DomePrintPrevOrCurrentStreak
|
|
ldrb r0, [r4]
|
|
movs r1, #2
|
|
bl CopyWindowToVram
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A4708: .4byte 0x0203A840
|
|
_081A470C: .4byte 0x02037282
|
|
thumb_func_end ScrollRankingHallRecordsWindow
|
|
|
|
thumb_func_start ClearRankingHallRecords
|
|
ClearRankingHallRecords: @ 0x081A4710
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #8
|
|
movs r1, #0
|
|
ldr r3, _081A4814
|
|
_081A4720:
|
|
movs r6, #0
|
|
lsls r0, r1, #1
|
|
adds r2, r1, #1
|
|
mov sl, r2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #5
|
|
mov r8, r0
|
|
movs r7, #0
|
|
movs r0, #0x87
|
|
lsls r0, r0, #2
|
|
add r0, r8
|
|
mov sb, r0
|
|
_081A4738:
|
|
movs r5, #0
|
|
adds r2, r7, #0
|
|
mov r1, r8
|
|
adds r4, r7, r1
|
|
_081A4740:
|
|
ldr r0, [r3]
|
|
add r0, sb
|
|
adds r0, r0, r2
|
|
lsls r1, r5, #4
|
|
adds r0, r0, r1
|
|
movs r1, #0
|
|
str r2, [sp]
|
|
str r3, [sp, #4]
|
|
bl CopyTrainerId
|
|
ldr r3, [sp, #4]
|
|
ldr r0, [r3]
|
|
adds r0, r0, r4
|
|
ldr r1, _081A4818
|
|
adds r0, r0, r1
|
|
movs r1, #0xff
|
|
strb r1, [r0]
|
|
ldr r0, [r3]
|
|
adds r0, r0, r4
|
|
movs r1, #0x88
|
|
lsls r1, r1, #2
|
|
adds r0, r0, r1
|
|
movs r1, #0
|
|
strh r1, [r0]
|
|
adds r4, #0x10
|
|
adds r5, #1
|
|
ldr r2, [sp]
|
|
cmp r5, #2
|
|
ble _081A4740
|
|
adds r7, #0x30
|
|
adds r6, #1
|
|
cmp r6, #1
|
|
ble _081A4738
|
|
mov r1, sl
|
|
cmp r1, #8
|
|
ble _081A4720
|
|
movs r6, #0
|
|
ldr r7, _081A4814
|
|
movs r2, #0x54
|
|
mov sl, r2
|
|
movs r3, #0xff
|
|
mov sb, r3
|
|
_081A4794:
|
|
adds r0, r6, #1
|
|
mov r8, r0
|
|
mov r1, sl
|
|
muls r1, r6, r1
|
|
movs r0, #0x54
|
|
adds r4, r6, #0
|
|
muls r4, r0, r4
|
|
movs r2, #0
|
|
ldr r3, _081A481C
|
|
adds r6, r1, r3
|
|
movs r5, #2
|
|
_081A47AA:
|
|
ldr r0, [r7]
|
|
adds r0, r0, r6
|
|
adds r0, r0, r2
|
|
movs r1, #0
|
|
str r2, [sp]
|
|
bl CopyTrainerId
|
|
ldr r0, [r7]
|
|
adds r0, r0, r6
|
|
ldr r2, [sp]
|
|
adds r0, r0, r2
|
|
adds r0, #4
|
|
movs r1, #0
|
|
bl CopyTrainerId
|
|
ldr r1, [r7]
|
|
adds r1, r1, r4
|
|
ldr r0, _081A4820
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
mov r3, sb
|
|
orrs r0, r3
|
|
strb r0, [r1]
|
|
ldr r1, [r7]
|
|
adds r1, r1, r4
|
|
ldr r0, _081A4824
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
orrs r0, r3
|
|
strb r0, [r1]
|
|
ldr r0, [r7]
|
|
adds r0, r0, r4
|
|
ldr r1, _081A4828
|
|
adds r0, r0, r1
|
|
movs r1, #0
|
|
strh r1, [r0]
|
|
adds r4, #0x1c
|
|
ldr r2, [sp]
|
|
adds r2, #0x1c
|
|
subs r5, #1
|
|
cmp r5, #0
|
|
bge _081A47AA
|
|
mov r6, r8
|
|
cmp r6, #1
|
|
ble _081A4794
|
|
add sp, #8
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A4814: .4byte 0x03005AF0
|
|
_081A4818: .4byte 0x00000222
|
|
_081A481C: .4byte 0x0000057C
|
|
_081A4820: .4byte 0x00000586
|
|
_081A4824: .4byte 0x0000058E
|
|
_081A4828: .4byte 0x00000584
|
|
thumb_func_end ClearRankingHallRecords
|
|
|
|
thumb_func_start sub_081A482C
|
|
sub_081A482C: @ 0x081A482C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r0, #0x96
|
|
lsls r0, r0, #2
|
|
bl AllocZeroed
|
|
adds r7, r0, #0
|
|
adds r4, r7, #0
|
|
movs r5, #0
|
|
movs r0, #0xfa
|
|
lsls r0, r0, #1
|
|
adds r6, r7, r0
|
|
ldr r0, _081A48A4
|
|
mov r8, r0
|
|
_081A484A:
|
|
mov r0, r8
|
|
adds r1, r5, r0
|
|
adds r0, r4, #0
|
|
movs r2, #0x64
|
|
bl memcpy
|
|
adds r4, #0x64
|
|
adds r5, #0x64
|
|
cmp r4, r6
|
|
ble _081A484A
|
|
ldr r4, _081A48A8
|
|
ldrb r5, [r4]
|
|
bl LoadPlayerParty
|
|
bl SetContinueGameWarpStatusToDynamicWarp
|
|
movs r0, #1
|
|
bl TrySavingData
|
|
bl ClearContinueGameWarpStatus
|
|
strb r5, [r4]
|
|
adds r4, r7, #0
|
|
ldr r5, _081A48A4
|
|
movs r0, #0xfa
|
|
lsls r0, r0, #1
|
|
adds r6, r7, r0
|
|
_081A4880:
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
movs r2, #0x64
|
|
bl memcpy
|
|
adds r4, #0x64
|
|
adds r5, #0x64
|
|
cmp r4, r6
|
|
ble _081A4880
|
|
adds r0, r7, #0
|
|
bl Free
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A48A4: .4byte 0x02024190
|
|
_081A48A8: .4byte 0x0202418D
|
|
thumb_func_end sub_081A482C
|
|
|
|
thumb_func_start PrintHyphens
|
|
PrintHyphens: @ 0x081A48AC
|
|
push {lr}
|
|
ldr r0, _081A48C8
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x11
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _081A48CC
|
|
bl GetRecordedBattleApprenticeLanguage
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
b _081A48D6
|
|
.align 2, 0
|
|
_081A48C8: .4byte 0x02022C90
|
|
_081A48CC:
|
|
ldr r0, _081A48EC
|
|
bl VarGet
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
_081A48D6:
|
|
ldr r2, _081A48F0
|
|
ldr r1, _081A48F4
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
lsls r0, r0, #5
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #3]
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_081A48EC: .4byte 0x000040CF
|
|
_081A48F0: .4byte 0x082E383C
|
|
_081A48F4: .4byte 0x085DD56A
|
|
thumb_func_end PrintHyphens
|
|
|
|
thumb_func_start sub_081A48F8
|
|
sub_081A48F8: @ 0x081A48F8
|
|
push {lr}
|
|
ldr r0, _081A4914
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x11
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _081A4918
|
|
bl GetRecordedBattleApprenticeLanguage
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
b _081A4922
|
|
.align 2, 0
|
|
_081A4914: .4byte 0x02022C90
|
|
_081A4918:
|
|
ldr r0, _081A4938
|
|
bl VarGet
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
_081A4922:
|
|
ldr r2, _081A493C
|
|
ldr r1, _081A4940
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
lsls r0, r0, #5
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #1]
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_081A4938: .4byte 0x000040CF
|
|
_081A493C: .4byte 0x082E383C
|
|
_081A4940: .4byte 0x085DD56A
|
|
thumb_func_end sub_081A48F8
|
|
|
|
thumb_func_start CopyFrontierBrainTrainerName
|
|
CopyFrontierBrainTrainerName: @ 0x081A4944
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r0, _081A4960
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x11
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _081A4964
|
|
bl GetRecordedBattleApprenticeLanguage
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
b _081A496E
|
|
.align 2, 0
|
|
_081A4960: .4byte 0x02022C90
|
|
_081A4964:
|
|
ldr r0, _081A499C
|
|
bl VarGet
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
_081A496E:
|
|
movs r3, #0
|
|
lsls r0, r0, #1
|
|
ldr r2, _081A49A0
|
|
ldr r1, _081A49A4
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
lsls r0, r0, #5
|
|
adds r2, #4
|
|
adds r2, r0, r2
|
|
_081A4980:
|
|
adds r1, r4, r3
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
adds r2, #1
|
|
adds r3, #1
|
|
cmp r3, #6
|
|
ble _081A4980
|
|
adds r1, r4, r3
|
|
movs r0, #0xff
|
|
strb r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A499C: .4byte 0x000040CF
|
|
_081A49A0: .4byte 0x082E383C
|
|
_081A49A4: .4byte 0x085DD56A
|
|
thumb_func_end CopyFrontierBrainTrainerName
|
|
|
|
thumb_func_start IsFrontierBrainFemale
|
|
IsFrontierBrainFemale: @ 0x081A49A8
|
|
push {lr}
|
|
ldr r0, _081A49C0
|
|
bl VarGet
|
|
lsls r0, r0, #0x10
|
|
ldr r1, _081A49C4
|
|
lsrs r0, r0, #0xf
|
|
adds r1, #1
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_081A49C0: .4byte 0x000040CF
|
|
_081A49C4: .4byte 0x085DD47F
|
|
thumb_func_end IsFrontierBrainFemale
|
|
|
|
thumb_func_start SetFrontierBrainEventObjGfx_2
|
|
SetFrontierBrainEventObjGfx_2: @ 0x081A49C8
|
|
push {lr}
|
|
ldr r0, _081A49E8
|
|
bl VarGet
|
|
lsls r0, r0, #0x10
|
|
ldr r2, _081A49EC
|
|
ldr r1, _081A49F0
|
|
lsrs r0, r0, #0xf
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r2, #0
|
|
bl VarSet
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A49E8: .4byte 0x000040CF
|
|
_081A49EC: .4byte 0x00004010
|
|
_081A49F0: .4byte 0x085DD47F
|
|
thumb_func_end SetFrontierBrainEventObjGfx_2
|
|
|
|
thumb_func_start CreateFrontierBrainPokemon
|
|
CreateFrontierBrainPokemon: @ 0x081A49F4
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x44
|
|
ldr r0, _081A4A2C
|
|
bl VarGet
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
str r0, [sp, #0x20]
|
|
bl GetFronterBrainSymbol
|
|
str r0, [sp, #0x24]
|
|
ldr r0, [sp, #0x20]
|
|
cmp r0, #1
|
|
bne _081A4A34
|
|
ldr r0, _081A4A30
|
|
bl TrainerIdToTournamentId
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
bl GetDomeTrainerMonCountInBits
|
|
adds r4, r0, #0
|
|
b _081A4A36
|
|
.align 2, 0
|
|
_081A4A2C: .4byte 0x000040CF
|
|
_081A4A30: .4byte 0x000003FE
|
|
_081A4A34:
|
|
movs r4, #7
|
|
_081A4A36:
|
|
bl ZeroEnemyPartyMons
|
|
movs r1, #0
|
|
str r1, [sp, #0x18]
|
|
bl SetFacilityPtrsGetLevel
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
str r0, [sp, #0x1c]
|
|
movs r2, #0
|
|
str r2, [sp, #0x14]
|
|
_081A4A4C:
|
|
movs r0, #1
|
|
ands r0, r4
|
|
asrs r4, r4, #1
|
|
str r4, [sp, #0x30]
|
|
ldr r3, [sp, #0x14]
|
|
adds r3, #1
|
|
str r3, [sp, #0x28]
|
|
cmp r0, #0
|
|
bne _081A4A60
|
|
b _081A4BB4
|
|
_081A4A60:
|
|
ldr r4, [sp, #0x14]
|
|
lsls r4, r4, #2
|
|
mov sb, r4
|
|
ldr r0, [sp, #0x24]
|
|
lsls r0, r0, #4
|
|
str r0, [sp, #0x38]
|
|
ldr r1, [sp, #0x20]
|
|
lsls r1, r1, #4
|
|
str r1, [sp, #0x34]
|
|
ldr r2, [sp, #0x1c]
|
|
lsls r2, r2, #0x18
|
|
str r2, [sp, #0x3c]
|
|
ldr r3, [sp, #0x18]
|
|
adds r3, #1
|
|
str r3, [sp, #0x2c]
|
|
ldr r0, [sp, #0x14]
|
|
add r0, sb
|
|
lsls r0, r0, #2
|
|
mov r8, r0
|
|
_081A4A86:
|
|
bl Random
|
|
adds r4, r0, #0
|
|
bl Random
|
|
lsls r4, r4, #0x10
|
|
lsrs r7, r4, #0x10
|
|
lsls r0, r0, #0x10
|
|
orrs r7, r0
|
|
ldr r0, _081A4BD0
|
|
adds r1, r7, #0
|
|
bl IsShinyOtIdPersonality
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _081A4A86
|
|
ldr r4, [sp, #0x38]
|
|
ldr r1, [sp, #0x24]
|
|
subs r0, r4, r1
|
|
lsls r5, r0, #2
|
|
mov r2, r8
|
|
adds r4, r2, r5
|
|
ldr r3, [sp, #0x34]
|
|
ldr r1, [sp, #0x20]
|
|
subs r0, r3, r1
|
|
lsls r6, r0, #3
|
|
adds r4, r4, r6
|
|
ldr r2, _081A4BD4
|
|
adds r4, r4, r2
|
|
adds r0, r7, #0
|
|
bl GetNatureFromPersonality
|
|
ldrb r1, [r4, #5]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r1, r0
|
|
bne _081A4A86
|
|
ldr r4, [sp, #0x18]
|
|
movs r0, #0x64
|
|
adds r3, r4, #0
|
|
muls r3, r0, r3
|
|
mov r8, r3
|
|
ldr r1, _081A4BD8
|
|
add r1, r8
|
|
mov sl, r1
|
|
ldr r4, [sp, #0x14]
|
|
add r4, sb
|
|
lsls r4, r4, #2
|
|
adds r0, r4, r5
|
|
adds r0, r0, r6
|
|
ldr r2, _081A4BD4
|
|
adds r0, r0, r2
|
|
ldrh r1, [r0]
|
|
ldr r3, [sp, #0x3c]
|
|
lsrs r2, r3, #0x18
|
|
ldrb r3, [r0, #4]
|
|
movs r0, #1
|
|
str r0, [sp]
|
|
str r7, [sp, #4]
|
|
str r0, [sp, #8]
|
|
ldr r0, _081A4BD0
|
|
str r0, [sp, #0xc]
|
|
mov r0, sl
|
|
bl CreateMon
|
|
ldr r0, _081A4BD4
|
|
adds r5, r5, r0
|
|
adds r5, r6, r5
|
|
adds r4, r5, r4
|
|
adds r4, #2
|
|
mov r0, sl
|
|
movs r1, #0xc
|
|
adds r2, r4, #0
|
|
bl SetMonData
|
|
movs r7, #0
|
|
mov r6, r8
|
|
ldr r3, _081A4BD8
|
|
_081A4B22:
|
|
adds r1, r7, #0
|
|
adds r1, #0x1a
|
|
ldr r0, [sp, #0x14]
|
|
add r0, sb
|
|
lsls r4, r0, #2
|
|
adds r2, r5, r4
|
|
adds r0, r7, #6
|
|
adds r2, r2, r0
|
|
adds r0, r6, r3
|
|
str r3, [sp, #0x40]
|
|
bl SetMonData
|
|
adds r7, #1
|
|
ldr r3, [sp, #0x40]
|
|
cmp r7, #5
|
|
ble _081A4B22
|
|
movs r1, #0xff
|
|
add r0, sp, #0x10
|
|
strb r1, [r0]
|
|
movs r7, #0
|
|
ldr r1, [sp, #0x18]
|
|
movs r2, #0x64
|
|
adds r6, r1, #0
|
|
muls r6, r2, r6
|
|
ldr r3, _081A4BDC
|
|
mov r8, r3
|
|
ldr r3, _081A4BD8
|
|
adds r5, r4, #0
|
|
_081A4B5A:
|
|
ldr r4, [sp, #0x38]
|
|
ldr r0, [sp, #0x24]
|
|
subs r1, r4, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r5, r1
|
|
ldr r2, [sp, #0x34]
|
|
ldr r4, [sp, #0x20]
|
|
subs r0, r2, r4
|
|
lsls r0, r0, #3
|
|
adds r1, r1, r0
|
|
add r1, r8
|
|
ldrh r4, [r1]
|
|
lsls r2, r7, #0x18
|
|
lsrs r2, r2, #0x18
|
|
adds r0, r6, r3
|
|
adds r1, r4, #0
|
|
str r3, [sp, #0x40]
|
|
bl SetMonMoveSlot
|
|
ldr r3, [sp, #0x40]
|
|
cmp r4, #0xda
|
|
bne _081A4B8C
|
|
movs r1, #0
|
|
add r0, sp, #0x10
|
|
strb r1, [r0]
|
|
_081A4B8C:
|
|
adds r5, #2
|
|
adds r7, #1
|
|
cmp r7, #3
|
|
ble _081A4B5A
|
|
ldr r0, [sp, #0x18]
|
|
movs r1, #0x64
|
|
adds r4, r0, #0
|
|
muls r4, r1, r4
|
|
ldr r0, _081A4BD8
|
|
adds r4, r4, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x20
|
|
add r2, sp, #0x10
|
|
bl SetMonData
|
|
adds r0, r4, #0
|
|
bl CalculateMonStats
|
|
ldr r2, [sp, #0x2c]
|
|
str r2, [sp, #0x18]
|
|
_081A4BB4:
|
|
ldr r4, [sp, #0x30]
|
|
ldr r3, [sp, #0x28]
|
|
str r3, [sp, #0x14]
|
|
cmp r3, #2
|
|
bgt _081A4BC0
|
|
b _081A4A4C
|
|
_081A4BC0:
|
|
add sp, #0x44
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A4BD0: .4byte 0x0000EF2A
|
|
_081A4BD4: .4byte 0x085DCB98
|
|
_081A4BD8: .4byte 0x020243E8
|
|
_081A4BDC: .4byte 0x085DCBA4
|
|
thumb_func_end CreateFrontierBrainPokemon
|
|
|
|
thumb_func_start GetFrontierBrainMonSpecies
|
|
GetFrontierBrainMonSpecies: @ 0x081A4BE0
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
ldr r0, _081A4C18
|
|
bl VarGet
|
|
adds r5, r0, #0
|
|
lsls r5, r5, #0x10
|
|
lsrs r5, r5, #0x10
|
|
bl GetFronterBrainSymbol
|
|
ldr r3, _081A4C1C
|
|
lsls r2, r4, #2
|
|
adds r2, r2, r4
|
|
lsls r1, r0, #4
|
|
subs r1, r1, r0
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
lsls r0, r5, #4
|
|
subs r0, r0, r5
|
|
lsls r0, r0, #3
|
|
adds r1, r1, r0
|
|
adds r1, r1, r3
|
|
ldrh r0, [r1]
|
|
pop {r4, r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_081A4C18: .4byte 0x000040CF
|
|
_081A4C1C: .4byte 0x085DCB98
|
|
thumb_func_end GetFrontierBrainMonSpecies
|
|
|
|
thumb_func_start SetFrontierBrainEventObjGfx
|
|
SetFrontierBrainEventObjGfx: @ 0x081A4C20
|
|
push {lr}
|
|
lsls r0, r0, #0x18
|
|
ldr r2, _081A4C40
|
|
ldr r3, _081A4C44
|
|
adds r1, r3, #0
|
|
strh r1, [r2]
|
|
ldr r2, _081A4C48
|
|
ldr r1, _081A4C4C
|
|
lsrs r0, r0, #0x17
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r2, #0
|
|
bl VarSet
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A4C40: .4byte 0x0203886A
|
|
_081A4C44: .4byte 0x000003FE
|
|
_081A4C48: .4byte 0x00004010
|
|
_081A4C4C: .4byte 0x085DD47F
|
|
thumb_func_end SetFrontierBrainEventObjGfx
|
|
|
|
thumb_func_start GetFrontierBrainMonMove
|
|
GetFrontierBrainMonMove: @ 0x081A4C50
|
|
push {r4, r5, r6, lr}
|
|
adds r6, r0, #0
|
|
adds r4, r1, #0
|
|
lsls r6, r6, #0x18
|
|
lsrs r6, r6, #0x18
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
ldr r0, _081A4C98
|
|
bl VarGet
|
|
adds r5, r0, #0
|
|
lsls r5, r5, #0x10
|
|
lsrs r5, r5, #0x10
|
|
bl GetFronterBrainSymbol
|
|
ldr r2, _081A4C9C
|
|
lsls r4, r4, #1
|
|
lsls r1, r6, #2
|
|
adds r1, r1, r6
|
|
lsls r1, r1, #2
|
|
adds r4, r4, r1
|
|
lsls r1, r0, #4
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r4, r4, r1
|
|
lsls r0, r5, #4
|
|
subs r0, r0, r5
|
|
lsls r0, r0, #3
|
|
adds r4, r4, r0
|
|
adds r2, #0xc
|
|
adds r4, r4, r2
|
|
ldrh r0, [r4]
|
|
pop {r4, r5, r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_081A4C98: .4byte 0x000040CF
|
|
_081A4C9C: .4byte 0x085DCB98
|
|
thumb_func_end GetFrontierBrainMonMove
|
|
|
|
thumb_func_start GetFrontierBrainMonNature
|
|
GetFrontierBrainMonNature: @ 0x081A4CA0
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
ldr r0, _081A4CD8
|
|
bl VarGet
|
|
adds r5, r0, #0
|
|
lsls r5, r5, #0x10
|
|
lsrs r5, r5, #0x10
|
|
bl GetFronterBrainSymbol
|
|
ldr r3, _081A4CDC
|
|
lsls r2, r4, #2
|
|
adds r2, r2, r4
|
|
lsls r1, r0, #4
|
|
subs r1, r1, r0
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
lsls r0, r5, #4
|
|
subs r0, r0, r5
|
|
lsls r0, r0, #3
|
|
adds r1, r1, r0
|
|
adds r1, r1, r3
|
|
ldrb r0, [r1, #5]
|
|
pop {r4, r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_081A4CD8: .4byte 0x000040CF
|
|
_081A4CDC: .4byte 0x085DCB98
|
|
thumb_func_end GetFrontierBrainMonNature
|
|
|
|
thumb_func_start GetFrontierBrainMonEvs
|
|
GetFrontierBrainMonEvs: @ 0x081A4CE0
|
|
push {r4, r5, r6, lr}
|
|
adds r6, r0, #0
|
|
adds r4, r1, #0
|
|
lsls r6, r6, #0x18
|
|
lsrs r6, r6, #0x18
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
ldr r0, _081A4D24
|
|
bl VarGet
|
|
adds r5, r0, #0
|
|
lsls r5, r5, #0x10
|
|
lsrs r5, r5, #0x10
|
|
bl GetFronterBrainSymbol
|
|
ldr r2, _081A4D28
|
|
lsls r1, r6, #2
|
|
adds r1, r1, r6
|
|
lsls r1, r1, #2
|
|
adds r4, r4, r1
|
|
lsls r1, r0, #4
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r4, r4, r1
|
|
lsls r0, r5, #4
|
|
subs r0, r0, r5
|
|
lsls r0, r0, #3
|
|
adds r4, r4, r0
|
|
adds r2, #6
|
|
adds r4, r4, r2
|
|
ldrb r0, [r4]
|
|
pop {r4, r5, r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_081A4D24: .4byte 0x000040CF
|
|
_081A4D28: .4byte 0x085DCB98
|
|
thumb_func_end GetFrontierBrainMonEvs
|
|
|
|
thumb_func_start GetFronterBrainSymbol
|
|
GetFronterBrainSymbol: @ 0x081A4D2C
|
|
push {r4, r5, lr}
|
|
ldr r0, _081A4D68
|
|
bl VarGet
|
|
lsls r0, r0, #0x10
|
|
lsrs r5, r0, #0x10
|
|
lsls r0, r5, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl GetPlayerSymbolCountForFacility
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #2
|
|
bne _081A4D90
|
|
bl GetCurrentFacilityWinStreak
|
|
lsls r0, r0, #0x10
|
|
ldr r3, _081A4D6C
|
|
lsls r2, r5, #2
|
|
adds r1, r3, #3
|
|
adds r1, r2, r1
|
|
lsrs r0, r0, #0x10
|
|
ldrb r1, [r1]
|
|
adds r1, r0, r1
|
|
adds r0, r2, r3
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _081A4D70
|
|
movs r4, #0
|
|
b _081A4D90
|
|
.align 2, 0
|
|
_081A4D68: .4byte 0x000040CF
|
|
_081A4D6C: .4byte 0x085DCB7C
|
|
_081A4D70:
|
|
adds r0, r3, #1
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
beq _081A4D8E
|
|
cmp r1, r0
|
|
ble _081A4D90
|
|
subs r0, r1, r0
|
|
adds r1, r3, #2
|
|
adds r1, r2, r1
|
|
ldrb r1, [r1]
|
|
bl __modsi3
|
|
cmp r0, #0
|
|
bne _081A4D90
|
|
_081A4D8E:
|
|
movs r4, #1
|
|
_081A4D90:
|
|
adds r0, r4, #0
|
|
pop {r4, r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetFronterBrainSymbol
|
|
|
|
thumb_func_start CopyFrontierBrainText
|
|
CopyFrontierBrainText: @ 0x081A4D98
|
|
push {r4, r5, lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
ldr r0, _081A4DC0
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x11
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _081A4DC4
|
|
bl GetRecordedBattleApprenticeLanguage
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
bl GetRecordedBattleFronterBrainSymbol
|
|
lsls r0, r0, #0x18
|
|
lsrs r1, r0, #0x18
|
|
b _081A4DD4
|
|
.align 2, 0
|
|
_081A4DC0: .4byte 0x02022C90
|
|
_081A4DC4:
|
|
ldr r0, _081A4DE0
|
|
bl VarGet
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
bl GetFronterBrainSymbol
|
|
adds r1, r0, #0
|
|
_081A4DD4:
|
|
cmp r5, #0
|
|
beq _081A4DE4
|
|
cmp r5, #1
|
|
beq _081A4E04
|
|
b _081A4E18
|
|
.align 2, 0
|
|
_081A4DE0: .4byte 0x000040CF
|
|
_081A4DE4:
|
|
ldr r0, _081A4DFC
|
|
ldr r2, _081A4E00
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r2, [r1]
|
|
lsls r1, r4, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl StringCopy
|
|
b _081A4E18
|
|
.align 2, 0
|
|
_081A4DFC: .4byte 0x02021C7C
|
|
_081A4E00: .4byte 0x085DD5E8
|
|
_081A4E04:
|
|
ldr r0, _081A4E20
|
|
ldr r2, _081A4E24
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r2, [r1]
|
|
lsls r1, r4, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl StringCopy
|
|
_081A4E18:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081A4E20: .4byte 0x02021C7C
|
|
_081A4E24: .4byte 0x085DD5F0
|
|
thumb_func_end CopyFrontierBrainText
|
|
|