summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiegoisawesome <diego@domoreaweso.me>2018-11-06 11:40:17 -0600
committerDiegoisawesome <diego@domoreaweso.me>2018-11-06 11:40:17 -0600
commit9afe7a896e7bf9257d3c73c8fb592f0b9243d520 (patch)
tree490f5c185053db27730eefe1f6764b406d4adfb2
parent43a8534fced2c4327acdd8dc9690f5bc6751e2db (diff)
parentccc5d27fcb8647225656b06a60a7d79ad0fa299f (diff)
Merge remote-tracking branch 'pret/master' into render_text
-rw-r--r--asm/battle_frontier_1.s2
-rw-r--r--asm/battle_frontier_2.s6734
-rw-r--r--asm/party_menu.s2
-rw-r--r--asm/rom_8011DC0.s2
-rw-r--r--data/battle_frontier_2.s114
-rw-r--r--data/event_scripts.s20
-rw-r--r--data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc44
-rw-r--r--data/maps/BattleFrontier_BattleArenaLobby/scripts.inc30
-rw-r--r--data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc40
-rw-r--r--data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc2
-rw-r--r--data/maps/BattleFrontier_BattleDomeLobby/scripts.inc36
-rw-r--r--data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc16
-rw-r--r--data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc34
-rw-r--r--data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc26
-rw-r--r--data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc10
-rw-r--r--data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc44
-rw-r--r--data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc2
-rw-r--r--data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc30
-rw-r--r--data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc4
-rw-r--r--data/maps/BattleFrontier_BattlePikeLobby/scripts.inc32
-rw-r--r--data/maps/BattleFrontier_BattlePikeRandomRoom1/scripts.inc18
-rw-r--r--data/maps/BattleFrontier_BattlePikeRandomRoom2/scripts.inc2
-rw-r--r--data/maps/BattleFrontier_BattlePikeRandomRoom3/scripts.inc4
-rw-r--r--data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc16
-rw-r--r--data/maps/BattleFrontier_BattlePyramidEmptySquare/scripts.inc18
-rw-r--r--data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc30
-rw-r--r--data/maps/BattleFrontier_BattlePyramidTop/scripts.inc28
-rw-r--r--data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc44
-rw-r--r--data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc14
-rw-r--r--data/maps/BattleFrontier_BattleTowerLobby/scripts.inc62
-rw-r--r--data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc2
-rw-r--r--data/maps/BattleFrontier_RankingHall/scripts.inc4
-rw-r--r--data/maps/BattleFrontier_ScottsHouse/scripts.inc8
-rw-r--r--data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc16
-rw-r--r--data/maps/FallarborTown_BattleTentLobby/scripts.inc28
-rw-r--r--data/maps/LilycoveCity_ContestLobby/scripts.inc2
-rw-r--r--data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc4
-rw-r--r--data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc8
-rw-r--r--data/maps/SlateportCity_BattleTentCorridor/scripts.inc4
-rw-r--r--data/maps/SlateportCity_BattleTentLobby/scripts.inc24
-rw-r--r--data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc4
-rw-r--r--data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc16
-rw-r--r--data/maps/VerdanturfTown_BattleTentLobby/scripts.inc28
-rw-r--r--data/specials.inc6
-rw-r--r--include/apprentice.h3
-rw-r--r--include/battle_dome.h2
-rw-r--r--include/battle_frontier_1.h6
-rw-r--r--include/battle_frontier_2.h19
-rw-r--r--include/constants/battle_frontier.h3
-rw-r--r--include/field_specials.h1
-rw-r--r--include/frontier_util.h31
-rw-r--r--include/global.h91
-rw-r--r--include/menu.h1
-rw-r--r--include/new_game.h6
-rw-r--r--include/record_mixing.h30
-rw-r--r--include/recorded_battle.h18
-rw-r--r--include/save.h2
-rw-r--r--include/strings.h43
-rw-r--r--include/tv.h2
-rw-r--r--ld_script.txt2
-rw-r--r--src/apprentice.c50
-rw-r--r--src/battle_dome.c150
-rw-r--r--src/battle_factory.c2
-rw-r--r--src/battle_frontier_1.c18
-rw-r--r--src/battle_main.c2
-rw-r--r--src/battle_message.c10
-rw-r--r--src/battle_tent.c4
-rw-r--r--src/battle_tower.c75
-rw-r--r--src/field_control_avatar.c3
-rw-r--r--src/field_poison.c4
-rw-r--r--src/field_specials.c60
-rw-r--r--src/fieldmap.c4
-rw-r--r--src/frontier_util.c2752
-rwxr-xr-xsrc/item_menu.c4
-rw-r--r--src/new_game.c24
-rw-r--r--src/overworld.c2
-rw-r--r--src/pokemon_summary_screen.c4
-rw-r--r--src/record_mixing.c674
-rw-r--r--src/recorded_battle.c1061
-rw-r--r--src/save.c36
-rw-r--r--src/scrcmd.c7
-rw-r--r--src/start_menu.c4
-rw-r--r--src/strings.c4
-rw-r--r--src/tv.c8
-rw-r--r--src/walda_phrase.c2
-rw-r--r--sym_bss.txt8
86 files changed, 3819 insertions, 9027 deletions
diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s
index 78321e09c..a5e52f04e 100644
--- a/asm/battle_frontier_1.s
+++ b/asm/battle_frontier_1.s
@@ -2163,7 +2163,7 @@ sub_8196D74: @ 8196D74
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
adds r0, 0xA
- bl ReadUnalignedWord
+ bl GetTrainerId
adds r6, r0, 0
ldr r0, =0x0000ffff
ands r6, r0
diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s
index 6f267bcc1..291ea90c4 100644
--- a/asm/battle_frontier_2.s
+++ b/asm/battle_frontier_2.s
@@ -6,6735 +6,7 @@
.text
- thumb_func_start sub_81A1780
-sub_81A1780: @ 81A1780
- push {lr}
- ldr r1, =gUnknown_08611C18
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1780
-
- thumb_func_start sub_81A17A0
-sub_81A17A0: @ 81A17A0
- push {lr}
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0xFF
- bl VarSet
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca8
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _081A1822
- lsls r0, 2
- ldr r1, =_081A17D0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A17D0:
- .4byte _081A1822
- .4byte _081A17E4
- .4byte _081A1810
- .4byte _081A17EC
- .4byte _081A17E8
-_081A17E4:
- movs r0, 0
- b _081A17EE
-_081A17E8:
- movs r0, 0
- b _081A17EE
-_081A17EC:
- movs r0, 0x1
-_081A17EE:
- bl sub_813A878
- movs r0, 0x80
- lsls r0, 7
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- ldr r2, =0x00000ca8
- adds r1, r2
- ldrb r1, [r1]
- bl VarSet
- b _081A1822
- .pool
-_081A1810:
- movs r0, 0x80
- lsls r0, 7
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- ldr r2, =0x00000ca8
- adds r1, r2
- ldrb r1, [r1]
- bl VarSet
-_081A1822:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A17A0
-
- thumb_func_start sub_81A1830
-sub_81A1830: @ 81A1830
- push {r4-r6,lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- bl sub_81A3B30
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bne _081A184C
- movs r5, 0x1
-_081A184C:
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x7
- bls _081A1856
- b _081A1956
-_081A1856:
- lsls r0, 2
- ldr r1, =_081A186C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A186C:
- .4byte _081A188C
- .4byte _081A18A8
- .4byte _081A18C8
- .4byte _081A18E4
- .4byte _081A1956
- .4byte _081A1900
- .4byte _081A1918
- .4byte _081A1938
-_081A188C:
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000ca8
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r1]
- b _081A1956
- .pool
-_081A18A8:
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000ca9
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- strh r0, [r1]
- b _081A1956
- .pool
-_081A18C8:
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000cb2
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- b _081A1956
- .pool
-_081A18E4:
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000ca9
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 29
- b _081A1926
- .pool
-_081A1900:
- ldr r2, =gSpecialVar_Result
- ldr r1, =gBattleOutcome
- ldrb r0, [r1]
- strh r0, [r2]
- movs r0, 0
- strb r0, [r1]
- b _081A1956
- .pool
-_081A1918:
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000ca9
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 28
-_081A1926:
- lsrs r0, 31
- strh r0, [r1]
- b _081A1956
- .pool
-_081A1938:
- ldr r4, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- movs r0, 0xD0
- lsls r0, 4
- adds r2, r0
- ldr r3, =gUnknown_08611BFC
- lsls r0, r5, 1
- lsls r1, r6, 2
- adds r0, r1
- adds r0, r3
- ldrh r1, [r2]
- ldrh r0, [r0]
- ands r0, r1
- strh r0, [r4]
-_081A1956:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1830
-
- thumb_func_start sub_81A1968
-sub_81A1968: @ 81A1968
- push {r4,r5,lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_81A3B30
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bne _081A1984
- movs r4, 0x1
-_081A1984:
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x7
- bls _081A198E
- b _081A1AC4
-_081A198E:
- lsls r0, 2
- ldr r1, =_081A19A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A19A4:
- .4byte _081A19C4
- .4byte _081A19E0
- .4byte _081A1A0C
- .4byte _081A1A28
- .4byte _081A1A50
- .4byte _081A1AC4
- .4byte _081A1A7C
- .4byte _081A1AA8
-_081A19C4:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =gSpecialVar_0x8006
- ldrh r1, [r1]
- ldr r2, =0x00000ca8
- adds r0, r2
- strb r1, [r0]
- b _081A1AC4
- .pool
-_081A19E0:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r0, =gSpecialVar_0x8006
- ldrb r0, [r0]
- ldr r1, =0x00000ca9
- adds r2, r1
- movs r1, 0x3
- ands r1, r0
- ldrb r3, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- b _081A1AC4
- .pool
-_081A1A0C:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =gSpecialVar_0x8006
- ldrh r1, [r1]
- ldr r2, =0x00000cb2
- adds r0, r2
- strh r1, [r0]
- b _081A1AC4
- .pool
-_081A1A28:
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r0, =gSpecialVar_0x8006
- ldrb r0, [r0]
- ldr r1, =0x00000ca9
- adds r3, r1
- movs r1, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- b _081A1A94
- .pool
-_081A1A50:
- movs r2, 0
- ldr r5, =gSaveBlock2Ptr
- ldr r4, =0x00000caa
- ldr r3, =gUnknown_0203CEF8
-_081A1A58:
- ldr r1, [r5]
- lsls r0, r2, 1
- adds r1, r4
- adds r1, r0
- adds r0, r2, r3
- ldrb r0, [r0]
- strh r0, [r1]
- adds r2, 0x1
- cmp r2, 0x3
- ble _081A1A58
- b _081A1AC4
- .pool
-_081A1A7C:
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r0, =gSpecialVar_0x8006
- ldrb r0, [r0]
- ldr r2, =0x00000ca9
- adds r3, r2
- movs r1, 0x1
- ands r1, r0
- lsls r1, 3
- ldrb r2, [r3]
- movs r0, 0x9
- negs r0, r0
-_081A1A94:
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _081A1AC4
- .pool
-_081A1AA8:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- movs r0, 0xD0
- lsls r0, 4
- adds r2, r0
- ldr r3, =gUnknown_08611BFC
- lsls r1, r4, 1
- lsls r0, r5, 2
- adds r1, r0
- adds r1, r3
- ldrh r0, [r2]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2]
-_081A1AC4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1968
-
- thumb_func_start sub_81A1AD4
-sub_81A1AD4: @ 81A1AD4
- push {r4-r7,lr}
- bl sub_81B8558
- movs r3, 0
- ldr r4, =gSpecialVar_0x8005
- ldrh r0, [r4]
- cmp r3, r0
- bge _081A1B00
- ldr r7, =gUnknown_0203CEF8
- ldr r6, =gSaveBlock2Ptr
- ldr r5, =0x00000caa
-_081A1AEA:
- adds r2, r3, r7
- ldr r0, [r6]
- lsls r1, r3, 1
- adds r0, r5
- adds r0, r1
- ldrh r0, [r0]
- strb r0, [r2]
- adds r3, 0x1
- ldrh r0, [r4]
- cmp r3, r0
- blt _081A1AEA
-_081A1B00:
- bl ReducePlayerPartyToThree
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1AD4
-
- thumb_func_start sub_81A1B1C
-sub_81A1B1C: @ 81A1B1C
- push {lr}
- bl DoSoftReset
- pop {r0}
- bx r0
- thumb_func_end sub_81A1B1C
-
- thumb_func_start sub_81A1B28
-sub_81A1B28: @ 81A1B28
- ldr r1, =gFacilityTrainers
- ldr r0, =gBattleFrontierTrainers
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A1B28
-
- thumb_func_start sub_81A1B38
-sub_81A1B38: @ 81A1B38
- push {r4,r5,lr}
- movs r4, 0
- movs r5, 0x64
-_081A1B3E:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000caa
- adds r0, r2
- adds r1, r0, r1
- ldrh r0, [r1]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5
- bhi _081A1B76
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r1, [r1]
- subs r1, 0x1
- muls r1, r5
- adds r0, r1
- movs r1, 0x8E
- lsls r1, 2
- adds r0, r1
- ldr r2, =gPlayerParty
- adds r1, r4, 0
- muls r1, r5
- adds r1, r2
- movs r2, 0x64
- bl memcpy
-_081A1B76:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081A1B3E
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1B38
-
- thumb_func_start sub_81A1B98
-sub_81A1B98: @ 81A1B98
- push {lr}
- ldr r0, =gSpecialVar_0x8006
- ldrh r1, [r0]
- adds r2, r0, 0
- cmp r1, 0x3
- bls _081A1BA8
- movs r0, 0
- strh r0, [r2]
-_081A1BA8:
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x7
- bhi _081A1C1E
- lsls r0, 2
- ldr r1, =_081A1BC8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A1BC8:
- .4byte _081A1BE8
- .4byte _081A1BF0
- .4byte _081A1BF8
- .4byte _081A1C0E
- .4byte _081A1C06
- .4byte _081A1C00
- .4byte _081A1C14
- .4byte _081A1C1A
-_081A1BE8:
- ldrb r0, [r2]
- bl sub_81A1EA8
- b _081A1C1E
-_081A1BF0:
- ldrb r0, [r2]
- bl sub_81A2134
- b _081A1C1E
-_081A1BF8:
- ldrb r0, [r2]
- bl sub_81A2460
- b _081A1C1E
-_081A1C00:
- bl sub_81A2698
- b _081A1C1E
-_081A1C06:
- ldrb r0, [r2]
- bl sub_81A2C94
- b _081A1C1E
-_081A1C0E:
- bl sub_81A2968
- b _081A1C1E
-_081A1C14:
- bl sub_81A2F38
- b _081A1C1E
-_081A1C1A:
- bl sub_81A2FF8
-_081A1C1E:
- pop {r0}
- bx r0
- thumb_func_end sub_81A1B98
-
- thumb_func_start sub_81A1C24
-sub_81A1C24: @ 81A1C24
- push {lr}
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- ldr r2, =0x00000cdc
- adds r1, r2
- ldr r1, [r1]
- ands r1, r0
- cmp r1, 0
- bne _081A1C44
- movs r0, 0
- b _081A1C46
- .pool
-_081A1C44:
- movs r0, 0x1
-_081A1C46:
- pop {r1}
- bx r1
- thumb_func_end sub_81A1C24
-
- thumb_func_start sub_81A1C4C
-sub_81A1C4C: @ 81A1C4C
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0xE0
- bl GetStringCenterAlignXOffset
- adds r3, r0, 0
- lsls r0, r5, 3
- adds r5, r0, 0x1
- ldr r0, =gRecordsWindowId
- ldrb r0, [r0]
- lsls r3, 24
- lsrs r3, 24
- lsls r1, r5, 24
- lsrs r1, 24
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- bl AddTextPrinterParameterized
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1C4C
-
- thumb_func_start sub_81A1C90
-sub_81A1C90: @ 81A1C90
- push {r4,lr}
- sub sp, 0x34
- adds r2, r0, 0
- ldr r3, =gRecordsWindowId
- movs r1, 0xAE
- mov r0, sp
- adds r0, 0x2F
-_081A1C9E:
- strb r1, [r0]
- subs r0, 0x1
- add r4, sp, 0xC
- cmp r0, r4
- bge _081A1C9E
- add r1, sp, 0x30
- movs r0, 0xFF
- strb r0, [r1]
- lsls r0, r2, 3
- adds r2, r0, 0x1
- ldrb r0, [r3]
- lsls r1, r2, 24
- lsrs r1, 24
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0x4
- bl AddTextPrinterParameterized
- add sp, 0x34
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1C90
-
- thumb_func_start sub_81A1CD8
-sub_81A1CD8: @ 81A1CD8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r5, r0, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x30]
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- ldr r0, =gRecordsWindowId
- mov r10, r0
- ldrb r0, [r0]
- str r7, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- mov r8, r1
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r5, 0
- adds r3, r4, 0
- bl AddTextPrinterParameterized
- ldr r0, =0x0000270f
- cmp r6, r0
- bls _081A1D24
- adds r6, r0, 0
-_081A1D24:
- ldr r0, =gStringVar1
- adds r1, r6, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gText_WinStreak
- adds r0, r4, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r7, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- ldr r3, [sp, 0xC]
- bl AddTextPrinterParameterized
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1CD8
-
- thumb_func_start sub_81A1D78
-sub_81A1D78: @ 81A1D78
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, [sp, 0x10]
- lsls r0, 24
- lsls r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r4, =gSaveBlock2Ptr
- ldr r4, [r4]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- movs r0, 0xCF
- lsls r0, 4
- adds r4, r0
- adds r4, r1
- ldrh r1, [r4]
- ldr r0, =gText_Record
- str r5, [sp]
- bl sub_81A1CD8
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1D78
-
- thumb_func_start sub_81A1DBC
-sub_81A1DBC: @ 81A1DBC
- push {lr}
- lsls r0, 24
- lsls r1, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r2, [r2]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- movs r0, 0xCE
- lsls r0, 4
- adds r2, r0
- adds r2, r1
- ldrh r0, [r2]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A1DDE
- adds r0, r1, 0
-_081A1DDE:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A1DBC
-
- thumb_func_start sub_81A1DEC
-sub_81A1DEC: @ 81A1DEC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- lsls r4, 24
- lsrs r7, r4, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_81A1DBC
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r5, 0x1
- beq _081A1E38
- cmp r5, 0x1
- ble _081A1E2C
- cmp r5, 0x2
- beq _081A1E48
- cmp r5, 0x3
- beq _081A1E58
-_081A1E2C:
- cmp r6, 0
- beq _081A1E34
- movs r0, 0x2
- b _081A1E66
-_081A1E34:
- movs r0, 0x1
- b _081A1E66
-_081A1E38:
- cmp r6, 0
- beq _081A1E42
- movs r0, 0x80
- lsls r0, 8
- b _081A1E66
-_081A1E42:
- movs r0, 0x80
- lsls r0, 7
- b _081A1E66
-_081A1E48:
- cmp r6, 0
- beq _081A1E52
- movs r0, 0x80
- lsls r0, 10
- b _081A1E66
-_081A1E52:
- movs r0, 0x80
- lsls r0, 9
- b _081A1E66
-_081A1E58:
- cmp r6, 0
- beq _081A1E62
- movs r0, 0x80
- lsls r0, 12
- b _081A1E66
-_081A1E62:
- movs r0, 0x80
- lsls r0, 11
-_081A1E66:
- bl sub_81A1C24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081A1E88
- ldr r0, =gText_Current
- str r7, [sp]
- adds r1, r4, 0
- mov r2, r8
- mov r3, r9
- bl sub_81A1CD8
- b _081A1E96
- .pool
-_081A1E88:
- ldr r0, =gText_Prev
- str r7, [sp]
- adds r1, r4, 0
- mov r2, r8
- mov r3, r9
- bl sub_81A1CD8
-_081A1E96:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1DEC
-
- thumb_func_start sub_81A1EA8
-sub_81A1EA8: @ 81A1EA8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, =gRecordsWindowId
- ldr r0, =gUnknown_08611C74
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r4]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- cmp r7, 0
- bne _081A1EF0
- ldr r0, =gStringVar4
- ldr r1, =gText_SingleBattleRoomResults
- bl StringExpandPlaceholders
- b _081A1F28
- .pool
-_081A1EF0:
- cmp r7, 0x1
- bne _081A1F08
- ldr r0, =gStringVar4
- ldr r1, =gText_DoubleBattleRoomResults
- bl StringExpandPlaceholders
- b _081A1F28
- .pool
-_081A1F08:
- cmp r7, 0x2
- bne _081A1F20
- ldr r0, =gStringVar4
- ldr r1, =gText_MultiBattleRoomResults
- bl StringExpandPlaceholders
- b _081A1F28
- .pool
-_081A1F20:
- ldr r0, =gStringVar4
- ldr r1, =gText_LinkMultiBattleRoomResults
- bl StringExpandPlaceholders
-_081A1F28:
- ldr r0, =gStringVar4
- movs r1, 0x2
- bl sub_81A1C4C
- ldr r6, =gRecordsWindowId
- ldrb r0, [r6]
- ldr r2, =gText_Lv502
- movs r1, 0x31
- mov r8, r1
- str r1, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x10
- bl AddTextPrinterParameterized
- ldrb r0, [r6]
- ldr r2, =gText_OpenLv
- movs r1, 0x61
- mov r9, r1
- str r1, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x10
- bl AddTextPrinterParameterized
- movs r0, 0xA
- bl sub_81A1C90
- mov r0, r8
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0x48
- movs r3, 0x84
- bl sub_81A1DEC
- movs r0, 0x41
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0x48
- movs r3, 0x84
- bl sub_81A1D78
- mov r1, r9
- str r1, [sp]
- adds r0, r7, 0
- movs r1, 0x1
- movs r2, 0x48
- movs r3, 0x84
- bl sub_81A1DEC
- movs r0, 0x71
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0x1
- movs r2, 0x48
- movs r3, 0x84
- bl sub_81A1D78
- ldrb r0, [r6]
- bl PutWindowTilemap
- ldrb r0, [r6]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1EA8
-
- thumb_func_start sub_81A1FD8
-sub_81A1FD8: @ 81A1FD8
- push {lr}
- lsls r0, 24
- lsls r1, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r2, [r2]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- ldr r0, =0x00000d0c
- adds r2, r0
- adds r2, r1
- ldrh r0, [r2]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A1FF8
- adds r0, r1, 0
-_081A1FF8:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A1FD8
-
- thumb_func_start sub_81A2008
-sub_81A2008: @ 81A2008
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- mov r12, r0
- adds r7, r1, 0
- adds r4, r2, 0
- ldr r6, [sp, 0x2C]
- ldr r5, [sp, 0x30]
- lsls r4, 16
- lsrs r4, 16
- lsls r3, 24
- lsrs r3, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, =gRecordsWindowId
- mov r10, r0
- ldrb r0, [r0]
- str r5, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- mov r8, r1
- str r1, [sp, 0x8]
- movs r1, 0x1
- mov r2, r12
- bl AddTextPrinterParameterized
- ldr r0, =gStringVar1
- adds r1, r4, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- adds r0, r4, 0
- adds r1, r7, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r5, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- adds r3, r6, 0
- bl AddTextPrinterParameterized
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2008
-
- thumb_func_start sub_81A2094
-sub_81A2094: @ 81A2094
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- ldr r4, [sp, 0x24]
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_81A1FD8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r5, 0
- beq _081A20CC
- cmp r5, 0x1
- beq _081A20D8
-_081A20CC:
- cmp r6, 0
- beq _081A20D4
- movs r0, 0x8
- b _081A20E6
-_081A20D4:
- movs r0, 0x4
- b _081A20E6
-_081A20D8:
- cmp r6, 0
- beq _081A20E2
- movs r0, 0x80
- lsls r0, 14
- b _081A20E6
-_081A20E2:
- movs r0, 0x80
- lsls r0, 13
-_081A20E6:
- bl sub_81A1C24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081A210C
- ldr r0, =gText_Current
- ldr r1, =gText_ClearStreak
- str r7, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- mov r3, r9
- bl sub_81A2008
- b _081A211C
- .pool
-_081A210C:
- ldr r0, =gText_Prev
- ldr r1, =gText_ClearStreak
- str r7, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- mov r3, r9
- bl sub_81A2008
-_081A211C:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2094
-
- thumb_func_start sub_81A2134
-sub_81A2134: @ 81A2134
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, =gRecordsWindowId
- ldr r0, =gUnknown_08611C74
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r4]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- cmp r7, 0
- bne _081A217C
- ldr r0, =gStringVar4
- ldr r1, =gText_SingleBattleTourneyResults
- bl StringExpandPlaceholders
- b _081A2184
- .pool
-_081A217C:
- ldr r0, =gStringVar4
- ldr r1, =gText_DoubleBattleTourneyResults
- bl StringExpandPlaceholders
-_081A2184:
- ldr r0, =gStringVar4
- movs r1, 0
- bl sub_81A1C4C
- ldr r1, =gRecordsWindowId
- ldrb r0, [r1]
- ldr r2, =gText_Lv502
- movs r6, 0x21
- str r6, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r1, =gRecordsWindowId
- ldrb r0, [r1]
- ldr r2, =gText_OpenLv
- movs r1, 0x61
- str r1, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- movs r0, 0xA
- bl sub_81A1C90
- str r6, [sp]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0x40
- movs r3, 0x79
- bl sub_81A2094
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- lsls r5, r7, 2
- ldr r1, =0x00000d14
- adds r0, r1
- adds r0, r5
- ldrh r2, [r0]
- movs r0, 0x79
- mov r9, r0
- str r0, [sp]
- movs r0, 0x31
- str r0, [sp, 0x4]
- ldr r0, =gText_Record
- ldr r1, =gText_ClearStreak
- movs r3, 0x40
- bl sub_81A2008
- ldr r1, =gText_Total
- mov r10, r1
- ldr r0, =gText_Championships
- mov r8, r0
- ldr r0, [r4]
- ldr r1, =0x00000d1c
- adds r0, r1
- adds r0, r5
- ldrh r2, [r0]
- movs r6, 0x70
- str r6, [sp]
- movs r0, 0x41
- str r0, [sp, 0x4]
- mov r0, r10
- mov r1, r8
- movs r3, 0x40
- bl sub_81A2008
- movs r0, 0x61
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0x1
- movs r2, 0x40
- movs r3, 0x79
- bl sub_81A2094
- ldr r0, [r4]
- ldr r1, =0x00000d16
- adds r0, r1
- adds r0, r5
- ldrh r2, [r0]
- mov r0, r9
- str r0, [sp]
- movs r0, 0x71
- str r0, [sp, 0x4]
- ldr r0, =gText_Record
- ldr r1, =gText_ClearStreak
- movs r3, 0x40
- bl sub_81A2008
- ldr r0, [r4]
- ldr r1, =0x00000d1e
- adds r0, r1
- adds r0, r5
- ldrh r2, [r0]
- str r6, [sp]
- movs r0, 0x81
- str r0, [sp, 0x4]
- mov r0, r10
- mov r1, r8
- movs r3, 0x40
- bl sub_81A2008
- ldr r1, =gRecordsWindowId
- ldrb r0, [r1]
- bl PutWindowTilemap
- ldr r1, =gRecordsWindowId
- ldrb r0, [r1]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2134
-
- thumb_func_start sub_81A22B8
-sub_81A22B8: @ 81A22B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r5, r0, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x30]
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- ldr r0, =gRecordsWindowId
- mov r10, r0
- ldrb r0, [r0]
- str r7, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- mov r8, r1
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r5, 0
- adds r3, r4, 0
- bl AddTextPrinterParameterized
- ldr r0, =0x0000270f
- cmp r6, r0
- bls _081A2304
- adds r6, r0, 0
-_081A2304:
- ldr r0, =gStringVar1
- adds r1, r6, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gText_WinStreak
- adds r0, r4, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r7, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- ldr r3, [sp, 0xC]
- bl AddTextPrinterParameterized
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A22B8
-
- thumb_func_start sub_81A2358
-sub_81A2358: @ 81A2358
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, [sp, 0x10]
- lsls r0, 24
- lsls r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r4, =gSaveBlock2Ptr
- ldr r4, [r4]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- movs r0, 0xDD
- lsls r0, 4
- adds r4, r0
- adds r4, r1
- ldrh r1, [r4]
- ldr r0, =gText_Record
- str r5, [sp]
- bl sub_81A22B8
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2358
-
- thumb_func_start sub_81A239C
-sub_81A239C: @ 81A239C
- push {lr}
- lsls r0, 24
- lsls r1, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r2, [r2]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- ldr r0, =0x00000dc8
- adds r2, r0
- adds r2, r1
- ldrh r0, [r2]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A23BC
- adds r0, r1, 0
-_081A23BC:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A239C
-
- thumb_func_start sub_81A23CC
-sub_81A23CC: @ 81A23CC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- lsls r4, 24
- lsrs r7, r4, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_81A239C
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r5, 0
- beq _081A2404
- cmp r5, 0x1
- beq _081A2410
-_081A2404:
- cmp r6, 0
- beq _081A240C
- movs r0, 0x20
- b _081A241E
-_081A240C:
- movs r0, 0x10
- b _081A241E
-_081A2410:
- cmp r6, 0
- beq _081A241A
- movs r0, 0x80
- lsls r0, 16
- b _081A241E
-_081A241A:
- movs r0, 0x80
- lsls r0, 15
-_081A241E:
- bl sub_81A1C24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081A2440
- ldr r0, =gText_Current
- str r7, [sp]
- adds r1, r4, 0
- mov r2, r8
- mov r3, r9
- bl sub_81A22B8
- b _081A244E
- .pool
-_081A2440:
- ldr r0, =gText_Prev
- str r7, [sp]
- adds r1, r4, 0
- mov r2, r8
- mov r3, r9
- bl sub_81A22B8
-_081A244E:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A23CC
-
- thumb_func_start sub_81A2460
-sub_81A2460: @ 81A2460
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, =gRecordsWindowId
- ldr r0, =gUnknown_08611C74
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r4]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- cmp r7, 0
- bne _081A24A8
- ldr r0, =gStringVar4
- ldr r1, =gText_SingleBattleHallResults
- bl StringExpandPlaceholders
- b _081A24B0
- .pool
-_081A24A8:
- ldr r0, =gStringVar4
- ldr r1, =gText_DoubleBattleHallResults
- bl StringExpandPlaceholders
-_081A24B0:
- ldr r0, =gStringVar4
- movs r1, 0x2
- bl sub_81A1C4C
- ldr r6, =gRecordsWindowId
- ldrb r0, [r6]
- ldr r2, =gText_Lv502
- movs r1, 0x31
- mov r8, r1
- str r1, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x10
- bl AddTextPrinterParameterized
- ldrb r0, [r6]
- ldr r2, =gText_OpenLv
- movs r1, 0x61
- mov r9, r1
- str r1, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x10
- bl AddTextPrinterParameterized
- movs r0, 0xA
- bl sub_81A1C90
- mov r0, r8
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0x48
- movs r3, 0x83
- bl sub_81A23CC
- movs r0, 0x41
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0x48
- movs r3, 0x83
- bl sub_81A2358
- mov r1, r9
- str r1, [sp]
- adds r0, r7, 0
- movs r1, 0x1
- movs r2, 0x48
- movs r3, 0x83
- bl sub_81A23CC
- movs r0, 0x71
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0x1
- movs r2, 0x48
- movs r3, 0x83
- bl sub_81A2358
- ldrb r0, [r6]
- bl PutWindowTilemap
- ldrb r0, [r6]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2460
-
- thumb_func_start sub_81A2560
-sub_81A2560: @ 81A2560
- push {lr}
- lsls r0, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- lsrs r0, 23
- ldr r2, =0x00000e04
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A257A
- adds r0, r1, 0
-_081A257A:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A2560
-
- thumb_func_start sub_81A258C
-sub_81A258C: @ 81A258C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- mov r12, r0
- adds r7, r1, 0
- adds r4, r2, 0
- ldr r6, [sp, 0x2C]
- ldr r5, [sp, 0x30]
- lsls r4, 16
- lsrs r4, 16
- lsls r3, 24
- lsrs r3, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, =gRecordsWindowId
- mov r10, r0
- ldrb r0, [r0]
- str r5, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- mov r8, r1
- str r1, [sp, 0x8]
- movs r1, 0x1
- mov r2, r12
- bl AddTextPrinterParameterized
- ldr r0, =gStringVar1
- adds r1, r4, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- adds r0, r4, 0
- adds r1, r7, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r5, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- adds r3, r6, 0
- bl AddTextPrinterParameterized
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A258C
-
- thumb_func_start sub_81A2618
-sub_81A2618: @ 81A2618
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- adds r0, r4, 0
- bl sub_81A2560
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r4, 0
- beq _081A2648
- movs r0, 0x80
- lsls r0, 4
- b _081A264C
-_081A2648:
- movs r0, 0x80
- lsls r0, 3
-_081A264C:
- bl sub_81A1C24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081A2674
- ldr r0, =gText_Current
- ldr r1, =gText_RoomsCleared
- str r5, [sp]
- str r6, [sp, 0x4]
- adds r2, r7, 0
- mov r3, r8
- bl sub_81A2008
- b _081A2684
- .pool
-_081A2674:
- ldr r0, =gText_Prev
- ldr r1, =gText_RoomsCleared
- str r5, [sp]
- str r6, [sp, 0x4]
- adds r2, r7, 0
- mov r3, r8
- bl sub_81A2008
-_081A2684:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2618
-
- thumb_func_start sub_81A2698
-sub_81A2698: @ 81A2698
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- ldr r6, =gRecordsWindowId
- ldr r0, =gUnknown_08611C74
- bl AddWindow
- strb r0, [r6]
- ldrb r0, [r6]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r6]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gStringVar4
- ldr r1, =gText_BattleChoiceResults
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_81A1C4C
- ldrb r0, [r6]
- ldr r2, =gText_Lv502
- movs r1, 0x21
- str r1, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldrb r0, [r6]
- ldr r2, =gText_OpenLv
- movs r1, 0x61
- str r1, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- movs r0, 0xA
- bl sub_81A1C90
- movs r0, 0
- movs r1, 0x40
- movs r2, 0x72
- movs r3, 0x21
- bl sub_81A2618
- ldr r0, =gText_Record
- mov r10, r0
- ldr r7, =gText_RoomsCleared
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- ldr r1, =0x00000e08
- adds r0, r1
- ldrh r2, [r0]
- movs r4, 0x72
- str r4, [sp]
- movs r0, 0x31
- str r0, [sp, 0x4]
- mov r0, r10
- adds r1, r7, 0
- movs r3, 0x40
- bl sub_81A258C
- ldr r0, =gText_Total
- mov r8, r0
- ldr r1, =gText_TimesCleared
- mov r9, r1
- ldr r0, [r5]
- ldr r1, =0x00000e0c
- adds r0, r1
- ldrh r2, [r0]
- str r4, [sp]
- movs r0, 0x41
- str r0, [sp, 0x4]
- mov r0, r8
- mov r1, r9
- movs r3, 0x40
- bl sub_81A258C
- movs r0, 0x1
- movs r1, 0x40
- movs r2, 0x72
- movs r3, 0x61
- bl sub_81A2618
- ldr r0, [r5]
- ldr r1, =0x00000e0a
- adds r0, r1
- ldrh r2, [r0]
- str r4, [sp]
- movs r0, 0x71
- str r0, [sp, 0x4]
- mov r0, r10
- adds r1, r7, 0
- movs r3, 0x40
- bl sub_81A258C
- ldr r0, [r5]
- ldr r1, =0x00000e0e
- adds r0, r1
- ldrh r2, [r0]
- str r4, [sp]
- movs r0, 0x81
- str r0, [sp, 0x4]
- mov r0, r8
- mov r1, r9
- movs r3, 0x40
- bl sub_81A258C
- ldrb r0, [r6]
- bl PutWindowTilemap
- ldrb r0, [r6]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2698
-
- thumb_func_start sub_81A27E8
-sub_81A27E8: @ 81A27E8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r5, r0, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x30]
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- ldr r0, =gRecordsWindowId
- mov r10, r0
- ldrb r0, [r0]
- str r7, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- mov r8, r1
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r5, 0
- adds r3, r4, 0
- bl AddTextPrinterParameterized
- ldr r0, =0x0000270f
- cmp r6, r0
- bls _081A2834
- adds r6, r0, 0
-_081A2834:
- ldr r0, =gStringVar1
- adds r1, r6, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gText_KOsInARow
- adds r0, r4, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r7, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- ldr r3, [sp, 0xC]
- bl AddTextPrinterParameterized
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A27E8
-
- thumb_func_start sub_81A2888
-sub_81A2888: @ 81A2888
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- lsrs r0, 23
- ldr r2, =0x00000dde
- adds r1, r2
- adds r1, r0
- ldrh r1, [r1]
- ldr r0, =gText_Record
- str r3, [sp]
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_81A27E8
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2888
-
- thumb_func_start sub_81A28CC
-sub_81A28CC: @ 81A28CC
- push {lr}
- lsls r0, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- lsrs r0, 23
- ldr r2, =0x00000dda
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A28E6
- adds r0, r1, 0
-_081A28E6:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A28CC
-
- thumb_func_start sub_81A28F8
-sub_81A28F8: @ 81A28F8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r6, r3, 24
- adds r0, r4, 0
- bl sub_81A28CC
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r4, 0
- beq _081A2926
- movs r0, 0x80
- b _081A2928
-_081A2926:
- movs r0, 0x40
-_081A2928:
- bl sub_81A1C24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081A2948
- ldr r0, =gText_Current
- str r6, [sp]
- adds r1, r5, 0
- adds r2, r7, 0
- mov r3, r8
- bl sub_81A27E8
- b _081A2956
- .pool
-_081A2948:
- ldr r0, =gText_Prev
- str r6, [sp]
- adds r1, r5, 0
- adds r2, r7, 0
- mov r3, r8
- bl sub_81A27E8
-_081A2956:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A28F8
-
- thumb_func_start sub_81A2968
-sub_81A2968: @ 81A2968
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r5, =gRecordsWindowId
- ldr r0, =gUnknown_08611C74
- bl AddWindow
- strb r0, [r5]
- ldrb r0, [r5]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r5]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- movs r0, 0xA
- bl sub_81A1C90
- ldr r4, =gStringVar4
- ldr r1, =gText_SetKOTourneyResults
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_81A1C4C
- ldrb r0, [r5]
- ldr r2, =gText_Lv502
- movs r1, 0x31
- str r1, [sp]
- movs r6, 0xFF
- str r6, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x10
- bl AddTextPrinterParameterized
- ldrb r0, [r5]
- ldr r2, =gText_OpenLv
- movs r1, 0x61
- str r1, [sp]
- str r6, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x10
- bl AddTextPrinterParameterized
- movs r0, 0
- movs r1, 0x48
- movs r2, 0x7E
- movs r3, 0x31
- bl sub_81A28F8
- movs r0, 0
- movs r1, 0x48
- movs r2, 0x7E
- movs r3, 0x41
- bl sub_81A2888
- movs r0, 0x1
- movs r1, 0x48
- movs r2, 0x7E
- movs r3, 0x61
- bl sub_81A28F8
- movs r0, 0x1
- movs r1, 0x48
- movs r2, 0x7E
- movs r3, 0x71
- bl sub_81A2888
- ldrb r0, [r5]
- bl PutWindowTilemap
- ldrb r0, [r5]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2968
-
- thumb_func_start sub_81A2A28
-sub_81A2A28: @ 81A2A28
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- mov r12, r0
- ldr r4, [sp, 0x38]
- ldr r5, [sp, 0x3C]
- ldr r0, [sp, 0x40]
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0xC]
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x10]
- lsls r5, 24
- lsrs r5, 24
- str r5, [sp, 0x14]
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r0, =gRecordsWindowId
- mov r10, r0
- ldrb r0, [r0]
- str r6, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- mov r8, r1
- str r1, [sp, 0x8]
- movs r1, 0x1
- mov r2, r12
- bl AddTextPrinterParameterized
- ldr r0, =0x0000270f
- cmp r7, r0
- bls _081A2A80
- adds r7, r0, 0
-_081A2A80:
- ldr r5, =gStringVar1
- adds r0, r5, 0
- adds r1, r7, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gText_WinStreak
- adds r0, r4, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r6, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- ldr r3, [sp, 0x10]
- bl AddTextPrinterParameterized
- adds r0, r5, 0
- ldr r1, [sp, 0xC]
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r1, =gText_TimesVar1
- adds r0, r4, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r6, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- ldr r3, [sp, 0x14]
- bl AddTextPrinterParameterized
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2A28
-
- thumb_func_start sub_81A2B04
-sub_81A2B04: @ 81A2B04
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r6, r2, 0
- ldr r4, [sp, 0x24]
- ldr r5, [sp, 0x28]
- lsls r0, 24
- lsls r1, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r2, [r2]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- ldr r7, =0x00000dea
- adds r0, r2, r7
- adds r0, r1
- ldrh r0, [r0]
- mov r8, r0
- ldr r0, =0x00000dfa
- adds r2, r0
- adds r2, r1
- ldrh r2, [r2]
- ldr r0, =gText_Record
- str r3, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- mov r1, r8
- adds r3, r6, 0
- bl sub_81A2A28
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2B04
-
- thumb_func_start sub_81A2B70
-sub_81A2B70: @ 81A2B70
- push {lr}
- lsls r0, 24
- lsls r1, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r2, [r2]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- ldr r0, =0x00000de2
- adds r2, r0
- adds r2, r1
- ldrh r0, [r2]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A2B90
- adds r0, r1, 0
-_081A2B90:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A2B70
-
- thumb_func_start sub_81A2BA0
-sub_81A2BA0: @ 81A2BA0
- push {lr}
- lsls r0, 24
- lsls r1, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r2, [r2]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- ldr r0, =0x00000df2
- adds r2, r0
- adds r2, r1
- ldrh r0, [r2]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A2BC0
- adds r0, r1, 0
-_081A2BC0:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A2BA0
-
- thumb_func_start sub_81A2BD0
-sub_81A2BD0: @ 81A2BD0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r4, [sp, 0x30]
- ldr r5, [sp, 0x34]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0xC]
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- lsls r4, 24
- lsrs r4, 24
- mov r9, r4
- lsls r5, 24
- lsrs r5, 24
- mov r10, r5
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_81A2B70
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_81A2BA0
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r6, 0
- beq _081A2C20
- cmp r6, 0x1
- beq _081A2C30
-_081A2C20:
- cmp r7, 0
- beq _081A2C2A
- movs r0, 0x80
- lsls r0, 2
- b _081A2C3E
-_081A2C2A:
- movs r0, 0x80
- lsls r0, 1
- b _081A2C3E
-_081A2C30:
- cmp r7, 0
- beq _081A2C3A
- movs r0, 0x80
- lsls r0, 18
- b _081A2C3E
-_081A2C3A:
- movs r0, 0x80
- lsls r0, 17
-_081A2C3E:
- bl sub_81A1C24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081A2C68
- ldr r0, =gText_Current
- mov r1, r8
- str r1, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r10
- str r1, [sp, 0x8]
- adds r1, r5, 0
- adds r2, r4, 0
- ldr r3, [sp, 0xC]
- bl sub_81A2A28
- b _081A2C80
- .pool
-_081A2C68:
- ldr r0, =gText_Prev
- mov r1, r8
- str r1, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r10
- str r1, [sp, 0x8]
- adds r1, r5, 0
- adds r2, r4, 0
- ldr r3, [sp, 0xC]
- bl sub_81A2A28
-_081A2C80:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2BD0
-
- thumb_func_start sub_81A2C94
-sub_81A2C94: @ 81A2C94
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, =gRecordsWindowId
- ldr r0, =gUnknown_08611C74
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r4]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- cmp r7, 0
- bne _081A2CD8
- ldr r0, =gStringVar4
- ldr r1, =gText_BattleSwapSingleResults
- bl StringExpandPlaceholders
- b _081A2CE0
- .pool
-_081A2CD8:
- ldr r0, =gStringVar4
- ldr r1, =gText_BattleSwapDoubleResults
- bl StringExpandPlaceholders
-_081A2CE0:
- ldr r0, =gStringVar4
- movs r1, 0
- bl sub_81A1C4C
- ldr r0, =gRecordsWindowId
- mov r8, r0
- ldrb r0, [r0]
- ldr r2, =gText_Lv502
- movs r6, 0x21
- str r6, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- mov r1, r8
- ldrb r0, [r1]
- ldr r2, =gText_RentalSwap
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x98
- bl AddTextPrinterParameterized
- mov r1, r8
- ldrb r0, [r1]
- ldr r2, =gText_OpenLv
- movs r1, 0x61
- str r1, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- movs r0, 0xA
- bl sub_81A1C90
- movs r4, 0x9E
- str r4, [sp]
- movs r0, 0x31
- str r0, [sp, 0x4]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0x8
- movs r3, 0x40
- bl sub_81A2BD0
- str r4, [sp]
- movs r0, 0x41
- str r0, [sp, 0x4]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0x8
- movs r3, 0x40
- bl sub_81A2B04
- str r4, [sp]
- movs r0, 0x71
- str r0, [sp, 0x4]
- adds r0, r7, 0
- movs r1, 0x1
- movs r2, 0x8
- movs r3, 0x40
- bl sub_81A2BD0
- str r4, [sp]
- movs r0, 0x81
- str r0, [sp, 0x4]
- adds r0, r7, 0
- movs r1, 0x1
- movs r2, 0x8
- movs r3, 0x40
- bl sub_81A2B04
- mov r1, r8
- ldrb r0, [r1]
- bl PutWindowTilemap
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2C94
-
- thumb_func_start sub_81A2DB4
-sub_81A2DB4: @ 81A2DB4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r5, r0, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x30]
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- ldr r0, =gRecordsWindowId
- mov r10, r0
- ldrb r0, [r0]
- str r7, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- mov r8, r1
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r5, 0
- adds r3, r4, 0
- bl AddTextPrinterParameterized
- ldr r0, =0x0000270f
- cmp r6, r0
- bls _081A2E00
- adds r6, r0, 0
-_081A2E00:
- ldr r0, =gStringVar1
- adds r1, r6, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gText_FloorsCleared
- adds r0, r4, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r7, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- ldr r3, [sp, 0xC]
- bl AddTextPrinterParameterized
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2DB4
-
- thumb_func_start sub_81A2E54
-sub_81A2E54: @ 81A2E54
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- lsrs r0, 23
- ldr r2, =0x00000e1e
- adds r1, r2
- adds r1, r0
- ldrh r1, [r1]
- ldr r0, =gText_Record
- str r3, [sp]
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_81A2DB4
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2E54
-
- thumb_func_start sub_81A2E98
-sub_81A2E98: @ 81A2E98
- push {lr}
- lsls r0, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- lsrs r0, 23
- ldr r2, =0x00000e1a
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A2EB2
- adds r0, r1, 0
-_081A2EB2:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A2E98
-
- thumb_func_start sub_81A2EC4
-sub_81A2EC4: @ 81A2EC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r6, r3, 24
- adds r0, r4, 0
- bl sub_81A2E98
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r4, 0
- beq _081A2EF4
- movs r0, 0x80
- lsls r0, 6
- b _081A2EF8
-_081A2EF4:
- movs r0, 0x80
- lsls r0, 5
-_081A2EF8:
- bl sub_81A1C24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081A2F18
- ldr r0, =gText_Current
- str r6, [sp]
- adds r1, r5, 0
- adds r2, r7, 0
- mov r3, r8
- bl sub_81A2DB4
- b _081A2F26
- .pool
-_081A2F18:
- ldr r0, =gText_Prev
- str r6, [sp]
- adds r1, r5, 0
- adds r2, r7, 0
- mov r3, r8
- bl sub_81A2DB4
-_081A2F26:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2EC4
-
- thumb_func_start sub_81A2F38
-sub_81A2F38: @ 81A2F38
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r5, =gRecordsWindowId
- ldr r0, =gUnknown_08611C74
- bl AddWindow
- strb r0, [r5]
- ldrb r0, [r5]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r5]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gStringVar4
- ldr r1, =gText_BattleQuestResults
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_81A1C4C
- ldrb r0, [r5]
- ldr r2, =gText_Lv502
- movs r1, 0x31
- str r1, [sp]
- movs r6, 0xFF
- str r6, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldrb r0, [r5]
- ldr r2, =gText_OpenLv
- movs r1, 0x61
- str r1, [sp]
- str r6, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- movs r0, 0xA
- bl sub_81A1C90
- movs r0, 0
- movs r1, 0x40
- movs r2, 0x6F
- movs r3, 0x31
- bl sub_81A2EC4
- movs r0, 0
- movs r1, 0x40
- movs r2, 0x6F
- movs r3, 0x41
- bl sub_81A2E54
- movs r0, 0x1
- movs r1, 0x40
- movs r2, 0x6F
- movs r3, 0x61
- bl sub_81A2EC4
- movs r0, 0x1
- movs r1, 0x40
- movs r2, 0x6F
- movs r3, 0x71
- bl sub_81A2E54
- ldrb r0, [r5]
- bl PutWindowTilemap
- ldrb r0, [r5]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2F38
-
- thumb_func_start sub_81A2FF8
-sub_81A2FF8: @ 81A2FF8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- ldr r4, =gRecordsWindowId
- ldr r0, =gUnknown_08611C7C
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r4]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r0, =gStringVar4
- mov r9, r0
- ldr r1, =gText_LinkContestResults
- bl StringExpandPlaceholders
- movs r0, 0x1
- mov r1, r9
- movs r2, 0xD0
- bl GetStringCenterAlignXOffset
- adds r3, r0, 0
- ldrb r0, [r4]
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0x1
- str r1, [sp]
- movs r6, 0xFF
- str r6, [sp, 0x4]
- movs r5, 0
- str r5, [sp, 0x8]
- mov r2, r9
- bl AddTextPrinterParameterized
- ldr r7, =gText_1st
- movs r0, 0x1
- adds r1, r7, 0
- movs r2, 0x26
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- adds r3, 0x32
- ldrb r0, [r4]
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0x19
- mov r8, r1
- str r1, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- adds r2, r7, 0
- bl AddTextPrinterParameterized
- ldr r7, =gText_2nd
- movs r0, 0x1
- adds r1, r7, 0
- movs r2, 0x26
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- adds r3, 0x58
- ldrb r0, [r4]
- lsls r3, 24
- lsrs r3, 24
- mov r2, r8
- str r2, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- adds r2, r7, 0
- bl AddTextPrinterParameterized
- ldr r7, =gText_3rd
- movs r0, 0x1
- adds r1, r7, 0
- movs r2, 0x26
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- adds r3, 0x7E
- ldrb r0, [r4]
- lsls r3, 24
- lsrs r3, 24
- mov r1, r8
- str r1, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- adds r2, r7, 0
- bl AddTextPrinterParameterized
- ldr r7, =gText_4th
- movs r0, 0x1
- adds r1, r7, 0
- movs r2, 0x26
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- adds r3, 0xA4
- ldrb r0, [r4]
- lsls r3, 24
- lsrs r3, 24
- mov r2, r8
- str r2, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- adds r2, r7, 0
- bl AddTextPrinterParameterized
- ldrb r0, [r4]
- ldr r2, =gText_Cool
- movs r1, 0x29
- str r1, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x6
- bl AddTextPrinterParameterized
- ldrb r0, [r4]
- ldr r2, =gText_Beauty
- movs r1, 0x39
- str r1, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x6
- bl AddTextPrinterParameterized
- ldrb r0, [r4]
- ldr r2, =gText_Cute
- movs r1, 0x49
- str r1, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x6
- bl AddTextPrinterParameterized
- ldrb r0, [r4]
- ldr r2, =gText_Smart
- movs r1, 0x59
- str r1, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x6
- bl AddTextPrinterParameterized
- ldrb r0, [r4]
- ldr r2, =gText_Tough
- movs r1, 0x69
- str r1, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x6
- bl AddTextPrinterParameterized
- movs r1, 0
-_081A314A:
- movs r5, 0
- adds r0, r1, 0x1
- mov r8, r0
- lsls r0, r1, 28
- movs r2, 0xA4
- lsls r2, 22
- adds r0, r2
- lsrs r7, r0, 24
- lsls r4, r1, 3
-_081A315C:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000624
- adds r0, r1
- adds r0, r4
- ldrh r1, [r0]
- mov r0, r9
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r6, =gRecordsWindowId
- ldrb r0, [r6]
- movs r1, 0x26
- adds r3, r5, 0
- muls r3, r1
- adds r3, 0x40
- lsls r3, 24
- lsrs r3, 24
- str r7, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x1
- mov r2, r9
- bl AddTextPrinterParameterized
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _081A315C
- mov r1, r8
- cmp r1, 0x4
- ble _081A314A
- ldrb r0, [r6]
- bl PutWindowTilemap
- ldrb r0, [r6]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2FF8
-
- thumb_func_start sub_81A31FC
-sub_81A31FC: @ 81A31FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r7, r0, 30
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r4, 0x6
- bls _081A3232
- b _081A35CE
-_081A3232:
- lsls r0, r4, 2
- ldr r1, =_081A3250
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A3250:
- .4byte _081A326C
- .4byte _081A33A8
- .4byte _081A3414
- .4byte _081A347C
- .4byte _081A34CC
- .4byte _081A354C
- .4byte _081A3594
-_081A326C:
- ldr r2, =gSaveBlock2Ptr
- mov r9, r2
- ldr r0, [r2]
- lsls r3, r7, 1
- mov r10, r3
- mov r2, r8
- lsls r1, r2, 2
- add r1, r10
- str r1, [sp, 0x20]
- movs r3, 0xCE
- lsls r3, 4
- adds r1, r0, r3
- ldr r2, [sp, 0x20]
- adds r1, r2
- adds r3, 0x10
- adds r0, r3
- adds r0, r2
- ldrh r1, [r1]
- ldrh r2, [r0]
- cmp r1, r2
- bhi _081A3298
- b _081A35CE
-_081A3298:
- strh r1, [r0]
- mov r3, r8
- cmp r3, 0x3
- bne _081A32F2
- ldr r6, =gBattleScripting
- adds r6, 0x25
- ldrb r0, [r6]
- movs r4, 0x1
- eors r0, r4
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r5, =gLinkPlayers + 8
- adds r1, r5
- mov r0, sp
- bl StringCopy
- mov r0, sp
- bl StripExtCtrlCodes
- lsls r1, r7, 3
- ldr r0, =0x00000ee1
- adds r1, r0
- mov r2, r9
- ldr r0, [r2]
- adds r0, r1
- mov r1, sp
- bl StringCopy
- ldrb r0, [r6]
- eors r4, r0
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- subs r5, 0x4
- adds r0, r5
- ldr r0, [r0]
- lsls r2, r7, 2
- ldr r1, =0x00000ef1
- adds r2, r1
- mov r3, r9
- ldr r1, [r3]
- adds r1, r2
- bl WriteUnalignedWord
-_081A32F2:
- mov r7, r9
- ldr r0, [r7]
- movs r1, 0xCE
- lsls r1, 4
- adds r0, r1
- ldr r2, [sp, 0x20]
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, 0x1
- bhi _081A3308
- b _081A35CE
-_081A3308:
- bl sub_80EE818
- lsls r0, 24
- cmp r0, 0
- bne _081A3314
- b _081A35CE
-_081A3314:
- mov r3, r8
- cmp r3, 0x1
- beq _081A335A
- cmp r3, 0x1
- bgt _081A3338
- cmp r3, 0
- beq _081A3344
- b _081A35CE
- .pool
-_081A3338:
- mov r7, r8
- cmp r7, 0x2
- beq _081A3374
- cmp r7, 0x3
- beq _081A338E
- b _081A35CE
-_081A3344:
- mov r1, r9
- ldr r0, [r1]
- movs r2, 0xCE
- lsls r2, 4
- adds r0, r2
- add r0, r10
- ldrh r0, [r0]
- movs r1, 0x1
- bl sub_80EE8C8
- b _081A35CE
-_081A335A:
- mov r3, r9
- ldr r0, [r3]
- mov r1, r10
- adds r1, 0x4
- movs r7, 0xCE
- lsls r7, 4
- adds r0, r7
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x2
- bl sub_80EE8C8
- b _081A35CE
-_081A3374:
- mov r1, r9
- ldr r0, [r1]
- mov r1, r10
- adds r1, 0x8
- movs r2, 0xCE
- lsls r2, 4
- adds r0, r2
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x3
- bl sub_80EE8C8
- b _081A35CE
-_081A338E:
- mov r3, r9
- ldr r0, [r3]
- mov r1, r10
- adds r1, 0xC
- movs r7, 0xCE
- lsls r7, 4
- adds r0, r7
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x4
- bl sub_80EE8C8
- b _081A35CE
-_081A33A8:
- ldr r6, =gSaveBlock2Ptr
- ldr r0, [r6]
- lsls r7, 1
- mov r2, r8
- lsls r1, r2, 2
- adds r4, r7, r1
- ldr r5, =0x00000d0c
- adds r1, r0, r5
- adds r1, r4
- ldr r3, =0x00000d14
- adds r0, r3
- adds r0, r4
- ldrh r2, [r1]
- ldrh r3, [r0]
- cmp r2, r3
- bhi _081A33CA
- b _081A35CE
-_081A33CA:
- strh r2, [r0]
- ldrh r0, [r1]
- cmp r0, 0x1
- bhi _081A33D4
- b _081A35CE
-_081A33D4:
- bl sub_80EE818
- lsls r0, 24
- cmp r0, 0
- bne _081A33E0
- b _081A35CE
-_081A33E0:
- mov r0, r8
- cmp r0, 0
- bne _081A3404
- ldr r0, [r6]
- adds r0, r5
- adds r0, r7
- ldrh r0, [r0]
- movs r1, 0x5
- bl sub_80EE8C8
- b _081A35CE
- .pool
-_081A3404:
- ldr r0, [r6]
- adds r0, r5
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0x6
- bl sub_80EE8C8
- b _081A35CE
-_081A3414:
- ldr r6, =gSaveBlock2Ptr
- ldr r0, [r6]
- lsls r7, 1
- mov r2, r8
- lsls r1, r2, 2
- adds r4, r7, r1
- ldr r5, =0x00000dc8
- adds r1, r0, r5
- adds r1, r4
- movs r3, 0xDD
- lsls r3, 4
- adds r0, r3
- adds r0, r4
- ldrh r2, [r1]
- ldrh r3, [r0]
- cmp r2, r3
- bhi _081A3438
- b _081A35CE
-_081A3438:
- strh r2, [r0]
- ldrh r0, [r1]
- cmp r0, 0x1
- bhi _081A3442
- b _081A35CE
-_081A3442:
- bl sub_80EE818
- lsls r0, 24
- cmp r0, 0
- bne _081A344E
- b _081A35CE
-_081A344E:
- mov r0, r8
- cmp r0, 0
- bne _081A346C
- ldr r0, [r6]
- adds r0, r5
- adds r0, r7
- ldrh r0, [r0]
- movs r1, 0xB
- bl sub_80EE8C8
- b _081A35CE
- .pool
-_081A346C:
- ldr r0, [r6]
- adds r0, r5
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0xC
- bl sub_80EE8C8
- b _081A35CE
-_081A347C:
- ldr r6, =gSaveBlock2Ptr
- ldr r1, [r6]
- lsls r4, r7, 1
- ldr r5, =0x00000dda
- adds r0, r1, r5
- adds r0, r4
- ldr r2, =0x00000dde
- adds r1, r2
- adds r1, r4
- ldrh r2, [r0]
- ldrh r3, [r1]
- cmp r2, r3
- bhi _081A3498
- b _081A35CE
-_081A3498:
- strh r2, [r1]
- ldrh r0, [r0]
- cmp r0, 0x1
- bhi _081A34A2
- b _081A35CE
-_081A34A2:
- bl sub_80EE818
- lsls r0, 24
- cmp r0, 0
- bne _081A34AE
- b _081A35CE
-_081A34AE:
- ldr r0, [r6]
- adds r0, r5
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0xA
- bl sub_80EE8C8
- b _081A35CE
- .pool
-_081A34CC:
- ldr r6, =gSaveBlock2Ptr
- ldr r2, [r6]
- lsls r7, 1
- mov r9, r7
- mov r7, r8
- lsls r0, r7, 2
- mov r1, r9
- adds r4, r1, r0
- ldr r5, =0x00000de2
- adds r0, r2, r5
- adds r3, r0, r4
- ldr r7, =0x00000dea
- adds r0, r2, r7
- adds r0, r4
- ldrh r1, [r3]
- ldrh r7, [r0]
- cmp r1, r7
- bls _081A35CE
- strh r1, [r0]
- ldr r0, =0x00000dfa
- adds r1, r2, r0
- adds r1, r4
- ldr r7, =0x00000df2
- adds r0, r2, r7
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r1]
- ldrh r0, [r3]
- cmp r0, 0x1
- bls _081A35CE
- bl sub_80EE818
- lsls r0, 24
- cmp r0, 0
- beq _081A35CE
- mov r0, r8
- cmp r0, 0
- bne _081A353C
- ldr r0, [r6]
- adds r0, r5
- add r0, r9
- ldrh r0, [r0]
- movs r1, 0x7
- bl sub_80EE8C8
- b _081A35CE
- .pool
-_081A353C:
- ldr r0, [r6]
- adds r0, r5
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0x8
- bl sub_80EE8C8
- b _081A35CE
-_081A354C:
- ldr r6, =gSaveBlock2Ptr
- ldr r1, [r6]
- lsls r4, r7, 1
- ldr r5, =0x00000e04
- adds r0, r1, r5
- adds r0, r4
- ldr r2, =0x00000e08
- adds r1, r2
- adds r1, r4
- ldrh r2, [r0]
- ldrh r3, [r1]
- cmp r2, r3
- bls _081A35CE
- strh r2, [r1]
- ldrh r0, [r0]
- cmp r0, 0x1
- bls _081A35CE
- bl sub_80EE818
- lsls r0, 24
- cmp r0, 0
- beq _081A35CE
- ldr r0, [r6]
- adds r0, r5
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0x9
- bl sub_80EE8C8
- b _081A35CE
- .pool
-_081A3594:
- ldr r6, =gSaveBlock2Ptr
- ldr r1, [r6]
- lsls r4, r7, 1
- ldr r5, =0x00000e1a
- adds r0, r1, r5
- adds r0, r4
- ldr r7, =0x00000e1e
- adds r1, r7
- adds r1, r4
- ldrh r2, [r0]
- ldrh r3, [r1]
- cmp r2, r3
- bls _081A35CE
- strh r2, [r1]
- ldrh r0, [r0]
- cmp r0, 0x1
- bls _081A35CE
- bl sub_80EE818
- lsls r0, 24
- cmp r0, 0
- beq _081A35CE
- ldr r0, [r6]
- adds r0, r5
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0xD
- bl sub_80EE8C8
-_081A35CE:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A31FC
-
- thumb_func_start sub_81A35EC
-sub_81A35EC: @ 81A35EC
- push {r4,lr}
- ldr r0, =0x000040cf
- bl VarGet
- ldr r4, =gSpecialVar_Result
- bl sub_81A3610
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A35EC
-
- thumb_func_start sub_81A3610
-sub_81A3610: @ 81A3610
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r0, 0
- mov r8, r0
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, =0x000040ce
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl sub_81A39C4
- lsls r0, 16
- ldr r1, =gUnknown_08611550
- mov r9, r1
- lsls r7, r6, 2
- adds r1, 0x3
- adds r1, r7, r1
- lsrs r0, 16
- ldrb r1, [r1]
- adds r5, r0, r1
- cmp r4, 0
- beq _081A365C
- movs r0, 0
- b _081A36C2
- .pool
-_081A365C:
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_81A3B30
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- blt _081A3680
- cmp r1, 0x1
- bgt _081A3680
- adds r0, r1, r7
- add r0, r9
- ldrb r0, [r0]
- cmp r5, r0
- bne _081A36BC
- adds r1, 0x1
- mov r8, r1
- b _081A36BC
-_081A3680:
- ldr r1, =gUnknown_08611550
- lsls r2, r6, 2
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r5, r0
- bne _081A3694
- movs r0, 0x3
- b _081A36BA
- .pool
-_081A3694:
- adds r0, r1, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r5, r0
- bne _081A36A4
- movs r1, 0x4
- mov r8, r1
- b _081A36BC
-_081A36A4:
- cmp r5, r0
- ble _081A36BC
- subs r0, r5, r0
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- bl __modsi3
- cmp r0, 0
- bne _081A36BC
- movs r0, 0x4
-_081A36BA:
- mov r8, r0
-_081A36BC:
- mov r1, r8
- lsls r0, r1, 24
- lsrs r0, 24
-_081A36C2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81A3610
-
- thumb_func_start CopyFrontierTrainerText
-CopyFrontierTrainerText: @ 81A36D0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r1, 16
- lsrs r3, r1, 16
- cmp r0, 0x1
- beq _081A3766
- cmp r0, 0x1
- bgt _081A36EA
- cmp r0, 0
- beq _081A36F2
- b _081A38F8
-_081A36EA:
- cmp r2, 0x2
- bne _081A36F0
- b _081A3818
-_081A36F0:
- b _081A38F8
-_081A36F2:
- movs r0, 0xFA
- lsls r0, 1
- cmp r3, r0
- bne _081A370C
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000bfc
- b _081A38C4
- .pool
-_081A370C:
- ldr r0, =0x000003fe
- cmp r3, r0
- beq _081A3786
- ldr r0, =0x0000012b
- cmp r3, r0
- bhi _081A3738
- ldr r2, =gFacilityTrainers
- movs r0, 0x34
- adds r1, r3, 0
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r0, 0xC
- bl FrontierSpeechToString
- b _081A38F8
- .pool
-_081A3738:
- ldr r0, =0x0000018f
- cmp r3, r0
- bhi _081A3758
- ldr r1, =gSaveBlock2Ptr
- movs r0, 0xEC
- muls r0, r3
- ldr r1, [r1]
- adds r0, r1
- ldr r1, =0xfffef2b8
- b _081A38C4
- .pool
-_081A3758:
- adds r0, r3, 0
- adds r0, 0x70
- lsls r0, 24
- lsrs r0, 24
- bl CopyFriendsApprenticeChallengeText
- b _081A38F8
-_081A3766:
- movs r0, 0xFA
- lsls r0, 1
- cmp r3, r0
- bne _081A3780
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000c08
- b _081A38C4
- .pool
-_081A3780:
- ldr r0, =0x000003fe
- cmp r3, r0
- bne _081A3794
-_081A3786:
- movs r0, 0
- bl sub_81A51A8
- b _081A38F8
- .pool
-_081A3794:
- ldr r0, =0x0000012b
- cmp r3, r0
- bhi _081A37B8
- ldr r2, =gFacilityTrainers
- movs r0, 0x34
- adds r1, r3, 0
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r0, 0x18
- bl FrontierSpeechToString
- b _081A38F8
- .pool
-_081A37B8:
- ldr r0, =0x0000018f
- cmp r3, r0
- bhi _081A37EC
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- bne _081A387C
- ldr r1, =gSaveBlock2Ptr
- movs r0, 0xEC
- muls r0, r3
- ldr r1, [r1]
- adds r0, r1
- ldr r1, =0xfffef2c4
- b _081A38C4
- .pool
-_081A37EC:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- bne _081A387C
- ldr r1, =gSaveBlock2Ptr
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- ldr r1, [r1]
- adds r0, r1
- ldr r1, =0xffff96c4
- b _081A38C4
- .pool
-_081A3818:
- movs r0, 0xFA
- lsls r0, 1
- cmp r3, r0
- bne _081A3830
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000c14
- b _081A38C4
- .pool
-_081A3830:
- ldr r0, =0x000003fe
- cmp r3, r0
- bne _081A3844
- movs r0, 0x1
- bl sub_81A51A8
- b _081A38F8
- .pool
-_081A3844:
- ldr r0, =0x0000012b
- cmp r3, r0
- bhi _081A3868
- ldr r2, =gFacilityTrainers
- movs r0, 0x34
- adds r1, r3, 0
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r0, 0x24
- bl FrontierSpeechToString
- b _081A38F8
- .pool
-_081A3868:
- ldr r0, =0x0000018f
- cmp r3, r0
- bhi _081A38A8
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _081A3890
-_081A387C:
- bl sub_81864E0
- bl FrontierSpeechToString
- b _081A38F8
- .pool
-_081A3890:
- ldr r1, =gSaveBlock2Ptr
- movs r0, 0xEC
- muls r0, r3
- ldr r1, [r1]
- adds r0, r1
- ldr r1, =0xfffef2d0
- b _081A38C4
- .pool
-_081A38A8:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _081A38D4
- bl sub_81864A8
- lsls r0, 24
- lsrs r3, r0, 24
- movs r0, 0x58
- muls r0, r3
- ldr r1, =gApprentices+0x4A
-_081A38C4:
- adds r0, r1
- bl FrontierSpeechToString
- b _081A38F8
- .pool
-_081A38D4:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0xfffffe70
- adds r2, r3, r0
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- adds r1, 0xDC
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r3, r0, 27
- movs r0, 0x58
- muls r0, r3
- ldr r1, =gApprentices+0x4A
- adds r0, r1
- bl FrontierSpeechToString
-_081A38F8:
- pop {r0}
- bx r0
- .pool
- thumb_func_end CopyFrontierTrainerText
-
- thumb_func_start sub_81A3908
-sub_81A3908: @ 81A3908
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r2, =0x00000cdc
- adds r1, r2
- movs r2, 0
- str r2, [r1]
- movs r4, 0
- mov r9, r0
- mov r8, r9
- movs r6, 0
-_081A3926:
- movs r5, 0
- lsls r7, r4, 2
- mov r10, r7
- adds r0, r4, 0x1
- mov r12, r0
-_081A3930:
- mov r1, r8
- ldr r2, [r1]
- lsls r3, r5, 1
- mov r7, r10
- adds r1, r3, r7
- movs r7, 0xCE
- lsls r7, 4
- adds r0, r2, r7
- adds r0, r1
- strh r6, [r0]
- cmp r4, 0x1
- bgt _081A3960
- adds r7, 0x2C
- adds r0, r2, r7
- adds r0, r1
- strh r6, [r0]
- adds r7, 0xBC
- adds r0, r2, r7
- adds r0, r1
- strh r6, [r0]
- adds r7, 0x1A
- adds r0, r2, r7
- adds r0, r1
- strh r6, [r0]
-_081A3960:
- cmp r4, 0
- bne _081A3980
- mov r1, r8
- ldr r0, [r1]
- ldr r2, =0x00000dda
- adds r1, r0, r2
- adds r1, r3
- strh r4, [r1]
- ldr r7, =0x00000e04
- adds r1, r0, r7
- adds r1, r3
- strh r4, [r1]
- ldr r1, =0x00000e1a
- adds r0, r1
- adds r0, r3
- strh r4, [r0]
-_081A3980:
- adds r5, 0x1
- cmp r5, 0x1
- ble _081A3930
- mov r4, r12
- cmp r4, 0x3
- ble _081A3926
- mov r2, r9
- ldr r0, [r2]
- ldr r7, =0x00000ca8
- adds r1, r0, r7
- ldrb r0, [r1]
- cmp r0, 0
- beq _081A399E
- movs r0, 0x1
- strb r0, [r1]
-_081A399E:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3908
-
- thumb_func_start sub_81A39C4
-sub_81A39C4: @ 81A39C4
- push {r4,r5,lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r4, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bhi _081A3AC4
- lsls r0, 2
- ldr r1, =_081A3A0C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A3A0C:
- .4byte _081A3A28
- .4byte _081A3A3C
- .4byte _081A3A54
- .4byte _081A3A6C
- .4byte _081A3A80
- .4byte _081A3A98
- .4byte _081A3AAC
-_081A3A28:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r5, 2
- adds r1, r2
- movs r2, 0xCE
- lsls r2, 4
- b _081A3AB4
- .pool
-_081A3A3C:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r5, 2
- adds r1, r2
- ldr r2, =0x00000d0c
- b _081A3AB4
- .pool
-_081A3A54:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r5, 2
- adds r1, r2
- ldr r2, =0x00000dc8
- b _081A3AB4
- .pool
-_081A3A6C:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000dda
- b _081A3AB4
- .pool
-_081A3A80:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r5, 2
- adds r1, r2
- ldr r2, =0x00000de2
- b _081A3AB4
- .pool
-_081A3A98:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000e04
- b _081A3AB4
- .pool
-_081A3AAC:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000e1a
-_081A3AB4:
- adds r0, r2
- adds r0, r1
- ldrh r0, [r0]
- b _081A3AC6
- .pool
-_081A3AC4:
- movs r0, 0
-_081A3AC6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81A39C4
-
- thumb_func_start sub_81A3ACC
-sub_81A3ACC: @ 81A3ACC
- push {r4,r5,lr}
- movs r2, 0
- ldr r5, =gSaveBlock2Ptr
- ldr r4, =0x00000cb4
- ldr r0, =0x0000ffff
- adds r3, r0, 0
-_081A3AD8:
- ldr r0, [r5]
- lsls r1, r2, 1
- adds r0, r4
- adds r0, r1
- ldrh r1, [r0]
- orrs r1, r3
- strh r1, [r0]
- adds r2, 0x1
- cmp r2, 0x13
- ble _081A3AD8
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3ACC
-
- thumb_func_start sub_81A3B00
-sub_81A3B00: @ 81A3B00
- push {lr}
- ldr r0, =gTrainerBattleOpponent_A
- ldrh r1, [r0]
- ldr r0, =0x000003fe
- cmp r1, r0
- bne _081A3B20
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
- b _081A3B24
- .pool
-_081A3B20:
- ldr r1, =gSpecialVar_Result
- movs r0, 0
-_081A3B24:
- strh r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3B00
-
- thumb_func_start sub_81A3B30
-sub_81A3B30: @ 81A3B30
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 23
- ldr r1, =0x000008c4
- adds r0, r4, r1
- bl FlagGet
- adds r5, r0, 0
- ldr r0, =0x000008c5
- adds r4, r0
- adds r0, r4, 0
- bl FlagGet
- adds r5, r0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A3B30
-
- thumb_func_start sub_81A3B64
-sub_81A3B64: @ 81A3B64
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r5, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r4, r0, 30
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r7, 0x6
- bhi _081A3C78
- lsls r0, r7, 2
- ldr r1, =_081A3BB4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A3BB4:
- .4byte _081A3BD0
- .4byte _081A3BE4
- .4byte _081A3C00
- .4byte _081A3C18
- .4byte _081A3C2C
- .4byte _081A3C44
- .4byte _081A3C60
-_081A3BD0:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r6, 2
- adds r1, r2
- movs r2, 0xCE
- lsls r2, 4
- b _081A3C68
- .pool
-_081A3BE4:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r6, 2
- adds r1, r2
- ldr r2, =0x00000d0c
- adds r0, r2
- adds r0, r1
- ldrh r5, [r0]
- b _081A3C78
- .pool
-_081A3C00:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r6, 2
- adds r1, r2
- ldr r2, =0x00000dc8
- b _081A3C68
- .pool
-_081A3C18:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000dda
- b _081A3C68
- .pool
-_081A3C2C:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r6, 2
- adds r1, r2
- ldr r2, =0x00000de2
- b _081A3C68
- .pool
-_081A3C44:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000e04
- adds r0, r2
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0xE
- b _081A3C70
- .pool
-_081A3C60:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000e1a
-_081A3C68:
- adds r0, r2
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x7
-_081A3C70:
- bl __udivsi3
- lsls r0, 16
- lsrs r5, r0, 16
-_081A3C78:
- cmp r5, 0
- beq _081A3C7E
- subs r5, 0x1
-_081A3C7E:
- cmp r5, 0x1D
- bls _081A3C84
- movs r5, 0x1D
-_081A3C84:
- ldr r2, =gUnknown_086118B4
- lsls r1, r7, 2
- adds r1, r6, r1
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r1, r0
- adds r7, r1, r2
- ldrb r5, [r7]
- ldr r0, =gTrainerBattleOpponent_A
- mov r9, r0
- ldrh r0, [r0]
- ldr r1, =0x000003fe
- mov r8, r1
- cmp r0, r8
- bne _081A3CA6
- adds r5, 0xA
-_081A3CA6:
- ldr r6, =gSaveBlock2Ptr
- ldr r1, [r6]
- ldr r4, =0x00000eb8
- adds r1, r4
- ldrh r0, [r1]
- adds r0, r5
- strh r0, [r1]
- ldr r0, =gStringVar1
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, [r6]
- adds r2, r0, r4
- ldrh r0, [r2]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A3CCE
- strh r1, [r2]
-_081A3CCE:
- ldr r0, [r6]
- ldr r4, =0x00000eba
- adds r0, r4
- ldrh r5, [r0]
- ldrb r0, [r7]
- adds r5, r0
- bl sub_80EED60
- mov r2, r9
- ldrh r0, [r2]
- cmp r0, r8
- bne _081A3CEE
- adds r5, 0xA
- movs r0, 0xA
- bl sub_80EED60
-_081A3CEE:
- ldr r0, =0x0000ffff
- cmp r5, r0
- ble _081A3CF6
- adds r5, r0, 0
-_081A3CF6:
- ldr r0, [r6]
- adds r0, r4
- strh r5, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3B64
-
- thumb_func_start sub_81A3D30
-sub_81A3D30: @ 81A3D30
- push {r4,lr}
- ldr r0, =0x000040cf
- bl VarGet
- ldr r4, =gSpecialVar_Result
- lsls r0, 24
- lsrs r0, 24
- bl sub_81A3B30
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3D30
-
- thumb_func_start sub_81A3D58
-sub_81A3D58: @ 81A3D58
- push {r4,lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_81A3B30
- lsls r0, 24
- cmp r0, 0
- bne _081A3D88
- lsls r0, r4, 17
- ldr r1, =0x8C4 << 16
- adds r0, r1
- lsrs r0, 16
- bl FlagSet
- b _081A3D94
- .pool
-_081A3D88:
- lsls r0, r4, 17
- ldr r1, =0x8C5 << 16
- adds r0, r1
- lsrs r0, 16
- bl FlagSet
-_081A3D94:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3D58
-
- thumb_func_start sub_81A3DA0
-sub_81A3DA0: @ 81A3DA0
- push {lr}
- ldr r0, =gBattleTypeFlags
- ldr r1, =gSpecialVar_0x8005
- ldrh r1, [r1]
- ldr r2, [r0]
- ands r2, r1
- cmp r2, 0
- beq _081A3DC4
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
- strh r0, [r1]
- b _081A3DC8
- .pool
-_081A3DC4:
- ldr r0, =gSpecialVar_Result
- strh r2, [r0]
-_081A3DC8:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3DA0
-
- thumb_func_start sub_81A3DD0
-sub_81A3DD0: @ 81A3DD0
- push {r4-r6,lr}
- adds r5, r2, 0
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- adds r0, r6, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl GetSetPokedexFlag
- lsls r0, 24
- cmp r0, 0
- beq _081A3ED6
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- subs r0, r4, 0x1
- cmp r0, 0xA
- bhi _081A3EA0
- lsls r0, 2
- ldr r1, =_081A3E0C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A3E0C:
- .4byte _081A3E38
- .4byte _081A3E68
- .4byte _081A3E38
- .4byte _081A3EA0
- .4byte _081A3E38
- .4byte _081A3EA0
- .4byte _081A3E38
- .4byte _081A3EA0
- .4byte _081A3E38
- .4byte _081A3EA0
- .4byte _081A3E38
-_081A3E38:
- cmp r5, r4
- bne _081A3E50
- ldr r0, =gStringVar1
- ldr r1, =gText_SpaceAndSpace
- bl StringAppend
- b _081A3EC8
- .pool
-_081A3E50:
- cmp r5, r4
- ble _081A3EC8
- ldr r0, =gStringVar1
- ldr r1, =gText_CommaSpace
- bl StringAppend
- b _081A3EC8
- .pool
-_081A3E68:
- cmp r4, r5
- bne _081A3E80
- ldr r0, =gStringVar1
- ldr r1, =gText_SpaceAndSpace
- bl StringAppend
- b _081A3E88
- .pool
-_081A3E80:
- ldr r0, =gStringVar1
- ldr r1, =gText_CommaSpace
- bl StringAppend
-_081A3E88:
- ldr r0, =gStringVar1
- ldr r1, =gText_NewLine
- bl StringAppend
- b _081A3EC8
- .pool
-_081A3EA0:
- cmp r4, r5
- bne _081A3EB8
- ldr r0, =gStringVar1
- ldr r1, =gText_SpaceAndSpace
- bl StringAppend
- b _081A3EC0
- .pool
-_081A3EB8:
- ldr r0, =gStringVar1
- ldr r1, =gText_CommaSpace
- bl StringAppend
-_081A3EC0:
- ldr r0, =gStringVar1
- ldr r1, =gText_ScrollTextUp
- bl StringAppend
-_081A3EC8:
- ldr r0, =gStringVar1
- movs r1, 0xB
- muls r1, r6
- ldr r2, =gSpeciesNames
- adds r1, r2
- bl StringAppend
-_081A3ED6:
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A3DD0
-
- thumb_func_start sub_81A3EF0
-sub_81A3EF0: @ 81A3EF0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, [sp, 0x20]
- ldr r4, [sp, 0x24]
- mov r9, r4
- ldr r4, [sp, 0x28]
- mov r10, r4
- ldr r7, [sp, 0x2C]
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r3, 24
- lsrs r3, 24
- mov r12, r3
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- movs r2, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- beq _081A3FBE
- cmp r4, 0
- beq _081A3FBE
- ldr r0, =gUnknown_08611C9A
- ldrh r1, [r0]
- ldr r5, =0x0000ffff
- adds r3, r0, 0
- cmp r1, r5
- beq _081A3F54
- cmp r1, r4
- beq _081A3F48
- adds r1, r3, 0
-_081A3F3A:
- adds r1, 0x2
- adds r2, 0x1
- ldrh r0, [r1]
- cmp r0, r5
- beq _081A3F54
- cmp r0, r4
- bne _081A3F3A
-_081A3F48:
- lsls r0, r2, 1
- adds r0, r3
- ldrh r1, [r0]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _081A3FBE
-_081A3F54:
- mov r0, r12
- cmp r0, 0
- bne _081A3F60
- mov r1, r8
- cmp r1, 0x32
- bhi _081A3FBE
-_081A3F60:
- movs r2, 0
- ldrb r3, [r7]
- cmp r2, r3
- bge _081A3F80
- mov r1, r9
- ldrh r0, [r1]
- cmp r0, r4
- beq _081A3F80
- adds r5, r3, 0
-_081A3F72:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, r5
- bge _081A3F80
- ldrh r0, [r1]
- cmp r0, r4
- bne _081A3F72
-_081A3F80:
- cmp r2, r3
- bne _081A3FBE
- cmp r6, 0
- beq _081A3FAA
- movs r2, 0
- cmp r2, r3
- bge _081A3FA6
- mov r1, r10
- ldrh r0, [r1]
- cmp r0, r6
- beq _081A3FA6
- adds r5, r3, 0
-_081A3F98:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, r5
- bge _081A3FA6
- ldrh r0, [r1]
- cmp r0, r6
- bne _081A3F98
-_081A3FA6:
- cmp r2, r3
- bne _081A3FBE
-_081A3FAA:
- lsls r0, r3, 1
- add r0, r9
- strh r4, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- add r0, r10
- strh r6, [r0]
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
-_081A3FBE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3EF0
-
- thumb_func_start sub_81A3FD4
-sub_81A3FD4: @ 81A3FD4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- movs r0, 0
- str r0, [sp, 0x2C]
- add r4, sp, 0x28
- strb r0, [r4]
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- mov r10, r4
- cmp r0, 0x1
- beq _081A4016
- cmp r0, 0x1
- bgt _081A4008
- cmp r0, 0
- beq _081A4010
- b _081A402A
- .pool
-_081A4008:
- cmp r0, 0x3
- bgt _081A402A
- movs r0, 0x2
- b _081A4028
-_081A4010:
- movs r1, 0x3
- str r1, [sp, 0x2C]
- b _081A402A
-_081A4016:
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- movs r1, 0x3
- str r1, [sp, 0x2C]
- cmp r0, 0
- bne _081A402A
- movs r0, 0x4
-_081A4028:
- str r0, [sp, 0x2C]
-_081A402A:
- movs r1, 0
- mov r9, r1
- b _081A4040
- .pool
-_081A4034:
- mov r1, r10
- ldrb r0, [r1]
- ldr r1, [sp, 0x2C]
- cmp r0, r1
- blt _081A4040
- b _081A41E0
-_081A4040:
- mov r5, r9
- movs r0, 0
- mov r1, r10
- strb r0, [r1]
- mov r0, r9
- adds r0, 0x1
- str r0, [sp, 0x30]
-_081A404E:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bne _081A40C8
- cmp r7, 0
- bne _081A40E4
- ldr r0, =gSpecialVar_Result
- ldrb r3, [r0]
- str r6, [sp]
- add r1, sp, 0x10
- str r1, [sp, 0x4]
- add r0, sp, 0x1C
- str r0, [sp, 0x8]
- mov r0, r10
- str r0, [sp, 0xC]
- mov r0, r8
- movs r1, 0
- adds r2, r4, 0
- bl sub_81A3EF0
- b _081A40E4
- .pool
-_081A40C8:
- ldr r0, =gSpecialVar_Result
- ldrb r3, [r0]
- str r6, [sp]
- add r1, sp, 0x10
- str r1, [sp, 0x4]
- add r0, sp, 0x1C
- str r0, [sp, 0x8]
- mov r0, r10
- str r0, [sp, 0xC]
- mov r0, r8
- adds r1, r7, 0
- adds r2, r4, 0
- bl sub_81A3EF0
-_081A40E4:
- adds r5, 0x1
- cmp r5, 0x5
- ble _081A40EC
- movs r5, 0
-_081A40EC:
- cmp r5, r9
- bne _081A404E
- ldr r1, [sp, 0x30]
- mov r9, r1
- cmp r1, 0x5
- ble _081A4034
- mov r1, r10
- ldrb r0, [r1]
- ldr r1, [sp, 0x2C]
- cmp r0, r1
- bge _081A41E0
- movs r6, 0
- ldr r0, =gUnknown_08611C9A
- ldrh r2, [r0]
- ldr r1, =0x0000ffff
- mov r8, r0
- cmp r2, r1
- beq _081A4134
- mov r4, r8
-_081A4112:
- adds r0, r2, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl GetSetPokedexFlag
- lsls r0, 24
- cmp r0, 0
- beq _081A412A
- adds r6, 0x1
-_081A412A:
- adds r4, 0x2
- ldrh r2, [r4]
- ldr r0, =0x0000ffff
- cmp r2, r0
- bne _081A4112
-_081A4134:
- ldr r1, =gStringVar1
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0
- mov r1, r10
- strb r0, [r1]
- mov r1, r8
- ldrh r0, [r1]
- ldr r1, =0x0000ffff
- cmp r0, r1
- beq _081A416A
- mov r5, r10
- adds r7, r1, 0
- mov r4, r8
-_081A4156:
- ldrh r0, [r4]
- ldrb r1, [r5]
- adds r2, r6, 0
- bl sub_81A3DD0
- strb r0, [r5]
- adds r4, 0x2
- ldrh r0, [r4]
- cmp r0, r7
- bne _081A4156
-_081A416A:
- mov r0, r10
- ldrb r4, [r0]
- cmp r4, 0
- bne _081A41A4
- ldr r4, =gStringVar1
- ldr r1, =gText_Space2
- adds r0, r4, 0
- bl StringAppend
- ldr r1, =gText_Are
- adds r0, r4, 0
- bl StringAppend
- b _081A4202
- .pool
-_081A41A4:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _081A41C0
- ldr r0, =gStringVar1
- ldr r1, =gText_ScrollTextUp
- bl StringAppend
- b _081A41C8
- .pool
-_081A41C0:
- ldr r0, =gStringVar1
- ldr r1, =gText_Space2
- bl StringAppend
-_081A41C8:
- ldr r0, =gStringVar1
- ldr r1, =gText_Are2
- bl StringAppend
- b _081A4202
- .pool
-_081A41E0:
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0
- strh r0, [r1]
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r0, =gSpecialVar_Result
- ldrb r0, [r0]
- ldr r1, =0x00000ca9
- adds r2, r1
- movs r1, 0x3
- ands r1, r0
- ldrb r3, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
-_081A4202:
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3FD4
-
- thumb_func_start sub_81A4224
-sub_81A4224: @ 81A4224
- push {lr}
- bl ValidateEReaderTrainer
- pop {r0}
- bx r0
- thumb_func_end sub_81A4224
-
- thumb_func_start sub_81A4230
-sub_81A4230: @ 81A4230
- push {r4-r7,lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r4, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bls _081A425A
- b _081A4394
-_081A425A:
- lsls r0, 2
- ldr r1, =_081A4278
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A4278:
- .4byte _081A4294
- .4byte _081A42DC
- .4byte _081A431C
- .4byte _081A4338
- .4byte _081A434C
- .4byte _081A4368
- .4byte _081A437C
-_081A4294:
- ldr r7, =gSaveBlock2Ptr
- ldr r0, [r7]
- lsls r4, 1
- lsls r1, r5, 2
- adds r1, r4, r1
- movs r6, 0xCE
- lsls r6, 4
- adds r3, r0, r6
- adds r2, r3, r1
- ldrh r1, [r2]
- ldr r0, =0x0000270e
- cmp r1, r0
- bhi _081A4394
- adds r0, r1, 0x1
- strh r0, [r2]
- cmp r5, 0
- bne _081A4394
- adds r0, r3, r4
- ldrh r1, [r0]
- movs r0, 0x20
- bl SetGameStat
- ldr r1, [r7]
- adds r0, r1, r6
- adds r0, r4
- ldrh r0, [r0]
- ldr r2, =0x00000d02
- adds r1, r2
- b _081A4392
- .pool
-_081A42DC:
- ldr r6, =gSaveBlock2Ptr
- ldr r0, [r6]
- lsls r2, r4, 1
- lsls r1, r5, 2
- adds r1, r2, r1
- ldr r3, =0x00000d0c
- adds r0, r3
- adds r3, r0, r1
- ldrh r0, [r3]
- ldr r2, =0x0000270e
- cmp r0, r2
- bhi _081A42F8
- adds r0, 0x1
- strh r0, [r3]
-_081A42F8:
- ldr r0, [r6]
- ldr r3, =0x00000d1c
- adds r0, r3
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, r2
- bhi _081A4394
- adds r0, 0x1
- b _081A4392
- .pool
-_081A431C:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- lsls r0, r4, 1
- lsls r1, r5, 2
- adds r0, r1
- ldr r1, =0x00000dc8
- adds r2, r1
- adds r1, r2, r0
- b _081A4388
- .pool
-_081A4338:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000dda
- adds r0, r2
- b _081A4386
- .pool
-_081A434C:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- lsls r0, r4, 1
- lsls r1, r5, 2
- adds r0, r1
- ldr r3, =0x00000de2
- adds r2, r3
- adds r1, r2, r0
- b _081A4388
- .pool
-_081A4368:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000e04
- adds r0, r2
- b _081A4386
- .pool
-_081A437C:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r3, =0x00000e1a
- adds r0, r3
-_081A4386:
- adds r1, r0, r1
-_081A4388:
- ldrh r3, [r1]
- ldr r0, =0x0000270e
- cmp r3, r0
- bhi _081A4394
- adds r0, r3, 0x1
-_081A4392:
- strh r0, [r1]
-_081A4394:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4230
-
- thumb_func_start sub_81A43A8
-sub_81A43A8: @ 81A43A8
- push {r4-r6,lr}
- sub sp, 0x4
- movs r4, 0
- ldr r6, =gSaveBlock1Ptr
- movs r5, 0x64
-_081A43B2:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000caa
- adds r0, r2
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, 0
- beq _081A43EE
- adds r1, r0, 0
- muls r1, r5
- movs r0, 0xEA
- lsls r0, 1
- adds r1, r0
- ldr r0, [r6]
- adds r0, r1
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- adds r0, r4, 0
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
-_081A43EE:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081A43B2
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A43A8
-
- thumb_func_start sub_81A4410
-sub_81A4410: @ 81A4410
- push {r4,lr}
- ldr r4, =gSpecialVar_Result
- bl MoveRecordedBattleToSaveData
- strh r0, [r4]
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0x00000ca9
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x8
- orrs r0, r2
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4410
-
- thumb_func_start sub_81A443C
-sub_81A443C: @ 81A443C
- push {lr}
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A4450
- cmp r0, 0x1
- beq _081A4464
- b _081A446E
- .pool
-_081A4450:
- ldr r0, =gStringVar1
- ldr r1, =gTrainerBattleOpponent_A
- ldrh r1, [r1]
- bl GetFrontierTrainerName
- b _081A446E
- .pool
-_081A4464:
- ldr r0, =gStringVar2
- ldr r1, =gTrainerBattleOpponent_A
- ldrh r1, [r1]
- bl GetFrontierTrainerName
-_081A446E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A443C
-
- thumb_func_start sub_81A447C
-sub_81A447C: @ 81A447C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- str r0, [sp]
-_081A448C:
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r2, [sp]
- lsls r1, r2, 1
- ldr r4, =0x00000caa
- adds r0, r4
- adds r0, r1
- ldrh r0, [r0]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r1
- adds r2, 0x1
- str r2, [sp, 0x4]
- cmp r0, 0x5
- bhi _081A454E
- movs r6, 0
- ldr r0, [sp]
- movs r2, 0x64
- adds r1, r0, 0
- muls r1, r2
- ldr r0, =gPlayerParty
- adds r7, r1, r0
-_081A44BA:
- movs r5, 0
- movs r4, 0xD
- adds r4, r6
- mov r8, r4
- adds r0, r6, 0x1
- mov r10, r0
-_081A44C6:
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r2, =0x00000caa
- adds r0, r2
- add r0, r9
- ldrh r0, [r0]
- movs r4, 0x64
- adds r1, r0, 0
- muls r1, r4
- movs r0, 0xEA
- lsls r0, 1
- adds r1, r0
- ldr r2, =gSaveBlock1Ptr
- ldr r0, [r2]
- adds 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 _081A4508
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _081A44C6
-_081A4508:
- cmp r5, 0x4
- bne _081A4516
- adds r0, r7, 0
- movs r1, 0xA6
- adds r2, r6, 0
- bl SetMonMoveSlot
-_081A4516:
- mov r4, r10
- lsls r0, r4, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bls _081A44BA
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =gSaveBlock2Ptr
- ldr r1, [r2]
- ldr r4, =0x00000caa
- adds r1, r4
- add r1, r9
- ldrh r1, [r1]
- subs r1, 0x1
- movs r3, 0x64
- muls r1, r3
- adds r0, r1
- movs r1, 0x8E
- lsls r1, 2
- adds r0, r1
- ldr r2, =gPlayerParty
- ldr r4, [sp]
- adds r1, r4, 0
- muls r1, r3
- adds r1, r2
- movs r2, 0x64
- bl memcpy
-_081A454E:
- ldr r1, [sp, 0x4]
- lsls r0, r1, 24
- lsrs r0, 24
- str r0, [sp]
- cmp r0, 0x3
- bls _081A448C
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A447C
-
- thumb_func_start sub_81A457C
-sub_81A457C: @ 81A457C
- push {lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- bl sub_81A5030
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A457C
-
- thumb_func_start sub_81A4594
-sub_81A4594: @ 81A4594
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- mov r8, r1
- adds r6, r3, 0
- ldr r1, =gRecordsWindowId
- ldrb r5, [r1]
- lsls r4, r0, 1
- adds r4, r0
- ldr r1, =gText_1Dot
- adds r4, r1
- mov r1, r8
- lsls r3, r1, 27
- lsrs r3, 24
- lsls r1, r0, 2
- adds r1, r0
- adds r2, r1
- lsls r2, 3
- adds r2, 0x1
- lsls r2, 24
- lsrs r7, r2, 24
- str r7, [sp]
- movs r0, 0xFF
- mov r10, r0
- str r0, [sp, 0x4]
- movs r1, 0
- mov r9, r1
- str r1, [sp, 0x8]
- adds r0, r5, 0
- movs r1, 0x1
- adds r2, r4, 0
- bl AddTextPrinterParameterized
- movs r0, 0xFF
- strb r0, [r6, 0xD]
- ldrh r0, [r6, 0x4]
- cmp r0, 0
- beq _081A465C
- adds r1, r6, 0x6
- ldrb r2, [r6, 0xE]
- add r0, sp, 0xC
- bl TVShowConvertInternationalString
- ldr r1, =gRecordsWindowId
- ldrb r0, [r1]
- mov r3, r8
- adds r3, 0x2
- lsls r3, 27
- lsrs r3, 24
- str r7, [sp]
- mov r1, r10
- str r1, [sp, 0x4]
- mov r1, r9
- str r1, [sp, 0x8]
- movs r1, 0x1
- add r2, sp, 0xC
- bl AddTextPrinterParameterized
- ldrh r1, [r6, 0x4]
- ldr r0, =0x0000270f
- cmp r1, r0
- bls _081A4618
- adds r1, r0, 0
-_081A4618:
- ldr r0, =gStringVar2
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r5, =gStringVar4
- ldr r1, =gUnknown_08611D08
- ldr r0, [sp, 0x4C]
- lsls r0, 2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0xC8
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r1, =gRecordsWindowId
- ldrb r0, [r1]
- str r7, [sp]
- mov r1, r10
- str r1, [sp, 0x4]
- mov r1, r9
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r5, 0
- bl AddTextPrinterParameterized
-_081A465C:
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4594
-
- thumb_func_start sub_81A4684
-sub_81A4684: @ 81A4684
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- adds r6, r0, 0
- adds r7, r1, 0
- mov r10, r2
- adds r5, r3, 0
- ldr r1, =gRecordsWindowId
- ldrb r0, [r1]
- lsls r2, r6, 1
- adds r2, r6
- ldr r1, =gText_1Dot
- adds r2, r1
- lsls r3, r7, 27
- lsrs r3, 24
- mov r12, r3
- lsls r1, r6, 2
- adds r1, r6
- mov r3, r10
- adds r4, r3, r1
- lsls r1, r4, 3
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r3, 0
- mov r8, r3
- str r3, [sp, 0x8]
- movs r1, 0x1
- mov r3, r12
- bl AddTextPrinterParameterized
- ldrh r0, [r5, 0x8]
- cmp r0, 0
- beq _081A47BC
- movs r0, 0xFF
- strb r0, [r5, 0x11]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r5, 0x19]
- adds r1, r5, 0
- adds r1, 0xA
- ldrb r2, [r5, 0x1A]
- add r0, sp, 0xC
- bl TVShowConvertInternationalString
- ldr r1, =gRecordsWindowId
- ldrb r0, [r1]
- adds r3, r7, 0x2
- lsls r3, 27
- lsrs r3, 24
- subs r1, r4, 0x1
- lsls r1, 3
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- mov r2, r9
- str r2, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- add r2, sp, 0xC
- bl AddTextPrinterParameterized
- adds r4, r5, 0
- adds r4, 0x12
- adds r0, r4, 0
- bl IsStringJapanese
- cmp r0, 0
- beq _081A4734
- add r0, sp, 0xC
- adds r1, r4, 0
- movs r2, 0x1
- bl TVShowConvertInternationalString
- b _081A473C
- .pool
-_081A4734:
- add r0, sp, 0xC
- adds r1, r4, 0
- bl StringCopy
-_081A473C:
- ldr r2, =gRecordsWindowId
- mov r9, r2
- ldrb r0, [r2]
- adds r3, r7, 0x4
- lsls r3, 27
- lsrs r3, 24
- lsls r1, r6, 2
- adds r1, r6
- mov r2, r10
- adds r6, r2, r1
- adds r1, r6, 0x1
- lsls r1, 3
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- movs r1, 0xFF
- mov r8, r1
- str r1, [sp, 0x4]
- movs r7, 0
- str r7, [sp, 0x8]
- movs r1, 0x1
- add r2, sp, 0xC
- bl AddTextPrinterParameterized
- ldrh r1, [r5, 0x8]
- ldr r0, =0x0000270f
- cmp r1, r0
- bls _081A4778
- adds r1, r0, 0
-_081A4778:
- ldr r0, =gStringVar2
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r5, =gStringVar4
- ldr r0, =gUnknown_08611D08
- ldr r4, [r0, 0x24]
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0xC8
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r2, r9
- ldrb r0, [r2]
- lsls r1, r6, 3
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r1, 0x1
- adds r2, r5, 0
- bl AddTextPrinterParameterized
-_081A47BC:
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4684
-
- thumb_func_start sub_81A47E0
-sub_81A47E0: @ 81A47E0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x44
- mov r9, r0
- mov r10, r1
- str r2, [sp, 0x40]
- movs r0, 0xAC
- lsls r0, 1
- bl AllocZeroed
- mov r8, r0
- bl sub_80E8260
- add r0, sp, 0x30
- mov r12, r0
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r3, [sp, 0x40]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 4
- mov r4, r10
- lsls r0, r4, 1
- add r0, r10
- lsls r0, 5
- adds r1, r0
- adds r4, r1, r2
- mov r3, sp
- movs r2, 0x2
-_081A4820:
- adds r0, r3, 0
- movs r5, 0x87
- lsls r5, 2
- adds r1, r4, r5
- ldm r1!, {r5-r7}
- stm r0!, {r5-r7}
- ldr r1, [r1]
- str r1, [r0]
- adds r4, 0x10
- adds r3, 0x10
- subs r2, 0x1
- cmp r2, 0
- bge _081A4820
- ldr r6, [sp, 0x40]
- lsls r0, r6, 4
- mov r7, r10
- lsls r1, r7, 5
- adds r0, r1
- mov r1, r12
- add r0, r8
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r0, [r0]
- str r0, [r1]
- movs r2, 0
-_081A4852:
- movs r1, 0
- movs r4, 0
- movs r3, 0
- lsls r5, r2, 4
- adds r6, r2, 0x1
- mov r2, sp
-_081A485E:
- ldrh r0, [r2, 0x4]
- cmp r0, r1
- ble _081A4868
- adds r4, r3, 0
- adds r1, r0, 0
-_081A4868:
- adds r2, 0x10
- adds r3, 0x1
- cmp r3, 0x3
- ble _081A485E
- mov r0, sp
- ldrh r0, [r0, 0x34]
- cmp r0, r1
- blt _081A487A
- movs r4, 0x3
-_081A487A:
- lsls r0, r4, 4
- mov r7, sp
- adds r2, r7, r0
- mov r0, r9
- adds r1, r5, r0
- adds r0, r2, 0
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldr r0, [r0]
- str r0, [r1]
- movs r0, 0
- strh r0, [r2, 0x4]
- adds r2, r6, 0
- cmp r2, 0x2
- ble _081A4852
- mov r0, r8
- bl Free
- add sp, 0x44
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A47E0
-
- thumb_func_start sub_81A48B4
-sub_81A48B4: @ 81A48B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x74
- mov r9, r0
- mov r10, r1
- movs r0, 0xAC
- lsls r0, 1
- bl AllocZeroed
- mov r8, r0
- bl sub_80E8260
- mov r0, sp
- adds r0, 0x54
- str r0, [sp, 0x70]
- add r1, sp, 0x5C
- mov r12, r1
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- movs r0, 0x54
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- adds r3, r0, r1
- mov r2, sp
- movs r4, 0x2
-_081A48EE:
- adds r0, r2, 0
- ldr r5, =0x0000057c
- adds r1, r3, r5
- ldm r1!, {r5-r7}
- stm r0!, {r5-r7}
- ldm r1!, {r5-r7}
- stm r0!, {r5-r7}
- ldr r1, [r1]
- str r1, [r0]
- adds r3, 0x1C
- adds r2, 0x1C
- subs r4, 0x1
- cmp r4, 0
- bge _081A48EE
- mov r6, r10
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- add r0, r8
- ldr r1, [sp, 0x70]
- movs r7, 0x90
- lsls r7, 1
- adds r0, r7
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldr r0, [r0]
- str r0, [r1]
- movs r4, 0
-_081A492A:
- movs r1, 0
- movs r5, 0
- movs r3, 0
- lsls r6, r4, 3
- adds r7, r4, 0x1
- mov r2, sp
-_081A4936:
- ldrh r0, [r2, 0x8]
- cmp r0, r1
- ble _081A4940
- adds r5, r3, 0
- adds r1, r0, 0
-_081A4940:
- adds r2, 0x1C
- adds r3, 0x1
- cmp r3, 0x2
- ble _081A4936
- mov r2, r12
- ldrh r0, [r2]
- cmp r0, r1
- blt _081A4952
- movs r5, 0x3
-_081A4952:
- subs r1, r6, r4
- lsls r1, 2
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- mov r3, sp
- adds r2, r3, r0
- add r1, r9
- adds r0, r2, 0
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldr r0, [r0]
- str r0, [r1]
- movs r0, 0
- strh r0, [r2, 0x8]
- adds r4, r7, 0
- cmp r4, 0x2
- ble _081A492A
- mov r0, r8
- bl Free
- add sp, 0x74
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A48B4
-
- thumb_func_start sub_81A4998
-sub_81A4998: @ 81A4998
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x94
- adds r7, r0, 0
- str r1, [sp, 0x90]
- ldr r0, =gStringVar1
- ldr r4, =gUnknown_08611CB0
- lsls r5, r7, 3
- adds r1, r5, r4
- ldr r1, [r1]
- bl StringCopy
- ldr r6, =gStringVar4
- adds r4, 0x4
- adds r5, r4
- ldr r1, [r5]
- adds r0, r6, 0
- bl StringExpandPlaceholders
- ldr r0, =gRecordsWindowId
- mov r8, r0
- ldrb r0, [r0]
- movs r1, 0x1
- mov r10, r1
- str r1, [sp]
- movs r2, 0xFF
- mov r9, r2
- str r2, [sp, 0x4]
- movs r5, 0
- str r5, [sp, 0x8]
- adds r2, r6, 0
- movs r3, 0
- bl AddTextPrinterParameterized
- ldr r1, =gUnknown_08611D00
- ldr r2, [sp, 0x90]
- lsls r0, r2, 2
- adds r0, r1
- ldr r4, [r0]
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0xD0
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- mov r1, r8
- ldrb r0, [r1]
- lsls r3, 24
- lsrs r3, 24
- mov r2, r10
- str r2, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- bl AddTextPrinterParameterized
- cmp r7, 0x9
- bne _081A4A6C
- ldr r2, =gSaveBlock2Ptr
- ldr r0, [r2]
- ldr r1, =0x00000ee8
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, [r2]
- movs r2, 0xEF
- lsls r2, 4
- adds r0, r2
- movs r1, 0x1
- negs r1, r1
- strb r1, [r0]
- add r4, sp, 0x3C
- adds r0, r4, 0
- ldr r1, [sp, 0x90]
- bl sub_81A48B4
-_081A4A3A:
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0x4
- adds r3, r4, 0
- bl sub_81A4684
- adds r4, 0x1C
- adds r5, 0x1
- cmp r5, 0x2
- ble _081A4A3A
- b _081A4A90
- .pool
-_081A4A6C:
- add r0, sp, 0xC
- adds r1, r7, 0
- ldr r2, [sp, 0x90]
- bl sub_81A47E0
- movs r5, 0
- add r4, sp, 0xC
-_081A4A7A:
- str r7, [sp]
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0x4
- adds r3, r4, 0
- bl sub_81A4594
- adds r4, 0x10
- adds r5, 0x1
- cmp r5, 0x2
- ble _081A4A7A
-_081A4A90:
- add sp, 0x94
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81A4998
-
- thumb_func_start sub_81A4AA0
-sub_81A4AA0: @ 81A4AA0
- push {r4,lr}
- ldr r4, =gRecordsWindowId
- ldr r0, =gUnknown_08611C84
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r4]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- movs r1, 0
- bl sub_81A4998
- ldrb r0, [r4]
- bl PutWindowTilemap
- ldrb r0, [r4]
- movs r1, 0x3
- bl CopyWindowToVram
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4AA0
-
- thumb_func_start sub_81A4AE8
-sub_81A4AE8: @ 81A4AE8
- push {r4,lr}
- ldr r4, =gRecordsWindowId
- ldrb r0, [r4]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- movs r1, 0x1
- bl sub_81A4998
- ldrb r0, [r4]
- movs r1, 0x2
- bl CopyWindowToVram
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4AE8
-
- thumb_func_start sub_81A4B14
-sub_81A4B14: @ 81A4B14
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r1, 0
- ldr r3, =gSaveBlock2Ptr
-_081A4B24:
- movs r6, 0
- lsls r0, r1, 1
- adds r2, r1, 0x1
- mov r10, r2
- adds r0, r1
- lsls r0, 5
- mov r8, r0
- movs r7, 0
- movs r0, 0x87
- lsls r0, 2
- add r0, r8
- mov r9, r0
-_081A4B3C:
- movs r5, 0
- adds r2, r7, 0
- mov r1, r8
- adds r4, r7, r1
-_081A4B44:
- ldr r0, [r3]
- add r0, r9
- adds r0, r2
- lsls r1, r5, 4
- adds r0, r1
- movs r1, 0
- str r2, [sp]
- str r3, [sp, 0x4]
- bl CopyUnalignedWord
- ldr r3, [sp, 0x4]
- ldr r0, [r3]
- adds r0, r4
- ldr r1, =0x00000222
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, r4
- movs r1, 0x88
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- adds r4, 0x10
- adds r5, 0x1
- ldr r2, [sp]
- cmp r5, 0x2
- ble _081A4B44
- adds r7, 0x30
- adds r6, 0x1
- cmp r6, 0x1
- ble _081A4B3C
- mov r1, r10
- cmp r1, 0x8
- ble _081A4B24
- movs r6, 0
- ldr r7, =gSaveBlock2Ptr
- movs r2, 0x54
- mov r10, r2
- movs r3, 0xFF
- mov r9, r3
-_081A4B98:
- adds r0, r6, 0x1
- mov r8, r0
- mov r1, r10
- muls r1, r6
- movs r0, 0x54
- adds r4, r6, 0
- muls r4, r0
- movs r2, 0
- ldr r3, =0x0000057c
- adds r6, r1, r3
- movs r5, 0x2
-_081A4BAE:
- ldr r0, [r7]
- adds r0, r6
- adds r0, r2
- movs r1, 0
- str r2, [sp]
- bl CopyUnalignedWord
- ldr r0, [r7]
- adds r0, r6
- ldr r2, [sp]
- adds r0, r2
- adds r0, 0x4
- movs r1, 0
- bl CopyUnalignedWord
- ldr r1, [r7]
- adds r1, r4
- ldr r0, =0x00000586
- adds r1, r0
- ldrb r0, [r1]
- mov r3, r9
- orrs r0, r3
- strb r0, [r1]
- ldr r1, [r7]
- adds r1, r4
- ldr r0, =0x0000058e
- adds r1, r0
- ldrb r0, [r1]
- orrs r0, r3
- strb r0, [r1]
- ldr r0, [r7]
- adds r0, r4
- ldr r1, =0x00000584
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- adds r4, 0x1C
- ldr r2, [sp]
- adds r2, 0x1C
- subs r5, 0x1
- cmp r5, 0
- bge _081A4BAE
- mov r6, r8
- cmp r6, 0x1
- ble _081A4B98
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4B14
-
- thumb_func_start sub_81A4C30
-sub_81A4C30: @ 81A4C30
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0x96
- lsls r0, 2
- bl AllocZeroed
- adds r7, r0, 0
- adds r4, r7, 0
- movs r5, 0
- movs r0, 0xFA
- lsls r0, 1
- adds r6, r7, r0
- ldr r0, =gPlayerParty
- mov r8, r0
-_081A4C4E:
- 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 _081A4C4E
- ldr r4, =gPlayerPartyCount
- ldrb r5, [r4]
- bl LoadPlayerParty
- bl sub_8076D5C
- movs r0, 0x1
- bl TrySavingData
- bl sav2_gender2_inplace_and_xFE
- strb r5, [r4]
- adds r4, r7, 0
- ldr r5, =gPlayerParty
- movs r0, 0xFA
- lsls r0, 1
- adds r6, r7, r0
-_081A4C84:
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x64
- bl memcpy
- adds r4, 0x64
- adds r5, 0x64
- cmp r4, r6
- ble _081A4C84
- adds r0, r7, 0
- bl Free
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4C30
-
- thumb_func_start GetFrontierBrainTrainerPicIndex
-GetFrontierBrainTrainerPicIndex: @ 81A4CB0
- push {lr}
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _081A4CD0
- bl GetRecordedBattleFrontierFacility
- lsls r0, 24
- lsrs r0, 24
- b _081A4CDA
- .pool
-_081A4CD0:
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
-_081A4CDA:
- ldr r2, =gTrainers
- ldr r1, =gFacilityToBrainTrainerId
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x3]
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetFrontierBrainTrainerPicIndex
-
- thumb_func_start GetFrontierBrainTrainerClass
-GetFrontierBrainTrainerClass: @ 81A4D00
- push {lr}
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _081A4D20
- bl GetRecordedBattleFrontierFacility
- lsls r0, 24
- lsrs r0, 24
- b _081A4D2A
- .pool
-_081A4D20:
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
-_081A4D2A:
- ldr r2, =gTrainers
- ldr r1, =gFacilityToBrainTrainerId
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetFrontierBrainTrainerClass
-
- thumb_func_start CopyFrontierBrainTrainerName
-CopyFrontierBrainTrainerName: @ 81A4D50
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _081A4D70
- bl GetRecordedBattleFrontierFacility
- lsls r0, 24
- lsrs r0, 24
- b _081A4D7A
- .pool
-_081A4D70:
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
-_081A4D7A:
- movs r3, 0
- lsls r0, 1
- ldr r2, =gTrainers
- ldr r1, =gFacilityToBrainTrainerId
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r2, 0x4
- adds r2, r0, r2
-_081A4D90:
- adds r1, r4, r3
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x6
- ble _081A4D90
- adds r1, r4, r3
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end CopyFrontierBrainTrainerName
-
- thumb_func_start IsFrontierBrainFemale
-IsFrontierBrainFemale: @ 81A4DB8
- push {lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- ldr r1, =gUnknown_08611C8C
- lsrs r0, 15
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- pop {r1}
- bx r1
- .pool
- thumb_func_end IsFrontierBrainFemale
-
- thumb_func_start SetFrontierBrainTrainerGfxId
-SetFrontierBrainTrainerGfxId: @ 81A4DD8
- push {lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- ldr r2, =0x00004010
- ldr r1, =gUnknown_08611C8C
- lsrs r0, 15
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- bl VarSet
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetFrontierBrainTrainerGfxId
-
- thumb_func_start CreateFrontierBrainPokemon
-CreateFrontierBrainPokemon: @ 81A4E04
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x44
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x20]
- bl sub_81A513C
- str r0, [sp, 0x24]
- ldr r0, [sp, 0x20]
- cmp r0, 0x1
- bne _081A4E44
- ldr r0, =0x000003fe
- bl TrainerIdToDomeTournamentId
- lsls r0, 16
- lsrs r0, 16
- bl GetTrainerMonCountInBits
- adds r4, r0, 0
- b _081A4E46
- .pool
-_081A4E44:
- movs r4, 0x7
-_081A4E46:
- bl ZeroEnemyPartyMons
- movs r1, 0
- str r1, [sp, 0x18]
- bl SetFacilityPtrsGetLevel
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x1C]
- movs r2, 0
- str r2, [sp, 0x14]
-_081A4E5C:
- movs r0, 0x1
- ands r0, r4
- asrs r4, 1
- str r4, [sp, 0x30]
- ldr r3, [sp, 0x14]
- adds r3, 0x1
- str r3, [sp, 0x28]
- cmp r0, 0
- bne _081A4E70
- b _081A4FC4
-_081A4E70:
- ldr r4, [sp, 0x14]
- lsls r4, 2
- mov r9, r4
- ldr r0, [sp, 0x24]
- lsls r0, 4
- str r0, [sp, 0x38]
- ldr r1, [sp, 0x20]
- lsls r1, 4
- str r1, [sp, 0x34]
- ldr r2, [sp, 0x1C]
- lsls r2, 24
- str r2, [sp, 0x3C]
- ldr r3, [sp, 0x18]
- adds r3, 0x1
- str r3, [sp, 0x2C]
- ldr r0, [sp, 0x14]
- add r0, r9
- lsls r0, 2
- mov r8, r0
-_081A4E96:
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r7, r4, 16
- lsls r0, 16
- orrs r7, r0
- ldr r0, =0x0000ef2a
- adds r1, r7, 0
- bl IsShinyOtIdPersonality
- lsls r0, 24
- cmp r0, 0
- bne _081A4E96
- 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, r6
- ldr r2, =gUnknown_0861156C
- adds r4, r2
- adds r0, r7, 0
- bl GetNatureFromPersonality
- ldrb r1, [r4, 0x5]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _081A4E96
- ldr r4, [sp, 0x18]
- movs r0, 0x64
- adds r3, r4, 0
- muls r3, r0
- mov r8, r3
- ldr r1, =gEnemyParty
- add r1, r8
- mov r10, r1
- ldr r4, [sp, 0x14]
- add r4, r9
- lsls r4, 2
- adds r0, r4, r5
- adds r0, r6
- ldr r2, =gUnknown_0861156C
- adds r0, r2
- ldrh r1, [r0]
- ldr r3, [sp, 0x3C]
- lsrs r2, r3, 24
- ldrb r3, [r0, 0x4]
- movs r0, 0x1
- str r0, [sp]
- str r7, [sp, 0x4]
- str r0, [sp, 0x8]
- ldr r0, =0x0000ef2a
- str r0, [sp, 0xC]
- mov r0, r10
- bl CreateMon
- ldr r0, =gUnknown_0861156C
- adds r5, r0
- adds r5, r6, r5
- adds r4, r5, r4
- adds r4, 0x2
- mov r0, r10
- movs r1, 0xC
- adds r2, r4, 0
- bl SetMonData
- movs r7, 0
- mov r6, r8
- ldr r3, =gEnemyParty
-_081A4F32:
- adds r1, r7, 0
- adds r1, 0x1A
- ldr r0, [sp, 0x14]
- add r0, r9
- lsls r4, r0, 2
- adds r2, r5, r4
- adds r0, r7, 0x6
- adds r2, r0
- adds r0, r6, r3
- str r3, [sp, 0x40]
- bl SetMonData
- adds r7, 0x1
- ldr r3, [sp, 0x40]
- cmp r7, 0x5
- ble _081A4F32
- 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
- ldr r3, =gUnknown_08611578
- mov r8, r3
- ldr r3, =gEnemyParty
- adds r5, r4, 0
-_081A4F6A:
- ldr r4, [sp, 0x38]
- ldr r0, [sp, 0x24]
- subs r1, r4, r0
- lsls r1, 2
- adds r1, r5, r1
- ldr r2, [sp, 0x34]
- ldr r4, [sp, 0x20]
- subs r0, r2, r4
- lsls r0, 3
- adds r1, r0
- add r1, r8
- ldrh r4, [r1]
- lsls r2, r7, 24
- lsrs r2, 24
- adds r0, r6, r3
- adds r1, r4, 0
- str r3, [sp, 0x40]
- bl SetMonMoveSlot
- ldr r3, [sp, 0x40]
- cmp r4, 0xDA
- bne _081A4F9C
- movs r1, 0
- add r0, sp, 0x10
- strb r1, [r0]
-_081A4F9C:
- adds r5, 0x2
- adds r7, 0x1
- cmp r7, 0x3
- ble _081A4F6A
- ldr r0, [sp, 0x18]
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r0, =gEnemyParty
- adds 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]
-_081A4FC4:
- ldr r4, [sp, 0x30]
- ldr r3, [sp, 0x28]
- str r3, [sp, 0x14]
- cmp r3, 0x2
- bgt _081A4FD0
- b _081A4E5C
-_081A4FD0:
- add sp, 0x44
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end CreateFrontierBrainPokemon
-
- thumb_func_start sub_81A4FF0
-sub_81A4FF0: @ 81A4FF0
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =0x000040cf
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- bl sub_81A513C
- ldr r3, =gUnknown_0861156C
- lsls r2, r4, 2
- adds r2, r4
- lsls r1, r0, 4
- subs r1, r0
- adds r1, r2
- lsls r1, 2
- lsls r0, r5, 4
- subs r0, r5
- lsls r0, 3
- adds r1, r0
- adds r1, r3
- ldrh r0, [r1]
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A4FF0
-
- thumb_func_start sub_81A5030
-sub_81A5030: @ 81A5030
- push {lr}
- lsls r0, 24
- ldr r2, =gTrainerBattleOpponent_A
- ldr r3, =0x000003fe
- adds r1, r3, 0
- strh r1, [r2]
- ldr r2, =0x00004010
- ldr r1, =gUnknown_08611C8C
- lsrs r0, 23
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- bl VarSet
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5030
-
- thumb_func_start sub_81A5060
-sub_81A5060: @ 81A5060
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =0x000040cf
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- bl sub_81A513C
- ldr r2, =gUnknown_0861156C
- lsls r4, 1
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 2
- adds r4, r1
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 2
- adds r4, r1
- lsls r0, r5, 4
- subs r0, r5
- lsls r0, 3
- adds r4, r0
- adds r2, 0xC
- adds r4, r2
- ldrh r0, [r4]
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A5060
-
- thumb_func_start sub_81A50B0
-sub_81A50B0: @ 81A50B0
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =0x000040cf
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- bl sub_81A513C
- ldr r3, =gUnknown_0861156C
- lsls r2, r4, 2
- adds r2, r4
- lsls r1, r0, 4
- subs r1, r0
- adds r1, r2
- lsls r1, 2
- lsls r0, r5, 4
- subs r0, r5
- lsls r0, 3
- adds r1, r0
- adds r1, r3
- ldrb r0, [r1, 0x5]
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A50B0
-
- thumb_func_start sub_81A50F0
-sub_81A50F0: @ 81A50F0
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =0x000040cf
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- bl sub_81A513C
- ldr r2, =gUnknown_0861156C
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 2
- adds r4, r1
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 2
- adds r4, r1
- lsls r0, r5, 4
- subs r0, r5
- lsls r0, 3
- adds r4, r0
- adds r2, 0x6
- adds r4, r2
- ldrb r0, [r4]
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A50F0
-
- thumb_func_start sub_81A513C
-sub_81A513C: @ 81A513C
- push {r4,r5,lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_81A3B30
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bne _081A51A0
- bl sub_81A39C4
- lsls r0, 16
- ldr r3, =gUnknown_08611550
- lsls r2, r5, 2
- adds r1, r3, 0x3
- adds r1, r2, r1
- lsrs r0, 16
- ldrb r1, [r1]
- adds r1, r0, r1
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r1, r0
- bne _081A5180
- movs r4, 0
- b _081A51A0
- .pool
-_081A5180:
- adds r0, r3, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r1, r0
- beq _081A519E
- cmp r1, r0
- ble _081A51A0
- subs r0, r1, r0
- adds r1, r3, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- bl __modsi3
- cmp r0, 0
- bne _081A51A0
-_081A519E:
- movs r4, 0x1
-_081A51A0:
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81A513C
-
- thumb_func_start sub_81A51A8
-sub_81A51A8: @ 81A51A8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _081A51D4
- bl GetRecordedBattleFrontierFacility
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8185EAC
- lsls r0, 24
- lsrs r1, r0, 24
- b _081A51E4
- .pool
-_081A51D4:
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r4, r0, 16
- bl sub_81A513C
- adds r1, r0, 0
-_081A51E4:
- cmp r5, 0
- beq _081A51F4
- cmp r5, 0x1
- beq _081A5214
- b _081A5228
- .pool
-_081A51F4:
- ldr r0, =gStringVar4
- ldr r2, =gUnknown_08611DB0
- lsls r1, 2
- adds r1, r2
- ldr r2, [r1]
- lsls r1, r4, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- b _081A5228
- .pool
-_081A5214:
- ldr r0, =gStringVar4
- ldr r2, =gUnknown_08611DB8
- lsls r1, 2
- adds r1, r2
- ldr r2, [r1]
- lsls r1, r4, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
-_081A5228:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A51A8
+
thumb_func_start sub_81A5238
sub_81A5238: @ 81A5238
@@ -10392,7 +3664,7 @@ _081A7108:
b _081A70D6
_081A710E:
movs r0, 0x5
- bl sub_81A5030
+ bl SetFrontierBrainEventObjGfx
_081A7114:
movs r7, 0x1C
movs r4, 0
@@ -12955,7 +6227,7 @@ sub_81A8590: @ 81A8590
lsls r0, 16
lsrs r4, r0, 16
movs r0, 0x5
- bl sub_81A3B30
+ bl GetPlayerSymbolCountForFacility
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 6c2affb26..cb5b1c712 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -15615,7 +15615,7 @@ _081B8618:
bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
- ldr r3, =gUnknown_08611C9A
+ ldr r3, =gFrontierBannedSpecies
lsls r1, r6, 1
adds r0, r1, r3
ldrh r0, [r0]
diff --git a/asm/rom_8011DC0.s b/asm/rom_8011DC0.s
index 1c02f93cd..b45639c13 100644
--- a/asm/rom_8011DC0.s
+++ b/asm/rom_8011DC0.s
@@ -11490,7 +11490,7 @@ _0801B628:
ldr r1, [r0]
adds r1, 0xA
adds r0, r4, 0
- bl CopyUnalignedWord
+ bl CopyTrainerId
mov r2, r8
ldr r1, [r2]
adds r0, r6, 0
diff --git a/data/battle_frontier_2.s b/data/battle_frontier_2.s
index 51b62461d..cbd38a119 100644
--- a/data/battle_frontier_2.s
+++ b/data/battle_frontier_2.s
@@ -7,120 +7,6 @@
.section .rodata
.align 2
-gUnknown_08611550:: @ 8611550
- .byte 0x23, 0x46, 0x23, 0x01, 0x04, 0x09, 0x05, 0x00, 0x15, 0x2a, 0x15, 0x01, 0x1c, 0x38, 0x1c, 0x01, 0x15, 0x2a, 0x15, 0x01, 0x1c, 0x8c, 0x38, 0x01, 0x15, 0x46, 0x23, 0x00
-
- .align 2
-gUnknown_0861156C:: @ 861156C
- .byte 0x41, 0x00, 0xb3, 0x00, 0x18, 0x0f, 0x6a, 0x00, 0x98, 0x98, 0x64, 0x00
-
- .align 2
-gUnknown_08611578:: @ 8611578
- .2byte 0x0009, 0x0007, 0x0008, 0x0032, 0x00f4, 0x008d, 0x0118, 0x9864, 0x0098, 0x0664, 0x007e, 0x015b, 0x00d8, 0x002e, 0x008f, 0x00b7
- .2byte 0x0318, 0x9898, 0x0000, 0x646a, 0x0022, 0x00bb, 0x0119, 0x00f7, 0x00f3, 0x008d, 0x0f1f, 0x009e, 0x64fc, 0x0000, 0x0055, 0x015b
- .2byte 0x0073, 0x009c, 0x0198, 0x00b3, 0x0f1f, 0x00fc, 0x06fc, 0x0000, 0x005e, 0x015b, 0x0069, 0x0151, 0x008f, 0x0086, 0x031f, 0xfcfc
- .2byte 0x0000, 0x0006, 0x00ae, 0x00d8, 0x009c, 0x00f7, 0x011d, 0x00c4, 0x0214, 0x9898, 0x006a, 0x0064, 0x0039, 0x0059, 0x003a, 0x0044
- .2byte 0x018d, 0x008d, 0x0314, 0x9898, 0x646a, 0x0000, 0x0059, 0x0118, 0x0151, 0x014c, 0x0006, 0x00b4, 0x1114, 0x9864, 0x986a, 0x0000
- .2byte 0x013b, 0x009d, 0x014c, 0x0059, 0x011d, 0x00c8, 0x021f, 0xfcfc, 0x0006, 0x0000, 0x0039, 0x0059, 0x003a, 0x00f3, 0x0190, 0x00b7
- .2byte 0x021f, 0xfcfc, 0x0006, 0x0000, 0x005e, 0x0135, 0x0059, 0x00b6, 0x0197, 0x0086, 0x0f1f, 0x00fc, 0x06fc, 0x0000, 0x0055, 0x005e
- .2byte 0x015b, 0x009c, 0x00a9, 0x00b3, 0x0310, 0x0098, 0x9800, 0x6a64, 0x006d, 0x0068, 0x005c, 0x0013, 0x016e, 0x00c6, 0x0010, 0x9898
- .2byte 0x6a00, 0x0064, 0x0059, 0x00cf, 0x00f7, 0x0118, 0x0083, 0x00b7, 0x1110, 0x0000, 0x00fc, 0x986a, 0x003a, 0x0020, 0x006d, 0x00b6
- .2byte 0x003b, 0x00b4, 0x0b1f, 0xfc06, 0x00fc, 0x0000, 0x013b, 0x00f5, 0x002e, 0x00b6, 0x016e, 0x00c6, 0x001f, 0xfc06, 0xfc00, 0x0000
- .2byte 0x003f, 0x0059, 0x00f7, 0x0119, 0x00f5, 0x00bb, 0x0b1f, 0x00fc, 0x06fc, 0x0000, 0x003b, 0x0039, 0x002c, 0x015b, 0x00d6, 0x00aa
- .2byte 0x0d14, 0x986a, 0x9800, 0x6400, 0x00e0, 0x013d, 0x00cb, 0x00b3, 0x00c5, 0x00c8, 0x1414, 0x0098, 0x0064, 0x6a98, 0x0022, 0x006d
- .2byte 0x005e, 0x00b9, 0x012f, 0x00b3, 0x0314, 0xfc00, 0xfc06, 0x0000, 0x00f7, 0x00d8, 0x006d, 0x014c, 0x00c5, 0x0086, 0x141f, 0x00fc
- .2byte 0x0000, 0x06fc, 0x0026, 0x006d, 0x009c, 0x005e, 0x005e, 0x00c8, 0x0f1f, 0x00fc, 0x00fc, 0x0006, 0x005e, 0x005f, 0x008a, 0x00c2
- .2byte 0x0133, 0x008d, 0x0d1f, 0xfc06, 0xfc00, 0x0000, 0x0093, 0x0108, 0x00ca, 0x001d, 0x018f, 0x008e, 0x021f, 0xfc00, 0x00fc, 0x0006
- .2byte 0x0071, 0x005e, 0x0073, 0x00e8, 0x00e3, 0x008e, 0x081f, 0x00fc, 0x0000, 0xfc06, 0x005c, 0x014c, 0x00b6, 0x00d3, 0x0180, 0x008e
- .2byte 0x031f, 0xfc00, 0x0000, 0x06fc, 0x0055, 0x00b6, 0x004c, 0x0151, 0x018f, 0x008e, 0x021f, 0xfc00, 0x00fc, 0x0006, 0x0071, 0x005e
- .2byte 0x0073, 0x00e8, 0x00e3, 0x008e, 0x081f, 0x00fc, 0x0000, 0xfc06, 0x005c, 0x014c, 0x00b6, 0x00d3, 0x0180, 0x008e, 0x031f, 0xfc00
- .2byte 0x0000, 0x06fc, 0x0055, 0x00b6, 0x004c, 0x0151, 0x017b, 0x00b7, 0x0210, 0x00fc, 0x00fc, 0x0006, 0x00cf, 0x00f2, 0x0131, 0x00ca
- .2byte 0x00d5, 0x0086, 0x0510, 0x00fc, 0x0000, 0xfc6a, 0x005c, 0x00c9, 0x00b6, 0x009c, 0x0149, 0x00c8, 0x0f10, 0x0098, 0x0064, 0x6a98
- .2byte 0x003a, 0x00f3, 0x0039, 0x0069, 0x017b, 0x00c4, 0x051f, 0x00fc, 0x0000, 0x06fc, 0x00cf, 0x00f2, 0x00bc, 0x00ca, 0x00d0, 0x00b3
- .2byte 0x021f, 0x00fc, 0x0000, 0xfc06, 0x0059, 0x009d, 0x0099, 0x0067, 0x0082, 0x0086, 0x031f, 0x06fc, 0x0000, 0xfc00, 0x015d, 0x00d8
- .2byte 0x002e, 0x009c, 0x0191, 0x00b7, 0x0310, 0x9898, 0x0000, 0x646a, 0x0099, 0x0114, 0x0059, 0x00f6, 0x0193, 0x00c8, 0x0310, 0x9898
- .2byte 0x0000, 0xc806, 0x0059, 0x00e8, 0x005c, 0x014e, 0x0192, 0x0086, 0x0f10, 0x006a, 0x0098, 0x9864, 0x003a, 0x0085, 0x0057, 0x009c
- .2byte 0x0090, 0x00c6, 0x101f, 0x0006, 0xfcfc, 0x0000, 0x003b, 0x0160, 0x014c, 0x0073, 0x0091, 0x008d, 0x101f, 0x0006, 0xfcfc, 0x0000
- .2byte 0x0057, 0x00c5, 0x0041, 0x0071, 0x0092, 0x00b3, 0x101f, 0x0006, 0xfcfc, 0x0000, 0x007e, 0x003f, 0x014c, 0x00db
-
-gUnknown_086118B4:: @ 86118B4
- .byte 0x01, 0x02, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x04, 0x05, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x03, 0x04, 0x04
- .byte 0x01, 0x01, 0x00, 0x00, 0x04, 0x05, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x03, 0x04, 0x05, 0x05, 0x02, 0x02, 0x00, 0x00
- .byte 0x05, 0x06, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x05, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x05, 0x06, 0x06, 0x02, 0x02, 0x00, 0x00, 0x05, 0x06, 0x00, 0x00
- .byte 0x02, 0x00, 0x00, 0x00, 0x04, 0x05, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x06, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x06, 0x07, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
- .byte 0x05, 0x06, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x07, 0x08, 0x08, 0x03, 0x03, 0x00, 0x00, 0x06, 0x07, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0x06, 0x00, 0x00
- .byte 0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x08, 0x09, 0x09, 0x04, 0x04, 0x00, 0x00, 0x07, 0x08, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x07, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
- .byte 0x08, 0x00, 0x00, 0x00, 0x08, 0x09, 0x0a, 0x0a, 0x04, 0x04, 0x00, 0x00, 0x07, 0x08, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x07, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
- .byte 0x09, 0x0a, 0x0b, 0x0b, 0x05, 0x05, 0x00, 0x00, 0x08, 0x09, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0a, 0x0b, 0x0c, 0x0c
- .byte 0x05, 0x05, 0x00, 0x00, 0x08, 0x09, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0b, 0x0c, 0x0d, 0x0d, 0x06, 0x06, 0x00, 0x00
- .byte 0x09, 0x0a, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x08, 0x09, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x0c, 0x0d, 0x0e, 0x0e, 0x06, 0x06, 0x00, 0x00, 0x09, 0x0a, 0x00, 0x00
- .byte 0x06, 0x00, 0x00, 0x00, 0x08, 0x09, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x0e, 0x0f, 0x0f, 0x07, 0x07, 0x00, 0x00, 0x0a, 0x0b, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00
- .byte 0x09, 0x0a, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x0f, 0x0f, 0x0f, 0x07, 0x07, 0x00, 0x00, 0x0a, 0x0b, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x0a, 0x00, 0x00
- .byte 0x0a, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x08, 0x08, 0x00, 0x00, 0x0b, 0x0c, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0a, 0x0b, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00
- .byte 0x0c, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x08, 0x08, 0x00, 0x00, 0x0b, 0x0c, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x0a, 0x0b, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00
- .byte 0x0f, 0x0f, 0x0f, 0x0f, 0x09, 0x09, 0x00, 0x00, 0x0c, 0x0d, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0b, 0x0c, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f
- .byte 0x09, 0x09, 0x00, 0x00, 0x0c, 0x0d, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x0c, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0a, 0x0a, 0x00, 0x00
- .byte 0x0d, 0x0e, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0c, 0x0d, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0a, 0x0a, 0x00, 0x00, 0x0d, 0x0e, 0x00, 0x00
- .byte 0x0e, 0x00, 0x00, 0x00, 0x0c, 0x0d, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0b, 0x0b, 0x00, 0x00, 0x0e, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00
- .byte 0x0d, 0x0e, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0b, 0x0b, 0x00, 0x00, 0x0e, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0d, 0x0e, 0x00, 0x00
- .byte 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0c, 0x0c, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x0f, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00
- .byte 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0c, 0x0c, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x0f, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00
- .byte 0x0f, 0x0f, 0x0f, 0x0f, 0x0d, 0x0d, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f
- .byte 0x0d, 0x0d, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x00, 0x00
- .byte 0x0f, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00
- .byte 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00
- .byte 0x0f, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00
- .byte 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00
-
- .align 2
-gUnknown_08611BFC:: @ 8611BFC
- .2byte 0x0001, 0x0002, 0x0004, 0x0008, 0x0010, 0x0020, 0x0040, 0x0080, 0x0100, 0x0200, 0x0400, 0x0800, 0x1000, 0x2000
-
- .align 2
-gUnknown_08611C18:: @ 8611C18
- .4byte sub_81A17A0
- .4byte sub_81A1830
- .4byte sub_81A1968
- .4byte sub_81A1AD4
- .4byte sub_81A1B1C
- .4byte sub_81A1B28
- .4byte sub_81A1B38
- .4byte sub_81A1B98
- .4byte sub_81A31FC
- .4byte sub_81A35EC
- .4byte sub_81A3B00
- .4byte sub_81A3B64
- .4byte sub_81A3D30
- .4byte sub_81A3D58
- .4byte sub_81A3DA0
- .4byte sub_81A3FD4
- .4byte sub_81A4224
- .4byte sub_81A4230
- .4byte sub_81A43A8
- .4byte sub_81A4410
- .4byte sub_81A443C
- .4byte sub_81A447C
- .4byte sub_81A457C
-
- .align 2
-gUnknown_08611C74:: @ 8611C74
- window_template 0x00, 0x01, 0x01, 0x1c, 0x12, 0x0f, 0x0001
-
- .align 2
-gUnknown_08611C7C:: @ 8611C7C
- window_template 0x00, 0x02, 0x02, 0x1a, 0x0f, 0x0f, 0x0001
-
- .align 2
-gUnknown_08611C84:: @ 8611C84
- window_template 0x00, 0x02, 0x01, 0x1a, 0x11, 0x0f, 0x0001
-
-gUnknown_08611C8C:: @ 8611C8C
- .byte 0x46, 0x01, 0x47, 0x00, 0x49, 0x00, 0x48, 0x01, 0x4a, 0x00, 0x4b, 0x01, 0xea, 0x00
-
-gUnknown_08611C9A:: @ 8611C9A
- .2byte 0x0097, 0x0096, 0x00fa, 0x00f9, 0x00fb, 0x0194, 0x0195, 0x0196, 0x0199, 0x019a, 0xffff
-
- .align 2
gUnknown_08611CB0:: @ 8611CB0
.4byte gText_BattleTower2
.4byte gUnknown_085ED164
diff --git a/data/event_scripts.s b/data/event_scripts.s
index 4534ccf13..d35feb111 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -10302,12 +10302,12 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F6F:: @ 82C3F6F
special sub_81A703C
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
addvar VAR_RESULT, 1
setvar VAR_0x8004, 2
setvar VAR_0x8005, 2
copyvar VAR_0x8006, VAR_RESULT
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 0
special sub_81A703C
setvar VAR_0x8004, 5
@@ -10383,12 +10383,12 @@ BattleFrontier_BattlePikeRandomRoom1_EventScript_2C40A2:: @ 82C40A2
special sub_81A703C
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
addvar VAR_RESULT, 1
setvar VAR_0x8004, 2
setvar VAR_0x8005, 2
copyvar VAR_0x8006, VAR_RESULT
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 3
special sub_81A703C
compare VAR_RESULT, 1
@@ -10447,12 +10447,12 @@ BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4174:: @ 82C4174
special sub_81A703C
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
addvar VAR_RESULT, 1
setvar VAR_0x8004, 2
setvar VAR_0x8005, 2
copyvar VAR_0x8006, VAR_RESULT
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 3
special sub_81A703C
compare VAR_RESULT, 1
@@ -10479,7 +10479,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4222:: @ 82C4222
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6
waitstate
end
@@ -10489,7 +10489,7 @@ BattleFrontier_BattlePikeThreePathRoom_MapScript1_2C423E: @ 82C423E
setorcopyvar VAR_0x8006, VAR_RESULT
setvar VAR_0x8004, 1
setvar VAR_0x8005, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 2
goto_eq BattleFrontier_BattlePikeThreePathRoom_EventScript_2C426B
compare VAR_RESULT, 1
@@ -10503,7 +10503,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_2C426B:: @ 82C426B
BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4271:: @ 82C4271
BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4271:: @ 82C4271
setvar VAR_0x8004, 21
- special sub_81A1780
+ special CallFrontierUtilFunc
return
BattleFrontier_BattlePikeRandomRoom1_Movement_2C427A: @ 82C427A
@@ -11665,7 +11665,7 @@ TrainerHill_Roof_MapScript1_2C8336: @ 82C8336
special sp194_trainer_tower
setvar VAR_0x8004, 1
setvar VAR_0x8005, 5
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 2
goto_eq TrainerHill_1F_EventScript_2C83C9
compare VAR_RESULT, 3
diff --git a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc
index 888ca9878..69df3aca2 100644
--- a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc
+++ b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc
@@ -11,7 +11,7 @@ BattleFrontier_BattleArenaBattleRoom_MapScript1_25749C: @ 825749C
BattleFrontier_BattleArenaBattleRoom_MapScript1_2574A0: @ 82574A0
setvar VAR_0x8004, 5
- special sub_81A1780
+ special CallFrontierUtilFunc
call BattleFrontier_BattleArenaBattleRoom_EventScript_2574AE
end
@@ -42,7 +42,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_2574DC:: @ 82574DC
waitmovement 0
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleArenaBattleRoom_EventScript_25752E
applymovement 5, BattleFrontier_BattleArenaBattleRoom_Movement_257C08
@@ -51,7 +51,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_2574DC:: @ 82574DC
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
goto BattleFrontier_BattleArenaBattleRoom_EventScript_2576B0
BattleFrontier_BattleArenaBattleRoom_EventScript_25752E:: @ 825752E
@@ -112,7 +112,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257615:: @ 8257615
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
warp MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY, 255, 7, 8
waitstate
@@ -120,12 +120,12 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257630:: @ 8257630
call BattleFrontier_BattleArenaBattleRoom_EventScript_257BA9
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
addvar VAR_RESULT, 1
setvar VAR_0x8004, 2
setvar VAR_0x8005, 2
copyvar VAR_0x8006, VAR_RESULT
- special sub_81A1780
+ special CallFrontierUtilFunc
switch VAR_RESULT
case 7, BattleFrontier_BattleArenaBattleRoom_EventScript_257852
applymovement 8, BattleFrontier_BattleArenaBattleRoom_Movement_257BE7
@@ -140,20 +140,20 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257630:: @ 8257630
special SavePlayerParty
setvar VAR_0x8004, 3
setvar VAR_0x8005, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
playfanfare MUS_ME_ASA
waitfanfare
special HealPlayerParty
BattleFrontier_BattleArenaBattleRoom_EventScript_2576B0:: @ 82576B0
setvar VAR_0x8004, 9
- special sub_81A1780
+ special CallFrontierUtilFunc
copyvar VAR_TEMP_F, VAR_RESULT
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattleArenaBattleRoom_EventScript_2578BC
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 1
call_if 1, BattleFrontier_BattleArenaBattleRoom_EventScript_257870
compare VAR_RESULT, 2
@@ -227,7 +227,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257852:: @ 8257852
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
warp MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY, 255, 7, 8
waitstate
@@ -271,7 +271,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_25789A:: @ 825789A
waitse
fadescreen 1
setvar VAR_0x8004, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
end
BattleFrontier_BattleArenaBattleRoom_EventScript_2578BC:: @ 82578BC
@@ -332,14 +332,14 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257961:: @ 8257961
case 4, BattleFrontier_BattleArenaBattleRoom_EventScript_257AF8
setvar VAR_0x8004, 1
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattleArenaBattleRoom_EventScript_257A3F
msgbox BattleFrontier_BattleArenaBattleRoom_Text_25801C, 4
closemessage
setvar VAR_0x8004, 2
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
applymovement 7, BattleFrontier_BattleArenaBattleRoom_Movement_257C30
waitmovement 0
msgbox BattleFrontier_BattleArenaBattleRoom_Text_25804E, 4
@@ -358,7 +358,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257A3F:: @ 8257A3F
BattleFrontier_BattleArenaBattleRoom_EventScript_257A5C:: @ 8257A5C
call BattleFrontier_BattleArenaBattleRoom_EventScript_257BA9
setvar VAR_0x8004, 12
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattleArenaBattleRoom_EventScript_257852
applymovement 7, BattleFrontier_BattleArenaBattleRoom_Movement_257BF1
@@ -369,21 +369,21 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257A5C:: @ 8257A5C
waitmessage
waitfanfare
setvar VAR_0x8004, 13
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattleArenaBattleRoom_Text_2581CF, 4
goto BattleFrontier_BattleArenaBattleRoom_EventScript_257852
BattleFrontier_BattleArenaBattleRoom_EventScript_257AA5:: @ 8257AA5
setvar VAR_0x8004, 1
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattleArenaBattleRoom_EventScript_257AF8
msgbox BattleFrontier_BattleArenaBattleRoom_Text_258213, 4
closemessage
setvar VAR_0x8004, 2
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
applymovement 7, BattleFrontier_BattleArenaBattleRoom_Movement_257C30
waitmovement 0
msgbox BattleFrontier_BattleArenaBattleRoom_Text_2582A2, 4
@@ -402,7 +402,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257AF8:: @ 8257AF8
BattleFrontier_BattleArenaBattleRoom_EventScript_257B15:: @ 8257B15
call BattleFrontier_BattleArenaBattleRoom_EventScript_257BA9
setvar VAR_0x8004, 12
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 2
goto_eq BattleFrontier_BattleArenaBattleRoom_EventScript_257852
applymovement 7, BattleFrontier_BattleArenaBattleRoom_Movement_257BF1
@@ -413,7 +413,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257B15:: @ 8257B15
waitmessage
waitfanfare
setvar VAR_0x8004, 13
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattleArenaBattleRoom_Text_258383, 4
goto BattleFrontier_BattleArenaBattleRoom_EventScript_257852
@@ -429,17 +429,17 @@ FallarborTown_BattleTentBattleRoom_EventScript_257B6C:: @ 8257B6C
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
special HealPlayerParty
setvar VAR_0x8004, SPECIAL_BATTLE_ARENA
setvar VAR_0x8005, 0
special DoSpecialTrainerBattle
waitstate
setvar VAR_0x8004, 18
- special sub_81A1780
+ special CallFrontierUtilFunc
special HealPlayerParty
setvar VAR_0x8004, 21
- special sub_81A1780
+ special CallFrontierUtilFunc
return
BattleFrontier_BattleArenaBattleRoom_EventScript_257BA9:: @ 8257BA9
diff --git a/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc b/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc
index 9ef9a2812..710dd1ece 100644
--- a/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc
@@ -22,7 +22,7 @@ BattleFrontier_BattleArenaLobby_MapScript2_255C55: @ 8255C55
BattleFrontier_BattleArenaLobby_EventScript_255C7F:: @ 8255C7F
setvar VAR_0x8004, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
end
BattleFrontier_BattleArenaLobby_EventScript_255C88:: @ 8255C88
@@ -40,7 +40,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255C88:: @ 8255C88
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_0, 255
releaseall
end
@@ -48,7 +48,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255C88:: @ 8255C88
BattleFrontier_BattleArenaLobby_EventScript_255CCF:: @ 8255CCF
lockall
setvar VAR_0x8004, 10
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 1
goto_eq BattleFrontier_BattleArenaLobby_EventScript_255CF0
msgbox BattleFrontier_BattleArenaLobby_Text_2568E7, 4
@@ -60,7 +60,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255CF0:: @ 8255CF0
BattleFrontier_BattleArenaLobby_EventScript_255CF8:: @ 8255CF8
msgbox BattleFrontier_BattleArenaLobby_Text_257353, 4
setvar VAR_0x8004, 11
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattleArenaLobby_Text_241520, 9
message BattleFrontier_BattleArenaLobby_Text_256931
waitmessage
@@ -88,7 +88,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255D2B:: @ 8255D2B
BattleFrontier_BattleArenaLobby_EventScript_255D59:: @ 8255D59
setvar VAR_0x8004, 8
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
special HealPlayerParty
setvar VAR_0x8004, 3
@@ -125,7 +125,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255DC0:: @ 8255DC0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_0, 255
goto BattleFrontier_BattleArenaLobby_EventScript_255F54
@@ -155,13 +155,13 @@ BattleFrontier_BattleArenaLobby_EventScript_255E47:: @ 8255E47
case 2, BattleFrontier_BattleArenaLobby_EventScript_255FFB
case 127, BattleFrontier_BattleArenaLobby_EventScript_255FFB
setvar VAR_0x8004, 15
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_0x8004, 1
goto_eq BattleFrontier_BattleArenaLobby_EventScript_255FAC
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
copyvar VAR_0x8006, VAR_RESULT
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattleArenaLobby_Text_256573, 4
fadescreen 1
call BattleFrontier_BattleArenaLobby_EventScript_23F2B7
@@ -181,7 +181,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255EE8:: @ 8255EE8
setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 0
special sub_81A5238
setvar VAR_0x8004, 2
@@ -191,11 +191,11 @@ BattleFrontier_BattleArenaLobby_EventScript_255EE8:: @ 8255EE8
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
closemessage
delay 2
@@ -208,12 +208,12 @@ BattleFrontier_BattleArenaLobby_EventScript_255F54:: @ 8255F54
special SavePlayerParty
setvar VAR_0x8004, 3
setvar VAR_0x8005, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattleArenaLobby_Text_2567E6, 4
closemessage
setvar VAR_0x8004, 1
setvar VAR_0x8005, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
call_if 1, BattleFrontier_BattleArenaLobby_EventScript_256005
compare VAR_RESULT, 1
@@ -244,7 +244,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255FE1:: @ 8255FE1
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
goto BattleFrontier_BattleArenaLobby_EventScript_255FFB
BattleFrontier_BattleArenaLobby_EventScript_255FF8:: @ 8255FF8
@@ -346,7 +346,7 @@ BattleFrontier_BattleArenaLobby_EventScript_256092:: @ 8256092
lockall
setvar VAR_0x8004, 7
setvar VAR_0x8005, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
waitbuttonpress
special RemoveRecordsWindow
releaseall
diff --git a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc
index 0a4052f23..9b1a77fae 100644
--- a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc
+++ b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc
@@ -10,7 +10,7 @@ BattleFrontier_BattleDomeBattleRoom_MapScript1_24BCB1: @ 824BCB1
special CallBattleDomeFunction
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
copyvar VAR_TEMP_F, VAR_RESULT
compare VAR_RESULT, 0
call_if 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24C919
@@ -137,14 +137,14 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24BE9A:: @ 824BE9A
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
goto BattleFrontier_BattleDomeBattleRoom_EventScript_24C8F5
@ goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24C8F5
BattleFrontier_BattleDomeBattleRoom_EventScript_24BEB1:: @ 824BEB1
setvar VAR_0x8004, 20
setvar VAR_0x8005, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
message BattleFrontier_BattleDomeBattleRoom_Text_24C9E1
waitmessage
return
@@ -152,7 +152,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BEB1:: @ 824BEB1
BattleFrontier_BattleDomeBattleRoom_EventScript_24BEC5:: @ 824BEC5
setvar VAR_0x8004, 20
setvar VAR_0x8005, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
message BattleFrontier_BattleDomeBattleRoom_Text_24CB34
waitmessage
return
@@ -179,12 +179,12 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BEE0:: @ 824BEE0
special CallBattleDomeFunction
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
addvar VAR_RESULT, 1
setvar VAR_0x8004, 2
setvar VAR_0x8005, 2
copyvar VAR_0x8006, VAR_RESULT
- special sub_81A1780
+ special CallFrontierUtilFunc
switch VAR_RESULT
case 4, BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62
setvar VAR_0x8006, 1
@@ -196,7 +196,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62:: @ 824BF62
waitmovement 0
setvar VAR_0x8004, 1
setvar VAR_0x8005, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
switch VAR_RESULT
case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24BF96
msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CA04, 4
@@ -213,7 +213,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BF9E:: @ 824BF9E
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
goto BattleFrontier_BattleDomeBattleRoom_EventScript_24C8F5
BattleFrontier_BattleDomeBattleRoom_EventScript_24BFC3:: @ 824BFC3
@@ -379,7 +379,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C1B6:: @ 824C1B6
BattleFrontier_BattleDomeBattleRoom_EventScript_24C1BD:: @ 824C1BD
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
return
BattleFrontier_BattleDomeBattleRoom_EventScript_24C1CB:: @ 824C1CB
@@ -428,13 +428,13 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C211:: @ 824C211
case 4, BattleFrontier_BattleDomeBattleRoom_EventScript_24C373
setvar VAR_0x8004, 1
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9
msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CFAE, 4
setvar VAR_0x8004, 2
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9:: @ 824C2B9
msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D0D9, 4
@@ -448,7 +448,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9:: @ 824C2B9
setvar VAR_0x8005, 1
special CallBattleDomeFunction
setvar VAR_0x8004, 12
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62
closemessage
@@ -460,20 +460,20 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9:: @ 824C2B9
waitmessage
waitfanfare
setvar VAR_0x8004, 13
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D1E0, 4
goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62
BattleFrontier_BattleDomeBattleRoom_EventScript_24C346:: @ 824C346
setvar VAR_0x8004, 1
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattleDomeBattleRoom_EventScript_24C373
msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D319, 4
setvar VAR_0x8004, 2
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
BattleFrontier_BattleDomeBattleRoom_EventScript_24C373:: @ 824C373
msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D43E, 4
@@ -487,7 +487,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C373:: @ 824C373
setvar VAR_0x8005, 1
special CallBattleDomeFunction
setvar VAR_0x8004, 12
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 2
goto_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62
closemessage
@@ -499,7 +499,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C373:: @ 824C373
waitmessage
waitfanfare
setvar VAR_0x8004, 13
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D54D, 4
goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62
@@ -527,7 +527,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C440:: @ 824C440
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
special HealPlayerParty
setvar VAR_0x8004, SPECIAL_BATTLE_DOME
setvar VAR_0x8005, 0
@@ -554,11 +554,11 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C48B:: @ 824C48B
applymovement 255, BattleFrontier_BattleDomeBattleRoom_Movement_24C773
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 3
goto_if 5, BattleFrontier_BattleDomeBattleRoom_EventScript_24C4EF
setvar VAR_0x8004, 9
- special sub_81A1780
+ special CallFrontierUtilFunc
copyvar VAR_TEMP_E, VAR_RESULT
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C4EF
diff --git a/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc b/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc
index 989ebe2f3..a4c0dafc4 100644
--- a/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc
+++ b/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc
@@ -11,7 +11,7 @@ BattleFrontier_BattleDomeCorridor_EventScript_24B10E:: @ 824B10E
setvar VAR_TEMP_0, 1
setvar VAR_0x8004, 1
setvar VAR_0x8005, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 1
goto_eq BattleFrontier_BattleDomeCorridor_EventScript_24B161
applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_24B1B2
diff --git a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc
index 6a879df16..669deeeaa 100644
--- a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc
@@ -29,7 +29,7 @@ BattleFrontier_BattleDomeLobby_MapScript2_24980F: @ 824980F
BattleFrontier_BattleDomeLobby_EventScript_249839:: @ 8249839
setvar VAR_0x8004, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
end
BattleFrontier_BattleDomeLobby_EventScript_249842:: @ 8249842
@@ -51,7 +51,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249842:: @ 8249842
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_0, 255
releaseall
end
@@ -60,7 +60,7 @@ BattleFrontier_BattleDomeLobby_EventScript_24989B:: @ 824989B
call BattleFrontier_BattleDomeLobby_EventScript_241EBA
lockall
setvar VAR_0x8004, 10
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 1
goto_eq BattleFrontier_BattleDomeLobby_EventScript_2498C1
msgbox BattleFrontier_BattleDomeLobby_Text_24A4E9, 4
@@ -72,16 +72,16 @@ BattleFrontier_BattleDomeLobby_EventScript_2498C1:: @ 82498C1
BattleFrontier_BattleDomeLobby_EventScript_2498C9:: @ 82498C9
msgbox BattleFrontier_BattleDomeLobby_Text_24ADB1, 4
setvar VAR_0x8004, 11
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattleDomeLobby_Text_241520, 9
message BattleFrontier_BattleDomeLobby_Text_24A5D6
waitmessage
special LoadPlayerParty
setvar VAR_0x8004, 3
setvar VAR_0x8005, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 8
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 1
@@ -106,9 +106,9 @@ BattleFrontier_BattleDomeLobby_EventScript_249940:: @ 8249940
special LoadPlayerParty
setvar VAR_0x8004, 3
setvar VAR_0x8005, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 8
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0
@@ -160,7 +160,7 @@ BattleFrontier_BattleDomeLobby_EventScript_2499F9:: @ 82499F9
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_0, 255
goto BattleFrontier_BattleDomeLobby_EventScript_249BC2
@@ -208,13 +208,13 @@ BattleFrontier_BattleDomeLobby_EventScript_249ABF:: @ 8249ABF
case 2, BattleFrontier_BattleDomeLobby_EventScript_249C64
case 127, BattleFrontier_BattleDomeLobby_EventScript_249C64
setvar VAR_0x8004, 15
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_0x8004, 1
goto_eq BattleFrontier_BattleDomeLobby_EventScript_249C15
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
copyvar VAR_0x8006, VAR_RESULT
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattleDomeLobby_Text_24A26E, 4
fadescreen 1
call BattleFrontier_BattleDomeLobby_EventScript_23F2B7
@@ -234,17 +234,17 @@ BattleFrontier_BattleDomeLobby_EventScript_249B60:: @ 8249B60
setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 0
special CallBattleDomeFunction
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
closemessage
delay 2
@@ -259,7 +259,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249BC2:: @ 8249BC2
special SavePlayerParty
setvar VAR_0x8004, 3
setvar VAR_0x8005, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 15
special CallBattleDomeFunction
msgbox BattleFrontier_BattleDomeLobby_Text_24A437, 4
@@ -295,7 +295,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249C4A:: @ 8249C4A
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
goto BattleFrontier_BattleDomeLobby_EventScript_249C64
BattleFrontier_BattleDomeLobby_EventScript_249C61:: @ 8249C61
@@ -413,7 +413,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249D52:: @ 8249D52
setvar VAR_0x8004, 7
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
waitbuttonpress
special RemoveRecordsWindow
releaseall
@@ -424,7 +424,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249D6B:: @ 8249D6B
setvar VAR_0x8004, 7
setvar VAR_0x8005, 1
setvar VAR_0x8006, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
waitbuttonpress
special RemoveRecordsWindow
releaseall
diff --git a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc
index 203de2813..d870ee8ea 100644
--- a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc
+++ b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc
@@ -22,7 +22,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B222:: @ 824B222
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_0, 1
applymovement 255, BattleFrontier_BattleDomePreBattleRoom_Movement_24B652
waitmovement 0
@@ -100,7 +100,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3BB:: @ 824B3BB
waitse
fadescreen 1
setvar VAR_0x8004, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
end
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3DD:: @ 824B3DD
@@ -122,7 +122,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3F5:: @ 824B3F5
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B40A:: @ 824B40A
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
switch VAR_RESULT
case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B449
case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B452
@@ -157,7 +157,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D:: @ 824B46D
special sub_80F9490
waitstate
setvar VAR_0x8004, 21
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F
setvar VAR_0x8004, 2
@@ -187,7 +187,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D:: @ 824B46D
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B4FB:: @ 824B4FB
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
switch VAR_RESULT
case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B53A
case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B540
@@ -209,7 +209,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B546:: @ 824B546
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B54C:: @ 824B54C
setvar VAR_0x8004, 9
- special sub_81A1780
+ special CallFrontierUtilFunc
switch VAR_RESULT
case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B58B
case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5A0
@@ -246,7 +246,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5C7:: @ 824B5C7
special LoadPlayerParty
setvar VAR_0x8004, 3
setvar VAR_0x8005, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
playfanfare MUS_ME_ASA
waitfanfare
special HealPlayerParty
@@ -260,7 +260,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5C7:: @ 824B5C7
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B600:: @ 824B600
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
switch VAR_RESULT
case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B634
case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B63D
diff --git a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc
index ef26ad3a7..6d2350b6f 100644
--- a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc
+++ b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc
@@ -6,14 +6,14 @@ BattleFrontier_BattleFactoryBattleRoom_MapScripts:: @ 825ADAB
BattleFrontier_BattleFactoryBattleRoom_MapScript1_25ADBB: @ 825ADBB
setvar VAR_0x8004, 5
- special sub_81A1780
+ special CallFrontierUtilFunc
checkplayergender
compare VAR_RESULT, 0
call_if 1, BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE25
compare VAR_RESULT, 1
call_if 1, BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE2B
setvar VAR_0x8004, 9
- special sub_81A1780
+ special CallFrontierUtilFunc
copyvar VAR_TEMP_F, VAR_RESULT
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattleFactoryBattleRoom_EventScript_25ADF3
@@ -88,7 +88,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AEA7:: @ 825AEA7
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
special HealPlayerParty
setvar VAR_0x8004, SPECIAL_BATTLE_FACTORY
setvar VAR_0x8005, 0
@@ -102,7 +102,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25AEF8:: @ 825AEF8
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25B190
@ goto BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25B190
@@ -124,12 +124,12 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF3E:: @ 825AF3E
BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF43:: @ 825AF43
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
addvar VAR_RESULT, 1
setvar VAR_0x8004, 2
setvar VAR_0x8005, 2
copyvar VAR_0x8006, VAR_RESULT
- special sub_81A1780
+ special CallFrontierUtilFunc
switch VAR_RESULT
case 7, BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF85
setvar VAR_0x8006, 1
@@ -140,7 +140,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF85:: @ 825AF85
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25B190
BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF9C:: @ 825AF9C
@@ -150,13 +150,13 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF9C:: @ 825AF9C
case 4, BattleFrontier_BattleFactoryBattleRoom_EventScript_25B07E
setvar VAR_0x8004, 1
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattleFactoryBattleRoom_EventScript_25AFEF
msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B1FB, 4
setvar VAR_0x8004, 2
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
BattleFrontier_BattleFactoryBattleRoom_EventScript_25AFEF:: @ 825AFEF
msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B3F1, 4
@@ -167,7 +167,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AFEF:: @ 825AFEF
BattleFrontier_BattleFactoryBattleRoom_EventScript_25B00C:: @ 825B00C
setvar VAR_0x8004, 12
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattleFactoryBattleRoom_EventScript_25B105
msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B42D, 4
@@ -179,20 +179,20 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25B00C:: @ 825B00C
waitmessage
waitfanfare
setvar VAR_0x8004, 13
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B498, 4
goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25B105
BattleFrontier_BattleFactoryBattleRoom_EventScript_25B051:: @ 825B051
setvar VAR_0x8004, 1
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattleFactoryBattleRoom_EventScript_25B07E
msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B517, 4
setvar VAR_0x8004, 2
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
BattleFrontier_BattleFactoryBattleRoom_EventScript_25B07E:: @ 825B07E
msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B5CF, 4
@@ -203,7 +203,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25B07E:: @ 825B07E
BattleFrontier_BattleFactoryBattleRoom_EventScript_25B09B:: @ 825B09B
setvar VAR_0x8004, 12
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 2
goto_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_25B105
msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B5E7, 4
@@ -215,7 +215,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25B09B:: @ 825B09B
waitmessage
waitfanfare
setvar VAR_0x8004, 13
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B66D, 4
goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25B105
@@ -224,7 +224,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25B0E0:: @ 825B0E0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
special HealPlayerParty
setvar VAR_0x8004, SPECIAL_BATTLE_FACTORY
setvar VAR_0x8005, 0
@@ -255,7 +255,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25B105:: @ 825B105
special sub_81A5E74
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
addvar VAR_RESULT, 1
goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF85
end
diff --git a/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc b/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc
index 7846da874..1a535c893 100644
--- a/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc
@@ -22,7 +22,7 @@ BattleFrontier_BattleFactoryLobby_MapScript2_258407: @ 8258407
BattleFrontier_BattleFactoryLobby_EventScript_258431:: @ 8258431
setvar VAR_0x8004, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
end
BattleFrontier_BattleFactoryLobby_EventScript_25843A:: @ 825843A
@@ -46,7 +46,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_25843A:: @ 825843A
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_0, 255
releaseall
end
@@ -54,7 +54,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_25843A:: @ 825843A
BattleFrontier_BattleFactoryLobby_EventScript_25849B:: @ 825849B
lockall
setvar VAR_0x8004, 10
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 1
goto_eq BattleFrontier_BattleFactoryLobby_EventScript_2584BD
msgbox BattleFrontier_BattleFactoryLobby_Text_258D93, 4
@@ -68,12 +68,12 @@ BattleFrontier_BattleFactoryLobby_EventScript_2584BD:: @ 82584BD
BattleFrontier_BattleFactoryLobby_EventScript_2584C6:: @ 82584C6
msgbox BattleFrontier_BattleFactoryLobby_Text_2592BD, 4
setvar VAR_0x8004, 11
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattleFactoryLobby_Text_241520, 9
message BattleFrontier_BattleFactoryLobby_Text_259323
waitmessage
setvar VAR_0x8004, 8
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
setvar VAR_0x8004, 3
setvar VAR_0x8005, 0
@@ -88,7 +88,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_258506:: @ 8258506
message BattleFrontier_BattleFactoryLobby_Text_258CC7
waitmessage
setvar VAR_0x8004, 8
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
setvar VAR_0x8004, 2
setvar VAR_0x8005, 2
@@ -134,7 +134,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_258592:: @ 8258592
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_0, 255
setvar VAR_0x8006, 2
goto BattleFrontier_BattleFactoryLobby_EventScript_25871A
@@ -183,7 +183,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_258653:: @ 8258653
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
copyvar VAR_0x8006, VAR_RESULT
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattleFactoryLobby_Text_258C27, 5
switch VAR_RESULT
case 0, BattleFrontier_BattleFactoryLobby_EventScript_25879A
@@ -197,7 +197,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_2586B9:: @ 82586B9
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 2
setvar VAR_0x8005, 2
setvar VAR_0x8006, 1
@@ -205,7 +205,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_2586B9:: @ 82586B9
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
closemessage
delay 2
call BattleFrontier_BattleFactoryLobby_EventScript_27134F
@@ -249,7 +249,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_258783:: @ 8258783
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
goto BattleFrontier_BattleFactoryLobby_EventScript_25879D
BattleFrontier_BattleFactoryLobby_EventScript_25879A:: @ 825879A
@@ -303,7 +303,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_2587E1:: @ 82587E1
setvar VAR_0x8004, 7
setvar VAR_0x8005, 4
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
waitbuttonpress
special RemoveRecordsWindow
releaseall
@@ -314,7 +314,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_2587FA:: @ 82587FA
setvar VAR_0x8004, 7
setvar VAR_0x8005, 4
setvar VAR_0x8006, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
waitbuttonpress
special RemoveRecordsWindow
releaseall
diff --git a/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc
index e05c49885..5764025e0 100644
--- a/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc
+++ b/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc
@@ -74,7 +74,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259BA5:: @ 8259BA5
waitfanfare
special HealPlayerParty
setvar VAR_0x8004, 9
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259C26
playse 263
@@ -95,14 +95,14 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259BA5:: @ 8259BA5
BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259C13:: @ 8259C13
setvar VAR_0x8004, 9
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25A0B9
BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259C26:: @ 8259C26
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 1
call_if 1, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259E1D
compare VAR_RESULT, 2
@@ -232,7 +232,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259E47:: @ 8259E47
waitse
fadescreen 1
setvar VAR_0x8004, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
end
BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259E69:: @ 8259E69
@@ -243,7 +243,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259E69:: @ 8259E69
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
special CalculatePlayerPartyCount
goto BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259C13
diff --git a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc
index e97297a16..5cfc4c88b 100644
--- a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc
@@ -6,7 +6,7 @@ BattleFrontier_BattlePalaceBattleRoom_MapScripts:: @ 824F815
BattleFrontier_BattlePalaceBattleRoom_MapScript1_24F825: @ 824F825
setvar VAR_0x8004, 5
- special sub_81A1780
+ special CallFrontierUtilFunc
call BattleFrontier_BattlePalaceBattleRoom_EventScript_24F833
end
@@ -36,7 +36,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24F86B:: @ 824F86B
showobjectat 1, MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_24F8B5
applymovement 1, BattleFrontier_BattlePalaceBattleRoom_Movement_24FE9B
@@ -46,7 +46,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24F86B:: @ 824F86B
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
goto BattleFrontier_BattlePalaceBattleRoom_EventScript_24F98A
BattleFrontier_BattlePalaceBattleRoom_EventScript_24F8B5:: @ 824F8B5
@@ -71,19 +71,19 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24F8FA:: @ 824F8FA
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
goto BattleFrontier_BattlePalaceBattleRoom_EventScript_24FEBB
BattleFrontier_BattlePalaceBattleRoom_EventScript_24F911:: @ 824F911
call BattleFrontier_BattlePalaceBattleRoom_EventScript_241EBA
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
addvar VAR_RESULT, 1
setvar VAR_0x8004, 2
setvar VAR_0x8005, 2
copyvar VAR_0x8006, VAR_RESULT
- special sub_81A1780
+ special CallFrontierUtilFunc
switch VAR_RESULT
case 7, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB28
applymovement 2, BattleFrontier_BattlePalaceBattleRoom_Movement_24FEA7
@@ -97,20 +97,20 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24F911:: @ 824F911
special SavePlayerParty
setvar VAR_0x8004, 3
setvar VAR_0x8005, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
playfanfare MUS_ME_ASA
waitfanfare
special HealPlayerParty
BattleFrontier_BattlePalaceBattleRoom_EventScript_24F98A:: @ 824F98A
setvar VAR_0x8004, 9
- special sub_81A1780
+ special CallFrontierUtilFunc
copyvar VAR_TEMP_F, VAR_RESULT
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB61
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 1
call_if 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FE66
compare VAR_RESULT, 2
@@ -181,7 +181,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB28:: @ 824FB28
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
goto BattleFrontier_BattlePalaceBattleRoom_EventScript_24FEBB
BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB3F:: @ 824FB3F
@@ -194,7 +194,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB3F:: @ 824FB3F
waitse
fadescreen 1
setvar VAR_0x8004, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
end
BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB61:: @ 824FB61
@@ -246,13 +246,13 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FC06:: @ 824FC06
case 4, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD67
setvar VAR_0x8004, 1
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCAA
msgbox BattleFrontier_BattlePalaceBattleRoom_Text_2501C1, 4
setvar VAR_0x8004, 2
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCAA:: @ 824FCAA
msgbox BattleFrontier_BattlePalaceBattleRoom_Text_2502C4, 4
@@ -265,7 +265,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCC7:: @ 824FCC7
setvar VAR_0x8004, 6
special sub_8195960
setvar VAR_0x8004, 12
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB28
msgbox BattleFrontier_BattlePalaceBattleRoom_Text_2502FF, 4
@@ -277,7 +277,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCC7:: @ 824FCC7
waitmessage
waitfanfare
setvar VAR_0x8004, 13
- special sub_81A1780
+ special CallFrontierUtilFunc
applymovement 2, BattleFrontier_BattlePalaceBattleRoom_Movement_2725B6
waitmovement 0
applymovement 1, BattleFrontier_BattlePalaceBattleRoom_Movement_2725A8
@@ -289,13 +289,13 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCC7:: @ 824FCC7
BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD3A:: @ 824FD3A
setvar VAR_0x8004, 1
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD67
msgbox BattleFrontier_BattlePalaceBattleRoom_Text_250485, 4
setvar VAR_0x8004, 2
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD67:: @ 824FD67
msgbox BattleFrontier_BattlePalaceBattleRoom_Text_250572, 4
@@ -308,7 +308,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD84:: @ 824FD84
setvar VAR_0x8004, 6
special sub_8195960
setvar VAR_0x8004, 12
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 2
goto_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB28
msgbox BattleFrontier_BattlePalaceBattleRoom_Text_25057E, 4
@@ -320,7 +320,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD84:: @ 824FD84
waitmessage
waitfanfare
setvar VAR_0x8004, 13
- special sub_81A1780
+ special CallFrontierUtilFunc
applymovement 2, BattleFrontier_BattlePalaceBattleRoom_Movement_2725B6
waitmovement 0
applymovement 1, BattleFrontier_BattlePalaceBattleRoom_Movement_2725A8
@@ -336,17 +336,17 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_24FDF7:: @ 824FDF7
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
special HealPlayerParty
setvar VAR_0x8004, SPECIAL_BATTLE_PALACE
setvar VAR_0x8005, 0
special DoSpecialTrainerBattle
waitstate
setvar VAR_0x8004, 18
- special sub_81A1780
+ special CallFrontierUtilFunc
special HealPlayerParty
setvar VAR_0x8004, 21
- special sub_81A1780
+ special CallFrontierUtilFunc
return
BattleFrontier_BattlePalaceBattleRoom_MapScript2_24FE34: @ 824FE34
diff --git a/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc b/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc
index c8142a207..bd916e931 100644
--- a/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc
@@ -27,7 +27,7 @@ BattleFrontier_BattlePalaceCorridor_EventScript_24F4B3:: @ 824F4B3
closemessage
setvar VAR_0x8004, 1
setvar VAR_0x8005, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 1
goto_eq BattleFrontier_BattlePalaceCorridor_EventScript_24F553
applymovement 1, BattleFrontier_BattlePalaceCorridor_Movement_24F5BD
diff --git a/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc b/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc
index b86ffa2fb..804fd7bce 100644
--- a/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc
@@ -22,7 +22,7 @@ BattleFrontier_BattlePalaceLobby_MapScript2_24D79D: @ 824D79D
BattleFrontier_BattlePalaceLobby_EventScript_24D7C7:: @ 824D7C7
setvar VAR_0x8004, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
end
BattleFrontier_BattlePalaceLobby_EventScript_24D7D0:: @ 824D7D0
@@ -40,7 +40,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D7D0:: @ 824D7D0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_0, 255
releaseall
end
@@ -48,7 +48,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D7D0:: @ 824D7D0
BattleFrontier_BattlePalaceLobby_EventScript_24D817:: @ 824D817
lockall
setvar VAR_0x8004, 10
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 1
goto_eq BattleFrontier_BattlePalaceLobby_EventScript_24D838
msgbox BattleFrontier_BattlePalaceLobby_Text_24E497, 4
@@ -60,7 +60,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D838:: @ 824D838
BattleFrontier_BattlePalaceLobby_EventScript_24D840:: @ 824D840
msgbox BattleFrontier_BattlePalaceLobby_Text_24EEB9, 4
setvar VAR_0x8004, 11
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattlePalaceLobby_Text_241520, 9
message BattleFrontier_BattlePalaceLobby_Text_24E4F7
waitmessage
@@ -88,7 +88,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D873:: @ 824D873
BattleFrontier_BattlePalaceLobby_EventScript_24D8A1:: @ 824D8A1
setvar VAR_0x8004, 8
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
special HealPlayerParty
setvar VAR_0x8004, 7
@@ -126,7 +126,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D908:: @ 824D908
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_0, 255
goto BattleFrontier_BattlePalaceLobby_EventScript_24DAF3
@@ -179,13 +179,13 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D9E6:: @ 824D9E6
case 2, BattleFrontier_BattlePalaceLobby_EventScript_24DB94
case 127, BattleFrontier_BattlePalaceLobby_EventScript_24DB94
setvar VAR_0x8004, 15
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_0x8004, 1
goto_eq BattleFrontier_BattlePalaceLobby_EventScript_24DB45
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
copyvar VAR_0x8006, VAR_RESULT
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattlePalaceLobby_Text_24E399, 4
fadescreen 1
call BattleFrontier_BattlePalaceLobby_EventScript_23F2B7
@@ -205,7 +205,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DA87:: @ 824DA87
setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 0
special sub_8195960
setvar VAR_0x8004, 2
@@ -215,11 +215,11 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DA87:: @ 824DA87
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
closemessage
delay 2
@@ -232,7 +232,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DAF3:: @ 824DAF3
special SavePlayerParty
setvar VAR_0x8004, 3
setvar VAR_0x8005, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattlePalaceLobby_Text_24E408, 4
closemessage
call BattleFrontier_BattlePalaceLobby_EventScript_24DBBC
@@ -268,7 +268,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DB7A:: @ 824DB7A
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
goto BattleFrontier_BattlePalaceLobby_EventScript_24DB94
BattleFrontier_BattlePalaceLobby_EventScript_24DB91:: @ 824DB91
@@ -364,7 +364,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DC50:: @ 824DC50
setvar VAR_0x8004, 7
setvar VAR_0x8005, 2
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
waitbuttonpress
special RemoveRecordsWindow
releaseall
@@ -375,7 +375,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DC69:: @ 824DC69
setvar VAR_0x8004, 7
setvar VAR_0x8005, 2
setvar VAR_0x8006, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
waitbuttonpress
special RemoveRecordsWindow
releaseall
diff --git a/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc b/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc
index 23ad26692..4bdf3c80e 100644
--- a/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc
@@ -12,7 +12,7 @@ BattleFrontier_BattlePikeCorridor_EventScript_25C786:: @ 825C786
setvar VAR_0x8004, 2
setvar VAR_0x8005, 2
setvar VAR_0x8006, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 20
special sub_81A703C
setvar VAR_0x8004, 24
@@ -30,7 +30,7 @@ BattleFrontier_BattlePikeCorridor_EventScript_25C786:: @ 825C786
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 99
- special sub_81A1780
+ special CallFrontierUtilFunc
call BattleFrontier_BattlePikeCorridor_EventScript_25BB49
warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM, 255, 6, 10
waitstate
diff --git a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc
index 0b356792f..6bbb21bd1 100644
--- a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc
@@ -21,7 +21,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25B6FD:: @ 825B6FD
BattleFrontier_BattlePikeLobby_EventScript_25B707:: @ 825B707
setvar VAR_0x8004, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
end
BattleFrontier_BattlePikeLobby_EventScript_25B710:: @ 825B710
@@ -42,7 +42,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25B710:: @ 825B710
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_0, 255
releaseall
end
@@ -50,7 +50,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25B710:: @ 825B710
BattleFrontier_BattlePikeLobby_EventScript_25B762:: @ 825B762
lockall
setvar VAR_0x8004, 10
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 1
goto_eq BattleFrontier_BattlePikeLobby_EventScript_25B784
msgbox BattleFrontier_BattlePikeLobby_Text_25C18A, 4
@@ -64,10 +64,10 @@ BattleFrontier_BattlePikeLobby_EventScript_25B784:: @ 825B784
BattleFrontier_BattlePikeLobby_EventScript_25B78D:: @ 825B78D
msgbox BattleFrontier_BattlePikeLobby_Text_25C3D9, 4
setvar VAR_0x8004, 11
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattlePikeLobby_Text_241520, 9
setvar VAR_0x8004, 8
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 1
setvar VAR_0x8005, 3
special sub_81A703C
@@ -98,11 +98,11 @@ BattleFrontier_BattlePikeLobby_EventScript_25B806:: @ 825B806
message BattleFrontier_BattlePikeLobby_Text_25C146
waitmessage
setvar VAR_0x8004, 8
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 2
setvar VAR_0x8005, 2
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
setvar VAR_0x8006, 0
@@ -148,13 +148,13 @@ BattleFrontier_BattlePikeLobby_EventScript_25B8BB:: @ 825B8BB
case 2, BattleFrontier_BattlePikeLobby_EventScript_25BA76
case 127, BattleFrontier_BattlePikeLobby_EventScript_25BA76
setvar VAR_0x8004, 15
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_0x8004, 1
goto_eq BattleFrontier_BattlePikeLobby_EventScript_25BA27
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
copyvar VAR_0x8006, VAR_RESULT
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattlePikeLobby_Text_25C094, 4
fadescreen 1
call BattleFrontier_BattlePikeLobby_EventScript_23F2B7
@@ -175,13 +175,13 @@ BattleFrontier_BattlePikeLobby_EventScript_25B95C:: @ 825B95C
setvar VAR_TEMP_1, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 28
special sub_81A703C
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
setvar VAR_0x8006, 1
@@ -191,7 +191,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25B95C:: @ 825B95C
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
closemessage
delay 2
@@ -204,11 +204,11 @@ BattleFrontier_BattlePikeLobby_EventScript_25B95C:: @ 825B95C
special SavePlayerParty
setvar VAR_0x8004, 3
setvar VAR_0x8005, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattlePikeLobby_Text_25C130, 4
closemessage
setvar VAR_0x8004, 5
- special sub_81A1780
+ special CallFrontierUtilFunc
call BattleFrontier_BattlePikeLobby_EventScript_25BA94
special HealPlayerParty
call BattleFrontier_BattlePikeLobby_EventScript_25BB49
@@ -238,7 +238,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25BA5C:: @ 825BA5C
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
goto BattleFrontier_BattlePikeLobby_EventScript_25BA76
BattleFrontier_BattlePikeLobby_EventScript_25BA73:: @ 825BA73
@@ -255,7 +255,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25BA80:: @ 825BA80
lockall
setvar VAR_0x8004, 7
setvar VAR_0x8005, 5
- special sub_81A1780
+ special CallFrontierUtilFunc
waitbuttonpress
special RemoveRecordsWindow
releaseall
diff --git a/data/maps/BattleFrontier_BattlePikeRandomRoom1/scripts.inc b/data/maps/BattleFrontier_BattlePikeRandomRoom1/scripts.inc
index d1dc7d13e..6f7140f30 100644
--- a/data/maps/BattleFrontier_BattlePikeRandomRoom1/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePikeRandomRoom1/scripts.inc
@@ -45,7 +45,7 @@ BattleFrontier_BattlePikeRandomRoom1_EventScript_25D20A:: @ 825D20A
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6
waitstate
end
@@ -144,13 +144,13 @@ BattleFrontier_BattlePikeRandomRoom1_EventScript_25D2FB:: @ 825D2FB
case 4, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D443
setvar VAR_0x8004, 1
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D3BD
msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DED2, 4
setvar VAR_0x8004, 2
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
BattleFrontier_BattlePikeRandomRoom1_EventScript_25D3BD:: @ 825D3BD
msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DF71, 4
@@ -161,7 +161,7 @@ BattleFrontier_BattlePikeRandomRoom1_EventScript_25D3BD:: @ 825D3BD
BattleFrontier_BattlePikeRandomRoom1_EventScript_25D3DA:: @ 825D3DA
setvar VAR_0x8004, 12
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D49D
msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DFA2, 4
@@ -171,7 +171,7 @@ BattleFrontier_BattlePikeRandomRoom1_EventScript_25D3DA:: @ 825D3DA
waitmessage
waitfanfare
setvar VAR_0x8004, 13
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E003, 4
closemessage
goto BattleFrontier_BattlePikeRandomRoom1_EventScript_25D49D
@@ -179,13 +179,13 @@ BattleFrontier_BattlePikeRandomRoom1_EventScript_25D3DA:: @ 825D3DA
BattleFrontier_BattlePikeRandomRoom1_EventScript_25D416:: @ 825D416
setvar VAR_0x8004, 1
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D443
msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E02C, 4
setvar VAR_0x8004, 2
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
BattleFrontier_BattlePikeRandomRoom1_EventScript_25D443:: @ 825D443
msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E0E8, 4
@@ -196,7 +196,7 @@ BattleFrontier_BattlePikeRandomRoom1_EventScript_25D443:: @ 825D443
BattleFrontier_BattlePikeRandomRoom1_EventScript_25D460:: @ 825D460
setvar VAR_0x8004, 12
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 2
goto_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D49D
msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E0F6, 4
@@ -206,7 +206,7 @@ BattleFrontier_BattlePikeRandomRoom1_EventScript_25D460:: @ 825D460
waitmessage
waitfanfare
setvar VAR_0x8004, 13
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E140, 4
closemessage
goto BattleFrontier_BattlePikeRandomRoom1_EventScript_25D49D
diff --git a/data/maps/BattleFrontier_BattlePikeRandomRoom2/scripts.inc b/data/maps/BattleFrontier_BattlePikeRandomRoom2/scripts.inc
index 4f0d4632b..58031dd85 100644
--- a/data/maps/BattleFrontier_BattlePikeRandomRoom2/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePikeRandomRoom2/scripts.inc
@@ -14,7 +14,7 @@ BattleFrontier_BattlePikeRandomRoom2_EventScript_25E3A7:: @ 825E3A7
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
lockall
msgbox BattleFrontier_BattlePikeRandomRoom2_Text_25E3F2, 4
closemessage
diff --git a/data/maps/BattleFrontier_BattlePikeRandomRoom3/scripts.inc b/data/maps/BattleFrontier_BattlePikeRandomRoom3/scripts.inc
index 9256764e8..d1d968054 100644
--- a/data/maps/BattleFrontier_BattlePikeRandomRoom3/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePikeRandomRoom3/scripts.inc
@@ -19,7 +19,7 @@ BattleFrontier_BattlePikeRandomRoom3_EventScript_25E44A:: @ 825E44A
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6
waitstate
end
@@ -37,7 +37,7 @@ BattleFrontier_BattlePikeRandomRoom3_MapScript1_25E47A: @ 825E47A
call BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4271
setvar VAR_0x8004, 1
setvar VAR_0x8005, 5
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 2
goto_eq BattleFrontier_BattlePikeRandomRoom3_EventScript_25E4A3
compare VAR_RESULT, 3
diff --git a/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc b/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc
index a4725036b..6f5e8db1c 100644
--- a/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc
@@ -23,7 +23,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_25C887:: @ 825C887
BattleFrontier_BattlePikeThreePathRoom_EventScript_25C891:: @ 825C891
setvar VAR_0x8004, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
end
BattleFrontier_BattlePikeThreePathRoom_EventScript_25C89A:: @ 825C89A
@@ -43,27 +43,27 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_25C8A4:: @ 825C8A4
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_0, 255
special SavePlayerParty
setvar VAR_0x8004, 3
setvar VAR_0x8005, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CDDA, 4
closemessage
releaseall
setvar VAR_0x8004, 5
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 99
- special sub_81A1780
+ special CallFrontierUtilFunc
end
BattleFrontier_BattlePikeThreePathRoom_EventScript_25C908:: @ 825C908
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
switch VAR_RESULT
case 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C968
case 3, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C978
@@ -133,7 +133,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9D8:: @ 825C9D8
BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9FD:: @ 825C9FD
setvar VAR_0x8004, 6
- special sub_81A1780
+ special CallFrontierUtilFunc
message BattleFrontier_BattlePikeThreePathRoom_Text_25CE08
waitmessage
special LoadPlayerParty
@@ -144,7 +144,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9FD:: @ 825C9FD
waitse
fadescreen 1
setvar VAR_0x8004, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
end
BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA2A:: @ 825CA2A
diff --git a/data/maps/BattleFrontier_BattlePyramidEmptySquare/scripts.inc b/data/maps/BattleFrontier_BattlePyramidEmptySquare/scripts.inc
index eacee4cf3..6225ae0cc 100644
--- a/data/maps/BattleFrontier_BattlePyramidEmptySquare/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePyramidEmptySquare/scripts.inc
@@ -41,14 +41,14 @@ BattleFrontier_BattlePyramidEmptySquare_MapScript1_252AA2: @ 8252AA2
setvar VAR_0x8004, 15
special sub_81A8E7C
setvar VAR_0x8004, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
switch VAR_TEMP_0
case 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252B8D
case 1, BattleFrontier_BattlePyramidEmptySquare_EventScript_252B66
case 2, BattleFrontier_BattlePyramidEmptySquare_EventScript_252B8D
setvar VAR_0x8004, 1
setvar VAR_0x8005, 5
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 4
goto_eq BattleFrontier_BattlePyramidEmptySquare_EventScript_252B39
compare VAR_RESULT, 5
@@ -63,7 +63,7 @@ BattleFrontier_BattlePyramidEmptySquare_MapScript1_252AA2: @ 8252AA2
goto_eq BattleFrontier_BattlePyramidEmptySquare_EventScript_252B42
setvar VAR_0x8004, 14
setvar VAR_0x8005, 8
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_D, 1
BattleFrontier_BattlePyramidEmptySquare_EventScript_252B39:: @ 8252B39
@@ -76,7 +76,7 @@ BattleFrontier_BattlePyramidTop_EventScript_252B42:: @ 8252B42
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 2
setvar VAR_0x8005, 7
setvar VAR_0x8006, 255
@@ -103,12 +103,12 @@ BattleFrontier_BattlePyramidEmptySquare_EventScript_252B8D:: @ 8252B8D
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 9
special sub_81A8E7C
setvar VAR_0x8004, 3
setvar VAR_0x8005, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_F, 1
end
@@ -128,12 +128,12 @@ BattleFrontier_BattlePyramidEmptySquare_EventScript_252BE8:: @ 8252BE8
call BattleFrontier_BattlePalaceBattleRoom_EventScript_241EBA
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
addvar VAR_RESULT, 1
setvar VAR_0x8004, 2
setvar VAR_0x8005, 2
copyvar VAR_0x8006, VAR_RESULT
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 7
goto_eq BattleFrontier_BattlePyramidEmptySquare_EventScript_252C45
setvar VAR_0x8004, 6
@@ -141,7 +141,7 @@ BattleFrontier_BattlePyramidEmptySquare_EventScript_252BE8:: @ 8252BE8
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_RESULT, 0
warp MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE, 255, 1, 1
waitstate
diff --git a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc
index ccc7b1032..4ae7b8e55 100644
--- a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc
@@ -22,7 +22,7 @@ BattleFrontier_BattlePyramidLobby_MapScript2_250735: @ 8250735
BattleFrontier_BattlePyramidLobby_EventScript_25075F:: @ 825075F
setvar VAR_0x8004, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
end
BattleFrontier_BattlePyramidLobby_EventScript_250768:: @ 8250768
@@ -43,7 +43,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_250768:: @ 8250768
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_0, 255
releaseall
end
@@ -51,7 +51,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_250768:: @ 8250768
BattleFrontier_BattlePyramidLobby_EventScript_2507B1:: @ 82507B1
lockall
setvar VAR_0x8004, 10
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 1
goto_eq BattleFrontier_BattlePyramidLobby_EventScript_2507D2
msgbox BattleFrontier_BattlePyramidLobby_Text_2517B5, 4
@@ -66,7 +66,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_2507DA:: @ 82507DA
call_if 1, BattleFrontier_BattlePyramidLobby_EventScript_250DDB
clearflag FLAG_SPECIAL_FLAG_0x4004
setvar VAR_0x8004, 8
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
setvar VAR_0x8004, 14
special sub_81A8E7C
@@ -77,7 +77,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_2507DA:: @ 82507DA
waitse
msgbox BattleFrontier_BattlePyramidLobby_Text_252662, 4
setvar VAR_0x8004, 11
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattlePyramidLobby_Text_241520, 9
message BattleFrontier_BattlePyramidLobby_Text_251A77
waitmessage
@@ -96,7 +96,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_2507DA:: @ 82507DA
BattleFrontier_BattlePyramidLobby_EventScript_250852:: @ 8250852
setvar VAR_0x8004, 8
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
setvar VAR_0x8004, 14
special sub_81A8E7C
@@ -152,13 +152,13 @@ BattleFrontier_BattlePyramidLobby_EventScript_250904:: @ 8250904
case 2, BattleFrontier_BattlePyramidLobby_EventScript_250AC4
case 127, BattleFrontier_BattlePyramidLobby_EventScript_250AC4
setvar VAR_0x8004, 15
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_0x8004, 1
goto_eq BattleFrontier_BattlePyramidLobby_EventScript_250A75
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
copyvar VAR_0x8006, VAR_RESULT
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattlePyramidLobby_Text_251297, 4
fadescreen 1
call BattleFrontier_BattlePyramidLobby_EventScript_23F2B7
@@ -178,7 +178,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_2509A5:: @ 82509A5
setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 0
special sub_81A8E7C
setvar VAR_0x8004, 2
@@ -188,11 +188,11 @@ BattleFrontier_BattlePyramidLobby_EventScript_2509A5:: @ 82509A5
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 6
special sub_81A8E7C
setvar VAR_0x8004, 9
@@ -209,14 +209,14 @@ BattleFrontier_BattlePyramidLobby_EventScript_250A21:: @ 8250A21
special SavePlayerParty
setvar VAR_0x8004, 3
setvar VAR_0x8005, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattlePyramidLobby_Text_251531, 4
closemessage
call BattleFrontier_BattlePyramidLobby_EventScript_250D56
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_RESULT, 0
special HealPlayerParty
warp MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE, 255, 1, 1
@@ -245,7 +245,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_250AAA:: @ 8250AAA
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
goto BattleFrontier_BattlePyramidLobby_EventScript_250AC4
BattleFrontier_BattlePyramidLobby_EventScript_250AC1:: @ 8250AC1
@@ -426,7 +426,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_250D42:: @ 8250D42
lockall
setvar VAR_0x8004, 7
setvar VAR_0x8005, 6
- special sub_81A1780
+ special CallFrontierUtilFunc
waitbuttonpress
special RemoveRecordsWindow
releaseall
diff --git a/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc b/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc
index 5169a6971..46ecef737 100644
--- a/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc
@@ -29,7 +29,7 @@ BattleFrontier_BattlePyramidTop_EventScript_2550F3:: @ 82550F3
BattleFrontier_BattlePyramidTop_MapScript1_2550F4: @ 82550F4
setvar VAR_0x8004, 9
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattlePyramidTop_EventScript_25510C
call BattleFrontier_BattlePyramidTop_EventScript_242170
@@ -37,14 +37,14 @@ BattleFrontier_BattlePyramidTop_MapScript1_2550F4: @ 82550F4
BattleFrontier_BattlePyramidTop_EventScript_25510C:: @ 825510C
copyvar VAR_TEMP_C, VAR_RESULT
setvar VAR_0x8004, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
switch VAR_TEMP_0
case 0, BattleFrontier_BattlePyramidTop_EventScript_255193
case 1, BattleFrontier_BattlePyramidTop_EventScript_252B66
case 2, BattleFrontier_BattlePyramidTop_EventScript_255193
setvar VAR_0x8004, 1
setvar VAR_0x8005, 5
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 2
goto_eq BattleFrontier_BattlePyramidTop_EventScript_252B42
compare VAR_RESULT, 3
@@ -76,12 +76,12 @@ BattleFrontier_BattlePyramidTop_EventScript_255193:: @ 8255193
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 9
special sub_81A8E7C
setvar VAR_0x8004, 3
setvar VAR_0x8005, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_F, 1
end
@@ -110,7 +110,7 @@ BattleFrontier_BattlePyramidTop_EventScript_25521A:: @ 825521A
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
warp MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY, 255, 7, 13
waitstate
end
@@ -135,7 +135,7 @@ BattleFrontier_BattlePyramidTop_EventScript_255256:: @ 8255256
case 4, BattleFrontier_BattlePyramidTop_EventScript_255388
setvar VAR_0x8004, 1
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattlePyramidTop_EventScript_2552D0
special SpawnScriptEventObject
@@ -145,7 +145,7 @@ BattleFrontier_BattlePyramidTop_EventScript_255256:: @ 8255256
closemessage
setvar VAR_0x8004, 2
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
applymovement 2, BattleFrontier_BattlePyramidTop_Movement_25540A
waitmovement 0
msgbox BattleFrontier_BattlePyramidTop_Text_25573E, 4
@@ -166,7 +166,7 @@ BattleFrontier_BattlePyramidTop_EventScript_2552DA:: @ 82552DA
BattleFrontier_BattlePyramidTop_EventScript_2552FB:: @ 82552FB
setvar VAR_0x8004, 12
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattlePyramidTop_EventScript_25521A
msgbox BattleFrontier_BattlePyramidTop_Text_255873, 4
@@ -175,14 +175,14 @@ BattleFrontier_BattlePyramidTop_EventScript_2552FB:: @ 82552FB
waitmessage
waitfanfare
setvar VAR_0x8004, 13
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattlePyramidTop_Text_25591D, 4
goto BattleFrontier_BattlePyramidTop_EventScript_25521A
BattleFrontier_BattlePyramidTop_EventScript_255335:: @ 8255335
setvar VAR_0x8004, 1
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattlePyramidTop_EventScript_255388
special SpawnScriptEventObject
@@ -192,7 +192,7 @@ BattleFrontier_BattlePyramidTop_EventScript_255335:: @ 8255335
closemessage
setvar VAR_0x8004, 2
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
applymovement 2, BattleFrontier_BattlePyramidTop_Movement_25540A
waitmovement 0
msgbox BattleFrontier_BattlePyramidTop_Text_255A6D, 4
@@ -213,7 +213,7 @@ BattleFrontier_BattlePyramidTop_EventScript_255392:: @ 8255392
BattleFrontier_BattlePyramidTop_EventScript_2553B3:: @ 82553B3
setvar VAR_0x8004, 12
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 2
goto_eq BattleFrontier_BattlePyramidTop_EventScript_25521A
msgbox BattleFrontier_BattlePyramidTop_Text_255ACD, 4
@@ -222,7 +222,7 @@ BattleFrontier_BattlePyramidTop_EventScript_2553B3:: @ 82553B3
waitmessage
waitfanfare
setvar VAR_0x8004, 13
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattlePyramidTop_Text_255B82, 4
goto BattleFrontier_BattlePyramidTop_EventScript_25521A
diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc
index 69a78215d..196518e0b 100644
--- a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc
+++ b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc
@@ -22,7 +22,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241B6C:: @ 8241B6C
waitmovement 0
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleTowerBattleRoom_EventScript_241BC3
applymovement 2, BattleFrontier_BattleTowerBattleRoom_Movement_24218D
@@ -33,7 +33,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241B6C:: @ 8241B6C
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
goto BattleFrontier_BattleTowerBattleRoom_EventScript_241C8F
BattleFrontier_BattleTowerBattleRoom_EventScript_241BC3:: @ 8241BC3
@@ -56,7 +56,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_241C03:: @ 8241C03
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
special sub_8161F74
@@ -74,7 +74,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241C2F:: @ 8241C2F
waitmovement 0
removeobject 1
setvar VAR_0x8004, 9
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
call_if 5, BattleFrontier_BattleTowerBattleRoom_EventScript_241EC3
applymovement 2, BattleFrontier_BattleTowerBattleRoom_Movement_24218D
@@ -88,13 +88,13 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241C2F:: @ 8241C2F
BattleFrontier_BattleTowerBattleRoom_EventScript_241C8F:: @ 8241C8F
setvar VAR_0x8004, 9
- special sub_81A1780
+ special CallFrontierUtilFunc
copyvar VAR_TEMP_F, VAR_RESULT
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattleTowerBattleRoom_EventScript_241F0A
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
call BattleFrontier_BattleTowerBattleRoom_EventScript_241E44
call BattleFrontier_BattleTowerBattleRoom_EventScript_23E8E0
compare VAR_RESULT, 1
@@ -156,7 +156,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241DF6:: @ 8241DF6
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
special sub_8161F74
@@ -174,7 +174,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241E22:: @ 8241E22
waitse
fadescreen 1
setvar VAR_0x8004, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
end
BattleFrontier_BattleTowerBattleRoom_EventScript_241E44:: @ 8241E44
@@ -224,7 +224,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_241EBA:: @ 8241EBA
BattleFrontier_BattleTowerBattleRoom2_EventScript_241EBA:: @ 8241EBA
BattleFrontier_BattleTowerBattleRoom_EventScript_241EBA:: @ 8241EBA
setvar VAR_0x8004, 17
- special sub_81A1780
+ special CallFrontierUtilFunc
return
BattleFrontier_BattleTowerBattleRoom_EventScript_241EC3:: @ 8241EC3
@@ -288,13 +288,13 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241FAF:: @ 8241FAF
case 4, BattleFrontier_BattleTowerBattleRoom_EventScript_2420B2
setvar VAR_0x8004, 1
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattleTowerBattleRoom_EventScript_242029
msgbox BattleFrontier_BattleTowerBattleRoom_Text_242579, 4
setvar VAR_0x8004, 2
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
BattleFrontier_BattleTowerBattleRoom_EventScript_242029:: @ 8242029
msgbox BattleFrontier_BattleTowerBattleRoom_Text_24268C, 4
@@ -306,7 +306,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_242029:: @ 8242029
BattleFrontier_BattleTowerBattleRoom_EventScript_242046:: @ 8242046
call BattleFrontier_BattleTowerBattleRoom_EventScript_241EBA
setvar VAR_0x8004, 12
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattleTowerBattleRoom_EventScript_241DF6
msgbox BattleFrontier_BattleTowerBattleRoom_Text_2426B4, 4
@@ -315,20 +315,20 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_242046:: @ 8242046
waitmessage
waitfanfare
setvar VAR_0x8004, 13
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattleTowerBattleRoom_Text_242744, 4
goto BattleFrontier_BattleTowerBattleRoom_EventScript_241DF6
BattleFrontier_BattleTowerBattleRoom_EventScript_242085:: @ 8242085
setvar VAR_0x8004, 1
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattleTowerBattleRoom_EventScript_2420B2
msgbox BattleFrontier_BattleTowerBattleRoom_Text_2427F9, 4
setvar VAR_0x8004, 2
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
BattleFrontier_BattleTowerBattleRoom_EventScript_2420B2:: @ 82420B2
msgbox BattleFrontier_BattleTowerBattleRoom_Text_2428E0, 4
@@ -340,7 +340,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_2420B2:: @ 82420B2
BattleFrontier_BattleTowerBattleRoom_EventScript_2420CF:: @ 82420CF
call BattleFrontier_BattleTowerBattleRoom_EventScript_241EBA
setvar VAR_0x8004, 12
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 2
goto_eq BattleFrontier_BattleTowerBattleRoom_EventScript_241DF6
msgbox BattleFrontier_BattleTowerBattleRoom_Text_2428F7, 4
@@ -349,7 +349,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_2420CF:: @ 82420CF
waitmessage
waitfanfare
setvar VAR_0x8004, 13
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattleTowerBattleRoom_Text_24295D, 4
goto BattleFrontier_BattleTowerBattleRoom_EventScript_241DF6
@@ -360,7 +360,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_24210E:: @ 824210E
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
special HealPlayerParty
setvar VAR_0x8004, SPECIAL_BATTLE_TOWER
setvar VAR_0x8005, 0
@@ -370,17 +370,17 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_24210E:: @ 824210E
compare VAR_0x8004, 3
goto_eq BattleFrontier_BattleTowerBattleRoom_EventScript_24215A
setvar VAR_0x8004, 18
- special sub_81A1780
+ special CallFrontierUtilFunc
special HealPlayerParty
setvar VAR_0x8004, 21
- special sub_81A1780
+ special CallFrontierUtilFunc
BattleFrontier_BattleTowerBattleRoom_EventScript_24215A:: @ 824215A
setvar VAR_0x8004, 15
special sub_8161F74
setvar VAR_0x8004, 1
setvar VAR_0x8005, 5
- special sub_81A1780
+ special CallFrontierUtilFunc
return
BattleFrontier_BattleArenaBattleRoom_EventScript_242170:: @ 8242170
@@ -390,7 +390,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_242170:: @ 8242170
BattleFrontier_BattlePyramidTop_EventScript_242170:: @ 8242170
BattleFrontier_BattleTowerBattleRoom_EventScript_242170:: @ 8242170
setvar VAR_0x8004, 22
- special sub_81A1780
+ special CallFrontierUtilFunc
return
BattleFrontier_BattleTowerBattleRoom_Movement_242179: @ 8242179
diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc
index 9c4cd6bc9..de242cbcc 100644
--- a/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc
+++ b/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc
@@ -47,7 +47,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_248F4D:: @ 8248F4D
waitmovement 0
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_248FB4
applymovement 2, BattleFrontier_BattleTowerBattleRoom2_Movement_24953E
@@ -59,7 +59,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_248F4D:: @ 8248F4D
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249143
BattleFrontier_BattleTowerBattleRoom2_EventScript_248FB4:: @ 8248FB4
@@ -117,7 +117,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_24907E:: @ 824907E
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
special sub_8161F74
@@ -156,7 +156,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_249121:: @ 8249121
special LoadPlayerParty
setvar VAR_0x8004, 3
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_FRONTIER_BATTLE_MODE, 3
call_if 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_249514
playfanfare MUS_ME_ASA
@@ -166,7 +166,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_249121:: @ 8249121
BattleFrontier_BattleTowerBattleRoom2_EventScript_249143:: @ 8249143
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
call BattleFrontier_BattleTowerBattleRoom2_EventScript_2492FD
compare VAR_FRONTIER_BATTLE_MODE, 3
goto_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249283
@@ -234,7 +234,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_2492AF:: @ 82492AF
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
special sub_8161F74
@@ -252,7 +252,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_2492DB:: @ 82492DB
waitse
fadescreen 1
setvar VAR_0x8004, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
end
BattleFrontier_BattleTowerBattleRoom2_EventScript_2492FD:: @ 82492FD
diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc
index b70bb8049..1afa9e120 100644
--- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc
@@ -49,7 +49,7 @@ BattleFrontier_BattleTowerLobby_MapScript2_23E6DD: @ 823E6DD
BattleFrontier_BattleTowerLobby_EventScript_23E707:: @ 823E707
setvar VAR_0x8004, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
end
BattleFrontier_BattleTowerLobby_EventScript_23E710:: @ 823E710
@@ -68,7 +68,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E710:: @ 823E710
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_0, 255
release
end
@@ -77,7 +77,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E758:: @ 823E758
lock
faceplayer
setvar VAR_0x8004, 10
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 1
goto_eq BattleFrontier_BattleTowerLobby_EventScript_23E778
message BattleFrontier_BattleTowerLobby_Text_23F60D
@@ -101,7 +101,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E780:: @ 823E780
BattleFrontier_BattleTowerLobby_EventScript_23E7A5:: @ 823E7A5
msgbox BattleFrontier_BattleTowerLobby_Text_2414D4, 4
setvar VAR_0x8004, 11
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattleTowerLobby_Text_241520, 9
call BattleFrontier_BattleTowerLobby_EventScript_23E84D
setvar VAR_0x8004, 1
@@ -151,7 +151,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E84D:: @ 823E84D
message BattleFrontier_BattleTowerLobby_Text_23F70F
waitmessage
setvar VAR_0x8004, 8
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
special HealPlayerParty
setvar VAR_0x8004, 6
@@ -182,7 +182,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_23E8B4:: @ 823E8B4
BattleFrontier_BattleTowerBattleRoom_EventScript_23E8B4:: @ 823E8B4
BattleFrontier_BattleTowerLobby_EventScript_23E8B4:: @ 823E8B4
setvar VAR_0x8004, 19
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleTowerLobby_EventScript_23E8D7
playse SE_SAVE
@@ -208,7 +208,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_23E8E0:: @ 823E8E0
BattleFrontier_BattleTowerLobby_EventScript_23E8E0:: @ 823E8E0
setvar VAR_0x8004, 1
setvar VAR_0x8005, 6
- special sub_81A1780
+ special CallFrontierUtilFunc
return
BattleFrontier_BattleTowerLobby_EventScript_23E8EE:: @ 823E8EE
@@ -228,7 +228,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E8EE:: @ 823E8EE
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
goto BattleFrontier_BattleTowerLobby_EventScript_23F0F3
end
@@ -262,13 +262,13 @@ BattleFrontier_BattleTowerLobby_EventScript_23E984:: @ 823E984
case 2, BattleFrontier_BattleTowerLobby_EventScript_23F0E6
case 127, BattleFrontier_BattleTowerLobby_EventScript_23F0E6
setvar VAR_0x8004, 15
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_0x8004, 1
goto_eq BattleFrontier_BattleTowerLobby_EventScript_23F02B
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
copyvar VAR_0x8006, VAR_RESULT
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattleTowerLobby_Text_2407A6, 4
fadescreen 1
call BattleFrontier_BattleTowerLobby_EventScript_23F2B7
@@ -287,7 +287,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E984:: @ 823E984
BattleFrontier_BattleTowerLobby_EventScript_23EA2A:: @ 823EA2A
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 0
special sub_8161F74
@@ -298,7 +298,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EA2A:: @ 823EA2A
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
closemessage
delay 2
@@ -342,13 +342,13 @@ BattleFrontier_BattleTowerLobby_EventScript_23EAED:: @ 823EAED
case 2, BattleFrontier_BattleTowerLobby_EventScript_23F0E6
case 127, BattleFrontier_BattleTowerLobby_EventScript_23F0E6
setvar VAR_0x8004, 15
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_0x8004, 1
goto_eq BattleFrontier_BattleTowerLobby_EventScript_23F02B
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
copyvar VAR_0x8006, VAR_RESULT
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattleTowerLobby_Text_240A50, 4
fadescreen 1
call BattleFrontier_BattleTowerLobby_EventScript_23F2B7
@@ -367,7 +367,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EAED:: @ 823EAED
BattleFrontier_BattleTowerLobby_EventScript_23EB93:: @ 823EB93
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 0
special sub_8161F74
@@ -378,7 +378,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EB93:: @ 823EB93
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
closemessage
delay 2
@@ -423,13 +423,13 @@ BattleFrontier_BattleTowerLobby_EventScript_23EC59:: @ 823EC59
case 2, BattleFrontier_BattleTowerLobby_EventScript_23F0E6
case 127, BattleFrontier_BattleTowerLobby_EventScript_23F0E6
setvar VAR_0x8004, 15
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_0x8004, 1
goto_eq BattleFrontier_BattleTowerLobby_EventScript_23F02B
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
copyvar VAR_0x8006, VAR_RESULT
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattleTowerLobby_Text_240DDB, 4
fadescreen 1
call BattleFrontier_BattleTowerLobby_EventScript_23F2B7
@@ -448,7 +448,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EC59:: @ 823EC59
BattleFrontier_BattleTowerLobby_EventScript_23ECFF:: @ 823ECFF
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 0
special sub_8161F74
@@ -459,7 +459,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23ECFF:: @ 823ECFF
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
closemessage
delay 2
@@ -503,13 +503,13 @@ BattleFrontier_BattleTowerLobby_EventScript_23EDC2:: @ 823EDC2
case 2, BattleFrontier_BattleTowerLobby_EventScript_23F0E6
case 127, BattleFrontier_BattleTowerLobby_EventScript_23F0E6
setvar VAR_0x8004, 15
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_0x8004, 1
goto_eq BattleFrontier_BattleTowerLobby_EventScript_23F02B
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
copyvar VAR_0x8006, VAR_RESULT
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox BattleFrontier_BattleTowerLobby_Text_24115E, 4
fadescreen 1
call BattleFrontier_BattleTowerLobby_EventScript_23F2B7
@@ -528,7 +528,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EDC2:: @ 823EDC2
BattleFrontier_BattleTowerLobby_EventScript_23EE68:: @ 823EE68
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 0
special sub_8161F74
@@ -539,7 +539,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EE68:: @ 823EE68
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
closemessage
delay 2
@@ -634,7 +634,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EFC7:: @ 823EFC7
setvar VAR_0x8004, 7
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
waitbuttonpress
special RemoveRecordsWindow
releaseall
@@ -645,7 +645,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EFE0:: @ 823EFE0
setvar VAR_0x8004, 7
setvar VAR_0x8005, 0
setvar VAR_0x8006, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
waitbuttonpress
special RemoveRecordsWindow
releaseall
@@ -656,7 +656,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EFF9:: @ 823EFF9
setvar VAR_0x8004, 7
setvar VAR_0x8005, 0
setvar VAR_0x8006, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
waitbuttonpress
special RemoveRecordsWindow
releaseall
@@ -667,7 +667,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23F012:: @ 823F012
setvar VAR_0x8004, 7
setvar VAR_0x8005, 0
setvar VAR_0x8006, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
waitbuttonpress
special RemoveRecordsWindow
releaseall
@@ -717,7 +717,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23F0C2:: @ 823F0C2
BattleFrontier_BattleTowerLobby_EventScript_23F0D0:: @ 823F0D0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
goto BattleFrontier_BattleTowerLobby_EventScript_23F0E6
end
@@ -736,7 +736,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23F0F3:: @ 823F0F3
special SavePlayerParty
setvar VAR_0x8004, 3
call BattleFrontier_BattleTowerLobby_EventScript_23F272
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_RESULT, 0
BattleFrontier_BattleTowerLobby_EventScript_23F108:: @ 823F108
@@ -924,7 +924,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_23F2B7:: @ 823F2B7
BattleFrontier_BattleTowerLobby_EventScript_23F2B7:: @ 823F2B7
setvar VAR_0x8004, 1
setvar VAR_0x8005, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
return
BattleFrontier_BattleTowerLobby_EventScript_23F2C5:: @ 823F2C5
diff --git a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc
index 10cf3194d..de179850d 100644
--- a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc
+++ b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc
@@ -98,7 +98,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243E9D:: @ 8243E9D
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_241C03
end
diff --git a/data/maps/BattleFrontier_RankingHall/scripts.inc b/data/maps/BattleFrontier_RankingHall/scripts.inc
index e469024e9..9015694eb 100644
--- a/data/maps/BattleFrontier_RankingHall/scripts.inc
+++ b/data/maps/BattleFrontier_RankingHall/scripts.inc
@@ -62,9 +62,9 @@ BattleFrontier_RankingHall_EventScript_25E516:: @ 825E516
end
BattleFrontier_RankingHall_EventScript_25E522:: @ 825E522
- special sub_81A4AA0
+ special ShowRankingHallRecordsWindow
waitbuttonpress
- special sub_81A4AE8
+ special ScrollRankingHallRecordsWindow
waitbuttonpress
special RemoveRecordsWindow
releaseall
diff --git a/data/maps/BattleFrontier_ScottsHouse/scripts.inc b/data/maps/BattleFrontier_ScottsHouse/scripts.inc
index cf7f6a55e..ac7c5eb7a 100644
--- a/data/maps/BattleFrontier_ScottsHouse/scripts.inc
+++ b/data/maps/BattleFrontier_ScottsHouse/scripts.inc
@@ -114,7 +114,7 @@ BattleFrontier_ScottsHouse_EventScript_26381B:: @ 826381B
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 1
setvar VAR_0x8005, 1
special sub_8161F74
@@ -123,7 +123,7 @@ BattleFrontier_ScottsHouse_EventScript_26381B:: @ 826381B
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 1
setvar VAR_0x8005, 1
special sub_8161F74
@@ -157,7 +157,7 @@ BattleFrontier_ScottsHouse_EventScript_2638B4:: @ 82638B4
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 1
setvar VAR_0x8005, 1
special sub_8161F74
@@ -166,7 +166,7 @@ BattleFrontier_ScottsHouse_EventScript_2638B4:: @ 82638B4
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 1
setvar VAR_0x8005, 1
special sub_8161F74
diff --git a/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc b/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc
index 6103a1aaa..6ec39dfd2 100644
--- a/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc
+++ b/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc
@@ -37,7 +37,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_2008E7:: @ 82008E7
waitmovement 0
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, FallarborTown_BattleTentBattleRoom_EventScript_200B73
@@ -71,7 +71,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_20097E:: @ 820097E
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
warp MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6
waitstate
@@ -87,12 +87,12 @@ FallarborTown_BattleTentBattleRoom_EventScript_20099C:: @ 820099C
FallarborTown_BattleTentBattleRoom_EventScript_2009B3:: @ 82009B3
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
addvar VAR_RESULT, 1
setvar VAR_0x8004, 2
setvar VAR_0x8005, 2
copyvar VAR_0x8006, VAR_RESULT
- special sub_81A1780
+ special CallFrontierUtilFunc
switch VAR_RESULT
case 3, FallarborTown_BattleTentBattleRoom_EventScript_200AF3
applymovement 3, FallarborTown_BattleTentBattleRoom_Movement_200B9E
@@ -107,7 +107,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_2009B3:: @ 82009B3
special SavePlayerParty
setvar VAR_0x8004, 3
setvar VAR_0x8005, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
playfanfare MUS_ME_ASA
waitfanfare
special HealPlayerParty
@@ -115,7 +115,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_2009B3:: @ 82009B3
FallarborTown_BattleTentBattleRoom_EventScript_200A2A:: @ 8200A2A
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 1
call_if 1, FallarborTown_BattleTentBattleRoom_EventScript_200B43
compare VAR_RESULT, 2
@@ -156,7 +156,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_200AF3:: @ 8200AF3
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
warp MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6
waitstate
@@ -191,7 +191,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_200B51:: @ 8200B51
waitse
fadescreen 1
setvar VAR_0x8004, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
end
FallarborTown_BattleTentBattleRoom_EventScript_200B73:: @ 8200B73
diff --git a/data/maps/FallarborTown_BattleTentLobby/scripts.inc b/data/maps/FallarborTown_BattleTentLobby/scripts.inc
index daf76cba2..7c75ae4f0 100644
--- a/data/maps/FallarborTown_BattleTentLobby/scripts.inc
+++ b/data/maps/FallarborTown_BattleTentLobby/scripts.inc
@@ -22,7 +22,7 @@ FallarborTown_BattleTentLobby_MapScript2_1FFE85: @ 81FFE85
FallarborTown_BattleTentLobby_EventScript_1FFEAF:: @ 81FFEAF
setvar VAR_0x8004, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
end
FallarborTown_BattleTentLobby_EventScript_1FFEB8:: @ 81FFEB8
@@ -32,12 +32,12 @@ FallarborTown_BattleTentLobby_EventScript_1FFEB8:: @ 81FFEB8
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_0, 255
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
releaseall
end
@@ -51,7 +51,7 @@ FallarborTown_BattleTentLobby_EventScript_1FFEED:: @ 81FFEED
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 3
setvar VAR_0x8005, 0
special sub_81B9B80
@@ -67,7 +67,7 @@ FallarborTown_BattleTentLobby_EventScript_1FFF27:: @ 81FFF27
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
message FallarborTown_BattleTentLobby_Text_2C4F69
waitmessage
playfanfare MUS_FANFA4
@@ -99,7 +99,7 @@ FallarborTown_BattleTentLobby_EventScript_1FFF93:: @ 81FFF93
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 3
setvar VAR_0x8005, 0
special sub_81B9B80
@@ -123,7 +123,7 @@ FallarborTown_BattleTentLobby_EventScript_1FFFCD:: @ 81FFFCD
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_0, 255
goto FallarborTown_BattleTentLobby_EventScript_20013C
@@ -152,13 +152,13 @@ FallarborTown_BattleTentLobby_EventScript_20005D:: @ 820005D
setvar VAR_FRONTIER_BATTLE_MODE, 0
setvar VAR_RESULT, 2
setvar VAR_0x8004, 15
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_0x8004, 1
goto_eq FallarborTown_BattleTentLobby_EventScript_200176
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox FallarborTown_BattleTentLobby_Text_2C4BC8, 4
fadescreen 1
setvar VAR_0x8004, 2
@@ -177,17 +177,17 @@ FallarborTown_BattleTentLobby_EventScript_2000E2:: @ 82000E2
setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 0
special sub_81B9B80
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
closemessage
delay 2
@@ -200,7 +200,7 @@ FallarborTown_BattleTentLobby_EventScript_20013C:: @ 820013C
special SavePlayerParty
setvar VAR_0x8004, 3
setvar VAR_0x8005, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox FallarborTown_BattleTentLobby_Text_2C4DC3, 4
closemessage
call FallarborTown_BattleTentLobby_EventScript_2001CF
@@ -230,7 +230,7 @@ FallarborTown_BattleTentLobby_EventScript_2001AB:: @ 82001AB
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
goto FallarborTown_BattleTentLobby_EventScript_2001C5
FallarborTown_BattleTentLobby_EventScript_2001C2:: @ 82001C2
diff --git a/data/maps/LilycoveCity_ContestLobby/scripts.inc b/data/maps/LilycoveCity_ContestLobby/scripts.inc
index 66775d417..1dfc72bcc 100644
--- a/data/maps/LilycoveCity_ContestLobby/scripts.inc
+++ b/data/maps/LilycoveCity_ContestLobby/scripts.inc
@@ -562,7 +562,7 @@ LilycoveCity_ContestLobby_EventScript_21A784:: @ 821A784
lockall
setvar VAR_0x8004, 7
setvar VAR_0x8005, 7
- special sub_81A1780
+ special CallFrontierUtilFunc
waitbuttonpress
special RemoveRecordsWindow
releaseall
diff --git a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc
index e89406f31..242d1b8d8 100644
--- a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc
+++ b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc
@@ -263,13 +263,13 @@ MossdeepCity_SpaceCenter_2F_EventScript_224032:: @ 8224032
special ReducePlayerPartyToThree
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, SPECIAL_BATTLE_STEVEN
setvar VAR_0x8005, 0
special DoSpecialTrainerBattle
waitstate
setvar VAR_0x8004, 6
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
switch VAR_RESULT
case 1, MossdeepCity_SpaceCenter_2F_EventScript_224071
diff --git a/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc b/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc
index 7321f7662..833abdf99 100644
--- a/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc
+++ b/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc
@@ -66,7 +66,7 @@ SlateportCity_BattleTentCorridor_EventScript_209A1B:: @ 8209A1B
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
warp MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY, 255, 6, 6
waitstate
@@ -74,12 +74,12 @@ SlateportCity_BattleTentCorridor_EventScript_209A1B:: @ 8209A1B
SlateportCity_BattleTentBattleRoom_EventScript_209A39:: @ 8209A39
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
addvar VAR_RESULT, 1
setvar VAR_0x8004, 2
setvar VAR_0x8005, 2
copyvar VAR_0x8006, VAR_RESULT
- special sub_81A1780
+ special CallFrontierUtilFunc
switch VAR_RESULT
case 3, SlateportCity_BattleTentBattleRoom_EventScript_209A7B
@ case 3, SlateportCity_BattleTentCorridor_EventScript_209A7B
@@ -92,7 +92,7 @@ SlateportCity_BattleTentCorridor_EventScript_209A7B:: @ 8209A7B
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
warp MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY, 255, 6, 6
waitstate
diff --git a/data/maps/SlateportCity_BattleTentCorridor/scripts.inc b/data/maps/SlateportCity_BattleTentCorridor/scripts.inc
index 0a9eb6cf5..c2ef5e3da 100644
--- a/data/maps/SlateportCity_BattleTentCorridor/scripts.inc
+++ b/data/maps/SlateportCity_BattleTentCorridor/scripts.inc
@@ -70,7 +70,7 @@ SlateportCity_BattleTentCorridor_EventScript_208EEE:: @ 8208EEE
SlateportCity_BattleTentCorridor_EventScript_208F0D:: @ 8208F0D
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 1
call_if 1, SlateportCity_BattleTentCorridor_EventScript_209014
compare VAR_RESULT, 2
@@ -136,7 +136,7 @@ SlateportCity_BattleTentCorridor_EventScript_209022:: @ 8209022
waitse
fadescreen 1
setvar VAR_0x8004, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
end
SlateportCity_BattleTentCorridor_EventScript_209044:: @ 8209044
diff --git a/data/maps/SlateportCity_BattleTentLobby/scripts.inc b/data/maps/SlateportCity_BattleTentLobby/scripts.inc
index 76b12e31e..2e7886a2e 100644
--- a/data/maps/SlateportCity_BattleTentLobby/scripts.inc
+++ b/data/maps/SlateportCity_BattleTentLobby/scripts.inc
@@ -22,7 +22,7 @@ SlateportCity_BattleTentLobby_MapScript2_20874F: @ 820874F
SlateportCity_BattleTentLobby_EventScript_208779:: @ 8208779
setvar VAR_0x8004, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
end
SlateportCity_BattleTentLobby_EventScript_208782:: @ 8208782
@@ -32,12 +32,12 @@ SlateportCity_BattleTentLobby_EventScript_208782:: @ 8208782
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_0, 255
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
releaseall
end
@@ -50,7 +50,7 @@ SlateportCity_BattleTentLobby_EventScript_2087B7:: @ 82087B7
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 3
setvar VAR_0x8005, 0
special sub_81B9D08
@@ -66,7 +66,7 @@ SlateportCity_BattleTentLobby_EventScript_2087E9:: @ 82087E9
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
message SlateportCity_BattleTentLobby_Text_23F68C
waitmessage
playfanfare MUS_FANFA4
@@ -84,7 +84,7 @@ SlateportCity_BattleTentLobby_EventScript_208837:: @ 8208837
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 3
setvar VAR_0x8005, 0
special sub_81B9D08
@@ -110,7 +110,7 @@ SlateportCity_BattleTentLobby_EventScript_208871:: @ 8208871
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_0, 255
setvar VAR_0x8006, 2
goto SlateportCity_BattleTentLobby_EventScript_2089AC
@@ -141,7 +141,7 @@ SlateportCity_BattleTentLobby_EventScript_208906:: @ 8208906
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox SlateportCity_BattleTentLobby_Text_2C5B06, 5
switch VAR_RESULT
case 0, SlateportCity_BattleTentLobby_EventScript_208A2B
@@ -152,17 +152,17 @@ SlateportCity_BattleTentLobby_EventScript_208950:: @ 8208950
setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 0
special sub_81B9D08
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
closemessage
delay 2
call SlateportCity_BattleTentLobby_EventScript_27134F
@@ -224,7 +224,7 @@ SlateportCity_BattleTentLobby_EventScript_208A14:: @ 8208A14
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
goto SlateportCity_BattleTentLobby_EventScript_208A2E
SlateportCity_BattleTentLobby_EventScript_208A2B:: @ 8208A2B
diff --git a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc
index 36d0edd3a..4bd15c332 100644
--- a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc
+++ b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc
@@ -5,7 +5,7 @@ SootopolisCity_MysteryEventsHouse_1F_MapScripts:: @ 8227953
SootopolisCity_MysteryEventsHouse_1F_MapScript1_22795E: @ 822795E
setvar VAR_0x8004, 16
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
call_if 1, SootopolisCity_MysteryEventsHouse_1F_EventScript_22797D
compare VAR_0x40C0, 0
@@ -75,7 +75,7 @@ SootopolisCity_MysteryEventsHouse_1F_EventScript_227A24:: @ 8227A24
lock
faceplayer
setvar VAR_0x8004, 16
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 1
goto_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_227A4E
compare VAR_TEMP_1, 1
diff --git a/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc b/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc
index 7d30cf2c0..41c8a9502 100644
--- a/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc
+++ b/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc
@@ -36,7 +36,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_202348:: @ 8202348
waitmovement 0
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, VerdanturfTown_BattleTentBattleRoom_EventScript_20243C
@@ -58,7 +58,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_2023AA:: @ 82023AA
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
warp MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6
waitstate
@@ -66,12 +66,12 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_2023AA:: @ 82023AA
VerdanturfTown_BattleTentBattleRoom_EventScript_2023C8:: @ 82023C8
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
addvar VAR_RESULT, 1
setvar VAR_0x8004, 2
setvar VAR_0x8005, 2
copyvar VAR_0x8006, VAR_RESULT
- special sub_81A1780
+ special CallFrontierUtilFunc
switch VAR_RESULT
case 3, VerdanturfTown_BattleTentBattleRoom_EventScript_202501
applymovement 2, VerdanturfTown_BattleTentBattleRoom_Movement_202581
@@ -85,7 +85,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_2023C8:: @ 82023C8
special SavePlayerParty
setvar VAR_0x8004, 3
setvar VAR_0x8005, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
playfanfare MUS_ME_ASA
waitfanfare
special HealPlayerParty
@@ -93,7 +93,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_2023C8:: @ 82023C8
VerdanturfTown_BattleTentBattleRoom_EventScript_20243C:: @ 820243C
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_RESULT, 1
call_if 1, VerdanturfTown_BattleTentBattleRoom_EventScript_202565
compare VAR_RESULT, 2
@@ -131,7 +131,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_202501:: @ 8202501
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
warp MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6
waitstate
@@ -146,7 +146,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_20251F:: @ 820251F
waitse
fadescreen 1
setvar VAR_0x8004, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
end
VerdanturfTown_BattleTentBattleRoom_MapScript2_202541: @ 8202541
diff --git a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc
index a4cfc20c2..0368859c2 100644
--- a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc
+++ b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc
@@ -22,7 +22,7 @@ VerdanturfTown_BattleTentLobby_MapScript2_2016EF: @ 82016EF
VerdanturfTown_BattleTentLobby_EventScript_201719:: @ 8201719
setvar VAR_0x8004, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
end
VerdanturfTown_BattleTentLobby_EventScript_201722:: @ 8201722
@@ -32,12 +32,12 @@ VerdanturfTown_BattleTentLobby_EventScript_201722:: @ 8201722
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_0, 255
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
releaseall
end
@@ -51,7 +51,7 @@ VerdanturfTown_BattleTentLobby_EventScript_201757:: @ 8201757
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 5
setvar VAR_0x8005, 0
special sub_81B99B4
@@ -67,7 +67,7 @@ VerdanturfTown_BattleTentLobby_EventScript_201791:: @ 8201791
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
message VerdanturfTown_BattleTentLobby_Text_24A554
waitmessage
playfanfare MUS_FANFA4
@@ -99,7 +99,7 @@ VerdanturfTown_BattleTentLobby_EventScript_2017FD:: @ 82017FD
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 5
setvar VAR_0x8005, 0
special sub_81B99B4
@@ -124,7 +124,7 @@ VerdanturfTown_BattleTentLobby_EventScript_201837:: @ 8201837
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_TEMP_0, 255
goto VerdanturfTown_BattleTentLobby_EventScript_2019AE
@@ -153,13 +153,13 @@ VerdanturfTown_BattleTentLobby_EventScript_2018CF:: @ 82018CF
setvar VAR_FRONTIER_BATTLE_MODE, 0
setvar VAR_RESULT, 2
setvar VAR_0x8004, 15
- special sub_81A1780
+ special CallFrontierUtilFunc
compare VAR_0x8004, 1
goto_eq VerdanturfTown_BattleTentLobby_EventScript_2019E8
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 2
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox VerdanturfTown_BattleTentLobby_Text_2C5633, 4
fadescreen 1
setvar VAR_0x8004, 1
@@ -178,17 +178,17 @@ VerdanturfTown_BattleTentLobby_EventScript_201954:: @ 8201954
setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 0
special sub_81B99B4
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 1
- special sub_81A1780
+ special CallFrontierUtilFunc
setvar VAR_0x8004, 2
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
special LoadPlayerParty
closemessage
delay 2
@@ -201,7 +201,7 @@ VerdanturfTown_BattleTentLobby_EventScript_2019AE:: @ 82019AE
special SavePlayerParty
setvar VAR_0x8004, 3
setvar VAR_0x8005, 3
- special sub_81A1780
+ special CallFrontierUtilFunc
msgbox VerdanturfTown_BattleTentLobby_Text_2C56A2, 4
closemessage
call VerdanturfTown_BattleTentLobby_EventScript_201A41
@@ -231,7 +231,7 @@ VerdanturfTown_BattleTentLobby_EventScript_201A1D:: @ 8201A1D
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_81A1780
+ special CallFrontierUtilFunc
goto VerdanturfTown_BattleTentLobby_EventScript_201A37
VerdanturfTown_BattleTentLobby_EventScript_201A34:: @ 8201A34
diff --git a/data/specials.inc b/data/specials.inc
index 08e12e5e0..5c1653d49 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -242,7 +242,7 @@ gSpecials:: @ 81DBA64
def_special FinishCyclingRoadChallenge
def_special UpdateCyclingRoadState
def_special GetLeadMonFriendshipScore
- def_special sub_81A1780
+ def_special CallFrontierUtilFunc
def_special sub_8161F74
def_special CallBattleDomeFunction
def_special sub_8195960
@@ -448,8 +448,8 @@ gSpecials:: @ 81DBA64
def_special sub_80F90DC
def_special sub_80F910C
def_special sub_80F9160
- def_special sub_81A4AA0
- def_special sub_81A4AE8
+ def_special ShowRankingHallRecordsWindow
+ def_special ScrollRankingHallRecordsWindow
def_special sub_8139F20
def_special sub_80F9134
def_special sub_80F9154
diff --git a/include/apprentice.h b/include/apprentice.h
index ca0b04800..195106c53 100644
--- a/include/apprentice.h
+++ b/include/apprentice.h
@@ -9,7 +9,8 @@ struct ApprenticeTrainer
u16 otId;
u8 facilityClass;
u16 species[APPRENTICE_SPECIES_COUNT];
- u8 rest[14];
+ u8 id;
+ u16 easyChatWords[6];
};
extern const struct ApprenticeTrainer gApprentices[];
diff --git a/include/battle_dome.h b/include/battle_dome.h
index d05b08689..2265f14ce 100644
--- a/include/battle_dome.h
+++ b/include/battle_dome.h
@@ -3,7 +3,7 @@
extern u32 gUnknown_0203CD70;
-s32 GetTrainerMonCountInBits(u16 tournamentTrainerId);
+s32 GetDomeTrainerMonCountInBits(u16 tournamentTrainerId);
s32 TrainerIdToDomeTournamentId(u16 trainerId);
#endif // GUARD_BATTLE_DOME_H
diff --git a/include/battle_frontier_1.h b/include/battle_frontier_1.h
deleted file mode 100644
index bc777914a..000000000
--- a/include/battle_frontier_1.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef GUARD_BATTLE_FRONTIER_1_H
-#define GUARD_BATTLE_FRONTIER_1_H
-
-bool32 sub_8196034(void);
-
-#endif // GUARD_BATTLE_FRONTIER_1_H
diff --git a/include/battle_frontier_2.h b/include/battle_frontier_2.h
deleted file mode 100644
index 3bd605829..000000000
--- a/include/battle_frontier_2.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef GUARD_BATTLE_FRONTIER_2_H
-#define GUARD_BATTLE_FRONTIER_2_H
-
-#define FRONTIER_BEFORE_TEXT 0
-#define FRONTIER_WIN_TEXT 1
-#define FRONTIER_LOSE_TEXT 2
-
-void CopyFrontierTrainerText(u8 whichText, u16 trainerId);
-void sub_81A8934(u8);
-void sub_81A895C(void);
-u16 sub_81A89A0(u8);
-void sub_81A8AF8(void);
-bool8 InBattlePike(void);
-void sub_81AA078(u16*, u8);
-void sub_81A4C30(void);
-bool8 sub_81A6BF4(void);
-u8 sub_81A6CA8(u8, u8);
-
-#endif // GUARD_BATTLE_FRONTIER_2_H
diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h
index 204a09f60..b5ad4f072 100644
--- a/include/constants/battle_frontier.h
+++ b/include/constants/battle_frontier.h
@@ -38,4 +38,7 @@
#define SPECIAL_BATTLE_PIKE_DOUBLE 9
#define SPECIAL_BATTLE_PYRAMID 10
+// For 'ShowFacilityResultsWindow' function which is a part of the 'CallFrontierUtilFunc' special.
+#define RESULTS_LINK_CONTEST 7
+
#endif // GUARD_CONSTANTS_BATTLE_FRONTIER_H
diff --git a/include/field_specials.h b/include/field_specials.h
index 0e2daf9c3..50823ba7d 100644
--- a/include/field_specials.h
+++ b/include/field_specials.h
@@ -15,5 +15,6 @@ bool32 sub_8138168(void);
bool32 sub_81381B0(void);
bool32 sub_81381F8(void);
bool32 CountSSTidalStep(u16 delta);
+void sub_813A878(u8 a0);
#endif // GUARD_FIELD_SPECIALS_H
diff --git a/include/frontier_util.h b/include/frontier_util.h
new file mode 100644
index 000000000..cfc3a8af4
--- /dev/null
+++ b/include/frontier_util.h
@@ -0,0 +1,31 @@
+#ifndef GUARD_FRONTIER_UTIL_H
+#define GUARD_FRONTIER_UTIL_H
+
+#define FRONTIER_BEFORE_TEXT 0
+#define FRONTIER_PLAYER_LOST_TEXT 1
+#define FRONTIER_PLAYER_WON_TEXT 2
+
+void CallFrontierUtilFunc(void);
+u8 sub_81A3610(void);
+void CopyFrontierTrainerText(u8 whichText, u16 trainerId);
+void sub_81A3908(void);
+u32 GetCurrentFacilityWinStreak(void);
+void sub_81A3ACC(void);
+u8 GetPlayerSymbolCountForFacility(u8 facility);
+void ShowRankingHallRecordsWindow(void);
+void ScrollRankingHallRecordsWindow(void);
+void ClearRankingHallRecords(void);
+u8 GetFrontierBrainTrainerPicIndex(void);
+u8 GetFrontierBrainTrainerClass(void);
+void CopyFrontierBrainTrainerName(u8 *dst);
+bool8 IsFrontierBrainFemale(void);
+void SetFrontierBrainEventObjGfx_2(void);
+void CreateFrontierBrainPokemon(void);
+u16 GetFrontierBrainMonSpecies(u8 monId);
+void SetFrontierBrainEventObjGfx(u8 facility);
+u16 GetFrontierBrainMonMove(u8 monId, u8 moveSlotId);
+u8 GetFrontierBrainMonNature(u8 monId);
+u8 GetFrontierBrainMonEvs(u8 monId, u8 evStatId);
+s32 GetFronterBrainSymbol(void);
+
+#endif // GUARD_FRONTIER_UTIL_H
diff --git a/include/global.h b/include/global.h
index 0cff281e7..c2b139e7a 100644
--- a/include/global.h
+++ b/include/global.h
@@ -137,6 +137,7 @@ enum LanguageId
#define BAG_BERRIES_COUNT 46
#define PYRAMID_BAG_ITEMS_COUNT 10
+#define HALL_FACILITIES_COUNT 9 // 7 facilities for single mode + tower double mode + tower multi mode.
// string lengths
#define ITEM_NAME_LENGTH 14
@@ -331,8 +332,8 @@ struct EmeraldBattleTowerRecord
/*0x04*/ u8 name[PLAYER_NAME_LENGTH + 1];
/*0x0C*/ u8 trainerId[4];
/*0x10*/ u16 greeting[6];
- /*0x1C*/ u16 unk1C[6];
- /*0x28*/ u16 unk28[6];
+ /*0x1C*/ u16 speechWon[6];
+ /*0x28*/ u16 speechLost[6];
/*0x34*/ struct UnknownPokemonStruct party[4];
/*0xE4*/ u8 language;
/*0xE8*/ u32 checksum;
@@ -400,14 +401,11 @@ struct BattleFrontier
/*0xCB2*/ u16 curChallengeBattleNum; // In case of battle pyramid, the floor.
/*0xCB4*/ u16 field_CB4[20];
/*0xCDC*/ u32 field_CDC;
- /*0xCE0*/ u16 winStreaks[4][2];
- /*0xCF0*/ u16 field_CF0[2];
- /*0xCF4*/ u16 field_CF4[2];
- /*0xCF8*/ u16 field_CF8[2];
- /*0xCFC*/ u16 field_CFC[2];
- /*0xD06*/ u16 field_D00;
- /*0xD06*/ u16 field_D02;
- /*0xD06*/ u16 field_D04;
+ /*0xCE0*/ u16 towerWinStreaks[4][2];
+ /*0xCF0*/ u16 towerRecordWinStreaks[4][2];
+ /*0xD00*/ u16 field_D00;
+ /*0xD02*/ u16 field_D02;
+ /*0xD04*/ u16 field_D04;
/*0xD06*/ u8 field_D06;
/*0xD07*/ u8 field_D07;
/*0xD08*/ u8 field_D08_0:1;
@@ -421,43 +419,37 @@ struct BattleFrontier
/*0xD09*/ u8 filler_D09;
/*0xD0A*/ u8 field_D0A;
/*0xD0B*/ u8 field_D0B;
- /*0xD0C*/ u16 field_D0C[2][2];
- /*0xD14*/ u16 field_D14[2][2];
- /*0xD1C*/ u16 field_D1C[2][2];
+ /*0xD0C*/ u16 domeWinStreaks[2][2];
+ /*0xD14*/ u16 domeRecordWinStreaks[2][2];
+ /*0xD1C*/ u16 domeTotalChampionships[2][2];
/*0xD24*/ struct BattleDomeTrainer domeTrainers[DOME_TOURNAMENT_TRAINERS_COUNT];
- /*0xD64*/ u16 domeMonId[DOME_TOURNAMENT_TRAINERS_COUNT][3];
+ /*0xD64*/ u16 domeMonIds[DOME_TOURNAMENT_TRAINERS_COUNT][3];
/*0xD64*/ u16 field_DC4[2];
- /*0xDC8*/ u16 field_DC8[2][2];
- /*0xDD0*/ u16 field_DD0[2][2];
+ /*0xDC8*/ u16 palaceWinStreaks[2][2];
+ /*0xDD0*/ u16 palaceRecordWinStreaks[2][2];
/*0xDD8*/ u16 field_DD8;
- /*0xDDA*/ u16 field_DDA[2];
- /*0xDDE*/ u16 field_DDE[2];
- /*0xDE2*/ u16 field_DE2[2][2];
- /*0xDEA*/ u16 field_DEA[2];
- /*0xDEE*/ u16 field_DEE;
- /*0xDF0*/ u16 field_DF0;
- /*0xDF2*/ u16 field_DF2;
- /*0xDF4*/ u16 field_DF4;
- /*0xDF6*/ u16 field_DF6;
- /*0xDF8*/ u16 field_DF8;
- /*0xDFA*/ u16 field_DFA;
- /*0xDFC*/ u16 field_DFC;
- /*0xDFE*/ u16 field_DFE;
- /*0xE00*/ u16 field_E00;
+ /*0xDDA*/ u16 arenaWinStreaks[2];
+ /*0xDDE*/ u16 arenaRecordStreaks[2];
+ /*0xDE2*/ u16 factoryWinStreaks[2][2];
+ /*0xDEA*/ u16 factoryRecordWinStreaks[2][2];
+ /*0xDF6*/ u16 factoryRentsCount[2][2];
+ /*0xDFA*/ u16 factoryRecordRentsCount[2][2];
/*0xE02*/ u16 field_E02;
- /*0xE04*/ u16 field_E04[2];
- /*0xE08*/ u16 field_E08[9];
- /*0xE1A*/ u16 field_E1A[2];
- /*0xE1E*/ u16 field_E1E[7];
+ /*0xE04*/ u16 pikeWinStreaks[2];
+ /*0xE08*/ u16 pikeRecordStreaks[2];
+ /*0xE0C*/ u16 pikeTotalStreaks[2];
+ /*0xE10*/ u16 field_E10[5];
+ /*0xE1A*/ u16 pyramidWinStreaks[2];
+ /*0xE1E*/ u16 pyramidRecordStreaks[2];
+ /*0xE1E*/ u16 field_E1F[5];
/*0xE2C*/ struct PyramidBag pyramidBag;
/*0xE58*/ u16 field_E58;
/*0xE6A*/ u16 field_E6A;
/*0xE6C*/ u16 field_E6C;
/*0xE6E*/ u16 field_E6E;
/*0xE70*/ struct Struct_field_E70 field_E70[6];
- /*0xEB8*/ u16 frontierBattlePoints;
- /*0xEBA*/ u8 field_EBA;
- /*0xEBB*/ u8 field_EBB;
+ /*0xEB8*/ u16 battlePoints;
+ /*0xEBA*/ u16 field_EBA;
/*0xEBC*/ u32 battlesCount;
/*0xEC0*/ u16 field_EC0[16];
/*0xEE0*/ u8 field_EE0;
@@ -491,6 +483,24 @@ struct PlayersApprentice
/*0xB8*/ struct Sav2_B8 field_B8[9];
};
+struct RankingHall1P
+{
+ u8 id[4];
+ u16 winStreak;
+ u8 name[PLAYER_NAME_LENGTH + 1];
+ u8 language;
+};
+
+struct RankingHall2P
+{
+ u8 id1[4];
+ u8 id2[4];
+ u16 winStreak;
+ u8 name1[PLAYER_NAME_LENGTH + 1];
+ u8 name2[PLAYER_NAME_LENGTH + 1];
+ u8 language;
+};
+
struct SaveBlock2
{
/*0x00*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
@@ -515,12 +525,13 @@ struct SaveBlock2
/*0xA8*/ u32 field_A8;
/*0xAC*/ u32 encryptionKey;
/*0xB0*/ struct PlayersApprentice playerApprentice;
- /*0xDC*/ struct Apprentice apprentices[4];
+ /*0xDC*/ struct Apprentice apprentices[4]; // From record mixing.
/*0x1EC*/ struct BerryCrush berryCrush;
/*0x1FC*/ struct PokemonJumpResults pokeJump;
/*0x20C*/ struct BerryPickingResults berryPick;
- /*0x21C*/ u8 field_21C[1032];
- /*0x624*/ u16 contestLinkResults[20]; // 4 positions for 5 categories, possibly a struct or a 2d array
+ /*0x21C*/ struct RankingHall1P hallRecords1P[HALL_FACILITIES_COUNT][2][3]; // From record mixing.
+ /*0x57C*/ struct RankingHall2P hallRecords2P[2][3]; // From record mixing.
+ /*0x624*/ u16 contestLinkResults[5][4]; // 4 positions for 5 categories.
/*0x64C*/ struct BattleFrontier frontier;
}; // sizeof=0xF2C
diff --git a/include/menu.h b/include/menu.h
index bc62eddf6..842f33c0b 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -26,7 +26,6 @@ u16 RunTextPrintersAndIsPrinter0Active(void);
void sub_81973A4(void);
void NewMenuHelpers_DrawDialogueFrame(u8, u8);
void sub_819746C(u8 windowId, bool8 copyToVram);
-void NewMenuHelpers_DrawStdWindowFrame(u8, u8);
u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 fgColor, u8 bgColor, u8 shadowColor);
void PrintPlayerNameOnWindow(u8, const u8*, u16, u16);
void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback);
diff --git a/include/new_game.h b/include/new_game.h
index 7e1169ec3..7032647ea 100644
--- a/include/new_game.h
+++ b/include/new_game.h
@@ -1,9 +1,9 @@
#ifndef GUARD_NEW_GAME_H
#define GUARD_NEW_GAME_H
-void WriteUnalignedWord(u32 var, u8 *dataPtr);
-u32 ReadUnalignedWord(u8* dataPtr);
-void CopyUnalignedWord(u8 *copyTo, u8 *copyFrom);
+void SetTrainerId(u32 trainerId, u8 *dst);
+u32 GetTrainerId(u8 *trainerId);
+void CopyTrainerId(u8 *dst, u8 *src);
void NewGameInitData(void);
void sub_808447C(void);
void Sav2_ClearSetDefault(void);
diff --git a/include/record_mixing.h b/include/record_mixing.h
index f1b74c143..0d50f46f9 100644
--- a/include/record_mixing.h
+++ b/include/record_mixing.h
@@ -1,35 +1,13 @@
#ifndef GUARD_RECORD_MIXING_H
#define GUARD_RECORD_MIXING_H
-// Exported type declarations
-struct UnkRecordMixingStruct2a
+struct PlayerHallRecords
{
- u8 playerId[4];
- u16 field_4;
- u8 playerName[PLAYER_NAME_LENGTH + 1];
- u8 language;
+ struct RankingHall1P onePlayer[9][2];
+ struct RankingHall2P twoPlayers[2];
};
-struct UnkRecordMixingStruct2b
-{
- u8 playerId1[4];
- u8 playerId2[4];
- u16 field_8;
- u8 playerName1[PLAYER_NAME_LENGTH + 1];
- u8 playerName2[PLAYER_NAME_LENGTH + 1];
- u8 language;
-};
-
-struct UnkRecordMixingStruct2
-{
- struct UnkRecordMixingStruct2a field_0[9][2];
- struct UnkRecordMixingStruct2b field_120[2];
-};
-
-// Exported RAM declarations
-
-// Exported ROM declarations
void sub_80E6BE8(void);
-void sub_80E8260(struct UnkRecordMixingStruct2 *arg0);
+void GetPlayerHallRecords(struct PlayerHallRecords *dst);
#endif //GUARD_RECORD_MIXING_H
diff --git a/include/recorded_battle.h b/include/recorded_battle.h
index 81c88a15e..84c5c2ea2 100644
--- a/include/recorded_battle.h
+++ b/include/recorded_battle.h
@@ -14,16 +14,16 @@ u8 sub_81850D0(void);
u8 sub_81850DC(u8 *arg0);
void sub_81851A8(u8 *arg0);
bool32 CanCopyRecordedBattleSaveData(void);
-u32 MoveRecordedBattleToSaveData(void);
+bool32 MoveRecordedBattleToSaveData(void);
void PlayRecordedBattle(void (*CB2_After)(void));
u8 GetRecordedBattleFrontierFacility(void);
-u8 sub_8185EAC(void);
+u8 GetRecordedBattleFronterBrainSymbol(void);
void RecordedBattle_SaveParties(void);
u8 GetActiveBattlerLinkPlayerGender(void);
void sub_8185F84(void);
void sub_8185F90(u16 arg0);
u8 sub_8185FAC(void);
-u8 GetBattleStyleInRecordedBattle(void);
+u8 GetBattleSceneInRecordedBattle(void);
u8 GetTextSpeedInRecordedBattle(void);
void RecordedBattle_CopyBattlerMoves(void);
void sub_818603C(u8 arg0);
@@ -31,11 +31,11 @@ u32 GetAiScriptsInRecordedBattle(void);
void sub_8186444(void);
bool8 sub_8186450(void);
void sub_8186468(u8 *dst);
-u8 sub_818649C(void);
-u8 sub_81864A8(void);
-u8 sub_81864B4(void);
-u8 sub_81864C0(void);
-void sub_81864CC(void);
-u16 *sub_81864E0(void);
+u8 GetRecordedBattleRecordMixFriendClass(void);
+u8 GetRecordedBattleApprenticeId(void);
+u8 GetRecordedBattleRecordMixFriendLanguage(void);
+u8 GetRecordedBattleApprenticeLanguage(void);
+void RecordedBattle_SaveBattleOutcome(void);
+u16 *GetRecordedBattleEasyChatSpeech(void);
#endif // GUARD_RECORDED_BATTLE_H
diff --git a/include/save.h b/include/save.h
index a87e31e99..a5f014904 100644
--- a/include/save.h
+++ b/include/save.h
@@ -94,7 +94,7 @@ u16 CalculateChecksum(void *data, u16 size);
void UpdateSaveAddresses(void);
u8 HandleSavingData(u8 saveType);
u8 TrySavingData(u8 saveType);
-u8 sub_8153380(void);
+bool8 sub_8153380(void);
bool8 sub_81533AC(void);
u8 sub_81533E0(void);
u8 sub_8153408(void);
diff --git a/include/strings.h b/include/strings.h
index c563353ec..9338ae624 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -877,4 +877,47 @@ extern const u8 gText_PokemonOnHook[];
extern const u8 gText_NotEvenANibble[];
extern const u8 gText_ItGotAway[];
+// Frontier records.
+extern const u8 gText_WinStreak[];
+extern const u8 gText_Record[];
+extern const u8 gText_Current[];
+extern const u8 gText_RoomsCleared[];
+extern const u8 gText_Prev[];
+extern const u8 gText_SingleBattleRoomResults[];
+extern const u8 gText_DoubleBattleRoomResults[];
+extern const u8 gText_MultiBattleRoomResults[];
+extern const u8 gText_LinkMultiBattleRoomResults[];
+extern const u8 gText_Lv502[];
+extern const u8 gText_OpenLv[];
+extern const u8 gText_RentalSwap[];
+extern const u8 gText_ClearStreak[];
+extern const u8 gText_Total[];
+extern const u8 gText_Championships[];
+extern const u8 gText_SingleBattleTourneyResults[];
+extern const u8 gText_DoubleBattleTourneyResults[];
+extern const u8 gText_SingleBattleHallResults[];
+extern const u8 gText_DoubleBattleHallResults[];
+extern const u8 gText_BattleChoiceResults[];
+extern const u8 gText_TimesCleared[];
+extern const u8 gText_KOsInARow[];
+extern const u8 gText_SetKOTourneyResults[];
+extern const u8 gText_TimesVar1[];
+extern const u8 gText_BattleSwapSingleResults[];
+extern const u8 gText_BattleSwapDoubleResults[];
+extern const u8 gText_FloorsCleared[];
+extern const u8 gText_BattleQuestResults[];
+extern const u8 gText_LinkContestResults[];
+extern const u8 gText_4th[];
+extern const u8 gText_3rd[];
+extern const u8 gText_2nd[];
+extern const u8 gText_1st[];
+extern const u8 gText_SpaceAndSpace[];
+extern const u8 gText_CommaSpace[];
+extern const u8 gText_NewLine[];
+extern const u8 gText_ScrollTextUp[];
+extern const u8 gText_Space2[];
+extern const u8 gText_Are[];
+extern const u8 gText_Are2[];
+extern const u8 gText_123Dot[][3];
+
#endif //GUARD_STRINGS_H
diff --git a/include/tv.h b/include/tv.h
index 4f1d7730f..5528bada7 100644
--- a/include/tv.h
+++ b/include/tv.h
@@ -51,5 +51,7 @@ void BravoTrainerPokemonProfile_BeforeInterview1(u16 move);
void UpdateTVScreensOnMap(int, int);
void TV_PrintIntToStringVar(u8 varIdx, int value);
void SaveRecordedItemPurchasesForTVShow(void);
+bool8 sub_80EE818(void);
+void sub_80EE8C8(u16 winStreak, u8 facilityAndMode);
#endif //GUARD_TV_H
diff --git a/ld_script.txt b/ld_script.txt
index dad5b79cc..ae0e53e04 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -264,6 +264,7 @@ SECTIONS {
src/menu.o(.text);
src/battle_factory.o(.text);
src/apprentice.o(.text);
+ src/frontier_util.o(.text);
asm/battle_frontier_2.o(.text);
src/item_menu.o(.text);
src/list_menu.o(.text);
@@ -567,6 +568,7 @@ SECTIONS {
src/menu.o(.rodata);
src/battle_factory.o(.rodata);
src/apprentice.o(.rodata);
+ src/frontier_util.o(.rodata);
data/battle_frontier_2.o(.rodata);
src/item_menu.o(.rodata);
src/list_menu.o(.rodata);
diff --git a/src/apprentice.c b/src/apprentice.c
index 065d9cf16..2feac49a7 100644
--- a/src/apprentice.c
+++ b/src/apprentice.c
@@ -388,112 +388,128 @@ const struct ApprenticeTrainer gApprentices[] =
.otId = 0xBDC9,
.facilityClass = 0x43,
.species = {SPECIES_BEAUTIFLY, SPECIES_DUSTOX, SPECIES_ILLUMISE, SPECIES_SHIFTRY, SPECIES_BRELOOM, SPECIES_NINJASK, SPECIES_SHEDINJA, SPECIES_PINSIR, SPECIES_HERACROSS, SPECIES_VOLBEAT},
- .rest = {0, 0, 0x1D, 8, 0x3e, 20, 0, 12, 1, 10, 0x30, 6, 0x44, 20},
+ .id = 0,
+ .easyChatWords = {0x81D, 0x143E, 0xC00, 0xA01, 0x630, 0x1444},
},
{
.name = {_("ヒロオ"), _("LIONEL"), _("LIONEL"), _("CAIO"), _("LUDWIG"), _("LEO")},
.otId = 0xCF09,
.facilityClass = 0x2B,
.species = {SPECIES_SWELLOW, SPECIES_SWALOT, SPECIES_SHUCKLE, SPECIES_MANECTRIC, SPECIES_TORKOAL, SPECIES_HARIYAMA, SPECIES_MIGHTYENA, SPECIES_LUDICOLO, SPECIES_CRAWDAUNT, SPECIES_WHISCASH},
- .rest = {1, 0, 0x38, 12, 1, 10, 0x30, 6, 6, 10, 0x20, 0x10, 0x13, 0x22},
+ .id = 1,
+ .easyChatWords = {0xC38, 0xA01, 0x630, 0xA06, 0x1020, 0x2213},
},
{
.name = {_("ケイジ"), _("SONNY"), _("HERVE"), _("FEDRO"), _("WENZEL"), _("SANTI")},
.otId = 0x2E34,
.facilityClass = 0x26,
.species = {SPECIES_LINOONE, SPECIES_MIGHTYENA, SPECIES_WHISCASH, SPECIES_ZANGOOSE, SPECIES_SEVIPER, SPECIES_NINETALES, SPECIES_KECLEON, SPECIES_SHUCKLE, SPECIES_MANECTRIC, SPECIES_MACHAMP},
- .rest = {2, 0, 1, 10, 10, 0x16, 0x15, 14, 0x30, 6, 0x3b, 12, 0x4, 12},
+ .id = 2,
+ .easyChatWords = {0xA01, 0x160A, 0xE15, 0x630, 0xC3B, 0xC04},
},
{
.name = {_("ユラ"), _("LAYLA"), _("LAYLA"), _("ASTRID"), _("SONJA"), _("LOLA")},
.otId = 0x84EF,
.facilityClass = 0x47,
.species = {SPECIES_SWALOT, SPECIES_XATU, SPECIES_ALTARIA, SPECIES_GOLDUCK, SPECIES_FLYGON, SPECIES_ALAKAZAM, SPECIES_GARDEVOIR, SPECIES_WAILORD, SPECIES_GRUMPIG, SPECIES_MIGHTYENA},
- .rest = {3, 0, 11, 16, 15, 0x1e, 0x39, 16, 0x21, 0x14, 0x3, 12, 0xff, 0xff},
+ .id = 3,
+ .easyChatWords = {0x100B, 0x1E0F, 0x1039, 0x1421, 0xC03, 0xFFFF},
},
{
.name = {_("ヨウカ"), _("MACY"), _("AMELIE"), _("CLEO"), _("MARIA"), _("ELISA")},
.otId = 0x1E43,
.facilityClass = 0x27,
.species = {SPECIES_WIGGLYTUFF, SPECIES_LINOONE, SPECIES_KINGDRA, SPECIES_DELCATTY, SPECIES_RAICHU, SPECIES_FEAROW, SPECIES_STARMIE, SPECIES_MEDICHAM, SPECIES_SHIFTRY, SPECIES_BEAUTIFLY},
- .rest = {4, 0, 15, 0x1e, 0x14, 16, 6, 16, 15, 0x28, 0x1c, 0x1c, 0x13, 0x1c},
+ .id = 4,
+ .easyChatWords = {0x1E0F, 0x1014, 0x1006, 0x280F, 0x1C1C, 0x1C13},
},
{
.name = {_("ヤスシ"), _("DONTE"), _("BRAHIM"), _("GLAUCO"), _("JOSEF"), _("ROQUE")},
.otId = 0x379F,
.facilityClass = 0x30,
.species = {SPECIES_STARMIE, SPECIES_DODRIO, SPECIES_AGGRON, SPECIES_MAGNETON, SPECIES_MACHAMP, SPECIES_ARMALDO, SPECIES_HERACROSS, SPECIES_NOSEPASS, SPECIES_EXPLOUD, SPECIES_MIGHTYENA},
- .rest = {5, 0, 0x29, 0x0A, 0x08, 0x14, 0x2F, 0x10, 0x38, 0x16, 0x20, 0x08, 0x00, 0x0C},
+ .id = 5,
+ .easyChatWords = {0xA29, 0x1408, 0x102F, 0x1638, 0x820, 0xC00},
},
{
.name = {_("ミサオ"), _("AMIRA"), _("LAURE"), _("DAFNE"), _("AMELIE"), _("LARA")},
.otId = 0xF555,
.facilityClass = 0x31,
.species = {SPECIES_STARMIE, SPECIES_DODRIO, SPECIES_MAGNETON, SPECIES_MEDICHAM, SPECIES_MIGHTYENA, SPECIES_GLALIE, SPECIES_GOLEM, SPECIES_ELECTRODE, SPECIES_PELIPPER, SPECIES_SHARPEDO},
- .rest = {6, 0, 0x0B, 0x0C, 0x3E, 0x12, 0x00, 0x0C, 0x31, 0x0A, 0x30, 0x14, 0x00, 0x0C},
+ .id = 6,
+ .easyChatWords = {0xC0B, 0x123E, 0xC00, 0xA31, 0x1430, 0xC00},
},
{
.name = {_("カズサ"), _("KALI"), _("JODIE"), _("ILENIA"), _("KARO"), _("ELSA")},
.otId = 0x8D26,
.facilityClass = 0x14,
.species = {SPECIES_NINETALES, SPECIES_ALAKAZAM, SPECIES_SCEPTILE, SPECIES_SALAMENCE, SPECIES_GOLDUCK, SPECIES_MAWILE, SPECIES_WEEZING, SPECIES_LANTURN, SPECIES_GARDEVOIR, SPECIES_MILOTIC},
- .rest = {7, 0, 0x06, 0x0A, 0x20, 0x06, 0x1F, 0x0A, 0x02, 0x0A, 0x03, 0x0C, 0xFF, 0xFF},
+ .id = 7,
+ .easyChatWords = {0xA06, 0x620, 0xA1F, 0xA02, 0xC03, 0xFFFF},
},
{
.name = {_("スミレ"), _("ANNIE"), _("ANNIE"), _("IMELDA"), _("INES"), _("ROSA")},
.otId = 0x800C,
.facilityClass = 0xD,
.species = {SPECIES_SCEPTILE, SPECIES_VILEPLUME, SPECIES_BELLOSSOM, SPECIES_ROSELIA, SPECIES_CORSOLA, SPECIES_FLYGON, SPECIES_BRELOOM, SPECIES_MILOTIC, SPECIES_ALTARIA, SPECIES_CRADILY},
- .rest = {8, 0, 0x22, 0x1E, 0x33, 0x04, 0x0E, 0x02, 0x02, 0x0A, 0x1E, 0x10, 0x00, 0x0C},
+ .id = 8,
+ .easyChatWords = {0x1E22, 0x433, 0x20E, 0xA02, 0x101E, 0xC00},
},
{
.name = {_("アキノリ"), _("DILLEN"), _("RENE"), _("INDRO"), _("DETLEF"), _("PEDRO")},
.otId = 0x469f,
.facilityClass = 0,
.species = {SPECIES_SKARMORY, SPECIES_GOLEM, SPECIES_BLAZIKEN, SPECIES_CAMERUPT, SPECIES_DONPHAN, SPECIES_MUK, SPECIES_SALAMENCE, SPECIES_TROPIUS, SPECIES_SOLROCK, SPECIES_RHYDON},
- .rest = {9, 0, 0x3D, 0x0A, 0x11, 0x10, 0x1E, 0x0E, 0x1C, 0x20, 0x04, 0x0C, 0xFF, 0xFF},
+ .id = 9,
+ .easyChatWords = {0xA3D, 0x1011, 0xE1E, 0x201C, 0xC04, 0xFFFF},
},
{
.name = {_("トウゾウ"), _("DALLAS"), _("BRUNO"), _("LEARCO"), _("ANSGAR"), _("MANOLO")},
.otId = 0x71FC,
.facilityClass = 0x2D,
.species = {SPECIES_SEAKING, SPECIES_STARMIE, SPECIES_GOLDUCK, SPECIES_TENTACRUEL, SPECIES_OCTILLERY, SPECIES_GOREBYSS, SPECIES_GLALIE, SPECIES_WAILORD, SPECIES_SHARPEDO, SPECIES_KINGDRA},
- .rest = {10, 0, 0x05, 0x0A, 0x06, 0x06, 0x0E, 0x16, 0x14, 0x0A, 0x00, 0x0C, 0xFF, 0xFF},
+ .id = 10,
+ .easyChatWords = {0xA05, 0x606, 0x160E, 0xA14, 0xC00, 0xFFFF},
},
{
.name = {_("セイヤ"), _("FRANK"), _("FRANK"), _("OLINDO"), _("FRANK"), _("MAURO")},
.otId = 0xA39E,
.facilityClass = 0x3A,
.species = {SPECIES_QUAGSIRE, SPECIES_STARMIE, SPECIES_PELIPPER, SPECIES_CRAWDAUNT, SPECIES_WAILORD, SPECIES_GYARADOS, SPECIES_SWAMPERT, SPECIES_LANTURN, SPECIES_WHISCASH, SPECIES_SHUCKLE},
- .rest = {11, 0, 0x0E, 0x28, 0x3D, 0x10, 0x0F, 0x24, 0x14, 0x0A, 0x23, 0x1E, 0x24, 0x10},
+ .id = 11,
+ .easyChatWords = {0x280E, 0x103D, 0x240F, 0xA14, 0x1E23, 0x1024},
},
{
.name = {_("リュウジ"), _("LAMONT"), _("XAV"), _("ORFEO"), _("JÜRGEN"), _("JORGE")},
.otId = 0xE590,
.facilityClass = 0x19,
.species = {SPECIES_ABSOL, SPECIES_CROBAT, SPECIES_EXPLOUD, SPECIES_MAGNETON, SPECIES_SHARPEDO, SPECIES_MANECTRIC, SPECIES_METAGROSS, SPECIES_ELECTRODE, SPECIES_NOSEPASS, SPECIES_WEEZING},
- .rest = {12, 0, 0x20, 0x10, 0x2E, 0x06, 0x0B, 0x10, 0x22, 0x1E, 0x0F, 0x1E, 0x0B, 0x10},
+ .id = 12,
+ .easyChatWords = {0x1020, 0x62E, 0x100B, 0x1E22, 0x1E0F, 0x100B},
},
{
.name = {_("カツアキ"), _("TYRESE"), _("ANDY"), _("PARIDE"), _("DAVID"), _("CHICHO")},
.otId = 0xD018,
.facilityClass = 10,
.species = {SPECIES_BLAZIKEN, SPECIES_GOLEM, SPECIES_MACHAMP, SPECIES_RHYDON, SPECIES_HARIYAMA, SPECIES_AGGRON, SPECIES_MEDICHAM, SPECIES_ZANGOOSE, SPECIES_VIGOROTH, SPECIES_SLAKING},
- .rest = {13, 0, 0x29, 0x0A, 0x3A, 0x06, 0x15, 0x0E, 0x35, 0x14, 0x34, 0x10, 0x1E, 0x06},
+ .id = 13,
+ .easyChatWords = {0xA29, 0x63A, 0xE15, 0x1435, 0x1034, 0x61E},
},
{
.name = {_("トシミツ"), _("DANTE"), _("DANTE"), _("RAOUL"), _("LOTHAR"), _("PABLO")},
.otId = 0xBC75,
.facilityClass = 14,
.species = {SPECIES_SCEPTILE, SPECIES_SANDSLASH, SPECIES_FLYGON, SPECIES_CLAYDOL, SPECIES_ARMALDO, SPECIES_CROBAT, SPECIES_CRADILY, SPECIES_SOLROCK, SPECIES_LUNATONE, SPECIES_GOLEM},
- .rest = {14, 0, 0x01, 0x0A, 0x17, 0x10, 0x43, 0x12, 0x22, 0x1E, 0x0B, 0x10, 0x0F, 0x28},
+ .id = 14,
+ .easyChatWords = {0xA01, 0x1017, 0x1243, 0x1E22, 0x100B, 0x280F},
},
{
.name = {_("ローウェン"), _("ARTURO"), _("ARTURO"), _("ROMOLO"), _("BRIAN"), _("ARTURO")},
.otId = 0xFA02,
.facilityClass = 0x20,
.species = {SPECIES_ABSOL, SPECIES_MIGHTYENA, SPECIES_ALAKAZAM, SPECIES_BANETTE, SPECIES_NINETALES, SPECIES_CLAYDOL, SPECIES_MUK, SPECIES_SALAMENCE, SPECIES_WALREIN, SPECIES_DUSCLOPS},
- .rest = {15, 0, 0x0F, 0x1E, 0x04, 0x14, 0x2F, 0x10, 0x06, 0x10, 0x20, 0x10, 0x03, 0x0E},
+ .id = 15,
+ .easyChatWords = {0x1E0F, 0x1404, 0x102F, 0x1006, 0x1020, 0xE03},
},
};
@@ -2222,7 +2238,7 @@ static void sub_81A1370(void)
r9 = -1;
for (i = 1; i < 4; i++)
{
- if (ReadUnalignedWord(gSaveBlock2Ptr->apprentices[i].playerId) == ReadUnalignedWord(gSaveBlock2Ptr->playerTrainerId)
+ if (GetTrainerId(gSaveBlock2Ptr->apprentices[i].playerId) == GetTrainerId(gSaveBlock2Ptr->playerTrainerId)
&& gSaveBlock2Ptr->apprentices[i].number < r10)
{
r10 = gSaveBlock2Ptr->apprentices[i].number;
diff --git a/src/battle_dome.c b/src/battle_dome.c
index 56f003d8f..b39162dda 100644
--- a/src/battle_dome.c
+++ b/src/battle_dome.c
@@ -3,6 +3,7 @@
#include "battle.h"
#include "battle_setup.h"
#include "battle_tower.h"
+#include "frontier_util.h"
#include "battle_message.h"
#include "event_data.h"
#include "overworld.h"
@@ -56,13 +57,12 @@ struct UnkStruct_860DD10
};
extern void sub_81B8558(void);
-extern u32 sub_81A39C4(void);
-extern u16 sub_81A5060(u8 monId, u8 moveSlotId);
-extern u8 sub_81A50F0(u8, u8);
-extern u8 sub_81A50B0(u8);
+extern u16 GetFrontierBrainMonMove(u8 monId, u8 moveSlotId);
+extern u8 GetFrontierBrainMonEvs(u8, u8);
+extern u8 GetFrontierBrainMonNature(u8);
extern void sub_81A4C30(void);
-extern bool8 sub_81A3610(void);
-extern u16 sub_81A4FF0(u8);
+extern u8 sub_81A3610(void);
+extern u16 GetFrontierBrainMonSpecies(u8);
extern void ReducePlayerPartyToThree(void);
extern u8 gUnknown_0203CEF8[];
@@ -2408,7 +2408,7 @@ static void sub_818E9CC(void)
gSaveBlock2Ptr->frontier.field_CA9_a = 0;
gSaveBlock2Ptr->frontier.field_CA9_b = 0;
if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860D0EC[battleMode][lvlMode]))
- gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode] = 0;
+ gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode] = 0;
saved_warp2_set(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1);
gTrainerBattleOpponent_A = 0;
@@ -2422,7 +2422,7 @@ static void sub_818EA84(void)
switch (gSpecialVar_0x8005)
{
case 0:
- gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode];
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode];
break;
case 1:
gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860D0EC[battleMode][lvlMode]) != 0);
@@ -2490,7 +2490,7 @@ static void sub_818ED28(void)
switch (gSpecialVar_0x8005)
{
case 0:
- gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode] = gSpecialVar_0x8006;
+ gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode] = gSpecialVar_0x8006;
break;
case 1:
if (gSpecialVar_0x8006)
@@ -2575,7 +2575,7 @@ static void InitDomeTrainers(void)
for (i = 0; i < 3; i++)
{
- gSaveBlock2Ptr->frontier.domeMonId[0][i] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_SPECIES, NULL);
+ gSaveBlock2Ptr->frontier.domeMonIds[0][i] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_SPECIES, NULL);
for (j = 0; j < 4; j++)
gSaveBlock2Ptr->frontier.field_EFC[i].moves[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_MOVE1 + j, NULL);
for (j = 0; j < 6; j++)
@@ -2590,7 +2590,7 @@ static void InitDomeTrainers(void)
{
do
{
- trainerId = sub_8162548(sub_81A39C4(), 0);
+ trainerId = sub_8162548(GetCurrentFacilityWinStreak(), 0);
for (j = 1; j < i; j++)
{
if (gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId == trainerId)
@@ -2603,7 +2603,7 @@ static void InitDomeTrainers(void)
{
do
{
- trainerId = sub_8162548(sub_81A39C4() + 1, 0);
+ trainerId = sub_8162548(GetCurrentFacilityWinStreak() + 1, 0);
for (j = 1; j < i; j++)
{
if (gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId == trainerId)
@@ -2621,7 +2621,7 @@ static void InitDomeTrainers(void)
monTournamentId = RandomizeFacilityTrainerMonId(trainerId);
for (k = 0; k < j; k++)
{
- s32 checkingMonId = gSaveBlock2Ptr->frontier.domeMonId[i][k];
+ s32 checkingMonId = gSaveBlock2Ptr->frontier.domeMonIds[i][k];
if (checkingMonId == monTournamentId
|| species[0] == gFacilityTrainerMons[monTournamentId].species
|| species[1] == gFacilityTrainerMons[monTournamentId].species
@@ -2630,7 +2630,7 @@ static void InitDomeTrainers(void)
}
} while (k != j);
- gSaveBlock2Ptr->frontier.domeMonId[i][j] = monTournamentId;
+ gSaveBlock2Ptr->frontier.domeMonIds[i][j] = monTournamentId;
species[j] = gFacilityTrainerMons[monTournamentId].species;
}
@@ -2671,10 +2671,10 @@ static void InitDomeTrainers(void)
ivs = GetDomeTrainerMonIvs(gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId);
for (j = 0; j < 3; j++)
{
- CalcDomeMonStats(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].species,
+ CalcDomeMonStats(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species,
monLevel, ivs,
- gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].evSpread,
- gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].nature,
+ gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].evSpread,
+ gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].nature,
statValues);
statSums[i] += statValues[STAT_ATK];
@@ -2683,8 +2683,8 @@ static void InitDomeTrainers(void)
statSums[i] += statValues[STAT_SPDEF];
statSums[i] += statValues[STAT_SPEED];
statSums[i] += statValues[STAT_HP];
- monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].species].type1];
- monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].species].type2];
+ monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species].type1];
+ monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species].type2];
}
for (monTypesCount = 0, j = 0; j < 32; j++)
@@ -2737,7 +2737,7 @@ static void InitDomeTrainers(void)
}
for (i = 0; i < 3; i++)
- gSaveBlock2Ptr->frontier.domeMonId[j][i] = sub_81A4FF0(i);
+ gSaveBlock2Ptr->frontier.domeMonIds[j][i] = GetFrontierBrainMonSpecies(i);
}
Free(statSums);
@@ -2799,7 +2799,7 @@ static void SwapDomeTrainers(s32 id1, s32 id2, u16 *statsArray)
SWAP(gSaveBlock2Ptr->frontier.domeTrainers[id1].trainerId, gSaveBlock2Ptr->frontier.domeTrainers[id2].trainerId, temp);
for (i = 0; i < 3; i++)
- SWAP(gSaveBlock2Ptr->frontier.domeMonId[id1][i], gSaveBlock2Ptr->frontier.domeMonId[id2][i], temp);
+ SWAP(gSaveBlock2Ptr->frontier.domeMonIds[id1][i], gSaveBlock2Ptr->frontier.domeMonIds[id2][i], temp);
}
static void sub_818F9B0(void)
@@ -2829,24 +2829,24 @@ static void CreateDomeMon(u8 monPartyId, u16 tournamentTrainerId, u8 tournamentM
u8 fixedIv = GetDomeTrainerMonIvs(tournamentTrainerId); // BUG: Should be using trainerId instead of tournamentTrainerId. As a result, all Pokemon have ivs of 3.
u8 level = SetFacilityPtrsGetLevel();
CreateMonWithEVSpreadPersonalityOTID(&gEnemyParty[monPartyId],
- gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][tournamentMonId]].species,
+ gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].species,
level,
- gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][tournamentMonId]].nature,
+ gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].nature,
fixedIv,
- gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][tournamentMonId]].evSpread, otId);
+ gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].evSpread, otId);
happiness = 0xFF;
for (i = 0; i < 4; i++)
{
SetMonMoveSlot(&gEnemyParty[monPartyId],
- gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][tournamentMonId]].moves[i], i);
- if (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][tournamentMonId]].moves[i] == MOVE_FRUSTRATION)
+ gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].moves[i], i);
+ if (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].moves[i] == MOVE_FRUSTRATION)
happiness = 0;
}
SetMonData(&gEnemyParty[monPartyId], MON_DATA_FRIENDSHIP, &happiness);
SetMonData(&gEnemyParty[monPartyId], MON_DATA_HELD_ITEM,
- &gBattleFrontierHeldItems[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][tournamentMonId]].itemTableId]);
+ &gBattleFrontierHeldItems[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].itemTableId]);
}
static void CreateDomeTrainerMons(u16 tournamentTrainerId)
@@ -2856,7 +2856,7 @@ static void CreateDomeTrainerMons(u16 tournamentTrainerId)
s32 i, bits;
ZeroEnemyPartyMons();
- bits = GetTrainerMonCountInBits(tournamentTrainerId);
+ bits = GetDomeTrainerMonCountInBits(tournamentTrainerId);
otId = Random32();
if (Random() % 10 > 5)
{
@@ -2884,7 +2884,7 @@ static void CreateDomeTrainerMons(u16 tournamentTrainerId)
}
}
-s32 GetTrainerMonCountInBits(u16 tournamentTrainerId)
+s32 GetDomeTrainerMonCountInBits(u16 tournamentTrainerId)
{
s32 bits;
if (Random() & 1)
@@ -2917,12 +2917,12 @@ static s32 sub_818FCBC(u16 tournamentTrainerId, bool8 arg1)
{
if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN)
{
- array[i] += GetTypeEffectivenessPoints(sub_81A5060(i, moveId),
+ array[i] += GetTypeEffectivenessPoints(GetFrontierBrainMonMove(i, moveId),
GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 0);
}
else
{
- array[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][i]].moves[moveId],
+ array[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][i]].moves[moveId],
GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 0);
}
}
@@ -2945,12 +2945,12 @@ static s32 sub_818FDB8(u16 tournamentTrainerId, bool8 arg1)
{
if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN)
{
- array[i] += GetTypeEffectivenessPoints(sub_81A5060(i, moveId),
+ array[i] += GetTypeEffectivenessPoints(GetFrontierBrainMonMove(i, moveId),
GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 1);
}
else
{
- array[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][i]].moves[moveId],
+ array[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][i]].moves[moveId],
GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 1);
}
}
@@ -3481,13 +3481,13 @@ static void sub_819033C(void)
u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
- if (gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode] < 999)
- gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode]++;
- if (gSaveBlock2Ptr->frontier.field_D1C[battleMode][lvlMode] < 999)
- gSaveBlock2Ptr->frontier.field_D1C[battleMode][lvlMode]++;
+ if (gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode] < 999)
+ gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode]++;
+ if (gSaveBlock2Ptr->frontier.domeTotalChampionships[battleMode][lvlMode] < 999)
+ gSaveBlock2Ptr->frontier.domeTotalChampionships[battleMode][lvlMode]++;
- if (gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode] > gSaveBlock2Ptr->frontier.field_D14[battleMode][lvlMode])
- gSaveBlock2Ptr->frontier.field_D14[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode];
+ if (gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode] > gSaveBlock2Ptr->frontier.domeRecordWinStreaks[battleMode][lvlMode])
+ gSaveBlock2Ptr->frontier.domeRecordWinStreaks[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode];
}
static void ShowDomeOpponentInfo(void)
@@ -4756,7 +4756,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId)
{
if (trainerId == TRAINER_PLAYER)
{
- sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i],
+ sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i],
SpriteCb_MonIcon,
x | sInfoTrainerMonX[i],
y + sInfoTrainerMonY[i],
@@ -4765,7 +4765,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId)
}
else if (trainerId == TRAINER_FRONTIER_BRAIN)
{
- sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i],
+ sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i],
SpriteCb_MonIcon,
x | sInfoTrainerMonX[i],
y + sInfoTrainerMonY[i],
@@ -4774,7 +4774,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId)
}
else
{
- sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].species,
+ sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].species,
SpriteCb_MonIcon,
x | sInfoTrainerMonX[i],
y + sInfoTrainerMonY[i],
@@ -4837,11 +4837,11 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId)
{
textPrinter.currentY = gUnknown_0860D346[i];
if (trainerId == TRAINER_PLAYER)
- textPrinter.currentChar = gSpeciesNames[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]];
+ textPrinter.currentChar = gSpeciesNames[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]];
else if (trainerId == TRAINER_FRONTIER_BRAIN)
- textPrinter.currentChar = gSpeciesNames[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]];
+ textPrinter.currentChar = gSpeciesNames[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]];
else
- textPrinter.currentChar = gSpeciesNames[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].species];
+ textPrinter.currentChar = gSpeciesNames[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].species];
textPrinter.windowId = 1 + i + windowId;
if (i == 1)
@@ -4875,11 +4875,11 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId)
for (k = 0; k < DOME_TOURNAMENT_TRAINERS_COUNT; k++)
{
if (trainerId == TRAINER_FRONTIER_BRAIN)
- allocatedArray[k] += sMovePointsForDomeTrainers[sub_81A5060(i, j)][k];
+ allocatedArray[k] += sMovePointsForDomeTrainers[GetFrontierBrainMonMove(i, j)][k];
else if (trainerId == TRAINER_PLAYER)
allocatedArray[k] += sMovePointsForDomeTrainers[gSaveBlock2Ptr->frontier.field_EFC[i].moves[j]][k];
else
- allocatedArray[k] += sMovePointsForDomeTrainers[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].moves[j]][k];
+ allocatedArray[k] += sMovePointsForDomeTrainers[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].moves[j]][k];
}
}
}
@@ -4916,7 +4916,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId)
for (j = 0; j < 6; j++)
{
if (trainerId == TRAINER_FRONTIER_BRAIN)
- allocatedArray[j] = sub_81A50F0(i, j);
+ allocatedArray[j] = GetFrontierBrainMonEvs(i, j);
else
allocatedArray[j] = gSaveBlock2Ptr->frontier.field_EFC[i].evs[j];
}
@@ -4924,7 +4924,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId)
for (j = 0; j < 5; j++)
{
if (trainerId == TRAINER_FRONTIER_BRAIN)
- nature = sub_81A50B0(i);
+ nature = GetFrontierBrainMonNature(i);
else
nature = gSaveBlock2Ptr->frontier.field_EFC[i].nature;
@@ -4952,7 +4952,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId)
{
for (i = 0; i < 3; i++)
{
- s32 evBits = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].evSpread;
+ s32 evBits = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].evSpread;
for (k = 0, j = 0; j < 6; j++)
{
allocatedArray[j] = 0;
@@ -4961,7 +4961,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId)
evBits >>= 1;
}
k = MAX_TOTAL_EVS / k;
- evBits = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].evSpread;
+ evBits = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].evSpread;
for (j = 0; j < 6; j++)
{
if (evBits & 1)
@@ -4972,7 +4972,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId)
allocatedArray[6] += allocatedArray[0];
for (j = 0; j < 5; j++)
{
- nature = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].nature;
+ nature = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].nature;
if (gNatureStatTable[nature][j] > 0)
{
allocatedArray[j + 7] += (allocatedArray[j + 1] * 110) / 100;
@@ -5210,7 +5210,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
{
if (trainerIds[0] == TRAINER_PLAYER)
{
- sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[0]][i],
+ sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[0]][i],
SpriteCb_MonIcon,
x | sFirstTrainerMonX[i],
y + sFirstTrainerMonY[i],
@@ -5219,7 +5219,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
}
else if (trainerIds[0] == TRAINER_FRONTIER_BRAIN)
{
- sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[0]][i],
+ sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[0]][i],
SpriteCb_MonIcon,
x | sFirstTrainerMonX[i],
y + sFirstTrainerMonY[i],
@@ -5228,7 +5228,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
}
else
{
- sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[0]][i]].species,
+ sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[0]][i]].species,
SpriteCb_MonIcon,
x | sFirstTrainerMonX[i],
y + sFirstTrainerMonY[i],
@@ -5250,7 +5250,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
{
if (trainerIds[1] == TRAINER_PLAYER)
{
- sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[1]][i],
+ sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[1]][i],
SpriteCb_MonIcon,
x | sSecondTrainerMonX[i],
y + sSecondTrainerMonY[i],
@@ -5259,7 +5259,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
}
else if (trainerIds[1] == TRAINER_FRONTIER_BRAIN)
{
- sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[1]][i],
+ sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[1]][i],
SpriteCb_MonIcon,
x | sSecondTrainerMonX[i],
y + sSecondTrainerMonY[i],
@@ -5268,7 +5268,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
}
else
{
- sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[1]][i]].species,
+ sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[1]][i]].species,
SpriteCb_MonIcon,
x | sSecondTrainerMonX[i],
y + sSecondTrainerMonY[i],
@@ -5564,9 +5564,9 @@ static u16 GetWinningMove(s32 winnerTournamentId, s32 loserTournamentId, u8 roun
{
moveScores[i * 4 + j] = 0;
if (gSaveBlock2Ptr->frontier.domeTrainers[winnerTournamentId].trainerId == TRAINER_FRONTIER_BRAIN)
- moveIds[i * 4 + j] = sub_81A5060(i, j);
+ moveIds[i * 4 + j] = GetFrontierBrainMonMove(i, j);
else
- moveIds[i * 4 + j] = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[winnerTournamentId][i]].moves[j];
+ moveIds[i * 4 + j] = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[winnerTournamentId][i]].moves[j];
movePower = gBattleMoves[moveIds[i * 4 + j]].power;
if (movePower == 0)
@@ -5584,9 +5584,9 @@ static u16 GetWinningMove(s32 winnerTournamentId, s32 loserTournamentId, u8 roun
do
{
var = Random32();
- } while (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[loserTournamentId][k]].nature != GetNatureFromPersonality(var));
+ } while (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[loserTournamentId][k]].nature != GetNatureFromPersonality(var));
- targetSpecies = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[loserTournamentId][k]].species;
+ targetSpecies = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[loserTournamentId][k]].species;
if (var & 1)
targetAbility = gBaseStats[targetSpecies].ability2;
else
@@ -6193,7 +6193,7 @@ static void sub_8194F58(void)
monTournamentId = RandomizeFacilityTrainerMonId(trainerId);
for (k = 0; k < j; k++)
{
- s32 checkingMonId = gSaveBlock2Ptr->frontier.domeMonId[i][k];
+ s32 checkingMonId = gSaveBlock2Ptr->frontier.domeMonIds[i][k];
if (checkingMonId == monTournamentId
|| species[0] == gFacilityTrainerMons[monTournamentId].species
|| species[1] == gFacilityTrainerMons[monTournamentId].species
@@ -6202,7 +6202,7 @@ static void sub_8194F58(void)
}
} while (k != j);
- gSaveBlock2Ptr->frontier.domeMonId[i][j] = monTournamentId;
+ gSaveBlock2Ptr->frontier.domeMonIds[i][j] = monTournamentId;
species[j] = gFacilityTrainerMons[monTournamentId].species;
}
gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated = 0;
@@ -6218,10 +6218,10 @@ static void sub_8194F58(void)
ivs = GetDomeTrainerMonIvs(gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId);
for (j = 0; j < 3; j++)
{
- CalcDomeMonStats(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].species,
+ CalcDomeMonStats(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species,
monLevel, ivs,
- gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].evSpread,
- gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].nature,
+ gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].evSpread,
+ gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].nature,
statValues);
statSums[i] += statValues[STAT_ATK];
@@ -6230,8 +6230,8 @@ static void sub_8194F58(void)
statSums[i] += statValues[STAT_SPDEF];
statSums[i] += statValues[STAT_SPEED];
statSums[i] += statValues[STAT_HP];
- monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].species].type1];
- monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].species].type2];
+ monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species].type1];
+ monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species].type2];
}
// Because GF hates temporary vars, trainerId acts like monTypesCount here.
@@ -6347,11 +6347,11 @@ static void DecideRoundWinners(u8 roundId)
{
for (monId2 = 0; monId2 < 3; monId2++)
{
- points1 += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId1][monId1]].moves[moveSlot],
- gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId2][monId2]].species, 2);
+ points1 += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId1][monId1]].moves[moveSlot],
+ gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId2][monId2]].species, 2);
}
}
- species = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId1][monId1]].species;
+ species = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId1][monId1]].species;
points1 += ( gBaseStats[species].baseHP
+ gBaseStats[species].baseAttack
+ gBaseStats[species].baseDefense
@@ -6370,11 +6370,11 @@ static void DecideRoundWinners(u8 roundId)
{
for (monId2 = 0; monId2 < 3; monId2++)
{
- points2 += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId2][monId1]].moves[moveSlot],
- gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId1][monId2]].species, 2);
+ points2 += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId2][monId1]].moves[moveSlot],
+ gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId1][monId2]].species, 2);
}
}
- species = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId2][monId1]].species;
+ species = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId2][monId1]].species;
points2 += ( gBaseStats[species].baseHP
+ gBaseStats[species].baseAttack
+ gBaseStats[species].baseDefense
diff --git a/src/battle_factory.c b/src/battle_factory.c
index c2a3207a6..d7a2939b3 100644
--- a/src/battle_factory.c
+++ b/src/battle_factory.c
@@ -1670,7 +1670,7 @@ static void CreateFrontierFactorySelectableMons(u8 firstMonId)
u32 otId = 0;
u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
- u8 var_2C = gSaveBlock2Ptr->frontier.field_DE2[battleMode][lvlMode] / 7;
+ u8 var_2C = gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] / 7;
u8 var_28 = 0;
gFacilityTrainerMons = gBattleFrontierMons;
diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c
index 9ec9f8520..c53f10dca 100644
--- a/src/battle_frontier_1.c
+++ b/src/battle_frontier_1.c
@@ -27,7 +27,7 @@ void sub_8195980(void)
gSaveBlock2Ptr->frontier.field_CA9_a = 0;
gSaveBlock2Ptr->frontier.field_CA9_b = 0;
if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860DE98[battleMode][lvlMode]))
- gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode] = 0;
+ gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] = 0;
saved_warp2_set(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1);
gTrainerBattleOpponent_A = 0;
@@ -44,7 +44,7 @@ void sub_8195A38(void)
gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_DC4[1];
break;
case 1:
- gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode];
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode];
break;
case 2:
gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860DE98[battleMode][lvlMode]) != 0);
@@ -63,7 +63,7 @@ void sub_8195AE4(void)
gSaveBlock2Ptr->frontier.field_DC4[1] = gSpecialVar_0x8006;
break;
case 1:
- gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode] = gSpecialVar_0x8006;
+ gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] = gSpecialVar_0x8006;
break;
case 2:
if (gSpecialVar_0x8006)
@@ -79,9 +79,9 @@ void sub_8195BB0(void)
u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
- if (gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode] < 50)
+ if (gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] < 50)
gSpecialVar_Result = Random() % 3;
- else if (gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode] < 99)
+ else if (gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] < 99)
gSpecialVar_Result = 3;
else
gSpecialVar_Result = 4;
@@ -105,14 +105,14 @@ void sub_8195C7C(void)
u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
- if (gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode] < 9999)
+ if (gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] < 9999)
{
u16 wat = 0;
- gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode]++;
+ gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode]++;
if (lvlMode < gSaveBlock2Ptr->frontier.field_DD0[battleMode][lvlMode])
wat = 1;
- if (gSaveBlock2Ptr->frontier.field_DC8[battleMode][wat] != 0)
- gSaveBlock2Ptr->frontier.field_DD0[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode];
+ if (gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][wat] != 0)
+ gSaveBlock2Ptr->frontier.field_DD0[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode];
}
}
*/
diff --git a/src/battle_main.c b/src/battle_main.c
index 9f1ea3c01..e08e12194 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -3027,7 +3027,7 @@ static void BattleStartClearSetData(void)
if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) && gSaveBlock2Ptr->optionsBattleSceneOff == TRUE)
gHitMarker |= HITMARKER_NO_ANIMATIONS;
}
- else if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) && GetBattleStyleInRecordedBattle())
+ else if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) && GetBattleSceneInRecordedBattle())
gHitMarker |= HITMARKER_NO_ANIMATIONS;
gBattleScripting.battleStyle = gSaveBlock2Ptr->optionsBattleStyle;
diff --git a/src/battle_message.c b/src/battle_message.c
index 3b4ad0c21..44ea5d7d7 100644
--- a/src/battle_message.c
+++ b/src/battle_message.c
@@ -17,7 +17,7 @@
#include "menu.h"
#include "recorded_battle.h"
#include "international_string_util.h"
-#include "battle_frontier_2.h"
+#include "frontier_util.h"
#include "battle_tower.h"
#include "data2.h"
@@ -2579,7 +2579,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst)
case B_TXT_TRAINER1_LOSE_TEXT: // trainerA lose text
if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER)
{
- CopyFrontierTrainerText(FRONTIER_LOSE_TEXT, gTrainerBattleOpponent_A);
+ CopyFrontierTrainerText(FRONTIER_PLAYER_WON_TEXT, gTrainerBattleOpponent_A);
toCpy = gStringVar4;
}
else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL)
@@ -2595,7 +2595,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst)
case B_TXT_TRAINER1_WIN_TEXT: // trainerA win text
if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER)
{
- CopyFrontierTrainerText(FRONTIER_WIN_TEXT, gTrainerBattleOpponent_A);
+ CopyFrontierTrainerText(FRONTIER_PLAYER_LOST_TEXT, gTrainerBattleOpponent_A);
toCpy = gStringVar4;
}
else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL)
@@ -2676,7 +2676,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst)
case B_TXT_TRAINER2_LOSE_TEXT:
if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER)
{
- CopyFrontierTrainerText(FRONTIER_LOSE_TEXT, gTrainerBattleOpponent_B);
+ CopyFrontierTrainerText(FRONTIER_PLAYER_WON_TEXT, gTrainerBattleOpponent_B);
toCpy = gStringVar4;
}
else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL)
@@ -2692,7 +2692,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst)
case B_TXT_TRAINER2_WIN_TEXT:
if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER)
{
- CopyFrontierTrainerText(FRONTIER_WIN_TEXT, gTrainerBattleOpponent_B);
+ CopyFrontierTrainerText(FRONTIER_PLAYER_LOST_TEXT, gTrainerBattleOpponent_B);
toCpy = gStringVar4;
}
else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL)
diff --git a/src/battle_tent.c b/src/battle_tent.c
index 4c4bd7fc3..f3aec1345 100644
--- a/src/battle_tent.c
+++ b/src/battle_tent.c
@@ -9,7 +9,7 @@
#include "random.h"
#include "item.h"
#include "battle_factory.h"
-#include "battle_frontier_2.h"
+#include "frontier_util.h"
#include "constants/items.h"
#include "constants/region_map_sections.h"
@@ -19,6 +19,8 @@ extern const u16 gBattleFrontierHeldItems[];
extern u16 gUnknown_03006298[];
+extern void sub_81A4C30(void);
+
// This file's functions.
static void sub_81B99D4(void);
static void sub_81B9A28(void);
diff --git a/src/battle_tower.c b/src/battle_tower.c
index 4b63c2875..e95eaf156 100644
--- a/src/battle_tower.c
+++ b/src/battle_tower.c
@@ -9,8 +9,7 @@
#include "main.h"
#include "international_string_util.h"
#include "battle.h"
-#include "battle_frontier_1.h"
-#include "battle_frontier_2.h"
+#include "frontier_util.h"
#include "recorded_battle.h"
#include "easy_chat.h"
#include "gym_leader_rematch.h"
@@ -30,15 +29,9 @@
extern u16 gUnknown_03006298[];
-extern void sub_81A3ACC(void);
-extern void CreateFrontierBrainPokemon(void);
extern void sub_81A6CD0(void);
-extern u16 sub_81A39C4(void);
-extern void SetFrontierBrainTrainerGfxId(void);
-extern u8 GetFrontierBrainTrainerPicIndex(void);
-extern u8 GetFrontierBrainTrainerClass(void);
-extern u8 IsFrontierBrainFemale(void);
-extern void CopyFrontierBrainTrainerName(u8 *dst);
+extern void sub_81A4C30(void);
+extern u8 sub_81A6CA8(u8, u8);
extern void SetMonMoveAvoidReturn(struct Pokemon *mon, u16 move, u8 moveSlot);
extern const u8 *const *const gUnknown_085DD690[];
@@ -220,7 +213,7 @@ static void sub_8161F94(void)
gSaveBlock2Ptr->frontier.field_CA9_b = 0;
sub_81A3ACC();
if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_085DF9AC[battleMode][lvlMode]))
- gSaveBlock2Ptr->frontier.winStreaks[battleMode][lvlMode] = 0;
+ gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] = 0;
ValidateBattleTowerRecordChecksums();
saved_warp2_set(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1);
@@ -258,7 +251,7 @@ static void sub_81620F4(void)
case 0:
break;
case 1:
- gSaveBlock2Ptr->frontier.winStreaks[battleMode][lvlMode] = gSpecialVar_0x8006;
+ gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] = gSpecialVar_0x8006;
break;
case 2:
if (gSpecialVar_0x8006)
@@ -364,7 +357,8 @@ static void ChooseNextBattleTowerTrainer(void)
{
u16 id;
u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
- u32 r5 = sub_81A39C4() / 7;
+ u16 winStreak = GetCurrentFacilityWinStreak();
+ u32 challengeNum = winStreak / 7;
SetFacilityPtrsGetLevel();
if (battleMode == FRONTIER_MODE_MULTIS || battleMode == FRONTIER_MODE_LINK_MULTIS)
@@ -385,7 +379,7 @@ static void ChooseNextBattleTowerTrainer(void)
s32 i;
while (1)
{
- id = sub_8162548(r5, gSaveBlock2Ptr->frontier.curChallengeBattleNum);
+ id = sub_8162548(challengeNum, gSaveBlock2Ptr->frontier.curChallengeBattleNum);
// Ensure trainer wasn't previously fought in this challenge.
for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum; i++)
@@ -525,7 +519,7 @@ void SetBattleFacilityTrainerGfxId(u16 trainerId, u8 tempVarId)
}
else if (trainerId == TRAINER_FRONTIER_BRAIN)
{
- SetFrontierBrainTrainerGfxId();
+ SetFrontierBrainEventObjGfx_2();
return;
}
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
@@ -769,14 +763,14 @@ u8 GetFrontierTrainerFrontSpriteId(u16 trainerId)
else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE)
{
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
- return gFacilityClassToPicIndex[sub_818649C()];
+ return gFacilityClassToPicIndex[GetRecordedBattleRecordMixFriendClass()];
else
return gFacilityClassToPicIndex[gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].facilityClass];
}
else
{
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
- return gFacilityClassToPicIndex[gApprentices[sub_81864A8()].facilityClass];
+ return gFacilityClassToPicIndex[gApprentices[GetRecordedBattleApprenticeId()].facilityClass];
else
return gFacilityClassToPicIndex[gApprentices[gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].id].facilityClass];
}
@@ -807,7 +801,7 @@ u8 GetFrontierOpponentClass(u16 trainerId)
{
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
{
- trainerClass = gFacilityClassToTrainerClass[sub_818649C()];
+ trainerClass = gFacilityClassToTrainerClass[GetRecordedBattleRecordMixFriendClass()];
}
else
{
@@ -819,7 +813,7 @@ u8 GetFrontierOpponentClass(u16 trainerId)
{
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
{
- trainerClass = gFacilityClassToTrainerClass[gApprentices[sub_81864A8()].facilityClass];
+ trainerClass = gFacilityClassToTrainerClass[gApprentices[GetRecordedBattleApprenticeId()].facilityClass];
}
else
{
@@ -847,14 +841,14 @@ static u8 GetFrontierTrainerFacilityClass(u16 trainerId)
else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE)
{
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
- facilityClass = sub_818649C();
+ facilityClass = GetRecordedBattleRecordMixFriendClass();
else
facilityClass = gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].facilityClass;
}
else
{
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
- facilityClass = gApprentices[sub_81864A8()].facilityClass;
+ facilityClass = gApprentices[GetRecordedBattleApprenticeId()].facilityClass;
else
facilityClass = gApprentices[gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].id].facilityClass;
}
@@ -907,8 +901,8 @@ void GetFrontierTrainerName(u8 *dst, u16 trainerId)
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
{
- id = sub_81864A8();
- language = sub_81864C0();
+ id = GetRecordedBattleApprenticeId();
+ language = GetRecordedBattleApprenticeLanguage();
}
else
{
@@ -1179,7 +1173,7 @@ static void FillFactoryFrontierTrainerParty(u16 trainerId, u8 firstMonId)
{
u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; // Unused variable.
u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
- u8 challengeNum = gSaveBlock2Ptr->frontier.winStreaks[battleMode][0] / 7;
+ u8 challengeNum = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][0] / 7;
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < 6)
fixedIV = sub_81A6CA8(challengeNum, 0);
else
@@ -1297,7 +1291,7 @@ static void HandleSpecialTrainerBattleEnd(void)
{
s32 i;
- sub_81864CC();
+ RecordedBattle_SaveBattleOutcome();
switch (gBattleScripting.specialTrainerBattleType)
{
case SPECIAL_BATTLE_TOWER:
@@ -1480,8 +1474,8 @@ static void SaveCurrentWinStreak(void)
u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
u16 winStreak = GetCurrentBattleTowerWinStreak(lvlMode, battleMode);
- if (gSaveBlock2Ptr->frontier.winStreaks[battleMode][lvlMode] < winStreak)
- gSaveBlock2Ptr->frontier.winStreaks[battleMode][lvlMode] = winStreak;
+ if (gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] < winStreak)
+ gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] = winStreak;
}
static void sub_8163EE4(void)
@@ -1509,15 +1503,15 @@ static void sub_8163EE4(void)
}
playerRecord->lvlMode = lvlMode;
playerRecord->facilityClass = class;
- CopyUnalignedWord(playerRecord->trainerId, gSaveBlock2Ptr->playerTrainerId);
+ CopyTrainerId(playerRecord->trainerId, gSaveBlock2Ptr->playerTrainerId);
StringCopy7(playerRecord->name, gSaveBlock2Ptr->playerName);
playerRecord->winStreak = GetCurrentBattleTowerWinStreak(lvlMode, battleMode);
for (i = 0; i < 6; i++)
{
playerRecord->greeting[i] = gSaveBlock1Ptr->unk2BBC[i];
- playerRecord->unk1C[i] = gSaveBlock1Ptr->unk2BC8[i];
- playerRecord->unk28[i] = gSaveBlock1Ptr->unk2BD4[i];
+ playerRecord->speechWon[i] = gSaveBlock1Ptr->unk2BC8[i];
+ playerRecord->speechLost[i] = gSaveBlock1Ptr->unk2BD4[i];
}
for (i = 0; i < 4; i++)
@@ -1535,7 +1529,7 @@ static void SaveBattleTowerProgress(void)
{
u16 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
u16 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
- s32 challengeNum = (signed)(gSaveBlock2Ptr->frontier.winStreaks[battleMode][lvlMode] / 7);
+ s32 challengeNum = (signed)(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] / 7);
if (gSpecialVar_0x8005 == 0 && (challengeNum > 1 || gSaveBlock2Ptr->frontier.curChallengeBattleNum != 0))
sub_8163EE4();
@@ -1625,7 +1619,7 @@ static void sub_81642A0(void)
eventObjTemplates = gSaveBlock1Ptr->eventObjectTemplates;
lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
- challengeNum = gSaveBlock2Ptr->frontier.winStreaks[battleMode][lvlMode] / 7;
+ challengeNum = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] / 7;
species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES, NULL);
species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES, NULL);
level = SetFacilityPtrsGetLevel();
@@ -1795,7 +1789,8 @@ static void sub_8164828(void)
s32 i, j, arrId;
s32 monPoolId;
s32 level = SetFacilityPtrsGetLevel();
- s32 challengeNum = sub_81A39C4() / 7;
+ u16 winStreak = GetCurrentFacilityWinStreak();
+ s32 challengeNum = winStreak / 7;
s32 k = gSpecialVar_LastTalked - 2;
s32 trainerId = gSaveBlock2Ptr->frontier.field_CB4[k];
@@ -1911,7 +1906,7 @@ static void sub_8164B74(void)
case 0:
if (battleMode == FRONTIER_MODE_LINK_MULTIS)
{
- challengeNum = gSaveBlock2Ptr->frontier.winStreaks[battleMode][lvlMode] / 7;
+ challengeNum = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] / 7;
if (sub_800A520())
{
SendBlock(bitmask_all_link_players_but_self(), &challengeNum, sizeof(challengeNum));
@@ -2069,7 +2064,7 @@ static void ClearBattleTowerRecord(struct EmeraldBattleTowerRecord *record)
u16 GetCurrentBattleTowerWinStreak(u8 lvlMode, u8 battleMode)
{
- u16 winStreak = gSaveBlock2Ptr->frontier.winStreaks[battleMode][lvlMode];
+ u16 winStreak = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode];
if (winStreak > 9999)
return 9999;
@@ -2164,7 +2159,7 @@ static void FillEReaderTrainerWithPlayerData(void)
+ gSaveBlock2Ptr->playerTrainerId[2] + gSaveBlock2Ptr->playerTrainerId[3]) % ARRAY_COUNT(gTowerMaleFacilityClasses)];
}
- CopyUnalignedWord(ereaderTrainer->trainerId, gSaveBlock2Ptr->playerTrainerId);
+ CopyTrainerId(ereaderTrainer->trainerId, gSaveBlock2Ptr->playerTrainerId);
StringCopy7(ereaderTrainer->name, gSaveBlock2Ptr->playerName);
ereaderTrainer->winStreak = 1;
@@ -2425,9 +2420,9 @@ bool32 RubyBattleTowerRecordToEmerald(struct RSBattleTowerRecord *src, struct Em
for (i = 0; i < 6; i++)
dst->greeting[i] = src->greeting[i];
for (i = 0; i < 6; i++)
- dst->unk1C[i] = gUnknown_085DFA46[i];
+ dst->speechWon[i] = gUnknown_085DFA46[i];
for (i = 0; i < 6; i++)
- dst->unk28[i] = gUnknown_085DFA52[i];
+ dst->speechLost[i] = gUnknown_085DFA52[i];
for (i = 0; i < 3; i++)
dst->party[i] = src->party[i];
@@ -2526,14 +2521,14 @@ void GetBattleTowerTrainerLanguage(u8 *dst, u16 trainerId)
else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE)
{
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
- *dst = sub_81864B4();
+ *dst = GetRecordedBattleRecordMixFriendLanguage();
else
*dst = gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].language;
}
else
{
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
- *dst = sub_81864C0();
+ *dst = GetRecordedBattleApprenticeLanguage();
else
*dst = gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].language;
}
diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c
index fef403c04..738826020 100644
--- a/src/field_control_avatar.c
+++ b/src/field_control_avatar.c
@@ -1,6 +1,5 @@
#include "global.h"
#include "battle_setup.h"
-#include "battle_frontier_1.h"
#include "bike.h"
#include "coord_event_weather.h"
#include "daycare.h"
@@ -31,6 +30,8 @@
#include "constants/map_types.h"
#include "constants/songs.h"
+extern bool32 sub_8196034(void);
+
static EWRAM_DATA u8 sWildEncounterImmunitySteps = 0;
static EWRAM_DATA u16 sPreviousPlayerMetatileBehavior = 0;
diff --git a/src/field_poison.c b/src/field_poison.c
index 6a519d90c..e2fd994fc 100644
--- a/src/field_poison.c
+++ b/src/field_poison.c
@@ -6,7 +6,7 @@
#include "field_message_box.h"
#include "strings.h"
#include "rom_818CFC8.h"
-#include "battle_frontier_2.h"
+#include "frontier_util.h"
#include "pokenav.h"
#include "event_data.h"
#include "script.h"
@@ -14,6 +14,8 @@
#include "fldeff_80F9BCC.h"
#include "field_poison.h"
+extern bool8 InBattlePike(void);
+
static bool32 sub_80F9568(struct Pokemon *pokemon)
{
u16 species = GetMonData(pokemon, MON_DATA_SPECIES2);
diff --git a/src/field_specials.c b/src/field_specials.c
index e2e069d28..522cbdf94 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -2158,73 +2158,73 @@ void sub_8139F20(void)
case 1:
case 2:
case 3:
- if (gSaveBlock2Ptr->frontier.winStreaks[var][0] >= gSaveBlock2Ptr->frontier.winStreaks[var][1])
+ if (gSaveBlock2Ptr->frontier.towerWinStreaks[var][0] >= gSaveBlock2Ptr->frontier.towerWinStreaks[var][1])
{
- unk = gSaveBlock2Ptr->frontier.winStreaks[var][0];
+ unk = gSaveBlock2Ptr->frontier.towerWinStreaks[var][0];
}
else
{
- unk = gSaveBlock2Ptr->frontier.winStreaks[var][1];
+ unk = gSaveBlock2Ptr->frontier.towerWinStreaks[var][1];
}
break;
case 4:
- if (gSaveBlock2Ptr->frontier.field_D0C[0][0] >= gSaveBlock2Ptr->frontier.field_D0C[0][1])
+ if (gSaveBlock2Ptr->frontier.domeWinStreaks[0][0] >= gSaveBlock2Ptr->frontier.domeWinStreaks[0][1])
{
- unk = gSaveBlock2Ptr->frontier.field_D0C[0][0];
+ unk = gSaveBlock2Ptr->frontier.domeWinStreaks[0][0];
}
else
{
- unk = gSaveBlock2Ptr->frontier.field_D0C[0][1];
+ unk = gSaveBlock2Ptr->frontier.domeWinStreaks[0][1];
}
break;
case 5:
- if (gSaveBlock2Ptr->frontier.field_DE2[0][0] >= gSaveBlock2Ptr->frontier.field_DE2[0][1])
+ if (gSaveBlock2Ptr->frontier.factoryWinStreaks[0][0] >= gSaveBlock2Ptr->frontier.factoryWinStreaks[0][1])
{
- unk = gSaveBlock2Ptr->frontier.field_DE2[0][0];
+ unk = gSaveBlock2Ptr->frontier.factoryWinStreaks[0][0];
}
else
{
- unk = gSaveBlock2Ptr->frontier.field_DE2[0][1];
+ unk = gSaveBlock2Ptr->frontier.factoryWinStreaks[0][1];
}
break;
case 6:
- if (gSaveBlock2Ptr->frontier.field_DC8[0][0] >= gSaveBlock2Ptr->frontier.field_DC8[0][1])
+ if (gSaveBlock2Ptr->frontier.palaceWinStreaks[0][0] >= gSaveBlock2Ptr->frontier.palaceWinStreaks[0][1])
{
- unk = gSaveBlock2Ptr->frontier.field_DC8[0][0];
+ unk = gSaveBlock2Ptr->frontier.palaceWinStreaks[0][0];
}
else
{
- unk = gSaveBlock2Ptr->frontier.field_DC8[0][1];
+ unk = gSaveBlock2Ptr->frontier.palaceWinStreaks[0][1];
}
break;
case 7:
- if (gSaveBlock2Ptr->frontier.field_DDA[0] >= gSaveBlock2Ptr->frontier.field_DDA[1])
+ if (gSaveBlock2Ptr->frontier.arenaWinStreaks[0] >= gSaveBlock2Ptr->frontier.arenaWinStreaks[1])
{
- unk = gSaveBlock2Ptr->frontier.field_DDA[0];
+ unk = gSaveBlock2Ptr->frontier.arenaWinStreaks[0];
}
else
{
- unk = gSaveBlock2Ptr->frontier.field_DDA[1];
+ unk = gSaveBlock2Ptr->frontier.arenaWinStreaks[1];
}
break;
case 8:
- if (gSaveBlock2Ptr->frontier.field_E04[0] >= gSaveBlock2Ptr->frontier.field_E04[1])
+ if (gSaveBlock2Ptr->frontier.pikeWinStreaks[0] >= gSaveBlock2Ptr->frontier.pikeWinStreaks[1])
{
- unk = gSaveBlock2Ptr->frontier.field_E04[0];
+ unk = gSaveBlock2Ptr->frontier.pikeWinStreaks[0];
}
else
{
- unk = gSaveBlock2Ptr->frontier.field_E04[1];
+ unk = gSaveBlock2Ptr->frontier.pikeWinStreaks[1];
}
break;
case 9:
- if (gSaveBlock2Ptr->frontier.field_E1A[0] >= gSaveBlock2Ptr->frontier.field_E1A[1])
+ if (gSaveBlock2Ptr->frontier.pyramidWinStreaks[0] >= gSaveBlock2Ptr->frontier.pyramidWinStreaks[1])
{
- unk = gSaveBlock2Ptr->frontier.field_E1A[0];
+ unk = gSaveBlock2Ptr->frontier.pyramidWinStreaks[0];
}
else
{
- unk = gSaveBlock2Ptr->frontier.field_E1A[1];
+ unk = gSaveBlock2Ptr->frontier.pyramidWinStreaks[1];
}
break;
}
@@ -2253,7 +2253,7 @@ void sub_813A080(void)
for (i = 0; i < 9; i++)
{
- if (gUnknown_085B2CDC[i] > gSaveBlock2Ptr->frontier.winStreaks[battleMode][lvlMode])
+ if (gUnknown_085B2CDC[i] > gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode])
{
gSpecialVar_0x8005 = 4;
gSpecialVar_0x8006 = i + 5;
@@ -2997,7 +2997,7 @@ void sub_813A8FC(void)
{
u8 string[32];
u32 x;
- StringCopy(ConvertIntToDecimalStringN(string, gSaveBlock2Ptr->frontier.frontierBattlePoints, STR_CONV_MODE_RIGHT_ALIGN, 4), gText_BP);
+ StringCopy(ConvertIntToDecimalStringN(string, gSaveBlock2Ptr->frontier.battlePoints, STR_CONV_MODE_RIGHT_ALIGN, 4), gText_BP);
x = GetStringRightAlignXOffset(1, string, 48);
AddTextPrinterParameterized(gUnknown_0203AB6D, 1, string, x, 1, 0, NULL);
}
@@ -3028,31 +3028,31 @@ void sub_813A988(void)
void sub_813A9A4(void)
{
- if (gSaveBlock2Ptr->frontier.frontierBattlePoints < gSpecialVar_0x8004)
+ if (gSaveBlock2Ptr->frontier.battlePoints < gSpecialVar_0x8004)
{
- gSaveBlock2Ptr->frontier.frontierBattlePoints = 0;
+ gSaveBlock2Ptr->frontier.battlePoints = 0;
}
else
{
- gSaveBlock2Ptr->frontier.frontierBattlePoints -= gSpecialVar_0x8004;
+ gSaveBlock2Ptr->frontier.battlePoints -= gSpecialVar_0x8004;
}
}
void sub_813A9D0(void)
{
- if (gSaveBlock2Ptr->frontier.frontierBattlePoints + gSpecialVar_0x8004 > 0x270F)
+ if (gSaveBlock2Ptr->frontier.battlePoints + gSpecialVar_0x8004 > 9999)
{
- gSaveBlock2Ptr->frontier.frontierBattlePoints = 0x270f;
+ gSaveBlock2Ptr->frontier.battlePoints = 9999;
}
else
{
- gSaveBlock2Ptr->frontier.frontierBattlePoints = gSaveBlock2Ptr->frontier.frontierBattlePoints + gSpecialVar_0x8004;
+ gSaveBlock2Ptr->frontier.battlePoints = gSaveBlock2Ptr->frontier.battlePoints + gSpecialVar_0x8004;
}
}
u16 sub_813AA04(void)
{
- return gSaveBlock2Ptr->frontier.frontierBattlePoints;
+ return gSaveBlock2Ptr->frontier.battlePoints;
}
void sub_813AA18(void)
diff --git a/src/fieldmap.c b/src/fieldmap.c
index 96f5d2b85..5019b5dc7 100644
--- a/src/fieldmap.c
+++ b/src/fieldmap.c
@@ -1,7 +1,7 @@
#include "global.h"
#include "overworld.h"
#include "bg.h"
-#include "battle_frontier_2.h"
+#include "frontier_util.h"
#include "constants/rgb.h"
#include "fieldmap.h"
#include "fldeff_80F9BCC.h"
@@ -14,6 +14,8 @@
#include "secret_base.h"
#include "tv.h"
+extern void sub_81AA078(u16*, u8);
+
struct ConnectionFlags
{
u8 south:1;
diff --git a/src/frontier_util.c b/src/frontier_util.c
new file mode 100644
index 000000000..39f472a60
--- /dev/null
+++ b/src/frontier_util.c
@@ -0,0 +1,2752 @@
+#include "global.h"
+#include "frontier_util.h"
+#include "event_data.h"
+#include "battle_setup.h"
+#include "overworld.h"
+#include "random.h"
+#include "battle_tower.h"
+#include "field_specials.h"
+#include "battle.h"
+#include "script_pokemon_util_80F87D8.h"
+#include "main.h"
+#include "window.h"
+#include "menu.h"
+#include "text.h"
+#include "battle_records.h"
+#include "international_string_util.h"
+#include "string_util.h"
+#include "new_game.h"
+#include "link.h"
+#include "tv.h"
+#include "apprentice.h"
+#include "pokedex.h"
+#include "recorded_battle.h"
+#include "data2.h"
+#include "record_mixing.h"
+#include "strings.h"
+#include "malloc.h"
+#include "save.h"
+#include "load_save.h"
+#include "battle_dome.h"
+#include "constants/battle_frontier.h"
+#include "constants/trainers.h"
+#include "constants/species.h"
+#include "constants/game_stat.h"
+#include "constants/moves.h"
+#include "constants/items.h"
+#include "constants/event_objects.h"
+
+extern u8 gUnknown_0203CEF8[];
+
+struct FrontierBrainMon
+{
+ u16 species;
+ u16 heldItem;
+ u8 fixedIV;
+ u8 nature;
+ u8 evs[6];
+ u16 moves[4];
+};
+
+extern const struct BattleFrontierTrainer gBattleFrontierTrainers[];
+extern const u8 *const gUnknown_08611D08[];
+extern const u8 *const gUnknown_08611CB0[][2];
+extern const u8 *const gUnknown_08611D00[];
+extern const u8 *const *const gUnknown_08611DB0[];
+extern const u8 *const *const gUnknown_08611DB8[];
+extern const u16 gFacilityToBrainTrainerId[];
+
+extern void sub_81B8558(void);
+
+// This file's functions.
+static void sub_81A17A0(void);
+static void sub_81A1830(void);
+static void sub_81A1968(void);
+static void sub_81A1AD4(void);
+static void DoSoftReset_(void);
+static void sub_81A1B28(void);
+static void sub_81A1B38(void);
+static void ShowFacilityResultsWindow(void);
+static void sub_81A31FC(void);
+static void sub_81A35EC(void);
+static void sub_81A3B00(void);
+static void sub_81A3B64(void);
+static void sub_81A3D30(void);
+static void sub_81A3D58(void);
+static void sub_81A3DA0(void);
+static void sub_81A3FD4(void);
+static void sub_81A4224(void);
+static void sub_81A4230(void);
+static void sub_81A43A8(void);
+static void sub_81A4410(void);
+static void sub_81A443C(void);
+static void sub_81A447C(void);
+static void sub_81A457C(void);
+static void ShowTowerResultsWindow(u8);
+static void ShowDomeResultsWindow(u8);
+static void ShowPalaceResultsWindow(u8);
+static void ShowPikeResultsWindow(void);
+static void ShowFactoryResultsWindow(u8);
+static void ShowArenaResultsWindow(void);
+static void ShowPyramidResultsWindow(void);
+static void ShowLinkContestResultsWindow(void);
+static void CopyFrontierBrainText(bool8 playerWonText);
+
+// const rom data
+static const u8 gUnknown_08611550[][4] =
+{
+ [FRONTIER_FACILITY_TOWER] = {0x23, 0x46, 0x23, 0x01},
+ [FRONTIER_FACILITY_DOME] = {0x04, 0x09, 0x05, 0x00},
+ [FRONTIER_FACILITY_PALACE] = {0x15, 0x2a, 0x15, 0x01},
+ [FRONTIER_FACILITY_ARENA] = {0x1c, 0x38, 0x1c, 0x01},
+ [FRONTIER_FACILITY_FACTORY] = {0x15, 0x2a, 0x15, 0x01},
+ [FRONTIER_FACILITY_PIKE] = {0x1c, 0x8c, 0x38, 0x01},
+ [FRONTIER_FACILITY_PYRAMID] = {0x15, 0x46, 0x23, 0x00},
+};
+
+static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] =
+{
+ [FRONTIER_FACILITY_TOWER] =
+ {
+ // Silver Symbol.
+ {
+ {
+ .species = SPECIES_ALAKAZAM,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .fixedIV = 24,
+ .nature = 15,
+ .evs = {106, 0, 152, 152, 100, 0},
+ .moves = {MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_DISABLE},
+ },
+ {
+ .species = SPECIES_ENTEI,
+ .heldItem = ITEM_LUM_BERRY,
+ .fixedIV = 24,
+ .nature = 1,
+ .evs = {100, 152, 152, 0, 100, 6},
+ .moves = {MOVE_FIRE_BLAST, MOVE_CALM_MIND, MOVE_RETURN, MOVE_ROAR},
+ },
+ {
+ .species = SPECIES_SNORLAX,
+ .heldItem = ITEM_QUICK_CLAW,
+ .fixedIV = 24,
+ .nature = 3,
+ .evs = {152, 152, 0, 0, 106, 100},
+ .moves = {MOVE_BODY_SLAM, MOVE_BELLY_DRUM, MOVE_YAWN, MOVE_SHADOW_BALL},
+ },
+ },
+ // Gold Symbol.
+ {
+ {
+ .species = SPECIES_RAIKOU,
+ .heldItem = ITEM_LUM_BERRY,
+ .fixedIV = 31,
+ .nature = 15,
+ .evs = {158, 0, 252, 100, 0, 0},
+ .moves = {MOVE_THUNDERBOLT, MOVE_CALM_MIND, MOVE_REFLECT, MOVE_REST},
+ },
+ {
+ .species = SPECIES_LATIOS,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .fixedIV = 31,
+ .nature = 15,
+ .evs = {252, 0, 252, 6, 0, 0},
+ .moves = {MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_RECOVER, MOVE_DRAGON_CLAW},
+ },
+ {
+ .species = SPECIES_SNORLAX,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .fixedIV = 31,
+ .nature = 3,
+ .evs = {252, 252, 0, 0, 6, 0},
+ .moves = {MOVE_CURSE, MOVE_RETURN, MOVE_REST, MOVE_SHADOW_BALL},
+ },
+ },
+ },
+ [FRONTIER_FACILITY_DOME] =
+ {
+ // Silver Symbol.
+ {
+ {
+ .species = SPECIES_SWAMPERT,
+ .heldItem = ITEM_FOCUS_BAND,
+ .fixedIV = 20,
+ .nature = 2,
+ .evs = {152, 152, 106, 0, 100, 0},
+ .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_COUNTER},
+ },
+ {
+ .species = SPECIES_SALAMENCE,
+ .heldItem = ITEM_LUM_BERRY,
+ .fixedIV = 20,
+ .nature = 3,
+ .evs = {152, 152, 106, 100, 0, 0},
+ .moves = {MOVE_EARTHQUAKE, MOVE_BRICK_BREAK, MOVE_DRAGON_CLAW, MOVE_AERIAL_ACE},
+ },
+ {
+ .species = SPECIES_CHARIZARD,
+ .heldItem = ITEM_WHITE_HERB,
+ .fixedIV = 20,
+ .nature = 17,
+ .evs = {100, 152, 106, 152, 0, 0},
+ .moves = {MOVE_OVERHEAT, MOVE_ROCK_SLIDE, MOVE_AERIAL_ACE, MOVE_EARTHQUAKE},
+ },
+ },
+ // Gold Symbol.
+ {
+ {
+ .species = SPECIES_SWAMPERT,
+ .heldItem = ITEM_LEFTOVERS,
+ .fixedIV = 31,
+ .nature = 2,
+ .evs = {252, 252, 6, 0, 0, 0},
+ .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_MIRROR_COAT},
+ },
+ {
+ .species = SPECIES_METAGROSS,
+ .heldItem = ITEM_QUICK_CLAW,
+ .fixedIV = 31,
+ .nature = 2,
+ .evs = {252, 252, 6, 0, 0, 0},
+ .moves = {MOVE_PSYCHIC, MOVE_METEOR_MASH, MOVE_EARTHQUAKE, MOVE_PROTECT},
+ },
+ {
+ .species = SPECIES_LATIAS,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .fixedIV = 31,
+ .nature = 15,
+ .evs = {252, 0, 252, 6, 0, 0},
+ .moves = {MOVE_THUNDERBOLT, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_REST},
+ },
+ },
+ },
+ [FRONTIER_FACILITY_PALACE] =
+ {
+ // Silver Symbol.
+ {
+ {
+ .species = SPECIES_CROBAT,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .fixedIV = 16,
+ .nature = 3,
+ .evs = {152, 0, 0, 152, 100, 106},
+ .moves = {MOVE_CONFUSE_RAY, MOVE_DOUBLE_TEAM, MOVE_TOXIC, MOVE_FLY},
+ },
+ {
+ .species = SPECIES_SLAKING,
+ .heldItem = ITEM_SCOPE_LENS,
+ .fixedIV = 16,
+ .nature = 0,
+ .evs = {152, 152, 0, 106, 100, 0},
+ .moves = {MOVE_EARTHQUAKE, MOVE_SWAGGER, MOVE_SHADOW_BALL, MOVE_BRICK_BREAK},
+ },
+ {
+ .species = SPECIES_LAPRAS,
+ .heldItem = ITEM_QUICK_CLAW,
+ .fixedIV = 16,
+ .nature = 17,
+ .evs = {0, 0, 252, 0, 106, 152},
+ .moves = {MOVE_ICE_BEAM, MOVE_HORN_DRILL, MOVE_CONFUSE_RAY, MOVE_PROTECT},
+ },
+ },
+ // Gold Symbol.
+ {
+ {
+ .species = SPECIES_ARCANINE,
+ .heldItem = ITEM_WHITE_HERB,
+ .fixedIV = 31,
+ .nature = 11,
+ .evs = {6, 252, 252, 0, 0, 0},
+ .moves = {MOVE_OVERHEAT, MOVE_EXTREME_SPEED, MOVE_ROAR, MOVE_PROTECT},
+ },
+ {
+ .species = SPECIES_SLAKING,
+ .heldItem = ITEM_SCOPE_LENS,
+ .fixedIV = 31,
+ .nature = 0,
+ .evs = {6, 252, 0, 252, 0, 0},
+ .moves = {MOVE_HYPER_BEAM, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_YAWN},
+ },
+ {
+ .species = SPECIES_SUICUNE,
+ .heldItem = ITEM_KINGS_ROCK,
+ .fixedIV = 31,
+ .nature = 11,
+ .evs = {252, 0, 252, 6, 0, 0},
+ .moves = {MOVE_BLIZZARD, MOVE_SURF, MOVE_BITE, MOVE_CALM_MIND},
+ },
+ },
+ },
+ [FRONTIER_FACILITY_ARENA] =
+ {
+ // Silver Symbol.
+ {
+ {
+ .species = SPECIES_HERACROSS,
+ .heldItem = ITEM_SALAC_BERRY,
+ .fixedIV = 20,
+ .nature = 13,
+ .evs = {106, 152, 0, 152, 0, 100},
+ .moves = {MOVE_MEGAHORN, MOVE_ROCK_TOMB, MOVE_ENDURE, MOVE_REVERSAL},
+ },
+ {
+ .species = SPECIES_UMBREON,
+ .heldItem = ITEM_LEFTOVERS,
+ .fixedIV = 20,
+ .nature = 20,
+ .evs = {152, 0, 100, 0, 152, 106},
+ .moves = {MOVE_BODY_SLAM, MOVE_CONFUSE_RAY, MOVE_PSYCHIC, MOVE_FAINT_ATTACK},
+ },
+ {
+ .species = SPECIES_SHEDINJA,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .fixedIV = 20,
+ .nature = 3,
+ .evs = {0, 252, 6, 252, 0, 0},
+ .moves = {MOVE_SHADOW_BALL, MOVE_RETURN, MOVE_CONFUSE_RAY, MOVE_AERIAL_ACE},
+ },
+ },
+ // Gold Symbol.
+ {
+ {
+ .species = SPECIES_UMBREON,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .fixedIV = 31,
+ .nature = 20,
+ .evs = {252, 0, 0, 0, 252, 6},
+ .moves = {MOVE_DOUBLE_EDGE, MOVE_CONFUSE_RAY, MOVE_REST, MOVE_PSYCHIC},
+ },
+ {
+ .species = SPECIES_GENGAR,
+ .heldItem = ITEM_LEFTOVERS,
+ .fixedIV = 31,
+ .nature = 15,
+ .evs = {252, 0, 252, 0, 6, 0},
+ .moves = {MOVE_PSYCHIC, MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_DESTINY_BOND},
+ },
+ {
+ .species = SPECIES_BRELOOM,
+ .heldItem = ITEM_LUM_BERRY,
+ .fixedIV = 31,
+ .nature = 13,
+ .evs = {6, 252, 0, 252, 0, 0},
+ .moves = {MOVE_SPORE, MOVE_FOCUS_PUNCH, MOVE_GIGA_DRAIN, MOVE_HEADBUTT},
+ },
+ },
+ },
+ [FRONTIER_FACILITY_FACTORY] =
+ {
+ // Silver Symbol.
+ {
+ {
+ .species = SPECIES_METANG,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .fixedIV = 31,
+ .nature = 2,
+ .evs = {0, 252, 252, 0, 6, 0},
+ .moves = {MOVE_LIGHT_SCREEN, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_METAL_CLAW},
+ },
+ {
+ .species = SPECIES_SKARMORY,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .fixedIV = 31,
+ .nature = 8,
+ .evs = {252, 0, 0, 0, 6, 252},
+ .moves = {MOVE_TOXIC, MOVE_AERIAL_ACE, MOVE_PROTECT, MOVE_STEEL_WING},
+ },
+ {
+ .species = SPECIES_AGGRON,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .fixedIV = 31,
+ .nature = 3,
+ .evs = {0, 252, 0, 0, 252, 6},
+ .moves = {MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_SOLAR_BEAM, MOVE_DRAGON_CLAW},
+ },
+ },
+ // Gold Symbol.
+ {
+ {
+ .species = SPECIES_METANG,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .fixedIV = 31,
+ .nature = 2,
+ .evs = {0, 252, 252, 0, 6, 0},
+ .moves = {MOVE_LIGHT_SCREEN, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_METAL_CLAW},
+ },
+ {
+ .species = SPECIES_SKARMORY,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .fixedIV = 31,
+ .nature = 8,
+ .evs = {252, 0, 0, 0, 6, 252},
+ .moves = {MOVE_TOXIC, MOVE_AERIAL_ACE, MOVE_PROTECT, MOVE_STEEL_WING},
+ },
+ {
+ .species = SPECIES_AGGRON,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .fixedIV = 31,
+ .nature = 3,
+ .evs = {0, 252, 0, 0, 252, 6},
+ .moves = {MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_SOLAR_BEAM, MOVE_DRAGON_CLAW},
+ },
+ },
+ },
+ [FRONTIER_FACILITY_PIKE] =
+ {
+ // Silver Symbol.
+ {
+ {
+ .species = SPECIES_SEVIPER,
+ .heldItem = ITEM_QUICK_CLAW,
+ .fixedIV = 16,
+ .nature = 2,
+ .evs = {252, 0, 252, 0, 6, 0},
+ .moves = {MOVE_SWAGGER, MOVE_CRUNCH, MOVE_POISON_FANG, MOVE_GIGA_DRAIN},
+ },
+ {
+ .species = SPECIES_SHUCKLE,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .fixedIV = 16,
+ .nature = 5,
+ .evs = {252, 0, 0, 0, 106, 252},
+ .moves = {MOVE_TOXIC, MOVE_SANDSTORM, MOVE_PROTECT, MOVE_REST},
+ },
+ {
+ .species = SPECIES_MILOTIC,
+ .heldItem = ITEM_LEFTOVERS,
+ .fixedIV = 16,
+ .nature = 15,
+ .evs = {152, 0, 100, 0, 152, 106},
+ .moves = {MOVE_ICE_BEAM, MOVE_MIRROR_COAT, MOVE_SURF, MOVE_RECOVER},
+ },
+ },
+ // Gold Symbol.
+ {
+ {
+ .species = SPECIES_SEVIPER,
+ .heldItem = ITEM_FOCUS_BAND,
+ .fixedIV = 31,
+ .nature = 5,
+ .evs = {252, 0, 0, 0, 252, 6},
+ .moves = {MOVE_SWAGGER, MOVE_CRUNCH, MOVE_SLUDGE_BOMB, MOVE_GIGA_DRAIN},
+ },
+ {
+ .species = SPECIES_STEELIX,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .fixedIV = 31,
+ .nature = 2,
+ .evs = {252, 0, 0, 0, 6, 252},
+ .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_EXPLOSION, MOVE_SCREECH},
+ },
+ {
+ .species = SPECIES_GYARADOS,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .fixedIV = 31,
+ .nature = 3,
+ .evs = {252, 6, 0, 0, 0, 252},
+ .moves = {MOVE_DRAGON_DANCE, MOVE_RETURN, MOVE_ROAR, MOVE_REST},
+ },
+ },
+ },
+ [FRONTIER_FACILITY_PYRAMID] =
+ {
+ // Silver Symbol.
+ {
+ {
+ .species = SPECIES_REGIROCK,
+ .heldItem = ITEM_QUICK_CLAW,
+ .fixedIV = 16,
+ .nature = 3,
+ .evs = {152, 152, 0, 0, 106, 100},
+ .moves = {MOVE_EXPLOSION, MOVE_SUPERPOWER, MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER},
+ },
+ {
+ .species = SPECIES_REGISTEEL,
+ .heldItem = ITEM_LEFTOVERS,
+ .fixedIV = 16,
+ .nature = 3,
+ .evs = {152, 152, 0, 0, 6, 200},
+ .moves = {MOVE_EARTHQUAKE, MOVE_METAL_CLAW, MOVE_TOXIC, MOVE_IRON_DEFENSE},
+ },
+ {
+ .species = SPECIES_REGICE,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .fixedIV = 16,
+ .nature = 15,
+ .evs = {106, 0, 152, 0, 100, 152},
+ .moves = {MOVE_ICE_BEAM, MOVE_AMNESIA, MOVE_THUNDER, MOVE_REST},
+ },
+ },
+ // Gold Symbol.
+ {
+ {
+ .species = SPECIES_ARTICUNO,
+ .heldItem = ITEM_SCOPE_LENS,
+ .fixedIV = 31,
+ .nature = 16,
+ .evs = {6, 0, 252, 252, 0, 0},
+ .moves = {MOVE_BLIZZARD, MOVE_WATER_PULSE, MOVE_AERIAL_ACE, MOVE_REFLECT},
+ },
+ {
+ .species = SPECIES_ZAPDOS,
+ .heldItem = ITEM_LUM_BERRY,
+ .fixedIV = 31,
+ .nature = 16,
+ .evs = {6, 0, 252, 252, 0, 0},
+ .moves = {MOVE_THUNDER, MOVE_DETECT, MOVE_DRILL_PECK, MOVE_LIGHT_SCREEN},
+ },
+ {
+ .species = SPECIES_MOLTRES,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .fixedIV = 31,
+ .nature = 16,
+ .evs = {6, 0, 252, 252, 0, 0},
+ .moves = {MOVE_FIRE_BLAST, MOVE_HYPER_BEAM, MOVE_AERIAL_ACE, MOVE_SAFEGUARD},
+ },
+ },
+ },
+};
+
+static const u8 gUnknown_086118B4[][7][4] =
+{
+ {
+ {1, 2, 3, 3}, {1, 1, 0, 0}, {4, 5, 0, 0}, {1, 0, 0, 0}, {3, 4, 0, 0}, {1, 0, 0, 0}, {5, 0, 0, 0}
+ },
+ {
+ {2, 3, 4, 4}, {1, 1, 0, 0}, {4, 5, 0, 0}, {1, 0, 0, 0}, {3, 4, 0, 0}, {1, 0, 0, 0}, {5, 0, 0, 0}
+ },
+ {
+ {3, 4, 5, 5}, {2, 2, 0, 0}, {5, 6, 0, 0}, {1, 0, 0, 0}, {4, 5, 0, 0}, {2, 0, 0, 0}, {6, 0, 0, 0}
+ },
+ {
+ {4, 5, 6, 6}, {2, 2, 0, 0}, {5, 6, 0, 0}, {2, 0, 0, 0}, {4, 5, 0, 0}, {2, 0, 0, 0}, {6, 0, 0, 0}
+ },
+ {
+ {5, 6, 7, 7}, {3, 3, 0, 0}, {6, 7, 0, 0}, {2, 0, 0, 0}, {5, 6, 0, 0}, {2, 0, 0, 0}, {7, 0, 0, 0}
+ },
+ {
+ {6, 7, 8, 8}, {3, 3, 0, 0}, {6, 7, 0, 0}, {2, 0, 0, 0}, {5, 6, 0, 0}, {4, 0, 0, 0}, {7, 0, 0, 0}
+ },
+ {
+ {7, 8, 9, 9}, {4, 4, 0, 0}, {7, 8, 0, 0}, {3, 0, 0, 0}, {6, 7, 0, 0}, {4, 0, 0, 0}, {8, 0, 0, 0}
+ },
+ {
+ {8, 9, 10, 10}, {4, 4, 0, 0}, {7, 8, 0, 0}, {3, 0, 0, 0},{6, 7, 0, 0}, {4, 0, 0, 0}, {8, 0, 0, 0}
+ },
+ {
+ {9, 10, 11, 11}, {5, 5, 0, 0}, {8, 9, 0, 0}, {4, 0, 0, 0}, {7, 8, 0, 0}, {8, 0, 0, 0}, {9, 0, 0, 0}
+ },
+ {
+ {10, 11, 12, 12}, {5, 5, 0, 0}, {8, 9, 0, 0}, {4, 0, 0, 0}, {7, 8, 0, 0}, {8, 0, 0, 0}, {9, 0, 0, 0}
+ },
+ {
+ {11, 12, 13, 13}, {6, 6, 0, 0}, {9, 10, 0, 0}, {5, 0, 0,0}, {8, 9, 0, 0}, {8, 0, 0, 0}, {10, 0, 0, 0}
+ },
+ {
+ {12, 13, 14, 14}, {6, 6, 0, 0}, {9, 10, 0, 0}, {6, 0, 0,0}, {8, 9, 0, 0}, {8, 0, 0, 0}, {10, 0, 0, 0}
+ },
+ {
+ {13, 14, 15, 15}, {7, 7, 0, 0}, {10, 11, 0, 0}, {7, 0, 0, 0}, {9, 10, 0, 0}, {10, 0, 0, 0}, {11, 0, 0, 0}
+ },
+ {
+ {14, 15, 15, 15}, {7, 7, 0, 0}, {10, 11, 0, 0}, {8, 0, 0, 0}, {9, 10, 0, 0}, {10, 0, 0, 0}, {11, 0, 0, 0}
+ },
+ {
+ {15, 15, 15, 15}, {8, 8, 0, 0}, {11, 12, 0, 0}, {9, 0, 0, 0}, {10, 11, 0, 0}, {10, 0, 0, 0}, {12, 0, 0, 0}
+ },
+ {
+ {15, 15, 15, 15}, {8, 8, 0, 0}, {11, 12, 0, 0}, {10, 0, 0, 0}, {10, 11, 0, 0}, {10, 0, 0, 0}, {12, 0, 0, 0}
+ },
+ {
+ {15, 15, 15, 15}, {9, 9, 0, 0}, {12, 13, 0, 0}, {11, 0, 0, 0}, {11, 12, 0, 0}, {12, 0, 0, 0}, {13, 0, 0, 0}
+ },
+ {
+ {15, 15, 15, 15}, {9, 9, 0, 0}, {12, 13, 0, 0}, {12, 0, 0, 0}, {11, 12, 0, 0}, {12, 0, 0, 0}, {13, 0, 0, 0}
+ },
+ {
+ {15, 15, 15, 15}, {10, 10, 0, 0}, {13, 14, 0, 0}, {13, 0, 0, 0}, {12, 13, 0, 0}, {12, 0, 0, 0}, {14, 0, 0, 0}
+ },
+ {
+ {15, 15, 15, 15}, {10, 10, 0, 0}, {13, 14, 0, 0}, {14, 0, 0, 0}, {12, 13, 0, 0}, {12, 0, 0, 0}, {14, 0, 0, 0}
+ },
+ {
+ {15, 15, 15, 15}, {11, 11, 0, 0}, {14, 15, 0, 0}, {15, 0, 0, 0}, {13, 14, 0, 0}, {12, 0, 0, 0}, {15, 0, 0, 0}
+ },
+ {
+ {15, 15, 15, 15}, {11, 11, 0, 0}, {14, 15, 0, 0}, {15, 0, 0, 0}, {13, 14, 0, 0}, {14, 0, 0, 0}, {15, 0, 0, 0}
+ },
+ {
+ {15, 15, 15, 15}, {12, 12, 0, 0}, {15, 15, 0, 0}, {15, 0, 0, 0}, {14, 15, 0, 0}, {14, 0, 0, 0}, {15, 0, 0, 0}
+ },
+ {
+ {15, 15, 15, 15}, {12, 12, 0, 0}, {15, 15, 0, 0}, {15, 0, 0, 0}, {14, 15, 0, 0}, {14, 0, 0, 0}, {15, 0, 0, 0}
+ },
+ {
+ {15, 15, 15, 15}, {13, 13, 0, 0}, {15, 15, 0, 0}, {15, 0, 0, 0}, {15, 15, 0, 0}, {14, 0, 0, 0}, {15, 0, 0, 0}
+ },
+ {
+ {15, 15, 15, 15}, {13, 13, 0, 0}, {15, 15, 0, 0}, {15, 0, 0, 0}, {15, 15, 0, 0}, {15, 0, 0, 0}, {15, 0, 0, 0}
+ },
+ {
+ {15, 15, 15, 15}, {14, 14, 0, 0}, {15, 15, 0, 0}, {15, 0, 0, 0}, {15, 15, 0, 0}, {15, 0, 0, 0}, {15, 0, 0, 0}
+ },
+ {
+ {15, 15, 15, 15}, {14, 14, 0, 0}, {15, 15, 0, 0}, {15, 0, 0, 0}, {15, 15, 0, 0}, {15, 0, 0, 0}, {15, 0, 0, 0}
+ },
+ {
+ {15, 15, 15, 15}, {15, 15, 0, 0}, {15, 15, 0, 0}, {15, 0, 0, 0}, {15, 15, 0, 0}, {15, 0, 0, 0}, {15, 0, 0, 0}
+ },
+ {
+ {15, 15, 15, 15}, {15, 15, 0, 0}, {15, 15, 0, 0}, {15, 0, 0, 0}, {15, 15, 0, 0}, {15, 0, 0, 0}, {15, 0, 0, 0}
+ },
+};
+
+static const u16 gUnknown_08611BFC[][2] =
+{
+ [FRONTIER_FACILITY_TOWER] = {0x0001, 0x0002},
+ [FRONTIER_FACILITY_DOME] = {0x0004, 0x0008},
+ [FRONTIER_FACILITY_PALACE] = {0x0010, 0x0020},
+ [FRONTIER_FACILITY_ARENA] = {0x0040, 0x0080},
+ [FRONTIER_FACILITY_FACTORY] = {0x0100, 0x0200},
+ [FRONTIER_FACILITY_PIKE] = {0x0400, 0x0800},
+ [FRONTIER_FACILITY_PYRAMID] = {0x1000, 0x2000},
+};
+
+static void (* const sFrontierUtilFuncs[])(void) =
+{
+ sub_81A17A0,
+ sub_81A1830,
+ sub_81A1968,
+ sub_81A1AD4,
+ DoSoftReset_,
+ sub_81A1B28,
+ sub_81A1B38,
+ ShowFacilityResultsWindow,
+ sub_81A31FC,
+ sub_81A35EC,
+ sub_81A3B00,
+ sub_81A3B64,
+ sub_81A3D30,
+ sub_81A3D58,
+ sub_81A3DA0,
+ sub_81A3FD4,
+ sub_81A4224,
+ sub_81A4230,
+ sub_81A43A8,
+ sub_81A4410,
+ sub_81A443C,
+ sub_81A447C,
+ sub_81A457C,
+};
+
+static const struct WindowTemplate gUnknown_08611C74 =
+{
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 1,
+ .width = 0x1c,
+ .height = 0x12,
+ .paletteNum = 15,
+ .baseBlock = 1
+};
+
+static const struct WindowTemplate gUnknown_08611C7C =
+{
+ .bg = 0,
+ .tilemapLeft = 2,
+ .tilemapTop = 2,
+ .width = 0x1a,
+ .height = 15,
+ .paletteNum = 15,
+ .baseBlock = 1
+};
+
+static const struct WindowTemplate gUnknown_08611C84 =
+{
+ .bg = 0,
+ .tilemapLeft = 2,
+ .tilemapTop = 1,
+ .width = 0x1a,
+ .height = 17,
+ .paletteNum = 15,
+ .baseBlock = 1
+};
+
+// Second field - whether the character is female.
+static const u8 sFacilityToBrainEventObjGfx[][2] =
+{
+ [FRONTIER_FACILITY_TOWER] = {EVENT_OBJ_GFX_ANABEL, TRUE},
+ [FRONTIER_FACILITY_DOME] = {EVENT_OBJ_GFX_TUCKER, FALSE},
+ [FRONTIER_FACILITY_PALACE] = {EVENT_OBJ_GFX_SPENSER, FALSE},
+ [FRONTIER_FACILITY_ARENA] = {EVENT_OBJ_GFX_GRETA, TRUE},
+ [FRONTIER_FACILITY_FACTORY] = {EVENT_OBJ_GFX_NOLAND, FALSE},
+ [FRONTIER_FACILITY_PIKE] = {EVENT_OBJ_GFX_LUCY, TRUE},
+ [FRONTIER_FACILITY_PYRAMID] = {EVENT_OBJ_GFX_BRANDON, FALSE},
+};
+
+const u16 gFrontierBannedSpecies[] =
+{
+ SPECIES_MEW, SPECIES_MEWTWO, SPECIES_HO_OH, SPECIES_LUGIA, SPECIES_CELEBI,
+ SPECIES_KYOGRE, SPECIES_GROUDON, SPECIES_RAYQUAZA, SPECIES_JIRACHI, SPECIES_DEOXYS, 0xFFFF
+};
+
+// code
+void CallFrontierUtilFunc(void)
+{
+ sFrontierUtilFuncs[gSpecialVar_0x8004]();
+}
+
+static void sub_81A17A0(void)
+{
+ VarSet(VAR_TEMP_0, 0xFF);
+ switch (gSaveBlock2Ptr->frontier.field_CA8)
+ {
+ case 0:
+ break;
+ case 1:
+ sub_813A878(0);
+ VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.field_CA8);
+ break;
+ case 4:
+ sub_813A878(0);
+ VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.field_CA8);
+ break;
+ case 3:
+ sub_813A878(1);
+ VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.field_CA8);
+ break;
+ case 2:
+ VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.field_CA8);
+ break;
+ }
+}
+
+static void sub_81A1830(void)
+{
+ u8 facility = VarGet(VAR_FRONTIER_FACILITY);
+ u8 currSymbol = GetPlayerSymbolCountForFacility(facility);
+ if (currSymbol == 2)
+ currSymbol = 1;
+
+ switch (gSpecialVar_0x8005)
+ {
+ case 0:
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CA8;
+ break;
+ case 1:
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.lvlMode;
+ break;
+ case 2:
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.curChallengeBattleNum;
+ break;
+ case 3:
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CA9_a;
+ break;
+ case 5:
+ gSpecialVar_Result = gBattleOutcome;
+ gBattleOutcome = 0;
+ break;
+ case 6:
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CA9_b;
+ break;
+ case 7:
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D00 & gUnknown_08611BFC[facility][currSymbol];
+ break;
+ }
+}
+
+static void sub_81A1968(void)
+{
+ s32 i;
+ u8 facility = VarGet(VAR_FRONTIER_FACILITY);
+ u8 currSymbol = GetPlayerSymbolCountForFacility(facility);
+ if (currSymbol == 2)
+ currSymbol = 1;
+
+ switch (gSpecialVar_0x8005)
+ {
+ case 0:
+ gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8006;
+ break;
+ case 1:
+ gSaveBlock2Ptr->frontier.lvlMode = gSpecialVar_0x8006;
+ break;
+ case 2:
+ gSaveBlock2Ptr->frontier.curChallengeBattleNum = gSpecialVar_0x8006;
+ break;
+ case 3:
+ gSaveBlock2Ptr->frontier.field_CA9_a = gSpecialVar_0x8006;
+ break;
+ case 4:
+ for (i = 0; i < 4; i++)
+ gSaveBlock2Ptr->frontier.selectedPartyMons[i] = gUnknown_0203CEF8[i];
+ break;
+ case 6:
+ gSaveBlock2Ptr->frontier.field_CA9_b = gSpecialVar_0x8006;
+ break;
+ case 7:
+ gSaveBlock2Ptr->frontier.field_D00 |= gUnknown_08611BFC[facility][currSymbol];
+ break;
+ }
+}
+
+static void sub_81A1AD4(void)
+{
+ s32 i;
+
+ sub_81B8558();
+ for (i = 0; i < gSpecialVar_0x8005; i++)
+ gUnknown_0203CEF8[i] = gSaveBlock2Ptr->frontier.selectedPartyMons[i];
+ ReducePlayerPartyToThree();
+}
+
+static void DoSoftReset_(void)
+{
+ DoSoftReset();
+}
+
+static void sub_81A1B28(void)
+{
+ gFacilityTrainers = gBattleFrontierTrainers;
+}
+
+static void sub_81A1B38(void)
+{
+ u8 i;
+
+ for (i = 0; i < 4; i++)
+ {
+ u16 monId = gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1;
+ if (monId < PARTY_SIZE)
+ gSaveBlock1Ptr->playerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1] = gPlayerParty[i];
+ }
+}
+
+static void ShowFacilityResultsWindow(void)
+{
+ if (gSpecialVar_0x8006 > 3)
+ gSpecialVar_0x8006 = 0;
+ switch (gSpecialVar_0x8005)
+ {
+ case FRONTIER_FACILITY_TOWER:
+ ShowTowerResultsWindow(gSpecialVar_0x8006);
+ break;
+ case FRONTIER_FACILITY_DOME:
+ ShowDomeResultsWindow(gSpecialVar_0x8006);
+ break;
+ case FRONTIER_FACILITY_PALACE:
+ ShowPalaceResultsWindow(gSpecialVar_0x8006);
+ break;
+ case FRONTIER_FACILITY_PIKE:
+ ShowPikeResultsWindow();
+ break;
+ case FRONTIER_FACILITY_FACTORY:
+ ShowFactoryResultsWindow(gSpecialVar_0x8006);
+ break;
+ case FRONTIER_FACILITY_ARENA:
+ ShowArenaResultsWindow();
+ break;
+ case FRONTIER_FACILITY_PYRAMID:
+ ShowPyramidResultsWindow();
+ break;
+ case RESULTS_LINK_CONTEST:
+ ShowLinkContestResultsWindow();
+ break;
+ }
+}
+
+static bool8 sub_81A1C24(u32 flags)
+{
+ if (gSaveBlock2Ptr->frontier.field_CDC & flags)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+static void PrintAligned(const u8 *str, s32 y)
+{
+ s32 x = GetStringCenterAlignXOffset(1, str, 224);
+ y = (y * 8) + 1;
+ AddTextPrinterParameterized(gRecordsWindowId, 1, str, x, y, TEXT_SPEED_FF, NULL);
+}
+
+static void PrintHyphens(s32 y)
+{
+ s32 i;
+ u8 text[37];
+
+ for (i = 0; i < 36; i++)
+ text[i] = CHAR_HYPHEN;
+ text[i] = EOS;
+
+ y = (y * 8) + 1;
+ AddTextPrinterParameterized(gRecordsWindowId, 1, text, 4, y, TEXT_SPEED_FF, NULL);
+}
+
+// Battle Tower records.
+static void TowerPrintStreak(const u8 *str, u16 num, u8 x1, u8 x2, u8 y)
+{
+ AddTextPrinterParameterized(gRecordsWindowId, 1, str, x1, y, TEXT_SPEED_FF, NULL);
+ if (num > 9999)
+ num = 9999;
+ ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_RIGHT_ALIGN, 4);
+ StringExpandPlaceholders(gStringVar4, gText_WinStreak);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x2, y, TEXT_SPEED_FF, NULL);
+}
+
+static void TowerPrintRecordStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x2, u8 y)
+{
+ u16 num = gSaveBlock2Ptr->frontier.towerRecordWinStreaks[battleMode][lvlMode];
+ TowerPrintStreak(gText_Record, num, x1, x2, y);
+}
+
+static u16 TowerGetWinStreak(u8 battleMode, u8 lvlMode)
+{
+ u16 winStreak = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode];
+ if (winStreak > 9999)
+ return 9999;
+ else
+ return winStreak;
+}
+
+static void TowerPrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x2, u8 y)
+{
+ bool8 isCurrent;
+ u16 winStreak = TowerGetWinStreak(battleMode, lvlMode);
+ switch (battleMode)
+ {
+ default:
+ case FRONTIER_MODE_SINGLES:
+ if (lvlMode != FRONTIER_LVL_50)
+ isCurrent = sub_81A1C24(2);
+ else
+ isCurrent = sub_81A1C24(1);
+ break;
+ case FRONTIER_MODE_DOUBLES:
+ if (lvlMode != FRONTIER_LVL_50)
+ isCurrent = sub_81A1C24(0x8000);
+ else
+ isCurrent = sub_81A1C24(0x4000);
+ break;
+ case FRONTIER_MODE_MULTIS:
+ if (lvlMode != FRONTIER_LVL_50)
+ isCurrent = sub_81A1C24(0x20000);
+ else
+ isCurrent = sub_81A1C24(0x10000);
+ break;
+ case FRONTIER_MODE_LINK_MULTIS:
+ if (lvlMode != FRONTIER_LVL_50)
+ isCurrent = sub_81A1C24(0x80000);
+ else
+ isCurrent = sub_81A1C24(0x40000);
+ break;
+ }
+
+ if (isCurrent == TRUE)
+ TowerPrintStreak(gText_Current, winStreak, x1, x2, y);
+ else
+ TowerPrintStreak(gText_Prev, winStreak, x1, x2, y);
+}
+
+static void ShowTowerResultsWindow(u8 battleMode)
+{
+ gRecordsWindowId = AddWindow(&gUnknown_08611C74);
+ NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE);
+ FillWindowPixelBuffer(gRecordsWindowId, 0x11);
+ if (battleMode == FRONTIER_MODE_SINGLES)
+ StringExpandPlaceholders(gStringVar4, gText_SingleBattleRoomResults);
+ else if (battleMode == FRONTIER_MODE_DOUBLES)
+ StringExpandPlaceholders(gStringVar4, gText_DoubleBattleRoomResults);
+ else if (battleMode == FRONTIER_MODE_MULTIS)
+ StringExpandPlaceholders(gStringVar4, gText_MultiBattleRoomResults);
+ else
+ StringExpandPlaceholders(gStringVar4, gText_LinkMultiBattleRoomResults);
+
+ PrintAligned(gStringVar4, 2);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_Lv502, 16, 49, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_OpenLv, 16, 97, TEXT_SPEED_FF, NULL);
+ PrintHyphens(10);
+ TowerPrintPrevOrCurrentStreak(battleMode, FRONTIER_LVL_50, 72, 132, 49);
+ TowerPrintRecordStreak(battleMode, FRONTIER_LVL_50, 72, 132, 65);
+ TowerPrintPrevOrCurrentStreak(battleMode, FRONTIER_LVL_OPEN, 72, 132, 97);
+ TowerPrintRecordStreak(battleMode, FRONTIER_LVL_OPEN, 72, 132, 113);
+ PutWindowTilemap(gRecordsWindowId);
+ CopyWindowToVram(gRecordsWindowId, 3);
+}
+
+// Battle Dome records.
+static u16 DomeGetWinStreak(u8 battleMode, u8 lvlMode)
+{
+ u16 winStreak = gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode];
+ if (winStreak > 9999)
+ return 9999;
+ else
+ return winStreak;
+}
+
+static void PrintTwoStrings(const u8 *str1, const u8 *str2, u16 num, u8 x1, u8 x2, u8 y)
+{
+ AddTextPrinterParameterized(gRecordsWindowId, 1, str1, x1, y, TEXT_SPEED_FF, NULL);
+ ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_RIGHT_ALIGN, 4);
+ StringExpandPlaceholders(gStringVar4, str2);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x2, y, TEXT_SPEED_FF, NULL);
+}
+
+static void DomePrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x2, u8 y)
+{
+ bool8 isCurrent;
+ u16 winStreak = DomeGetWinStreak(battleMode, lvlMode);
+ switch (battleMode)
+ {
+ default:
+ case FRONTIER_MODE_SINGLES:
+ if (lvlMode != FRONTIER_LVL_50)
+ isCurrent = sub_81A1C24(8);
+ else
+ isCurrent = sub_81A1C24(4);
+ break;
+ case FRONTIER_MODE_DOUBLES:
+ if (lvlMode != FRONTIER_LVL_50)
+ isCurrent = sub_81A1C24(0x200000);
+ else
+ isCurrent = sub_81A1C24(0x100000);
+ break;
+ }
+
+ if (isCurrent == TRUE)
+ PrintTwoStrings(gText_Current, gText_ClearStreak, winStreak, x1, x2, y);
+ else
+ PrintTwoStrings(gText_Prev, gText_ClearStreak, winStreak, x1, x2, y);
+}
+
+static void ShowDomeResultsWindow(u8 battleMode)
+{
+ gRecordsWindowId = AddWindow(&gUnknown_08611C74);
+ NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE);
+ FillWindowPixelBuffer(gRecordsWindowId, 0x11);
+ if (battleMode == FRONTIER_MODE_SINGLES)
+ StringExpandPlaceholders(gStringVar4, gText_SingleBattleTourneyResults);
+ else
+ StringExpandPlaceholders(gStringVar4, gText_DoubleBattleTourneyResults);
+
+ PrintAligned(gStringVar4, 0);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_Lv502, 8, 33, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_OpenLv, 8, 97, TEXT_SPEED_FF, NULL);
+ PrintHyphens(10);
+ DomePrintPrevOrCurrentStreak(battleMode, FRONTIER_LVL_50, 64, 121, 33);
+ PrintTwoStrings(gText_Record, gText_ClearStreak, gSaveBlock2Ptr->frontier.domeRecordWinStreaks[battleMode][FRONTIER_LVL_50], 64, 121, 49);
+ PrintTwoStrings(gText_Total, gText_Championships, gSaveBlock2Ptr->frontier.domeTotalChampionships[battleMode][FRONTIER_LVL_50], 64, 112, 65);
+ DomePrintPrevOrCurrentStreak(battleMode, FRONTIER_LVL_OPEN, 64, 121, 97);
+ PrintTwoStrings(gText_Record, gText_ClearStreak, gSaveBlock2Ptr->frontier.domeRecordWinStreaks[battleMode][FRONTIER_LVL_OPEN], 64, 121, 113);
+ PrintTwoStrings(gText_Total, gText_Championships, gSaveBlock2Ptr->frontier.domeTotalChampionships[battleMode][FRONTIER_LVL_OPEN], 64, 112, 129);
+ PutWindowTilemap(gRecordsWindowId);
+ CopyWindowToVram(gRecordsWindowId, 3);
+}
+
+// Battle Palace records.
+static void PalacePrintStreak(const u8 *str, u16 num, u8 x1, u8 x2, u8 y)
+{
+ AddTextPrinterParameterized(gRecordsWindowId, 1, str, x1, y, TEXT_SPEED_FF, NULL);
+ if (num > 9999)
+ num = 9999;
+ ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_RIGHT_ALIGN, 4);
+ StringExpandPlaceholders(gStringVar4, gText_WinStreak);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x2, y, TEXT_SPEED_FF, NULL);
+}
+
+static void PalacePrintRecordStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x2, u8 y)
+{
+ u16 num = gSaveBlock2Ptr->frontier.palaceRecordWinStreaks[battleMode][lvlMode];
+ PalacePrintStreak(gText_Record, num, x1, x2, y);
+}
+
+static u16 PalaceGetWinStreak(u8 battleMode, u8 lvlMode)
+{
+ u16 winStreak = gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode];
+ if (winStreak > 9999)
+ return 9999;
+ else
+ return winStreak;
+}
+
+static void PalacePrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x2, u8 y)
+{
+ bool8 isCurrent;
+ u16 winStreak = PalaceGetWinStreak(battleMode, lvlMode);
+ switch (battleMode)
+ {
+ default:
+ case FRONTIER_MODE_SINGLES:
+ if (lvlMode != FRONTIER_LVL_50)
+ isCurrent = sub_81A1C24(0x20);
+ else
+ isCurrent = sub_81A1C24(0x10);
+ break;
+ case FRONTIER_MODE_DOUBLES:
+ if (lvlMode != FRONTIER_LVL_50)
+ isCurrent = sub_81A1C24(0x800000);
+ else
+ isCurrent = sub_81A1C24(0x400000);
+ }
+
+ if (isCurrent == TRUE)
+ PalacePrintStreak(gText_Current, winStreak, x1, x2, y);
+ else
+ PalacePrintStreak(gText_Prev, winStreak, x1, x2, y);
+}
+
+static void ShowPalaceResultsWindow(u8 battleMode)
+{
+ gRecordsWindowId = AddWindow(&gUnknown_08611C74);
+ NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE);
+ FillWindowPixelBuffer(gRecordsWindowId, 0x11);
+ if (battleMode == FRONTIER_MODE_SINGLES)
+ StringExpandPlaceholders(gStringVar4, gText_SingleBattleHallResults);
+ else
+ StringExpandPlaceholders(gStringVar4, gText_DoubleBattleHallResults);
+
+ PrintAligned(gStringVar4, 2);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_Lv502, 16, 49, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_OpenLv, 16, 97, TEXT_SPEED_FF, NULL);
+ PrintHyphens(10);
+ PalacePrintPrevOrCurrentStreak(battleMode, FRONTIER_LVL_50, 72, 131, 49);
+ PalacePrintRecordStreak(battleMode, FRONTIER_LVL_50, 72, 131, 65);
+ PalacePrintPrevOrCurrentStreak(battleMode, FRONTIER_LVL_OPEN, 72, 131, 97);
+ PalacePrintRecordStreak(battleMode, FRONTIER_LVL_OPEN, 72, 131, 113);
+ PutWindowTilemap(gRecordsWindowId);
+ CopyWindowToVram(gRecordsWindowId, 3);
+}
+
+// Battle Pike records.
+static u16 PikeGetWinStreak(u8 lvlMode)
+{
+ u16 winStreak = gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode];
+ if (winStreak > 9999)
+ return 9999;
+ else
+ return winStreak;
+}
+
+static void PikePrintCleared(const u8 *str1, const u8 *str2, u16 num, u8 x1, u8 x2, u8 y)
+{
+ AddTextPrinterParameterized(gRecordsWindowId, 1, str1, x1, y, TEXT_SPEED_FF, NULL);
+ ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_RIGHT_ALIGN, 4);
+ StringExpandPlaceholders(gStringVar4, str2);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x2, y, TEXT_SPEED_FF, NULL);
+}
+
+static void PikePrintPrevOrCurrentStreak(u8 lvlMode, u8 x1, u8 x2, u8 y)
+{
+ bool8 isCurrent;
+ u16 winStreak = PikeGetWinStreak(lvlMode);
+
+ if (lvlMode != FRONTIER_LVL_50)
+ isCurrent = sub_81A1C24(0x800);
+ else
+ isCurrent = sub_81A1C24(0x400);
+
+ if (isCurrent == TRUE)
+ PrintTwoStrings(gText_Current, gText_RoomsCleared, winStreak, x1, x2, y);
+ else
+ PrintTwoStrings(gText_Prev, gText_RoomsCleared, winStreak, x1, x2, y);
+}
+
+static void ShowPikeResultsWindow(void)
+{
+ gRecordsWindowId = AddWindow(&gUnknown_08611C74);
+ NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE);
+ FillWindowPixelBuffer(gRecordsWindowId, 0x11);
+ StringExpandPlaceholders(gStringVar4, gText_BattleChoiceResults);
+ PrintAligned(gStringVar4, 0);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_Lv502, 8, 33, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_OpenLv, 8, 97, TEXT_SPEED_FF, NULL);
+ PrintHyphens(10);
+ PikePrintPrevOrCurrentStreak(FRONTIER_LVL_50, 64, 114, 33);
+ PikePrintCleared(gText_Record, gText_RoomsCleared, gSaveBlock2Ptr->frontier.pikeRecordStreaks[FRONTIER_LVL_50], 64, 114, 49);
+ PikePrintCleared(gText_Total, gText_TimesCleared, gSaveBlock2Ptr->frontier.pikeTotalStreaks[FRONTIER_LVL_50], 64, 114, 65);
+ PikePrintPrevOrCurrentStreak(FRONTIER_LVL_OPEN, 64, 114, 97);
+ PikePrintCleared(gText_Record, gText_RoomsCleared, gSaveBlock2Ptr->frontier.pikeRecordStreaks[FRONTIER_LVL_OPEN], 64, 114, 113);
+ PikePrintCleared(gText_Total, gText_TimesCleared, gSaveBlock2Ptr->frontier.pikeTotalStreaks[FRONTIER_LVL_OPEN], 64, 114, 129);
+ PutWindowTilemap(gRecordsWindowId);
+ CopyWindowToVram(gRecordsWindowId, 3);
+}
+
+// Battle Arena records.
+static void ArenaPrintStreak(const u8 *str, u16 num, u8 x1, u8 x2, u8 y)
+{
+ AddTextPrinterParameterized(gRecordsWindowId, 1, str, x1, y, TEXT_SPEED_FF, NULL);
+ if (num > 9999)
+ num = 9999;
+ ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_RIGHT_ALIGN, 4);
+ StringExpandPlaceholders(gStringVar4, gText_KOsInARow);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x2, y, TEXT_SPEED_FF, NULL);
+}
+
+static void ArenaPrintRecordStreak(u8 lvlMode, u8 x1, u8 x2, u8 y)
+{
+ u16 num = gSaveBlock2Ptr->frontier.arenaRecordStreaks[lvlMode];
+ ArenaPrintStreak(gText_Record, num, x1, x2, y);
+}
+
+static u16 ArenaGetWinStreak(u8 lvlMode)
+{
+ u16 winStreak = gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode];
+ if (winStreak > 9999)
+ return 9999;
+ else
+ return winStreak;
+}
+
+static void ArenaPrintPrevOrCurrentStreak(u8 lvlMode, u8 x1, u8 x2, u8 y)
+{
+ bool8 isCurrent;
+ u16 winStreak = ArenaGetWinStreak(lvlMode);
+
+ if (lvlMode != FRONTIER_LVL_50)
+ isCurrent = sub_81A1C24(0x80);
+ else
+ isCurrent = sub_81A1C24(0x40);
+
+ if (isCurrent == TRUE)
+ ArenaPrintStreak(gText_Current, winStreak, x1, x2, y);
+ else
+ ArenaPrintStreak(gText_Prev, winStreak, x1, x2, y);
+}
+
+static void ShowArenaResultsWindow(void)
+{
+ gRecordsWindowId = AddWindow(&gUnknown_08611C74);
+ NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE);
+ FillWindowPixelBuffer(gRecordsWindowId, 0x11);
+ PrintHyphens(10);
+ StringExpandPlaceholders(gStringVar4, gText_SetKOTourneyResults);
+ PrintAligned(gStringVar4, 2);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_Lv502, 16, 49, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_OpenLv, 16, 97, TEXT_SPEED_FF, NULL);
+ ArenaPrintPrevOrCurrentStreak(FRONTIER_LVL_50, 72, 126, 49);
+ ArenaPrintRecordStreak(FRONTIER_LVL_50, 72, 126, 65);
+ ArenaPrintPrevOrCurrentStreak(FRONTIER_LVL_OPEN, 72, 126, 97);
+ ArenaPrintRecordStreak(FRONTIER_LVL_OPEN, 72, 126, 113);
+ PutWindowTilemap(gRecordsWindowId);
+ CopyWindowToVram(gRecordsWindowId, 3);
+}
+
+// Battle Factory records.
+static void FactoryPrintStreak(const u8 *str, u16 num1, u16 num2, u8 x1, u8 x2, u8 x3, u8 y)
+{
+ AddTextPrinterParameterized(gRecordsWindowId, 1, str, x1, y, TEXT_SPEED_FF, NULL);
+ if (num1 > 9999)
+ num1 = 9999;
+ ConvertIntToDecimalStringN(gStringVar1, num1, STR_CONV_MODE_RIGHT_ALIGN, 4);
+ StringExpandPlaceholders(gStringVar4, gText_WinStreak);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x2, y, TEXT_SPEED_FF, NULL);
+
+ ConvertIntToDecimalStringN(gStringVar1, num2, STR_CONV_MODE_RIGHT_ALIGN, 4);
+ StringExpandPlaceholders(gStringVar4, gText_TimesVar1);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x3, y, TEXT_SPEED_FF, NULL);
+}
+
+static void FactoryPrintRecordStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x2, u8 x3, u8 y)
+{
+ u16 num1 = gSaveBlock2Ptr->frontier.factoryRecordWinStreaks[battleMode][lvlMode];
+ u16 num2 = gSaveBlock2Ptr->frontier.factoryRecordRentsCount[battleMode][lvlMode];
+ FactoryPrintStreak(gText_Record, num1, num2, x1, x2, x3, y);
+}
+
+static u16 FactoryGetWinStreak(u8 battleMode, u8 lvlMode)
+{
+ u16 winStreak = gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode];
+ if (winStreak > 9999)
+ return 9999;
+ else
+ return winStreak;
+}
+
+static u16 FactoryGetRentsCount(u8 battleMode, u8 lvlMode)
+{
+ u16 rents = gSaveBlock2Ptr->frontier.factoryRentsCount[battleMode][lvlMode];
+ if (rents > 9999)
+ return 9999;
+ else
+ return rents;
+}
+
+static void FactoryPrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x2, u8 x3, u8 y)
+{
+ bool8 isCurrent;
+ u16 winStreak = FactoryGetWinStreak(battleMode, lvlMode);
+ u16 rents = FactoryGetRentsCount(battleMode, lvlMode);
+ switch (battleMode)
+ {
+ default:
+ case FRONTIER_MODE_SINGLES:
+ if (lvlMode != FRONTIER_LVL_50)
+ isCurrent = sub_81A1C24(0x200);
+ else
+ isCurrent = sub_81A1C24(0x100);
+ break;
+ case FRONTIER_MODE_DOUBLES:
+ if (lvlMode != FRONTIER_LVL_50)
+ isCurrent = sub_81A1C24(0x2000000);
+ else
+ isCurrent = sub_81A1C24(0x1000000);
+ break;
+ }
+
+ if (isCurrent == TRUE)
+ FactoryPrintStreak(gText_Current, winStreak, rents, x1, x2, x3, y);
+ else
+ FactoryPrintStreak(gText_Prev, winStreak, rents, x1, x2, x3, y);
+}
+
+static void ShowFactoryResultsWindow(u8 battleMode)
+{
+ gRecordsWindowId = AddWindow(&gUnknown_08611C74);
+ NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE);
+ FillWindowPixelBuffer(gRecordsWindowId, 0x11);
+ if (battleMode == FRONTIER_MODE_SINGLES)
+ StringExpandPlaceholders(gStringVar4, gText_BattleSwapSingleResults);
+ else
+ StringExpandPlaceholders(gStringVar4, gText_BattleSwapDoubleResults);
+
+ PrintAligned(gStringVar4, 0);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_Lv502, 8, 33, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_RentalSwap, 152, 33, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_OpenLv, 8, 97, TEXT_SPEED_FF, NULL);
+ PrintHyphens(10);
+ FactoryPrintPrevOrCurrentStreak(battleMode, FRONTIER_LVL_50, 8, 64, 158, 49);
+ FactoryPrintRecordStreak(battleMode, FRONTIER_LVL_50, 8, 64, 158, 65);
+ FactoryPrintPrevOrCurrentStreak(battleMode, FRONTIER_LVL_OPEN, 8, 64, 158, 113);
+ FactoryPrintRecordStreak(battleMode, FRONTIER_LVL_OPEN, 8, 64, 158, 129);
+ PutWindowTilemap(gRecordsWindowId);
+ CopyWindowToVram(gRecordsWindowId, 3);
+}
+
+// Battle Pyramid records.
+static void PyramidPrintStreak(const u8 *str, u16 num, u8 x1, u8 x2, u8 y)
+{
+ AddTextPrinterParameterized(gRecordsWindowId, 1, str, x1, y, TEXT_SPEED_FF, NULL);
+ if (num > 9999)
+ num = 9999;
+ ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_RIGHT_ALIGN, 4);
+ StringExpandPlaceholders(gStringVar4, gText_FloorsCleared);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x2, y, TEXT_SPEED_FF, NULL);
+}
+
+static void PyramidPrintRecordStreak(u8 lvlMode, u8 x1, u8 x2, u8 y)
+{
+ u16 num = gSaveBlock2Ptr->frontier.pyramidRecordStreaks[lvlMode];
+ PyramidPrintStreak(gText_Record, num, x1, x2, y);
+}
+
+static u16 PyramidGetWinStreak(u8 lvlMode)
+{
+ u16 winStreak = gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode];
+ if (winStreak > 9999)
+ return 9999;
+ else
+ return winStreak;
+}
+
+static void PyramidPrintPrevOrCurrentStreak(u8 lvlMode, u8 x1, u8 x2, u8 y)
+{
+ bool8 isCurrent;
+ u16 winStreak = PyramidGetWinStreak(lvlMode);
+
+ if (lvlMode != FRONTIER_LVL_50)
+ isCurrent = sub_81A1C24(0x2000);
+ else
+ isCurrent = sub_81A1C24(0x1000);
+
+ if (isCurrent == TRUE)
+ PyramidPrintStreak(gText_Current, winStreak, x1, x2, y);
+ else
+ PyramidPrintStreak(gText_Prev, winStreak, x1, x2, y);
+}
+
+static void ShowPyramidResultsWindow(void)
+{
+ gRecordsWindowId = AddWindow(&gUnknown_08611C74);
+ NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE);
+ FillWindowPixelBuffer(gRecordsWindowId, 0x11);
+ StringExpandPlaceholders(gStringVar4, gText_BattleQuestResults);
+ PrintAligned(gStringVar4, 2);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_Lv502, 8, 49, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_OpenLv, 8, 97, TEXT_SPEED_FF, NULL);
+ PrintHyphens(10);
+ PyramidPrintPrevOrCurrentStreak(FRONTIER_LVL_50, 64, 111, 49);
+ PyramidPrintRecordStreak(FRONTIER_LVL_50, 64, 111, 65);
+ PyramidPrintPrevOrCurrentStreak(FRONTIER_LVL_OPEN, 64, 111, 97);
+ PyramidPrintRecordStreak(FRONTIER_LVL_OPEN, 64, 111, 113);
+ PutWindowTilemap(gRecordsWindowId);
+ CopyWindowToVram(gRecordsWindowId, 3);
+}
+
+// Link contest records. Why is it in this file?
+static void ShowLinkContestResultsWindow(void)
+{
+ const u8 *str;
+ s32 i, j;
+ s32 x;
+
+ gRecordsWindowId = AddWindow(&gUnknown_08611C7C);
+ NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE);
+ FillWindowPixelBuffer(gRecordsWindowId, 0x11);
+
+ StringExpandPlaceholders(gStringVar4, gText_LinkContestResults);
+ x = GetStringCenterAlignXOffset(1, gStringVar4, 208);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x, 1, TEXT_SPEED_FF, NULL);
+
+ str = gText_1st;
+ x = GetStringRightAlignXOffset(1, str, 38) + 50;
+ AddTextPrinterParameterized(gRecordsWindowId, 1, str, x, 25, TEXT_SPEED_FF, NULL);
+
+ str = gText_2nd;
+ x = GetStringRightAlignXOffset(1, str, 38) + 88;
+ AddTextPrinterParameterized(gRecordsWindowId, 1, str, x, 25, TEXT_SPEED_FF, NULL);
+
+ str = gText_3rd;
+ x = GetStringRightAlignXOffset(1, str, 38) + 126;
+ AddTextPrinterParameterized(gRecordsWindowId, 1, str, x, 25, TEXT_SPEED_FF, NULL);
+
+ str = gText_4th;
+ x = GetStringRightAlignXOffset(1, str, 38) + 164;
+ AddTextPrinterParameterized(gRecordsWindowId, 1, str, x, 25, TEXT_SPEED_FF, NULL);
+
+ x = 6;
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_Cool, x, 41, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_Beauty, x, 57, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_Cute, x, 73, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_Smart, x, 89, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_Tough, x, 105, TEXT_SPEED_FF, NULL);
+
+ for (i = 0; i < 5; i++)
+ {
+ for (j = 0; j < 4; j++)
+ {
+ ConvertIntToDecimalStringN(gStringVar4, gSaveBlock2Ptr->contestLinkResults[i][j], STR_CONV_MODE_RIGHT_ALIGN, 4);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, (j * 38) + 64, (i * 16) + 41, TEXT_SPEED_FF, NULL);
+ }
+ }
+
+ PutWindowTilemap(gRecordsWindowId);
+ CopyWindowToVram(gRecordsWindowId, 3);
+}
+
+static void sub_81A31FC(void)
+{
+ u8 text[32];
+ s32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
+ s32 facility = VarGet(VAR_FRONTIER_FACILITY);
+ s32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
+
+ switch (facility)
+ {
+ case FRONTIER_FACILITY_TOWER:
+ if (gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] > gSaveBlock2Ptr->frontier.towerRecordWinStreaks[battleMode][lvlMode])
+ {
+ gSaveBlock2Ptr->frontier.towerRecordWinStreaks[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode];
+ if (battleMode == FRONTIER_MODE_LINK_MULTIS)
+ {
+ StringCopy(text, gLinkPlayers[gBattleScripting.multiplayerId ^ 1].name);
+ StripExtCtrlCodes(text);
+ StringCopy(gSaveBlock2Ptr->frontier.field_EE1[lvlMode], text);
+ SetTrainerId(gLinkPlayers[gBattleScripting.multiplayerId ^ 1].trainerId, gSaveBlock2Ptr->frontier.field_EF1[lvlMode]);
+ }
+ if (gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] > 1
+ && sub_80EE818())
+ {
+ switch (battleMode)
+ {
+ case FRONTIER_MODE_SINGLES:
+ sub_80EE8C8(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 1);
+ break;
+ case FRONTIER_MODE_DOUBLES:
+ sub_80EE8C8(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 2);
+ break;
+ case FRONTIER_MODE_MULTIS:
+ sub_80EE8C8(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 3);
+ break;
+ case FRONTIER_MODE_LINK_MULTIS:
+ sub_80EE8C8(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 4);
+ break;
+ }
+ }
+ }
+ break;
+ case FRONTIER_FACILITY_DOME:
+ if (gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode] > gSaveBlock2Ptr->frontier.domeRecordWinStreaks[battleMode][lvlMode])
+ {
+ gSaveBlock2Ptr->frontier.domeRecordWinStreaks[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode];
+ if (gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode] > 1
+ && sub_80EE818())
+ {
+ if (battleMode == FRONTIER_MODE_SINGLES)
+ sub_80EE8C8(gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode], 5);
+ else
+ sub_80EE8C8(gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode], 6);
+ }
+ }
+ break;
+ case FRONTIER_FACILITY_PALACE:
+ if (gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] > gSaveBlock2Ptr->frontier.palaceRecordWinStreaks[battleMode][lvlMode])
+ {
+ gSaveBlock2Ptr->frontier.palaceRecordWinStreaks[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode];
+ if (gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] > 1
+ && sub_80EE818())
+ {
+ if (battleMode == FRONTIER_MODE_SINGLES)
+ sub_80EE8C8(gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode], 11);
+ else
+ sub_80EE8C8(gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode], 12);
+ }
+ }
+ break;
+ case FRONTIER_FACILITY_ARENA:
+ if (gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] > gSaveBlock2Ptr->frontier.arenaRecordStreaks[lvlMode])
+ {
+ gSaveBlock2Ptr->frontier.arenaRecordStreaks[lvlMode] = gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode];
+ if (gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] > 1
+ && sub_80EE818())
+ {
+ sub_80EE8C8(gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode], 10);
+ }
+ }
+ break;
+ case FRONTIER_FACILITY_FACTORY:
+ if (gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] > gSaveBlock2Ptr->frontier.factoryRecordWinStreaks[battleMode][lvlMode])
+ {
+ gSaveBlock2Ptr->frontier.factoryRecordWinStreaks[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode];
+ gSaveBlock2Ptr->frontier.factoryRecordRentsCount[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.factoryRentsCount[battleMode][lvlMode];
+ if (gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] > 1
+ && sub_80EE818())
+ {
+ if (battleMode == FRONTIER_MODE_SINGLES)
+ sub_80EE8C8(gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode], 7);
+ else
+ sub_80EE8C8(gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode], 8);
+ }
+ }
+ break;
+ case FRONTIER_FACILITY_PIKE:
+ if (gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode] > gSaveBlock2Ptr->frontier.pikeRecordStreaks[lvlMode])
+ {
+ gSaveBlock2Ptr->frontier.pikeRecordStreaks[lvlMode] = gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode];
+ if (gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode] > 1
+ && sub_80EE818())
+ {
+ sub_80EE8C8(gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode], 9);
+ }
+ }
+ break;
+ case FRONTIER_FACILITY_PYRAMID:
+ if (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] > gSaveBlock2Ptr->frontier.pyramidRecordStreaks[lvlMode])
+ {
+ gSaveBlock2Ptr->frontier.pyramidRecordStreaks[lvlMode] = gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode];
+ if (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] > 1
+ && sub_80EE818())
+ {
+ sub_80EE8C8(gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode], 13);
+ }
+ }
+ break;
+ }
+}
+
+static void sub_81A35EC(void)
+{
+ VarGet(VAR_FRONTIER_FACILITY); // Unused return value.
+ gSpecialVar_Result = sub_81A3610();
+}
+
+u8 sub_81A3610(void)
+{
+ s32 ret = 0;
+ s32 facility = VarGet(VAR_FRONTIER_FACILITY);
+ s32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
+ u16 val = GetCurrentFacilityWinStreak();
+ s32 r5 = val + gUnknown_08611550[facility][3];
+ s32 symbolsCount;
+
+ if (battleMode != FRONTIER_MODE_SINGLES)
+ return 0;
+
+ symbolsCount = GetPlayerSymbolCountForFacility(facility);
+ switch (symbolsCount)
+ {
+ case 0:
+ case 1:
+ if (r5 == gUnknown_08611550[facility][symbolsCount])
+ ret = symbolsCount + 1;
+ break;
+ case 2:
+ default:
+ if (r5 == gUnknown_08611550[facility][0])
+ ret = 3;
+ else if (r5 == gUnknown_08611550[facility][1])
+ ret = 4;
+ else if (r5 > gUnknown_08611550[facility][1] && (r5 - gUnknown_08611550[facility][1]) % gUnknown_08611550[facility][2] == 0)
+ ret = 4;
+ break;
+ }
+
+ return ret;
+}
+
+void CopyFrontierTrainerText(u8 whichText, u16 trainerId)
+{
+ switch (whichText)
+ {
+ case FRONTIER_BEFORE_TEXT:
+ if (trainerId == TRAINER_EREADER)
+ FrontierSpeechToString(gSaveBlock2Ptr->frontier.ereaderTrainer.greeting);
+ else if (trainerId == TRAINER_FRONTIER_BRAIN)
+ CopyFrontierBrainText(FALSE);
+ else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
+ FrontierSpeechToString(gFacilityTrainers[trainerId].speechBefore);
+ else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE)
+ FrontierSpeechToString(gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].greeting);
+ else
+ CopyFriendsApprenticeChallengeText(trainerId - TRAINER_RECORD_MIXING_APPRENTICE);
+ break;
+ case FRONTIER_PLAYER_LOST_TEXT:
+ if (trainerId == TRAINER_EREADER)
+ {
+ FrontierSpeechToString(gSaveBlock2Ptr->frontier.ereaderTrainer.farewellPlayerLost);
+ }
+ else if (trainerId == TRAINER_FRONTIER_BRAIN)
+ {
+ CopyFrontierBrainText(FALSE);
+ }
+ else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
+ {
+ FrontierSpeechToString(gFacilityTrainers[trainerId].speechWin);
+ }
+ else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE)
+ {
+ if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
+ FrontierSpeechToString(GetRecordedBattleEasyChatSpeech());
+ else
+ FrontierSpeechToString(gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].speechWon);
+ }
+ else
+ {
+ if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
+ FrontierSpeechToString(GetRecordedBattleEasyChatSpeech());
+ else
+ FrontierSpeechToString(gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].easyChatWords);
+ }
+ break;
+ case FRONTIER_PLAYER_WON_TEXT:
+ if (trainerId == TRAINER_EREADER)
+ {
+ FrontierSpeechToString(gSaveBlock2Ptr->frontier.ereaderTrainer.farewellPlayerWon);
+ }
+ else if (trainerId == TRAINER_FRONTIER_BRAIN)
+ {
+ CopyFrontierBrainText(TRUE);
+ }
+ else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
+ {
+ FrontierSpeechToString(gFacilityTrainers[trainerId].speechLose);
+ }
+ else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE)
+ {
+ if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
+ FrontierSpeechToString(GetRecordedBattleEasyChatSpeech());
+ else
+ FrontierSpeechToString(gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].speechLost);
+ }
+ else
+ {
+ if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
+ {
+ trainerId = GetRecordedBattleApprenticeId();
+ FrontierSpeechToString(gApprentices[trainerId].easyChatWords);
+ }
+ else
+ {
+ trainerId = gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].id;
+ FrontierSpeechToString(gApprentices[trainerId].easyChatWords);
+ }
+ }
+ break;
+ }
+}
+
+void sub_81A3908(void)
+{
+ s32 battleMode, lvlMode;
+
+ gSaveBlock2Ptr->frontier.field_CDC = 0;
+ for (battleMode = 0; battleMode < 4; battleMode++)
+ {
+ for (lvlMode = 0; lvlMode < 2; lvlMode++)
+ {
+ gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] = 0;
+ if (battleMode < FRONTIER_MODE_MULTIS)
+ {
+ gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode] = 0;
+ gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] = 0;
+ gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] = 0;
+ }
+ if (battleMode == FRONTIER_MODE_SINGLES)
+ {
+ gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] = 0;
+ gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode] = 0;
+ gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] = 0;
+ }
+ }
+ }
+ if (gSaveBlock2Ptr->frontier.field_CA8 != 0)
+ gSaveBlock2Ptr->frontier.field_CA8 = 1;
+}
+
+u32 GetCurrentFacilityWinStreak(void)
+{
+ s32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
+ s32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
+ s32 facility = VarGet(VAR_FRONTIER_FACILITY);
+
+ switch (facility)
+ {
+ case FRONTIER_FACILITY_TOWER:
+ return gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode];
+ case FRONTIER_FACILITY_DOME:
+ return gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode];
+ case FRONTIER_FACILITY_PALACE:
+ return gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode];
+ case FRONTIER_FACILITY_ARENA:
+ return gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode];
+ case FRONTIER_FACILITY_FACTORY:
+ return gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode];
+ case FRONTIER_FACILITY_PIKE:
+ return gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode];
+ case FRONTIER_FACILITY_PYRAMID:
+ return gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode];
+ default:
+ return 0;
+ }
+}
+
+void sub_81A3ACC(void)
+{
+ s32 i;
+
+ for (i = 0; i < 20; i++)
+ gSaveBlock2Ptr->frontier.field_CB4[i] |= 0xFFFF;
+}
+
+static void sub_81A3B00(void)
+{
+ if (gTrainerBattleOpponent_A == TRAINER_FRONTIER_BRAIN)
+ gSpecialVar_Result = TRUE;
+ else
+ gSpecialVar_Result = FALSE;
+}
+
+u8 GetPlayerSymbolCountForFacility(u8 facility)
+{
+ return FlagGet(FLAG_SYS_TOWER_SILVER + facility * 2)
+ + FlagGet(FLAG_SYS_TOWER_GOLD + facility * 2);
+}
+
+static void sub_81A3B64(void)
+{
+ s32 challengeNum = 0;
+ s32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
+ s32 facility = VarGet(VAR_FRONTIER_FACILITY);
+ s32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
+ s32 points;
+
+ switch (facility)
+ {
+ case FRONTIER_FACILITY_TOWER:
+ challengeNum = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] / 7;
+ break;
+ case FRONTIER_FACILITY_DOME:
+ challengeNum = gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode];
+ break;
+ case FRONTIER_FACILITY_PALACE:
+ challengeNum = gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] / 7;
+ break;
+ case FRONTIER_FACILITY_ARENA:
+ challengeNum = gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] / 7;
+ break;
+ case FRONTIER_FACILITY_FACTORY:
+ challengeNum = gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] / 7;
+ break;
+ case FRONTIER_FACILITY_PIKE:
+ challengeNum = gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode] / 14;
+ break;
+ case FRONTIER_FACILITY_PYRAMID:
+ challengeNum = gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] / 7;
+ break;
+ }
+
+ if (challengeNum != 0)
+ challengeNum--;
+ if (challengeNum >= ARRAY_COUNT(gUnknown_086118B4))
+ challengeNum = ARRAY_COUNT(gUnknown_086118B4) - 1;
+
+ points = gUnknown_086118B4[challengeNum][facility][battleMode];
+ if (gTrainerBattleOpponent_A == TRAINER_FRONTIER_BRAIN)
+ points += 10;
+ gSaveBlock2Ptr->frontier.battlePoints += points;
+ ConvertIntToDecimalStringN(gStringVar1, points, STR_CONV_MODE_LEFT_ALIGN, 2);
+ if (gSaveBlock2Ptr->frontier.battlePoints > 9999)
+ gSaveBlock2Ptr->frontier.battlePoints = 9999;
+
+ points = gSaveBlock2Ptr->frontier.field_EBA;
+ points += gUnknown_086118B4[challengeNum][facility][battleMode];
+ sub_80EED60(gUnknown_086118B4[challengeNum][facility][battleMode]);
+ if (gTrainerBattleOpponent_A == TRAINER_FRONTIER_BRAIN)
+ {
+ points += 10;
+ sub_80EED60(10);
+ }
+ if (points > 0xFFFF)
+ points = 0xFFFF;
+ gSaveBlock2Ptr->frontier.field_EBA = points;
+}
+
+static void sub_81A3D30(void)
+{
+ s32 facility = VarGet(VAR_FRONTIER_FACILITY);
+ gSpecialVar_Result = GetPlayerSymbolCountForFacility(facility);
+}
+
+static void sub_81A3D58(void)
+{
+ s32 facility = VarGet(VAR_FRONTIER_FACILITY);
+ if (GetPlayerSymbolCountForFacility(facility) == 0)
+ FlagSet(FLAG_SYS_TOWER_SILVER + facility * 2);
+ else
+ FlagSet(FLAG_SYS_TOWER_GOLD + facility * 2);
+}
+
+static void sub_81A3DA0(void)
+{
+ if (gBattleTypeFlags & gSpecialVar_0x8005)
+ gSpecialVar_Result = TRUE;
+ else
+ gSpecialVar_Result = FALSE;
+}
+
+static u8 sub_81A3DD0(u16 species, u8 arg1, s32 arg2)
+{
+ if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_CAUGHT))
+ {
+ arg1++;
+ switch (arg1)
+ {
+ case 1:
+ case 3:
+ case 5:
+ case 7:
+ case 9:
+ case 11:
+ if (arg2 == arg1)
+ StringAppend(gStringVar1, gText_SpaceAndSpace);
+ else if (arg2 > arg1)
+ StringAppend(gStringVar1, gText_CommaSpace);
+ break;
+ case 2:
+ if (arg1 == arg2)
+ StringAppend(gStringVar1, gText_SpaceAndSpace);
+ else
+ StringAppend(gStringVar1, gText_CommaSpace);
+ StringAppend(gStringVar1, gText_NewLine);
+ break;
+ default:
+ if (arg1 == arg2)
+ StringAppend(gStringVar1, gText_SpaceAndSpace);
+ else
+ StringAppend(gStringVar1, gText_CommaSpace);
+ StringAppend(gStringVar1, gText_ScrollTextUp);
+ break;
+ }
+ StringAppend(gStringVar1, gSpeciesNames[species]);
+ }
+
+ return arg1;
+}
+
+static void AppendIfValid(u16 species, u16 heldItem, u16 hp, u8 lvlMode, u8 monLevel, u16 *speciesArray, u16 *itemsArray, u8 *count)
+{
+ s32 i = 0;
+
+ if (species == SPECIES_EGG || species == SPECIES_NONE)
+ return;
+
+ for (i = 0; gFrontierBannedSpecies[i] != 0xFFFF && gFrontierBannedSpecies[i] != species; i++)
+ ;
+
+ if (gFrontierBannedSpecies[i] != 0xFFFF)
+ return;
+ if (lvlMode == FRONTIER_LVL_50 && monLevel > 50)
+ return;
+
+ for (i = 0; i < *count && speciesArray[i] != species; i++)
+ ;
+ if (i != *count)
+ return;
+
+ if (heldItem != 0)
+ {
+ for (i = 0; i < *count && itemsArray[i] != heldItem; i++)
+ ;
+ if (i != *count)
+ return;
+ }
+
+ speciesArray[*count] = species;
+ itemsArray[*count] = heldItem;
+ (*count)++;
+}
+
+static void sub_81A3FD4(void)
+{
+ u16 speciesArray[6];
+ u16 itemArray[6];
+ s32 monId = 0;
+ s32 toChoose = 0;
+ u8 count = 0;
+ s32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
+ s32 monIdLooper;
+
+ switch (battleMode)
+ {
+ case FRONTIER_MODE_SINGLES:
+ toChoose = 3;
+ break;
+ case FRONTIER_MODE_MULTIS:
+ case FRONTIER_MODE_LINK_MULTIS:
+ toChoose = 2;
+ break;
+ case FRONTIER_MODE_DOUBLES:
+ if (VarGet(VAR_FRONTIER_FACILITY) == FRONTIER_FACILITY_TOWER)
+ toChoose = 4;
+ else
+ toChoose = 3;
+ break;
+ }
+
+ monIdLooper = 0;
+ do
+ {
+ monId = monIdLooper;
+ count = 0;
+ do
+ {
+ u16 species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES2);
+ u16 heldItem = GetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM);
+ u8 level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL);
+ u16 hp = GetMonData(&gPlayerParty[monId], MON_DATA_HP);
+ if (VarGet(VAR_FRONTIER_FACILITY) == FRONTIER_FACILITY_PYRAMID)
+ {
+ if (heldItem == 0)
+ AppendIfValid(species, heldItem, hp, gSpecialVar_Result, level, speciesArray, itemArray, &count);
+ }
+ else
+ {
+ AppendIfValid(species, heldItem, hp, gSpecialVar_Result, level, speciesArray, itemArray, &count);
+ }
+ monId++;
+ if (monId >= PARTY_SIZE)
+ monId = 0;
+ } while (monId != monIdLooper);
+
+ monIdLooper++;
+ } while (monIdLooper < PARTY_SIZE && count < toChoose);
+
+ if (count < toChoose)
+ {
+ s32 i;
+ s32 caughtBannedMons = 0;
+ s32 species = gFrontierBannedSpecies[0];
+ for (i = 0; species != 0xFFFF; i++, species = gFrontierBannedSpecies[i])
+ {
+ if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_CAUGHT))
+ caughtBannedMons++;
+ }
+ gStringVar1[0] = EOS;
+ gSpecialVar_0x8004 = 1;
+ count = 0;
+ for (i = 0; gFrontierBannedSpecies[i] != 0xFFFF; i++)
+ count = sub_81A3DD0(gFrontierBannedSpecies[i], count, caughtBannedMons);
+
+ if (count == 0)
+ {
+ StringAppend(gStringVar1, gText_Space2);
+ StringAppend(gStringVar1, gText_Are);
+ }
+ else
+ {
+ if (count & 1)
+ StringAppend(gStringVar1, gText_ScrollTextUp);
+ else
+ StringAppend(gStringVar1, gText_Space2);
+ StringAppend(gStringVar1, gText_Are2);
+ }
+ }
+ else
+ {
+ gSpecialVar_0x8004 = 0;
+ gSaveBlock2Ptr->frontier.lvlMode = gSpecialVar_Result;
+ }
+}
+
+static void sub_81A4224(void)
+{
+ ValidateEReaderTrainer();
+}
+
+static void sub_81A4230(void)
+{
+ s32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
+ s32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
+ s32 facility = VarGet(VAR_FRONTIER_FACILITY);
+
+ switch (facility)
+ {
+ case FRONTIER_FACILITY_TOWER:
+ if (gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] < 9999)
+ {
+ gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode]++;
+ if (battleMode == FRONTIER_MODE_SINGLES)
+ {
+ SetGameStat(GAME_STAT_BATTLE_TOWER_BEST_STREAK, gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode]);
+ gSaveBlock2Ptr->frontier.field_D02 = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode];
+ }
+ }
+ break;
+ case FRONTIER_FACILITY_DOME:
+ if (gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode] < 9999)
+ gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode]++;
+ if (gSaveBlock2Ptr->frontier.domeTotalChampionships[battleMode][lvlMode] < 9999)
+ gSaveBlock2Ptr->frontier.domeTotalChampionships[battleMode][lvlMode]++;
+ break;
+ case FRONTIER_FACILITY_PALACE:
+ if (gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] < 9999)
+ gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode]++;
+ break;
+ case FRONTIER_FACILITY_ARENA:
+ if (gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] < 9999)
+ gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode]++;
+ break;
+ case FRONTIER_FACILITY_FACTORY:
+ if (gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] < 9999)
+ gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode]++;
+ break;
+ case FRONTIER_FACILITY_PIKE:
+ if (gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode] < 9999)
+ gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode]++;
+ break;
+ case FRONTIER_FACILITY_PYRAMID:
+ if (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] < 9999)
+ gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode]++;
+ break;
+ }
+}
+
+static void sub_81A43A8(void)
+{
+ u8 i;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (gSaveBlock2Ptr->frontier.selectedPartyMons[i] != 0)
+ {
+ u16 item = GetMonData(&gSaveBlock1Ptr->playerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_HELD_ITEM, NULL);
+ SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &item);
+ }
+ }
+}
+
+static void sub_81A4410(void)
+{
+ gSpecialVar_Result = MoveRecordedBattleToSaveData();
+ gSaveBlock2Ptr->frontier.field_CA9_b = 1;
+}
+
+static void sub_81A443C(void)
+{
+ switch (gSpecialVar_0x8005)
+ {
+ case 0:
+ GetFrontierTrainerName(gStringVar1, gTrainerBattleOpponent_A);
+ break;
+ case 1:
+ GetFrontierTrainerName(gStringVar2, gTrainerBattleOpponent_A);
+ break;
+ }
+}
+
+static void sub_81A447C(void)
+{
+ u8 i, j, k;
+
+ for (i = 0; i < 4; i++)
+ {
+ u16 monId = gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1;
+ if (monId < PARTY_SIZE)
+ {
+ for (j = 0; j < 4; j++)
+ {
+ for (k = 0; k < 4; k++)
+ {
+ if (GetMonData(&gSaveBlock1Ptr->playerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_MOVE1 + k, NULL)
+ == GetMonData(&gPlayerParty[i], MON_DATA_MOVE1 + j, NULL))
+ break;
+ }
+ if (k == 4)
+ SetMonMoveSlot(&gPlayerParty[i], MOVE_SKETCH, j);
+ }
+ gSaveBlock1Ptr->playerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1] = gPlayerParty[i];
+ }
+ }
+}
+
+static void sub_81A457C(void)
+{
+ SetFrontierBrainEventObjGfx(VarGet(VAR_FRONTIER_FACILITY));
+}
+
+// Battle Frontier Ranking Hall records.
+static void Print1PRecord(s32 position, s32 x, s32 y, struct RankingHall1P *hallRecord, s32 hallFacilityId)
+{
+ u8 text[32];
+ u16 winStreak;
+
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_123Dot[position], x * 8, (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL);
+ hallRecord->name[PLAYER_NAME_LENGTH] = EOS;
+ if (hallRecord->winStreak)
+ {
+ TVShowConvertInternationalString(text, hallRecord->name, hallRecord->language);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, text, (x + 2) * 8, (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL);
+ winStreak = hallRecord->winStreak;
+ if (winStreak > 9999)
+ winStreak = 9999;
+ ConvertIntToDecimalStringN(gStringVar2, winStreak, STR_CONV_MODE_RIGHT_ALIGN, 4);
+ StringExpandPlaceholders(gStringVar4, gUnknown_08611D08[hallFacilityId]);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, GetStringRightAlignXOffset(1, gUnknown_08611D08[hallFacilityId], 0xC8), (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL);
+ }
+}
+
+static void Print2PRecord(s32 position, s32 x, s32 y, struct RankingHall2P *hallRecord)
+{
+ u8 text[32];
+ u16 winStreak;
+
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_123Dot[position], x * 8, (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL);
+ if (hallRecord->winStreak)
+ {
+ hallRecord->name1[PLAYER_NAME_LENGTH] = EOS;
+ hallRecord->name2[PLAYER_NAME_LENGTH] = EOS;
+ TVShowConvertInternationalString(text, hallRecord->name1, hallRecord->language);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, text, (x + 2) * 8, (8 * (y + 5 * position - 1)) + 1, TEXT_SPEED_FF, NULL);
+ if (IsStringJapanese(hallRecord->name2))
+ TVShowConvertInternationalString(text, hallRecord->name2, LANGUAGE_JAPANESE);
+ else
+ StringCopy(text, hallRecord->name2);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, text, (x + 4) * 8, (8 * (y + 5 * position + 1)) + 1, TEXT_SPEED_FF, NULL);
+
+ winStreak = hallRecord->winStreak;
+ if (winStreak > 9999)
+ winStreak = 9999;
+ ConvertIntToDecimalStringN(gStringVar2, winStreak, STR_CONV_MODE_RIGHT_ALIGN, 4);
+ StringExpandPlaceholders(gStringVar4, gUnknown_08611D08[9]);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, GetStringRightAlignXOffset(1, gUnknown_08611D08[9], 0xC8), (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL);
+ }
+}
+
+static void Fill1PRecords(struct RankingHall1P *dst, s32 hallFacilityId, s32 lvlMode)
+{
+ s32 i, j;
+ struct RankingHall1P record1P[4];
+ struct PlayerHallRecords *playerHallRecords = calloc(1, sizeof(struct PlayerHallRecords));
+ GetPlayerHallRecords(playerHallRecords);
+
+ for (i = 0; i < 3; i++)
+ record1P[i] = gSaveBlock2Ptr->hallRecords1P[hallFacilityId][lvlMode][i];
+
+ record1P[3] = playerHallRecords->onePlayer[hallFacilityId][lvlMode];
+
+ for (i = 0; i < 3; i++)
+ {
+ s32 highestWinStreak = 0;
+ s32 highestId = 0;
+ for (j = 0; j < 4; j++)
+ {
+ if (record1P[j].winStreak > highestWinStreak)
+ {
+ highestId = j;
+ highestWinStreak = record1P[j].winStreak;
+ }
+ }
+ if (record1P[3].winStreak >= highestWinStreak)
+ highestId = 3;
+
+ dst[i] = record1P[highestId];
+ record1P[highestId].winStreak = 0;
+ }
+
+ free(playerHallRecords);
+}
+
+static void Fill2PRecords(struct RankingHall2P *dst, s32 lvlMode)
+{
+ s32 i, j;
+ struct RankingHall2P record2P[4];
+ struct PlayerHallRecords *playerHallRecords = calloc(1, sizeof(struct PlayerHallRecords));
+ GetPlayerHallRecords(playerHallRecords);
+
+ for (i = 0; i < 3; i++)
+ record2P[i] = gSaveBlock2Ptr->hallRecords2P[lvlMode][i];
+
+ record2P[3] = playerHallRecords->twoPlayers[lvlMode];
+
+ for (i = 0; i < 3; i++)
+ {
+ s32 highestWinStreak = 0;
+ s32 highestId = 0;
+ for (j = 0; j < 3; j++)
+ {
+ if (record2P[j].winStreak > highestWinStreak)
+ {
+ highestId = j;
+ highestWinStreak = record2P[j].winStreak;
+ }
+ }
+ if (record2P[3].winStreak >= highestWinStreak)
+ highestId = 3;
+
+ dst[i] = record2P[highestId];
+ record2P[highestId].winStreak = 0;
+ }
+
+ free(playerHallRecords);
+}
+
+static void PrintHallRecords(s32 hallFacilityId, s32 lvlMode)
+{
+ s32 i;
+ s32 x;
+ struct RankingHall1P records1P[3];
+ struct RankingHall2P records2P[3];
+
+ StringCopy(gStringVar1, gUnknown_08611CB0[hallFacilityId][0]);
+ StringExpandPlaceholders(gStringVar4, gUnknown_08611CB0[hallFacilityId][1]);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL);
+ x = GetStringRightAlignXOffset(1, gUnknown_08611D00[lvlMode], 0xD0);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gUnknown_08611D00[lvlMode], x, 1, TEXT_SPEED_FF, NULL);
+ if (hallFacilityId == HALL_FACILITIES_COUNT)
+ {
+ gSaveBlock2Ptr->frontier.field_EE1[0][PLAYER_NAME_LENGTH] = EOS;
+ gSaveBlock2Ptr->frontier.field_EE1[1][PLAYER_NAME_LENGTH] = EOS;
+ Fill2PRecords(records2P, lvlMode);
+ for (i = 0; i < 3; i++)
+ Print2PRecord(i, 1, 4, &records2P[i]);
+ }
+ else
+ {
+ Fill1PRecords(records1P, hallFacilityId, lvlMode);
+ for (i = 0; i < 3; i++)
+ Print1PRecord(i, 1, 4, &records1P[i], hallFacilityId);
+ }
+}
+
+void ShowRankingHallRecordsWindow(void)
+{
+ gRecordsWindowId = AddWindow(&gUnknown_08611C84);
+ NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE);
+ FillWindowPixelBuffer(gRecordsWindowId, 0x11);
+ PrintHallRecords(gSpecialVar_0x8005, FRONTIER_LVL_50);
+ PutWindowTilemap(gRecordsWindowId);
+ CopyWindowToVram(gRecordsWindowId, 3);
+}
+
+void ScrollRankingHallRecordsWindow(void)
+{
+ FillWindowPixelBuffer(gRecordsWindowId, 0x11);
+ PrintHallRecords(gSpecialVar_0x8005, FRONTIER_LVL_OPEN);
+ CopyWindowToVram(gRecordsWindowId, 2);
+}
+
+void ClearRankingHallRecords(void)
+{
+ s32 i, j, k;
+
+ for (i = 0; i < HALL_FACILITIES_COUNT; i++)
+ {
+ for (j = 0; j < 2; j++)
+ {
+ for (k = 0; k < 3; k++)
+ {
+ CopyTrainerId(gSaveBlock2Ptr->hallRecords1P[i][j][k].id, 0); // BUG: Passing 0 as a pointer instead of a pointer holding a value of 0.
+ gSaveBlock2Ptr->hallRecords1P[i][j][k].name[0] = EOS;
+ gSaveBlock2Ptr->hallRecords1P[i][j][k].winStreak = 0;
+ }
+ }
+ }
+
+ for (j = 0; j < 2; j++)
+ {
+ for (k = 0; k < 3; k++)
+ {
+ CopyTrainerId(gSaveBlock2Ptr->hallRecords2P[j][k].id1, 0); // BUG: Passing 0 as a pointer instead of a pointer holding a value of 0.
+ CopyTrainerId(gSaveBlock2Ptr->hallRecords2P[j][k].id2, 0); // BUG: Passing 0 as a pointer instead of a pointer holding a value of 0.
+ gSaveBlock2Ptr->hallRecords2P[j][k].name1[0] = EOS;
+ gSaveBlock2Ptr->hallRecords2P[j][k].name2[0] = EOS;
+ gSaveBlock2Ptr->hallRecords2P[j][k].winStreak = 0;
+ }
+ }
+}
+
+void sub_81A4C30(void)
+{
+ s32 i;
+ struct Pokemon *monsParty = calloc(PARTY_SIZE, sizeof(struct Pokemon));
+
+ for (i = 0; i < PARTY_SIZE; i++)
+ monsParty[i] = gPlayerParty[i];
+
+ i = gPlayerPartyCount;
+ LoadPlayerParty();
+ sub_8076D5C();
+ TrySavingData(SAVE_LINK);
+ sav2_gender2_inplace_and_xFE();
+ gPlayerPartyCount = i;
+
+ for (i = 0; i < PARTY_SIZE; i++)
+ gPlayerParty[i] = monsParty[i];
+
+ free(monsParty);
+}
+
+// Frontier Brain functions.
+u8 GetFrontierBrainTrainerPicIndex(void)
+{
+ s32 facility;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
+ facility = GetRecordedBattleFrontierFacility();
+ else
+ facility = VarGet(VAR_FRONTIER_FACILITY);
+
+ return gTrainers[gFacilityToBrainTrainerId[facility]].trainerPic;
+}
+
+u8 GetFrontierBrainTrainerClass(void)
+{
+ s32 facility;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
+ facility = GetRecordedBattleFrontierFacility();
+ else
+ facility = VarGet(VAR_FRONTIER_FACILITY);
+
+ return gTrainers[gFacilityToBrainTrainerId[facility]].trainerClass;
+}
+
+void CopyFrontierBrainTrainerName(u8 *dst)
+{
+ s32 i;
+ s32 facility;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
+ facility = GetRecordedBattleFrontierFacility();
+ else
+ facility = VarGet(VAR_FRONTIER_FACILITY);
+
+ for (i = 0; i < PLAYER_NAME_LENGTH; i++)
+ dst[i] = gTrainers[gFacilityToBrainTrainerId[facility]].trainerName[i];
+
+ dst[i] = EOS;
+}
+
+bool8 IsFrontierBrainFemale(void)
+{
+ s32 facility = VarGet(VAR_FRONTIER_FACILITY);
+ return sFacilityToBrainEventObjGfx[facility][1];
+}
+
+void SetFrontierBrainEventObjGfx_2(void)
+{
+ s32 facility = VarGet(VAR_FRONTIER_FACILITY);
+ VarSet(VAR_OBJ_GFX_ID_0, sFacilityToBrainEventObjGfx[facility][0]);
+}
+
+#define FRONTIER_BRAIN_OTID 61226
+
+#ifdef NONMATCHING
+void CreateFrontierBrainPokemon(void)
+{
+ s32 i, j;
+ s32 monCountInBits;
+ s32 monPartyId;
+ s32 monLevel = 0;
+ u8 friendship;
+ s32 facility = VarGet(VAR_FRONTIER_FACILITY);
+ s32 symbol = GetFronterBrainSymbol();
+
+ if (facility == FRONTIER_FACILITY_DOME)
+ monCountInBits = GetDomeTrainerMonCountInBits(TrainerIdToDomeTournamentId(TRAINER_FRONTIER_BRAIN));
+ else
+ monCountInBits = 7;
+
+ ZeroEnemyPartyMons();
+ monPartyId = 0;
+ monLevel = SetFacilityPtrsGetLevel();
+ for (i = 0; i < 3; monCountInBits >>= 1, i++)
+ {
+ if (!(monCountInBits & 1))
+ continue;
+
+ do
+ {
+ j = Random32();
+ } while (IsShinyOtIdPersonality(FRONTIER_BRAIN_OTID, j) || sFrontierBrainsMons[facility][symbol][i].nature != GetNatureFromPersonality(j));
+ CreateMon(&gEnemyParty[monPartyId],
+ sFrontierBrainsMons[facility][symbol][i].species,
+ monLevel,
+ sFrontierBrainsMons[facility][symbol][i].fixedIV,
+ TRUE, j,
+ TRUE, FRONTIER_BRAIN_OTID);
+ SetMonData(&gEnemyParty[monPartyId], MON_DATA_HELD_ITEM, &sFrontierBrainsMons[facility][symbol][i].heldItem);
+ for (j = 0; j < 6; j++)
+ SetMonData(&gEnemyParty[monPartyId], MON_DATA_HP_EV + j, &sFrontierBrainsMons[facility][symbol][i].evs[j]);
+ friendship = 0xFF;
+ for (j = 0; j < 4; j++)
+ {
+ SetMonMoveSlot(&gEnemyParty[monPartyId], sFrontierBrainsMons[facility][symbol][i].moves[j], j);
+ if (sFrontierBrainsMons[facility][symbol][i].moves[j] == MOVE_FRUSTRATION)
+ friendship = 0;
+ }
+ SetMonData(&gEnemyParty[monPartyId], MON_DATA_FRIENDSHIP, &friendship);
+ CalculateMonStats(&gEnemyParty[monPartyId]);
+ monPartyId++;
+ }
+}
+#else
+NAKED
+void CreateFrontierBrainPokemon(void)
+{
+ asm_unified("\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x44\n\
+ ldr r0, =0x000040cf\n\
+ bl VarGet\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ str r0, [sp, 0x20]\n\
+ bl GetFronterBrainSymbol\n\
+ str r0, [sp, 0x24]\n\
+ ldr r0, [sp, 0x20]\n\
+ cmp r0, 0x1\n\
+ bne _081A4E44\n\
+ ldr r0, =0x000003fe\n\
+ bl TrainerIdToDomeTournamentId\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ bl GetDomeTrainerMonCountInBits\n\
+ adds r4, r0, 0\n\
+ b _081A4E46\n\
+ .pool\n\
+_081A4E44:\n\
+ movs r4, 0x7\n\
+_081A4E46:\n\
+ bl ZeroEnemyPartyMons\n\
+ movs r1, 0\n\
+ str r1, [sp, 0x18]\n\
+ bl SetFacilityPtrsGetLevel\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ str r0, [sp, 0x1C]\n\
+ movs r2, 0\n\
+ str r2, [sp, 0x14]\n\
+_081A4E5C:\n\
+ movs r0, 0x1\n\
+ ands r0, r4\n\
+ asrs r4, 1\n\
+ str r4, [sp, 0x30]\n\
+ ldr r3, [sp, 0x14]\n\
+ adds r3, 0x1\n\
+ str r3, [sp, 0x28]\n\
+ cmp r0, 0\n\
+ bne _081A4E70\n\
+ b _081A4FC4\n\
+_081A4E70:\n\
+ ldr r4, [sp, 0x14]\n\
+ lsls r4, 2\n\
+ mov r9, r4\n\
+ ldr r0, [sp, 0x24]\n\
+ lsls r0, 4\n\
+ str r0, [sp, 0x38]\n\
+ ldr r1, [sp, 0x20]\n\
+ lsls r1, 4\n\
+ str r1, [sp, 0x34]\n\
+ ldr r2, [sp, 0x1C]\n\
+ lsls r2, 24\n\
+ str r2, [sp, 0x3C]\n\
+ ldr r3, [sp, 0x18]\n\
+ adds r3, 0x1\n\
+ str r3, [sp, 0x2C]\n\
+ ldr r0, [sp, 0x14]\n\
+ add r0, r9\n\
+ lsls r0, 2\n\
+ mov r8, r0\n\
+_081A4E96:\n\
+ bl Random\n\
+ adds r4, r0, 0\n\
+ bl Random\n\
+ lsls r4, 16\n\
+ lsrs r7, r4, 16\n\
+ lsls r0, 16\n\
+ orrs r7, r0\n\
+ ldr r0, =0x0000ef2a\n\
+ adds r1, r7, 0\n\
+ bl IsShinyOtIdPersonality\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _081A4E96\n\
+ ldr r4, [sp, 0x38]\n\
+ ldr r1, [sp, 0x24]\n\
+ subs r0, r4, r1\n\
+ lsls r5, r0, 2\n\
+ mov r2, r8\n\
+ adds r4, r2, r5\n\
+ ldr r3, [sp, 0x34]\n\
+ ldr r1, [sp, 0x20]\n\
+ subs r0, r3, r1\n\
+ lsls r6, r0, 3\n\
+ adds r4, r6\n\
+ ldr r2, =sFrontierBrainsMons\n\
+ adds r4, r2\n\
+ adds r0, r7, 0\n\
+ bl GetNatureFromPersonality\n\
+ ldrb r1, [r4, 0x5]\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r1, r0\n\
+ bne _081A4E96\n\
+ ldr r4, [sp, 0x18]\n\
+ movs r0, 0x64\n\
+ adds r3, r4, 0\n\
+ muls r3, r0\n\
+ mov r8, r3\n\
+ ldr r1, =gEnemyParty\n\
+ add r1, r8\n\
+ mov r10, r1\n\
+ ldr r4, [sp, 0x14]\n\
+ add r4, r9\n\
+ lsls r4, 2\n\
+ adds r0, r4, r5\n\
+ adds r0, r6\n\
+ ldr r2, =sFrontierBrainsMons\n\
+ adds r0, r2\n\
+ ldrh r1, [r0]\n\
+ ldr r3, [sp, 0x3C]\n\
+ lsrs r2, r3, 24\n\
+ ldrb r3, [r0, 0x4]\n\
+ movs r0, 0x1\n\
+ str r0, [sp]\n\
+ str r7, [sp, 0x4]\n\
+ str r0, [sp, 0x8]\n\
+ ldr r0, =0x0000ef2a\n\
+ str r0, [sp, 0xC]\n\
+ mov r0, r10\n\
+ bl CreateMon\n\
+ ldr r0, =sFrontierBrainsMons\n\
+ adds r5, r0\n\
+ adds r5, r6, r5\n\
+ adds r4, r5, r4\n\
+ adds r4, 0x2\n\
+ mov r0, r10\n\
+ movs r1, 0xC\n\
+ adds r2, r4, 0\n\
+ bl SetMonData\n\
+ movs r7, 0\n\
+ mov r6, r8\n\
+ ldr r3, =gEnemyParty\n\
+_081A4F32:\n\
+ adds r1, r7, 0\n\
+ adds r1, 0x1A\n\
+ ldr r0, [sp, 0x14]\n\
+ add r0, r9\n\
+ lsls r4, r0, 2\n\
+ adds r2, r5, r4\n\
+ adds r0, r7, 0x6\n\
+ adds r2, r0\n\
+ adds r0, r6, r3\n\
+ str r3, [sp, 0x40]\n\
+ bl SetMonData\n\
+ adds r7, 0x1\n\
+ ldr r3, [sp, 0x40]\n\
+ cmp r7, 0x5\n\
+ ble _081A4F32\n\
+ movs r1, 0xFF\n\
+ add r0, sp, 0x10\n\
+ strb r1, [r0]\n\
+ movs r7, 0\n\
+ ldr r1, [sp, 0x18]\n\
+ movs r2, 0x64\n\
+ adds r6, r1, 0\n\
+ muls r6, r2\n\
+ ldr r3, =sFrontierBrainsMons + 0xC\n\
+ mov r8, r3\n\
+ ldr r3, =gEnemyParty\n\
+ adds r5, r4, 0\n\
+_081A4F6A:\n\
+ ldr r4, [sp, 0x38]\n\
+ ldr r0, [sp, 0x24]\n\
+ subs r1, r4, r0\n\
+ lsls r1, 2\n\
+ adds r1, r5, r1\n\
+ ldr r2, [sp, 0x34]\n\
+ ldr r4, [sp, 0x20]\n\
+ subs r0, r2, r4\n\
+ lsls r0, 3\n\
+ adds r1, r0\n\
+ add r1, r8\n\
+ ldrh r4, [r1]\n\
+ lsls r2, r7, 24\n\
+ lsrs r2, 24\n\
+ adds r0, r6, r3\n\
+ adds r1, r4, 0\n\
+ str r3, [sp, 0x40]\n\
+ bl SetMonMoveSlot\n\
+ ldr r3, [sp, 0x40]\n\
+ cmp r4, 0xDA\n\
+ bne _081A4F9C\n\
+ movs r1, 0\n\
+ add r0, sp, 0x10\n\
+ strb r1, [r0]\n\
+_081A4F9C:\n\
+ adds r5, 0x2\n\
+ adds r7, 0x1\n\
+ cmp r7, 0x3\n\
+ ble _081A4F6A\n\
+ ldr r0, [sp, 0x18]\n\
+ movs r1, 0x64\n\
+ adds r4, r0, 0\n\
+ muls r4, r1\n\
+ ldr r0, =gEnemyParty\n\
+ adds r4, r0\n\
+ adds r0, r4, 0\n\
+ movs r1, 0x20\n\
+ add r2, sp, 0x10\n\
+ bl SetMonData\n\
+ adds r0, r4, 0\n\
+ bl CalculateMonStats\n\
+ ldr r2, [sp, 0x2C]\n\
+ str r2, [sp, 0x18]\n\
+_081A4FC4:\n\
+ ldr r4, [sp, 0x30]\n\
+ ldr r3, [sp, 0x28]\n\
+ str r3, [sp, 0x14]\n\
+ cmp r3, 0x2\n\
+ bgt _081A4FD0\n\
+ b _081A4E5C\n\
+_081A4FD0:\n\
+ add sp, 0x44\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .pool\n\
+");
+}
+#endif
+
+u16 GetFrontierBrainMonSpecies(u8 monId)
+{
+ s32 facility = VarGet(VAR_FRONTIER_FACILITY);
+ s32 symbol = GetFronterBrainSymbol();
+
+ return sFrontierBrainsMons[facility][symbol][monId].species;
+}
+
+void SetFrontierBrainEventObjGfx(u8 facility)
+{
+ gTrainerBattleOpponent_A = TRAINER_FRONTIER_BRAIN;
+ VarSet(VAR_OBJ_GFX_ID_0, sFacilityToBrainEventObjGfx[facility][0]);
+}
+
+u16 GetFrontierBrainMonMove(u8 monId, u8 moveSlotId)
+{
+ s32 facility = VarGet(VAR_FRONTIER_FACILITY);
+ s32 symbol = GetFronterBrainSymbol();
+
+ return sFrontierBrainsMons[facility][symbol][monId].moves[moveSlotId];
+}
+
+u8 GetFrontierBrainMonNature(u8 monId)
+{
+ s32 facility = VarGet(VAR_FRONTIER_FACILITY);
+ s32 symbol = GetFronterBrainSymbol();
+
+ return sFrontierBrainsMons[facility][symbol][monId].nature;
+}
+
+u8 GetFrontierBrainMonEvs(u8 monId, u8 evStatId)
+{
+ s32 facility = VarGet(VAR_FRONTIER_FACILITY);
+ s32 symbol = GetFronterBrainSymbol();
+
+ return sFrontierBrainsMons[facility][symbol][monId].evs[evStatId];
+}
+
+s32 GetFronterBrainSymbol(void)
+{
+ s32 facility = VarGet(VAR_FRONTIER_FACILITY);
+ s32 symbol = GetPlayerSymbolCountForFacility(facility);
+
+ if (symbol == 2)
+ {
+ u16 winStreak = GetCurrentFacilityWinStreak();
+ if (winStreak + gUnknown_08611550[facility][3] == gUnknown_08611550[facility][0])
+ symbol = 0;
+ else if (winStreak + gUnknown_08611550[facility][3] == gUnknown_08611550[facility][1])
+ symbol = 1;
+ else if (winStreak + gUnknown_08611550[facility][3] > gUnknown_08611550[facility][1]
+ && (winStreak + gUnknown_08611550[facility][3] - gUnknown_08611550[facility][1]) % gUnknown_08611550[facility][2] == 0)
+ symbol = 1;
+ }
+ return symbol;
+}
+
+static void CopyFrontierBrainText(bool8 playerWonText)
+{
+ s32 facility;
+ s32 symbol;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
+ {
+ facility = GetRecordedBattleFrontierFacility();
+ symbol = GetRecordedBattleFronterBrainSymbol();
+ }
+ else
+ {
+ facility = VarGet(VAR_FRONTIER_FACILITY);
+ symbol = GetFronterBrainSymbol();
+ }
+
+ switch (playerWonText)
+ {
+ case FALSE:
+ StringCopy(gStringVar4, gUnknown_08611DB0[symbol][facility]);
+ break;
+ case TRUE:
+ StringCopy(gStringVar4, gUnknown_08611DB8[symbol][facility]);
+ break;
+ }
+}
diff --git a/src/item_menu.c b/src/item_menu.c
index 64c8036dd..0c3e26354 100755
--- a/src/item_menu.c
+++ b/src/item_menu.c
@@ -2,7 +2,7 @@
#include "item_menu.h"
#include "battle.h"
#include "battle_controllers.h"
-#include "battle_frontier_2.h"
+#include "frontier_util.h"
#include "berry_tag_screen.h"
#include "bg.h"
#include "constants/items.h"
@@ -48,6 +48,8 @@
#include "window.h"
#include "apprentice.h"
+extern bool8 InBattlePike(void);
+
void GoToBagMenu(u8 bagMenuType, u8 pocketId, void ( *postExitMenuMainCallback2)());
void CB2_Bag(void);
bool8 setup_bag_menu(void);
diff --git a/src/new_game.c b/src/new_game.c
index 127e48c35..cdabd5ccc 100644
--- a/src/new_game.c
+++ b/src/new_game.c
@@ -26,6 +26,7 @@
#include "item.h"
#include "pokedex.h"
#include "apprentice.h"
+#include "frontier_util.h"
extern u8 gDifferentSaveFile;
extern u16 gSaveFileStatus;
@@ -45,7 +46,6 @@ extern void NewGameInitPCItems(void);
extern void ClearDecorationInventories(void);
extern void ResetFanClub(void);
extern void copy_strings_to_sav1(void);
-extern void sub_81A4B14(void);
extern void sub_8195E10(void);
extern void sub_801AFD8(void);
extern void sub_800E5AC(void);
@@ -69,30 +69,30 @@ static const struct ContestWinner sContestWinnerPicDummy =
};
// code
-void WriteUnalignedWord(u32 var, u8 *dataPtr)
+void SetTrainerId(u32 trainerId, u8 *dst)
{
- dataPtr[0] = var;
- dataPtr[1] = var >> 8;
- dataPtr[2] = var >> 16;
- dataPtr[3] = var >> 24;
+ dst[0] = trainerId;
+ dst[1] = trainerId >> 8;
+ dst[2] = trainerId >> 16;
+ dst[3] = trainerId >> 24;
}
-u32 ReadUnalignedWord(u8* dataPtr)
+u32 GetTrainerId(u8 *trainerId)
{
- return (dataPtr[3] << 24) | (dataPtr[2] << 16) | (dataPtr[1] << 8) | (dataPtr[0]);
+ return (trainerId[3] << 24) | (trainerId[2] << 16) | (trainerId[1] << 8) | (trainerId[0]);
}
-void CopyUnalignedWord(u8 *copyTo, u8 *copyFrom)
+void CopyTrainerId(u8 *dst, u8 *src)
{
s32 i;
for (i = 0; i < 4; i++)
- copyTo[i] = copyFrom[i];
+ dst[i] = src[i];
}
static void InitPlayerTrainerId(void)
{
u32 trainerId = (Random() << 0x10) | GetGeneratedTrainerIdLower();
- WriteUnalignedWord(trainerId, gSaveBlock2Ptr->playerTrainerId);
+ SetTrainerId(trainerId, gSaveBlock2Ptr->playerTrainerId);
}
// L=A isnt set here for some reason.
@@ -204,7 +204,7 @@ void NewGameInitData(void)
copy_strings_to_sav1();
SetLilycoveLady();
ResetAllApprenticeData();
- sub_81A4B14();
+ ClearRankingHallRecords();
sub_8195E10();
sub_801AFD8();
sub_800E5AC();
diff --git a/src/overworld.c b/src/overworld.c
index 8d73a6680..cc945dea2 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -52,6 +52,7 @@
#include "tv.h"
#include "scanline_effect.h"
#include "wild_encounter.h"
+#include "frontier_util.h"
#include "constants/abilities.h"
#include "constants/map_types.h"
#include "constants/maps.h"
@@ -136,7 +137,6 @@ extern void sub_8087D74(void);
extern void battle_pyramid_map_load_related(u8);
extern void sub_80B00E8(u8);
extern void sub_80E9238(u8);
-extern void sub_81A3908(void);
extern void sub_81AA2F8(void);
extern void sub_8195E10(void);
extern void sub_80EDB44(void);
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index e1c2c79eb..11f46b475 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -2,7 +2,7 @@
#include "main.h"
#include "battle.h"
#include "battle_anim.h"
-#include "battle_frontier_2.h"
+#include "frontier_util.h"
#include "battle_message.h"
#include "battle_tent.h"
#include "bg.h"
@@ -45,6 +45,8 @@
#include "constants/songs.h"
#include "constants/species.h"
+extern bool8 sub_81A6BF4(void);
+
static EWRAM_DATA struct UnkSummaryStruct
{
/*0x00*/ union {
diff --git a/src/record_mixing.c b/src/record_mixing.c
index 4bb97cf1d..5f1aef1df 100644
--- a/src/record_mixing.c
+++ b/src/record_mixing.c
@@ -33,31 +33,17 @@
#include "new_game.h"
#include "daycare.h"
#include "international_string_util.h"
+#include "constants/battle_frontier.h"
extern void ReceiveSecretBasesData(struct SecretBaseRecord *, size_t, u8);
extern void ReceiveEasyChatPairsData(struct EasyChatPair *, size_t, u8);
// Static type declarations
-struct UnknownRecMixingStruct
+struct RecordMixingHallRecords
{
- u32 field_0;
- u16 field_4;
- u8 field_6[9];
-};
-
-struct UnknownRecMixingStruct2
-{
- u32 field_0;
- u16 field_4;
- u16 field_6;
- u16 field_8;
- u8 field_A[16];
-};
-
-struct UnknownRecMixingStruct3
-{
- u8 field_0[0x810];
+ struct RankingHall1P hallRecords1P[HALL_FACILITIES_COUNT][2][6];
+ struct RankingHall2P hallRecords2P[2][6];
};
struct PlayerRecordsRS
@@ -85,7 +71,7 @@ struct PlayerRecordsEmerald
/* 0x1210 */ u16 giftItem;
/* 0x1214 */ LilycoveLady lilycoveLady;
/* 0x1254 */ struct Apprentice apprentice[2];
- /* 0x12dc */ struct UnkRecordMixingStruct2 unk_12dc;
+ /* 0x12dc */ struct PlayerHallRecords hallRecords;
/* 0x1434 */ u8 field_1434[0x10];
}; // 0x1444
@@ -106,12 +92,12 @@ static IWRAM_DATA struct EasyChatPair *sEasyChatPairsSave;
static IWRAM_DATA struct RecordMixingDayCareMail *gUnknown_03001148;
static IWRAM_DATA void *sBattleTowerSave;
static IWRAM_DATA LilycoveLady *sLilycoveLadySave;
-static IWRAM_DATA void *gUnknown_03001154; // gSaveBlock2Ptr->field_0DC;
+static IWRAM_DATA void *sApprenticesSave;
static IWRAM_DATA void *sBattleTowerSave_Duplicate;
static IWRAM_DATA u32 sRecordStructSize;
static IWRAM_DATA u8 gUnknown_03001160;
static IWRAM_DATA u32 filler_03001164;
-static IWRAM_DATA u32 gUnknown_03001168[3];
+static IWRAM_DATA struct PlayerHallRecords *gUnknown_03001168[3];
static EWRAM_DATA struct RecordMixingDayCareMail gUnknown_02039F9C = {0};
static EWRAM_DATA union PlayerRecords *sReceivedRecords = NULL;
@@ -137,7 +123,7 @@ static void ReceiveGiftItem(u16 *item, u8 which);
static void sub_80E7FF8(u8 taskId);
static void sub_80E8110(struct Apprentice *arg0, struct Apprentice *arg1);
static void ReceiveApprenticeData(struct Apprentice *arg0, size_t arg1, u32 arg2);
-static void sub_80E89AC(struct UnkRecordMixingStruct2 *arg0, size_t arg1, u32 arg2);
+static void ReceiveRankingHallRecords(struct PlayerHallRecords *hallRecords, size_t arg1, u32 arg2);
static void sub_80E89F8(struct RecordMixingDayCareMail *dst);
static void SanitizeDayCareMailForRuby(struct RecordMixingDayCareMail *src);
static void SanitizeEmeraldBattleTowerRecord(struct EmeraldBattleTowerRecord *arg0);
@@ -200,7 +186,7 @@ static void SetSrcLookupPointers(void)
gUnknown_03001148 = &gUnknown_02039F9C;
sBattleTowerSave = &gSaveBlock2Ptr->frontier.towerPlayer;
sLilycoveLadySave = &gSaveBlock1Ptr->lilycoveLady;
- gUnknown_03001154 = gSaveBlock2Ptr->apprentices;
+ sApprenticesSave = gSaveBlock2Ptr->apprentices;
sBattleTowerSave_Duplicate = &gSaveBlock2Ptr->frontier.towerPlayer;
}
@@ -266,8 +252,8 @@ static void PrepareExchangePacket(void)
if (GetMultiplayerId() == 0)
sSentRecord->emerald.giftItem = GetRecordMixingGift();
- sub_80E8110(sSentRecord->emerald.apprentice, gUnknown_03001154);
- sub_80E8260(&sSentRecord->emerald.unk_12dc);
+ sub_80E8110(sSentRecord->emerald.apprentice, sApprenticesSave);
+ GetPlayerHallRecords(&sSentRecord->emerald.hallRecords);
}
}
@@ -300,7 +286,7 @@ static void ReceiveExchangePacket(u32 which)
ReceiveGiftItem(&sReceivedRecords->emerald.giftItem, which);
ReceiveLilycoveLadyData(&sReceivedRecords->emerald.lilycoveLady, sizeof(struct PlayerRecordsEmerald), which);
ReceiveApprenticeData(sReceivedRecords->emerald.apprentice, sizeof(struct PlayerRecordsEmerald), (u8) which);
- sub_80E89AC(&sReceivedRecords->emerald.unk_12dc, sizeof(struct PlayerRecordsEmerald), (u8) which);
+ ReceiveRankingHallRecords(&sReceivedRecords->emerald.hallRecords, sizeof(struct PlayerRecordsEmerald), (u8) which);
}
}
@@ -1571,12 +1557,12 @@ static void sub_80E8110(struct Apprentice *dst, struct Apprentice *src)
id = ((i + gSaveBlock2Ptr->playerApprentice.field_B2_1) % 3) + 1;
if (src[id].playerName[0] != EOS)
{
- if (ReadUnalignedWord(src[id].playerId) != ReadUnalignedWord(gSaveBlock2Ptr->playerTrainerId))
+ if (GetTrainerId(src[id].playerId) != GetTrainerId(gSaveBlock2Ptr->playerTrainerId))
{
r8++;
var_2C = id;
}
- if (ReadUnalignedWord(src[id].playerId) == ReadUnalignedWord(gSaveBlock2Ptr->playerTrainerId))
+ if (GetTrainerId(src[id].playerId) == GetTrainerId(gSaveBlock2Ptr->playerTrainerId))
{
var_24++;
var_28 = id;
@@ -1608,42 +1594,42 @@ static void sub_80E8110(struct Apprentice *dst, struct Apprentice *src)
}
}
-void sub_80E8260(struct UnkRecordMixingStruct2 *dst)
+void GetPlayerHallRecords(struct PlayerHallRecords *dst)
{
s32 i, j;
- for (i = 0; i < 9; i++)
+ for (i = 0; i < HALL_FACILITIES_COUNT; i++)
{
for (j = 0; j < 2; j++)
{
- CopyUnalignedWord(dst->field_0[i][j].playerId, gSaveBlock2Ptr->playerTrainerId);
- dst->field_0[i][j].language = GAME_LANGUAGE;
- StringCopy(dst->field_0[i][j].playerName, gSaveBlock2Ptr->playerName);
+ CopyTrainerId(dst->onePlayer[i][j].id, gSaveBlock2Ptr->playerTrainerId);
+ dst->onePlayer[i][j].language = GAME_LANGUAGE;
+ StringCopy(dst->onePlayer[i][j].name, gSaveBlock2Ptr->playerName);
}
}
for (j = 0; j < 2; j++)
{
- dst->field_120[j].language = GAME_LANGUAGE;
- CopyUnalignedWord(dst->field_120[j].playerId1, gSaveBlock2Ptr->playerTrainerId);
- CopyUnalignedWord(dst->field_120[j].playerId2, gSaveBlock2Ptr->frontier.field_EF1[j]);
- StringCopy(dst->field_120[j].playerName1, gSaveBlock2Ptr->playerName);
- StringCopy(dst->field_120[j].playerName2, gSaveBlock2Ptr->frontier.field_EE1[j]);
+ dst->twoPlayers[j].language = GAME_LANGUAGE;
+ CopyTrainerId(dst->twoPlayers[j].id1, gSaveBlock2Ptr->playerTrainerId);
+ CopyTrainerId(dst->twoPlayers[j].id2, gSaveBlock2Ptr->frontier.field_EF1[j]);
+ StringCopy(dst->twoPlayers[j].name1, gSaveBlock2Ptr->playerName);
+ StringCopy(dst->twoPlayers[j].name2, gSaveBlock2Ptr->frontier.field_EE1[j]);
}
for (i = 0; i < 2; i++)
{
- dst->field_0[0][i].field_4 = gSaveBlock2Ptr->frontier.field_CF0[i];
- dst->field_0[1][i].field_4 = gSaveBlock2Ptr->frontier.field_CF4[i];
- dst->field_0[2][i].field_4 = gSaveBlock2Ptr->frontier.field_CF8[i];
- dst->field_0[3][i].field_4 = gSaveBlock2Ptr->frontier.field_D14[0][i];
- dst->field_0[4][i].field_4 = gSaveBlock2Ptr->frontier.field_DD0[0][i];
- dst->field_0[5][i].field_4 = gSaveBlock2Ptr->frontier.field_DDE[i];
- dst->field_0[6][i].field_4 = gSaveBlock2Ptr->frontier.field_DEA[i];
- dst->field_0[7][i].field_4 = gSaveBlock2Ptr->frontier.field_E08[i];
- dst->field_0[8][i].field_4 = gSaveBlock2Ptr->frontier.field_E1E[i];
-
- dst->field_120[i].field_8 = gSaveBlock2Ptr->frontier.field_CFC[i];
+ dst->onePlayer[0][i].winStreak = gSaveBlock2Ptr->frontier.towerRecordWinStreaks[FRONTIER_MODE_SINGLES][i];
+ dst->onePlayer[1][i].winStreak = gSaveBlock2Ptr->frontier.towerRecordWinStreaks[FRONTIER_MODE_DOUBLES][i];
+ dst->onePlayer[2][i].winStreak = gSaveBlock2Ptr->frontier.towerRecordWinStreaks[FRONTIER_MODE_MULTIS][i];
+ dst->onePlayer[3][i].winStreak = gSaveBlock2Ptr->frontier.domeRecordWinStreaks[FRONTIER_MODE_SINGLES][i];
+ dst->onePlayer[4][i].winStreak = gSaveBlock2Ptr->frontier.palaceRecordWinStreaks[FRONTIER_MODE_SINGLES][i];
+ dst->onePlayer[5][i].winStreak = gSaveBlock2Ptr->frontier.arenaRecordStreaks[i];
+ dst->onePlayer[6][i].winStreak = gSaveBlock2Ptr->frontier.factoryRecordWinStreaks[FRONTIER_MODE_SINGLES][i];
+ dst->onePlayer[7][i].winStreak = gSaveBlock2Ptr->frontier.pikeRecordStreaks[i];
+ dst->onePlayer[8][i].winStreak = gSaveBlock2Ptr->frontier.pyramidRecordStreaks[i];
+
+ dst->twoPlayers[i].winStreak = gSaveBlock2Ptr->frontier.towerRecordWinStreaks[FRONTIER_MODE_LINK_MULTIS][i];
}
}
@@ -1653,7 +1639,7 @@ static bool32 sub_80E841C(struct Apprentice *arg0, struct Apprentice *arg1)
for (i = 0; i < 4; i++)
{
- if (ReadUnalignedWord(arg0->playerId) == ReadUnalignedWord(arg1[i].playerId)
+ if (GetTrainerId(arg0->playerId) == GetTrainerId(arg1[i].playerId)
&& arg0->number == arg1[i].number)
{
return TRUE;
@@ -1701,538 +1687,144 @@ static void ReceiveApprenticeData(struct Apprentice *arg0, size_t arg1, u32 arg2
}
}
-NAKED
-static void sub_80E8578(struct UnknownRecMixingStruct3 *arg0, struct UnkRecordMixingStruct2 *arg1, size_t arg2, u32 arg3, u32 arg4)
+static void sub_80E8578(struct RecordMixingHallRecords *dst, void *hallRecords, size_t recordSize, u32 arg3, s32 linkPlayerCount)
{
- asm_unified(" push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0x54\n\
- str r0, [sp]\n\
- ldr r0, [sp, 0x74]\n\
- movs r4, 0\n\
- mov r8, r4\n\
- movs r5, 0\n\
- str r5, [sp, 0x4]\n\
- ldr r4, =gUnknown_03001168\n\
- b _080E85A0\n\
- .pool\n\
-_080E8598:\n\
- adds r1, r2\n\
- ldr r6, [sp, 0x4]\n\
- adds r6, 0x1\n\
- str r6, [sp, 0x4]\n\
-_080E85A0:\n\
- ldr r5, [sp, 0x4]\n\
- cmp r5, r0\n\
- bge _080E85B6\n\
- cmp r5, r3\n\
- beq _080E85B0\n\
- stm r4!, {r1}\n\
- movs r6, 0x1\n\
- add r8, r6\n\
-_080E85B0:\n\
- mov r5, r8\n\
- cmp r5, 0x3\n\
- bne _080E8598\n\
-_080E85B6:\n\
- movs r6, 0\n\
- str r6, [sp, 0x4]\n\
- subs r0, 0x1\n\
- str r0, [sp, 0x24]\n\
-_080E85BE:\n\
- movs r0, 0\n\
- str r0, [sp, 0x8]\n\
- ldr r1, [sp, 0x4]\n\
- adds r1, 0x1\n\
- str r1, [sp, 0x28]\n\
- ldr r2, [sp, 0x4]\n\
- lsls r2, 1\n\
- str r2, [sp, 0x34]\n\
- ldr r3, [sp, 0x4]\n\
- adds r3, r2, r3\n\
- str r3, [sp, 0x10]\n\
- movs r4, 0\n\
- str r4, [sp, 0x44]\n\
- movs r5, 0\n\
- str r5, [sp, 0x48]\n\
-_080E85DC:\n\
- movs r6, 0\n\
- mov r8, r6\n\
- ldr r0, =gSaveBlock2Ptr\n\
- ldr r1, [r0]\n\
- ldr r2, [sp, 0x10]\n\
- lsls r0, r2, 5\n\
- ldr r3, [sp, 0x48]\n\
- adds r0, r3, r0\n\
- adds r3, r0, r1\n\
- lsls r0, r2, 6\n\
- ldr r4, [sp, 0x44]\n\
- adds r0, r4, r0\n\
- ldr r5, [sp]\n\
- adds r2, r0, r5\n\
-_080E85F8:\n\
- adds r0, r2, 0\n\
- movs r6, 0x87\n\
- lsls r6, 2\n\
- adds r1, r3, r6\n\
- ldm r1!, {r4-r6}\n\
- stm r0!, {r4-r6}\n\
- ldr r1, [r1]\n\
- str r1, [r0]\n\
- adds r3, 0x10\n\
- adds r2, 0x10\n\
- movs r0, 0x1\n\
- add r8, r0\n\
- mov r1, r8\n\
- cmp r1, 0x2\n\
- ble _080E85F8\n\
- movs r2, 0\n\
- mov r8, r2\n\
- ldr r3, [sp, 0x24]\n\
- cmp r8, r3\n\
- bge _080E86DC\n\
- ldr r4, [sp, 0x4]\n\
- lsls r4, 5\n\
- mov r9, r4\n\
- ldr r5, [sp, 0x8]\n\
- lsls r7, r5, 4\n\
- ldr r6, [sp, 0x34]\n\
- ldr r1, [sp, 0x4]\n\
- adds r0, r6, r1\n\
- lsls r0, 6\n\
- str r0, [sp, 0x14]\n\
- ldr r2, [sp]\n\
- adds r0, r2, r0\n\
- ldr r3, [sp, 0x44]\n\
- str r3, [sp, 0x18]\n\
- adds r0, r3\n\
- str r0, [sp, 0x1C]\n\
- ldr r4, [sp, 0x14]\n\
- adds r0, r3, r4\n\
- adds r0, r2\n\
- adds r0, 0x30\n\
- mov r10, r0\n\
-_080E864A:\n\
- movs r5, 0\n\
- str r5, [sp, 0xC]\n\
- movs r3, 0\n\
- mov r6, r8\n\
- lsls r6, 2\n\
- str r6, [sp, 0x38]\n\
- ldr r1, [sp, 0x18]\n\
- ldr r2, [sp, 0x14]\n\
- adds r0, r1, r2\n\
- ldr r4, [sp]\n\
- adds r5, r0, r4\n\
- ldr r0, =gUnknown_03001168\n\
- adds r0, r6, r0\n\
- str r0, [sp, 0x50]\n\
-_080E8666:\n\
- lsls r0, r3, 4\n\
- ldr r6, [sp, 0x1C]\n\
- adds r0, r6, r0\n\
- str r3, [sp, 0x4C]\n\
- bl ReadUnalignedWord\n\
- adds r4, r0, 0\n\
- ldr r1, [sp, 0x50]\n\
- ldr r0, [r1]\n\
- add r0, r9\n\
- adds r0, r7\n\
- bl ReadUnalignedWord\n\
- ldr r3, [sp, 0x4C]\n\
- cmp r4, r0\n\
- bne _080E86A8\n\
- ldr r2, [sp, 0xC]\n\
- adds r2, 0x1\n\
- str r2, [sp, 0xC]\n\
- ldr r4, [sp, 0x50]\n\
- ldr r0, [r4]\n\
- mov r6, r9\n\
- adds r1, r7, r6\n\
- adds r1, r0, r1\n\
- ldrh r0, [r5, 0x4]\n\
- ldrh r2, [r1, 0x4]\n\
- cmp r0, r2\n\
- bcs _080E86A8\n\
- adds r0, r5, 0\n\
- ldm r1!, {r2,r4,r6}\n\
- stm r0!, {r2,r4,r6}\n\
- ldr r1, [r1]\n\
- str r1, [r0]\n\
-_080E86A8:\n\
- adds r5, 0x10\n\
- adds r3, 0x1\n\
- cmp r3, 0x2\n\
- ble _080E8666\n\
- ldr r3, [sp, 0xC]\n\
- cmp r3, 0\n\
- bne _080E86CE\n\
- ldr r0, =gUnknown_03001168\n\
- ldr r4, [sp, 0x38]\n\
- adds r0, r4, r0\n\
- ldr r0, [r0]\n\
- mov r5, r9\n\
- adds r2, r7, r5\n\
- mov r1, r10\n\
- adds r0, r2\n\
- ldm r0!, {r2,r3,r6}\n\
- stm r1!, {r2,r3,r6}\n\
- ldr r0, [r0]\n\
- str r0, [r1]\n\
-_080E86CE:\n\
- movs r4, 0x10\n\
- add r10, r4\n\
- movs r5, 0x1\n\
- add r8, r5\n\
- ldr r6, [sp, 0x24]\n\
- cmp r8, r6\n\
- blt _080E864A\n\
-_080E86DC:\n\
- ldr r0, [sp, 0x44]\n\
- adds r0, 0x60\n\
- str r0, [sp, 0x44]\n\
- ldr r1, [sp, 0x48]\n\
- adds r1, 0x30\n\
- str r1, [sp, 0x48]\n\
- ldr r2, [sp, 0x8]\n\
- adds r2, 0x1\n\
- str r2, [sp, 0x8]\n\
- cmp r2, 0x1\n\
- bgt _080E86F4\n\
- b _080E85DC\n\
-_080E86F4:\n\
- ldr r3, [sp, 0x28]\n\
- str r3, [sp, 0x4]\n\
- cmp r3, 0x8\n\
- bgt _080E86FE\n\
- b _080E85BE\n\
-_080E86FE:\n\
- movs r4, 0\n\
- str r4, [sp, 0x8]\n\
-_080E8702:\n\
- ldr r5, [sp, 0x8]\n\
- adds r5, 0x1\n\
- str r5, [sp, 0x2C]\n\
- ldr r0, =gSaveBlock2Ptr\n\
- ldr r1, [r0]\n\
- movs r0, 0x54\n\
- ldr r6, [sp, 0x8]\n\
- muls r0, r6\n\
- adds r3, r0, r1\n\
- movs r0, 0xA8\n\
- muls r0, r6\n\
- ldr r1, [sp]\n\
- adds r2, r0, r1\n\
- movs r4, 0x2\n\
- mov r8, r4\n\
-_080E8720:\n\
- movs r5, 0xD8\n\
- lsls r5, 3\n\
- adds r0, r2, r5\n\
- ldr r6, =0x0000057c\n\
- adds r1, r3, r6\n\
- ldm r1!, {r4-r6}\n\
- stm r0!, {r4-r6}\n\
- ldm r1!, {r4-r6}\n\
- stm r0!, {r4-r6}\n\
- ldr r1, [r1]\n\
- str r1, [r0]\n\
- adds r3, 0x1C\n\
- adds r2, 0x1C\n\
- movs r0, 0x1\n\
- negs r0, r0\n\
- add r8, r0\n\
- mov r1, r8\n\
- cmp r1, 0\n\
- bge _080E8720\n\
- movs r2, 0\n\
- mov r8, r2\n\
- ldr r3, [sp, 0x24]\n\
- cmp r8, r3\n\
- blt _080E8752\n\
- b _080E885A\n\
-_080E8752:\n\
- ldr r4, [sp, 0x8]\n\
- lsls r1, r4, 3\n\
- movs r0, 0xA8\n\
- adds r5, r4, 0\n\
- muls r5, r0\n\
- str r5, [sp, 0x20]\n\
- str r5, [sp, 0x3C]\n\
- subs r1, r4\n\
- lsls r1, 2\n\
- mov r10, r1\n\
-_080E8766:\n\
- movs r6, 0\n\
- str r6, [sp, 0xC]\n\
- mov r0, r8\n\
- lsls r0, 2\n\
- str r0, [sp, 0x38]\n\
- mov r1, r8\n\
- adds r1, 0x1\n\
- str r1, [sp, 0x30]\n\
- ldr r0, =gUnknown_03001168\n\
- ldr r2, [sp, 0x38]\n\
- adds r2, r0\n\
- mov r9, r2\n\
- ldr r3, [sp]\n\
- movs r4, 0xD8\n\
- lsls r4, 3\n\
- adds r0, r3, r4\n\
- ldr r5, [sp, 0x3C]\n\
- adds r7, r5, r0\n\
- str r6, [sp, 0x40]\n\
- movs r3, 0x2\n\
-_080E878E:\n\
- ldr r1, [sp, 0x20]\n\
- movs r2, 0xD8\n\
- lsls r2, 3\n\
- adds r0, r1, r2\n\
- ldr r4, [sp]\n\
- adds r0, r4, r0\n\
- ldr r6, [sp, 0x40]\n\
- adds r5, r0, r6\n\
- adds r0, r5, 0\n\
- str r3, [sp, 0x4C]\n\
- bl ReadUnalignedWord\n\
- adds r4, r0, 0\n\
- movs r6, 0x90\n\
- lsls r6, 1\n\
- add r6, r10\n\
- mov r1, r9\n\
- ldr r0, [r1]\n\
- adds r0, r6\n\
- bl ReadUnalignedWord\n\
- ldr r3, [sp, 0x4C]\n\
- cmp r4, r0\n\
- bne _080E8808\n\
- adds r0, r5, 0x4\n\
- bl ReadUnalignedWord\n\
- adds r4, r0, 0\n\
- mov r2, r9\n\
- ldr r0, [r2]\n\
- adds r0, r6\n\
- adds r0, 0x4\n\
- bl ReadUnalignedWord\n\
- ldr r3, [sp, 0x4C]\n\
- cmp r4, r0\n\
- bne _080E8808\n\
- ldr r4, [sp, 0xC]\n\
- adds r4, 0x1\n\
- str r4, [sp, 0xC]\n\
- mov r5, r9\n\
- ldr r0, [r5]\n\
- mov r6, r10\n\
- adds r2, r0, r6\n\
- movs r0, 0x94\n\
- lsls r0, 1\n\
- adds r1, r2, r0\n\
- ldrh r0, [r7, 0x8]\n\
- ldrh r1, [r1]\n\
- cmp r0, r1\n\
- bcs _080E8808\n\
- adds r0, r7, 0\n\
- movs r4, 0x90\n\
- lsls r4, 1\n\
- adds r1, r2, r4\n\
- ldm r1!, {r2,r5,r6}\n\
- stm r0!, {r2,r5,r6}\n\
- ldm r1!, {r4-r6}\n\
- stm r0!, {r4-r6}\n\
- ldr r1, [r1]\n\
- str r1, [r0]\n\
-_080E8808:\n\
- adds r7, 0x1C\n\
- ldr r0, [sp, 0x40]\n\
- adds r0, 0x1C\n\
- str r0, [sp, 0x40]\n\
- subs r3, 0x1\n\
- cmp r3, 0\n\
- bge _080E878E\n\
- ldr r1, [sp, 0xC]\n\
- cmp r1, 0\n\
- bne _080E8850\n\
- mov r0, r8\n\
- adds r0, 0x3\n\
- lsls r1, r0, 3\n\
- subs r1, r0\n\
- lsls r1, 2\n\
- ldr r2, [sp, 0x20]\n\
- adds r1, r2\n\
- ldr r3, [sp]\n\
- adds r1, r3, r1\n\
- ldr r0, =gUnknown_03001168\n\
- ldr r4, [sp, 0x38]\n\
- adds r0, r4, r0\n\
- ldr r0, [r0]\n\
- add r0, r10\n\
- movs r5, 0xD8\n\
- lsls r5, 3\n\
- adds r1, r5\n\
- movs r6, 0x90\n\
- lsls r6, 1\n\
- adds r0, r6\n\
- ldm r0!, {r2-r4}\n\
- stm r1!, {r2-r4}\n\
- ldm r0!, {r2,r5,r6}\n\
- stm r1!, {r2,r5,r6}\n\
- ldr r0, [r0]\n\
- str r0, [r1]\n\
-_080E8850:\n\
- ldr r3, [sp, 0x30]\n\
- mov r8, r3\n\
- ldr r4, [sp, 0x24]\n\
- cmp r8, r4\n\
- blt _080E8766\n\
-_080E885A:\n\
- ldr r5, [sp, 0x2C]\n\
- str r5, [sp, 0x8]\n\
- cmp r5, 0x1\n\
- bgt _080E8864\n\
- b _080E8702\n\
-_080E8864:\n\
- add sp, 0x54\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .pool\n\
- ");
+ s32 i, j, k, l;
+ s32 var_68;
+
+ k = 0;
+ i = 0;
+ while (1)
+ {
+ if (i >= linkPlayerCount)
+ break;
+ if (i != arg3)
+ gUnknown_03001168[k++] = hallRecords;
+
+ if (k == 3)
+ break;
+ hallRecords += recordSize;
+ i++;
+ }
+
+ for (i = 0; i < HALL_FACILITIES_COUNT; i++)
+ {
+ for (j = 0; j < 2; j++)
+ {
+ for (k = 0; k < 3; k++)
+ dst->hallRecords1P[i][j][k] = gSaveBlock2Ptr->hallRecords1P[i][j][k];
+
+ for (k = 0; k < linkPlayerCount - 1; k++)
+ {
+ var_68 = 0;
+ for (l = 0; l < 3; l++)
+ {
+ if (GetTrainerId(dst->hallRecords1P[i][j][l].id) == GetTrainerId(gUnknown_03001168[k]->onePlayer[i][j].id))
+ {
+ var_68++;
+ if (dst->hallRecords1P[i][j][l].winStreak < gUnknown_03001168[k]->onePlayer[i][j].winStreak)
+ dst->hallRecords1P[i][j][l] = gUnknown_03001168[k]->onePlayer[i][j];
+ }
+ }
+ if (var_68 == 0)
+ dst->hallRecords1P[i][j][k + 3] = gUnknown_03001168[k]->onePlayer[i][j];
+ }
+ }
+ }
+
+ for (j = 0; j < 2; j++)
+ {
+ for (k = 0; k < 3; k++)
+ dst->hallRecords2P[j][k] = gSaveBlock2Ptr->hallRecords2P[j][k];
+
+ for (k = 0; k < linkPlayerCount - 1; k++)
+ {
+ var_68 = 0;
+ for (l = 0; l < 3; l++)
+ {
+ if (GetTrainerId(dst->hallRecords2P[j][l].id1) == GetTrainerId(gUnknown_03001168[k]->twoPlayers[j].id1)
+ && GetTrainerId(dst->hallRecords2P[j][l].id2) == GetTrainerId(gUnknown_03001168[k]->twoPlayers[j].id2))
+ {
+ var_68++;
+ if (dst->hallRecords2P[j][l].winStreak < gUnknown_03001168[k]->twoPlayers[j].winStreak)
+ dst->hallRecords2P[j][l] = gUnknown_03001168[k]->twoPlayers[j];
+ }
+ }
+ if (var_68 == 0)
+ dst->hallRecords2P[j][k + 3] = gUnknown_03001168[k]->twoPlayers[j];
+ }
+ }
}
-static void sub_80E8880(struct UnknownRecMixingStruct *arg0, struct UnknownRecMixingStruct *arg1)
+static void sub_80E8880(struct RankingHall1P *arg0, struct RankingHall1P *arg1)
{
s32 i, j;
for (i = 0; i < 3; i++)
{
- s32 r2 = 0;
- s32 r4 = -1;
+ s32 highestWinStreak = 0;
+ s32 highestId = -1;
for (j = 0; j < 6; j++)
{
- if (arg1[j].field_4 > r2)
+ if (arg1[j].winStreak > highestWinStreak)
{
- r4 = j;
- r2 = arg1[j].field_4;
+ highestId = j;
+ highestWinStreak = arg1[j].winStreak;
}
}
- if (r4 >= 0)
+ if (highestId >= 0)
{
- arg0[i] = arg1[r4];
- arg1[r4].field_4 = 0;
+ arg0[i] = arg1[highestId];
+ arg1[highestId].winStreak = 0;
}
}
}
-static void sub_80E88CC(struct UnknownRecMixingStruct2 *arg0, struct UnknownRecMixingStruct2 *arg1)
+static void sub_80E88CC(struct RankingHall2P *arg0, struct RankingHall2P *arg1)
{
s32 i, j;
for (i = 0; i < 3; i++)
{
- s32 r2 = 0;
- s32 r4 = -1;
+ s32 highestWinStreak = 0;
+ s32 highestId = -1;
for (j = 0; j < 6; j++)
{
- if (arg1[j].field_8 > r2)
+ if (arg1[j].winStreak > highestWinStreak)
{
- r4 = j;
- r2 = arg1[j].field_8;
+ highestId = j;
+ highestWinStreak = arg1[j].winStreak;
}
}
- if (r4 >= 0)
+ if (highestId >= 0)
{
- arg0[i] = arg1[r4];
- arg1[r4].field_8 = 0;
+ arg0[i] = arg1[highestId];
+ arg1[highestId].winStreak = 0;
}
}
}
-NAKED
-static void sub_80E8924(struct UnknownRecMixingStruct3 *arg0)
+static void sub_80E8924(struct RecordMixingHallRecords *arg0)
{
- asm_unified("push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- mov r9, r0\n\
- movs r0, 0\n\
- ldr r1, =gSaveBlock2Ptr\n\
- mov r10, r1\n\
-_080E8936:\n\
- lsls r1, r0, 1\n\
- adds r2, r0, 0x1\n\
- mov r8, r2\n\
- adds r1, r0\n\
- lsls r0, r1, 5\n\
- movs r2, 0x87\n\
- lsls r2, 2\n\
- adds r7, r0, r2\n\
- lsls r1, 6\n\
- mov r0, r9\n\
- adds r4, r0, r1\n\
- movs r6, 0\n\
- movs r5, 0x1\n\
-_080E8950:\n\
- mov r1, r10\n\
- ldr r0, [r1]\n\
- adds r0, r7\n\
- adds r0, r6\n\
- adds r1, r4, 0\n\
- bl sub_80E8880\n\
- adds r4, 0x60\n\
- adds r6, 0x30\n\
- subs r5, 0x1\n\
- cmp r5, 0\n\
- bge _080E8950\n\
- mov r0, r8\n\
- cmp r0, 0x8\n\
- ble _080E8936\n\
- movs r5, 0\n\
- ldr r4, =gSaveBlock2Ptr\n\
-_080E8972:\n\
- movs r0, 0x54\n\
- adds r1, r5, 0\n\
- muls r1, r0\n\
- ldr r2, =0x0000057c\n\
- adds r1, r2\n\
- ldr r0, [r4]\n\
- adds r0, r1\n\
- movs r1, 0xA8\n\
- muls r1, r5\n\
- movs r2, 0xD8\n\
- lsls r2, 3\n\
- adds r1, r2\n\
- add r1, r9\n\
- bl sub_80E88CC\n\
- adds r5, 0x1\n\
- cmp r5, 0x1\n\
- ble _080E8972\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .pool");
+ s32 i, j;
+
+ for (i = 0; i < HALL_FACILITIES_COUNT; i++)
+ {
+ for (j = 0; j < 2; j++)
+ sub_80E8880(gSaveBlock2Ptr->hallRecords1P[i][j], arg0->hallRecords1P[i][j]);
+ }
+ for (j = 0; j < 2; j++)
+ sub_80E88CC(gSaveBlock2Ptr->hallRecords2P[j], arg0->hallRecords2P[j]);
}
-static void sub_80E89AC(struct UnkRecordMixingStruct2 *arg0, size_t arg1, u32 arg2)
+static void ReceiveRankingHallRecords(struct PlayerHallRecords *hallRecords, size_t recordSize, u32 arg2)
{
u8 linkPlayerCount = GetLinkPlayerCount();
- struct UnknownRecMixingStruct3 *largeStructPtr = AllocZeroed(sizeof(struct UnknownRecMixingStruct3));
+ struct RecordMixingHallRecords *largeStructPtr = AllocZeroed(sizeof(struct RecordMixingHallRecords));
- sub_80E8578(largeStructPtr, arg0, arg1, arg2, linkPlayerCount);
+ sub_80E8578(largeStructPtr, hallRecords, recordSize, arg2, linkPlayerCount);
sub_80E8924(largeStructPtr);
Free(largeStructPtr);
diff --git a/src/recorded_battle.c b/src/recorded_battle.c
index 0a199f289..50dd2efa8 100644
--- a/src/recorded_battle.c
+++ b/src/recorded_battle.c
@@ -14,17 +14,16 @@
#include "task.h"
#include "text.h"
#include "battle_setup.h"
+#include "frontier_util.h"
+#include "constants/trainers.h"
#define BATTLER_RECORD_SIZE 664
#define ILLEGAL_BATTLE_TYPES ((BATTLE_TYPE_LINK | BATTLE_TYPE_SAFARI | BATTLE_TYPE_FIRST_BATTLE \
- | BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_ROAMER | BATTLE_TYPE_EREADER_TRAINER \
- | BATTLE_TYPE_KYOGRE_GROUDON | BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_REGI \
- | BATTLE_TYPE_RECORDED | BATTLE_TYPE_TRAINER_HILL | BATTLE_TYPE_SECRET_BASE \
+ | BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_ROAMER | BATTLE_TYPE_EREADER_TRAINER \
+ | BATTLE_TYPE_KYOGRE_GROUDON | BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_REGI \
+ | BATTLE_TYPE_RECORDED | BATTLE_TYPE_TRAINER_HILL | BATTLE_TYPE_SECRET_BASE \
| BATTLE_TYPE_GROUDON | BATTLE_TYPE_KYOGRE | BATTLE_TYPE_RAYQUAZA))
-extern u8 gUnknown_03001278;
-extern u8 gUnknown_03001279;
-
struct PlayerInfo
{
u32 trainerId;
@@ -55,18 +54,18 @@ struct RecordedBattleSave
u16 opponentB;
u16 partnerId;
u16 field_4FA;
- u8 field_4FC;
- u8 field_4FD;
- u8 field_4FE;
- u8 battleStyle:1;
+ u8 lvlMode;
+ u8 frontierFacility;
+ u8 frontierBrainSymbol;
+ u8 battleScene:1;
u8 textSpeed:3;
u32 AI_scripts;
- u8 field_504[8];
- u8 field_50C;
- u8 field_50D;
- u16 field_50E[6];
- u8 field_51A;
- u8 field_51B;
+ u8 recordMixFriendName[PLAYER_NAME_LENGTH + 1];
+ u8 recordMixFriendClass;
+ u8 apprenticeId;
+ u16 easyChatSpeech[6];
+ u8 recordMixFriendLanguage;
+ u8 apprenticeLanguage;
u8 battleRecord[MAX_BATTLERS_COUNT][BATTLER_RECORD_SIZE];
u32 checksum;
};
@@ -78,13 +77,13 @@ EWRAM_DATA static u16 sRecordedBytesNo[MAX_BATTLERS_COUNT] = {0};
EWRAM_DATA static u16 sUnknown_0203C79C[4] = {0};
EWRAM_DATA static u16 sUnknown_0203C7A4[4] = {0};
EWRAM_DATA static u8 sUnknown_0203C7AC = 0;
-EWRAM_DATA static u8 sUnknown_0203C7AD = 0;
+EWRAM_DATA static u8 sLvlMode = 0;
EWRAM_DATA static u8 sFrontierFacility = 0;
-EWRAM_DATA static u8 sUnknown_0203C7AF = 0;
+EWRAM_DATA static u8 sFrontierBrainSymbol = 0;
EWRAM_DATA static MainCallback sCallback2_AfterRecordedBattle = NULL;
EWRAM_DATA u8 gUnknown_0203C7B4 = 0;
EWRAM_DATA static u8 sUnknown_0203C7B5 = 0;
-EWRAM_DATA static u8 sBattleStyle = 0;
+EWRAM_DATA static u8 sBattleScene = 0;
EWRAM_DATA static u8 sTextSpeed = 0;
EWRAM_DATA static u32 sBattleFlags = 0;
EWRAM_DATA static u32 sAI_Scripts = 0;
@@ -93,17 +92,18 @@ EWRAM_DATA static struct Pokemon sSavedOpponentParty[PARTY_SIZE] = {0};
EWRAM_DATA static u16 sPlayerMonMoves[2][4] = {0};
EWRAM_DATA static struct PlayerInfo sPlayers[MAX_BATTLERS_COUNT] = {0};
EWRAM_DATA static u8 sUnknown_0203CCD0 = 0;
-EWRAM_DATA static u8 sUnknown_0203CCD1[8] = {0};
-EWRAM_DATA static u8 sUnknown_0203CCD9 = 0;
-EWRAM_DATA static u8 sUnknown_0203CCDA = 0;
-EWRAM_DATA static u16 sUnknown_0203CCDC[6] = {0};
-EWRAM_DATA static u8 sUnknown_0203CCE8 = 0;
+EWRAM_DATA static u8 sRecordMixFriendName[PLAYER_NAME_LENGTH + 1] = {0};
+EWRAM_DATA static u8 sRecordMixFriendClass = 0;
+EWRAM_DATA static u8 sApprenticeId = 0;
+EWRAM_DATA static u16 sEasyChatSpeech[6] = {0};
+EWRAM_DATA static u8 sBattleOutcome = 0;
-extern u32 sub_81A513C(void);
+IWRAM_DATA static u8 sRecordMixFriendLanguage;
+IWRAM_DATA static u8 sApprenticeLanguage;
// this file's functions
static u8 sub_8185278(u8 *arg0, u8 *arg1, u8 *arg2);
-static bool32 AllocTryCopyRecordedBattleSaveData(struct RecordedBattleSave *dst);
+static bool32 CopyRecordedBattleFromSave(struct RecordedBattleSave *dst);
static void RecordedBattle_RestoreSavedParties(void);
static void CB2_RecordedBattle(void);
@@ -140,7 +140,7 @@ void sub_8184E58(void)
{
gRecordedBattleRngSeed = gRngValue;
sFrontierFacility = VarGet(VAR_FRONTIER_FACILITY);
- sUnknown_0203C7AF = sub_81A513C();
+ sFrontierBrainSymbol = GetFronterBrainSymbol();
}
else if (sUnknown_0203C7AC == 2)
{
@@ -297,7 +297,7 @@ static u8 sub_8185278(u8 *arg0, u8 *arg1, u8 *arg2)
bool32 CanCopyRecordedBattleSaveData(void)
{
struct RecordedBattleSave *dst = AllocZeroed(sizeof(struct RecordedBattleSave));
- bool32 ret = AllocTryCopyRecordedBattleSaveData(dst);
+ bool32 ret = CopyRecordedBattleFromSave(dst);
Free(dst);
return ret;
}
@@ -314,26 +314,29 @@ static bool32 IsRecordedBattleSaveValid(struct RecordedBattleSave *save)
return TRUE;
}
-static bool32 sub_81852F0(struct RecordedBattleSave *battleSave, struct RecordedBattleSave *saveSection)
+static bool32 RecordedBattleToSave(struct RecordedBattleSave *battleSave, struct RecordedBattleSave *saveSection)
{
- memset(saveSection, 0, sizeof(struct SaveSection));
+ memset(saveSection, 0, 0x1000);
memcpy(saveSection, battleSave, sizeof(*battleSave));
saveSection->checksum = CalcByteArraySum((void*)(saveSection), sizeof(*saveSection) - 4);
if (sub_8153634(31, (void*)(saveSection)) != 1)
return FALSE;
-
- return TRUE;
+ else
+ return TRUE;
}
-#ifdef NONMATCHING
-u32 MoveRecordedBattleToSaveData(void)
+bool32 MoveRecordedBattleToSaveData(void)
{
s32 i, j;
- u8 var = 0;
- struct RecordedBattleSave *battleSave = AllocZeroed(sizeof(struct RecordedBattleSave));
- struct SaveSection *savSection = AllocZeroed(sizeof(struct SaveSection));
+ bool32 ret;
+ struct RecordedBattleSave *battleSave, *savSection;
+ u8 var;
+
+ var = 0;
+ battleSave = AllocZeroed(sizeof(struct RecordedBattleSave));
+ savSection = AllocZeroed(0x1000);
for (i = 0; i < PARTY_SIZE; i++)
{
@@ -357,8 +360,7 @@ u32 MoveRecordedBattleToSaveData(void)
if (sBattleFlags & BATTLE_TYPE_LINK)
{
- battleSave->battleFlags = (sBattleFlags & ~(BATTLE_TYPE_LINK | BATTLE_TYPE_20));
- battleSave->battleFlags |= BATTLE_TYPE_x2000000;
+ battleSave->battleFlags = (sBattleFlags & ~(BATTLE_TYPE_LINK | BATTLE_TYPE_20)) | BATTLE_TYPE_x2000000;
if (sBattleFlags & BATTLE_TYPE_IS_MASTER)
{
@@ -390,884 +392,101 @@ u32 MoveRecordedBattleToSaveData(void)
battleSave->opponentB = gTrainerBattleOpponent_B;
battleSave->partnerId = gPartnerTrainerId;
battleSave->field_4FA = gUnknown_0203C7B4;
- battleSave->field_4FC = gSaveBlock2Ptr->field_CA9_b;
- battleSave->field_4FD = sFrontierFacility;
- battleSave->field_4FE = sUnknown_0203C7AF;
- battleSave->battleStyle = gSaveBlock2Ptr->optionsBattleStyle;
+ battleSave->lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
+ battleSave->frontierFacility = sFrontierFacility;
+ battleSave->frontierBrainSymbol = sFrontierBrainSymbol;
+ battleSave->battleScene = gSaveBlock2Ptr->optionsBattleSceneOff;
battleSave->textSpeed = gSaveBlock2Ptr->optionsTextSpeed;
battleSave->AI_scripts = sAI_Scripts;
- /* Can't match it without proper knowledge of the Saveblock 2.
- if (gTrainerBattleOpponent_A >= 300 && gTrainerBattleOpponent_A <= 399)
+ if (gTrainerBattleOpponent_A >= TRAINER_RECORD_MIXING_FRIEND && gTrainerBattleOpponent_A < TRAINER_RECORD_MIXING_APPRENTICE)
{
- for (i = 0; i < 8; i++)
- {
- battleSave->field_504[i] = gSaveBlock2Ptr->records[gTrainerBattleOpponent_A - 300].field_4[i];
- }
- battleSave->field_50C = gSaveBlock2Ptr->records[gTrainerBattleOpponent_A - 300].field_1;
+ for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++)
+ battleSave->recordMixFriendName[i] = gSaveBlock2Ptr->frontier.towerRecords[gTrainerBattleOpponent_A - TRAINER_RECORD_MIXING_FRIEND].name[i];
+ battleSave->recordMixFriendClass = gSaveBlock2Ptr->frontier.towerRecords[gTrainerBattleOpponent_A - TRAINER_RECORD_MIXING_FRIEND].facilityClass;
- if (sUnknown_0203CCE8 == 1)
+ if (sBattleOutcome == B_OUTCOME_WON)
{
for (i = 0; i < 6; i++)
- {
- battleSave->field_50E[i] = gSaveBlock2Ptr->records[gTrainerBattleOpponent_A - 300].field_28[i];
- }
+ battleSave->easyChatSpeech[i] = gSaveBlock2Ptr->frontier.towerRecords[gTrainerBattleOpponent_A - TRAINER_RECORD_MIXING_FRIEND].speechLost[i];
}
else
{
for (i = 0; i < 6; i++)
- {
- battleSave->field_50E[i] = gSaveBlock2Ptr->records[gTrainerBattleOpponent_A - 300].field_1C[i];
- }
+ battleSave->easyChatSpeech[i] = gSaveBlock2Ptr->frontier.towerRecords[gTrainerBattleOpponent_A - TRAINER_RECORD_MIXING_FRIEND].speechWon[i];
}
- battleSave->field_51A = gSaveBlock2Ptr->records[gTrainerBattleOpponent_A - 300].field_E4;
+ battleSave->recordMixFriendLanguage = gSaveBlock2Ptr->frontier.towerRecords[gTrainerBattleOpponent_A - TRAINER_RECORD_MIXING_FRIEND].language;
}
- else if (gTrainerBattleOpponent_B >= 300 && gTrainerBattleOpponent_B <= 399)
+ else if (gTrainerBattleOpponent_B >= TRAINER_RECORD_MIXING_FRIEND && gTrainerBattleOpponent_B < TRAINER_RECORD_MIXING_APPRENTICE)
{
- for (i = 0; i < 8; i++)
- {
- battleSave->field_504[i] = gSaveBlock2Ptr->records[gTrainerBattleOpponent_B - 300].field_4[i];
- }
- battleSave->field_50C = gSaveBlock2Ptr->records[gTrainerBattleOpponent_B - 300].field_1;
+ for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++)
+ battleSave->recordMixFriendName[i] = gSaveBlock2Ptr->frontier.towerRecords[gTrainerBattleOpponent_B - TRAINER_RECORD_MIXING_FRIEND].name[i];
+ battleSave->recordMixFriendClass = gSaveBlock2Ptr->frontier.towerRecords[gTrainerBattleOpponent_B - TRAINER_RECORD_MIXING_FRIEND].facilityClass;
- if (sUnknown_0203CCE8 == 1)
+ if (sBattleOutcome == B_OUTCOME_WON)
{
for (i = 0; i < 6; i++)
- {
- battleSave->field_50E[i] = gSaveBlock2Ptr->records[gTrainerBattleOpponent_B - 300].field_28[i];
- }
+ battleSave->easyChatSpeech[i] = gSaveBlock2Ptr->frontier.towerRecords[gTrainerBattleOpponent_B - TRAINER_RECORD_MIXING_FRIEND].speechLost[i];
}
else
{
for (i = 0; i < 6; i++)
- {
- battleSave->field_50E[i] = gSaveBlock2Ptr->records[gTrainerBattleOpponent_B - 300].field_1C[i];
- }
+ battleSave->easyChatSpeech[i] = gSaveBlock2Ptr->frontier.towerRecords[gTrainerBattleOpponent_B - TRAINER_RECORD_MIXING_FRIEND].speechWon[i];
}
- battleSave->field_51A = gSaveBlock2Ptr->records[gTrainerBattleOpponent_B - 300].field_E4;
+ battleSave->recordMixFriendLanguage = gSaveBlock2Ptr->frontier.towerRecords[gTrainerBattleOpponent_B - TRAINER_RECORD_MIXING_FRIEND].language;
}
- else if (gPartnerTrainerId >= 300 && gPartnerTrainerId <= 399)
+ else if (gPartnerTrainerId >= TRAINER_RECORD_MIXING_FRIEND && gPartnerTrainerId < TRAINER_RECORD_MIXING_APPRENTICE)
{
- for (i = 0; i < 8; i++)
- {
- battleSave->field_504[i] = gSaveBlock2Ptr->records[gPartnerTrainerId - 300].field_4[i];
- }
- battleSave->field_50C = gSaveBlock2Ptr->records[gPartnerTrainerId - 300].field_1;
+ for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++)
+ battleSave->recordMixFriendName[i] = gSaveBlock2Ptr->frontier.towerRecords[gPartnerTrainerId - TRAINER_RECORD_MIXING_FRIEND].name[i];
+ battleSave->recordMixFriendClass = gSaveBlock2Ptr->frontier.towerRecords[gPartnerTrainerId - TRAINER_RECORD_MIXING_FRIEND].facilityClass;
- if (sUnknown_0203CCE8 == 1)
- {
- for (i = 0; i < 6; i++)
- {
- battleSave->field_50E[i] = gSaveBlock2Ptr->records[gPartnerTrainerId - 300].field_28[i];
- }
- }
- else
+ battleSave->recordMixFriendLanguage = gSaveBlock2Ptr->frontier.towerRecords[gPartnerTrainerId - TRAINER_RECORD_MIXING_FRIEND].language;
+ }
+
+ if (gTrainerBattleOpponent_A >= TRAINER_RECORD_MIXING_APPRENTICE)
+ {
+ battleSave->apprenticeId = gSaveBlock2Ptr->apprentices[gTrainerBattleOpponent_A - TRAINER_RECORD_MIXING_APPRENTICE].id;
+ for (i = 0; i < 6; i++)
+ battleSave->easyChatSpeech[i] = gSaveBlock2Ptr->apprentices[gTrainerBattleOpponent_A - TRAINER_RECORD_MIXING_APPRENTICE].easyChatWords[i];
+ battleSave->apprenticeLanguage = gSaveBlock2Ptr->apprentices[gTrainerBattleOpponent_A - TRAINER_RECORD_MIXING_APPRENTICE].language;
+ }
+ else if (gTrainerBattleOpponent_B >= TRAINER_RECORD_MIXING_APPRENTICE)
+ {
+ battleSave->apprenticeId = gSaveBlock2Ptr->apprentices[gTrainerBattleOpponent_B - TRAINER_RECORD_MIXING_APPRENTICE].id;
+ for (i = 0; i < 6; i++)
+ battleSave->easyChatSpeech[i] = gSaveBlock2Ptr->apprentices[gTrainerBattleOpponent_B - TRAINER_RECORD_MIXING_APPRENTICE].easyChatWords[i];
+ battleSave->apprenticeLanguage = gSaveBlock2Ptr->apprentices[gTrainerBattleOpponent_B - TRAINER_RECORD_MIXING_APPRENTICE].language;
+ }
+ else if (gPartnerTrainerId >= TRAINER_RECORD_MIXING_APPRENTICE)
+ {
+ battleSave->apprenticeId = gSaveBlock2Ptr->apprentices[gPartnerTrainerId - TRAINER_RECORD_MIXING_APPRENTICE].id;
+
+ battleSave->apprenticeLanguage = gSaveBlock2Ptr->apprentices[gPartnerTrainerId - TRAINER_RECORD_MIXING_APPRENTICE].language;
+ }
+
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
+ {
+ for (j = 0; j < BATTLER_RECORD_SIZE; j++)
{
- for (i = 0; i < 6; i++)
- {
- battleSave->field_50E[i] = gSaveBlock2Ptr->records[gPartnerTrainerId - 300].field_1C[i];
- }
+ battleSave->battleRecord[i][j] = sBattleRecords[i][j];
}
- battleSave->field_51A = gSaveBlock2Ptr->records[gPartnerTrainerId - 300].field_E4;
}
- */
-}
+ while (1)
+ {
+ ret = RecordedBattleToSave(battleSave, savSection);
+ if (ret == TRUE)
+ break;
+ var++;
+ if (var >= 3)
+ break;
+ }
-#else
-NAKED
-u32 MoveRecordedBattleToSaveData(void)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0xC\n\
- movs r0, 0\n\
- str r0, [sp, 0x4]\n\
- movs r0, 0xF8\n\
- lsls r0, 4\n\
- bl AllocZeroed\n\
- adds r7, r0, 0\n\
- movs r0, 0x80\n\
- lsls r0, 5\n\
- bl AllocZeroed\n\
- str r0, [sp]\n\
- movs r6, 0\n\
-_0818535E:\n\
- movs r0, 0x64\n\
- adds r4, r6, 0\n\
- muls r4, r0\n\
- adds r5, r7, r4\n\
- ldr r1, =sSavedPlayerParty\n\
- adds r1, r4, r1\n\
- adds r0, r5, 0\n\
- movs r2, 0x64\n\
- bl memcpy\n\
- movs r1, 0x96\n\
- lsls r1, 2\n\
- adds r5, r1\n\
- ldr r0, =sSavedOpponentParty\n\
- adds r4, r0\n\
- adds r0, r5, 0\n\
- adds r1, r4, 0\n\
- movs r2, 0x64\n\
- bl memcpy\n\
- adds r6, 0x1\n\
- cmp r6, 0x5\n\
- ble _0818535E\n\
- movs r6, 0\n\
- ldr r2, =gSaveBlock2Ptr\n\
- mov r9, r2\n\
- movs r3, 0x9A\n\
- lsls r3, 3\n\
- adds r3, r7, r3\n\
- str r3, [sp, 0x8]\n\
- ldr r5, =sPlayers\n\
- mov r8, r6\n\
- mov r12, r6\n\
- movs r4, 0x96\n\
- lsls r4, 3\n\
- adds r4, r7\n\
- mov r10, r4\n\
- ldr r0, =0x000004e4\n\
- adds r4, r7, r0\n\
-_081853AC:\n\
- lsls r1, r6, 3\n\
- ldr r0, =sPlayers\n\
- adds r0, 0x4\n\
- mov r3, r8\n\
- adds r2, r3, r0\n\
- add r1, r10\n\
- movs r3, 0x7\n\
-_081853BA:\n\
- ldrb r0, [r2]\n\
- strb r0, [r1]\n\
- adds r2, 0x1\n\
- adds r1, 0x1\n\
- subs r3, 0x1\n\
- cmp r3, 0\n\
- bge _081853BA\n\
- ldr r0, [sp, 0x8]\n\
- adds r1, r0, r6\n\
- ldrb r0, [r5, 0xC]\n\
- strb r0, [r1]\n\
- ldrh r0, [r5, 0x10]\n\
- strb r0, [r4]\n\
- ldrh r0, [r5, 0xE]\n\
- strb r0, [r4, 0xC]\n\
- ldr r1, =0x000004d4\n\
- adds r0, r7, r1\n\
- add r0, r12\n\
- ldr r1, [r5]\n\
- str r1, [r0]\n\
- adds r5, 0x14\n\
- movs r2, 0x14\n\
- add r8, r2\n\
- movs r3, 0x4\n\
- add r12, r3\n\
- adds r4, 0x1\n\
- adds r6, 0x1\n\
- cmp r6, 0x3\n\
- ble _081853AC\n\
- movs r4, 0x9D\n\
- lsls r4, 3\n\
- adds r1, r7, r4\n\
- ldr r5, =gRecordedBattleRngSeed\n\
- ldr r0, [r5]\n\
- str r0, [r1]\n\
- ldr r0, =sBattleFlags\n\
- ldr r2, [r0]\n\
- movs r0, 0x2\n\
- ands r0, r2\n\
- cmp r0, 0\n\
- beq _081854DC\n\
- ldr r1, =0x000004ec\n\
- adds r3, r7, r1\n\
- movs r1, 0x23\n\
- negs r1, r1\n\
- ands r1, r2\n\
- movs r0, 0x80\n\
- lsls r0, 18\n\
- orrs r1, r0\n\
- str r1, [r3]\n\
- movs r0, 0x4\n\
- ands r0, r2\n\
- cmp r0, 0\n\
- beq _08185454\n\
- movs r0, 0x80\n\
- lsls r0, 24\n\
- orrs r1, r0\n\
- str r1, [r3]\n\
- b _081854E2\n\
- .pool\n\
-_08185454:\n\
- movs r0, 0x40\n\
- ands r2, r0\n\
- cmp r2, 0\n\
- beq _081854E2\n\
- ldr r2, =sPlayers\n\
- ldrh r0, [r2, 0xE]\n\
- cmp r0, 0x1\n\
- beq _081854A8\n\
- cmp r0, 0x1\n\
- bgt _08185474\n\
- cmp r0, 0\n\
- beq _0818547E\n\
- b _081854E2\n\
- .pool\n\
-_08185474:\n\
- cmp r0, 0x2\n\
- beq _0818547E\n\
- cmp r0, 0x3\n\
- beq _081854A8\n\
- b _081854E2\n\
-_0818547E:\n\
- ldr r3, =gUnknown_0203C7B4\n\
- ldrb r1, [r3]\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- ldr r4, =sPlayers\n\
- adds r0, r4\n\
- ldrh r1, [r0, 0xE]\n\
- movs r0, 0x1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _081854E2\n\
- ldr r5, =0x000004ec\n\
- adds r0, r7, r5\n\
- b _081854C4\n\
- .pool\n\
-_081854A8:\n\
- ldr r0, =gUnknown_0203C7B4\n\
- ldrb r1, [r0]\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- ldr r1, =sPlayers\n\
- adds r0, r1\n\
- ldrh r1, [r0, 0xE]\n\
- movs r0, 0x1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _081854E2\n\
- ldr r2, =0x000004ec\n\
- adds r0, r7, r2\n\
-_081854C4:\n\
- ldr r1, [r0]\n\
- movs r2, 0x80\n\
- lsls r2, 24\n\
- orrs r1, r2\n\
- str r1, [r0]\n\
- b _081854E2\n\
- .pool\n\
-_081854DC:\n\
- ldr r3, =0x000004ec\n\
- adds r0, r7, r3\n\
- str r2, [r0]\n\
-_081854E2:\n\
- ldr r4, =gTrainerBattleOpponent_A\n\
- ldrh r1, [r4]\n\
- ldr r5, =0x000004f4\n\
- adds r0, r7, r5\n\
- strh r1, [r0]\n\
- ldr r0, =gTrainerBattleOpponent_B\n\
- ldrh r1, [r0]\n\
- ldr r2, =0x000004f6\n\
- adds r0, r7, r2\n\
- strh r1, [r0]\n\
- ldr r3, =gPartnerTrainerId\n\
- ldrh r1, [r3]\n\
- movs r4, 0x9F\n\
- lsls r4, 3\n\
- adds r0, r7, r4\n\
- strh r1, [r0]\n\
- ldr r5, =gUnknown_0203C7B4\n\
- ldrb r1, [r5]\n\
- adds r2, 0x4\n\
- adds r0, r7, r2\n\
- strh r1, [r0]\n\
- mov r3, r9\n\
- ldr r0, [r3]\n\
- ldr r4, =0x00000ca9\n\
- adds r0, r4\n\
- ldrb r0, [r0]\n\
- lsls r0, 30\n\
- lsrs r0, 30\n\
- ldr r5, =0x000004fc\n\
- adds r1, r7, r5\n\
- strb r0, [r1]\n\
- ldr r0, =sFrontierFacility\n\
- ldrb r1, [r0]\n\
- adds r2, 0x3\n\
- adds r0, r7, r2\n\
- strb r1, [r0]\n\
- ldr r3, =sUnknown_0203C7AF\n\
- ldrb r1, [r3]\n\
- ldr r4, =0x000004fe\n\
- adds r0, r7, r4\n\
- strb r1, [r0]\n\
- mov r5, r9\n\
- ldr r0, [r5]\n\
- ldrb r1, [r0, 0x15]\n\
- lsls r1, 29\n\
- ldr r0, =0x000004ff\n\
- adds r3, r7, r0\n\
- lsrs r1, 31\n\
- ldrb r2, [r3]\n\
- movs r0, 0x2\n\
- negs r0, r0\n\
- ands r0, r2\n\
- orrs r0, r1\n\
- strb r0, [r3]\n\
- ldr r1, [r5]\n\
- ldrb r1, [r1, 0x14]\n\
- lsls r1, 29\n\
- lsrs r1, 28\n\
- movs r2, 0xF\n\
- negs r2, r2\n\
- ands r0, r2\n\
- orrs r0, r1\n\
- strb r0, [r3]\n\
- movs r2, 0xA0\n\
- lsls r2, 3\n\
- adds r1, r7, r2\n\
- ldr r3, =sAI_Scripts\n\
- ldr r0, [r3]\n\
- str r0, [r1]\n\
- ldr r4, =0xfffffed4\n\
- adds r1, r4, 0\n\
- ldr r5, =gTrainerBattleOpponent_A\n\
- ldrh r5, [r5]\n\
- adds r0, r1, r5\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- cmp r0, 0x63\n\
- bls _08185580\n\
- b _081856C4\n\
-_08185580:\n\
- movs r6, 0\n\
- ldr r0, =0x00000504\n\
- adds r3, r7, r0\n\
- mov r10, r9\n\
- ldr r1, =gTrainerBattleOpponent_A\n\
- mov r12, r1\n\
- adds r2, r4, 0\n\
- mov r8, r2\n\
- ldr r4, =0x0000073c\n\
-_08185592:\n\
- adds r2, r3, r6\n\
- mov r5, r10\n\
- ldr r1, [r5]\n\
- mov r5, r12\n\
- ldrh r0, [r5]\n\
- add r0, r8\n\
- movs r5, 0xEC\n\
- muls r0, r5\n\
- adds r0, r6, r0\n\
- adds r1, r4\n\
- adds r1, r0\n\
- ldrb r0, [r1]\n\
- strb r0, [r2]\n\
- adds r6, 0x1\n\
- cmp r6, 0x7\n\
- ble _08185592\n\
- mov r0, r9\n\
- ldr r2, [r0]\n\
- ldr r1, =gTrainerBattleOpponent_A\n\
- ldrh r0, [r1]\n\
- ldr r3, =0xfffffed4\n\
- adds r0, r3\n\
- movs r1, 0xEC\n\
- muls r0, r1\n\
- adds r2, r0\n\
- ldr r4, =0x00000739\n\
- adds r2, r4\n\
- ldrb r1, [r2]\n\
- ldr r5, =0x0000050c\n\
- adds r0, r7, r5\n\
- strb r1, [r0]\n\
- ldr r1, =sUnknown_0203CCE8\n\
- ldrb r0, [r1]\n\
- cmp r0, 0x1\n\
- bne _08185664\n\
- movs r6, 0\n\
- ldr r2, =0x0000050e\n\
- adds r4, r7, r2\n\
- mov r10, r9\n\
- ldr r5, =gTrainerBattleOpponent_A\n\
- mov r8, r5\n\
- adds r5, r3, 0\n\
-_081855E6:\n\
- lsls r3, r6, 1\n\
- mov r0, r10\n\
- ldr r2, [r0]\n\
- mov r1, r8\n\
- ldrh r0, [r1]\n\
- adds r0, r5\n\
- movs r1, 0xEC\n\
- muls r0, r1\n\
- adds r3, r0\n\
- movs r0, 0xEC\n\
- lsls r0, 3\n\
- adds r2, r0\n\
- adds r2, r3\n\
- ldrh r0, [r2]\n\
- strh r0, [r4]\n\
- adds r4, 0x2\n\
- adds r6, 0x1\n\
- cmp r6, 0x5\n\
- ble _081855E6\n\
- b _08185696\n\
- .pool\n\
-_08185664:\n\
- movs r6, 0\n\
- ldr r1, =0x0000050e\n\
- adds r4, r7, r1\n\
- mov r10, r9\n\
- ldr r2, =gTrainerBattleOpponent_A\n\
- mov r8, r2\n\
- adds r5, r3, 0\n\
-_08185672:\n\
- lsls r3, r6, 1\n\
- mov r0, r10\n\
- ldr r2, [r0]\n\
- mov r1, r8\n\
- ldrh r0, [r1]\n\
- adds r0, r5\n\
- movs r1, 0xEC\n\
- muls r0, r1\n\
- adds r3, r0\n\
- ldr r0, =0x00000754\n\
- adds r2, r0\n\
- adds r2, r3\n\
- ldrh r0, [r2]\n\
- strh r0, [r4]\n\
- adds r4, 0x2\n\
- adds r6, 0x1\n\
- cmp r6, 0x5\n\
- ble _08185672\n\
-_08185696:\n\
- mov r1, r9\n\
- ldr r2, [r1]\n\
- ldr r3, =gTrainerBattleOpponent_A\n\
- ldrh r0, [r3]\n\
- ldr r4, =0xfffffed4\n\
- adds r0, r4\n\
- movs r1, 0xEC\n\
- muls r0, r1\n\
- adds r2, r0\n\
- ldr r5, =0x0000081c\n\
- adds r2, r5\n\
- ldrb r1, [r2]\n\
- b _08185856\n\
- .pool\n\
-_081856C4:\n\
- ldr r3, =gTrainerBattleOpponent_B\n\
- ldrh r3, [r3]\n\
- adds r0, r1, r3\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- cmp r0, 0x63\n\
- bls _081856D4\n\
- b _081857E4\n\
-_081856D4:\n\
- movs r6, 0\n\
- ldr r4, =0x00000504\n\
- adds r3, r7, r4\n\
- mov r10, r9\n\
- ldr r5, =gTrainerBattleOpponent_B\n\
- mov r12, r5\n\
- ldr r0, =0xfffffed4\n\
- mov r8, r0\n\
- ldr r4, =0x0000073c\n\
-_081856E6:\n\
- adds r2, r3, r6\n\
- mov r5, r10\n\
- ldr r1, [r5]\n\
- mov r5, r12\n\
- ldrh r0, [r5]\n\
- add r0, r8\n\
- movs r5, 0xEC\n\
- muls r0, r5\n\
- adds r0, r6, r0\n\
- adds r1, r4\n\
- adds r1, r0\n\
- ldrb r0, [r1]\n\
- strb r0, [r2]\n\
- adds r6, 0x1\n\
- cmp r6, 0x7\n\
- ble _081856E6\n\
- mov r0, r9\n\
- ldr r2, [r0]\n\
- ldr r1, =gTrainerBattleOpponent_B\n\
- ldrh r0, [r1]\n\
- ldr r3, =0xfffffed4\n\
- adds r0, r3\n\
- movs r1, 0xEC\n\
- muls r0, r1\n\
- adds r2, r0\n\
- ldr r4, =0x00000739\n\
- adds r2, r4\n\
- ldrb r1, [r2]\n\
- ldr r5, =0x0000050c\n\
- adds r0, r7, r5\n\
- strb r1, [r0]\n\
- ldr r1, =sUnknown_0203CCE8\n\
- ldrb r0, [r1]\n\
- cmp r0, 0x1\n\
- bne _08185784\n\
- movs r6, 0\n\
- ldr r2, =0x0000050e\n\
- adds r4, r7, r2\n\
- mov r10, r9\n\
- ldr r5, =gTrainerBattleOpponent_B\n\
- mov r8, r5\n\
- adds r5, r3, 0\n\
-_0818573A:\n\
- lsls r3, r6, 1\n\
- mov r0, r10\n\
- ldr r2, [r0]\n\
- mov r1, r8\n\
- ldrh r0, [r1]\n\
- adds r0, r5\n\
- movs r1, 0xEC\n\
- muls r0, r1\n\
- adds r3, r0\n\
- movs r0, 0xEC\n\
- lsls r0, 3\n\
- adds r2, r0\n\
- adds r2, r3\n\
- ldrh r0, [r2]\n\
- strh r0, [r4]\n\
- adds r4, 0x2\n\
- adds r6, 0x1\n\
- cmp r6, 0x5\n\
- ble _0818573A\n\
- b _081857B6\n\
- .pool\n\
-_08185784:\n\
- movs r6, 0\n\
- ldr r1, =0x0000050e\n\
- adds r4, r7, r1\n\
- mov r10, r9\n\
- ldr r2, =gTrainerBattleOpponent_B\n\
- mov r8, r2\n\
- adds r5, r3, 0\n\
-_08185792:\n\
- lsls r3, r6, 1\n\
- mov r0, r10\n\
- ldr r2, [r0]\n\
- mov r1, r8\n\
- ldrh r0, [r1]\n\
- adds r0, r5\n\
- movs r1, 0xEC\n\
- muls r0, r1\n\
- adds r3, r0\n\
- ldr r0, =0x00000754\n\
- adds r2, r0\n\
- adds r2, r3\n\
- ldrh r0, [r2]\n\
- strh r0, [r4]\n\
- adds r4, 0x2\n\
- adds r6, 0x1\n\
- cmp r6, 0x5\n\
- ble _08185792\n\
-_081857B6:\n\
- mov r1, r9\n\
- ldr r2, [r1]\n\
- ldr r3, =gTrainerBattleOpponent_B\n\
- ldrh r0, [r3]\n\
- ldr r4, =0xfffffed4\n\
- adds r0, r4\n\
- movs r1, 0xEC\n\
- muls r0, r1\n\
- adds r2, r0\n\
- ldr r5, =0x0000081c\n\
- adds r2, r5\n\
- ldrb r1, [r2]\n\
- b _08185856\n\
- .pool\n\
-_081857E4:\n\
- ldr r3, =gPartnerTrainerId\n\
- ldrh r3, [r3]\n\
- adds r0, r1, r3\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- cmp r0, 0x63\n\
- bhi _0818585C\n\
- movs r6, 0\n\
- ldr r4, =0x00000504\n\
- adds r3, r7, r4\n\
- mov r10, r9\n\
- ldr r5, =gPartnerTrainerId\n\
- mov r12, r5\n\
- ldr r0, =0xfffffed4\n\
- mov r8, r0\n\
- ldr r4, =0x0000073c\n\
-_08185804:\n\
- adds r2, r3, r6\n\
- mov r5, r10\n\
- ldr r1, [r5]\n\
- mov r5, r12\n\
- ldrh r0, [r5]\n\
- add r0, r8\n\
- movs r5, 0xEC\n\
- muls r0, r5\n\
- adds r0, r6, r0\n\
- adds r1, r4\n\
- adds r1, r0\n\
- ldrb r0, [r1]\n\
- strb r0, [r2]\n\
- adds r6, 0x1\n\
- cmp r6, 0x7\n\
- ble _08185804\n\
- mov r0, r9\n\
- ldr r1, [r0]\n\
- ldr r2, =gPartnerTrainerId\n\
- ldrh r0, [r2]\n\
- ldr r3, =0xfffffed4\n\
- adds r0, r3\n\
- movs r2, 0xEC\n\
- muls r0, r2\n\
- adds r1, r0\n\
- ldr r4, =0x00000739\n\
- adds r1, r4\n\
- ldrb r1, [r1]\n\
- ldr r5, =0x0000050c\n\
- adds r0, r7, r5\n\
- strb r1, [r0]\n\
- mov r0, r9\n\
- ldr r1, [r0]\n\
- ldr r4, =gPartnerTrainerId\n\
- ldrh r0, [r4]\n\
- adds r0, r3\n\
- muls r0, r2\n\
- adds r1, r0\n\
- ldr r5, =0x0000081c\n\
- adds r1, r5\n\
- ldrb r1, [r1]\n\
-_08185856:\n\
- ldr r2, =0x0000051a\n\
- adds r0, r7, r2\n\
- strb r1, [r0]\n\
-_0818585C:\n\
- ldr r3, =gTrainerBattleOpponent_A\n\
- ldrh r0, [r3]\n\
- ldr r1, =0x0000018f\n\
- cmp r0, r1\n\
- bls _08185900\n\
- mov r4, r9\n\
- ldr r2, [r4]\n\
- adds r1, r0, 0\n\
- ldr r3, =0xfffffe70\n\
- adds r1, r3\n\
- lsls r0, r1, 4\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- adds r2, r0\n\
- adds r2, 0xDC\n\
- ldrb r0, [r2]\n\
- lsls r0, 27\n\
- lsrs r0, 27\n\
- ldr r5, =0x0000050d\n\
- adds r1, r7, r5\n\
- strb r0, [r1]\n\
- movs r6, 0\n\
- ldr r0, =0x0000050e\n\
- adds r4, r7, r0\n\
- mov r10, r9\n\
- ldr r1, =gTrainerBattleOpponent_A\n\
- mov r8, r1\n\
- adds r5, r3, 0\n\
-_08185894:\n\
- lsls r3, r6, 1\n\
- mov r0, r10\n\
- ldr r2, [r0]\n\
- mov r0, r8\n\
- ldrh r1, [r0]\n\
- adds r1, r5\n\
- lsls r0, r1, 4\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- adds r3, r0\n\
- movs r1, 0x82\n\
- lsls r1, 1\n\
- adds r2, r1\n\
- adds r2, r3\n\
- ldrh r0, [r2]\n\
- strh r0, [r4]\n\
- adds r4, 0x2\n\
- adds r6, 0x1\n\
- cmp r6, 0x5\n\
- ble _08185894\n\
- mov r3, r9\n\
- ldr r2, [r3]\n\
- ldr r4, =gTrainerBattleOpponent_A\n\
- ldrh r1, [r4]\n\
- ldr r5, =0xfffffe70\n\
- adds r1, r5\n\
- b _081859AC\n\
- .pool\n\
-_08185900:\n\
- ldr r3, =gTrainerBattleOpponent_B\n\
- ldrh r0, [r3]\n\
- cmp r0, r1\n\
- bls _0818597C\n\
- mov r4, r9\n\
- ldr r2, [r4]\n\
- adds r1, r0, 0\n\
- ldr r3, =0xfffffe70\n\
- adds r1, r3\n\
- lsls r0, r1, 4\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- adds r2, r0\n\
- adds r2, 0xDC\n\
- ldrb r0, [r2]\n\
- lsls r0, 27\n\
- lsrs r0, 27\n\
- ldr r5, =0x0000050d\n\
- adds r1, r7, r5\n\
- strb r0, [r1]\n\
- movs r6, 0\n\
- ldr r0, =0x0000050e\n\
- adds r4, r7, r0\n\
- mov r10, r9\n\
- ldr r1, =gTrainerBattleOpponent_B\n\
- mov r8, r1\n\
- adds r5, r3, 0\n\
-_08185936:\n\
- lsls r3, r6, 1\n\
- mov r0, r10\n\
- ldr r2, [r0]\n\
- mov r0, r8\n\
- ldrh r1, [r0]\n\
- adds r1, r5\n\
- lsls r0, r1, 4\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- adds r3, r0\n\
- movs r1, 0x82\n\
- lsls r1, 1\n\
- adds r2, r1\n\
- adds r2, r3\n\
- ldrh r0, [r2]\n\
- strh r0, [r4]\n\
- adds r4, 0x2\n\
- adds r6, 0x1\n\
- cmp r6, 0x5\n\
- ble _08185936\n\
- mov r3, r9\n\
- ldr r2, [r3]\n\
- ldr r4, =gTrainerBattleOpponent_B\n\
- ldrh r1, [r4]\n\
- ldr r5, =0xfffffe70\n\
- adds r1, r5\n\
- b _081859AC\n\
- .pool\n\
-_0818597C:\n\
- ldr r3, =gPartnerTrainerId\n\
- ldrh r0, [r3]\n\
- cmp r0, r1\n\
- bls _081859C0\n\
- mov r4, r9\n\
- ldr r2, [r4]\n\
- adds r1, r0, 0\n\
- ldr r3, =0xfffffe70\n\
- adds r1, r3\n\
- lsls r0, r1, 4\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- adds r2, r0\n\
- adds r2, 0xDC\n\
- ldrb r0, [r2]\n\
- lsls r0, 27\n\
- lsrs r0, 27\n\
- ldr r5, =0x0000050d\n\
- adds r1, r7, r5\n\
- strb r0, [r1]\n\
- ldr r2, [r4]\n\
- ldr r0, =gPartnerTrainerId\n\
- ldrh r1, [r0]\n\
- adds r1, r3\n\
-_081859AC:\n\
- lsls r0, r1, 4\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- adds r2, r0\n\
- ldr r1, =0x0000011b\n\
- adds r0, r2, r1\n\
- ldrb r1, [r0]\n\
- ldr r2, =0x0000051b\n\
- adds r0, r7, r2\n\
- strb r1, [r0]\n\
-_081859C0:\n\
- movs r6, 0\n\
- ldr r3, =0x00000297\n\
- mov r10, r3\n\
- ldr r4, =sBattleRecords\n\
- mov r9, r4\n\
- movs r5, 0xA6\n\
- lsls r5, 2\n\
- mov r8, r5\n\
- ldr r0, =0x0000051c\n\
- adds r5, r7, r0\n\
-_081859D4:\n\
- adds r4, r6, 0x1\n\
- mov r0, r8\n\
- muls r0, r6\n\
- mov r1, r9\n\
- adds r2, r0, r1\n\
- adds r1, r0, r5\n\
- mov r3, r10\n\
- adds r3, 0x1\n\
-_081859E4:\n\
- ldrb r0, [r2]\n\
- strb r0, [r1]\n\
- adds r2, 0x1\n\
- adds r1, 0x1\n\
- subs r3, 0x1\n\
- cmp r3, 0\n\
- bne _081859E4\n\
- adds r6, r4, 0\n\
- cmp r6, 0x3\n\
- ble _081859D4\n\
-_081859F8:\n\
- adds r0, r7, 0\n\
- ldr r1, [sp]\n\
- bl sub_81852F0\n\
- adds r4, r0, 0\n\
- cmp r4, 0x1\n\
- beq _08185A14\n\
- ldr r0, [sp, 0x4]\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- str r0, [sp, 0x4]\n\
- cmp r0, 0x2\n\
- bls _081859F8\n\
-_08185A14:\n\
- adds r0, r7, 0\n\
- bl Free\n\
- ldr r0, [sp]\n\
- bl Free\n\
- adds r0, r4, 0\n\
- add sp, 0xC\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r1}\n\
- bx r1\n\
- .pool\n\
- .syntax divided");
+ free(battleSave);
+ free(savSection);
+ return ret;
}
-#endif // NONMATCHING
static bool32 TryCopyRecordedBattleSaveData(struct RecordedBattleSave *dst, struct SaveSection *saveBuffer)
{
@@ -1282,7 +501,7 @@ static bool32 TryCopyRecordedBattleSaveData(struct RecordedBattleSave *dst, stru
return TRUE;
}
-static bool32 AllocTryCopyRecordedBattleSaveData(struct RecordedBattleSave *dst)
+static bool32 CopyRecordedBattleFromSave(struct RecordedBattleSave *dst)
{
struct SaveSection *savBuffer = AllocZeroed(sizeof(struct SaveSection));
bool32 ret = TryCopyRecordedBattleSaveData(dst, savBuffer);
@@ -1293,7 +512,7 @@ static bool32 AllocTryCopyRecordedBattleSaveData(struct RecordedBattleSave *dst)
static void CB2_RecordedBattleEnd(void)
{
- gSaveBlock2Ptr->frontier.lvlMode = sUnknown_0203C7AD;
+ gSaveBlock2Ptr->frontier.lvlMode = sLvlMode;
gBattleOutcome = 0;
gBattleTypeFlags = 0;
gTrainerBattleOpponent_A = 0;
@@ -1316,7 +535,7 @@ static void Task_StartAfterCountdown(u8 taskId)
}
}
-static void SetRecordedBattleVarsFromSave(struct RecordedBattleSave *src)
+static void SetVariablesForRecordedBattle(struct RecordedBattleSave *src)
{
bool8 var;
s32 i, j;
@@ -1353,29 +572,29 @@ static void SetRecordedBattleVarsFromSave(struct RecordedBattleSave *src)
gTrainerBattleOpponent_B = src->opponentB;
gPartnerTrainerId = src->partnerId;
gUnknown_0203C7B4 = src->field_4FA;
- sUnknown_0203C7AD = gSaveBlock2Ptr->frontier.lvlMode;
- sFrontierFacility = src->field_4FD;
- sUnknown_0203C7AF = src->field_4FE;
- sBattleStyle = src->battleStyle;
+ sLvlMode = gSaveBlock2Ptr->frontier.lvlMode;
+ sFrontierFacility = src->frontierFacility;
+ sFrontierBrainSymbol = src->frontierBrainSymbol;
+ sBattleScene = src->battleScene;
sTextSpeed = src->textSpeed;
sAI_Scripts = src->AI_scripts;
- for (i = 0; i < 8; i++)
+ for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++)
{
- sUnknown_0203CCD1[i] = src->field_504[i];
+ sRecordMixFriendName[i] = src->recordMixFriendName[i];
}
- sUnknown_0203CCD9 = src->field_50C;
- sUnknown_0203CCDA = src->field_50D;
- gUnknown_03001278 = src->field_51A;
- gUnknown_03001279 = src->field_51B;
+ sRecordMixFriendClass = src->recordMixFriendClass;
+ sApprenticeId = src->apprenticeId;
+ sRecordMixFriendLanguage = src->recordMixFriendLanguage;
+ sApprenticeLanguage = src->apprenticeLanguage;
for (i = 0; i < 6; i++)
{
- sUnknown_0203CCDC[i] = src->field_50E[i];
+ sEasyChatSpeech[i] = src->easyChatSpeech[i];
}
- gSaveBlock2Ptr->frontier.lvlMode = src->field_4FC;
+ gSaveBlock2Ptr->frontier.lvlMode = src->lvlMode;
for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
@@ -1389,12 +608,12 @@ static void SetRecordedBattleVarsFromSave(struct RecordedBattleSave *src)
void PlayRecordedBattle(void (*CB2_After)(void))
{
struct RecordedBattleSave *battleSave = AllocZeroed(sizeof(struct RecordedBattleSave));
- if (AllocTryCopyRecordedBattleSaveData(battleSave) == TRUE)
+ if (CopyRecordedBattleFromSave(battleSave) == TRUE)
{
u8 taskId;
RecordedBattle_SaveParties();
- SetRecordedBattleVarsFromSave(battleSave);
+ SetVariablesForRecordedBattle(battleSave);
taskId = CreateTask(Task_StartAfterCountdown, 1);
gTasks[taskId].tFramesToWait = 128;
@@ -1420,9 +639,9 @@ u8 GetRecordedBattleFrontierFacility(void)
return sFrontierFacility;
}
-u8 sub_8185EAC(void)
+u8 GetRecordedBattleFronterBrainSymbol(void)
{
- return sUnknown_0203C7AF;
+ return sFrontierBrainSymbol;
}
void RecordedBattle_SaveParties(void)
@@ -1478,9 +697,9 @@ u8 sub_8185FAC(void)
return sUnknown_0203C7B5;
}
-u8 GetBattleStyleInRecordedBattle(void)
+u8 GetBattleSceneInRecordedBattle(void)
{
- return sBattleStyle;
+ return sBattleScene;
}
u8 GetTextSpeedInRecordedBattle(void)
@@ -1630,38 +849,38 @@ void sub_8186468(u8 *dst)
s32 i;
for (i = 0; i < 8; i++)
- dst[i] = sUnknown_0203CCD1[i];
+ dst[i] = sRecordMixFriendName[i];
dst[7] = EOS;
- ConvertInternationalString(dst, gUnknown_03001278);
+ ConvertInternationalString(dst, sRecordMixFriendLanguage);
}
-u8 sub_818649C(void)
+u8 GetRecordedBattleRecordMixFriendClass(void)
{
- return sUnknown_0203CCD9;
+ return sRecordMixFriendClass;
}
-u8 sub_81864A8(void)
+u8 GetRecordedBattleApprenticeId(void)
{
- return sUnknown_0203CCDA;
+ return sApprenticeId;
}
-u8 sub_81864B4(void)
+u8 GetRecordedBattleRecordMixFriendLanguage(void)
{
- return gUnknown_03001278;
+ return sRecordMixFriendLanguage;
}
-u8 sub_81864C0(void)
+u8 GetRecordedBattleApprenticeLanguage(void)
{
- return gUnknown_03001279;
+ return sApprenticeLanguage;
}
-void sub_81864CC(void)
+void RecordedBattle_SaveBattleOutcome(void)
{
- sUnknown_0203CCE8 = gBattleOutcome;
+ sBattleOutcome = gBattleOutcome;
}
-u16 *sub_81864E0(void)
+u16 *GetRecordedBattleEasyChatSpeech(void)
{
- return sUnknown_0203CCDC;
+ return sEasyChatSpeech;
}
diff --git a/src/save.c b/src/save.c
index 68427c4c3..0bd48cca9 100644
--- a/src/save.c
+++ b/src/save.c
@@ -712,30 +712,34 @@ u8 HandleSavingData(u8 saveType)
u8 TrySavingData(u8 saveType) // TrySave
{
- if(gFlashMemoryPresent == TRUE)
+ if (gFlashMemoryPresent != TRUE)
{
- HandleSavingData(saveType);
- if(gDamagedSaveSectors)
- DoSaveFailedScreen(saveType);
- else
- goto OK; // really?
+ gUnknown_03006294 = 0xFF;
+ return 0xFF;
}
- gUnknown_03006294 = 0xFF;
- return 0xFF;
-OK:
- gUnknown_03006294 = 1;
- return 1;
+ HandleSavingData(saveType);
+ if (!gDamagedSaveSectors)
+ {
+ gUnknown_03006294 = 1;
+ return 1;
+ }
+ else
+ {
+ DoSaveFailedScreen(saveType);
+ gUnknown_03006294 = 0xFF;
+ return 0xFF;
+ }
}
-u8 sub_8153380(void) // trade.s save
+bool8 sub_8153380(void) // trade.s save
{
if (gFlashMemoryPresent != TRUE)
- return 1;
+ return TRUE;
UpdateSaveAddresses();
SaveSerializedGame();
RestoreSaveBackupVarsAndIncrement(gRamSaveSectionLocations);
- return 0;
+ return FALSE;
}
bool8 sub_81533AC(void) // trade.s save
@@ -744,9 +748,9 @@ bool8 sub_81533AC(void) // trade.s save
if (gDamagedSaveSectors)
DoSaveFailedScreen(0);
if (retVal == 0xFF)
- return 1;
+ return TRUE;
else
- return 0;
+ return FALSE;
}
u8 sub_81533E0(void) // trade.s save
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 512231a25..127a5ecaa 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -1,5 +1,5 @@
#include "global.h"
-#include "battle_frontier_2.h"
+#include "frontier_util.h"
#include "battle_setup.h"
#include "berry.h"
#include "clock.h"
@@ -49,6 +49,11 @@
#include "tv.h"
#include "window.h"
+extern u16 sub_81A89A0(u8);
+extern void sub_81A8AF8(void);
+extern void sub_81A895C(void);
+extern void sub_81A8934(u8);
+
typedef u16 (*SpecialFunc)(void);
typedef void (*NativeFunc)(void);
diff --git a/src/start_menu.c b/src/start_menu.c
index aaa9fec2c..81c4213e7 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -12,7 +12,7 @@
#include "task.h"
#include "overworld.h"
#include "link.h"
-#include "battle_frontier_2.h"
+#include "frontier_util.h"
#include "rom_818CFC8.h"
#include "field_specials.h"
#include "event_object_movement.h"
@@ -35,6 +35,8 @@
#include "field_player_avatar.h"
#include "battle_pyramid_bag.h"
+extern bool8 InBattlePike(void);
+
// Menu actions
enum
{
diff --git a/src/strings.c b/src/strings.c
index 15c247744..9cb384e70 100644
--- a/src/strings.c
+++ b/src/strings.c
@@ -1569,9 +1569,7 @@ asm(".align 2");
const u8 gUnknown_085EE410[] = _("Floors cleared: {STR_VAR_2}");
asm(".align 2");
-const u8 gText_1Dot[] = _("1.");
-const u8 gUnknown_085EE427[] = _("2.");
-const u8 gUnknown_085EE42A[] = _("3.");
+const u8 gText_123Dot[][3] = {_("1."), _("2."), _("3.")};
const u8 gText_SavingDontTurnOff2[] = _("SAVING…\nDON’T TURN OFF THE POWER.");
const u8 gText_BlenderMaxSpeedRecord[] = _("BERRY BLENDER\nMAXIMUM SPEED RECORD!");
const u8 gText_234Players[] = _("2 PLAYERS\n3 PLAYERS\n4 PLAYERS");
diff --git a/src/tv.c b/src/tv.c
index 897f9950b..d3d1e797b 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -1972,7 +1972,7 @@ void sub_80EDB44(void)
show->rivalTrainer.nGoldSymbols ++;
}
}
- show->rivalTrainer.battlePoints = gSaveBlock2Ptr->frontier.frontierBattlePoints;
+ show->rivalTrainer.battlePoints = gSaveBlock2Ptr->frontier.battlePoints;
StringCopy(show->rivalTrainer.playerName, gSaveBlock2Ptr->playerName);
tv_store_id_3x(show);
show->rivalTrainer.language = gGameLanguage;
@@ -2500,7 +2500,7 @@ bool8 sub_80EE818(void)
return TRUE;
}
-void sub_80EE8C8(u16 winStreak, u8 facility)
+void sub_80EE8C8(u16 winStreak, u8 facilityAndMode)
{
TVShow *show;
@@ -2512,8 +2512,8 @@ void sub_80EE8C8(u16 winStreak, u8 facility)
show->frontier.active = FALSE;
StringCopy(show->frontier.playerName, gSaveBlock2Ptr->playerName);
show->frontier.winStreak = winStreak;
- show->frontier.facility = facility;
- switch (facility)
+ show->frontier.facility = facilityAndMode;
+ switch (facilityAndMode)
{
case 1:
case 5:
diff --git a/src/walda_phrase.c b/src/walda_phrase.c
index 4a82be14f..ff2ee7399 100644
--- a/src/walda_phrase.c
+++ b/src/walda_phrase.c
@@ -95,7 +95,7 @@ u16 TryGetWallpaperWithWaldaPhrase(void)
{
u16 backgroundClr, foregroundClr;
u8 patternId, iconId;
- u16 trainerId = ReadUnalignedWord(gSaveBlock2Ptr->playerTrainerId);
+ u16 trainerId = GetTrainerId(gSaveBlock2Ptr->playerTrainerId);
gSpecialVar_Result = TryCalculateWallpaper(&backgroundClr, &foregroundClr, &iconId, &patternId, trainerId, GetWaldaPhrasePtr());
if (gSpecialVar_Result)
diff --git a/sym_bss.txt b/sym_bss.txt
index 7df5e3055..9561418c0 100644
--- a/sym_bss.txt
+++ b/sym_bss.txt
@@ -69,13 +69,7 @@ gUnknown_03001204: @ 3001204
.include "src/battle_transition.o"
.include "src/pokemon_animation.o"
-
-gUnknown_03001278: @ 3001278
- .space 0x1
-
-gUnknown_03001279: @ 3001279
- .space 0x3
-
+ .include "src/recorded_battle.o"
.include "src/battle_factory.o"
gUnknown_03001288: @ 3001288