summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@users.noreply.github.com>2019-04-15 13:59:00 -0400
committerGitHub <noreply@github.com>2019-04-15 13:59:00 -0400
commit5bf1c29cee223cba17a1ec93af0196e380e8cbf1 (patch)
tree15e666997001cf39d482f2636953c654d255af3e
parent0cb1417de441af6e688fc4784da498bb677cc888 (diff)
parent0f569270391f68ef10a703a9e37f1a4e298a0cee (diff)
Merge pull request #49 from PikalaxALT/tm_case
Tm case
-rw-r--r--asm/bag.s4
-rw-r--r--asm/berry_pouch.s120
-rw-r--r--asm/buy_menu_helpers.s2
-rw-r--r--asm/daycare.s8
-rw-r--r--asm/field_specials.s2
-rw-r--r--asm/item.s122
-rw-r--r--asm/item_menu.s176
-rw-r--r--asm/item_pc.s48
-rw-r--r--asm/item_use.s4
-rw-r--r--asm/learn_move.s28
-rw-r--r--asm/link.s4
-rw-r--r--asm/link_rfu_3.s50
-rw-r--r--asm/list_menu.s18
-rw-r--r--asm/mailbox_pc.s4
-rw-r--r--asm/menu_helpers.s6
-rw-r--r--asm/new_game.s2
-rw-r--r--asm/new_menu_helpers.s16
-rw-r--r--asm/party_menu.s10
-rw-r--r--asm/player_pc.s8
-rw-r--r--asm/pokedex_screen.s22
-rw-r--r--asm/pokemon_summary_screen.s24
-rw-r--r--asm/script_menu.s4
-rw-r--r--asm/shop.s26
-rw-r--r--asm/teachy_tv.s74
-rw-r--r--asm/tm_case.s3999
-rw-r--r--asm/trade.s4
-rw-r--r--asm/union_room_chat.s4
-rw-r--r--data/data_835B488.s2
-rw-r--r--data/data_83FECCC.s401
-rw-r--r--data/data_8471F00.s7
-rw-r--r--data/graphics.s23
-rw-r--r--data/tm_case.s50
-rw-r--r--graphics/tm_case/unk_841F408.pal19
-rw-r--r--graphics/tm_case/unk_8E845D8.pngbin0 -> 951 bytes
-rw-r--r--graphics/tm_case/unk_8E84A24.binbin0 -> 2048 bytes
-rw-r--r--graphics/tm_case/unk_8E84B70.binbin0 -> 2048 bytes
-rw-r--r--graphics/tm_case/unk_8E84CB0.pal67
-rw-r--r--graphics/tm_case/unk_8E84D20.pal67
-rw-r--r--graphics/tm_case/unk_8E84D90.pngbin0 -> 293 bytes
-rw-r--r--graphics/tm_case/unk_8E84F20.pal259
-rw-r--r--graphics/tm_case/unk_8E85068.pal19
-rw-r--r--graphics/tm_case/unk_8E99118.pngbin0 -> 99 bytes
-rw-r--r--graphics_file_rules.mk3
-rw-r--r--include/graphics.h11
-rw-r--r--include/item.h6
-rw-r--r--include/item_menu.h1
-rw-r--r--include/list_menu.h4
-rw-r--r--include/menu.h2
-rw-r--r--include/menu_helpers.h7
-rw-r--r--include/money.h7
-rw-r--r--include/new_menu_helpers.h1
-rw-r--r--include/party_menu.h6
-rw-r--r--include/pokemon.h2
-rw-r--r--include/pokemon_storage_system.h1
-rw-r--r--include/shop.h1
-rw-r--r--include/strings.h23
-rw-r--r--include/teachy_tv.h7
-rw-r--r--include/text_window.h2
-rw-r--r--include/tm_case.h8
-rw-r--r--include/window.h2
-rw-r--r--ld_script.txt4
-rw-r--r--src/fame_checker.c2
-rw-r--r--src/text.c4
-rw-r--r--src/tm_case.c1537
-rw-r--r--src/window.c2
-rw-r--r--sym_common.txt2
-rw-r--r--sym_ewram.txt37
67 files changed, 2828 insertions, 4557 deletions
diff --git a/asm/bag.s b/asm/bag.s
index e7c72d082..aeac17e69 100644
--- a/asm/bag.s
+++ b/asm/bag.s
@@ -356,7 +356,7 @@ sub_810BAE8: @ 810BAE8
str r3, [sp, 0xC]
movs r2, 0x2
movs r3, 0
- bl sub_80BF5D0
+ bl CreateYesNoMenuWithCallbacks
add sp, 0x10
pop {r0}
bx r0
@@ -381,7 +381,7 @@ sub_810BB14: @ 810BB14
str r3, [sp, 0xC]
movs r2, 0x2
movs r3, 0
- bl sub_80BF5D0
+ bl CreateYesNoMenuWithCallbacks
add sp, 0x10
pop {r0}
bx r0
diff --git a/asm/berry_pouch.s b/asm/berry_pouch.s
index 8b639487f..762938e3c 100644
--- a/asm/berry_pouch.s
+++ b/asm/berry_pouch.s
@@ -255,7 +255,7 @@ _0813CF62:
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _0813CF98 @ =gUnknown_3005E70
+ ldr r0, _0813CF98 @ =gMultiuseListMenuTemplate
ldr r2, _0813CF9C @ =gUnknown_203F370
ldrh r1, [r2, 0xA]
ldrh r2, [r2, 0x8]
@@ -273,7 +273,7 @@ _0813CF62:
b _0813CFD2
.align 2, 0
_0813CF94: .4byte sub_813DA68
-_0813CF98: .4byte gUnknown_3005E70
+_0813CF98: .4byte gMultiuseListMenuTemplate
_0813CF9C: .4byte gUnknown_203F370
_0813CFA0: .4byte gTasks
_0813CFA4:
@@ -573,7 +573,7 @@ sub_813D204: @ 813D204
push {r4-r7,lr}
mov r7, r8
push {r7}
- ldr r0, _0813D280 @ =gUnknown_20398AC
+ ldr r0, _0813D280 @ =gBagPockets + 0x20
mov r8, r0
movs r6, 0
ldr r0, _0813D284 @ =gUnknown_203F36C
@@ -615,10 +615,10 @@ _0813D254:
ldr r2, [r0]
lsls r0, r6, 3
adds r0, r2
- ldr r1, _0813D290 @ =gUnknown_84166DB
+ ldr r1, _0813D290 @ =gText_Close
str r1, [r0]
str r6, [r0, 0x4]
- ldr r1, _0813D294 @ =gUnknown_3005E70
+ ldr r1, _0813D294 @ =gMultiuseListMenuTemplate
str r2, [r1]
ldr r0, _0813D298 @ =gUnknown_203F370
ldrb r0, [r0, 0x4]
@@ -633,12 +633,12 @@ _0813D254:
adds r2, r1, 0
b _0813D2A6
.align 2, 0
-_0813D280: .4byte gUnknown_20398AC
+_0813D280: .4byte gBagPockets + 0x20
_0813D284: .4byte gUnknown_203F36C
_0813D288: .4byte gUnknown_203F380
_0813D28C: .4byte gUnknown_203F37C
-_0813D290: .4byte gUnknown_84166DB
-_0813D294: .4byte gUnknown_3005E70
+_0813D290: .4byte gText_Close
+_0813D294: .4byte gMultiuseListMenuTemplate
_0813D298: .4byte gUnknown_203F370
_0813D29C:
ldr r0, _0813D310 @ =gUnknown_203F36C
@@ -715,10 +715,10 @@ sub_813D31C: @ 813D31C
lsls r5, r1, 16
lsrs r5, 16
ldr r4, _0813D384 @ =gStringVar4
- ldr r1, _0813D388 @ =gUnknown_84166FF
+ ldr r1, _0813D388 @ =gText_FontSize0
adds r0, r4, 0
bl StringCopy
- ldr r1, _0813D38C @ =gUnknown_8416226
+ ldr r1, _0813D38C @ =gOtherText_UnkF9_08_Clear_01
adds r0, r4, 0
bl StringAppend
ldr r6, _0813D390 @ =gStringVar1
@@ -737,7 +737,7 @@ sub_813D31C: @ 813D31C
ldr r1, _0813D394 @ =gUnknown_84643B4
adds r0, r4, 0
bl StringAppend
- ldr r1, _0813D398 @ =gUnknown_8416703
+ ldr r1, _0813D398 @ =gText_FontSize2
adds r0, r4, 0
bl StringAppend
adds r0, r4, 0
@@ -753,11 +753,11 @@ sub_813D31C: @ 813D31C
bx r0
.align 2, 0
_0813D384: .4byte gStringVar4
-_0813D388: .4byte gUnknown_84166FF
-_0813D38C: .4byte gUnknown_8416226
+_0813D388: .4byte gText_FontSize0
+_0813D38C: .4byte gOtherText_UnkF9_08_Clear_01
_0813D390: .4byte gStringVar1
_0813D394: .4byte gUnknown_84643B4
-_0813D398: .4byte gUnknown_8416703
+_0813D398: .4byte gText_FontSize2
thumb_func_end sub_813D31C
thumb_func_start sub_813D39C
@@ -806,7 +806,7 @@ _0813D3D6:
lsls r1, r5, 16
lsrs r1, 16
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
ldr r1, [r4]
@@ -857,10 +857,10 @@ sub_813D430: @ 813D430
lsrs r4, 16
movs r0, 0x5
adds r1, r4, 0
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
movs r0, 0x5
adds r1, r4, 0
- bl sub_809A7B4
+ bl BagGetQuantityByPocketPosition
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -869,7 +869,7 @@ sub_813D430: @ 813D430
movs r3, 0x3
bl ConvertIntToDecimalStringN
ldr r4, _0813D4A8 @ =gStringVar4
- ldr r1, _0813D4AC @ =gUnknown_84162B9
+ ldr r1, _0813D4AC @ =gText_TimesStrVar1
adds r0, r4, 0
bl StringExpandPlaceholders
str r5, [sp]
@@ -894,7 +894,7 @@ _0813D498:
_0813D4A0: .4byte gUnknown_203F36C
_0813D4A4: .4byte gStringVar1
_0813D4A8: .4byte gStringVar4
-_0813D4AC: .4byte gUnknown_84162B9
+_0813D4AC: .4byte gText_TimesStrVar1
thumb_func_end sub_813D430
thumb_func_start sub_813D4B0
@@ -980,7 +980,7 @@ sub_813D538: @ 813D538
lsls r1, 16
lsrs r1, 16
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl ItemId_GetDescription
@@ -1409,7 +1409,7 @@ sub_813D844: @ 813D844
ldr r4, _0813D884 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
- bl sub_810713C
+ bl DestroyListMenu
ldr r0, _0813D888 @ =gUnknown_203F36C
ldr r0, [r0]
ldr r0, [r0]
@@ -1441,7 +1441,7 @@ _0813D8A4:
thumb_func_start sub_813D8AC
sub_813D8AC: @ 813D8AC
push {r4,lr}
- ldr r4, _0813D904 @ =gUnknown_20398AC
+ ldr r4, _0813D904 @ =gBagPockets + 0x20
adds r0, r4, 0
bl sub_809A720
ldr r3, _0813D908 @ =gUnknown_203F36C
@@ -1485,7 +1485,7 @@ _0813D8EE:
adds r1, r0, 0
b _0813D916
.align 2, 0
-_0813D904: .4byte gUnknown_20398AC
+_0813D904: .4byte gBagPockets + 0x20
_0813D908: .4byte gUnknown_203F36C
_0813D90C: .4byte gUnknown_203F370
_0813D910:
@@ -1574,7 +1574,7 @@ sub_813D940: @ 813D940
movs r2, 0x2
movs r3, 0x3
bl ConvertIntToDecimalStringN
- ldr r1, _0813D9F4 @ =gUnknown_84162B9
+ ldr r1, _0813D9F4 @ =gText_TimesStrVar1
mov r0, r9
bl StringExpandPlaceholders
movs r0, 0xA
@@ -1601,7 +1601,7 @@ sub_813D940: @ 813D940
_0813D9E8: .4byte gTasks+0x8
_0813D9EC: .4byte gStringVar1
_0813D9F0: .4byte gStringVar4
-_0813D9F4: .4byte gUnknown_84162B9
+_0813D9F4: .4byte gText_TimesStrVar1
thumb_func_end sub_813D940
thumb_func_start sub_813D9F8
@@ -1631,7 +1631,7 @@ sub_813D9F8: @ 813D9F8
adds r3, r5, 0
bl ConvertIntToDecimalStringN
ldr r4, _0813DA60 @ =gStringVar4
- ldr r1, _0813DA64 @ =gUnknown_84162B9
+ ldr r1, _0813DA64 @ =gText_TimesStrVar1
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0xA
@@ -1654,7 +1654,7 @@ sub_813D9F8: @ 813D9F8
.align 2, 0
_0813DA5C: .4byte gStringVar1
_0813DA60: .4byte gStringVar4
-_0813DA64: .4byte gUnknown_84162B9
+_0813DA64: .4byte gText_TimesStrVar1
thumb_func_end sub_813D9F8
thumb_func_start sub_813DA68
@@ -1748,7 +1748,7 @@ _0813DB10:
lsls r1, r5, 16
lsrs r1, 16
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
ldr r1, _0813DB34 @ =gSpecialVar_ItemId
b _0813DB46
.align 2, 0
@@ -1784,11 +1784,11 @@ _0813DB58:
lsrs r4, 16
movs r0, 0x5
adds r1, r4, 0
- bl sub_809A7B4
+ bl BagGetQuantityByPocketPosition
strh r0, [r7, 0x4]
movs r0, 0x5
adds r1, r4, 0
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
ldr r1, _0813DBA8 @ =gSpecialVar_ItemId
strh r0, [r1]
ldr r0, _0813DBAC @ =gTasks
@@ -2504,11 +2504,11 @@ _0813E18A:
ldr r4, _0813E1F8 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_813D8AC
bl sub_813D6F4
bl sub_813D204
- ldr r0, _0813E1FC @ =gUnknown_3005E70
+ ldr r0, _0813E1FC @ =gMultiuseListMenuTemplate
subs r4, 0xA
ldrh r1, [r4, 0xA]
ldrh r2, [r4, 0x8]
@@ -2534,7 +2534,7 @@ _0813E1EC: .4byte gTasks+0x8
_0813E1F0: .4byte gMain
_0813E1F4: .4byte gSpecialVar_ItemId
_0813E1F8: .4byte gUnknown_203F37A
-_0813E1FC: .4byte gUnknown_3005E70
+_0813E1FC: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_813E164
thumb_func_start sub_813E200
@@ -2595,14 +2595,14 @@ sub_813E274: @ 813E274
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _0813E288 @ =gUnknown_841632A
+ ldr r2, _0813E288 @ =gText_ThereIsNoPokemon
ldr r3, _0813E28C @ =sub_813E290
movs r1, 0x2
bl sub_813EB20
pop {r0}
bx r0
.align 2, 0
-_0813E288: .4byte gUnknown_841632A
+_0813E288: .4byte gText_ThereIsNoPokemon
_0813E28C: .4byte sub_813E290
thumb_func_end sub_813E274
@@ -2646,11 +2646,11 @@ sub_813E2B8: @ 813E2B8
ldr r4, _0813E318 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_813D8AC
bl sub_813D6F4
bl sub_813D204
- ldr r0, _0813E31C @ =gUnknown_3005E70
+ ldr r0, _0813E31C @ =gMultiuseListMenuTemplate
subs r4, 0xA
ldrh r1, [r4, 0xA]
ldrh r2, [r4, 0x8]
@@ -2671,7 +2671,7 @@ sub_813E2B8: @ 813E2B8
.align 2, 0
_0813E314: .4byte gTasks+0x8
_0813E318: .4byte gUnknown_203F37A
-_0813E31C: .4byte gUnknown_3005E70
+_0813E31C: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_813E2B8
thumb_func_start sub_813E320
@@ -2726,7 +2726,7 @@ sub_813E37C: @ 813E37C
adds r0, r6, r7
ldrh r1, [r0, 0x2]
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r4, r0, 16
adds r0, r4, 0
@@ -2817,7 +2817,7 @@ sub_813E428: @ 813E428
ldr r1, _0813E478 @ =gStringVar1
bl CopyItemName
ldr r4, _0813E47C @ =gStringVar4
- ldr r1, _0813E480 @ =gUnknown_84168F1
+ ldr r1, _0813E480 @ =gText_OhNoICantBuyThat
adds r0, r4, 0
bl StringExpandPlaceholders
bl sub_80BF8E4
@@ -2834,7 +2834,7 @@ _0813E470: .4byte gTasks+0x8
_0813E474: .4byte gSpecialVar_ItemId
_0813E478: .4byte gStringVar1
_0813E47C: .4byte gStringVar4
-_0813E480: .4byte gUnknown_84168F1
+_0813E480: .4byte gText_OhNoICantBuyThat
_0813E484: .4byte sub_813E2B8
_0813E488:
movs r0, 0x1
@@ -2857,7 +2857,7 @@ _0813E4A8:
ldr r1, _0813E4D4 @ =gStringVar1
bl CopyItemName
ldr r4, _0813E4D8 @ =gStringVar4
- ldr r1, _0813E4DC @ =gUnknown_8416911
+ ldr r1, _0813E4DC @ =gText_HowManyWouldYouLikeToSell
adds r0, r4, 0
bl StringExpandPlaceholders
bl sub_80BF8E4
@@ -2875,7 +2875,7 @@ _0813E4CE:
.align 2, 0
_0813E4D4: .4byte gStringVar1
_0813E4D8: .4byte gStringVar4
-_0813E4DC: .4byte gUnknown_8416911
+_0813E4DC: .4byte gText_HowManyWouldYouLikeToSell
_0813E4E0: .4byte sub_813E5B8
thumb_func_end sub_813E428
@@ -2893,7 +2893,7 @@ sub_813E4E4: @ 813E4E4
ldr r6, _0813E544 @ =gStringVar3
ldrh r1, [r4, 0x2]
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -2907,7 +2907,7 @@ sub_813E4E4: @ 813E4E4
movs r3, 0x6
bl ConvertIntToDecimalStringN
ldr r4, _0813E548 @ =gStringVar4
- ldr r1, _0813E54C @ =gUnknown_8416936
+ ldr r1, _0813E54C @ =gText_ICanPayThisMuch_WouldThatBeOkay
adds r0, r4, 0
bl StringExpandPlaceholders
bl sub_80BF8E4
@@ -2925,7 +2925,7 @@ sub_813E4E4: @ 813E4E4
_0813E540: .4byte gTasks+0x8
_0813E544: .4byte gStringVar3
_0813E548: .4byte gStringVar4
-_0813E54C: .4byte gUnknown_8416936
+_0813E54C: .4byte gText_ICanPayThisMuch_WouldThatBeOkay
_0813E550: .4byte sub_813E554
thumb_func_end sub_813E4E4
@@ -3004,7 +3004,7 @@ sub_813E5B8: @ 813E5B8
bl ConvertIntToDecimalStringN
ldr r2, _0813E65C @ =gStringVar4
mov r8, r2
- ldr r1, _0813E660 @ =gUnknown_84162B9
+ ldr r1, _0813E660 @ =gText_TimesStrVar1
mov r0, r8
bl StringExpandPlaceholders
movs r0, 0xA
@@ -3024,7 +3024,7 @@ sub_813E5B8: @ 813E5B8
mov r3, r9
ldrh r1, [r3, 0x2]
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -3052,7 +3052,7 @@ sub_813E5B8: @ 813E5B8
_0813E654: .4byte gTasks+0x8
_0813E658: .4byte gStringVar1
_0813E65C: .4byte gStringVar4
-_0813E660: .4byte gUnknown_84162B9
+_0813E660: .4byte gText_TimesStrVar1
_0813E664: .4byte sub_813E690
thumb_func_end sub_813E5B8
@@ -3103,7 +3103,7 @@ sub_813E690: @ 813E690
bl sub_813D9F8
ldrh r1, [r5, 0x2]
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -3192,7 +3192,7 @@ sub_813E768: @ 813E768
ldr r6, _0813E7E0 @ =gStringVar3
ldrh r1, [r4, 0x2]
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -3206,7 +3206,7 @@ sub_813E768: @ 813E768
movs r3, 0x6
bl ConvertIntToDecimalStringN
ldr r4, _0813E7E4 @ =gStringVar4
- ldr r1, _0813E7E8 @ =gUnknown_8416959
+ ldr r1, _0813E7E8 @ =gText_TurnedOverItemsWorthYen
adds r0, r4, 0
bl StringExpandPlaceholders
ldr r3, _0813E7EC @ =sub_813E7F0
@@ -3223,7 +3223,7 @@ _0813E7D8: .4byte gSpecialVar_ItemId
_0813E7DC: .4byte gStringVar1
_0813E7E0: .4byte gStringVar3
_0813E7E4: .4byte gStringVar4
-_0813E7E8: .4byte gUnknown_8416959
+_0813E7E8: .4byte gText_TurnedOverItemsWorthYen
_0813E7EC: .4byte sub_813E7F0
thumb_func_end sub_813E768
@@ -3277,11 +3277,11 @@ sub_813E7F0: @ 813E7F0
ldr r4, _0813E8C8 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_813D8AC
bl sub_813D6F4
bl sub_813D204
- ldr r0, _0813E8CC @ =gUnknown_3005E70
+ ldr r0, _0813E8CC @ =gMultiuseListMenuTemplate
subs r4, 0xA
ldrh r1, [r4, 0xA]
ldrh r2, [r4, 0x8]
@@ -3322,7 +3322,7 @@ _0813E8BC: .4byte gTasks+0x8
_0813E8C0: .4byte gSpecialVar_ItemId
_0813E8C4: .4byte gSaveBlock1Ptr
_0813E8C8: .4byte gUnknown_203F37A
-_0813E8CC: .4byte gUnknown_3005E70
+_0813E8CC: .4byte gMultiuseListMenuTemplate
_0813E8D0: .4byte sub_813E8D4
thumb_func_end sub_813E7F0
@@ -3376,7 +3376,7 @@ sub_813E910: @ 813E910
movs r1, 0xA
movs r2, 0xC0
bl sub_814FF2C
- ldr r0, _0813E998 @ =gUnknown_841F408
+ ldr r0, _0813E998 @ =gTMCaseMainWindowPalette
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
@@ -3418,7 +3418,7 @@ _0813E97C:
bx r0
.align 2, 0
_0813E994: .4byte gUnknown_84643B8
-_0813E998: .4byte gUnknown_841F408
+_0813E998: .4byte gTMCaseMainWindowPalette
_0813E99C: .4byte gUnknown_203F38C
thumb_func_end sub_813E910
@@ -3685,7 +3685,7 @@ sub_813EB7C: @ 813EB7C
str r3, [sp, 0xC]
movs r2, 0x2
movs r3, 0
- bl sub_80BF5D0
+ bl CreateYesNoMenuWithCallbacks
add sp, 0x10
pop {r0}
bx r0
@@ -3710,7 +3710,7 @@ sub_813EBA8: @ 813EBA8
str r3, [sp, 0xC]
movs r2, 0x2
movs r3, 0
- bl sub_80BF5D0
+ bl CreateYesNoMenuWithCallbacks
add sp, 0x10
pop {r0}
bx r0
diff --git a/asm/buy_menu_helpers.s b/asm/buy_menu_helpers.s
index 224bfa20c..04caf30a4 100644
--- a/asm/buy_menu_helpers.s
+++ b/asm/buy_menu_helpers.s
@@ -209,7 +209,7 @@ sub_813F7D8: @ 813F7D8
str r3, [sp, 0xC]
movs r2, 0x2
movs r3, 0
- bl sub_80BF5D0
+ bl CreateYesNoMenuWithCallbacks
add sp, 0x10
pop {r0}
bx r0
diff --git a/asm/daycare.s b/asm/daycare.s
index c19aa1bdf..5f1b787af 100644
--- a/asm/daycare.s
+++ b/asm/daycare.s
@@ -2714,7 +2714,7 @@ _080467C8:
adds r0, r7, 0
adds r1, r4, 0
bl StringAppend
- ldr r1, _08046830 @ =gUnknown_84161C8
+ ldr r1, _08046830 @ =gOtherText_Exit
adds r0, r7, 0
bl StringAppend
add sp, 0x28
@@ -2726,7 +2726,7 @@ _080467C8:
bx r0
.align 2, 0
_0804682C: .4byte gUnknown_825F83C
-_08046830: .4byte gUnknown_84161C8
+_08046830: .4byte gOtherText_Exit
thumb_func_end GetDaycareLevelMenuText
thumb_func_start GetDaycareLevelMenuLevelText
@@ -3008,7 +3008,7 @@ _08046A46:
ldrb r0, [r4, 0x8]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4, 0xA]
movs r1, 0x1
bl ClearStdWindowAndFrame
@@ -3032,7 +3032,7 @@ _08046A7C:
ldrb r0, [r4, 0x8]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4, 0xA]
movs r1, 0x1
bl ClearStdWindowAndFrame
diff --git a/asm/field_specials.s b/asm/field_specials.s
index e930a2ee7..d98798352 100644
--- a/asm/field_specials.s
+++ b/asm/field_specials.s
@@ -2854,7 +2854,7 @@ sub_80CBBAC: @ 80CBBAC
lsrs r0, 24
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldr r0, _080CBC28 @ =gUnknown_2039A14
ldr r0, [r0]
bl Free
diff --git a/asm/item.s b/asm/item.s
index 800df5f82..ce20d4f8c 100644
--- a/asm/item.s
+++ b/asm/item.s
@@ -61,7 +61,7 @@ ApplyNewEncryptionKeyToBagItems: @ 8099DE0
sub sp, 0x4
mov r8, r0
movs r1, 0
- ldr r0, _08099E34 @ =gUnknown_203988C
+ ldr r0, _08099E34 @ =gBagPockets
mov r9, r0
_08099DF2:
movs r6, 0
@@ -72,7 +72,7 @@ _08099DF2:
ldrb r0, [r0, 0x4]
cmp r6, r0
bcs _08099E20
- ldr r2, _08099E34 @ =gUnknown_203988C
+ ldr r2, _08099E34 @ =gBagPockets
_08099E04:
adds r4, r5, r2
lsls r1, r6, 2
@@ -99,7 +99,7 @@ _08099E20:
pop {r0}
bx r0
.align 2, 0
-_08099E34: .4byte gUnknown_203988C
+_08099E34: .4byte gBagPockets
thumb_func_end ApplyNewEncryptionKeyToBagItems
thumb_func_start ApplyNewEncryptionKeyToBagItems_
@@ -112,7 +112,7 @@ ApplyNewEncryptionKeyToBagItems_: @ 8099E38
thumb_func_start sub_8099E44
sub_8099E44: @ 8099E44
- ldr r1, _08099E84 @ =gUnknown_203988C
+ ldr r1, _08099E84 @ =gBagPockets
ldr r0, _08099E88 @ =gSaveBlock1Ptr
ldr r2, [r0]
movs r3, 0xC4
@@ -144,7 +144,7 @@ sub_8099E44: @ 8099E44
strb r0, [r1]
bx lr
.align 2, 0
-_08099E84: .4byte gUnknown_203988C
+_08099E84: .4byte gBagPockets
_08099E88: .4byte gSaveBlock1Ptr
_08099E8C: .4byte 0x0000054c
thumb_func_end sub_8099E44
@@ -184,7 +184,7 @@ sub_8099ECC: @ 8099ECC
push {lr}
lsls r0, 24
movs r2, 0
- ldr r1, _08099EF0 @ =gUnknown_203988C
+ ldr r1, _08099EF0 @ =gBagPockets
lsrs r0, 21
adds r0, r1
ldrb r1, [r0, 0x4]
@@ -201,7 +201,7 @@ _08099EE0:
asrs r0, 24
b _08099F02
.align 2, 0
-_08099EF0: .4byte gUnknown_203988C
+_08099EF0: .4byte gBagPockets
_08099EF4:
adds r0, r2, 0x1
lsls r0, 16
@@ -221,7 +221,7 @@ sub_8099F08: @ 8099F08
push {lr}
lsls r0, 24
movs r2, 0
- ldr r1, _08099F2C @ =gUnknown_203988C
+ ldr r1, _08099F2C @ =gBagPockets
lsrs r0, 21
subs r0, 0x8
adds r0, r1
@@ -238,7 +238,7 @@ _08099F1E:
movs r0, 0x1
b _08099F3C
.align 2, 0
-_08099F2C: .4byte gUnknown_203988C
+_08099F2C: .4byte gBagPockets
_08099F30:
adds r0, r2, 0x1
lsls r0, 24
@@ -274,7 +274,7 @@ _08099F5C:
subs r0, 0x1
lsls r0, 24
movs r2, 0
- ldr r1, _08099F94 @ =gUnknown_203988C
+ ldr r1, _08099F94 @ =gBagPockets
lsrs r0, 21
adds r0, r1
ldrb r1, [r0, 0x4]
@@ -296,7 +296,7 @@ _08099F76:
bcs _08099F58
b _08099FA4
.align 2, 0
-_08099F94: .4byte gUnknown_203988C
+_08099F94: .4byte gBagPockets
_08099F98:
adds r0, r2, 0x1
lsls r0, 24
@@ -378,7 +378,7 @@ CheckBagHasSpace: @ 809A000
lsls r0, 24
lsrs r5, r0, 24
movs r2, 0
- ldr r1, _0809A054 @ =gUnknown_203988C
+ ldr r1, _0809A054 @ =gBagPockets
lsls r0, r5, 3
adds r0, r1
ldrb r1, [r0, 0x4]
@@ -404,7 +404,7 @@ _0809A050:
movs r0, 0
b _0809A07C
.align 2, 0
-_0809A054: .4byte gUnknown_203988C
+_0809A054: .4byte gBagPockets
_0809A058: .4byte 0x000003e7
_0809A05C:
adds r0, r2, 0x1
@@ -453,7 +453,7 @@ _0809A0A2:
lsls r0, 24
lsrs r7, r0, 24
movs r2, 0
- ldr r1, _0809A0E0 @ =gUnknown_203988C
+ ldr r1, _0809A0E0 @ =gBagPockets
lsls r0, r7, 3
adds r0, r1
ldrb r1, [r0, 0x4]
@@ -478,7 +478,7 @@ _0809A0BE:
ble _0809A1B8
b _0809A1CA
.align 2, 0
-_0809A0E0: .4byte gUnknown_203988C
+_0809A0E0: .4byte gBagPockets
_0809A0E4: .4byte 0x000003e7
_0809A0E8:
adds r0, r2, 0x1
@@ -506,7 +506,7 @@ _0809A0F4:
negs r0, r0
cmp r1, r0
beq _0809A1CA
- ldr r2, _0809A1AC @ =gUnknown_203988C
+ ldr r2, _0809A1AC @ =gBagPockets
ldr r0, [r2, 0x8]
lsls r1, 2
adds r0, r1, r0
@@ -534,7 +534,7 @@ _0809A132:
negs r0, r0
cmp r1, r0
beq _0809A1CA
- ldr r2, _0809A1AC @ =gUnknown_203988C
+ ldr r2, _0809A1AC @ =gBagPockets
ldr r0, [r2, 0x8]
lsls r1, 2
adds r0, r1, r0
@@ -561,7 +561,7 @@ _0809A180:
negs r0, r0
cmp r2, r0
beq _0809A1CA
- ldr r0, _0809A1AC @ =gUnknown_203988C
+ ldr r0, _0809A1AC @ =gBagPockets
lsls r1, r7, 3
adds r1, r0
ldr r0, [r1]
@@ -574,7 +574,7 @@ _0809A180:
mov r1, r8
b _0809A1C2
.align 2, 0
-_0809A1AC: .4byte gUnknown_203988C
+_0809A1AC: .4byte gBagPockets
_0809A1B0: .4byte 0x0000016d
_0809A1B4: .4byte 0x00000847
_0809A1B8:
@@ -616,7 +616,7 @@ RemoveBagItem: @ 809A1D8
subs r0, 0x1
lsls r0, 24
movs r2, 0
- ldr r1, _0809A248 @ =gUnknown_203988C
+ ldr r1, _0809A248 @ =gBagPockets
lsrs r0, 21
adds r0, r1
ldrb r1, [r0, 0x4]
@@ -653,7 +653,7 @@ _0809A242:
movs r0, 0x1
b _0809A25A
.align 2, 0
-_0809A248: .4byte gUnknown_203988C
+_0809A248: .4byte gBagPockets
_0809A24C:
adds r0, r2, 0x1
lsls r0, 24
@@ -745,7 +745,7 @@ _0809A2D8: .4byte gSaveBlock1Ptr
sub_809A2DC: @ 809A2DC
push {r4,r5,lr}
movs r4, 0
- ldr r5, _0809A300 @ =gUnknown_203988C
+ ldr r5, _0809A300 @ =gBagPockets
_0809A2E2:
lsls r1, r4, 3
adds r1, r5
@@ -761,7 +761,7 @@ _0809A2E2:
pop {r0}
bx r0
.align 2, 0
-_0809A300: .4byte gUnknown_203988C
+_0809A300: .4byte gBagPockets
thumb_func_end sub_809A2DC
thumb_func_start sub_809A304
@@ -1404,11 +1404,11 @@ _0809A786:
bx r0
thumb_func_end sub_809A720
- thumb_func_start sub_809A798
-sub_809A798: @ 809A798
+ thumb_func_start BagGetItemIdByPocketPosition
+BagGetItemIdByPocketPosition: @ 809A798
lsls r0, 24
lsls r1, 16
- ldr r2, _0809A7B0 @ =gUnknown_203988C
+ ldr r2, _0809A7B0 @ =gBagPockets
lsrs r0, 21
subs r0, 0x8
adds r0, r2
@@ -1418,15 +1418,15 @@ sub_809A798: @ 809A798
ldrh r0, [r1]
bx lr
.align 2, 0
-_0809A7B0: .4byte gUnknown_203988C
- thumb_func_end sub_809A798
+_0809A7B0: .4byte gBagPockets
+ thumb_func_end BagGetItemIdByPocketPosition
- thumb_func_start sub_809A7B4
-sub_809A7B4: @ 809A7B4
+ thumb_func_start BagGetQuantityByPocketPosition
+BagGetQuantityByPocketPosition: @ 809A7B4
push {lr}
lsls r0, 24
lsls r1, 16
- ldr r2, _0809A7D8 @ =gUnknown_203988C
+ ldr r2, _0809A7D8 @ =gBagPockets
lsrs r0, 21
subs r0, 0x8
adds r0, r2
@@ -1440,8 +1440,8 @@ sub_809A7B4: @ 809A7B4
pop {r1}
bx r1
.align 2, 0
-_0809A7D8: .4byte gUnknown_203988C
- thumb_func_end sub_809A7B4
+_0809A7D8: .4byte gBagPockets
+ thumb_func_end BagGetQuantityByPocketPosition
thumb_func_start sub_809A7DC
sub_809A7DC: @ 809A7DC
@@ -1577,12 +1577,12 @@ ItemId_GetItem: @ 809A8BC
lsrs r0, 16
movs r1, 0x2C
muls r0, r1
- ldr r1, _0809A8D8 @ =gUnknown_83DB028
+ ldr r1, _0809A8D8 @ =gItems
adds r0, r1
pop {r1}
bx r1
.align 2, 0
-_0809A8D8: .4byte gUnknown_83DB028
+_0809A8D8: .4byte gItems
thumb_func_end ItemId_GetItem
thumb_func_start itemid_get_number
@@ -1590,7 +1590,7 @@ itemid_get_number: @ 809A8DC
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809A8FC @ =gUnknown_83DB028
+ ldr r4, _0809A8FC @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1602,7 +1602,7 @@ itemid_get_number: @ 809A8DC
pop {r1}
bx r1
.align 2, 0
-_0809A8FC: .4byte gUnknown_83DB028
+_0809A8FC: .4byte gItems
thumb_func_end itemid_get_number
thumb_func_start itemid_get_market_price
@@ -1610,7 +1610,7 @@ itemid_get_market_price: @ 809A900
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809A920 @ =gUnknown_83DB028
+ ldr r4, _0809A920 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1622,7 +1622,7 @@ itemid_get_market_price: @ 809A900
pop {r1}
bx r1
.align 2, 0
-_0809A920: .4byte gUnknown_83DB028
+_0809A920: .4byte gItems
thumb_func_end itemid_get_market_price
thumb_func_start ItemId_GetHoldEffect
@@ -1630,7 +1630,7 @@ ItemId_GetHoldEffect: @ 809A924
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809A944 @ =gUnknown_83DB028
+ ldr r4, _0809A944 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1642,7 +1642,7 @@ ItemId_GetHoldEffect: @ 809A924
pop {r1}
bx r1
.align 2, 0
-_0809A944: .4byte gUnknown_83DB028
+_0809A944: .4byte gItems
thumb_func_end ItemId_GetHoldEffect
thumb_func_start ItemId_GetHoldEffectParam
@@ -1650,7 +1650,7 @@ ItemId_GetHoldEffectParam: @ 809A948
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809A968 @ =gUnknown_83DB028
+ ldr r4, _0809A968 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1662,7 +1662,7 @@ ItemId_GetHoldEffectParam: @ 809A948
pop {r1}
bx r1
.align 2, 0
-_0809A968: .4byte gUnknown_83DB028
+_0809A968: .4byte gItems
thumb_func_end ItemId_GetHoldEffectParam
thumb_func_start ItemId_GetDescription
@@ -1670,7 +1670,7 @@ ItemId_GetDescription: @ 809A96C
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809A98C @ =gUnknown_83DB028
+ ldr r4, _0809A98C @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1683,7 +1683,7 @@ ItemId_GetDescription: @ 809A96C
pop {r1}
bx r1
.align 2, 0
-_0809A98C: .4byte gUnknown_83DB028
+_0809A98C: .4byte gItems
thumb_func_end ItemId_GetDescription
thumb_func_start itemid_is_unique
@@ -1691,7 +1691,7 @@ itemid_is_unique: @ 809A990
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809A9B0 @ =gUnknown_83DB028
+ ldr r4, _0809A9B0 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1703,7 +1703,7 @@ itemid_is_unique: @ 809A990
pop {r1}
bx r1
.align 2, 0
-_0809A9B0: .4byte gUnknown_83DB028
+_0809A9B0: .4byte gItems
thumb_func_end itemid_is_unique
thumb_func_start itemid_get_x19
@@ -1711,7 +1711,7 @@ itemid_get_x19: @ 809A9B4
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809A9D4 @ =gUnknown_83DB028
+ ldr r4, _0809A9D4 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1723,7 +1723,7 @@ itemid_get_x19: @ 809A9B4
pop {r1}
bx r1
.align 2, 0
-_0809A9D4: .4byte gUnknown_83DB028
+_0809A9D4: .4byte gItems
thumb_func_end itemid_get_x19
thumb_func_start ItemId_GetPocket
@@ -1731,7 +1731,7 @@ ItemId_GetPocket: @ 809A9D8
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809A9F8 @ =gUnknown_83DB028
+ ldr r4, _0809A9F8 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1743,7 +1743,7 @@ ItemId_GetPocket: @ 809A9D8
pop {r1}
bx r1
.align 2, 0
-_0809A9F8: .4byte gUnknown_83DB028
+_0809A9F8: .4byte gItems
thumb_func_end ItemId_GetPocket
thumb_func_start ItemId_GetType
@@ -1751,7 +1751,7 @@ ItemId_GetType: @ 809A9FC
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809AA1C @ =gUnknown_83DB028
+ ldr r4, _0809AA1C @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1763,7 +1763,7 @@ ItemId_GetType: @ 809A9FC
pop {r1}
bx r1
.align 2, 0
-_0809AA1C: .4byte gUnknown_83DB028
+_0809AA1C: .4byte gItems
thumb_func_end ItemId_GetType
thumb_func_start ItemId_GetFieldFunc
@@ -1771,7 +1771,7 @@ ItemId_GetFieldFunc: @ 809AA20
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809AA40 @ =gUnknown_83DB028
+ ldr r4, _0809AA40 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1784,7 +1784,7 @@ ItemId_GetFieldFunc: @ 809AA20
pop {r1}
bx r1
.align 2, 0
-_0809AA40: .4byte gUnknown_83DB028
+_0809AA40: .4byte gItems
thumb_func_end ItemId_GetFieldFunc
thumb_func_start ItemId_GetBattleUsage
@@ -1792,7 +1792,7 @@ ItemId_GetBattleUsage: @ 809AA44
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809AA64 @ =gUnknown_83DB028
+ ldr r4, _0809AA64 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1805,7 +1805,7 @@ ItemId_GetBattleUsage: @ 809AA44
pop {r1}
bx r1
.align 2, 0
-_0809AA64: .4byte gUnknown_83DB028
+_0809AA64: .4byte gItems
thumb_func_end ItemId_GetBattleUsage
thumb_func_start ItemId_GetBattleFunc
@@ -1813,7 +1813,7 @@ ItemId_GetBattleFunc: @ 809AA68
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809AA88 @ =gUnknown_83DB028
+ ldr r4, _0809AA88 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1826,7 +1826,7 @@ ItemId_GetBattleFunc: @ 809AA68
pop {r1}
bx r1
.align 2, 0
-_0809AA88: .4byte gUnknown_83DB028
+_0809AA88: .4byte gItems
thumb_func_end ItemId_GetBattleFunc
thumb_func_start ItemId_GetSecondaryId
@@ -1834,7 +1834,7 @@ ItemId_GetSecondaryId: @ 809AA8C
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809AAAC @ =gUnknown_83DB028
+ ldr r4, _0809AAAC @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1847,7 +1847,7 @@ ItemId_GetSecondaryId: @ 809AA8C
pop {r1}
bx r1
.align 2, 0
-_0809AAAC: .4byte gUnknown_83DB028
+_0809AAAC: .4byte gItems
thumb_func_end ItemId_GetSecondaryId
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/item_menu.s b/asm/item_menu.s
index dcc74bafd..01c5f6e4c 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -350,7 +350,7 @@ _0810806E:
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r0, _081080B0 @ =gUnknown_3005E70
+ ldr r0, _081080B0 @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
adds r1, r4, 0
@@ -375,7 +375,7 @@ _0810806E:
b _08108104
.align 2, 0
_081080AC: .4byte gUnknown_203ACFC
-_081080B0: .4byte gUnknown_3005E70
+_081080B0: .4byte gMultiuseListMenuTemplate
_081080B4: .4byte gTasks
_081080B8:
ldr r0, _081080C4 @ =gUnknown_203ACFC
@@ -817,7 +817,7 @@ sub_810842C: @ 810842C
lsls r0, 24
lsrs r7, r0, 24
lsls r1, r7, 3
- ldr r0, _0810853C @ =gUnknown_203988C
+ ldr r0, _0810853C @ =gBagPockets
adds r1, r0
mov r8, r1
movs r6, 0
@@ -881,7 +881,7 @@ _0810848C:
adds r0, r4
str r0, [r1]
str r6, [r1, 0x4]
- ldr r3, _08108554 @ =gUnknown_3005E70
+ ldr r3, _08108554 @ =gMultiuseListMenuTemplate
str r2, [r3]
ldr r0, _08108540 @ =gUnknown_203AD10
ldr r2, [r0]
@@ -946,13 +946,13 @@ _0810848C:
pop {r0}
bx r0
.align 2, 0
-_0810853C: .4byte gUnknown_203988C
+_0810853C: .4byte gBagPockets
_08108540: .4byte gUnknown_203AD10
_08108544: .4byte gUnknown_203AD1C
_08108548: .4byte gUnknown_203AD18
_0810854C: .4byte gUnknown_8452F60
_08108550: .4byte gFameCheckerText_Cancel
-_08108554: .4byte gUnknown_3005E70
+_08108554: .4byte gMultiuseListMenuTemplate
_08108558: .4byte sub_81085A4
_0810855C: .4byte sub_8108654
thumb_func_end sub_810842C
@@ -1029,7 +1029,7 @@ _081085BA:
lsrs r0, 24
lsls r1, r5, 16
lsrs r1, 16
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
ldr r1, [r4]
@@ -1129,7 +1129,7 @@ _08108690:
lsls r4, 16
lsrs r4, 16
adds r1, r4, 0
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r7, r0, 16
ldrb r0, [r5, 0x6]
@@ -1137,7 +1137,7 @@ _08108690:
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0
- bl sub_809A7B4
+ bl BagGetQuantityByPocketPosition
lsls r0, 16
lsrs r4, r0, 16
ldrh r0, [r5, 0x6]
@@ -1155,7 +1155,7 @@ _08108690:
movs r3, 0x3
bl ConvertIntToDecimalStringN
ldr r4, _08108724 @ =gStringVar4
- ldr r1, _08108728 @ =gUnknown_84162B9
+ ldr r1, _08108728 @ =gText_TimesStrVar1
adds r0, r4, 0
bl StringExpandPlaceholders
str r6, [sp]
@@ -1176,7 +1176,7 @@ _08108718: .4byte gUnknown_203AD10
_0810871C: .4byte gUnknown_203ACFC
_08108720: .4byte gStringVar1
_08108724: .4byte gStringVar4
-_08108728: .4byte gUnknown_84162B9
+_08108728: .4byte gText_TimesStrVar1
_0810872C:
ldr r0, _08108760 @ =gSaveBlock1Ptr
ldr r0, [r0]
@@ -1317,7 +1317,7 @@ sub_8108818: @ 8108818
lsrs r0, 24
lsls r1, r2, 16
lsrs r1, 16
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl ItemId_GetDescription
@@ -1802,7 +1802,7 @@ sub_8108B8C: @ 8108B8C
adds r3, r4, 0
adds r3, 0x8
adds r2, r3
- bl sub_810713C
+ bl DestroyListMenu
ldr r0, _08108BF0 @ =gUnknown_203AD10
ldr r0, [r0]
ldr r0, [r0]
@@ -2065,7 +2065,7 @@ sub_8108DC8: @ 8108DC8
lsls r0, 24
lsrs r5, r0, 24
lsls r1, r5, 3
- ldr r0, _08108E3C @ =gUnknown_203988C
+ ldr r0, _08108E3C @ =gBagPockets
adds r4, r1, r0
ldr r0, [r4]
ldrb r1, [r4, 0x4]
@@ -2120,7 +2120,7 @@ _08108E1C:
strb r1, [r0]
b _08108E4C
.align 2, 0
-_08108E3C: .4byte gUnknown_203988C
+_08108E3C: .4byte gBagPockets
_08108E40: .4byte gUnknown_203AD10
_08108E44:
adds r0, r1, 0
@@ -2422,14 +2422,14 @@ _08109084:
lsls r4, 16
lsrs r4, 16
adds r1, r4, 0
- bl sub_809A7B4
+ bl BagGetQuantityByPocketPosition
strh r0, [r7, 0x4]
ldrb r0, [r5, 0x6]
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
ldr r1, _081090D0 @ =gSpecialVar_ItemId
strh r0, [r1]
ldr r1, _081090D4 @ =gTasks
@@ -2617,7 +2617,7 @@ sub_81091D0: @ 81091D0
adds r1, r2, r1
adds r3, 0x8
adds r2, r3
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
ldr r0, _08109290 @ =gUnknown_203AD10
@@ -2773,7 +2773,7 @@ _08109358:
bl sub_81087EC
ldrb r0, [r4, 0x6]
bl sub_810842C
- ldr r0, _081093B4 @ =gUnknown_3005E70
+ ldr r0, _081093B4 @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
adds r1, r4, 0
@@ -2803,7 +2803,7 @@ _081093AA:
bx r0
.align 2, 0
_081093B0: .4byte gUnknown_203ACFC
-_081093B4: .4byte gUnknown_3005E70
+_081093B4: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_8109298
thumb_func_start sub_81093B8
@@ -2850,7 +2850,7 @@ sub_81093B8: @ 81093B8
lsrs r0, 24
mov r2, r8
ldrh r1, [r2, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl ItemId_GetItem
@@ -3063,7 +3063,7 @@ _081095DA:
.align 2, 0
_081095E4: .4byte gTasks+0x8
_081095E8:
- ldr r1, _0810966C @ =gUnknown_203988C
+ ldr r1, _0810966C @ =gBagPockets
ldr r4, _08109670 @ =gUnknown_203ACFC
ldrh r0, [r4, 0x6]
lsls r0, 3
@@ -3082,7 +3082,7 @@ _081095E8:
adds r7, r4, 0
adds r7, 0x8
adds r2, r7
- bl sub_810713C
+ bl DestroyListMenu
movs r3, 0x2
ldrsh r0, [r6, r3]
cmp r0, r5
@@ -3096,7 +3096,7 @@ _081095E8:
_08109628:
ldrb r0, [r4, 0x6]
bl sub_810842C
- ldr r0, _08109674 @ =gUnknown_3005E70
+ ldr r0, _08109674 @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
mov r3, r8
@@ -3125,9 +3125,9 @@ _0810965C:
pop {r0}
bx r0
.align 2, 0
-_0810966C: .4byte gUnknown_203988C
+_0810966C: .4byte gBagPockets
_08109670: .4byte gUnknown_203ACFC
-_08109674: .4byte gUnknown_3005E70
+_08109674: .4byte gMultiuseListMenuTemplate
_08109678: .4byte sub_8108F0C
thumb_func_end sub_81095AC
@@ -3160,7 +3160,7 @@ sub_810967C: @ 810967C
adds r7, r5, 0
adds r7, 0x8
adds r2, r7
- bl sub_810713C
+ bl DestroyListMenu
movs r3, 0x2
ldrsh r0, [r6, r3]
cmp r0, r4
@@ -3174,7 +3174,7 @@ sub_810967C: @ 810967C
_081096CA:
ldrb r0, [r5, 0x6]
bl sub_810842C
- ldr r0, _08109714 @ =gUnknown_3005E70
+ ldr r0, _08109714 @ =gMultiuseListMenuTemplate
ldrh r2, [r5, 0x6]
lsls r2, 1
mov r3, r9
@@ -3204,7 +3204,7 @@ _081096CA:
.align 2, 0
_0810970C: .4byte gTasks+0x8
_08109710: .4byte gUnknown_203ACFC
-_08109714: .4byte gUnknown_3005E70
+_08109714: .4byte gMultiuseListMenuTemplate
_08109718: .4byte sub_8108F0C
thumb_func_end sub_810967C
@@ -3232,7 +3232,7 @@ sub_810971C: @ 810971C
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
ldr r1, _081097D8 @ =gStringVar1
@@ -3267,7 +3267,7 @@ sub_810971C: @ 810971C
movs r2, 0x2
movs r3, 0x3
bl ConvertIntToDecimalStringN
- ldr r1, _081097E0 @ =gUnknown_84162B9
+ ldr r1, _081097E0 @ =gText_TimesStrVar1
mov r0, r9
bl StringExpandPlaceholders
movs r0, 0xA
@@ -3295,7 +3295,7 @@ sub_810971C: @ 810971C
_081097D4: .4byte gUnknown_203ACFC
_081097D8: .4byte gStringVar1
_081097DC: .4byte gStringVar4
-_081097E0: .4byte gUnknown_84162B9
+_081097E0: .4byte gText_TimesStrVar1
thumb_func_end sub_810971C
thumb_func_start sub_81097E4
@@ -3324,7 +3324,7 @@ sub_81097E4: @ 81097E4
adds r3, r5, 0
bl ConvertIntToDecimalStringN
ldr r4, _0810984C @ =gStringVar4
- ldr r1, _08109850 @ =gUnknown_84162B9
+ ldr r1, _08109850 @ =gText_TimesStrVar1
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0xA
@@ -3347,7 +3347,7 @@ sub_81097E4: @ 81097E4
.align 2, 0
_08109848: .4byte gStringVar1
_0810984C: .4byte gStringVar4
-_08109850: .4byte gUnknown_84162B9
+_08109850: .4byte gText_TimesStrVar1
thumb_func_end sub_81097E4
thumb_func_start sub_8109854
@@ -4121,7 +4121,7 @@ sub_8109EA8: @ 8109EA8
lsls r0, 24
lsrs r0, 24
ldrh r1, [r6, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
ldr r1, _08109F30 @ =gStringVar1
@@ -4213,14 +4213,14 @@ _08109F6E:
adds r6, r4, 0
adds r6, 0x8
adds r2, r6
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4, 0x6]
bl sub_8108DC8
ldrb r0, [r4, 0x6]
bl sub_81089F4
ldrb r0, [r4, 0x6]
bl sub_810842C
- ldr r0, _08109FFC @ =gUnknown_3005E70
+ ldr r0, _08109FFC @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
adds r5, r2, r5
@@ -4251,7 +4251,7 @@ _08109FEC: .4byte gTasks+0x8
_08109FF0: .4byte gMain
_08109FF4: .4byte gSpecialVar_ItemId
_08109FF8: .4byte gUnknown_203ACFC
-_08109FFC: .4byte gUnknown_3005E70
+_08109FFC: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_8109F44
thumb_func_start sub_810A000
@@ -4273,7 +4273,7 @@ sub_810A000: @ 810A000
lsls r0, 24
lsrs r0, 24
ldrh r1, [r7, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r2, r0, 16
ldr r0, _0810A048 @ =gSaveBlock1Ptr
@@ -4304,10 +4304,10 @@ _0810A052:
adds r6, r4, 0
adds r6, 0x8
adds r2, r6
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4, 0x6]
bl sub_810842C
- ldr r0, _0810A0A4 @ =gUnknown_3005E70
+ ldr r0, _0810A0A4 @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
adds r5, r2, r5
@@ -4330,7 +4330,7 @@ _0810A052:
bx r0
.align 2, 0
_0810A0A0: .4byte gUnknown_203ACFC
-_0810A0A4: .4byte gUnknown_3005E70
+_0810A0A4: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_810A000
thumb_func_start sub_810A0A8
@@ -4353,7 +4353,7 @@ sub_810A0A8: @ 810A0A8
lsls r0, 24
lsrs r0, 24
ldrh r1, [r1, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r5, r0, 16
movs r0, 0xA
@@ -4427,14 +4427,14 @@ sub_810A170: @ 810A170
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _0810A184 @ =gUnknown_841632A
+ ldr r2, _0810A184 @ =gText_ThereIsNoPokemon
ldr r3, _0810A188 @ =sub_810A1D0
movs r1, 0x2
bl sub_8108E70
pop {r0}
bx r0
.align 2, 0
-_0810A184: .4byte gUnknown_841632A
+_0810A184: .4byte gText_ThereIsNoPokemon
_0810A188: .4byte sub_810A1D0
thumb_func_end sub_810A170
@@ -4449,7 +4449,7 @@ sub_810A18C: @ 810A18C
ldr r1, _0810A1C0 @ =gStringVar1
bl CopyItemName
ldr r5, _0810A1C4 @ =gStringVar4
- ldr r1, _0810A1C8 @ =gUnknown_841635E
+ ldr r1, _0810A1C8 @ =gText_ItemCantBeHeld
adds r0, r5, 0
bl StringExpandPlaceholders
ldr r3, _0810A1CC @ =sub_810A1D0
@@ -4464,7 +4464,7 @@ sub_810A18C: @ 810A18C
_0810A1BC: .4byte gSpecialVar_ItemId
_0810A1C0: .4byte gStringVar1
_0810A1C4: .4byte gStringVar4
-_0810A1C8: .4byte gUnknown_841635E
+_0810A1C8: .4byte gText_ItemCantBeHeld
_0810A1CC: .4byte sub_810A1D0
thumb_func_end sub_810A18C
@@ -4519,14 +4519,14 @@ sub_810A1F8: @ 810A1F8
adds r3, r4
mov r9, r3
add r2, r9
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4, 0x6]
bl sub_8108DC8
ldrb r0, [r4, 0x6]
bl sub_81089F4
ldrb r0, [r4, 0x6]
bl sub_810842C
- ldr r0, _0810A284 @ =gUnknown_3005E70
+ ldr r0, _0810A284 @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
adds r6, r2, r6
@@ -4553,7 +4553,7 @@ sub_810A1F8: @ 810A1F8
.align 2, 0
_0810A27C: .4byte gTasks+0x8
_0810A280: .4byte gUnknown_203ACFC
-_0810A284: .4byte gUnknown_3005E70
+_0810A284: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_810A1F8
thumb_func_start sub_810A288
@@ -4684,7 +4684,7 @@ sub_810A370: @ 810A370
lsls r0, 24
lsrs r0, 24
ldrh r1, [r1, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r4, r0, 16
adds r6, r4, 0
@@ -4763,7 +4763,7 @@ sub_810A434: @ 810A434
ldr r1, _0810A444 @ =sub_810A45C
movs r0, 0x1
movs r2, 0
- bl sub_81317F8
+ bl InitTMCase
pop {r0}
bx r0
.align 2, 0
@@ -4812,7 +4812,7 @@ sub_810A468: @ 810A468
lsls r0, 24
lsrs r0, 24
ldrh r1, [r1, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r4, r0, 16
adds r6, r4, 0
@@ -4835,7 +4835,7 @@ _0810A4BC: .4byte gUnknown_841630F
_0810A4C0: .4byte sub_810A1D0
_0810A4C4:
movs r0, 0xB6
- lsls r0, 1
+ lsls r0, 1 @ ITEM_TM_CASE
cmp r4, r0
bne _0810A4D4
ldr r0, _0810A4D0 @ =sub_810A52C
@@ -4843,7 +4843,7 @@ _0810A4C4:
.align 2, 0
_0810A4D0: .4byte sub_810A52C
_0810A4D4:
- ldr r0, _0810A4E8 @ =0x0000016d
+ ldr r0, _0810A4E8 @ =0x0000016d @ ITEM_BERRY_POUCH
cmp r4, r0
bne _0810A4F0
ldr r0, _0810A4EC @ =sub_810A540
@@ -4892,7 +4892,7 @@ sub_810A52C: @ 810A52C
ldr r1, _0810A53C @ =sub_810A554
movs r0, 0x3
movs r2, 0
- bl sub_81317F8
+ bl InitTMCase
pop {r0}
bx r0
.align 2, 0
@@ -4971,7 +4971,7 @@ _0810A5B4:
ldr r1, _0810A5E8 @ =gStringVar1
bl CopyItemName
ldr r4, _0810A5EC @ =gStringVar4
- ldr r1, _0810A5F0 @ =gUnknown_84168F1
+ ldr r1, _0810A5F0 @ =gText_OhNoICantBuyThat
adds r0, r4, 0
bl StringExpandPlaceholders
bl sub_80BF8E4
@@ -4986,7 +4986,7 @@ _0810A5B4:
.align 2, 0
_0810A5E8: .4byte gStringVar1
_0810A5EC: .4byte gStringVar4
-_0810A5F0: .4byte gUnknown_84168F1
+_0810A5F0: .4byte gText_OhNoICantBuyThat
_0810A5F4: .4byte sub_810A1F8
_0810A5F8:
movs r0, 0x1
@@ -5009,7 +5009,7 @@ _0810A618:
ldr r1, _0810A644 @ =gStringVar1
bl CopyItemName
ldr r4, _0810A648 @ =gStringVar4
- ldr r1, _0810A64C @ =gUnknown_8416911
+ ldr r1, _0810A64C @ =gText_HowManyWouldYouLikeToSell
adds r0, r4, 0
bl StringExpandPlaceholders
bl sub_80BF8E4
@@ -5027,7 +5027,7 @@ _0810A63E:
.align 2, 0
_0810A644: .4byte gStringVar1
_0810A648: .4byte gStringVar4
-_0810A64C: .4byte gUnknown_8416911
+_0810A64C: .4byte gText_HowManyWouldYouLikeToSell
_0810A650: .4byte sub_810A770
thumb_func_end sub_810A568
@@ -5037,7 +5037,7 @@ sub_810A654: @ 810A654
ldr r1, _0810A664 @ =sub_810A67C
movs r0, 0x2
movs r2, 0
- bl sub_81317F8
+ bl InitTMCase
pop {r0}
bx r0
.align 2, 0
@@ -5088,7 +5088,7 @@ sub_810A690: @ 810A690
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -5102,7 +5102,7 @@ sub_810A690: @ 810A690
movs r3, 0x6
bl ConvertIntToDecimalStringN
ldr r4, _0810A700 @ =gStringVar4
- ldr r1, _0810A704 @ =gUnknown_8416936
+ ldr r1, _0810A704 @ =gText_ICanPayThisMuch_WouldThatBeOkay
adds r0, r4, 0
bl StringExpandPlaceholders
bl sub_80BF8E4
@@ -5121,7 +5121,7 @@ _0810A6F4: .4byte gTasks+0x8
_0810A6F8: .4byte gStringVar3
_0810A6FC: .4byte gUnknown_203ACFC
_0810A700: .4byte gStringVar4
-_0810A704: .4byte gUnknown_8416936
+_0810A704: .4byte gText_ICanPayThisMuch_WouldThatBeOkay
_0810A708: .4byte sub_810A70C
thumb_func_end sub_810A690
@@ -5202,7 +5202,7 @@ sub_810A770: @ 810A770
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r6, _0810A824 @ =gStringVar4
- ldr r1, _0810A828 @ =gUnknown_84162B9
+ ldr r1, _0810A828 @ =gText_TimesStrVar1
adds r0, r6, 0
bl StringExpandPlaceholders
movs r0, 0xA
@@ -5226,7 +5226,7 @@ sub_810A770: @ 810A770
lsrs r0, 24
mov r3, r9
ldrh r1, [r3, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -5256,7 +5256,7 @@ sub_810A770: @ 810A770
_0810A81C: .4byte gTasks+0x8
_0810A820: .4byte gStringVar1
_0810A824: .4byte gStringVar4
-_0810A828: .4byte gUnknown_84162B9
+_0810A828: .4byte gText_TimesStrVar1
_0810A82C: .4byte gUnknown_203ACFC
_0810A830: .4byte sub_810A85C
thumb_func_end sub_810A770
@@ -5311,7 +5311,7 @@ sub_810A85C: @ 810A85C
lsls r0, 24
lsrs r0, 24
ldrh r1, [r5, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -5405,7 +5405,7 @@ sub_810A940: @ 810A940
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -5419,7 +5419,7 @@ sub_810A940: @ 810A940
movs r3, 0x6
bl ConvertIntToDecimalStringN
ldr r4, _0810A9C8 @ =gStringVar4
- ldr r1, _0810A9CC @ =gUnknown_8416959
+ ldr r1, _0810A9CC @ =gText_TurnedOverItemsWorthYen
adds r0, r4, 0
bl StringExpandPlaceholders
ldr r3, _0810A9D0 @ =sub_810A9D4
@@ -5437,7 +5437,7 @@ _0810A9BC: .4byte gStringVar1
_0810A9C0: .4byte gStringVar3
_0810A9C4: .4byte gUnknown_203ACFC
_0810A9C8: .4byte gStringVar4
-_0810A9CC: .4byte gUnknown_8416959
+_0810A9CC: .4byte gText_TurnedOverItemsWorthYen
_0810A9D0: .4byte sub_810A9D4
thumb_func_end sub_810A940
@@ -5497,7 +5497,7 @@ sub_810A9D4: @ 810A9D4
adds r3, r4
mov r9, r3
add r2, r9
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4, 0x6]
bl sub_8108DC8
ldrb r0, [r4, 0x6]
@@ -5512,7 +5512,7 @@ sub_810A9D4: @ 810A9D4
strb r0, [r2, 0x5]
ldrb r0, [r4, 0x6]
bl sub_810842C
- ldr r0, _0810AAEC @ =gUnknown_3005E70
+ ldr r0, _0810AAEC @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
adds r5, r2, r5
@@ -5563,7 +5563,7 @@ _0810AADC: .4byte gSpecialVar_ItemId
_0810AAE0: .4byte gSaveBlock1Ptr
_0810AAE4: .4byte gUnknown_203ACFC
_0810AAE8: .4byte gUnknown_203AD10
-_0810AAEC: .4byte gUnknown_3005E70
+_0810AAEC: .4byte gMultiuseListMenuTemplate
_0810AAF0: .4byte sub_810AAF4
thumb_func_end sub_810A9D4
@@ -6212,7 +6212,7 @@ _0810B01C:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_810AECC
bl sub_8108CB4
adds r0, r7, 0
@@ -6342,11 +6342,11 @@ sub_810B108: @ 810B108
beq _0810B160
cmp r4, 0x8
beq _0810B16C
- ldr r2, _0810B15C @ =sub_815ABFC
+ ldr r2, _0810B15C @ =CB2_ReturnToTeachyTV
adds r0, r4, 0
b _0810B170
.align 2, 0
-_0810B15C: .4byte sub_815ABFC
+_0810B15C: .4byte CB2_ReturnToTeachyTV
_0810B160:
ldr r2, _0810B168 @ =sub_8030AEC
movs r0, 0x7
@@ -6386,7 +6386,7 @@ _0810B19C:
bl sub_815AC20
ldr r0, _0810B1C4 @ =gUnknown_203AD10
ldr r1, [r0]
- ldr r0, _0810B1C8 @ =sub_815ABFC
+ ldr r0, _0810B1C8 @ =CB2_ReturnToTeachyTV
str r0, [r1]
ldr r1, _0810B1CC @ =gTasks
lsls r0, r4, 2
@@ -6402,7 +6402,7 @@ _0810B1BC:
bx r1
.align 2, 0
_0810B1C4: .4byte gUnknown_203AD10
-_0810B1C8: .4byte sub_815ABFC
+_0810B1C8: .4byte CB2_ReturnToTeachyTV
_0810B1CC: .4byte gTasks
_0810B1D0: .4byte sub_810B070
thumb_func_end sub_810B180
@@ -6537,10 +6537,10 @@ _0810B29E:
adds r6, r4, 0
adds r6, 0x8
adds r2, r6
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4, 0x6]
bl sub_810842C
- ldr r0, _0810B328 @ =gUnknown_3005E70
+ ldr r0, _0810B328 @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
adds r5, r2, r5
@@ -6565,7 +6565,7 @@ _0810B318: .4byte gSaveBlock1Ptr
_0810B31C: .4byte gSpecialVar_ItemId
_0810B320: .4byte 0x00000296
_0810B324: .4byte gUnknown_203ACFC
-_0810B328: .4byte gUnknown_3005E70
+_0810B328: .4byte gMultiuseListMenuTemplate
_0810B32C:
ldr r1, _0810B340 @ =gMain
movs r0, 0
@@ -6583,7 +6583,7 @@ _0810B344:
ldrb r0, [r7]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_810AECC
bl sub_8108CB4
adds r0, r6, 0
@@ -6738,7 +6738,7 @@ _0810B468:
ldrb r0, [r4]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_810AECC
bl sub_8108CB4
adds r0, r7, 0
@@ -6854,7 +6854,7 @@ _0810B564:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_810AECC
ldr r1, _0810B5B0 @ =gUnknown_3005E98
ldr r0, _0810B5B4 @ =ItemUseCB_Medicine
@@ -6989,11 +6989,11 @@ _0810B68C:
ldrb r0, [r6]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_810AECC
ldr r0, _0810B6D4 @ =gUnknown_203AD10
ldr r1, [r0]
- ldr r0, _0810B6D8 @ =sub_8132E64
+ ldr r0, _0810B6D8 @ =PokeDude_InitTMCase
str r0, [r1]
mov r0, r9
subs r0, 0x8
@@ -7003,7 +7003,7 @@ _0810B68C:
b _0810B6E6
.align 2, 0
_0810B6D4: .4byte gUnknown_203AD10
-_0810B6D8: .4byte sub_8132E64
+_0810B6D8: .4byte PokeDude_InitTMCase
_0810B6DC: .4byte sub_810B070
_0810B6E0:
ldrh r0, [r6, 0x10]
diff --git a/asm/item_pc.s b/asm/item_pc.s
index f4a4176d9..e7a9f8ee5 100644
--- a/asm/item_pc.s
+++ b/asm/item_pc.s
@@ -233,7 +233,7 @@ _0810D5CC:
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _0810D5FC @ =gUnknown_3005E70
+ ldr r0, _0810D5FC @ =gMultiuseListMenuTemplate
ldr r2, _0810D600 @ =gUnknown_203ADCC
ldrh r1, [r2, 0x4]
ldrh r2, [r2, 0x6]
@@ -249,7 +249,7 @@ _0810D5CC:
b _0810D674
.align 2, 0
_0810D5F8: .4byte sub_810DEA0
-_0810D5FC: .4byte gUnknown_3005E70
+_0810D5FC: .4byte gMultiuseListMenuTemplate
_0810D600: .4byte gUnknown_203ADCC
_0810D604: .4byte gTasks
_0810D608:
@@ -594,7 +594,7 @@ _0810D8A4:
movs r1, 0x2
negs r1, r1
str r1, [r0, 0x4]
- ldr r2, _0810D948 @ =gUnknown_3005E70
+ ldr r2, _0810D948 @ =gMultiuseListMenuTemplate
str r3, [r2]
ldr r0, _0810D940 @ =gUnknown_203ADBC
ldr r3, [r0]
@@ -658,7 +658,7 @@ _0810D938: .4byte gSaveBlock1Ptr
_0810D93C: .4byte gUnknown_203ADC4
_0810D940: .4byte gUnknown_203ADBC
_0810D944: .4byte gFameCheckerText_Cancel
-_0810D948: .4byte gUnknown_3005E70
+_0810D948: .4byte gMultiuseListMenuTemplate
_0810D94C: .4byte sub_810D954
_0810D950: .4byte sub_810DA20
thumb_func_end sub_810D878
@@ -804,7 +804,7 @@ _0810DA58:
movs r3, 0x3
bl ConvertIntToDecimalStringN
ldr r4, _0810DAAC @ =gStringVar4
- ldr r1, _0810DAB0 @ =gUnknown_84162B9
+ ldr r1, _0810DAB0 @ =gText_TimesStrVar1
adds r0, r4, 0
bl StringExpandPlaceholders
str r5, [sp]
@@ -828,7 +828,7 @@ _0810DA9E:
.align 2, 0
_0810DAA8: .4byte gStringVar1
_0810DAAC: .4byte gStringVar4
-_0810DAB0: .4byte gUnknown_84162B9
+_0810DAB0: .4byte gText_TimesStrVar1
thumb_func_end sub_810DA20
thumb_func_start sub_810DAB4
@@ -1154,7 +1154,7 @@ sub_810DCE4: @ 810DCE4
ldr r4, _0810DD30 @ =gUnknown_203ADD0
adds r2, r4, 0x2
adds r1, r4, 0
- bl sub_810713C
+ bl DestroyListMenu
ldr r0, _0810DD34 @ =gUnknown_203ADBC
ldr r0, [r0]
ldr r0, [r0]
@@ -1731,7 +1731,7 @@ _0810E194:
ldr r5, _0810E1F4 @ =gUnknown_203ADD0
adds r2, r5, 0x2
adds r1, r5, 0
- bl sub_810713C
+ bl DestroyListMenu
movs r1, 0x2
ldrsh r0, [r6, r1]
cmp r0, r4
@@ -1742,7 +1742,7 @@ _0810E194:
strh r0, [r1, 0x6]
_0810E1C0:
bl sub_810D878
- ldr r0, _0810E1F8 @ =gUnknown_3005E70
+ ldr r0, _0810E1F8 @ =gMultiuseListMenuTemplate
subs r2, r5, 0x4
ldrh r1, [r2, 0x4]
ldrh r2, [r2, 0x6]
@@ -1766,7 +1766,7 @@ _0810E1E6:
.align 2, 0
_0810E1F0: .4byte gSaveBlock1Ptr
_0810E1F4: .4byte gUnknown_203ADD0
-_0810E1F8: .4byte gUnknown_3005E70
+_0810E1F8: .4byte gMultiuseListMenuTemplate
_0810E1FC: .4byte sub_810DEA0
thumb_func_end sub_810E160
@@ -1788,7 +1788,7 @@ sub_810E200: @ 810E200
ldr r5, _0810E268 @ =gUnknown_203ADD0
adds r2, r5, 0x2
adds r1, r5, 0
- bl sub_810713C
+ bl DestroyListMenu
movs r1, 0x2
ldrsh r0, [r6, r1]
cmp r0, r4
@@ -1799,7 +1799,7 @@ sub_810E200: @ 810E200
strh r0, [r1, 0x6]
_0810E234:
bl sub_810D878
- ldr r0, _0810E26C @ =gUnknown_3005E70
+ ldr r0, _0810E26C @ =gMultiuseListMenuTemplate
subs r2, r5, 0x4
ldrh r1, [r2, 0x4]
ldrh r2, [r2, 0x6]
@@ -1822,7 +1822,7 @@ _0810E234:
.align 2, 0
_0810E264: .4byte gTasks+0x8
_0810E268: .4byte gUnknown_203ADD0
-_0810E26C: .4byte gUnknown_3005E70
+_0810E26C: .4byte gMultiuseListMenuTemplate
_0810E270: .4byte sub_810DEA0
thumb_func_end sub_810E200
@@ -2205,11 +2205,11 @@ sub_810E578: @ 810E578
ldr r4, _0810E5D8 @ =gUnknown_203ADD0
adds r2, r4, 0x2
adds r1, r4, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_810DDA4
bl sub_810DBF0
bl sub_810D878
- ldr r0, _0810E5DC @ =gUnknown_3005E70
+ ldr r0, _0810E5DC @ =gMultiuseListMenuTemplate
subs r4, 0x4
ldrh r1, [r4, 0x4]
ldrh r2, [r4, 0x6]
@@ -2227,7 +2227,7 @@ sub_810E578: @ 810E578
.align 2, 0
_0810E5D4: .4byte gTasks+0x8
_0810E5D8: .4byte gUnknown_203ADD0
-_0810E5DC: .4byte gUnknown_3005E70
+_0810E5DC: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_810E578
thumb_func_start sub_810E5E0
@@ -2263,7 +2263,7 @@ sub_810E5E0: @ 810E5E0
movs r2, 0x2
movs r3, 0x3
bl ConvertIntToDecimalStringN
- ldr r1, _0810E66C @ =gUnknown_84162B9
+ ldr r1, _0810E66C @ =gText_TimesStrVar1
adds r0, r5, 0
bl StringExpandPlaceholders
movs r0, 0x3
@@ -2290,7 +2290,7 @@ sub_810E5E0: @ 810E5E0
_0810E660: .4byte gStringVar1
_0810E664: .4byte gStringVar4
_0810E668: .4byte gUnknown_84177AC
-_0810E66C: .4byte gUnknown_84162B9
+_0810E66C: .4byte gText_TimesStrVar1
thumb_func_end sub_810E5E0
thumb_func_start sub_810E670
@@ -2317,7 +2317,7 @@ sub_810E670: @ 810E670
movs r3, 0x3
bl ConvertIntToDecimalStringN
ldr r4, _0810E6D0 @ =gStringVar4
- ldr r1, _0810E6D4 @ =gUnknown_84162B9
+ ldr r1, _0810E6D4 @ =gText_TimesStrVar1
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0xA
@@ -2340,7 +2340,7 @@ sub_810E670: @ 810E670
.align 2, 0
_0810E6CC: .4byte gStringVar1
_0810E6D0: .4byte gStringVar4
-_0810E6D4: .4byte gUnknown_84162B9
+_0810E6D4: .4byte gText_TimesStrVar1
thumb_func_end sub_810E670
thumb_func_start sub_810E6D8
@@ -2444,13 +2444,13 @@ sub_810E79C: @ 810E79C
bl ClearWindowTilemap
movs r0, 0
bl PutWindowTilemap
- ldr r1, _0810E7D4 @ =gUnknown_841632A
+ ldr r1, _0810E7D4 @ =gText_ThereIsNoPokemon
ldr r2, _0810E7D8 @ =sub_810E848
adds r0, r4, 0
bl sub_810EB30
b _0810E7EA
.align 2, 0
-_0810E7D4: .4byte gUnknown_841632A
+_0810E7D4: .4byte gText_ThereIsNoPokemon
_0810E7D8: .4byte sub_810E848
_0810E7DC:
ldr r0, _0810E7F0 @ =gUnknown_203ADBC
@@ -2610,7 +2610,7 @@ sub_810E8F0: @ 810E8F0
movs r1, 0xD0
movs r2, 0x20
bl LoadPalette
- ldr r0, _0810E97C @ =gUnknown_841F408
+ ldr r0, _0810E97C @ =gTMCaseMainWindowPalette
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
@@ -2647,7 +2647,7 @@ _0810E95C:
.align 2, 0
_0810E974: .4byte gUnknown_8453F98
_0810E978: .4byte 0x000003a3
-_0810E97C: .4byte gUnknown_841F408
+_0810E97C: .4byte gTMCaseMainWindowPalette
_0810E980: .4byte gUnknown_203ADD8
thumb_func_end sub_810E8F0
diff --git a/asm/item_use.s b/asm/item_use.s
index 2b425dec2..79dcb290a 100644
--- a/asm/item_use.s
+++ b/asm/item_use.s
@@ -1048,7 +1048,7 @@ sub_80A17D4: @ 80A17D4
ldr r1, _080A17E4 @ =UseFameCheckerFromMenu
movs r0, 0
movs r2, 0
- bl sub_81317F8
+ bl InitTMCase
pop {r0}
bx r0
.align 2, 0
@@ -1071,7 +1071,7 @@ sub_80A17E8: @ 80A17E8
ldr r1, _080A181C @ =c2_exit_to_overworld_2_switch
movs r0, 0
movs r2, 0x1
- bl sub_81317F8
+ bl InitTMCase
adds r0, r4, 0
bl DestroyTask
_080A1812:
diff --git a/asm/learn_move.s b/asm/learn_move.s
index fbb31d196..db41257a2 100644
--- a/asm/learn_move.s
+++ b/asm/learn_move.s
@@ -1373,7 +1373,7 @@ _080E51AA:
adds r2, r3
movs r0, 0xFE
str r0, [r2]
- ldr r2, _080E51FC @ =gUnknown_3005E70
+ ldr r2, _080E51FC @ =gMultiuseListMenuTemplate
adds r1, r2, 0
ldr r0, _080E5200 @ =gUnknown_83FFA94
ldm r0!, {r3,r5,r6}
@@ -1397,7 +1397,7 @@ _080E51EC: .4byte gPlayerParty
_080E51F0: .4byte gMoveNames
_080E51F4: .4byte gStringVar1
_080E51F8: .4byte gFameCheckerText_Cancel
-_080E51FC: .4byte gUnknown_3005E70
+_080E51FC: .4byte gMultiuseListMenuTemplate
_080E5200: .4byte gUnknown_83FFA94
thumb_func_end sub_80E50CC
@@ -1523,7 +1523,7 @@ _080E52FA:
thumb_func_start sub_80E5300
sub_80E5300: @ 80E5300
push {r4,lr}
- ldr r0, _080E5330 @ =gUnknown_3005E70
+ ldr r0, _080E5330 @ =gMultiuseListMenuTemplate
ldr r4, _080E5334 @ =gUnknown_203AAB4
ldr r2, [r4]
ldr r3, _080E5338 @ =0x00000a68
@@ -1544,7 +1544,7 @@ sub_80E5300: @ 80E5300
pop {r0}
bx r0
.align 2, 0
-_080E5330: .4byte gUnknown_3005E70
+_080E5330: .4byte gMultiuseListMenuTemplate
_080E5334: .4byte gUnknown_203AAB4
_080E5338: .4byte 0x00000a68
_080E533C: .4byte 0x00000263
@@ -1568,11 +1568,11 @@ sub_80E5340: @ 80E5340
movs r0, 0x2
movs r2, 0x1
movs r3, 0x4
- bl sub_8107D68
+ bl blit_move_info_icon
ldrb r0, [r4, 0x1]
cmp r0, 0x1
bhi _080E5388
- ldr r1, _080E5384 @ =gUnknown_8416213
+ ldr r1, _080E5384 @ =gText_ThreeHyphens
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
@@ -1583,7 +1583,7 @@ sub_80E5340: @ 80E5340
b _080E53A6
.align 2, 0
_080E5380: .4byte gBattleMoves
-_080E5384: .4byte gUnknown_8416213
+_080E5384: .4byte gText_ThreeHyphens
_080E5388:
ldrb r1, [r4, 0x1]
add r0, sp, 0x8
@@ -1608,7 +1608,7 @@ _080E53A6:
adds r4, r1, 0
cmp r2, 0
bne _080E53D4
- ldr r1, _080E53D0 @ =gUnknown_8416213
+ ldr r1, _080E53D0 @ =gText_ThreeHyphens
str r2, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
@@ -1619,7 +1619,7 @@ _080E53A6:
b _080E53F4
.align 2, 0
_080E53CC: .4byte gBattleMoves
-_080E53D0: .4byte gUnknown_8416213
+_080E53D0: .4byte gText_ThreeHyphens
_080E53D4:
ldrb r1, [r0, 0x3]
add r0, sp, 0x8
@@ -1680,27 +1680,27 @@ sub_80E5444: @ 80E5444
movs r1, 0x13
movs r2, 0x1
movs r3, 0x4
- bl sub_8107D68
+ bl blit_move_info_icon
movs r0, 0x1
movs r1, 0x14
movs r2, 0
movs r3, 0x4
- bl sub_8107D68
+ bl blit_move_info_icon
movs r0, 0x1
movs r1, 0x15
movs r2, 0
movs r3, 0x13
- bl sub_8107D68
+ bl blit_move_info_icon
movs r0, 0
movs r1, 0x16
movs r2, 0x1
movs r3, 0x13
- bl sub_8107D68
+ bl blit_move_info_icon
movs r0, 0
movs r1, 0x17
movs r2, 0x1
movs r3, 0x22
- bl sub_8107D68
+ bl blit_move_info_icon
movs r0, 0
bl PutWindowTilemap
movs r0, 0x1
diff --git a/asm/link.s b/asm/link.s
index 13305edde..7130ce69d 100644
--- a/asm/link.s
+++ b/asm/link.s
@@ -3308,7 +3308,7 @@ _0800AD30:
lsls r1, 8
movs r0, 0
bl ClearGpuRegBits
- ldr r0, _0800AE08 @ =gUnknown_841F408
+ ldr r0, _0800AE08 @ =gTMCaseMainWindowPalette
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
@@ -3343,7 +3343,7 @@ _0800ADF8: .4byte sub_800978C
_0800ADFC: .4byte gUnknown_82345E8
_0800AE00: .4byte gUnknown_2022860
_0800AE04: .4byte gUnknown_82345F0
-_0800AE08: .4byte gUnknown_841F408
+_0800AE08: .4byte gTMCaseMainWindowPalette
_0800AE0C: .4byte gSoftResetDisabled
_0800AE10: .4byte sub_80094D4
_0800AE14: .4byte gMain
diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s
index 514e386ed..776b94c41 100644
--- a/asm/link_rfu_3.s
+++ b/asm/link_rfu_3.s
@@ -402,7 +402,7 @@ _08115B5C:
ldrb r0, [r5, 0xF]
movs r1, 0
bl DrawStdWindowFrame
- ldr r0, _08115C58 @ =gUnknown_3005E70
+ ldr r0, _08115C58 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, _08115C5C @ =gUnknown_8456D34
ldm r1!, {r3,r6,r7}
@@ -434,7 +434,7 @@ _08115C48: .4byte gUnknown_8456CD0
_08115C4C: .4byte gUnknown_8456CFC
_08115C50: .4byte gUnknown_8456D04
_08115C54: .4byte gUnknown_845747C
-_08115C58: .4byte gUnknown_3005E70
+_08115C58: .4byte gMultiuseListMenuTemplate
_08115C5C: .4byte gUnknown_8456D34
_08115C60:
ldr r0, _08115C98 @ =gStringVar1
@@ -1139,7 +1139,7 @@ sub_81161E4: @ 81161E4
ldrb r0, [r4, 0x12]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4, 0x10]
bl ClearWindowTilemap
ldrb r0, [r4, 0xF]
@@ -1920,7 +1920,7 @@ _08116838:
ldrb r0, [r6, 0xB]
movs r1, 0
bl DrawStdWindowFrame
- ldr r0, _081168FC @ =gUnknown_3005E70
+ ldr r0, _081168FC @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, _08116900 @ =gUnknown_8456DDC
ldm r1!, {r3,r5,r7}
@@ -1955,7 +1955,7 @@ _081168EC: .4byte gUnknown_8456CD0
_081168F0: .4byte gUnknown_8456D4C
_081168F4: .4byte gUnknown_8456D54
_081168F8: .4byte gUnknown_8458FC8
-_081168FC: .4byte gUnknown_3005E70
+_081168FC: .4byte gMultiuseListMenuTemplate
_08116900: .4byte gUnknown_8456DDC
_08116904:
bl sub_8116FE4
@@ -2322,7 +2322,7 @@ _08116C10:
ldrb r0, [r6, 0xE]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r6, 0xC]
bl ClearWindowTilemap
ldrb r0, [r6, 0xB]
@@ -4068,7 +4068,7 @@ _08117AB8:
strb r0, [r5, 0xF]
ldrb r0, [r5, 0xF]
bl sub_814240C
- ldr r0, _08117B74 @ =gUnknown_3005E70
+ ldr r0, _08117B74 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, _08117B78 @ =gUnknown_8456D34
ldm r1!, {r3,r4,r6}
@@ -4089,7 +4089,7 @@ _08117AB8:
.align 2, 0
_08117B6C: .4byte gUnknown_8456CFC
_08117B70: .4byte 0x0000ffff
-_08117B74: .4byte gUnknown_3005E70
+_08117B74: .4byte gMultiuseListMenuTemplate
_08117B78: .4byte gUnknown_8456D34
_08117B7C:
ldr r0, _08117B9C @ =gStringVar1
@@ -4398,7 +4398,7 @@ _08117DEE:
ldrb r0, [r5, 0x12]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xF]
@@ -4457,7 +4457,7 @@ _08117E80:
ldrb r0, [r5, 0x12]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xF]
@@ -4624,7 +4624,7 @@ _08117FC0:
strb r0, [r5, 0xD]
ldrb r0, [r5, 0xB]
bl sub_814240C
- ldr r0, _08118068 @ =gUnknown_3005E70
+ ldr r0, _08118068 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, _0811806C @ =gUnknown_8456DDC
ldm r1!, {r3,r6,r7}
@@ -4659,7 +4659,7 @@ _08117FC0:
_0811805C: .4byte gUnknown_8456D4C
_08118060: .4byte 0x0000ffff
_08118064: .4byte gUnknown_8456D54
-_08118068: .4byte gUnknown_3005E70
+_08118068: .4byte gMultiuseListMenuTemplate
_0811806C: .4byte gUnknown_8456DDC
_08118070:
bl sub_8116FE4
@@ -4842,7 +4842,7 @@ _081181EC:
ldrb r0, [r5, 0xE]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xD]
@@ -5042,7 +5042,7 @@ _08118380:
strb r0, [r5, 0xB]
ldrb r0, [r5, 0xB]
bl sub_814240C
- ldr r0, _08118400 @ =gUnknown_3005E70
+ ldr r0, _08118400 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, _08118404 @ =gUnknown_8456DDC
ldm r1!, {r3,r4,r6}
@@ -5066,7 +5066,7 @@ _081183EC:
.align 2, 0
_081183F8: .4byte gUnknown_8456D4C
_081183FC: .4byte 0x0000ffff
-_08118400: .4byte gUnknown_3005E70
+_08118400: .4byte gMultiuseListMenuTemplate
_08118404: .4byte gUnknown_8456DDC
_08118408:
bl sub_8116FE4
@@ -5242,7 +5242,7 @@ _08118564:
ldrb r0, [r5, 0xE]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xB]
@@ -8689,7 +8689,7 @@ _0811A234:
ldrb r0, [r5]
movs r1, 0
bl DrawStdWindowFrame
- ldr r0, _0811A270 @ =gUnknown_3005E70
+ ldr r0, _0811A270 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, [sp, 0x1C]
ldm r1!, {r3,r4,r6}
@@ -8711,7 +8711,7 @@ _0811A234:
strb r0, [r7]
b _0811A2DA
.align 2, 0
-_0811A270: .4byte gUnknown_3005E70
+_0811A270: .4byte gMultiuseListMenuTemplate
_0811A274:
mov r3, r9
ldrb r0, [r3]
@@ -8726,7 +8726,7 @@ _0811A274:
ldrb r0, [r4]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r5]
movs r1, 0x1
bl ClearStdWindowAndFrame
@@ -8747,7 +8747,7 @@ _0811A2B0:
ldrb r0, [r6]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r5]
movs r1, 0x1
bl ClearStdWindowAndFrame
@@ -8795,7 +8795,7 @@ _0811A308:
ldrb r0, [r4]
movs r1, 0
bl DrawStdWindowFrame
- ldr r0, _0811A354 @ =gUnknown_3005E70
+ ldr r0, _0811A354 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, [sp, 0x20]
ldm r1!, {r3,r6,r7}
@@ -8818,7 +8818,7 @@ _0811A308:
b _0811A3E6
.align 2, 0
_0811A350: .4byte gUnknown_8456F1C
-_0811A354: .4byte gUnknown_3005E70
+_0811A354: .4byte gMultiuseListMenuTemplate
_0811A358:
ldrb r0, [r5]
bl ListMenuHandleInput
@@ -8842,7 +8842,7 @@ _0811A37E:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4]
movs r1, 0x1
bl ClearStdWindowAndFrame
@@ -8867,7 +8867,7 @@ _0811A3AC:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4]
movs r1, 0x1
bl ClearStdWindowAndFrame
@@ -9999,7 +9999,7 @@ _0811AC3C:
adds r0, r6, 0
movs r2, 0x44
adds r3, r5, 0
- bl sub_8107D68
+ bl blit_move_info_icon
movs r0, 0xB
mov r2, r8
muls r2, r0
diff --git a/asm/list_menu.s b/asm/list_menu.s
index f0a609fcd..3119d53bd 100644
--- a/asm/list_menu.s
+++ b/asm/list_menu.s
@@ -62,7 +62,7 @@ _08106F24:
ldr r1, [sp, 0x4]
bl sub_8150048
_08106F34:
- ldr r0, _08106F64 @ =gUnknown_3005E70
+ ldr r0, _08106F64 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, [sp]
ldm r1!, {r3-r5}
@@ -84,7 +84,7 @@ _08106F34:
b _08106FE4
.align 2, 0
_08106F60: .4byte gUnknown_203ACF4
-_08106F64: .4byte gUnknown_3005E70
+_08106F64: .4byte gMultiuseListMenuTemplate
_08106F68:
ldrb r0, [r5, 0x6]
bl ListMenuHandleInput
@@ -139,7 +139,7 @@ _08106FCC:
ldrb r0, [r5, 0x6]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r5, 0x5]
bl RemoveWindow
movs r0, 0
@@ -340,8 +340,8 @@ _08107136:
bx r1
thumb_func_end ListMenuHandleInput
- thumb_func_start sub_810713C
-sub_810713C: @ 810713C
+ thumb_func_start DestroyListMenu
+DestroyListMenu: @ 810713C
push {r4,lr}
adds r3, r1, 0
lsls r0, 24
@@ -377,7 +377,7 @@ _08107170:
bx r0
.align 2, 0
_0810717C: .4byte gTasks+0x8
- thumb_func_end sub_810713C
+ thumb_func_end DestroyListMenu
thumb_func_start sub_8107180
sub_8107180: @ 8107180
@@ -1976,8 +1976,8 @@ _08107D56:
_08107D64: .4byte gUnknown_8E95DBC
thumb_func_end sub_8107D38
- thumb_func_start sub_8107D68
-sub_8107D68: @ 8107D68
+ thumb_func_start blit_move_info_icon
+blit_move_info_icon: @ 8107D68
push {r4,r5,lr}
sub sp, 0x18
lsls r0, 24
@@ -2014,6 +2014,6 @@ sub_8107D68: @ 8107D68
.align 2, 0
_08107DAC: .4byte gUnknown_8452C94
_08107DB0: .4byte gUnknown_8E95DDC
- thumb_func_end sub_8107D68
+ thumb_func_end blit_move_info_icon
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/mailbox_pc.s b/asm/mailbox_pc.s
index d2cc06070..5273d1357 100644
--- a/asm/mailbox_pc.s
+++ b/asm/mailbox_pc.s
@@ -176,7 +176,7 @@ sub_810EC98: @ 810EC98
ldr r7, _0810ED50 @ =gUnknown_203ADE0
ldr r0, _0810ED54 @ =gFameCheckerText_Cancel
mov r12, r0
- ldr r5, _0810ED58 @ =gUnknown_3005E70
+ ldr r5, _0810ED58 @ =gMultiuseListMenuTemplate
ldr r1, _0810ED5C @ =gUnknown_203ADDC
mov r8, r1
ldrb r0, [r6, 0x5]
@@ -263,7 +263,7 @@ _0810ECCE:
.align 2, 0
_0810ED50: .4byte gUnknown_203ADE0
_0810ED54: .4byte gFameCheckerText_Cancel
-_0810ED58: .4byte gUnknown_3005E70
+_0810ED58: .4byte gMultiuseListMenuTemplate
_0810ED5C: .4byte gUnknown_203ADDC
_0810ED60: .4byte gUnknown_8454003
_0810ED64: .4byte sub_810ED6C
diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s
index 612672b93..e576313f4 100644
--- a/asm/menu_helpers.s
+++ b/asm/menu_helpers.s
@@ -182,8 +182,8 @@ _080BF5C8: .4byte gTasks
_080BF5CC: .4byte gUnknown_20399C8
thumb_func_end sub_80BF560
- thumb_func_start sub_80BF5D0
-sub_80BF5D0: @ 80BF5D0
+ thumb_func_start CreateYesNoMenuWithCallbacks
+CreateYesNoMenuWithCallbacks: @ 80BF5D0
push {r4-r7,lr}
sub sp, 0xC
adds r6, r0, 0
@@ -228,7 +228,7 @@ sub_80BF5D0: @ 80BF5D0
_080BF624: .4byte gUnknown_20399C8
_080BF628: .4byte gTasks
_080BF62C: .4byte sub_80BF560
- thumb_func_end sub_80BF5D0
+ thumb_func_end CreateYesNoMenuWithCallbacks
thumb_func_start GetLRKeysState
GetLRKeysState: @ 80BF630
diff --git a/asm/new_game.s b/asm/new_game.s
index d1d5a1487..63bfd9523 100644
--- a/asm/new_game.s
+++ b/asm/new_game.s
@@ -183,7 +183,7 @@ sub_8054A28: @ 8054A28
bl ZeroPlayerPartyMons
bl ZeroEnemyPartyMons
bl sub_81089BC
- bl sub_81320AC
+ bl ResetTMCaseCursorPos
bl sub_813D6E4
bl sub_811089C
bl Random
diff --git a/asm/new_menu_helpers.s b/asm/new_menu_helpers.s
index bf2578249..2e4e1a2c9 100644
--- a/asm/new_menu_helpers.s
+++ b/asm/new_menu_helpers.s
@@ -2049,14 +2049,14 @@ _080F77A4:
thumb_func_start sub_80F77B8
sub_80F77B8: @ 80F77B8
push {lr}
- ldr r0, _080F77C8 @ =gUnknown_841F408
+ ldr r0, _080F77C8 @ =gTMCaseMainWindowPalette
movs r1, 0xE0
movs r2, 0x14
bl LoadPalette
pop {r0}
bx r0
.align 2, 0
-_080F77C8: .4byte gUnknown_841F408
+_080F77C8: .4byte gTMCaseMainWindowPalette
thumb_func_end sub_80F77B8
thumb_func_start Menu_LoadStdPalAt
@@ -2065,21 +2065,21 @@ Menu_LoadStdPalAt: @ 80F77CC
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
- ldr r0, _080F77E0 @ =gUnknown_841F408
+ ldr r0, _080F77E0 @ =gTMCaseMainWindowPalette
movs r2, 0x14
bl LoadPalette
pop {r0}
bx r0
.align 2, 0
-_080F77E0: .4byte gUnknown_841F408
+_080F77E0: .4byte gTMCaseMainWindowPalette
thumb_func_end Menu_LoadStdPalAt
thumb_func_start sub_80F77E4
sub_80F77E4: @ 80F77E4
- ldr r0, _080F77E8 @ =gUnknown_841F408
+ ldr r0, _080F77E8 @ =gTMCaseMainWindowPalette
bx lr
.align 2, 0
-_080F77E8: .4byte gUnknown_841F408
+_080F77E8: .4byte gTMCaseMainWindowPalette
thumb_func_end sub_80F77E4
thumb_func_start sub_80F77EC
@@ -2091,14 +2091,14 @@ sub_80F77EC: @ 80F77EC
bls _080F77F8
movs r1, 0
_080F77F8:
- ldr r0, _080F7804 @ =gUnknown_841F408
+ ldr r0, _080F7804 @ =gTMCaseMainWindowPalette
lsls r1, 1
adds r1, r0
ldrh r0, [r1]
pop {r1}
bx r1
.align 2, 0
-_080F7804: .4byte gUnknown_841F408
+_080F7804: .4byte gTMCaseMainWindowPalette
thumb_func_end sub_80F77EC
thumb_func_start DisplayItemMessageOnField
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 085d0da85..d716165ac 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -4879,12 +4879,12 @@ sub_8120FB0: @ 8120FB0
bl FreeRestoreBattleData
bl LoadPlayerParty
bl sub_815AC20
- ldr r0, _08120FC8 @ =sub_815ABFC
+ ldr r0, _08120FC8 @ =CB2_ReturnToTeachyTV
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
-_08120FC8: .4byte sub_815ABFC
+_08120FC8: .4byte CB2_ReturnToTeachyTV
thumb_func_end sub_8120FB0
thumb_func_start sub_8120FCC
@@ -5149,7 +5149,7 @@ _081211E4: .4byte gUnknown_203B0A0
_081211E8: .4byte gFameCheckerText_Cancel
_081211EC: .4byte gUnknown_8459FFC
_081211F0:
- ldr r4, _08121240 @ =gUnknown_84161C8
+ ldr r4, _08121240 @ =gOtherText_Exit
movs r0, 0
adds r1, r4, 0
movs r2, 0
@@ -5187,7 +5187,7 @@ _08121238:
pop {r0}
bx r0
.align 2, 0
-_08121240: .4byte gUnknown_84161C8
+_08121240: .4byte gOtherText_Exit
_08121244: .4byte gUnknown_8459FFC
thumb_func_end sub_81210F8
@@ -12606,7 +12606,7 @@ sub_8124DA0: @ 8124DA0
movs r0, 0x5
movs r1, 0
movs r2, 0xFF
- bl sub_81317F8
+ bl InitTMCase
pop {r0}
bx r0
thumb_func_end sub_8124DA0
diff --git a/asm/player_pc.s b/asm/player_pc.s
index 6d998daaa..f847db1e6 100644
--- a/asm/player_pc.s
+++ b/asm/player_pc.s
@@ -1174,7 +1174,7 @@ _080EBFB6:
ldrb r0, [r4, 0x16]
adds r1, r7, 0
mov r2, r8
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
mov r1, r8
@@ -1288,7 +1288,7 @@ sub_80EC094: @ 80EC094
ldrb r0, [r4, 0x16]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
bl sub_810EDB0
@@ -1852,14 +1852,14 @@ sub_80EC520: @ 80EC520
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _080EC534 @ =gUnknown_841632A
+ ldr r2, _080EC534 @ =gText_ThereIsNoPokemon
ldr r3, _080EC538 @ =sub_80EC574
movs r1, 0x2
bl DisplayItemMessageOnField
pop {r0}
bx r0
.align 2, 0
-_080EC534: .4byte gUnknown_841632A
+_080EC534: .4byte gText_ThereIsNoPokemon
_080EC538: .4byte sub_80EC574
thumb_func_end sub_80EC520
diff --git a/asm/pokedex_screen.s b/asm/pokedex_screen.s
index bd18d2e76..68b30e43b 100644
--- a/asm/pokedex_screen.s
+++ b/asm/pokedex_screen.s
@@ -754,7 +754,7 @@ _08102B24:
adds r1, r2, 0
adds r1, 0x12
adds r2, 0x10
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0x20
str r0, [sp]
movs r0, 0x14
@@ -804,7 +804,7 @@ _08102B94:
adds r1, r2, 0
adds r1, 0x12
adds r2, 0x10
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0x1
bl HideBg
ldr r0, [r4]
@@ -832,7 +832,7 @@ _08102BD8:
adds r1, r2, 0
adds r1, 0x12
adds r2, 0x10
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0x1
bl HideBg
ldr r0, [r4]
@@ -2467,7 +2467,7 @@ _0810399C:
adds r1, r2, 0
adds r1, 0x36
adds r2, 0x34
- bl sub_810713C
+ bl DestroyListMenu
b _081039E8
.align 2, 0
_081039B4: .4byte gUnknown_203ACF0
@@ -2480,7 +2480,7 @@ _081039B8:
adds r1, r2, 0
adds r1, 0x3A
adds r2, 0x38
- bl sub_810713C
+ bl DestroyListMenu
b _081039E8
.align 2, 0
_081039D0: .4byte gUnknown_203ACF0
@@ -2493,7 +2493,7 @@ _081039D4:
adds r1, r2, 0
adds r1, 0x3E
adds r2, 0x3C
- bl sub_810713C
+ bl DestroyListMenu
_081039E8:
pop {r0}
bx r0
@@ -2572,7 +2572,7 @@ sub_8103A40: @ 8103A40
movs r1, 0
movs r2, 0x28
adds r3, r6, 0
- bl sub_8107D68
+ bl blit_move_info_icon
ldr r0, _08103AC4 @ =gBaseStats
lsls r4, r5, 3
subs r4, r5
@@ -2587,7 +2587,7 @@ sub_8103A40: @ 8103A40
lsrs r1, 24
movs r2, 0x78
adds r3, r6, 0
- bl sub_8107D68
+ bl blit_move_info_icon
ldrb r1, [r4, 0x7]
cmp r5, r1
beq _08103AB6
@@ -2599,7 +2599,7 @@ sub_8103A40: @ 8103A40
lsrs r1, 24
movs r2, 0x98
adds r3, r6, 0
- bl sub_8107D68
+ bl blit_move_info_icon
_08103AB6:
add sp, 0x4
pop {r4-r7}
@@ -7753,7 +7753,7 @@ _08106478:
lsrs r1, 24
movs r2, 0
movs r3, 0x1
- bl sub_8107D68
+ bl blit_move_info_icon
ldrb r1, [r4, 0x7]
cmp r5, r1
beq _08106504
@@ -7765,7 +7765,7 @@ _08106478:
lsrs r1, 24
movs r2, 0x20
movs r3, 0x1
- bl sub_8107D68
+ bl blit_move_info_icon
_08106504:
ldr r7, _081066B8 @ =gUnknown_203ACF0
ldr r0, [r7]
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index 385e5fb84..1688f2ed5 100644
--- a/asm/pokemon_summary_screen.s
+++ b/asm/pokemon_summary_screen.s
@@ -4180,7 +4180,7 @@ _08136812:
adds r1, r4, r3
ldr r0, [r6]
adds r0, r1
- ldr r5, _081368A4 @ =gUnknown_8416213
+ ldr r5, _081368A4 @ =gText_ThreeHyphens
adds r1, r5, 0
bl StringCopy
ldr r0, _081368A8 @ =0x00003188
@@ -4209,7 +4209,7 @@ _08136894: .4byte gUnknown_841620E
_08136898: .4byte 0x000030b8
_0813689C: .4byte gUnknown_8416210
_081368A0: .4byte 0x0000316c
-_081368A4: .4byte gUnknown_8416213
+_081368A4: .4byte gText_ThreeHyphens
_081368A8: .4byte 0x00003188
_081368AC: .4byte gUnknown_203B144
_081368B0:
@@ -4399,7 +4399,7 @@ _081369D0:
ldr r1, _08136A68 @ =0x0000316c
adds r0, r1
adds r0, r6, r0
- ldr r1, _08136A6C @ =gUnknown_8416213
+ ldr r1, _08136A6C @ =gText_ThreeHyphens
bl StringCopy
b _08136A84
.align 2, 0
@@ -4411,7 +4411,7 @@ _08136A5C: .4byte 0x00003258
_08136A60: .4byte gUnknown_203B144
_08136A64: .4byte gBattleMoves
_08136A68: .4byte 0x0000316c
-_08136A6C: .4byte gUnknown_8416213
+_08136A6C: .4byte gText_ThreeHyphens
_08136A70:
lsls r4, r7, 2
adds r0, r4, r7
@@ -4441,7 +4441,7 @@ _08136A84:
ldr r2, _08136AC0 @ =0x00003188
adds r0, r2
adds r0, r3, r0
- ldr r1, _08136AC4 @ =gUnknown_8416213
+ ldr r1, _08136AC4 @ =gText_ThreeHyphens
bl StringCopy
b _08136ADA
.align 2, 0
@@ -4450,7 +4450,7 @@ _08136AB4: .4byte gBattleMoves
_08136AB8: .4byte gUnknown_203B140
_08136ABC: .4byte 0x00003258
_08136AC0: .4byte 0x00003188
-_08136AC4: .4byte gUnknown_8416213
+_08136AC4: .4byte gText_ThreeHyphens
_08136AC8:
adds r0, r4, r7
ldr r4, _08136AE8 @ =0x00003188
@@ -6636,7 +6636,7 @@ _08137CA4:
adds r3, r2
lsrs r3, 16
movs r2, 0x3
- bl sub_8107D68
+ bl blit_move_info_icon
_08137CDE:
adds r0, r4, 0x1
lsls r0, 24
@@ -6660,7 +6660,7 @@ _08137CDE:
lsrs r1, 24
movs r2, 0x3
movs r3, 0x75
- bl sub_8107D68
+ bl blit_move_info_icon
_08137D0E:
pop {r4,r5}
pop {r0}
@@ -8325,7 +8325,7 @@ _08138A62:
lsrs r1, 24
movs r2, 0x2F
movs r3, 0x23
- bl sub_8107D68
+ bl blit_move_info_icon
ldr r1, [r6]
adds r4, r1, r4
ldr r3, _08138AB8 @ =0x00003221
@@ -8342,7 +8342,7 @@ _08138A62:
lsrs r1, 24
movs r2, 0x53
movs r3, 0x23
- bl sub_8107D68
+ bl blit_move_info_icon
b _08138B0E
.align 2, 0
_08138AB0: .4byte 0x00003003
@@ -8365,7 +8365,7 @@ _08138ABC:
lsrs r1, 24
movs r2, 0
movs r3, 0x3
- bl sub_8107D68
+ bl blit_move_info_icon
ldr r2, [r6]
adds r4, r2, r4
ldr r1, _08138B1C @ =0x00003221
@@ -8381,7 +8381,7 @@ _08138ABC:
lsrs r1, 24
movs r2, 0x24
movs r3, 0x3
- bl sub_8107D68
+ bl blit_move_info_icon
_08138B04:
ldr r0, [r6]
adds r0, r5
diff --git a/asm/script_menu.s b/asm/script_menu.s
index 11b9feee2..eaf874aea 100644
--- a/asm/script_menu.s
+++ b/asm/script_menu.s
@@ -1925,7 +1925,7 @@ _0809D844:
bl AddTextPrinterParameterized
adds r0, r6, 0x1
lsls r0, 24
- ldr r2, _0809D8BC @ =gUnknown_84161C8
+ ldr r2, _0809D8BC @ =gOtherText_Exit
lsrs r0, 20
adds r0, 0x2
lsls r0, 24
@@ -1964,7 +1964,7 @@ _0809D8A8:
bx r0
.align 2, 0
_0809D8B8: .4byte gUnknown_8417DED
-_0809D8BC: .4byte gUnknown_84161C8
+_0809D8BC: .4byte gOtherText_Exit
thumb_func_end sub_809D764
thumb_func_start sub_809D8C0
diff --git a/asm/shop.s b/asm/shop.s
index 67d30d52a..bdb2f8e9e 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -477,7 +477,7 @@ _0809AE2C:
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _0809AE9C @ =gUnknown_3005E70
+ ldr r0, _0809AE9C @ =gMultiuseListMenuTemplate
movs r1, 0
movs r2, 0
bl ListMenuInit
@@ -510,7 +510,7 @@ _0809AE2C:
_0809AE90: .4byte gMain
_0809AE94: .4byte gUnknown_2039934
_0809AE98: .4byte sub_809BBC0
-_0809AE9C: .4byte gUnknown_3005E70
+_0809AE9C: .4byte gMultiuseListMenuTemplate
_0809AEA0: .4byte gTasks
_0809AEA4: .4byte sub_809AE00
_0809AEA8: .4byte sub_809ADE4
@@ -904,7 +904,7 @@ _0809B1F2:
movs r0, 0x2
negs r0, r0
str r0, [r1, 0x4]
- ldr r5, _0809B2D4 @ =gUnknown_3005E70
+ ldr r5, _0809B2D4 @ =gMultiuseListMenuTemplate
str r2, [r5]
ldr r6, _0809B2D8 @ =gUnknown_2039934
ldrh r0, [r6, 0x10]
@@ -992,7 +992,7 @@ _0809B2BC:
_0809B2C8: .4byte gUnknown_2039968
_0809B2CC: .4byte gFameCheckerText_Cancel
_0809B2D0: .4byte gUnknown_2039964
-_0809B2D4: .4byte gUnknown_3005E70
+_0809B2D4: .4byte gMultiuseListMenuTemplate
_0809B2D8: .4byte gUnknown_2039934
_0809B2DC: .4byte sub_809B320
_0809B2E0: .4byte sub_809B408
@@ -1000,7 +1000,7 @@ _0809B2E4:
strh r0, [r5, 0xE]
_0809B2E6:
ldr r0, _0809B2F8 @ =gUnknown_2039934
- ldr r1, _0809B2FC @ =gUnknown_3005E70
+ ldr r1, _0809B2FC @ =gMultiuseListMenuTemplate
ldrh r1, [r1, 0xE]
strh r1, [r0, 0x12]
movs r0, 0x1
@@ -1010,7 +1010,7 @@ _0809B2F0:
bx r1
.align 2, 0
_0809B2F8: .4byte gUnknown_2039934
-_0809B2FC: .4byte gUnknown_3005E70
+_0809B2FC: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_809B188
thumb_func_start sub_809B300
@@ -1233,7 +1233,7 @@ sub_809B494: @ 809B494
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r5, _0809B51C @ =gStringVar4
- ldr r1, _0809B520 @ =gUnknown_8416226
+ ldr r1, _0809B520 @ =gOtherText_UnkF9_08_Clear_01
adds r0, r5, 0
bl StringCopy
adds r0, r5, 0
@@ -1279,10 +1279,10 @@ sub_809B494: @ 809B494
_0809B514: .4byte gStringVar1
_0809B518: .4byte 0xfffffee0
_0809B51C: .4byte gStringVar4
-_0809B520: .4byte gUnknown_8416226
+_0809B520: .4byte gOtherText_UnkF9_08_Clear_01
_0809B524: .4byte gMoveNames
_0809B528:
- ldr r2, _0809B564 @ =gUnknown_8416213
+ ldr r2, _0809B564 @ =gText_ThreeHyphens
movs r4, 0
str r4, [sp]
str r4, [sp, 0x4]
@@ -1312,7 +1312,7 @@ _0809B55C:
pop {r0}
bx r0
.align 2, 0
-_0809B564: .4byte gUnknown_8416213
+_0809B564: .4byte gText_ThreeHyphens
_0809B568: .4byte gUnknown_8416217
thumb_func_end sub_809B494
@@ -2119,7 +2119,7 @@ sub_809BB44: @ 809BB44
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r4, _0809BBB8 @ =gStringVar4
- ldr r1, _0809BBBC @ =gUnknown_84162B9
+ ldr r1, _0809BBBC @ =gText_TimesStrVar1
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0xA
@@ -2144,7 +2144,7 @@ _0809BBAC: .4byte gTasks+0x8
_0809BBB0: .4byte gUnknown_2039934
_0809BBB4: .4byte gStringVar1
_0809BBB8: .4byte gStringVar4
-_0809BBBC: .4byte gUnknown_84162B9
+_0809BBBC: .4byte gText_TimesStrVar1
thumb_func_end sub_809BB44
thumb_func_start sub_809BBC0
@@ -2691,7 +2691,7 @@ sub_809C04C: @ 809C04C
ldrb r0, [r2, 0xE]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_809B604
ldr r0, _0809C090 @ =c2_exit_to_overworld_2_switch
bl SetMainCallback2
diff --git a/asm/teachy_tv.s b/asm/teachy_tv.s
index b9bf09d46..b7875e7a9 100644
--- a/asm/teachy_tv.s
+++ b/asm/teachy_tv.s
@@ -33,7 +33,7 @@ sub_815ABC4: @ 815ABC4
lsls r0, 24
lsrs r0, 24
adds r2, r0, 0
- ldr r3, _0815ABF4 @ =gUnknown_203F444
+ ldr r3, _0815ABF4 @ =gTeachyTV_StaticResources
movs r4, 0
strb r2, [r3, 0x4]
str r1, [r3]
@@ -54,14 +54,14 @@ _0815ABE6:
pop {r0}
bx r0
.align 2, 0
-_0815ABF4: .4byte gUnknown_203F444
+_0815ABF4: .4byte gTeachyTV_StaticResources
_0815ABF8: .4byte sub_815AC2C
thumb_func_end sub_815ABC4
- thumb_func_start sub_815ABFC
-sub_815ABFC: @ 815ABFC
+ thumb_func_start CB2_ReturnToTeachyTV
+CB2_ReturnToTeachyTV: @ 815ABFC
push {lr}
- ldr r1, _0815AC10 @ =gUnknown_203F444
+ ldr r1, _0815AC10 @ =gTeachyTV_StaticResources
ldrb r0, [r1, 0x4]
cmp r0, 0x1
bne _0815AC14
@@ -70,7 +70,7 @@ sub_815ABFC: @ 815ABFC
bl sub_815ABC4
b _0815AC1C
.align 2, 0
-_0815AC10: .4byte gUnknown_203F444
+_0815AC10: .4byte gTeachyTV_StaticResources
_0815AC14:
ldr r1, [r1]
movs r0, 0x2
@@ -78,16 +78,16 @@ _0815AC14:
_0815AC1C:
pop {r0}
bx r0
- thumb_func_end sub_815ABFC
+ thumb_func_end CB2_ReturnToTeachyTV
thumb_func_start sub_815AC20
sub_815AC20: @ 815AC20
- ldr r1, _0815AC28 @ =gUnknown_203F444
+ ldr r1, _0815AC28 @ =gTeachyTV_StaticResources
movs r0, 0x1
strb r0, [r1, 0x4]
bx lr
.align 2, 0
-_0815AC28: .4byte gUnknown_203F444
+_0815AC28: .4byte gTeachyTV_StaticResources
thumb_func_end sub_815AC20
thumb_func_start sub_815AC2C
@@ -145,7 +145,7 @@ _0815AC9C:
beq _0815AD6E
bl sub_815AEB8
bl sub_815AFEC
- ldr r0, _0815ACE0 @ =gUnknown_203F444
+ ldr r0, _0815ACE0 @ =gTeachyTV_StaticResources
ldrb r0, [r0, 0x4]
cmp r0, 0x2
bne _0815ACEC
@@ -167,7 +167,7 @@ _0815AC9C:
bl sub_815B118
b _0815AD26
.align 2, 0
-_0815ACE0: .4byte gUnknown_203F444
+_0815ACE0: .4byte gTeachyTV_StaticResources
_0815ACE4: .4byte sub_815BA54
_0815ACE8: .4byte gTasks
_0815ACEC:
@@ -384,7 +384,7 @@ _0815AEE4: .4byte gUnknown_84792F0
thumb_func_start sub_815AEE8
sub_815AEE8: @ 815AEE8
push {r4,r5,lr}
- ldr r4, _0815AF48 @ =gUnknown_3005E70
+ ldr r4, _0815AF48 @ =gMultiuseListMenuTemplate
adds r1, r4, 0
ldr r0, _0815AF4C @ =gUnknown_8479368
ldm r0!, {r2,r3,r5}
@@ -419,7 +419,7 @@ sub_815AEE8: @ 815AEE8
orrs r0, r1
strb r0, [r4, 0x14]
_0815AF30:
- ldr r0, _0815AF58 @ =gUnknown_203F444
+ ldr r0, _0815AF58 @ =gTeachyTV_StaticResources
ldrh r1, [r0, 0x6]
ldrh r2, [r0, 0x8]
adds r0, r4, 0
@@ -430,11 +430,11 @@ _0815AF30:
pop {r1}
bx r1
.align 2, 0
-_0815AF48: .4byte gUnknown_3005E70
+_0815AF48: .4byte gMultiuseListMenuTemplate
_0815AF4C: .4byte gUnknown_8479368
_0815AF50: .4byte sub_815AFD8
_0815AF54: .4byte gUnknown_8479340
-_0815AF58: .4byte gUnknown_203F444
+_0815AF58: .4byte gTeachyTV_StaticResources
thumb_func_end sub_815AEE8
thumb_func_start sub_815AF5C
@@ -694,7 +694,7 @@ sub_815B118: @ 815B118
movs r0, 0x1
bl ClearWindowTilemap
bl sub_815B0B4
- ldr r0, _0815B198 @ =gUnknown_203F444
+ ldr r0, _0815B198 @ =gTeachyTV_StaticResources
ldrb r0, [r0, 0x5]
cmp r0, 0
blt _0815B1B8
@@ -732,7 +732,7 @@ sub_815B118: @ 815B118
.align 2, 0
_0815B190: .4byte gTasks+0x8
_0815B194: .4byte gSprites
-_0815B198: .4byte gUnknown_203F444
+_0815B198: .4byte gTeachyTV_StaticResources
_0815B19C: .4byte gUnknown_203F450
_0815B1A0: .4byte 0x00004004
_0815B1A4: .4byte 0x00004005
@@ -867,7 +867,7 @@ _0815B298: .4byte gPaletteFade
_0815B29C: .4byte gUnknown_203F450
_0815B2A0:
bl sub_8055DC4
- ldr r0, _0815B2BC @ =gUnknown_203F444
+ ldr r0, _0815B2BC @ =gTeachyTV_StaticResources
ldr r0, [r0]
bl SetMainCallback2
_0815B2AC:
@@ -879,7 +879,7 @@ _0815B2B6:
pop {r0}
bx r0
.align 2, 0
-_0815B2BC: .4byte gUnknown_203F444
+_0815B2BC: .4byte gTeachyTV_StaticResources
thumb_func_end sub_815B274
thumb_func_start sub_815B2C0
@@ -942,13 +942,13 @@ _0815B330:
_0815B33E:
movs r0, 0x5
bl PlaySE
- ldr r2, _0815B380 @ =gUnknown_203F444
+ ldr r2, _0815B380 @ =gTeachyTV_StaticResources
movs r4, 0
strb r5, [r2, 0x5]
ldrb r0, [r6]
adds r1, r2, 0x6
adds r2, 0x8
- bl sub_810713C
+ bl DestroyListMenu
bl sub_815B0B4
movs r0, 0x1
bl ClearWindowTilemap
@@ -969,7 +969,7 @@ _0815B37A:
pop {r0}
bx r0
.align 2, 0
-_0815B380: .4byte gUnknown_203F444
+_0815B380: .4byte gTeachyTV_StaticResources
_0815B384: .4byte gTasks
_0815B388: .4byte sub_815B4EC
thumb_func_end sub_815B2C0
@@ -1208,7 +1208,7 @@ _0815B554: .4byte 0x00004006
_0815B558: .4byte sub_815B92C
_0815B55C:
ldr r1, _0815B580 @ =gUnknown_8479548
- ldr r0, _0815B584 @ =gUnknown_203F444
+ ldr r0, _0815B584 @ =gTeachyTV_StaticResources
ldrb r0, [r0, 0x5]
lsls r0, 2
adds r0, r1
@@ -1226,7 +1226,7 @@ _0815B578:
bx r0
.align 2, 0
_0815B580: .4byte gUnknown_8479548
-_0815B584: .4byte gUnknown_203F444
+_0815B584: .4byte gTeachyTV_StaticResources
thumb_func_end sub_815B4EC
thumb_func_start sub_815B588
@@ -1240,7 +1240,7 @@ sub_815B588: @ 815B588
ldr r0, _0815B5B4 @ =gTasks+0x8
adds r4, r0
ldr r1, _0815B5B8 @ =gUnknown_8479560
- ldr r0, _0815B5BC @ =gUnknown_203F444
+ ldr r0, _0815B5BC @ =gTeachyTV_StaticResources
ldrb r0, [r0, 0x5]
lsls r0, 2
adds r0, r1
@@ -1255,7 +1255,7 @@ sub_815B588: @ 815B588
.align 2, 0
_0815B5B4: .4byte gTasks+0x8
_0815B5B8: .4byte gUnknown_8479560
-_0815B5BC: .4byte gUnknown_203F444
+_0815B5BC: .4byte gTeachyTV_StaticResources
thumb_func_end sub_815B588
thumb_func_start sub_815B5C0
@@ -1269,7 +1269,7 @@ sub_815B5C0: @ 815B5C0
ldr r0, _0815B5EC @ =gTasks+0x8
adds r4, r0
ldr r1, _0815B5F0 @ =gUnknown_8479578
- ldr r0, _0815B5F4 @ =gUnknown_203F444
+ ldr r0, _0815B5F4 @ =gTeachyTV_StaticResources
ldrb r0, [r0, 0x5]
lsls r0, 2
adds r0, r1
@@ -1284,7 +1284,7 @@ sub_815B5C0: @ 815B5C0
.align 2, 0
_0815B5EC: .4byte gTasks+0x8
_0815B5F0: .4byte gUnknown_8479578
-_0815B5F4: .4byte gUnknown_203F444
+_0815B5F4: .4byte gTeachyTV_StaticResources
thumb_func_end sub_815B5C0
thumb_func_start sub_815B5F8
@@ -1806,7 +1806,7 @@ sub_815B9F0: @ 815B9F0
lsls r0, 24
lsrs r1, r0, 24
adds r2, r1, 0
- ldr r0, _0815BA0C @ =gUnknown_203F444
+ ldr r0, _0815BA0C @ =gTeachyTV_StaticResources
ldrb r0, [r0, 0x5]
cmp r0, 0
blt _0815BA22
@@ -1816,7 +1816,7 @@ sub_815B9F0: @ 815B9F0
bl sub_815BC90
b _0815BA22
.align 2, 0
-_0815BA0C: .4byte gUnknown_203F444
+_0815BA0C: .4byte gTeachyTV_StaticResources
_0815BA10:
cmp r0, 0x5
bgt _0815BA22
@@ -1837,7 +1837,7 @@ _0815BA2C: .4byte sub_815BA30
thumb_func_start sub_815BA30
sub_815BA30: @ 815BA30
push {lr}
- ldr r0, _0815BA44 @ =gUnknown_203F444
+ ldr r0, _0815BA44 @ =gTeachyTV_StaticResources
ldrb r0, [r0, 0x5]
cmp r0, 0x4
bne _0815BA48
@@ -1845,7 +1845,7 @@ sub_815BA30: @ 815BA30
bl sub_810B108
b _0815BA4E
.align 2, 0
-_0815BA44: .4byte gUnknown_203F444
+_0815BA44: .4byte gTeachyTV_StaticResources
_0815BA48:
movs r0, 0x9
bl sub_810B108
@@ -1871,7 +1871,7 @@ sub_815BA54: @ 815BA54
cmp r0, 0
bne _0815BA86
ldr r1, _0815BA94 @ =gUnknown_8479390
- ldr r0, _0815BA98 @ =gUnknown_203F444
+ ldr r0, _0815BA98 @ =gTeachyTV_StaticResources
ldrb r0, [r0, 0x5]
adds r0, r1
ldrb r0, [r0]
@@ -1889,7 +1889,7 @@ _0815BA86:
_0815BA8C: .4byte gTasks+0x8
_0815BA90: .4byte gPaletteFade
_0815BA94: .4byte gUnknown_8479390
-_0815BA98: .4byte gUnknown_203F444
+_0815BA98: .4byte gTeachyTV_StaticResources
_0815BA9C: .4byte sub_815B4EC
thumb_func_end sub_815BA54
@@ -2155,7 +2155,7 @@ sub_815BC90: @ 815BC90
adds r5, r0, r1
bl sub_815B220
ldr r1, _0815BCD0 @ =gSpecialVar_0x8004
- ldr r4, _0815BCD4 @ =gUnknown_203F444
+ ldr r4, _0815BCD4 @ =gTeachyTV_StaticResources
ldrb r0, [r4, 0x5]
strh r0, [r1]
ldr r1, _0815BCD8 @ =gMain
@@ -2173,7 +2173,7 @@ sub_815BC90: @ 815BC90
.align 2, 0
_0815BCCC: .4byte gTasks+0x8
_0815BCD0: .4byte gSpecialVar_0x8004
-_0815BCD4: .4byte gUnknown_203F444
+_0815BCD4: .4byte gTeachyTV_StaticResources
_0815BCD8: .4byte gMain
_0815BCDC: .4byte sub_815BD58
_0815BCE0:
@@ -2257,7 +2257,7 @@ _0815BD70:
lsls r0, 1
bl PlayNewMapMusic
_0815BD78:
- bl sub_815ABFC
+ bl CB2_ReturnToTeachyTV
pop {r0}
bx r0
thumb_func_end sub_815BD58
diff --git a/asm/tm_case.s b/asm/tm_case.s
deleted file mode 100644
index ac58fa0a2..000000000
--- a/asm/tm_case.s
+++ /dev/null
@@ -1,3999 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_81317F8
-sub_81317F8: @ 81317F8
- push {r4-r7,lr}
- adds r7, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r2, 24
- lsrs r6, r2, 24
- bl sub_8131A8C
- ldr r4, _08131854 @ =gUnknown_203B118
- movs r0, 0x1C
- bl Alloc
- str r0, [r4]
- movs r1, 0
- str r1, [r0]
- movs r1, 0xFF
- strb r1, [r0, 0x8]
- ldr r1, [r4]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x7]
- cmp r5, 0x5
- beq _0813182A
- ldr r0, _08131858 @ =gUnknown_203B10C
- strb r5, [r0, 0x4]
-_0813182A:
- cmp r7, 0
- beq _08131832
- ldr r0, _08131858 @ =gUnknown_203B10C
- str r7, [r0]
-_08131832:
- cmp r6, 0xFF
- beq _0813183A
- ldr r0, _08131858 @ =gUnknown_203B10C
- strb r6, [r0, 0x5]
-_0813183A:
- ldr r2, _0813185C @ =gTextFlags
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08131860 @ =sub_8131894
- bl SetMainCallback2
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08131854: .4byte gUnknown_203B118
-_08131858: .4byte gUnknown_203B10C
-_0813185C: .4byte gTextFlags
-_08131860: .4byte sub_8131894
- thumb_func_end sub_81317F8
-
- thumb_func_start sub_8131864
-sub_8131864: @ 8131864
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl do_scheduled_bg_tilemap_copies_to_vram
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8131864
-
- thumb_func_start sub_8131880
-sub_8131880: @ 8131880
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8131880
-
- thumb_func_start sub_8131894
-sub_8131894: @ 8131894
- push {lr}
-_08131896:
- bl sub_80BF72C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081318BA
- bl sub_81318C0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081318BA
- bl sub_80BF708
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08131896
-_081318BA:
- pop {r0}
- bx r0
- thumb_func_end sub_8131894
-
- thumb_func_start sub_81318C0
-sub_81318C0: @ 81318C0
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _081318E0 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x12
- bls _081318D4
- b _08131A68
-_081318D4:
- lsls r0, 2
- ldr r1, _081318E4 @ =_081318E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081318E0: .4byte gMain
-_081318E4: .4byte _081318E8
- .align 2, 0
-_081318E8:
- .4byte _08131934
- .4byte _0813193E
- .4byte _08131944
- .4byte _0813194A
- .4byte _08131950
- .4byte _08131956
- .4byte _0813195C
- .4byte _08131970
- .4byte _08131976
- .4byte _08131984
- .4byte _08131990
- .4byte _0813199E
- .4byte _081319A4
- .4byte _081319AE
- .4byte _081319B4
- .4byte _08131A04
- .4byte _08131A0A
- .4byte _08131A34
- .4byte _08131A42
-_08131934:
- bl sub_80BF768
- bl clear_scheduled_bg_copies_to_vram
- b _08131A52
-_0813193E:
- bl ScanlineEffect_Stop
- b _08131A52
-_08131944:
- bl FreeAllSpritePalettes
- b _08131A52
-_0813194A:
- bl ResetPaletteFade
- b _08131A52
-_08131950:
- bl ResetSpriteData
- b _08131A52
-_08131956:
- bl ResetTasks
- b _08131A52
-_0813195C:
- bl sub_8131AB8
- ldr r0, _0813196C @ =gUnknown_203B118
- ldr r1, [r0]
- movs r0, 0
- strh r0, [r1, 0x12]
- b _08131A52
- .align 2, 0
-_0813196C: .4byte gUnknown_203B118
-_08131970:
- bl sub_8133244
- b _08131A52
-_08131976:
- bl sub_8131B20
- lsls r0, 24
- cmp r0, 0
- bne _08131982
- b _08131A80
-_08131982:
- b _08131A52
-_08131984:
- ldr r0, _0813198C @ =gUnknown_20398A4
- bl sub_809A5E4
- b _08131A52
- .align 2, 0
-_0813198C: .4byte gUnknown_20398A4
-_08131990:
- bl sub_81320BC
- bl sub_8132120
- bl sub_8132170
- b _08131A52
-_0813199E:
- bl sub_8133404
- b _08131A52
-_081319A4:
- bl sub_8131C10
- bl sub_8131C50
- b _08131A52
-_081319AE:
- bl sub_81333C4
- b _08131A52
-_081319B4:
- ldr r0, _081319C0 @ =gUnknown_203B10C
- ldrb r0, [r0, 0x4]
- cmp r0, 0x4
- bne _081319C8
- ldr r0, _081319C4 @ =sub_8132F20
- b _081319CA
- .align 2, 0
-_081319C0: .4byte gUnknown_203B10C
-_081319C4: .4byte sub_8132F20
-_081319C8:
- ldr r0, _081319F4 @ =sub_81322D4
-_081319CA:
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _081319F8 @ =gUnknown_3005E70
- ldr r2, _081319FC @ =gUnknown_203B10C
- ldrh r1, [r2, 0xA]
- ldrh r2, [r2, 0x8]
- bl ListMenuInit
- ldr r2, _08131A00 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x8]
- b _08131A52
- .align 2, 0
-_081319F4: .4byte sub_81322D4
-_081319F8: .4byte gUnknown_3005E70
-_081319FC: .4byte gUnknown_203B10C
-_08131A00: .4byte gTasks
-_08131A04:
- bl sub_8132018
- b _08131A52
-_08131A0A:
- ldr r0, _08131A2C @ =gUnknown_203B10C
- ldrh r1, [r0, 0x8]
- ldrh r0, [r0, 0xA]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl sub_813368C
- ldr r1, _08131A30 @ =gUnknown_203B118
- ldr r1, [r1]
- strb r0, [r1, 0x4]
- b _08131A52
- .align 2, 0
-_08131A2C: .4byte gUnknown_203B10C
-_08131A30: .4byte gUnknown_203B118
-_08131A34:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- b _08131A52
-_08131A42:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_08131A52:
- ldr r1, _08131A64 @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08131A80
- .align 2, 0
-_08131A64: .4byte gMain
-_08131A68:
- ldr r0, _08131A78 @ =sub_8131880
- bl SetVBlankCallback
- ldr r0, _08131A7C @ =sub_8131864
- bl SetMainCallback2
- movs r0, 0x1
- b _08131A82
- .align 2, 0
-_08131A78: .4byte sub_8131880
-_08131A7C: .4byte sub_8131864
-_08131A80:
- movs r0, 0
-_08131A82:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81318C0
-
- thumb_func_start sub_8131A8C
-sub_8131A8C: @ 8131A8C
- ldr r0, _08131AA4 @ =gUnknown_203B118
- movs r1, 0
- str r1, [r0]
- ldr r0, _08131AA8 @ =gUnknown_203B120
- str r1, [r0]
- ldr r0, _08131AAC @ =gUnknown_203B124
- str r1, [r0]
- ldr r0, _08131AB0 @ =gUnknown_203B128
- str r1, [r0]
- ldr r0, _08131AB4 @ =gUnknown_203B12C
- str r1, [r0]
- bx lr
- .align 2, 0
-_08131AA4: .4byte gUnknown_203B118
-_08131AA8: .4byte gUnknown_203B120
-_08131AAC: .4byte gUnknown_203B124
-_08131AB0: .4byte gUnknown_203B128
-_08131AB4: .4byte gUnknown_203B12C
- thumb_func_end sub_8131A8C
-
- thumb_func_start sub_8131AB8
-sub_8131AB8: @ 8131AB8
- push {r4,lr}
- bl sub_80BF7C8
- ldr r4, _08131B18 @ =gUnknown_203B120
- movs r0, 0x80
- lsls r0, 4
- bl AllocZeroed
- str r0, [r4]
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _08131B1C @ =gUnknown_8463134
- movs r0, 0
- movs r2, 0x3
- bl InitBgsFromTemplates
- ldr r1, [r4]
- movs r0, 0x2
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08131B18: .4byte gUnknown_203B120
-_08131B1C: .4byte gUnknown_8463134
- thumb_func_end sub_8131AB8
-
- thumb_func_start sub_8131B20
-sub_8131B20: @ 8131B20
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _08131B3C @ =gUnknown_203B118
- ldr r0, [r4]
- movs r1, 0x12
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- bhi _08131BF8
- lsls r0, 2
- ldr r1, _08131B40 @ =_08131B44
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08131B3C: .4byte gUnknown_203B118
-_08131B40: .4byte _08131B44
- .align 2, 0
-_08131B44:
- .4byte _08131B58
- .4byte _08131B74
- .4byte _08131B94
- .4byte _08131BAC
- .4byte _08131BDC
-_08131B58:
- bl reset_temp_tile_data_buffers
- ldr r1, _08131B70 @ =gUnknown_8E845D8
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- b _08131BE2
- .align 2, 0
-_08131B70: .4byte gUnknown_8E845D8
-_08131B74:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08131C06
- ldr r0, _08131B8C @ =gUnknown_8E84A24
- ldr r1, _08131B90 @ =gUnknown_203B120
- ldr r1, [r1]
- bl LZDecompressWram
- b _08131BE2
- .align 2, 0
-_08131B8C: .4byte gUnknown_8E84A24
-_08131B90: .4byte gUnknown_203B120
-_08131B94:
- ldr r4, _08131BA8 @ =gUnknown_8E84B70
- movs r0, 0x1
- bl GetBgTilemapBuffer
- adds r1, r0, 0
- adds r0, r4, 0
- bl LZDecompressWram
- b _08131BE2
- .align 2, 0
-_08131BA8: .4byte gUnknown_8E84B70
-_08131BAC:
- ldr r0, _08131BC4 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08131BCC
- ldr r0, _08131BC8 @ =gUnknown_8E84CB0
- movs r1, 0
- movs r2, 0x80
- bl LoadCompressedPalette
- b _08131BE2
- .align 2, 0
-_08131BC4: .4byte gSaveBlock2Ptr
-_08131BC8: .4byte gUnknown_8E84CB0
-_08131BCC:
- ldr r0, _08131BD8 @ =gUnknown_8E84D20
- movs r1, 0
- movs r2, 0x80
- bl LoadCompressedPalette
- b _08131BE2
- .align 2, 0
-_08131BD8: .4byte gUnknown_8E84D20
-_08131BDC:
- ldr r0, _08131BF0 @ =gUnknown_8463218
- bl LoadCompressedObjectPic
-_08131BE2:
- ldr r0, _08131BF4 @ =gUnknown_203B118
- ldr r1, [r0]
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- strh r0, [r1, 0x12]
- b _08131C06
- .align 2, 0
-_08131BF0: .4byte gUnknown_8463218
-_08131BF4: .4byte gUnknown_203B118
-_08131BF8:
- bl sub_81338A8
- ldr r1, [r4]
- movs r0, 0
- strh r0, [r1, 0x12]
- movs r0, 0x1
- b _08131C08
-_08131C06:
- movs r0, 0
-_08131C08:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8131B20
-
- thumb_func_start sub_8131C10
-sub_8131C10: @ 8131C10
- push {r4,lr}
- ldr r0, _08131C40 @ =gUnknown_20398A4
- ldr r4, _08131C44 @ =gUnknown_203B124
- ldrb r0, [r0, 0x4]
- adds r0, 0x1
- lsls r0, 3
- bl Alloc
- str r0, [r4]
- ldr r4, _08131C48 @ =gUnknown_203B128
- ldr r0, _08131C4C @ =gUnknown_203B118
- ldr r0, [r0]
- ldrb r1, [r0, 0x6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r1
- bl Alloc
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08131C40: .4byte gUnknown_20398A4
-_08131C44: .4byte gUnknown_203B124
-_08131C48: .4byte gUnknown_203B128
-_08131C4C: .4byte gUnknown_203B118
- thumb_func_end sub_8131C10
-
- thumb_func_start sub_8131C50
-sub_8131C50: @ 8131C50
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08131D28 @ =gUnknown_20398A4
- mov r8, r0
- movs r6, 0
- ldr r0, _08131D2C @ =gUnknown_203B118
- ldr r0, [r0]
- ldrb r0, [r0, 0x6]
- cmp r6, r0
- bcs _08131CA0
- ldr r7, _08131D30 @ =gUnknown_203B128
-_08131C68:
- lsls r5, r6, 3
- subs r4, r5, r6
- lsls r4, 2
- adds r4, r6
- ldr r0, [r7]
- adds r0, r4
- mov r1, r8
- ldr r2, [r1]
- lsls r1, r6, 2
- adds r1, r2
- ldrh r1, [r1]
- bl sub_8131D48
- ldr r0, _08131D34 @ =gUnknown_203B124
- ldr r0, [r0]
- adds r5, r0
- ldr r0, [r7]
- adds r0, r4
- str r0, [r5]
- str r6, [r5, 0x4]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _08131D2C @ =gUnknown_203B118
- ldr r0, [r0]
- ldrb r0, [r0, 0x6]
- cmp r6, r0
- bcc _08131C68
-_08131CA0:
- ldr r0, _08131D34 @ =gUnknown_203B124
- ldr r3, [r0]
- lsls r0, r6, 3
- adds r0, r3
- ldr r1, _08131D38 @ =gUnknown_84166DB
- str r1, [r0]
- movs r1, 0x2
- negs r1, r1
- str r1, [r0, 0x4]
- ldr r2, _08131D3C @ =gUnknown_3005E70
- str r3, [r2]
- ldr r0, _08131D2C @ =gUnknown_203B118
- ldr r3, [r0]
- ldrb r0, [r3, 0x6]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r2, 0xC]
- strb r1, [r2, 0x10]
- strb r1, [r2, 0x11]
- movs r0, 0x8
- strb r0, [r2, 0x12]
- strb r1, [r2, 0x13]
- ldrb r0, [r2, 0x16]
- movs r4, 0x8
- negs r4, r4
- ands r4, r0
- movs r0, 0x39
- negs r0, r0
- ands r4, r0
- movs r0, 0x10
- orrs r4, r0
- strb r4, [r2, 0x16]
- ldrb r1, [r2, 0x14]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r5, 0x2
- orrs r0, r5
- strb r0, [r2, 0x14]
- ldrb r1, [r3, 0x5]
- strh r1, [r2, 0xE]
- ldrb r1, [r2, 0x17]
- movs r3, 0x40
- negs r3, r3
- ands r3, r1
- orrs r3, r5
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2, 0x14]
- movs r0, 0x30
- strb r0, [r2, 0x15]
- ldr r0, _08131D40 @ =sub_8131E18
- str r0, [r2, 0x4]
- ldr r0, _08131D44 @ =sub_8131E68
- str r0, [r2, 0x8]
- movs r0, 0x3F
- ands r3, r0
- strb r3, [r2, 0x17]
- ands r4, r0
- strb r4, [r2, 0x16]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08131D28: .4byte gUnknown_20398A4
-_08131D2C: .4byte gUnknown_203B118
-_08131D30: .4byte gUnknown_203B128
-_08131D34: .4byte gUnknown_203B124
-_08131D38: .4byte gUnknown_84166DB
-_08131D3C: .4byte gUnknown_3005E70
-_08131D40: .4byte sub_8131E18
-_08131D44: .4byte sub_8131E68
- thumb_func_end sub_8131C50
-
- thumb_func_start sub_8131D48
-sub_8131D48: @ 8131D48
- push {r4-r7,lr}
- adds r7, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r5, _08131D8C @ =gStringVar4
- ldr r1, _08131D90 @ =gUnknown_84166FF
- adds r0, r5, 0
- bl StringCopy
- movs r0, 0xA9
- lsls r0, 1
- cmp r6, r0
- bls _08131DA4
- ldr r1, _08131D94 @ =gUnknown_8463178
- adds r0, r5, 0
- bl StringAppend
- ldr r1, _08131D98 @ =gUnknown_8416226
- adds r0, r5, 0
- bl StringAppend
- ldr r4, _08131D9C @ =gStringVar1
- ldr r0, _08131DA0 @ =0xfffffeae
- adds r1, r6, r0
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringAppend
- b _08131DC4
- .align 2, 0
-_08131D8C: .4byte gStringVar4
-_08131D90: .4byte gUnknown_84166FF
-_08131D94: .4byte gUnknown_8463178
-_08131D98: .4byte gUnknown_8416226
-_08131D9C: .4byte gStringVar1
-_08131DA0: .4byte 0xfffffeae
-_08131DA4:
- ldr r1, _08131DFC @ =gUnknown_8416226
- adds r0, r5, 0
- bl StringAppend
- ldr r4, _08131E00 @ =gStringVar1
- ldr r0, _08131E04 @ =0xfffffee0
- adds r1, r6, r0
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringAppend
-_08131DC4:
- ldr r4, _08131E08 @ =gStringVar4
- ldr r1, _08131E0C @ =gUnknown_846317C
- adds r0, r4, 0
- bl StringAppend
- ldr r1, _08131E10 @ =gUnknown_8416703
- adds r0, r4, 0
- bl StringAppend
- adds r0, r6, 0
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xD
- muls r1, r0
- ldr r0, _08131E14 @ =gMoveNames
- adds r1, r0
- adds r0, r4, 0
- bl StringAppend
- adds r0, r7, 0
- adds r1, r4, 0
- bl StringCopy
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08131DFC: .4byte gUnknown_8416226
-_08131E00: .4byte gStringVar1
-_08131E04: .4byte 0xfffffee0
-_08131E08: .4byte gStringVar4
-_08131E0C: .4byte gUnknown_846317C
-_08131E10: .4byte gUnknown_8416703
-_08131E14: .4byte gMoveNames
- thumb_func_end sub_8131D48
-
- thumb_func_start sub_8131E18
-sub_8131E18: @ 8131E18
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- bne _08131E2C
- movs r5, 0
- b _08131E3A
-_08131E2C:
- lsls r1, r4, 16
- lsrs r1, 16
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r5, r0, 16
-_08131E3A:
- cmp r6, 0x1
- beq _08131E50
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08131E64 @ =gUnknown_203B118
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- adds r1, r5, 0
- bl sub_81337E4
-_08131E50:
- adds r0, r4, 0
- bl sub_8131F0C
- adds r0, r5, 0
- bl sub_8133444
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08131E64: .4byte gUnknown_203B118
- thumb_func_end sub_8131E18
-
- thumb_func_start sub_8131E68
-sub_8131E68: @ 8131E68
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- mov r7, r9
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- mov r4, r8
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _08131EFE
- lsls r0, r1, 16
- lsrs r6, r0, 16
- movs r0, 0x4
- adds r1, r6, 0
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_unique
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08131EF4
- ldr r4, _08131EE8 @ =gStringVar1
- movs r0, 0x4
- adds r1, r6, 0
- bl sub_809A7B4
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r4, _08131EEC @ =gStringVar4
- ldr r1, _08131EF0 @ =gUnknown_84162B9
- adds r0, r4, 0
- bl StringExpandPlaceholders
- mov r0, r8
- str r0, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0xFF
- str r0, [sp, 0xC]
- movs r0, 0x1
- str r0, [sp, 0x10]
- mov r0, r9
- movs r1, 0
- adds r2, r4, 0
- movs r3, 0x7E
- bl sub_81332EC
- b _08131EFE
- .align 2, 0
-_08131EE8: .4byte gStringVar1
-_08131EEC: .4byte gStringVar4
-_08131EF0: .4byte gUnknown_84162B9
-_08131EF4:
- adds r0, r7, 0
- movs r1, 0x8
- adds r2, r4, 0
- bl sub_81335B0
-_08131EFE:
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8131E68
-
- thumb_func_start sub_8131F0C
-sub_8131F0C: @ 8131F0C
- push {r4,lr}
- sub sp, 0x14
- adds r1, r0, 0
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _08131F30
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl ItemId_GetDescription
- adds r4, r0, 0
- b _08131F32
-_08131F30:
- ldr r4, _08131F60 @ =gUnknown_84166E1
-_08131F32:
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x3
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x1
- movs r1, 0x2
- adds r2, r4, 0
- movs r3, 0x2
- bl sub_81332EC
- add sp, 0x14
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08131F60: .4byte gUnknown_84166E1
- thumb_func_end sub_8131F0C
-
- thumb_func_start sub_8131F64
-sub_8131F64: @ 8131F64
- push {lr}
- sub sp, 0x8
- movs r1, 0x8
- str r1, [sp]
- lsls r0, 1
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0xC
- movs r3, 0x1E
- bl sub_80F6B08
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_8131F64
-
- thumb_func_start sub_8131F90
-sub_8131F90: @ 8131F90
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- bl ListMenuGetYCoordForPrintingArrowCursor
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl sub_8131FB0
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8131F90
-
- thumb_func_start sub_8131FB0
-sub_8131FB0: @ 8131FB0
- push {r4,r5,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0xFF
- bne _08131FF4
- movs r0, 0x2
- movs r1, 0
- bl GetFontAttribute
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- lsls r0, 24
- lsrs r0, 24
- str r4, [sp]
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- adds r3, r5, 0
- bl FillWindowPixelRect
- movs r0, 0
- movs r1, 0x2
- bl CopyWindowToVram
- b _0813200A
-_08131FF4:
- ldr r2, _08132014 @ =gFameCheckerText_ListMenuCursor
- str r5, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- movs r1, 0x2
- movs r3, 0
- bl sub_81332EC
-_0813200A:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132014: .4byte gFameCheckerText_ListMenuCursor
- thumb_func_end sub_8131FB0
-
- thumb_func_start sub_8132018
-sub_8132018: @ 8132018
- push {r4,lr}
- sub sp, 0x10
- ldr r4, _0813204C @ =gUnknown_203B118
- ldr r1, [r4]
- ldrb r0, [r1, 0x6]
- ldrb r1, [r1, 0x5]
- subs r0, r1
- adds r0, 0x1
- str r0, [sp]
- movs r0, 0x6E
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- ldr r0, _08132050 @ =gUnknown_203B116
- str r0, [sp, 0xC]
- movs r0, 0x2
- movs r1, 0xA0
- movs r2, 0x8
- movs r3, 0x58
- bl AddScrollIndicatorArrowPairParametrized
- ldr r1, [r4]
- strb r0, [r1, 0x8]
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813204C: .4byte gUnknown_203B118
-_08132050: .4byte gUnknown_203B116
- thumb_func_end sub_8132018
-
- thumb_func_start sub_8132054
-sub_8132054: @ 8132054
- push {r4,lr}
- sub sp, 0x10
- ldr r4, _08132088 @ =gUnknown_203B118
- ldr r1, [r4]
- movs r0, 0x1
- strh r0, [r1, 0xA]
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0x6E
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- adds r1, 0xA
- str r1, [sp, 0xC]
- movs r0, 0x2
- movs r1, 0x98
- movs r2, 0x48
- movs r3, 0x68
- bl AddScrollIndicatorArrowPairParametrized
- ldr r1, [r4]
- strb r0, [r1, 0x8]
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08132088: .4byte gUnknown_203B118
- thumb_func_end sub_8132054
-
- thumb_func_start sub_813208C
-sub_813208C: @ 813208C
- push {r4,lr}
- ldr r4, _081320A8 @ =gUnknown_203B118
- ldr r1, [r4]
- ldrb r0, [r1, 0x8]
- cmp r0, 0xFF
- beq _081320A2
- bl RemoveScrollIndicatorArrowPair
- ldr r1, [r4]
- movs r0, 0xFF
- strb r0, [r1, 0x8]
-_081320A2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081320A8: .4byte gUnknown_203B118
- thumb_func_end sub_813208C
-
- thumb_func_start sub_81320AC
-sub_81320AC: @ 81320AC
- ldr r1, _081320B8 @ =gUnknown_203B10C
- movs r0, 0
- strh r0, [r1, 0x8]
- strh r0, [r1, 0xA]
- bx lr
- .align 2, 0
-_081320B8: .4byte gUnknown_203B10C
- thumb_func_end sub_81320AC
-
- thumb_func_start sub_81320BC
-sub_81320BC: @ 81320BC
- push {r4,lr}
- ldr r4, _08132118 @ =gUnknown_20398A4
- ldr r0, [r4]
- ldrb r1, [r4, 0x4]
- bl sub_809A584
- ldr r3, _0813211C @ =gUnknown_203B118
- ldr r1, [r3]
- movs r0, 0
- strb r0, [r1, 0x6]
- movs r2, 0
- ldrb r0, [r4, 0x4]
- cmp r2, r0
- bcs _08132100
- ldr r0, [r4]
- ldrh r0, [r0]
- cmp r0, 0
- beq _08132100
-_081320E0:
- ldr r0, [r3]
- ldrb r1, [r0, 0x6]
- adds r1, 0x1
- strb r1, [r0, 0x6]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrb r0, [r4, 0x4]
- cmp r2, r0
- bcs _08132100
- ldr r0, [r4]
- lsls r1, r2, 2
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _081320E0
-_08132100:
- ldr r0, _0813211C @ =gUnknown_203B118
- ldr r1, [r0]
- ldrb r0, [r1, 0x6]
- adds r0, 0x1
- cmp r0, 0x5
- ble _0813210E
- movs r0, 0x5
-_0813210E:
- strb r0, [r1, 0x5]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08132118: .4byte gUnknown_20398A4
-_0813211C: .4byte gUnknown_203B118
- thumb_func_end sub_81320BC
-
- thumb_func_start sub_8132120
-sub_8132120: @ 8132120
- push {r4,r5,lr}
- ldr r0, _08132160 @ =gUnknown_203B10C
- ldrh r1, [r0, 0xA]
- adds r4, r0, 0
- ldr r5, _08132164 @ =gUnknown_203B118
- cmp r1, 0
- beq _08132144
- ldrh r0, [r4, 0xA]
- ldr r1, [r5]
- ldrb r3, [r1, 0x5]
- adds r0, r3
- ldrb r2, [r1, 0x6]
- adds r1, r2, 0x1
- cmp r0, r1
- ble _08132144
- subs r0, r3, 0x1
- subs r0, r2, r0
- strh r0, [r4, 0xA]
-_08132144:
- adds r3, r4, 0
- ldrh r0, [r3, 0xA]
- ldrh r1, [r3, 0x8]
- adds r0, r1
- ldr r1, [r5]
- ldrb r1, [r1, 0x6]
- adds r2, r1, 0x1
- cmp r0, r2
- blt _0813216A
- cmp r2, 0x1
- bgt _08132168
- movs r0, 0
- strh r0, [r3, 0x8]
- b _0813216A
- .align 2, 0
-_08132160: .4byte gUnknown_203B10C
-_08132164: .4byte gUnknown_203B118
-_08132168:
- strh r1, [r4, 0x8]
-_0813216A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8132120
-
- thumb_func_start sub_8132170
-sub_8132170: @ 8132170
- push {r4-r6,lr}
- ldr r0, _081321CC @ =gUnknown_203B10C
- ldrh r1, [r0, 0x8]
- adds r6, r0, 0
- cmp r1, 0x3
- bls _081321C4
- movs r4, 0
- ldrh r0, [r6, 0x8]
- subs r0, 0x3
- cmp r4, r0
- bgt _081321C4
- ldrh r1, [r6, 0xA]
- ldr r5, _081321D0 @ =gUnknown_203B118
- ldr r2, [r5]
- ldrb r0, [r2, 0x5]
- adds r1, r0
- ldrb r0, [r2, 0x6]
- adds r0, 0x1
- cmp r1, r0
- beq _081321C4
- adds r3, r6, 0
-_0813219A:
- ldrh r0, [r3, 0x8]
- subs r0, 0x1
- strh r0, [r3, 0x8]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrh r0, [r3, 0x8]
- subs r0, 0x3
- cmp r4, r0
- bgt _081321C4
- ldrh r1, [r6, 0xA]
- ldr r2, [r5]
- ldrb r0, [r2, 0x5]
- adds r1, r0
- ldrb r0, [r2, 0x6]
- adds r0, 0x1
- cmp r1, r0
- bne _0813219A
-_081321C4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081321CC: .4byte gUnknown_203B10C
-_081321D0: .4byte gUnknown_203B118
- thumb_func_end sub_8132170
-
- thumb_func_start sub_81321D4
-sub_81321D4: @ 81321D4
- push {lr}
- ldr r0, _0813221C @ =gUnknown_203B118
- ldr r0, [r0]
- cmp r0, 0
- beq _081321E2
- bl Free
-_081321E2:
- ldr r0, _08132220 @ =gUnknown_203B120
- ldr r0, [r0]
- cmp r0, 0
- beq _081321EE
- bl Free
-_081321EE:
- ldr r0, _08132224 @ =gUnknown_203B124
- ldr r0, [r0]
- cmp r0, 0
- beq _081321FA
- bl Free
-_081321FA:
- ldr r0, _08132228 @ =gUnknown_203B128
- ldr r0, [r0]
- cmp r0, 0
- beq _08132206
- bl Free
-_08132206:
- ldr r0, _0813222C @ =gUnknown_203B12C
- ldr r0, [r0]
- cmp r0, 0
- beq _08132212
- bl Free
-_08132212:
- bl FreeAllWindowBuffers
- pop {r0}
- bx r0
- .align 2, 0
-_0813221C: .4byte gUnknown_203B118
-_08132220: .4byte gUnknown_203B120
-_08132224: .4byte gUnknown_203B124
-_08132228: .4byte gUnknown_203B128
-_0813222C: .4byte gUnknown_203B12C
- thumb_func_end sub_81321D4
-
- thumb_func_start sub_8132230
-sub_8132230: @ 8132230
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x2
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08132264 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08132268 @ =sub_813226C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08132264: .4byte gTasks
-_08132268: .4byte sub_813226C
- thumb_func_end sub_8132230
-
- thumb_func_start sub_813226C
-sub_813226C: @ 813226C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _081322A4 @ =gTasks+0x8
- adds r2, r0, r1
- ldr r0, _081322A8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081322CC
- ldrb r0, [r2]
- ldr r4, _081322AC @ =gUnknown_203B116
- subs r2, r4, 0x2
- adds r1, r4, 0
- bl sub_810713C
- ldr r0, _081322B0 @ =gUnknown_203B118
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0
- beq _081322B4
- bl SetMainCallback2
- b _081322BE
- .align 2, 0
-_081322A4: .4byte gTasks+0x8
-_081322A8: .4byte gPaletteFade
-_081322AC: .4byte gUnknown_203B116
-_081322B0: .4byte gUnknown_203B118
-_081322B4:
- adds r0, r4, 0
- subs r0, 0xA
- ldr r0, [r0]
- bl SetMainCallback2
-_081322BE:
- bl sub_813208C
- bl sub_81321D4
- adds r0, r5, 0
- bl DestroyTask
-_081322CC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813226C
-
- thumb_func_start sub_81322D4
-sub_81322D4: @ 81322D4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _08132340 @ =gTasks+0x8
- adds r6, r0, r1
- ldr r0, _08132344 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0
- bne _081323C8
- bl sub_80BF72C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081323C8
- ldrb r0, [r6]
- bl ListMenuHandleInput
- adds r5, r0, 0
- ldrb r0, [r6]
- ldr r4, _08132348 @ =gUnknown_203B116
- subs r2, r4, 0x2
- adds r1, r4, 0
- bl get_coro_args_x18_x1A
- ldr r0, _0813234C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08132354
- adds r0, r4, 0
- subs r0, 0xA
- ldrb r0, [r0, 0x5]
- cmp r0, 0x1
- bne _08132354
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08132350 @ =gSpecialVar_ItemId
- mov r1, r8
- strh r1, [r0]
- b _08132370
- .align 2, 0
-_08132340: .4byte gTasks+0x8
-_08132344: .4byte gPaletteFade
-_08132348: .4byte gUnknown_203B116
-_0813234C: .4byte gMain
-_08132350: .4byte gSpecialVar_ItemId
-_08132354:
- movs r0, 0x2
- negs r0, r0
- cmp r5, r0
- beq _08132364
- adds r0, 0x1
- cmp r5, r0
- bne _0813237C
- b _081323C8
-_08132364:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08132378 @ =gSpecialVar_ItemId
- movs r0, 0
- strh r0, [r1]
-_08132370:
- adds r0, r7, 0
- bl sub_8132230
- b _081323C8
- .align 2, 0
-_08132378: .4byte gSpecialVar_ItemId
-_0813237C:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_8131F64
- bl sub_813208C
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8131F90
- strh r5, [r6, 0x2]
- lsls r4, r5, 16
- lsrs r4, 16
- movs r0, 0x4
- adds r1, r4, 0
- bl sub_809A7B4
- strh r0, [r6, 0x4]
- movs r0, 0x4
- adds r1, r4, 0
- bl sub_809A798
- ldr r1, _081323D4 @ =gSpecialVar_ItemId
- strh r0, [r1]
- ldr r0, _081323D8 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldr r2, _081323DC @ =gUnknown_8463140
- ldr r0, _081323E0 @ =gUnknown_203B10C
- ldrb r0, [r0, 0x4]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- str r0, [r1]
-_081323C8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081323D4: .4byte gSpecialVar_ItemId
-_081323D8: .4byte gTasks
-_081323DC: .4byte gUnknown_8463140
-_081323E0: .4byte gUnknown_203B10C
- thumb_func_end sub_81322D4
-
- thumb_func_start sub_81323E4
-sub_81323E4: @ 81323E4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_8131F64
- bl sub_8132018
- ldr r1, _0813240C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08132410 @ =sub_81322D4
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813240C: .4byte gTasks
-_08132410: .4byte sub_81322D4
- thumb_func_end sub_81323E4
-
- thumb_func_start sub_8132414
-sub_8132414: @ 8132414
- push {r4-r7,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x2
- bl sub_8133368
- bl sub_80BF708
- lsls r0, 24
- cmp r0, 0
- bne _08132454
- bl InUnionRoom
- cmp r0, 0x1
- beq _08132454
- ldr r4, _0813244C @ =gUnknown_203B118
- ldr r0, [r4]
- adds r0, 0x7
- movs r1, 0
- bl sub_8133630
- ldr r1, [r4]
- ldr r0, _08132450 @ =gUnknown_8463168
- str r0, [r1, 0xC]
- movs r0, 0x3
- b _08132468
- .align 2, 0
-_0813244C: .4byte gUnknown_203B118
-_08132450: .4byte gUnknown_8463168
-_08132454:
- ldr r4, _0813254C @ =gUnknown_203B118
- ldr r0, [r4]
- adds r0, 0x7
- movs r1, 0x1
- bl sub_8133630
- ldr r1, [r4]
- ldr r0, _08132550 @ =gUnknown_846316B
- str r0, [r1, 0xC]
- movs r0, 0x2
-_08132468:
- strb r0, [r1, 0x10]
- movs r0, 0x2
- movs r1, 0
- bl GetMenuCursorDimensionByFont
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _0813254C @ =gUnknown_203B118
- ldr r1, [r6]
- ldrb r2, [r1, 0x7]
- movs r5, 0
- str r5, [sp]
- str r0, [sp, 0x4]
- ldrb r0, [r1, 0x10]
- str r0, [sp, 0x8]
- ldr r0, _08132554 @ =gUnknown_8463150
- str r0, [sp, 0xC]
- ldr r0, [r1, 0xC]
- str r0, [sp, 0x10]
- adds r0, r2, 0
- movs r1, 0x2
- adds r2, r4, 0
- movs r3, 0x2
- bl AddItemMenuActionTextPrinters
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r6]
- ldrb r2, [r1, 0x7]
- str r0, [sp]
- ldrb r0, [r1, 0x10]
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- adds r0, r2, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl ProgramAndPlaceMenuCursorOnWindow
- movs r0, 0x80
- lsls r0, 1
- bl Alloc
- adds r4, r0, 0
- ldr r6, _08132558 @ =gSpecialVar_ItemId
- ldrh r1, [r6]
- bl sub_8131D48
- ldr r1, _0813255C @ =gUnknown_8416301
- adds r0, r4, 0
- bl StringAppend
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- str r5, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x2
- movs r1, 0x2
- adds r2, r4, 0
- movs r3, 0
- bl sub_81332EC
- adds r0, r4, 0
- bl Free
- ldrh r0, [r6]
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- beq _08132528
- movs r0, 0x2
- movs r1, 0
- movs r2, 0x2
- bl sub_81335B0
- movs r0, 0x2
- movs r1, 0x2
- bl CopyWindowToVram
-_08132528:
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- ldr r0, _08132560 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _08132564 @ =sub_8132568
- str r0, [r1]
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813254C: .4byte gUnknown_203B118
-_08132550: .4byte gUnknown_846316B
-_08132554: .4byte gUnknown_8463150
-_08132558: .4byte gSpecialVar_ItemId
-_0813255C: .4byte gUnknown_8416301
-_08132560: .4byte gTasks
-_08132564: .4byte sub_8132568
- thumb_func_end sub_8132414
-
- thumb_func_start sub_8132568
-sub_8132568: @ 8132568
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- bl sub_80BF72C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081325E0
- bl ProcessMenuInputNoWrapAround
- lsls r0, 24
- asrs r4, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _081325E0
- adds r0, 0x1
- cmp r4, r0
- bne _081325C0
- movs r0, 0x5
- bl PlaySE
- ldr r2, _081325B8 @ =gUnknown_8463150
- ldr r0, _081325BC @ =gUnknown_203B118
- ldr r1, [r0]
- ldrb r0, [r1, 0x10]
- ldr r1, [r1, 0xC]
- adds r0, r1
- subs r0, 0x1
- ldrb r0, [r0]
- lsls r0, 3
- adds r2, 0x4
- adds r0, r2
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- b _081325E0
- .align 2, 0
-_081325B8: .4byte gUnknown_8463150
-_081325BC: .4byte gUnknown_203B118
-_081325C0:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _081325E8 @ =gUnknown_8463150
- ldr r0, _081325EC @ =gUnknown_203B118
- ldr r0, [r0]
- ldr r0, [r0, 0xC]
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r6, 0
- bl _call_via_r1
-_081325E0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081325E8: .4byte gUnknown_8463150
-_081325EC: .4byte gUnknown_203B118
- thumb_func_end sub_8132568
-
- thumb_func_start sub_81325F0
-sub_81325F0: @ 81325F0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _08132634 @ =gUnknown_203B118
- ldr r0, [r5]
- adds r0, 0x7
- bl sub_8133664
- movs r0, 0x2
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x2
- bl ClearWindowTilemap
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- bl CalculatePlayerPartyCount
- lsls r0, 24
- cmp r0, 0
- bne _08132638
- adds r0, r4, 0
- bl sub_81326F8
- b _0813264A
- .align 2, 0
-_08132634: .4byte gUnknown_203B118
-_08132638:
- ldr r1, _08132650 @ =gUnknown_3005E98
- ldr r0, _08132654 @ =sub_8125B40
- str r0, [r1]
- ldr r1, [r5]
- ldr r0, _08132658 @ =sub_8124C8C
- str r0, [r1]
- adds r0, r4, 0
- bl sub_8132230
-_0813264A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132650: .4byte gUnknown_3005E98
-_08132654: .4byte sub_8125B40
-_08132658: .4byte sub_8124C8C
- thumb_func_end sub_81325F0
-
- thumb_func_start sub_813265C
-sub_813265C: @ 813265C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _081326D0 @ =gTasks+0x8
- adds r0, r1
- ldrh r1, [r0, 0x2]
- movs r0, 0x4
- bl sub_809A798
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r6, _081326D4 @ =gUnknown_203B118
- ldr r0, [r6]
- adds r0, 0x7
- bl sub_8133664
- movs r0, 0x2
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x2
- bl ClearWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0x5
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r4, 0
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- bne _081326EC
- bl CalculatePlayerPartyCount
- lsls r0, 24
- cmp r0, 0
- bne _081326D8
- adds r0, r5, 0
- bl sub_81326F8
- b _081326F2
- .align 2, 0
-_081326D0: .4byte gTasks+0x8
-_081326D4: .4byte gUnknown_203B118
-_081326D8:
- ldr r1, [r6]
- ldr r0, _081326E8 @ =sub_8126EDC
- str r0, [r1]
- adds r0, r5, 0
- bl sub_8132230
- b _081326F2
- .align 2, 0
-_081326E8: .4byte sub_8126EDC
-_081326EC:
- adds r0, r5, 0
- bl sub_8132714
-_081326F2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813265C
-
- thumb_func_start sub_81326F8
-sub_81326F8: @ 81326F8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813270C @ =gUnknown_841632A
- ldr r3, _08132710 @ =sub_8132758
- movs r1, 0x2
- bl sub_813337C
- pop {r0}
- bx r0
- .align 2, 0
-_0813270C: .4byte gUnknown_841632A
-_08132710: .4byte sub_8132758
- thumb_func_end sub_81326F8
-
- thumb_func_start sub_8132714
-sub_8132714: @ 8132714
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08132744 @ =gSpecialVar_ItemId
- ldrh r0, [r0]
- ldr r1, _08132748 @ =gStringVar1
- bl CopyItemName
- ldr r5, _0813274C @ =gStringVar4
- ldr r1, _08132750 @ =gUnknown_841635E
- adds r0, r5, 0
- bl StringExpandPlaceholders
- ldr r3, _08132754 @ =sub_8132758
- adds r0, r4, 0
- movs r1, 0x2
- adds r2, r5, 0
- bl sub_813337C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132744: .4byte gSpecialVar_ItemId
-_08132748: .4byte gStringVar1
-_0813274C: .4byte gStringVar4
-_08132750: .4byte gUnknown_841635E
-_08132754: .4byte sub_8132758
- thumb_func_end sub_8132714
-
- thumb_func_start sub_8132758
-sub_8132758: @ 8132758
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813277C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08132776
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_8132780
-_08132776:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813277C: .4byte gMain
- thumb_func_end sub_8132758
-
- thumb_func_start sub_8132780
-sub_8132780: @ 8132780
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r5, r6, 2
- adds r5, r6
- lsls r5, 3
- ldr r0, _081327F0 @ =gTasks+0x8
- adds r5, r0
- ldrb r0, [r5]
- ldr r4, _081327F4 @ =gUnknown_203B116
- subs r2, r4, 0x2
- adds r1, r4, 0
- bl sub_810713C
- ldr r0, _081327F8 @ =gUnknown_3005E70
- subs r4, 0xA
- ldrh r1, [r4, 0xA]
- ldrh r2, [r4, 0x8]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r1, 0x1
- bl sub_8131F90
- movs r0, 0x6
- movs r1, 0
- bl sub_810F260
- movs r0, 0x6
- bl ClearWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0x5
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r6, 0
- bl sub_81323E4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081327F0: .4byte gTasks+0x8
-_081327F4: .4byte gUnknown_203B116
-_081327F8: .4byte gUnknown_3005E70
- thumb_func_end sub_8132780
-
- thumb_func_start sub_81327FC
-sub_81327FC: @ 81327FC
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _08132860 @ =gTasks+0x8
- adds r4, r0
- ldr r0, _08132864 @ =gUnknown_203B118
- ldr r0, [r0]
- adds r0, 0x7
- bl sub_8133664
- movs r0, 0x2
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x2
- bl ClearWindowTilemap
- movs r0, 0
- bl PutWindowTilemap
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8131F90
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0x5
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r5, 0
- bl sub_81323E4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132860: .4byte gTasks+0x8
-_08132864: .4byte gUnknown_203B118
- thumb_func_end sub_81327FC
-
- thumb_func_start sub_8132868
-sub_8132868: @ 8132868
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _081328A0 @ =gTasks+0x8
- adds r0, r1
- ldrh r1, [r0, 0x2]
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- bne _081328AC
- ldr r0, _081328A4 @ =gUnknown_203B118
- ldr r1, [r0]
- ldr r0, _081328A8 @ =c2_8123744
- str r0, [r1]
- adds r0, r4, 0
- bl sub_8132230
- b _081328B2
- .align 2, 0
-_081328A0: .4byte gTasks+0x8
-_081328A4: .4byte gUnknown_203B118
-_081328A8: .4byte c2_8123744
-_081328AC:
- adds r0, r4, 0
- bl sub_8132714
-_081328B2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8132868
-
- thumb_func_start sub_81328B8
-sub_81328B8: @ 81328B8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _081328F0 @ =gTasks+0x8
- adds r0, r1
- ldrh r1, [r0, 0x2]
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- bne _081328FC
- ldr r0, _081328F4 @ =gUnknown_203B118
- ldr r1, [r0]
- ldr r0, _081328F8 @ =sub_808CE60
- str r0, [r1]
- adds r0, r4, 0
- bl sub_8132230
- b _08132902
- .align 2, 0
-_081328F0: .4byte gTasks+0x8
-_081328F4: .4byte gUnknown_203B118
-_081328F8: .4byte sub_808CE60
-_081328FC:
- adds r0, r4, 0
- bl sub_8132714
-_08132902:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81328B8
-
- thumb_func_start sub_8132908
-sub_8132908: @ 8132908
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08132950 @ =gTasks+0x8
- adds r4, r0, r1
- ldr r6, _08132954 @ =gSpecialVar_ItemId
- ldrh r0, [r6]
- bl itemid_get_market_price
- lsls r0, 16
- cmp r0, 0
- bne _08132968
- ldrh r0, [r6]
- ldr r1, _08132958 @ =gStringVar1
- bl CopyItemName
- ldr r4, _0813295C @ =gStringVar4
- ldr r1, _08132960 @ =gUnknown_84168F1
- adds r0, r4, 0
- bl StringExpandPlaceholders
- bl sub_80BF8E4
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08132964 @ =sub_8132780
- adds r0, r5, 0
- adds r2, r4, 0
- bl sub_813337C
- b _081329AE
- .align 2, 0
-_08132950: .4byte gTasks+0x8
-_08132954: .4byte gSpecialVar_ItemId
-_08132958: .4byte gStringVar1
-_0813295C: .4byte gStringVar4
-_08132960: .4byte gUnknown_84168F1
-_08132964: .4byte sub_8132780
-_08132968:
- movs r0, 0x1
- strh r0, [r4, 0x10]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _08132980
- bl sub_81335E0
- adds r0, r5, 0
- bl sub_81329C4
- b _081329AE
-_08132980:
- cmp r0, 0x63
- ble _08132988
- movs r0, 0x63
- strh r0, [r4, 0x4]
-_08132988:
- ldrh r0, [r6]
- ldr r1, _081329B4 @ =gStringVar1
- bl CopyItemName
- ldr r4, _081329B8 @ =gStringVar4
- ldr r1, _081329BC @ =gUnknown_8416911
- adds r0, r4, 0
- bl StringExpandPlaceholders
- bl sub_80BF8E4
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _081329C0 @ =sub_8132AAC
- adds r0, r7, 0
- adds r2, r4, 0
- bl sub_813337C
-_081329AE:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081329B4: .4byte gStringVar1
-_081329B8: .4byte gStringVar4
-_081329BC: .4byte gUnknown_8416911
-_081329C0: .4byte sub_8132AAC
- thumb_func_end sub_8132908
-
- thumb_func_start sub_81329C4
-sub_81329C4: @ 81329C4
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _08132A20 @ =gTasks+0x8
- adds r4, r0
- ldr r6, _08132A24 @ =gStringVar3
- ldrh r1, [r4, 0x2]
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- muls r1, r0
- adds r0, r6, 0
- movs r2, 0
- movs r3, 0x6
- bl ConvertIntToDecimalStringN
- ldr r4, _08132A28 @ =gStringVar4
- ldr r1, _08132A2C @ =gUnknown_8416936
- adds r0, r4, 0
- bl StringExpandPlaceholders
- bl sub_80BF8E4
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08132A30 @ =sub_8132A34
- adds r0, r5, 0
- adds r2, r4, 0
- bl sub_813337C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08132A20: .4byte gTasks+0x8
-_08132A24: .4byte gStringVar3
-_08132A28: .4byte gStringVar4
-_08132A2C: .4byte gUnknown_8416936
-_08132A30: .4byte sub_8132A34
- thumb_func_end sub_81329C4
-
- thumb_func_start sub_8132A34
-sub_8132A34: @ 8132A34
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08132A44 @ =gUnknown_8463170
- bl sub_8133604
- pop {r0}
- bx r0
- .align 2, 0
-_08132A44: .4byte gUnknown_8463170
- thumb_func_end sub_8132A34
-
- thumb_func_start sub_8132A48
-sub_8132A48: @ 8132A48
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _08132AA8 @ =gTasks+0x8
- adds r4, r0
- movs r0, 0x8
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x6
- movs r1, 0
- bl sub_810F260
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x3
- bl PutWindowTilemap
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0x5
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8131F90
- adds r0, r5, 0
- bl sub_81323E4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132AA8: .4byte gTasks+0x8
- thumb_func_end sub_8132A48
-
- thumb_func_start sub_8132AAC
-sub_8132AAC: @ 8132AAC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r6, _08132B48 @ =gTasks+0x8
- adds r0, r4, r6
- mov r8, r0
- movs r0, 0x7
- bl sub_8133354
- ldr r0, _08132B4C @ =gStringVar1
- movs r1, 0x1
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r5, _08132B50 @ =gStringVar4
- ldr r1, _08132B54 @ =gUnknown_84162B9
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0xA
- str r0, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- movs r0, 0x7
- movs r1, 0
- adds r2, r5, 0
- movs r3, 0x4
- bl sub_81332EC
- mov r2, r8
- ldrh r1, [r2, 0x2]
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- mov r3, r8
- movs r2, 0x10
- ldrsh r1, [r3, r2]
- muls r1, r0
- movs r0, 0x1
- bl sub_8132B5C
- bl sub_81335E0
- bl sub_8132054
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- subs r6, 0x8
- adds r4, r6
- ldr r0, _08132B58 @ =sub_8132BC8
- str r0, [r4]
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08132B48: .4byte gTasks+0x8
-_08132B4C: .4byte gStringVar1
-_08132B50: .4byte gStringVar4
-_08132B54: .4byte gUnknown_84162B9
-_08132B58: .4byte sub_8132BC8
- thumb_func_end sub_8132AAC
-
- thumb_func_start sub_8132B5C
-sub_8132B5C: @ 8132B5C
- push {r4-r6,lr}
- sub sp, 0x14
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0x7
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r0, _08132BBC @ =gStringVar1
- lsls r4, 16
- asrs r4, 16
- adds r1, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r5, _08132BC0 @ =gStringVar4
- ldr r1, _08132BC4 @ =gUnknown_84162B9
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0xA
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x7
- movs r1, 0
- adds r2, r5, 0
- movs r3, 0x4
- bl sub_81332EC
- str r4, [sp]
- movs r0, 0x7
- movs r1, 0x38
- movs r2, 0xA
- adds r3, r6, 0
- bl PrintMoneyAmount
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08132BBC: .4byte gStringVar1
-_08132BC0: .4byte gStringVar4
-_08132BC4: .4byte gUnknown_84162B9
- thumb_func_end sub_8132B5C
-
- thumb_func_start sub_8132BC8
-sub_8132BC8: @ 8132BC8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08132C14 @ =gTasks+0x8
- adds r5, r0, r1
- adds r0, r5, 0
- adds r0, 0x10
- ldrh r1, [r5, 0x4]
- bl sub_80BF848
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08132C18
- movs r0, 0x10
- ldrsh r4, [r5, r0]
- ldrh r1, [r5, 0x2]
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- movs r2, 0x10
- ldrsh r1, [r5, r2]
- muls r1, r0
- adds r0, r4, 0
- bl sub_8132B5C
- b _08132CA6
- .align 2, 0
-_08132C14: .4byte gTasks+0x8
-_08132C18:
- ldr r0, _08132C4C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08132C50
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x7
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- bl sub_813208C
- adds r0, r4, 0
- bl sub_81329C4
- b _08132CA6
- .align 2, 0
-_08132C4C: .4byte gMain
-_08132C50:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08132CA6
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x7
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x8
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x6
- movs r1, 0
- bl sub_810F260
- movs r0, 0x3
- bl PutWindowTilemap
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- bl sub_813208C
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8131F90
- adds r0, r6, 0
- bl sub_81323E4
-_08132CA6:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8132BC8
-
- thumb_func_start sub_8132CAC
-sub_8132CAC: @ 8132CAC
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _08132D18 @ =gTasks+0x8
- adds r4, r0
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- ldr r0, _08132D1C @ =gSpecialVar_ItemId
- ldrh r0, [r0]
- ldr r1, _08132D20 @ =gStringVar1
- bl CopyItemName
- ldr r6, _08132D24 @ =gStringVar3
- ldrh r1, [r4, 0x2]
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- muls r1, r0
- adds r0, r6, 0
- movs r2, 0
- movs r3, 0x6
- bl ConvertIntToDecimalStringN
- ldr r4, _08132D28 @ =gStringVar4
- ldr r1, _08132D2C @ =gUnknown_8416959
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r3, _08132D30 @ =sub_8132D34
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_813337C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08132D18: .4byte gTasks+0x8
-_08132D1C: .4byte gSpecialVar_ItemId
-_08132D20: .4byte gStringVar1
-_08132D24: .4byte gStringVar3
-_08132D28: .4byte gStringVar4
-_08132D2C: .4byte gUnknown_8416959
-_08132D30: .4byte sub_8132D34
- thumb_func_end sub_8132CAC
-
- thumb_func_start sub_8132D34
-sub_8132D34: @ 8132D34
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r6, r0, 2
- adds r6, r0
- lsls r6, 3
- ldr r0, _08132DF4 @ =gTasks+0x8
- mov r9, r0
- adds r1, r6, 0
- add r1, r9
- mov r8, r1
- movs r0, 0xF8
- bl PlaySE
- ldr r5, _08132DF8 @ =gSpecialVar_ItemId
- ldrh r0, [r5]
- mov r2, r8
- ldrh r1, [r2, 0x10]
- bl RemoveBagItem
- ldr r7, _08132DFC @ =gSaveBlock1Ptr
- ldr r4, [r7]
- movs r3, 0xA4
- lsls r3, 2
- mov r10, r3
- add r4, r10
- ldrh r0, [r5]
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- mov r2, r8
- movs r3, 0x10
- ldrsh r1, [r2, r3]
- muls r1, r0
- adds r0, r4, 0
- bl AddMoney
- ldrh r0, [r5]
- mov r2, r8
- ldrh r1, [r2, 0x10]
- movs r2, 0x2
- bl sub_809C09C
- mov r3, r8
- ldrb r0, [r3]
- ldr r4, _08132E00 @ =gUnknown_203B116
- subs r2, r4, 0x2
- adds r1, r4, 0
- bl sub_810713C
- bl sub_81320BC
- bl sub_8132120
- bl sub_8131C50
- ldr r0, _08132E04 @ =gUnknown_3005E70
- subs r4, 0xA
- ldrh r1, [r4, 0xA]
- ldrh r2, [r4, 0x8]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- strh r0, [r1]
- movs r1, 0x2
- bl sub_8131F90
- ldr r0, [r7]
- add r0, r10
- bl GetMoney
- adds r1, r0, 0
- movs r0, 0x8
- movs r2, 0
- bl PrintMoneyAmountInMoneyBox
- movs r2, 0x8
- negs r2, r2
- add r9, r2
- add r6, r9
- ldr r0, _08132E08 @ =sub_8132E0C
- str r0, [r6]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08132DF4: .4byte gTasks+0x8
-_08132DF8: .4byte gSpecialVar_ItemId
-_08132DFC: .4byte gSaveBlock1Ptr
-_08132E00: .4byte gUnknown_203B116
-_08132E04: .4byte gUnknown_3005E70
-_08132E08: .4byte sub_8132E0C
- thumb_func_end sub_8132D34
-
- thumb_func_start sub_8132E0C
-sub_8132E0C: @ 8132E0C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08132E60 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08132E26
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08132E5A
-_08132E26:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x8
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x6
- movs r1, 0
- bl sub_810F260
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x3
- bl PutWindowTilemap
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0x5
- bl PutWindowTilemap
- adds r0, r4, 0
- bl sub_8132780
-_08132E5A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08132E60: .4byte gMain
- thumb_func_end sub_8132E0C
-
- thumb_func_start sub_8132E64
-sub_8132E64: @ 8132E64
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r4, _08132EFC @ =gUnknown_203B11C
- movs r0, 0xB2
- lsls r0, 1
- bl AllocZeroed
- str r0, [r4]
- ldr r5, _08132F00 @ =gSaveBlock1Ptr
- ldr r1, [r5]
- ldr r2, _08132F04 @ =0x00000464
- mov r8, r2
- add r1, r8
- movs r2, 0xE8
- bl memcpy
- ldr r0, [r4]
- adds r0, 0xE8
- ldr r1, [r5]
- movs r6, 0xEE
- lsls r6, 2
- adds r1, r6
- movs r2, 0x78
- bl memcpy
- ldr r3, [r4]
- ldr r2, _08132F08 @ =gUnknown_203B10C
- ldrh r1, [r2, 0x8]
- movs r4, 0xB0
- lsls r4, 1
- adds r0, r3, r4
- strh r1, [r0]
- ldrh r0, [r2, 0xA]
- movs r2, 0xB1
- lsls r2, 1
- adds r1, r3, r2
- strh r0, [r1]
- ldr r0, [r5]
- add r0, r8
- movs r1, 0x3A
- bl ClearItemSlots
- ldr r0, [r5]
- adds r0, r6
- movs r1, 0x1E
- bl ClearItemSlots
- bl sub_81320AC
- ldr r0, _08132F0C @ =0x00000121
- movs r1, 0x1
- bl AddBagItem
- ldr r0, _08132F10 @ =0x00000123
- movs r1, 0x1
- bl AddBagItem
- ldr r0, _08132F14 @ =0x00000129
- movs r1, 0x1
- bl AddBagItem
- ldr r0, _08132F18 @ =0x00000143
- movs r1, 0x1
- bl AddBagItem
- ldr r1, _08132F1C @ =sub_815ABFC
- movs r0, 0x4
- movs r2, 0
- bl sub_81317F8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08132EFC: .4byte gUnknown_203B11C
-_08132F00: .4byte gSaveBlock1Ptr
-_08132F04: .4byte 0x00000464
-_08132F08: .4byte gUnknown_203B10C
-_08132F0C: .4byte 0x00000121
-_08132F10: .4byte 0x00000123
-_08132F14: .4byte 0x00000129
-_08132F18: .4byte 0x00000143
-_08132F1C: .4byte sub_815ABFC
- thumb_func_end sub_8132E64
-
- thumb_func_start sub_8132F20
-sub_8132F20: @ 8132F20
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r3, r1, 3
- ldr r4, _08132F54 @ =gTasks+0x8
- adds r2, r3, r4
- ldr r0, _08132F58 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08132F4E
- strh r0, [r2, 0x10]
- strh r0, [r2, 0x12]
- adds r0, r4, 0
- subs r0, 0x8
- adds r0, r3, r0
- ldr r1, _08132F5C @ =sub_8132F60
- str r1, [r0]
-_08132F4E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08132F54: .4byte gTasks+0x8
-_08132F58: .4byte gPaletteFade
-_08132F5C: .4byte sub_8132F60
- thumb_func_end sub_8132F20
-
- thumb_func_start sub_8132F60
-sub_8132F60: @ 8132F60
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08132FA4 @ =gTasks+0x8
- adds r6, r0, r1
- ldr r0, _08132FA8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08132F8E
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- cmp r0, 0x14
- bgt _08132F8E
- movs r0, 0x15
- strh r0, [r6, 0x10]
- bl sub_815AC20
-_08132F8E:
- movs r3, 0x10
- ldrsh r0, [r6, r3]
- cmp r0, 0x15
- bls _08132F98
- b _08133210
-_08132F98:
- lsls r0, 2
- ldr r1, _08132FAC @ =_08132FB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08132FA4: .4byte gTasks+0x8
-_08132FA8: .4byte gMain
-_08132FAC: .4byte _08132FB0
- .align 2, 0
-_08132FB0:
- .4byte _08133008
- .4byte _08133024
- .4byte _08133050
- .4byte _08133050
- .4byte _08133050
- .4byte _08133080
- .4byte _08133080
- .4byte _08133080
- .4byte _081330B0
- .4byte _081330E0
- .4byte _081330F4
- .4byte _08133024
- .4byte _08133050
- .4byte _08133050
- .4byte _08133050
- .4byte _08133080
- .4byte _08133080
- .4byte _08133080
- .4byte _0813312C
- .4byte _081330E0
- .4byte _0813315C
- .4byte _08133170
-_08133008:
- ldr r0, _08133020 @ =0xffff8405
- movs r1, 0
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x6
- bl BeginNormalPaletteFade
- movs r0, 0x1
- bl sub_8131F64
- b _081331EA
- .align 2, 0
-_08133020: .4byte 0xffff8405
-_08133024:
- ldr r0, _0813304C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08133036
- b _08133232
-_08133036:
- ldrh r0, [r6, 0x12]
- adds r0, 0x1
- strh r0, [r6, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x65
- bgt _08133046
- b _08133232
-_08133046:
- strh r1, [r6, 0x12]
- b _081331EA
- .align 2, 0
-_0813304C: .4byte gPaletteFade
-_08133050:
- movs r0, 0x12
- ldrsh r1, [r6, r0]
- cmp r1, 0
- bne _08133066
- ldr r0, _0813307C @ =gMain
- strh r1, [r0, 0x2E]
- movs r1, 0x80
- strh r1, [r0, 0x30]
- ldrb r0, [r6]
- bl ListMenuHandleInput
-_08133066:
- ldrh r0, [r6, 0x12]
- adds r0, 0x1
- strh r0, [r6, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x65
- bgt _08133076
- b _08133232
-_08133076:
- movs r0, 0
- strh r0, [r6, 0x12]
- b _081331EA
- .align 2, 0
-_0813307C: .4byte gMain
-_08133080:
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- cmp r1, 0
- bne _08133096
- ldr r0, _081330AC @ =gMain
- strh r1, [r0, 0x2E]
- movs r1, 0x40
- strh r1, [r0, 0x30]
- ldrb r0, [r6]
- bl ListMenuHandleInput
-_08133096:
- ldrh r0, [r6, 0x12]
- adds r0, 0x1
- strh r0, [r6, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x65
- bgt _081330A6
- b _08133232
-_081330A6:
- movs r0, 0
- strh r0, [r6, 0x12]
- b _081331EA
- .align 2, 0
-_081330AC: .4byte gMain
-_081330B0:
- movs r0, 0x1
- bl sub_8131F64
- ldr r2, _081330D4 @ =gUnknown_841C587
- adds r0, r4, 0
- movs r1, 0x4
- movs r3, 0
- bl sub_813337C
- ldr r1, _081330D8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _081330DC @ =sub_8132F60
- str r1, [r0]
- b _081331EA
- .align 2, 0
-_081330D4: .4byte gUnknown_841C587
-_081330D8: .4byte gTasks
-_081330DC: .4byte sub_8132F60
-_081330E0:
- bl RunTextPrinters
- movs r0, 0x6
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- beq _081330F2
- b _08133232
-_081330F2:
- b _081331EA
-_081330F4:
- ldr r0, _08133128 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08133102
- b _08133232
-_08133102:
- movs r0, 0
- bl sub_8131F64
- movs r0, 0x80
- lsls r0, 3
- movs r1, 0
- str r1, [sp]
- movs r2, 0x6
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r0, 0x6
- movs r1, 0
- bl sub_810F260
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- b _081331EA
- .align 2, 0
-_08133128: .4byte gMain
-_0813312C:
- movs r0, 0x1
- bl sub_8131F64
- ldr r2, _08133150 @ =gUnknown_841C693
- adds r0, r4, 0
- movs r1, 0x4
- movs r3, 0
- bl sub_813337C
- ldr r1, _08133154 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08133158 @ =sub_8132F60
- str r1, [r0]
- b _081331EA
- .align 2, 0
-_08133150: .4byte gUnknown_841C693
-_08133154: .4byte gTasks
-_08133158: .4byte sub_8132F60
-_0813315C:
- ldr r0, _0813316C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08133232
- b _081331EA
- .align 2, 0
-_0813316C: .4byte gMain
-_08133170:
- ldr r0, _081331F4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0
- bne _08133232
- ldr r5, _081331F8 @ =gSaveBlock1Ptr
- ldr r0, [r5]
- ldr r1, _081331FC @ =0x00000464
- adds r0, r1
- ldr r4, _08133200 @ =gUnknown_203B11C
- ldr r1, [r4]
- movs r2, 0xE8
- bl memcpy
- ldr r0, [r5]
- movs r3, 0xEE
- lsls r3, 2
- adds r0, r3
- ldr r1, [r4]
- adds r1, 0xE8
- movs r2, 0x78
- bl memcpy
- ldrb r0, [r6]
- movs r1, 0
- movs r2, 0
- bl sub_810713C
- ldr r2, _08133204 @ =gUnknown_203B10C
- ldr r0, [r4]
- movs r3, 0xB0
- lsls r3, 1
- adds r1, r0, r3
- ldrh r1, [r1]
- strh r1, [r2, 0x8]
- adds r3, 0x2
- adds r1, r0, r3
- ldrh r1, [r1]
- strh r1, [r2, 0xA]
- bl Free
- ldr r0, _08133208 @ =gPlttBufferFaded
- ldr r1, _0813320C @ =gPlttBufferUnfaded
- movs r2, 0x80
- lsls r2, 1
- bl CpuFastSet
- bl sub_8108CF0
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x2
- negs r1, r1
- str r7, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_081331EA:
- ldrh r0, [r6, 0x10]
- adds r0, 0x1
- strh r0, [r6, 0x10]
- b _08133232
- .align 2, 0
-_081331F4: .4byte gPaletteFade
-_081331F8: .4byte gSaveBlock1Ptr
-_081331FC: .4byte 0x00000464
-_08133200: .4byte gUnknown_203B11C
-_08133204: .4byte gUnknown_203B10C
-_08133208: .4byte gPlttBufferFaded
-_0813320C: .4byte gPlttBufferUnfaded
-_08133210:
- ldr r0, _0813323C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08133232
- ldr r0, _08133240 @ =gUnknown_203B10C
- ldr r0, [r0]
- bl SetMainCallback2
- bl sub_813208C
- bl sub_81321D4
- adds r0, r4, 0
- bl DestroyTask
-_08133232:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813323C: .4byte gPaletteFade
-_08133240: .4byte gUnknown_203B10C
- thumb_func_end sub_8132F60
-
- thumb_func_start sub_8133244
-sub_8133244: @ 8133244
- push {r4,lr}
- ldr r0, _081332E0 @ =gUnknown_8463190
- bl InitWindows
- bl DeactivateAllTextPrinters
- movs r0, 0
- movs r1, 0x5B
- movs r2, 0xE0
- bl sub_815001C
- movs r0, 0
- movs r1, 0x64
- movs r2, 0xB0
- bl sub_814FEAC
- movs r0, 0
- movs r1, 0x78
- movs r2, 0xD0
- bl sub_814FF2C
- ldr r4, _081332E4 @ =gUnknown_841F408
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xA0
- movs r2, 0x20
- bl LoadPalette
- ldr r4, _081332E8 @ =gUnknown_8463180
- adds r0, r4, 0
- movs r1, 0xF6
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xD6
- movs r2, 0x4
- bl LoadPalette
- movs r0, 0xC0
- movs r1, 0x1
- bl sub_8107D38
- movs r4, 0
-_081332A4:
- adds r0, r4, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x8
- bls _081332A4
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x3
- bl PutWindowTilemap
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0x5
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081332E0: .4byte gUnknown_8463190
-_081332E4: .4byte gUnknown_841F408
-_081332E8: .4byte gUnknown_8463180
- thumb_func_end sub_8133244
-
- thumb_func_start sub_81332EC
-sub_81332EC: @ 81332EC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- mov r9, r3
- ldr r3, [sp, 0x30]
- ldr r4, [sp, 0x34]
- ldr r6, [sp, 0x38]
- ldr r5, [sp, 0x3C]
- mov r8, r5
- ldr r5, [sp, 0x40]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r7, r9
- lsls r7, 24
- lsrs r7, 24
- mov r9, r7
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r6, [sp, 0x4]
- lsls r4, r5, 1
- adds r4, r5
- ldr r5, _08133350 @ =gUnknown_8463184
- adds r4, r5
- str r4, [sp, 0x8]
- mov r4, r8
- lsls r4, 24
- asrs r4, 24
- str r4, [sp, 0xC]
- str r2, [sp, 0x10]
- mov r2, r9
- bl AddTextPrinterParametrized2
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08133350: .4byte gUnknown_8463184
- thumb_func_end sub_81332EC
-
- thumb_func_start sub_8133354
-sub_8133354: @ 8133354
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- movs r2, 0x5B
- movs r3, 0xE
- bl SetWindowBorderStyle
- pop {r0}
- bx r0
- thumb_func_end sub_8133354
-
- thumb_func_start sub_8133368
-sub_8133368: @ 8133368
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- movs r2, 0x78
- movs r3, 0xD
- bl SetWindowBorderStyle
- pop {r0}
- bx r0
- thumb_func_end sub_8133368
-
- thumb_func_start sub_813337C
-sub_813337C: @ 813337C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x10
- adds r5, r0, 0
- adds r4, r1, 0
- adds r6, r2, 0
- mov r8, r3
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- bl GetTextSpeedSetting
- lsls r0, 24
- lsrs r0, 24
- str r4, [sp]
- str r0, [sp, 0x4]
- str r6, [sp, 0x8]
- mov r0, r8
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0x6
- movs r2, 0x64
- movs r3, 0xB
- bl DisplayMessageAndContinueTask
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813337C
-
- thumb_func_start sub_81333C4
-sub_81333C4: @ 81333C4
- push {r4,lr}
- sub sp, 0xC
- ldr r4, _081333FC @ =gUnknown_84166D3
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0
- bl GetStringWidth
- movs r2, 0x48
- subs r2, r0
- lsrs r2, 1
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _08133400 @ =gUnknown_8463184
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x1
- movs r3, 0x1
- bl box_print
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081333FC: .4byte gUnknown_84166D3
-_08133400: .4byte gUnknown_8463184
- thumb_func_end sub_81333C4
-
- thumb_func_start sub_8133404
-sub_8133404: @ 8133404
- push {lr}
- movs r0, 0x4
- movs r1, 0x13
- movs r2, 0
- movs r3, 0
- bl sub_8107D68
- movs r0, 0x4
- movs r1, 0x14
- movs r2, 0
- movs r3, 0xC
- bl sub_8107D68
- movs r0, 0x4
- movs r1, 0x15
- movs r2, 0
- movs r3, 0x18
- bl sub_8107D68
- movs r0, 0x4
- movs r1, 0x16
- movs r2, 0
- movs r3, 0x24
- bl sub_8107D68
- movs r0, 0x4
- movs r1, 0x2
- bl CopyWindowToVram
- pop {r0}
- bx r0
- thumb_func_end sub_8133404
-
- thumb_func_start sub_8133444
-sub_8133444: @ 8133444
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x28
- str r0, [sp]
- movs r0, 0x30
- str r0, [sp, 0x4]
- movs r0, 0x5
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillWindowPixelRect
- cmp r4, 0
- bne _081334A8
- movs r4, 0
- movs r5, 0
-_0813346E:
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 26
- lsrs r0, 24
- str r0, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0xFF
- str r0, [sp, 0xC]
- movs r0, 0x3
- str r0, [sp, 0x10]
- movs r0, 0x5
- movs r1, 0x3
- ldr r2, _081334A4 @ =gUnknown_8416213
- movs r3, 0x7
- bl sub_81332EC
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _0813346E
- movs r0, 0x5
- movs r1, 0x2
- bl CopyWindowToVram
- b _0813359A
- .align 2, 0
-_081334A4: .4byte gUnknown_8416213
-_081334A8:
- adds r0, r4, 0
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r1, _081334D8 @ =gBattleMoves
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 2
- adds r5, r0, r1
- ldrb r1, [r5, 0x2]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x5
- movs r2, 0
- movs r3, 0
- bl sub_8107D68
- ldrb r0, [r5, 0x1]
- cmp r0, 0x1
- bhi _081334E0
- ldr r2, _081334DC @ =gUnknown_8416213
- b _081334F0
- .align 2, 0
-_081334D8: .4byte gBattleMoves
-_081334DC: .4byte gUnknown_8416213
-_081334E0:
- ldr r4, _08133524 @ =gStringVar1
- ldrb r1, [r5, 0x1]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r2, r4, 0
-_081334F0:
- movs r0, 0xC
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0xFF
- str r0, [sp, 0xC]
- movs r0, 0x3
- str r0, [sp, 0x10]
- movs r0, 0x5
- movs r1, 0x3
- movs r3, 0x7
- bl sub_81332EC
- ldr r2, _08133528 @ =gBattleMoves
- lsls r1, r7, 1
- adds r0, r1, r7
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2, 0x3]
- adds r6, r1, 0
- cmp r0, 0
- bne _08133530
- ldr r2, _0813352C @ =gUnknown_8416213
- b _08133540
- .align 2, 0
-_08133524: .4byte gStringVar1
-_08133528: .4byte gBattleMoves
-_0813352C: .4byte gUnknown_8416213
-_08133530:
- ldr r4, _081335A8 @ =gStringVar1
- ldrb r1, [r2, 0x3]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r2, r4, 0
-_08133540:
- movs r0, 0x18
- str r0, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0xFF
- mov r8, r0
- str r0, [sp, 0xC]
- movs r0, 0x3
- mov r9, r0
- str r0, [sp, 0x10]
- movs r0, 0x5
- movs r1, 0x3
- movs r3, 0x7
- bl sub_81332EC
- ldr r5, _081335A8 @ =gStringVar1
- ldr r1, _081335AC @ =gBattleMoves
- adds r0, r6, r7
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x4]
- adds r0, r5, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- movs r0, 0x24
- str r0, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- mov r0, r8
- str r0, [sp, 0xC]
- mov r0, r9
- str r0, [sp, 0x10]
- movs r0, 0x5
- movs r1, 0x3
- adds r2, r5, 0
- movs r3, 0x7
- bl sub_81332EC
- movs r0, 0x5
- movs r1, 0x2
- bl CopyWindowToVram
-_0813359A:
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081335A8: .4byte gStringVar1
-_081335AC: .4byte gBattleMoves
- thumb_func_end sub_8133444
-
- thumb_func_start sub_81335B0
-sub_81335B0: @ 81335B0
- push {r4,lr}
- sub sp, 0x8
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r1, _081335DC @ =gUnknown_8E99118
- movs r2, 0x10
- str r2, [sp]
- movs r2, 0xC
- str r2, [sp, 0x4]
- adds r2, r4, 0
- bl BlitBitmapToWindow
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081335DC: .4byte gUnknown_8E99118
- thumb_func_end sub_81335B0
-
- thumb_func_start sub_81335E0
-sub_81335E0: @ 81335E0
- push {lr}
- ldr r0, _08133600 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xA4
- lsls r1, 2
- adds r0, r1
- bl GetMoney
- adds r3, r0, 0
- movs r0, 0x8
- movs r1, 0x78
- movs r2, 0xD
- bl PrintMoneyAmountInMoneyBoxWithBorder
- pop {r0}
- bx r0
- .align 2, 0
-_08133600: .4byte gSaveBlock1Ptr
- thumb_func_end sub_81335E0
-
- thumb_func_start sub_8133604
-sub_8133604: @ 8133604
- push {lr}
- sub sp, 0x10
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0813362C @ =gUnknown_84631E0
- movs r2, 0x2
- str r2, [sp]
- movs r2, 0x5B
- str r2, [sp, 0x4]
- movs r2, 0xE
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- movs r2, 0x2
- movs r3, 0
- bl sub_80BF5D0
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_0813362C: .4byte gUnknown_84631E0
- thumb_func_end sub_8133604
-
- thumb_func_start sub_8133630
-sub_8133630: @ 8133630
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _08133656
- lsls r0, r1, 3
- ldr r1, _08133660 @ =gUnknown_84631E8
- adds r0, r1
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- bl sub_8133354
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
-_08133656:
- ldrb r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08133660: .4byte gUnknown_84631E8
- thumb_func_end sub_8133630
-
- thumb_func_start sub_8133664
-sub_8133664: @ 8133664
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- movs r1, 0
- bl sub_810F4D8
- ldrb r0, [r4]
- bl ClearWindowTilemap
- ldrb r0, [r4]
- bl RemoveWindow
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0xFF
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8133664
-
- thumb_func_start sub_813368C
-sub_813368C: @ 813368C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _081336E8 @ =gUnknown_8463220
- movs r1, 0x29
- movs r2, 0x2E
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r6, 0
- beq _081336F4
- adds r5, r6, 0
- subs r5, 0x21
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- ldr r0, _081336EC @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8133714
- ldr r0, _081336F0 @ =gBattleMoves
- mov r8, r0
- adds r0, r6, 0
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r0, [r1, 0x2]
- bl sub_8133730
- adds r0, r4, 0
- adds r1, r5, 0
- b _08133700
- .align 2, 0
-_081336E8: .4byte gUnknown_8463220
-_081336EC: .4byte gSprites
-_081336F0: .4byte gBattleMoves
-_081336F4:
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- ldr r1, _08133710 @ =gSprites
- adds r0, r1
- movs r1, 0xFF
-_08133700:
- bl sub_8133790
- adds r0, r7, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08133710: .4byte gSprites
- thumb_func_end sub_813368C
-
- thumb_func_start sub_8133714
-sub_8133714: @ 8133714
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x31
- bls _08133726
- movs r1, 0x1
- bl StartSpriteAnim
- b _0813372C
-_08133726:
- movs r1, 0
- bl StartSpriteAnim
-_0813372C:
- pop {r0}
- bx r0
- thumb_func_end sub_8133714
-
- thumb_func_start sub_8133730
-sub_8133730: @ 8133730
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0xC8
- lsls r0, 1
- bl IndexOfSpritePaletteTag
- lsls r0, 28
- lsrs r5, r0, 24
- ldr r2, _08133784 @ =gUnknown_203B12C
- ldr r0, _08133788 @ =gUnknown_8463238
- lsls r4, 1
- adds r4, r0
- ldrh r1, [r4]
- lsls r1, 1
- ldr r0, [r2]
- adds r0, r1
- movs r1, 0x80
- lsls r1, 1
- adds r2, r1, 0
- adds r1, r5, 0
- orrs r1, r2
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0813378C @ =gUnknown_203B10C
- ldrb r0, [r0, 0x4]
- cmp r0, 0x4
- bne _0813377C
- adds r1, r5, 0
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- movs r1, 0x4
- movs r2, 0
- bl BlendPalettes
-_0813377C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08133784: .4byte gUnknown_203B12C
-_08133788: .4byte gUnknown_8463238
-_0813378C: .4byte gUnknown_203B10C
- thumb_func_end sub_8133730
-
- thumb_func_start sub_8133790
-sub_8133790: @ 8133790
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- cmp r4, 0xFF
- bne _081337A6
- movs r6, 0x1B
- movs r1, 0x36
- movs r0, 0x14
- strh r0, [r5, 0x26]
- b _081337D8
-_081337A6:
- cmp r4, 0x31
- bls _081337B0
- adds r0, r4, 0
- subs r0, 0x32
- b _081337B4
-_081337B0:
- adds r0, r4, 0
- adds r0, 0x8
-_081337B4:
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 9
- movs r1, 0x3A
- bl __divsi3
- asrs r0, 8
- movs r1, 0x29
- subs r6, r1, r0
- lsls r0, r4, 11
- movs r1, 0x3A
- bl __divsi3
- asrs r0, 8
- adds r1, r0, 0
- adds r1, 0x2E
-_081337D8:
- strh r6, [r5, 0x20]
- strh r1, [r5, 0x22]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8133790
-
- thumb_func_start sub_81337E4
-sub_81337E4: @ 81337E4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08133808 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r0, r2, r3
- movs r4, 0
- strh r1, [r0, 0x2E]
- strh r4, [r0, 0x30]
- adds r3, 0x1C
- adds r2, r3
- ldr r0, _0813380C @ =sub_8133810
- str r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08133808: .4byte gSprites
-_0813380C: .4byte sub_8133810
- thumb_func_end sub_81337E4
-
- thumb_func_start sub_8133810
-sub_8133810: @ 8133810
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08133822
- cmp r0, 0x1
- beq _08133886
- b _081338A2
-_08133822:
- ldrh r1, [r5, 0x26]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- cmp r0, 0x13
- ble _08133880
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08133890
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- ldr r4, _08133878 @ =gBattleMoves
- ldrh r0, [r5, 0x2E]
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x2]
- bl sub_8133730
- ldr r2, _0813387C @ =0xfffffedf
- adds r1, r2, 0
- ldrh r0, [r5, 0x2E]
- adds r1, r0
- strh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_8133714
- ldrh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_8133790
- b _081338A2
- .align 2, 0
-_08133878: .4byte gBattleMoves
-_0813387C: .4byte 0xfffffedf
-_08133880:
- adds r0, r1, 0
- adds r0, 0xA
- b _081338A0
-_08133886:
- ldrh r1, [r5, 0x26]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bgt _0813389C
-_08133890:
- ldr r0, _08133898 @ =SpriteCallbackDummy
- str r0, [r5, 0x1C]
- b _081338A2
- .align 2, 0
-_08133898: .4byte SpriteCallbackDummy
-_0813389C:
- adds r0, r1, 0
- subs r0, 0xA
-_081338A0:
- strh r0, [r5, 0x26]
-_081338A2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8133810
-
- thumb_func_start sub_81338A8
-sub_81338A8: @ 81338A8
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r4, _081338F4 @ =gUnknown_203B12C
- movs r5, 0x88
- lsls r5, 2
- adds r0, r5, 0
- bl Alloc
- adds r1, r0, 0
- str r1, [r4]
- ldr r0, _081338F8 @ =gUnknown_8E84F20
- bl LZDecompressWram
- ldr r0, _081338FC @ =gUnknown_8E85068
- ldr r1, [r4]
- movs r2, 0x80
- lsls r2, 2
- adds r1, r2
- bl LZDecompressWram
- ldr r0, [r4]
- adds r0, r5
- str r0, [sp]
- ldr r1, _08133900 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0xC8
- lsls r1, 1
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpritePalette
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081338F4: .4byte gUnknown_203B12C
-_081338F8: .4byte gUnknown_8E84F20
-_081338FC: .4byte gUnknown_8E85068
-_08133900: .4byte 0xffff0000
- thumb_func_end sub_81338A8
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/trade.s b/asm/trade.s
index 9dc1c2bf3..ea2221aa1 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -20,7 +20,7 @@ sub_804C600: @ 804C600
strb r0, [r2, 0x8]
ldr r0, _0804C6FC @ =sub_804D4F8
bl SetVBlankCallback
- ldr r4, _0804C700 @ =gUnknown_841F408
+ ldr r4, _0804C700 @ =gTMCaseMainWindowPalette
adds r0, r4, 0
movs r1, 0xF0
movs r2, 0x14
@@ -118,7 +118,7 @@ _0804C6F0:
.align 2, 0
_0804C6F8: .4byte gPaletteFade
_0804C6FC: .4byte sub_804D4F8
-_0804C700: .4byte gUnknown_841F408
+_0804C700: .4byte gTMCaseMainWindowPalette
_0804C704: .4byte gUnknown_8261F1C
_0804C708: .4byte gUnknown_2031DA8
_0804C70C: .4byte gUnknown_8261F2C
diff --git a/asm/union_room_chat.s b/asm/union_room_chat.s
index 194066e70..fcf0ceb19 100644
--- a/asm/union_room_chat.s
+++ b/asm/union_room_chat.s
@@ -5355,14 +5355,14 @@ sub_812AD20: @ 812AD20
movs r1, 0xA
movs r2, 0x20
bl sub_814FF2C
- ldr r0, _0812AD4C @ =gUnknown_841F408
+ ldr r0, _0812AD4C @ =gTMCaseMainWindowPalette
movs r1, 0xE0
movs r2, 0x20
bl LoadPalette
pop {r0}
bx r0
.align 2, 0
-_0812AD4C: .4byte gUnknown_841F408
+_0812AD4C: .4byte gTMCaseMainWindowPalette
thumb_func_end sub_812AD20
thumb_func_start sub_812AD50
diff --git a/data/data_835B488.s b/data/data_835B488.s
index 1377d8599..2c8a853a8 100644
--- a/data/data_835B488.s
+++ b/data/data_835B488.s
@@ -568,7 +568,7 @@ gUnknown_83D427C:: @ 83D427C
gUnknown_83D4294:: @ 83D4294
.incbin "baserom.gba", 0x3D4294, 0x6D94
-gUnknown_83DB028:: @ 83DB028
+gItems:: @ 83DB028
.incbin "baserom.gba", 0x3DB028, 0x4074
gUnknown_83DF09C:: @ 83DF09C
diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s
index 682877f7e..8fb1d4533 100644
--- a/data/data_83FECCC.s
+++ b/data/data_83FECCC.s
@@ -517,6 +517,7 @@ gUnknown_8415A08:: @ 8415A08
gUnknown_8415A10:: @ 8415A10
.incbin "baserom.gba", 0x415A10, 0x10
+ @ strings
gExpandedPlaceholder_Empty:: @ 8415A20
.incbin "baserom.gba", 0x415A20, 0x1
@@ -728,70 +729,151 @@ gUnknown_8416188:: @ 8416188
.incbin "baserom.gba", 0x416188, 0x8
gUnknown_8416190:: @ 8416190
- .incbin "baserom.gba", 0x416190, 0x31
+ .string "TIME$"
+
+gUnknown_8416195::
+ .string "どこへ とびますか?$"
+
+gOtherText_Use::
+ .string "USE$"
+
+gUnknown_84161A4::
+ .string "TOSS$"
+
+gUnknown_84161A9::
+ .string "REGISTER$"
+
+gOtherText_Give::
+ .string "GIVE$"
+
+gUnknown_84161B7::
+ .string "けってい$"
+
+gUnknown_84161BC::
+ .string "WALK$"
gFameCheckerText_Cancel:: @ 84161C1
.string "CANCEL$"
-gUnknown_84161C8:: @ 84161C8
- .incbin "baserom.gba", 0x4161C8, 0x5
+gOtherText_Exit:: @ 84161C8
+ .string "EXIT$"
gUnknown_84161CD:: @ 84161CD
- .incbin "baserom.gba", 0x4161CD, 0x22
+ .string "$"
+
+gUnknown_84161CE::
+ .string "キャンセル$"
+
+gUnknown_84161D4::
+ .string "ITEM$"
+
+gUnknown_84161D9::
+ .string "MAIL$"
+
+gUnknown_84161DE::
+ .string "TAKE$"
+
+gUnknown_84161E3::
+ .string "STORE$"
+
+gUnknown_84161E9::
+ .string "CHECK$"
gUnknown_84161EF:: @ 84161EF
- .incbin "baserom.gba", 0x4161EF, 0x13
+ .string "NONE$"
+
+gUnknown_84161F4::
+ .string "OPEN$"
+
+gUnknown_84161F9::
+ .string "DESELECT$"
gUnknown_8416202:: @ 8416202
- .incbin "baserom.gba", 0x416202, 0xA
+ .string "???$"
+
+gUnknown_8416206::
+ .string "?????$"
gUnknown_841620C:: @ 841620C
- .incbin "baserom.gba", 0x41620C, 0x2
+ .string "/$"
gUnknown_841620E:: @ 841620E
- .incbin "baserom.gba", 0x41620E, 0x2
+ .string "-$"
gUnknown_8416210:: @ 8416210
- .incbin "baserom.gba", 0x416210, 0x3
+ .string "--$"
-gUnknown_8416213:: @ 8416213
- .incbin "baserom.gba", 0x416213, 0x4
+gText_ThreeHyphens:: @ 8416213
+ .string "---$"
gUnknown_8416217:: @ 8416217
- .incbin "baserom.gba", 0x416217, 0x8
+ .string "-------$"
gUnknown_841621F:: @ 841621F
- .incbin "baserom.gba", 0x41621F, 0x2
+ .string "♂$"
gUnknown_8416221:: @ 8416221
- .incbin "baserom.gba", 0x416221, 0x2
+ .string "♀$"
gUnknown_8416223:: @ 8416223
- .incbin "baserom.gba", 0x416223, 0x3
+ .string "{UNKNOWN_F9 0x05}$"
+
+gOtherText_UnkF9_08_Clear_01:: @ 8416226
+ .string "{UNKNOWN_F9 0x08}{CLEAR 0x01}$"
+
+gUnknown_841622C::
+ .string "{UNKNOWN_F9 0x04}$"
+
+gUnknown_841622F::
+ .string "{ESCAPE 0x03}$"
-gUnknown_8416226:: @ 8416226
- .incbin "baserom.gba", 0x416226, 0x12
+gUnknown_8416233::
+ .string "{UNKNOWN_F9 0x07}{UNKNOWN_F9 0x08}$"
gUnknown_8416238:: @ 8416238
- .incbin "baserom.gba", 0x416238, 0x3
+ .string "{UNKNOWN_F9 0x06}$"
gFameCheckerText_ListMenuCursor:: @ 841623B
.string "▶$"
gUnknown_841623D:: @ 841623D
- .incbin "baserom.gba", 0x41623D, 0x25
+ .string "YES\nNO$"
+
+gUnknown_8416244::
+ .string "Go back to the\nprevious menu.$"
gUnknown_8416262:: @ 8416262
- .incbin "baserom.gba", 0x416262, 0x23
+ .string "What would you like to do?$"
+
+gUnknown_841627D::
+ .string "POKéDEX$"
gUnknown_8416285:: @ 8416285
- .incbin "baserom.gba", 0x416285, 0x24
+ .string "BAG$"
+
+gUnknown_8416289::
+ .string "ポケナビ$"
+
+gUnknown_841628E::
+ .string "{PLAYER}$"
+
+gUnknown_8416291::
+ .string "SAVE$"
+
+gUnknown_8416296::
+ .string "OPTION$"
+
+gUnknown_841629D::
+ .string "EXIT$"
+
+gUnknown_84162A2::
+ .string "RETIRE$"
gUnknown_84162A9:: @ 84162A9
- .incbin "baserom.gba", 0x4162A9, 0x10
+ .string "{STR_VAR_1}/{STR_VAR_2}\nBALLS {STR_VAR_3}$"
-gUnknown_84162B9:: @ 84162B9
- .incbin "baserom.gba", 0x4162B9, 0x4
+gText_TimesStrVar1:: @ 84162B9
+ .string "×{STR_VAR_1}$"
gUnknown_84162BD:: @ 84162BD
.string " BERRY$"
@@ -808,20 +890,21 @@ gUnknown_84162F5:: @ 84162F5
gUnknown_84162FF:: @ 84162FF
.incbin "baserom.gba", 0x4162FF, 0x2
-gUnknown_8416301:: @ 8416301
- .incbin "baserom.gba", 0x416301, 0xE
+gText_IsSelected:: @ 8416301
+ .string " is\nselected.$"
gUnknown_841630F:: @ 841630F
.incbin "baserom.gba", 0x41630F, 0x1B
-gUnknown_841632A:: @ 841632A
- .incbin "baserom.gba", 0x41632A, 0x15
+gText_ThereIsNoPokemon:: @ 841632A
+ .string "There is no\n"
+ .string "POKéMON.$"
gUnknown_841633F:: @ 841633F
.incbin "baserom.gba", 0x41633F, 0x1F
-gUnknown_841635E:: @ 841635E
- .incbin "baserom.gba", 0x41635E, 0x16
+gText_ItemCantBeHeld:: @ 841635E
+ .string "The {STR_VAR_1} can’t be held.$"
gUnknown_8416374:: @ 8416374
.incbin "baserom.gba", 0x416374, 0x1B
@@ -892,20 +975,24 @@ gUnknown_8416690:: @ 8416690
gUnknown_84166A7:: @ 84166A7
.incbin "baserom.gba", 0x4166A7, 0x2C
-gUnknown_84166D3:: @ 84166D3
- .incbin "baserom.gba", 0x4166D3, 0x8
+gText_TMCase:: @ 84166D3
+ .string "TM CASE$"
-gUnknown_84166DB:: @ 84166DB
- .incbin "baserom.gba", 0x4166DB, 0x6
+gText_Close:: @ 84166DB
+ .string "CLOSE$"
-gUnknown_84166E1:: @ 84166E1
- .incbin "baserom.gba", 0x4166E1, 0x1E
+gText_TMCaseWillBePutAway:: @ 84166E1
+ .string "The TM CASE will be\n"
+ .string "put away.$"
-gUnknown_84166FF:: @ 84166FF
- .incbin "baserom.gba", 0x4166FF, 0x4
+gText_FontSize0:: @ 84166FF
+ .string "{SIZE 0}$"
-gUnknown_8416703:: @ 8416703
- .incbin "baserom.gba", 0x416703, 0x7
+gText_FontSize2:: @ 8416703
+ .string "{SIZE 2}$"
+
+gUnknown_8416707:: @ 8416707
+ .string " $"
gUnknown_841670A:: @ 841670A
.incbin "baserom.gba", 0x41670A, 0xC
@@ -937,16 +1024,19 @@ gUnknown_8416861:: @ 8416861
gUnknown_841689E:: @ 841689E
.incbin "baserom.gba", 0x41689E, 0x53
-gUnknown_84168F1:: @ 84168F1
- .incbin "baserom.gba", 0x4168F1, 0x20
+gText_OhNoICantBuyThat:: @ 84168F1
+ .string "{STR_VAR_1}? Oh, no.\n"
+ .string "I can’t buy that.{PAUSE_UNTIL_PRESS}$"
-gUnknown_8416911:: @ 8416911
- .incbin "baserom.gba", 0x416911, 0x25
+gText_HowManyWouldYouLikeToSell:: @ 8416911
+ .string "{STR_VAR_1}?\n"
+ .string "How many would you like to sell?$"
-gUnknown_8416936:: @ 8416936
- .incbin "baserom.gba", 0x416936, 0x23
+gText_ICanPayThisMuch_WouldThatBeOkay:: @ 8416936
+ .string "I can pay ¥{STR_VAR_3}.\n"
+ .string "Would that be okay?$"
-gUnknown_8416959:: @ 8416959
+gText_TurnedOverItemsWorthYen:: @ 8416959
.incbin "baserom.gba", 0x416959, 0x21
gText_PokedollarVar1:: @ 841697A
@@ -1812,13 +1902,211 @@ gUnknown_841B779:: @ 841B779
.incbin "baserom.gba", 0x41B779, 0xC4
gUnknown_841B83D:: @ 841B83D
- .incbin "baserom.gba", 0x41B83D, 0xD4A
-
-gUnknown_841C587:: @ 841C587
- .incbin "baserom.gba", 0x41C587, 0x10C
+ .string "Hey, all you TRAINERS out there!\n"
+ .string "HELLO, TRAINERS!\p"
+ .string "……… ……… ………\p"
+ .string "Come on, let me hear you!\n"
+ .string "HELLO, TRAINERS!\l"
+ .string "It’s me, the POKé DUDE!\p"
+ .string "$"
-gUnknown_841C693:: @ 841C693
- .incbin "baserom.gba", 0x41C693, 0x4A9
+gUnknown_841B8BF:: @ 841B8BF
+ .string "Today, the POKé DUDE’s here to\n"
+ .string "tell you about how you can battle\l"
+ .string "POKéMON!\p"
+ .string "Say you’re out for a stroll when,\n"
+ .string "suddenly, a wild POKéMON appears!\p"
+ .string "It’s up to you to smartly use your\n"
+ .string "POKéMON and their moves to reduce\l"
+ .string "the opponent’s HP to nothing, and\l"
+ .string "claim victory!\p"
+ .string "I’ll show you how to do that in\n"
+ .string "person and for sure!\p"
+ .string "All righty, here goes!\p"
+ .string "Keep your eyes glued to the super\n"
+ .string "POKé DUDE SHOW!$"
+
+gUnknown_841BA41:: @ 841BA41
+ .string "Well, did you get that?\p"
+ .string "Even if your own POKéMON’s HP\n"
+ .string "falls to zero, and it becomes\l"
+ .string "unable to battle, not to worry!\p"
+ .string "Just take it to any POKéMON\n"
+ .string "CENTER and heal it!\p"
+ .string "All righty, be seeing you!\p"
+ .string "Remember, TRAINERS, a good deed\n"
+ .string "a day brings happiness to stay!$"
+
+gUnknown_841BB40:: @ 841BB40
+ .string "Today, the POKé DUDE’s here to\n"
+ .string "tell you about status problems!\p"
+ .string "Status problems include poisoning,\n"
+ .string "paralysis, sleep, burn…\p"
+ .string "There are a couple others, but\n"
+ .string "they really are trouble.\p"
+ .string "Get any one, and your POKéMON\n"
+ .string "may become useless in battle.\p"
+ .string "You know, it hurts the POKé DUDE\n"
+ .string "to see a POKéMON suffer…\p"
+ .string "So, what should you do if your\n"
+ .string "POKéMON gets a status problem?\p"
+ .string "Well, you’ve got me to show you!\p"
+ .string "All righty, here goes!\p"
+ .string "Keep your eyes glued to the super\n"
+ .string "POKé DUDE SHOW!$"
+
+gUnknown_841BD10:: @ 841BD10
+ .string "Poisoning or paralysis don’t go\n"
+ .string "away after a battle.\p"
+ .string "If a POKéMON is poisoned, it loses\n"
+ .string "HP even while you’re walking.\p"
+ .string "You should heal POKéMON of these\n"
+ .string "kinds of problems right away.\p"
+ .string "Use an item, or try to get to a\n"
+ .string "POKéMON CENTER for healing.\p"
+ .string "That wasn’t hard, was it?\n"
+ .string "All righty, be seeing you!\p"
+ .string "Remember, TRAINERS, a good deed\n"
+ .string "a day brings happiness to stay!$"
+
+gUnknown_841BE76:: @ 841BE76
+ .string "Does everyone know about type\n"
+ .string "matchups?\p"
+ .string "POKéMON and their moves all\n"
+ .string "belong to certain types.\p"
+ .string "For example, there are such types\n"
+ .string "as GRASS and WATER.\p"
+ .string "You need to consider the type of\n"
+ .string "the move used to attack…\p"
+ .string "And, the type of the POKéMON that\n"
+ .string "is hit by that attack.\p"
+ .string "Depending on how those two types\n"
+ .string "match up, the damage can change.\p"
+ .string "You see, it depends on whether\n"
+ .string "the type matchup is good or bad.\p"
+ .string "If you don’t know how matchups\n"
+ .string "work, battles will be tough.\p"
+ .string "So, let me demonstrate exactly\n"
+ .string "what I mean.\p"
+ .string "All righty, here goes!\p"
+ .string "Keep your eyes glued to the super\n"
+ .string "POKé DUDE SHOW!$"
+
+gUnknown_841C0AF:: @ 841C0AF
+ .string "Is it possible to launch an attack\n"
+ .string "that will inflict heavy damage?\p"
+ .string "Does the opposing POKéMON pose\n"
+ .string "a threat to your POKéMON?\p"
+ .string "Is there any chance that it may\n"
+ .string "have disastrously tough moves?\p"
+ .string "Watch the type matchups to gain\n"
+ .string "the upper hand!\p"
+ .string "All righty, be seeing you!\p"
+ .string "Oh, for the COOL-type POKé DUDE,\n"
+ .string "AWESOME-type kids like you match\l"
+ .string "up perfectly!\p"
+ .string "Remember, a good deed a day\n"
+ .string "brings happiness to stay!$"
+
+gUnknown_841C23B:: @ 841C23B
+ .string "Today, the POKé DUDE’s going to\n"
+ .string "show you how to catch POKéMON!\p"
+ .string "Just imagine… A groovy POKéMON\n"
+ .string "suddenly appearing in the wild!\p"
+ .string "Oh, you want it!\n"
+ .string "You just can’t help it!\p"
+ .string "Oh, you have to catch it!\n"
+ .string "You gotta have it!\p"
+ .string "Let me show you how you can make\n"
+ .string "it happen!\p"
+ .string "All righty, here goes!\p"
+ .string "Keep your eyes glued to the super\n"
+ .string "POKé DUDE SHOW!$"
+
+gUnknown_841C384:: @ 841C384
+ .string "If your first POKé BALL fails to\n"
+ .string "catch the POKéMON, don’t give up!\p"
+ .string "Keep throwing POKé BALLS…\n"
+ .string "It’s bound to work sometime!\p"
+ .string "All righty, be seeing you!\p"
+ .string "Remember, TRAINERS, a good deed\n"
+ .string "a day brings happiness to stay!$"
+
+gUnknown_841C459:: @ 841C459
+ .string "Hey, everyone!\n"
+ .string "Do you all have TMs?\p"
+ .string "A TM, Technical Machine, is an\n"
+ .string "amazingly great item!\p"
+ .string "It teaches POKéMON a move that\n"
+ .string "it may not learn when leveling up!\p"
+ .string "Isn’t that just great? What a\n"
+ .string "convenient world we live in!\p"
+ .string "Open the TM CASE and check out\n"
+ .string "the TMs you have.\p"
+ .string "You can check them out in detail,\n"
+ .string "too.$"
+
+gPokeDudeText_TMTypes:: @ 841C587
+ .string "POKé DUDE: NORMAL, WATER, GRASS…\n"
+ .string "TMs also come in types.\p"
+ .string "Check the type and teach it to\n"
+ .string "a POKéMON that matches up well.\p"
+ .string "For example, WATER PULSE is\n"
+ .string "suitable for WATER-type POKéMON.\p"
+ .string "BULLET SEED is a move that most\n"
+ .string "GRASS-type POKéMON can learn.\p"
+ .string "There’s one other thing!$"
+
+gPokeDudeText_ReadTMDescription:: @ 841C693
+ .string "Don’t just look at the type, read\n"
+ .string "the description, too.\p"
+ .string "It will contain hints about what\n"
+ .string "POKéMON might learn the move.\p"
+ .string "For example, take a move like\n"
+ .string "FOCUS PUNCH.\p"
+ .string "It doesn’t sound like anything a\n"
+ .string "bird or fish POKéMON can learn.\p"
+ .string "So, try using it on POKéMON with\n"
+ .string "arms that can throw punches!$"
+
+gUnknown_841C7B4:: @ 841C7B4
+ .string "Wow, I talked a lot today!\n"
+ .string "All righty, be seeing you!\p"
+ .string "Remember, TRAINERS, a good deed\n"
+ .string "a day brings happiness to stay!$"
+
+gUnknown_841C82A:: @ 841C82A
+ .string "A TRAINER’s BAG has a bunch of\n"
+ .string "nifty, convenient features!\p"
+ .string "Take stuff in the KEY ITEMS\n"
+ .string "POCKET, for instance.\p"
+ .string "You can use a key item without\n"
+ .string "opening the BAG every time.\p"
+ .string "For example, let’s pretend I have\n"
+ .string "a TEACHY TV in my BAG.\p"
+ .string "I can register it for instant use,\n"
+ .string "and I’ll show you how!\p"
+ .string "All righty, here goes!\p"
+ .string "Keep your eyes glued to the sorta\n"
+ .string "super POKé DUDE SHOW!$"
+
+gUnknown_841C994:: @ 841C994
+ .string "And now, your TEACHY TV is\n"
+ .string "registered.\p"
+ .string "How do you use it?\n"
+ .string "Well, here’s how it works.\p"
+ .string "Once an item in the KEY ITEMS\n"
+ .string "POKCET is registered, you can use\l"
+ .string "it by pressing SELECT.\p"
+ .string "So, you’ve given yourself\n"
+ .string "one-touch access to TEACHY TV.\p"
+ .string "All it takes for you to see me is\n"
+ .string "pressing one button!\p"
+ .string "That kind of attention is a little\n"
+ .string "embarrassing!\p"
+ .string "All righty, be seeing you!\p"
+ .string "Remember, TRAINERS, a good deed\n"
+ .string "a day brings happiness to stay!$"
gUnknown_841CB3C:: @ 841CB3C
.incbin "baserom.gba", 0x41CB3C, 0x5
@@ -2295,8 +2583,9 @@ gUnknown_841EDCA:: @ 841EDCA
.incbin "baserom.gba", 0x41EDCA, 0x61
gUnknown_841EE2B:: @ 841EE2B
- .incbin "baserom.gba", 0x41EE2B, 0x19
+ .incbin "baserom.gba", 0x41EE2B, 0x17
+ .align 2
gUnknown_841EE44:: @ 841EE44
.incbin "baserom.gba", 0x41EE44, 0x20
@@ -2324,8 +2613,8 @@ gUnknown_841EF10:: @ 841EF10
gUnknown_841F1C8:: @ 841F1C8
.incbin "baserom.gba", 0x41F1C8, 0x240
-gUnknown_841F408:: @ 841F408
- .incbin "baserom.gba", 0x41F408, 0x20
+gTMCaseMainWindowPalette:: @ 841F408
+ .incbin "graphics/tm_case/unk_841F408.gbapal"
gUnknown_841F428:: @ 841F428
.incbin "baserom.gba", 0x41F428, 0x4
diff --git a/data/data_8471F00.s b/data/data_8471F00.s
index 6733b3f4d..9c616b37c 100644
--- a/data/data_8471F00.s
+++ b/data/data_8471F00.s
@@ -237,7 +237,12 @@ gUnknown_8479548:: @ 8479548
.incbin "baserom.gba", 0x479548, 0x18
gUnknown_8479560:: @ 8479560
- .incbin "baserom.gba", 0x479560, 0x18
+ .4byte gUnknown_841B8BF
+ .4byte gUnknown_841BB40
+ .4byte gUnknown_841BE76
+ .4byte gUnknown_841C23B
+ .4byte gUnknown_841C459
+ .4byte gUnknown_841C82A
gUnknown_8479578:: @ 8479578
.incbin "baserom.gba", 0x479578, 0x18
diff --git a/data/graphics.s b/data/graphics.s
index a1e421f2c..12cb6a33f 100644
--- a/data/graphics.s
+++ b/data/graphics.s
@@ -13953,28 +13953,28 @@ gFile_graphics_interface_bag_swap_palette:: @ 8E845C8
.align 2
gUnknown_8E845D8:: @ 8E845D8
- .incbin "baserom.gba", 0xE845D8, 0x44C
+ .incbin "graphics/tm_case/unk_8E845D8.4bpp.lz"
gUnknown_8E84A24:: @ 8E84A24
- .incbin "baserom.gba", 0xE84A24, 0x14C
+ .incbin "graphics/tm_case/unk_8E84A24.bin.lz"
gUnknown_8E84B70:: @ 8E84B70
- .incbin "baserom.gba", 0xE84B70, 0x140
+ .incbin "graphics/tm_case/unk_8E84B70.bin.lz"
gUnknown_8E84CB0:: @ 8E84CB0
- .incbin "baserom.gba", 0xE84CB0, 0x70
+ .incbin "graphics/tm_case/unk_8E84CB0.gbapal.lz"
gUnknown_8E84D20:: @ 8E84D20
- .incbin "baserom.gba", 0xE84D20, 0x70
+ .incbin "graphics/tm_case/unk_8E84D20.gbapal.lz"
-gUnknown_8E84D90:: @ 8E84D90
- .incbin "baserom.gba", 0xE84D90, 0x190
+gTMCase_TMSpriteGfx:: @ 8E84D90
+ .incbin "graphics/tm_case/unk_8E84D90.4bpp.lz"
gUnknown_8E84F20:: @ 8E84F20
- .incbin "baserom.gba", 0xE84F20, 0x148
+ .incbin "graphics/tm_case/unk_8E84F20.gbapal.lz"
gUnknown_8E85068:: @ 8E85068
- .incbin "baserom.gba", 0xE85068, 0x28
+ .incbin "graphics/tm_case/unk_8E85068.gbapal.lz"
gUnknown_8E85090:: @ 8E85090
.incbin "baserom.gba", 0xE85090, 0x378
@@ -16072,7 +16072,10 @@ gUnknown_8E985D8:: @ 8E985D8
.incbin "baserom.gba", 0xE985D8, 0xB40 @UNKNOWN, FALSEPOSITIVE?
gUnknown_8E99118:: @ 8E99118
- .incbin "baserom.gba", 0xE99118, 0xE0 @UNKNOWN
+ .incbin "graphics/tm_case/unk_8E99118.4bpp"
+
+gUnknown_8E99198::
+ .incbin "baserom.gba", 0xE99198, 0x60 @UNKNOWN
gUnknown_8E991F8:: @ 8E991F8
.incbin "baserom.gba", 0xE991F8, 0x674
diff --git a/data/tm_case.s b/data/tm_case.s
deleted file mode 100644
index 5720087d7..000000000
--- a/data/tm_case.s
+++ /dev/null
@@ -1,50 +0,0 @@
- .section .rodata
-
- .align 2
-gUnknown_8463134:: @ 8463134
- .incbin "baserom.gba", 0x463134, 0xC
-
-gUnknown_8463140:: @ 8463140
- .incbin "baserom.gba", 0x463140, 0x10
-
-gUnknown_8463150:: @ 8463150
- .incbin "baserom.gba", 0x463150, 0x18
-
-gUnknown_8463168:: @ 8463168
- .incbin "baserom.gba", 0x463168, 0x3
-
-gUnknown_846316B:: @ 846316B
- .incbin "baserom.gba", 0x46316B, 0x5
-
-gUnknown_8463170:: @ 8463170
- .incbin "baserom.gba", 0x463170, 0x8
-
-gUnknown_8463178:: @ 8463178
- .incbin "baserom.gba", 0x463178, 0x4
-
-gUnknown_846317C:: @ 846317C
- .incbin "baserom.gba", 0x46317C, 0x4
-
-gUnknown_8463180:: @ 8463180
- .incbin "baserom.gba", 0x463180, 0x4
-
-gUnknown_8463184:: @ 8463184
- .incbin "baserom.gba", 0x463184, 0xC
-
-gUnknown_8463190:: @ 8463190
- .incbin "baserom.gba", 0x463190, 0x50
-
-gUnknown_84631E0:: @ 84631E0
- .incbin "baserom.gba", 0x4631E0, 0x8
-
-gUnknown_84631E8:: @ 84631E8
- .incbin "baserom.gba", 0x4631E8, 0x30
-
-gUnknown_8463218:: @ 8463218
- .incbin "baserom.gba", 0x463218, 0x8
-
-gUnknown_8463220:: @ 8463220
- .incbin "baserom.gba", 0x463220, 0x18
-
-gUnknown_8463238:: @ 8463238
- .incbin "baserom.gba", 0x463238, 0x24
diff --git a/graphics/tm_case/unk_841F408.pal b/graphics/tm_case/unk_841F408.pal
new file mode 100644
index 000000000..25a3ac1d2
--- /dev/null
+++ b/graphics/tm_case/unk_841F408.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+255 255 255
+255 255 255
+98 98 98
+213 213 205
+230 8 8
+255 189 115
+32 156 8
+148 246 148
+49 82 205
+164 197 246
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/tm_case/unk_8E845D8.png b/graphics/tm_case/unk_8E845D8.png
new file mode 100644
index 000000000..2729ac568
--- /dev/null
+++ b/graphics/tm_case/unk_8E845D8.png
Binary files differ
diff --git a/graphics/tm_case/unk_8E84A24.bin b/graphics/tm_case/unk_8E84A24.bin
new file mode 100644
index 000000000..a4962cbaa
--- /dev/null
+++ b/graphics/tm_case/unk_8E84A24.bin
Binary files differ
diff --git a/graphics/tm_case/unk_8E84B70.bin b/graphics/tm_case/unk_8E84B70.bin
new file mode 100644
index 000000000..0b13dc93a
--- /dev/null
+++ b/graphics/tm_case/unk_8E84B70.bin
Binary files differ
diff --git a/graphics/tm_case/unk_8E84CB0.pal b/graphics/tm_case/unk_8E84CB0.pal
new file mode 100644
index 000000000..2464f7026
--- /dev/null
+++ b/graphics/tm_case/unk_8E84CB0.pal
@@ -0,0 +1,67 @@
+JASC-PAL
+0100
+64
+0 65 90
+255 0 255
+41 57 82
+65 180 164
+255 0 255
+255 0 255
+106 205 197
+197 230 205
+238 230 172
+255 255 197
+180 180 180
+230 255 238
+139 106 172
+115 115 115
+164 205 172
+148 180 156
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+189 213 213
+238 255 255
+222 246 255
+255 255 255
+164 222 255
+16 172 222
+0 82 115
+0 115 139
+0 123 197
+205 164 238
+106 164 222
+82 123 197
+164 172 131
+106 205 197
+238 238 238
+90 90 65
+115 115 90
+189 189 164
+65 180 164
+222 156 0
+238 180 16
+246 213 57
+255 246 123
+255 255 255
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+189 213 213
+238 255 255
+222 246 255
+255 255 255
+164 222 255
+24 82 180
+0 90 131
+24 82 180
+24 82 180
diff --git a/graphics/tm_case/unk_8E84D20.pal b/graphics/tm_case/unk_8E84D20.pal
new file mode 100644
index 000000000..99fd00240
--- /dev/null
+++ b/graphics/tm_case/unk_8E84D20.pal
@@ -0,0 +1,67 @@
+JASC-PAL
+0100
+64
+0 65 90
+255 0 255
+41 57 82
+213 139 115
+255 0 255
+255 0 255
+255 172 148
+197 230 205
+238 230 172
+255 255 197
+180 180 180
+230 255 238
+139 106 172
+115 115 115
+164 205 172
+148 180 156
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+189 213 213
+238 255 255
+222 246 255
+255 255 255
+164 222 255
+16 172 222
+0 82 115
+0 115 139
+0 123 197
+205 164 238
+106 164 222
+82 123 197
+164 172 131
+255 172 148
+238 238 238
+90 90 65
+115 115 90
+189 189 164
+213 139 115
+222 156 0
+238 180 16
+246 213 57
+255 246 123
+255 255 255
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+189 213 213
+238 255 255
+222 246 255
+255 255 255
+164 222 255
+24 82 180
+0 90 131
+24 82 180
+24 82 180
diff --git a/graphics/tm_case/unk_8E84D90.png b/graphics/tm_case/unk_8E84D90.png
new file mode 100644
index 000000000..a26831822
--- /dev/null
+++ b/graphics/tm_case/unk_8E84D90.png
Binary files differ
diff --git a/graphics/tm_case/unk_8E84F20.pal b/graphics/tm_case/unk_8E84F20.pal
new file mode 100644
index 000000000..c7f6d1d50
--- /dev/null
+++ b/graphics/tm_case/unk_8E84F20.pal
@@ -0,0 +1,259 @@
+JASC-PAL
+0100
+256
+205 164 238
+74 74 98
+238 238 238
+230 230 238
+230 230 230
+222 222 222
+213 213 213
+205 205 205
+197 197 197
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+255 255 255
+205 164 238
+0 0 0
+74 74 98
+255 230 189
+255 222 156
+255 205 131
+255 197 98
+255 189 65
+255 180 41
+238 172 32
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+255 238 222
+205 164 238
+0 0 0
+74 74 98
+205 230 246
+180 213 246
+164 205 246
+139 197 238
+115 180 238
+90 172 238
+74 164 238
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+205 205 205
+238 246 246
+205 164 238
+0 0 0
+74 74 98
+213 246 230
+197 246 213
+180 246 205
+156 238 197
+139 238 180
+123 238 172
+106 238 164
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+238 246 246
+205 164 238
+0 0 0
+74 74 98
+255 255 189
+255 238 156
+255 230 123
+255 222 90
+255 205 57
+255 197 24
+255 197 0
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+255 255 222
+205 164 238
+0 0 0
+74 74 98
+246 238 222
+238 230 197
+238 222 172
+230 213 148
+222 197 115
+222 189 90
+213 180 65
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+255 255 255
+205 164 238
+0 0 0
+74 74 98
+255 255 189
+255 255 156
+255 255 123
+255 255 90
+246 238 90
+230 213 82
+222 197 65
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+255 255 222
+205 164 238
+0 0 0
+74 74 98
+230 246 255
+213 246 255
+197 246 255
+172 238 255
+156 238 255
+139 230 246
+131 213 238
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+205 205 205
+255 255 255
+205 164 238
+0 0 0
+74 74 98
+213 246 255
+189 238 255
+172 238 255
+156 238 255
+172 222 238
+180 205 222
+197 197 197
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+246 246 255
+205 164 238
+0 0 0
+74 74 98
+246 213 189
+238 197 156
+238 180 123
+238 164 90
+230 148 57
+230 131 24
+230 115 0
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+172 172 172
+255 238 230
+205 164 238
+0 0 0
+74 74 98
+238 222 246
+230 205 246
+230 189 246
+222 172 246
+213 148 246
+197 123 238
+180 98 222
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+255 238 255
+205 164 238
+0 0 0
+74 74 98
+255 255 189
+255 255 156
+255 255 123
+255 255 90
+255 238 57
+255 238 24
+255 222 0
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+255 255 222
+205 164 238
+0 0 0
+74 74 98
+255 222 197
+255 205 172
+255 189 148
+255 180 123
+230 148 156
+205 123 189
+180 98 222
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+255 238 230
+205 164 238
+0 0 0
+74 74 98
+255 230 230
+255 222 213
+255 213 205
+255 197 197
+255 189 180
+255 180 172
+255 172 164
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+255 246 246
+205 164 238
+0 0 0
+74 74 98
+222 222 222
+213 213 213
+197 197 197
+189 189 189
+148 172 180
+115 164 172
+82 156 164
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+238 246 246
+205 164 238
+0 0 0
+74 74 98
+205 230 230
+189 213 213
+164 205 205
+139 189 197
+123 180 180
+98 164 172
+82 156 164
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+238 246 246
+205 164 238
diff --git a/graphics/tm_case/unk_8E85068.pal b/graphics/tm_case/unk_8E85068.pal
new file mode 100644
index 000000000..9e3e5e6f5
--- /dev/null
+++ b/graphics/tm_case/unk_8E85068.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+0 0 0
+74 74 98
+205 230 255
+180 213 255
+156 197 255
+139 189 255
+172 180 213
+213 180 172
+255 180 131
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+230 246 255
+205 164 238
diff --git a/graphics/tm_case/unk_8E99118.png b/graphics/tm_case/unk_8E99118.png
new file mode 100644
index 000000000..426e404fe
--- /dev/null
+++ b/graphics/tm_case/unk_8E99118.png
Binary files differ
diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk
index c34f43baa..549527050 100644
--- a/graphics_file_rules.mk
+++ b/graphics_file_rules.mk
@@ -620,6 +620,9 @@ $(INTERFACEGFXDIR)/selector_outline.4bpp: %.4bpp: %.png
$(BATTRANSGFXDIR)/frontier_transition.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 43
+
+graphics/tm_case/unk_8E845D8.4bpp: %.4bpp: %.png
+ $(GFX) $< $@ -num_tiles 91
$(PKNAVOPTIONSGFXDIR)/options.4bpp: $(PKNAVOPTIONSGFXDIR)/hoenn_map.4bpp \
$(PKNAVOPTIONSGFXDIR)/condition.4bpp \
diff --git a/include/graphics.h b/include/graphics.h
index d249ece10..83cc19bb3 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -150,4 +150,15 @@ extern const u16 gFameCheckerBgTiles[0xa50];
extern const u16 gFameCheckerBg3Tilemap[0x400];
extern const u16 gFameCheckerBg2Tilemap[0x400];
+// tm_case
+extern const u32 gUnknown_8E845D8[];
+extern const u32 gUnknown_8E84A24[];
+extern const u32 gUnknown_8E84B70[];
+extern const u32 gUnknown_8E84CB0[];
+extern const u32 gUnknown_8E84D20[];
+extern const u32 gTMCase_TMSpriteGfx[];
+extern const u32 gUnknown_8E84F20[];
+extern const u32 gUnknown_8E85068[];
+extern const u8 gUnknown_8E99118[];
+
#endif //GUARD_GRAPHICS_H
diff --git a/include/item.h b/include/item.h
index 25177cb6e..320b7ffec 100644
--- a/include/item.h
+++ b/include/item.h
@@ -66,4 +66,10 @@ void CopyItemName(u16, u8 *);
void sub_809A824(u16 itemId);
bool8 AddBagItem(u16 itemId, u16 amount);
+void sub_809A5E4(struct BagPocket *);
+u16 BagGetItemIdByPocketPosition(u8 a0, u16 a1);
+u16 BagGetQuantityByPocketPosition(u8 a0, u16 a1);
+bool8 itemid_is_unique(u16 itemId);
+void sub_809A584(struct ItemSlot * slots, u8 capacity);
+
#endif // ITEM_H
diff --git a/include/item_menu.h b/include/item_menu.h
index a6128b9fb..9ebe3918a 100644
--- a/include/item_menu.h
+++ b/include/item_menu.h
@@ -12,6 +12,7 @@ extern u16 gSpecialVar_ItemId;
// Exported ROM declarations
void sub_81AAC50(void);
void sub_81AAC70(void);
+void sub_8108CF0(void);
void UseFameCheckerFromMenu(void);
#endif //GUARD_ITEM_MENU_H
diff --git a/include/list_menu.h b/include/list_menu.h
index 8834e5215..3fd54d0d1 100644
--- a/include/list_menu.h
+++ b/include/list_menu.h
@@ -48,6 +48,7 @@ struct ListMenu {
};
extern struct ListMenuTemplate gUnknown_03006310;
+extern struct ListMenuTemplate gMultiuseListMenuTemplate;
// Exported ROM declarations
@@ -55,7 +56,8 @@ u8 ListMenuInit(struct ListMenuTemplate *template, u16 a1, u16 a2);
s32 ListMenuHandleInput(u8 id);
void get_coro_args_x18_x1A(u8 a0, u16 *a1, u16 *a2);
void sub_81AE6C8(u8 a0, u16 *a1, u16 *a2);
-void sub_810713C(u8, u8, u8);
+void DestroyListMenu(u8, u16 *, u16 *);
u16 ListMenuGetYCoordForPrintingArrowCursor(u8);
+void sub_8107D38(u8, u8);
#endif //GUARD_LIST_MENU_H
diff --git a/include/menu.h b/include/menu.h
index f26c7efde..4a5bd8a2c 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -48,5 +48,7 @@ void sub_810FF60(const struct WindowTemplate *, u8, u8, u8, u16, u8, u8);
void StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end, u8 ev_step, u8 priority);
bool8 IsBlendTaskActive(void);
+void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *a8);
+void sub_810F260(u8 windowId, u8 a1);
#endif // GUARD_MENU_H
diff --git a/include/menu_helpers.h b/include/menu_helpers.h
index b193388e5..e27fb4e5d 100644
--- a/include/menu_helpers.h
+++ b/include/menu_helpers.h
@@ -18,6 +18,13 @@ void sub_812225C(u16 *, u16 *, u8, u8);
void sub_8122298(u16 *, u16 *, u8, u8, u8);
void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data);
bool8 sub_81221AC(void);
+bool8 sub_80BF72C(void);
bool8 sub_80BF708(void);
+void sub_80BF768(void);
+void sub_80BF7C8(void);
+u8 sub_80BF8E4(void);
+u8 sub_80BF848(s16 * a0, u16 a1);
+void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 arg2, u8 arg3, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc);
+void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate * unk1, u8 unk2, u8 unk3, u8 unk4, u8 unk5, u8 unk6, const struct YesNoFuncTable *ptrs);
#endif //GUARD_MENU_HELPERS_H
diff --git a/include/money.h b/include/money.h
index fa63e321c..5bcef18d4 100644
--- a/include/money.h
+++ b/include/money.h
@@ -10,13 +10,14 @@ void AddMoney(u32* moneyPtr, u32 toAdd);
void RemoveMoney(u32* moneyPtr, u32 toSub);
bool8 IsEnoughForCostInVar0x8005(void);
void SubtractMoneyFromVar0x8005(void);
-void PrintMoneyAmountInMoneyBoxInMoneyBox(u8 windowId, int amount, u8 speed);
-void PrintMoneyAmountInMoneyBox(u8 windowId, u8 x, u8 y, int amount, u8 speed);
-void PrintMoneyAmountInMoneyBoxInMoneyBoxWithBorder(u8 windowId, u16 tileStart, u8 pallete, int amount);
+void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed);
+void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed);
+void PrintMoneyAmountInMoneyBoxWithBorder(u8 windowId, u16 tileStart, u8 pallete, int amount);
void ChangeAmountInMoneyBox(int amount);
void DrawMoneyBox(int amount, u8 x, u8 y);
void HideMoneyBox(void);
void AddMoneyLabelObject(u16 x, u16 y);
void RemoveMoneyLabelObject(void);
+void PrintMoneyAmount(u8 windowId, u8 x, u8 y, int amount, u8 speed);
#endif // GUARD_MONEY_H
diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h
index fe8b5b754..b17326667 100644
--- a/include/new_menu_helpers.h
+++ b/include/new_menu_helpers.h
@@ -29,5 +29,6 @@ void ResetBg0(void);
void Menu_LoadStdPalAt(u16);
void * malloc_and_decompress(const void * src, u32 * size);
u16 sub_80F796C(void);
+void sub_80F6B08(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette);
#endif // GUARD_NEW_MENU_HELPERS_H
diff --git a/include/party_menu.h b/include/party_menu.h
index 2e83c1496..5f7a3a68e 100644
--- a/include/party_menu.h
+++ b/include/party_menu.h
@@ -12,10 +12,16 @@ enum {
AILMENT_BRN
};
+extern void (*gUnknown_3005E98)(u8 taskId, TaskFunc func);
+
bool8 MonKnowsMove(struct Pokemon *, u16);
void sub_81B58A8(void);
void DoWallyTutorialBagMenu(void);
u8 pokemon_ailments_get_primary(u32 status);
u16 ItemIdToBattleMoveId(u16 itemId);
+void sub_8125B40(u8 taskId, TaskFunc func);
+void sub_8124C8C(void);
+void sub_8126EDC(void);
+void c2_8123744(void);
#endif // GUARD_PARTY_MENU_H
diff --git a/include/pokemon.h b/include/pokemon.h
index c08f37b5f..c84eb4c42 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -445,6 +445,8 @@ struct BattleMove
u8 flags;
};
+extern const struct BattleMove gBattleMoves[];
+
#define FLAG_MAKES_CONTACT 0x1
#define FLAG_PROTECT_AFFECTED 0x2
#define FLAG_MAGICCOAT_AFFECTED 0x4
diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h
index 897c5a42e..f2fbe85a7 100644
--- a/include/pokemon_storage_system.h
+++ b/include/pokemon_storage_system.h
@@ -13,5 +13,6 @@ void CompactPartySlots(void);
u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request);
void sub_808BCB4(u8 boxId, u8 monPosition);
u8 * GetBoxNamePtr(u8 boxId);
+void sub_808CE60(void);
#endif // GUARD_POKEMON_STORAGE_SYSTEM_H
diff --git a/include/shop.h b/include/shop.h
index 1046a590a..05f5160e6 100644
--- a/include/shop.h
+++ b/include/shop.h
@@ -8,5 +8,6 @@ extern EWRAM_DATA struct ItemSlot gUnknown_02039F80[3];
void CreatePokemartMenu(const u16 *);
void CreateDecorationShop1Menu(const u16 *);
void CreateDecorationShop2Menu(const u16 *);
+void sub_809C09C(u16, u16, u8);
#endif // GUARD_SHOP_H
diff --git a/include/strings.h b/include/strings.h
index 40021a01d..6af1b0d69 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -92,4 +92,27 @@ extern const u8 gText_Coins[];
extern const u8 gText_EggNickname[];
extern const u8 gText_Pokemon[];
+extern const u8 gOtherText_Use[];
+extern const u8 gOtherText_Give[];
+extern const u8 gOtherText_Exit[];
+extern const u8 gText_ThreeHyphens[];
+extern const u8 gOtherText_UnkF9_08_Clear_01[];
+extern const u8 gFameCheckerText_ListMenuCursor[];
+extern const u8 gText_TimesStrVar1[];
+extern const u8 gText_IsSelected[];
+extern const u8 gText_ThereIsNoPokemon[];
+extern const u8 gText_ItemCantBeHeld[];
+extern const u8 gText_TMCase[];
+extern const u8 gText_Close[];
+extern const u8 gText_TMCaseWillBePutAway[];
+extern const u8 gText_FontSize0[];
+extern const u8 gText_FontSize2[];
+extern const u8 gText_OhNoICantBuyThat[];
+extern const u8 gText_HowManyWouldYouLikeToSell[];
+extern const u8 gText_ICanPayThisMuch_WouldThatBeOkay[];
+extern const u8 gText_TurnedOverItemsWorthYen[];
+extern const u8 gPokeDudeText_TMTypes[];
+extern const u8 gPokeDudeText_ReadTMDescription[];
+extern const u16 gTMCaseMainWindowPalette[];
+
#endif //GUARD_STRINGS_H
diff --git a/include/teachy_tv.h b/include/teachy_tv.h
new file mode 100644
index 000000000..374780c04
--- /dev/null
+++ b/include/teachy_tv.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_TEACHY_TV_H
+#define GUARD_TEACHY_TV_H
+
+void CB2_ReturnToTeachyTV(void);
+void sub_815AC20(void);
+
+#endif //GUARD_TEACHY_TV_H
diff --git a/include/text_window.h b/include/text_window.h
index 72ce50efc..8a4113c62 100644
--- a/include/text_window.h
+++ b/include/text_window.h
@@ -20,6 +20,8 @@ void rbox_fill_rectangle(u8 windowId);
const u16* stdpal_get(u8 id);
const u16* GetOverworldTextboxPalettePtr(void);
void sub_8098C6C(u8 bg, u16 destOffset, u8 palOffset);
+void sub_814FEAC(u8 windowId, u16 tileStart, u8 palette);
void sub_814FF2C(u8 windowId, u16 tileStart, u8 palette);
+void sub_815001C(u8 windowId, u16 tileStart, u8 palette);
#endif // GUARD_TEXT_WINDOW_H
diff --git a/include/tm_case.h b/include/tm_case.h
new file mode 100644
index 000000000..f77eae457
--- /dev/null
+++ b/include/tm_case.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_TM_CASE_H
+#define GUARD_TM_CASE_H
+
+void InitTMCase(u8 a0, void (* a1)(void), u8 a2);
+void ResetTMCaseCursorPos(void);
+void PokeDude_InitTMCase(void);
+
+#endif //GUARD_TM_CASE_H
diff --git a/include/window.h b/include/window.h
index 2705a7895..8edaf73ae 100644
--- a/include/window.h
+++ b/include/window.h
@@ -56,7 +56,7 @@ void PutWindowTilemap(u8 windowId);
void PutWindowRectTilemapOverridePalette(u8 windowId, u8 x, u8 y, u8 width, u8 height, u8 palette);
void ClearWindowTilemap(u8 windowId);
void PutWindowRectTilemap(u8 windowId, u8 x, u8 y, u8 width, u8 height);
-void BlitBitmapToWindow(u8 windowId, u8 *pixels, u16 x, u16 y, u16 width, u16 height);
+void BlitBitmapToWindow(u8 windowId, const u8 *pixels, u16 x, u16 y, u16 width, u16 height);
void BlitBitmapRectToWindow(u8 windowId, const u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight);
void FillWindowPixelRect(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 height);
void CopyToWindowPixelBuffer(u8 windowId, const u8 *src, u16 size, u16 tileOffset);
diff --git a/ld_script.txt b/ld_script.txt
index 1bd106cca..6e3dda820 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -229,7 +229,7 @@ SECTIONS {
src/fame_checker.o(.text);
src/menu2.o(.text);
src/oak_speech.o(.text);
- asm/tm_case.o(.text);
+ src/tm_case.o(.text);
asm/menu_indicators.o(.text);
asm/pokedex_area_markers.o(.text);
asm/pokemon_summary_screen.o(.text);
@@ -399,7 +399,7 @@ SECTIONS {
src/fame_checker.o(.rodata);
src/menu2.o(.rodata);
src/oak_speech.o(.rodata);
- data/tm_case.o(.rodata);
+ src/tm_case.o(.rodata);
data/menu_indicators.o(.rodata);
data/pokedex_area_markers.o(.rodata);
data/pokemon_summary_screen.o(.rodata);
diff --git a/src/fame_checker.c b/src/fame_checker.c
index 29b888a32..c47e52f06 100644
--- a/src/fame_checker.c
+++ b/src/fame_checker.c
@@ -853,7 +853,7 @@ static void Task_DestroyAssetsAndCloseFameChecker(u8 taskId)
FreeQuestionMarkSpriteResources();
FreeListMenuSelectorArrowPairResources();
SetMainCallback2(sFameCheckerData->savedCallback);
- sub_810713C(sFameCheckerData->listMenuTaskId, 0, 0);
+ DestroyListMenu(sFameCheckerData->listMenuTaskId, NULL, NULL);
Free(sBg3TilemapBuffer);
Free(sBg1TilemapBuffer);
Free(sBg2TilemapBuffer);
diff --git a/src/text.c b/src/text.c
index d83b36f88..d74d77e2f 100644
--- a/src/text.c
+++ b/src/text.c
@@ -8,7 +8,7 @@
extern u8 gGlyphInfo[0x90];
extern u8 gUnknown_203ADFA;
-extern u16 gUnknown_841F408[];
+extern u16 gTMCaseMainWindowPalette[];
extern const struct OamData gOamData_83AC9D0;
extern void FillBitmapRect4Bit(struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue);
@@ -52,7 +52,7 @@ const struct SpriteSheet gUnknown_81EA68C[] =
const struct SpritePalette gUnknown_81EA6A4[] =
{
- {gUnknown_841F408, 0x8000},
+ {gTMCaseMainWindowPalette, 0x8000},
{NULL}
};
diff --git a/src/tm_case.c b/src/tm_case.c
new file mode 100644
index 000000000..2fc30da2d
--- /dev/null
+++ b/src/tm_case.c
@@ -0,0 +1,1537 @@
+#include "global.h"
+#include "malloc.h"
+#include "bg.h"
+#include "decompress.h"
+#include "gpu_regs.h"
+#include "palette.h"
+#include "graphics.h"
+#include "task.h"
+#include "text.h"
+#include "text_window.h"
+#include "menu.h"
+#include "menu_helpers.h"
+#include "new_menu_helpers.h"
+#include "list_menu.h"
+#include "item.h"
+#include "item_menu.h"
+#include "link.h"
+#include "money.h"
+#include "shop.h"
+#include "teachy_tv.h"
+#include "pokemon_storage_system.h"
+#include "string_util.h"
+#include "party_menu.h"
+#include "data2.h"
+#include "scanline_effect.h"
+#include "sound.h"
+#include "strings.h"
+#include "tm_case.h"
+#include "menu_indicators.h"
+#include "constants/items.h"
+#include "constants/songs.h"
+
+#define TM_CASE_TM_TAG 400
+
+struct UnkStruct_203B10C
+{
+ void (* savedCallback)(void);
+ u8 tmCaseMenuType;
+ u8 unk_05;
+ u8 unk_06;
+ u16 selectedRow;
+ u16 scrollOffset;
+};
+
+struct UnkStruct_203B118
+{
+ void (* savedCallback)(void);
+ u8 tmSpriteId;
+ u8 maxTMsShown;
+ u8 numTMs;
+ u8 contextMenuWindowId;
+ u8 scrollIndicatorArrowPairId;
+ u16 currItem;
+ const u8 * menuActionIndices;
+ u8 numMenuActions;
+ s16 seqId;
+ u8 filler_14[8];
+};
+
+struct UnkStruct_203B11C
+{
+ struct ItemSlot bagPocket_TMHM[BAG_TMHM_COUNT];
+ struct ItemSlot bagPocket_KeyItems[BAG_KEYITEMS_COUNT];
+ u16 unk_160;
+ u16 unk_162;
+};
+
+static EWRAM_DATA struct UnkStruct_203B10C sTMCaseStaticResources = {};
+static EWRAM_DATA struct UnkStruct_203B118 * sTMCaseDynamicResources = NULL;
+static EWRAM_DATA struct UnkStruct_203B11C * sPokeDudePackBackup = NULL;
+static EWRAM_DATA void * sTilemapBuffer = NULL; // tilemap buffer
+static EWRAM_DATA struct ListMenuItem * sListMenuItemsBuffer = NULL;
+static EWRAM_DATA u8 (* sListMenuStringsBuffer)[29] = NULL;
+static EWRAM_DATA u16 * sTMSpritePaletteBuffer = NULL;
+
+static void CB2_SetUpTMCaseUI_Blocking(void);
+static bool8 DoSetUpTMCaseUI(void);
+static void ResetBufferPointers_NoFree(void);
+static void LoadBGTemplates(void);
+static bool8 HandleLoadTMCaseGraphicsAndPalettes(void);
+static void CreateTMCaseListMenuBuffers(void);
+static void InitTMCaseListMenuItems(void);
+static void GetTMNumberAndMoveString(u8 * dest, u16 itemId);
+static void TMCase_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list);
+static void TMCase_ItemPrintFunc(u8 windowId, s32 itemId, u8 y);
+static void TMCase_MoveCursor_UpdatePrintedDescription(s32 itemIndex);
+static void PrintListMenuCursorAt_WithColorIdx(u8 a0, u8 a1);
+static void CreateTMCaseScrollIndicatorArrowPair_Main(void);
+static void TMCaseSetup_GetTMCount(void);
+static void TMCaseSetup_InitListMenuPositions(void);
+static void TMCaseSetup_UpdateVisualMenuOffset(void);
+static void Task_FadeOutAndCloseTMCase(u8 taskId);
+static void Task_TMCaseMain(u8 taskId);
+static void Task_SelectTMAction_FromFieldBag(u8 taskId);
+static void Task_TMContextMenu_HandleInput(u8 taskId);
+static void TMHMContextMenuAction_Use(u8 taskId);
+static void TMHMContextMenuAction_Give(u8 taskId);
+static void PrintError_ThereIsNoPokemon(u8 taskId);
+static void PrintError_ItemCantBeHeld(u8 taskId);
+static void Task_WaitButtonAfterErrorPrint(u8 taskId);
+static void Subtask_CloseContextMenuAndReturnToMain(u8 taskId);
+static void TMHMContextMenuAction_Exit(u8 taskId);
+static void Task_SelectTMAction_Type1(u8 taskId);
+static void Task_SelectTMAction_Type3(u8 taskId);
+static void Task_SelectTMAction_FromSellMenu(u8 taskId);
+static void Task_AskConfirmSaleWithAmount(u8 taskId);
+static void Task_PlaceYesNoBox(u8 taskId);
+static void Task_SaleOfTMsCancelled(u8 taskId);
+static void Task_InitQuantitySelectUI(u8 taskId);
+static void SellTM_PrintQuantityAndSalePrice(s16 quantity, s32 value);
+static void Task_QuantitySelect_HandleInput(u8 taskId);
+static void Task_PrintSaleConfirmedText(u8 taskId);
+static void Task_DoSaleOfTMs(u8 taskId);
+static void Task_AfterSale_ReturnToList(u8 taskId);
+static void Task_TMCaseDude1(u8 taskId);
+static void Task_TMCaseDude_Playback(u8 taskId);
+static void InitWindowTemplatesAndPals(void);
+static void AddTextPrinterParameterized_ColorByIndex(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx);
+static void TMCase_SetWindowBorder1(u8 windowId);
+static void TMCase_SetWindowBorder2(u8 windowId);
+static void TMCase_PrintMessageWithFollowupTask(u8 taskId, u8 windowId, const u8 * str, TaskFunc func);
+static void PrintStringTMCaseOnWindow3(void);
+static void DrawMoveInfoUIMarkers(void);
+static void TMCase_MoveCursor_UpdatePrintedTMInfo(u16 itemId);
+static void PlaceHMTileInWindow(u8 windowId, u8 x, u8 y);
+static void HandlePrintMoneyOnHand(void);
+static void HandleCreateYesNoMenu(u8 taskId, const struct YesNoFuncTable * ptrs);
+static u8 AddTMContextMenu(u8 * a0, u8 a1);
+static void RemoveTMContextMenu(u8 * a0);
+static u8 CreateTMSprite(u16 itemId);
+static void SetTMSpriteAnim(struct Sprite * sprite, u8 var);
+static void TintTMSpriteByType(u8 type);
+static void UpdateTMSpritePosition(struct Sprite * sprite, u8 var);
+static void InitSelectedTMSpriteData(u8 a0, u16 itemId);
+static void SpriteCB_MoveTMSpriteInCase(struct Sprite * sprite);
+static void LoadTMTypePalettes(void);
+
+static const struct BgTemplate sBGTemplates[] = {
+ {
+ .bg = 0,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 31,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0x000
+ }, {
+ .bg = 1,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 30,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0x000
+ }, {
+ .bg = 2,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 29,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0x000
+ }
+};
+
+static void (*const sSelectTMActionTasks[])(u8 taskId) = {
+ Task_SelectTMAction_FromFieldBag,
+ Task_SelectTMAction_Type1,
+ Task_SelectTMAction_FromSellMenu,
+ Task_SelectTMAction_Type3
+};
+
+static const struct MenuAction sMenuActions_UseGiveExit[] = {
+ {gOtherText_Use, TMHMContextMenuAction_Use },
+ {gOtherText_Give, TMHMContextMenuAction_Give},
+ {gOtherText_Exit, TMHMContextMenuAction_Exit},
+};
+
+static const u8 sMenuActionIndices_Field[] = {0, 1, 2};
+static const u8 sMenuActionIndices_UnionRoom[] = {1, 2};
+static const struct YesNoFuncTable sYesNoFuncTable = {Task_PrintSaleConfirmedText, Task_SaleOfTMsCancelled};
+
+static const u8 sText_ClearTo18[] = _("{CLEAR_TO 18}");
+static const u8 sText_SingleSpace[] = _(" ");
+
+static ALIGNED(4) const u16 sPal3Override[] = {RGB(8, 8, 8), RGB(30, 16, 6)};
+
+static const struct TextColor sTextColors[] = {
+ {0, 1, 2},
+ {0, 2, 3},
+ {0, 3, 6},
+ {0, 14, 10}
+};
+
+static const struct WindowTemplate sWindowTemplates[] = {
+ {0x00, 0x0a, 0x01, 0x13, 0x0a, 0x0f, 0x0081},
+ {0x00, 0x0c, 0x0c, 0x12, 0x08, 0x0a, 0x013f},
+ {0x01, 0x05, 0x0f, 0x0f, 0x04, 0x0d, 0x01f9},
+ {0x00, 0x00, 0x01, 0x0a, 0x02, 0x0f, 0x0235},
+ {0x00, 0x01, 0x0d, 0x05, 0x06, 0x0c, 0x0249},
+ {0x00, 0x07, 0x0d, 0x05, 0x06, 0x0c, 0x0267},
+ {0x01, 0x02, 0x0f, 0x1a, 0x04, 0x0b, 0x0285},
+ {0x01, 0x11, 0x09, 0x0c, 0x04, 0x0f, 0x02ed},
+ {0x01, 0x01, 0x01, 0x08, 0x03, 0x0d, 0x031d},
+ DUMMY_WIN_TEMPLATE
+};
+
+static const struct WindowTemplate sYesNoWindowTemplate = {0x01, 0x15, 0x09, 0x06, 0x04, 0x0f, 0x0335};
+
+static const struct WindowTemplate sTMContextWindowTemplates[] = {
+ {0x01, 0x16, 0x0d, 0x07, 0x06, 0x0f, 0x01cf},
+ {0x01, 0x16, 0x0f, 0x07, 0x04, 0x0f, 0x01cf}
+};
+
+static const struct OamData sTMSpriteOamData = {
+ .size = 2,
+ .priority = 2
+};
+
+static const union AnimCmd sTMSpriteAnim0[] = {
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sTMSpriteAnim1[] = {
+ ANIMCMD_FRAME(16, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const sTMSpriteAnims[] = {
+ sTMSpriteAnim0,
+ sTMSpriteAnim1
+};
+
+static const struct CompressedSpriteSheet sTMSpriteSheet = {
+ (const void *)gTMCase_TMSpriteGfx,
+ 0x400,
+ TM_CASE_TM_TAG
+};
+
+static const struct SpriteTemplate sTMSpriteTemplate = {
+ TM_CASE_TM_TAG,
+ TM_CASE_TM_TAG,
+ &sTMSpriteOamData,
+ sTMSpriteAnims,
+ NULL,
+ gDummySpriteAffineAnimTable,
+ SpriteCallbackDummy
+};
+
+static const u16 sTMSpritePaletteOffsetByType[] = {
+ [TYPE_NORMAL] = 0x000,
+ [TYPE_FIRE] = 0x010,
+ [TYPE_WATER] = 0x020,
+ [TYPE_GRASS] = 0x030,
+ [TYPE_ELECTRIC] = 0x040,
+ [TYPE_ROCK] = 0x050,
+ [TYPE_GROUND] = 0x060,
+ [TYPE_ICE] = 0x070,
+ [TYPE_FLYING] = 0x080,
+ [TYPE_FIGHTING] = 0x090,
+ [TYPE_GHOST] = 0x0a0,
+ [TYPE_BUG] = 0x0b0,
+ [TYPE_POISON] = 0x0c0,
+ [TYPE_PSYCHIC] = 0x0d0,
+ [TYPE_STEEL] = 0x0e0,
+ [TYPE_DARK] = 0x0f0,
+ [TYPE_DRAGON] = 0x100
+};
+
+void InitTMCase(u8 type, void (* callback)(void), u8 a2)
+{
+ ResetBufferPointers_NoFree();
+ sTMCaseDynamicResources = Alloc(sizeof(struct UnkStruct_203B118));
+ sTMCaseDynamicResources->savedCallback = 0;
+ sTMCaseDynamicResources->scrollIndicatorArrowPairId = 0xFF;
+ sTMCaseDynamicResources->contextMenuWindowId = 0xFF;
+ if (type != 5)
+ sTMCaseStaticResources.tmCaseMenuType = type;
+ if (callback != NULL)
+ sTMCaseStaticResources.savedCallback = callback;
+ if (a2 != 0xFF)
+ sTMCaseStaticResources.unk_05 = a2;
+ gTextFlags.flag_2 = FALSE;
+ SetMainCallback2(CB2_SetUpTMCaseUI_Blocking);
+}
+
+static void CB2_Idle(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ do_scheduled_bg_tilemap_copies_to_vram();
+ UpdatePaletteFade();
+}
+
+static void VBlankCB_Idle(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+static void CB2_SetUpTMCaseUI_Blocking(void)
+{
+ while (1)
+ {
+ if (sub_80BF72C() == TRUE)
+ break;
+ if (DoSetUpTMCaseUI() == TRUE)
+ break;
+ if (sub_80BF708() == TRUE)
+ break;
+ }
+}
+
+static bool8 DoSetUpTMCaseUI(void)
+{
+ u8 taskId;
+
+ switch (gMain.state)
+ {
+ case 0:
+ sub_80BF768();
+ clear_scheduled_bg_copies_to_vram();
+ gMain.state++;
+ break;
+ case 1:
+ ScanlineEffect_Stop();
+ gMain.state++;
+ break;
+ case 2:
+ FreeAllSpritePalettes();
+ gMain.state++;
+ break;
+ case 3:
+ ResetPaletteFade();
+ gMain.state++;
+ break;
+ case 4:
+ ResetSpriteData();
+ gMain.state++;
+ break;
+ case 5:
+ ResetTasks();
+ gMain.state++;
+ break;
+ case 6:
+ LoadBGTemplates();
+ sTMCaseDynamicResources->seqId = 0;
+ gMain.state++;
+ break;
+ case 7:
+ InitWindowTemplatesAndPals();
+ gMain.state++;
+ break;
+ case 8:
+ if (HandleLoadTMCaseGraphicsAndPalettes())
+ gMain.state++;
+ break;
+ case 9:
+ sub_809A5E4(&gBagPockets[POCKET_TM_CASE - 1]);
+ gMain.state++;
+ break;
+ case 10:
+ TMCaseSetup_GetTMCount();
+ TMCaseSetup_InitListMenuPositions();
+ TMCaseSetup_UpdateVisualMenuOffset();
+ gMain.state++;
+ break;
+ case 11:
+ DrawMoveInfoUIMarkers();
+ gMain.state++;
+ break;
+ case 12:
+ CreateTMCaseListMenuBuffers();
+ InitTMCaseListMenuItems();
+ gMain.state++;
+ break;
+ case 13:
+ PrintStringTMCaseOnWindow3();
+ gMain.state++;
+ break;
+ case 14:
+ if (sTMCaseStaticResources.tmCaseMenuType == 4)
+ taskId = CreateTask(Task_TMCaseDude1, 0);
+ else
+ taskId = CreateTask(Task_TMCaseMain, 0);
+ gTasks[taskId].data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sTMCaseStaticResources.scrollOffset, sTMCaseStaticResources.selectedRow);
+ gMain.state++;
+ break;
+ case 15:
+ CreateTMCaseScrollIndicatorArrowPair_Main();
+ gMain.state++;
+ break;
+ case 16:
+ sTMCaseDynamicResources->tmSpriteId = CreateTMSprite(BagGetItemIdByPocketPosition(POCKET_TM_CASE, sTMCaseStaticResources.scrollOffset + sTMCaseStaticResources.selectedRow));
+ gMain.state++;
+ break;
+ case 17:
+ BlendPalettes(0xFFFFFFFF, 16, 0);
+ gMain.state++;
+ break;
+ case 18:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
+ gMain.state++;
+ break;
+ default:
+ SetVBlankCallback(VBlankCB_Idle);
+ SetMainCallback2(CB2_Idle);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static void ResetBufferPointers_NoFree(void)
+{
+ sTMCaseDynamicResources = NULL;
+ sTilemapBuffer = NULL;
+ sListMenuItemsBuffer = NULL;
+ sListMenuStringsBuffer = NULL;
+ sTMSpritePaletteBuffer = NULL;
+}
+
+static void LoadBGTemplates(void)
+{
+ void ** ptr;
+ sub_80BF7C8();
+ ptr = &sTilemapBuffer;
+ *ptr = AllocZeroed(0x800);
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(0, sBGTemplates, NELEMS(sBGTemplates));
+ SetBgTilemapBuffer(2, *ptr);
+ schedule_bg_copy_tilemap_to_vram(1);
+ schedule_bg_copy_tilemap_to_vram(2);
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+}
+
+static bool8 HandleLoadTMCaseGraphicsAndPalettes(void)
+{
+ switch (sTMCaseDynamicResources->seqId)
+ {
+ case 0:
+ reset_temp_tile_data_buffers();
+ decompress_and_copy_tile_data_to_vram(1, gUnknown_8E845D8, 0, 0, 0);
+ sTMCaseDynamicResources->seqId++;
+ break;
+ case 1:
+ if (free_temp_tile_data_buffers_if_possible() != TRUE)
+ {
+ LZDecompressWram(gUnknown_8E84A24, sTilemapBuffer);
+ sTMCaseDynamicResources->seqId++;
+ }
+ break;
+ case 2:
+ LZDecompressWram(gUnknown_8E84B70, GetBgTilemapBuffer(1));
+ sTMCaseDynamicResources->seqId++;
+ break;
+ case 3:
+ if (gSaveBlock2Ptr->playerGender == MALE)
+ LoadCompressedPalette(gUnknown_8E84CB0, 0, 0x80);
+ else
+ LoadCompressedPalette(gUnknown_8E84D20, 0, 0x80);
+ sTMCaseDynamicResources->seqId++;
+ break;
+ case 4:
+ LoadCompressedObjectPic(&sTMSpriteSheet);
+ sTMCaseDynamicResources->seqId++;
+ break;
+ default:
+ LoadTMTypePalettes();
+ sTMCaseDynamicResources->seqId = 0;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static void CreateTMCaseListMenuBuffers(void)
+{
+ struct BagPocket * pocket = &gBagPockets[POCKET_TM_CASE - 1];
+ sListMenuItemsBuffer = Alloc((pocket->capacity + 1) * sizeof(struct ListMenuItem));
+ sListMenuStringsBuffer = Alloc(sTMCaseDynamicResources->numTMs * 29);
+}
+
+static void InitTMCaseListMenuItems(void)
+{
+ struct BagPocket * pocket = &gBagPockets[POCKET_TM_CASE - 1];
+ u16 i;
+
+ for (i = 0; i < sTMCaseDynamicResources->numTMs; i++)
+ {
+ GetTMNumberAndMoveString(sListMenuStringsBuffer[i], pocket->itemSlots[i].itemId);
+ sListMenuItemsBuffer[i].unk_00 = sListMenuStringsBuffer[i];
+ sListMenuItemsBuffer[i].unk_04 = i;
+ }
+ sListMenuItemsBuffer[i].unk_00 = gText_Close;
+ sListMenuItemsBuffer[i].unk_04 = -2;
+ gMultiuseListMenuTemplate.items = sListMenuItemsBuffer;
+ gMultiuseListMenuTemplate.totalItems = sTMCaseDynamicResources->numTMs + 1;
+ gMultiuseListMenuTemplate.windowId = 0;
+ gMultiuseListMenuTemplate.header_X = 0;
+ gMultiuseListMenuTemplate.item_X = 8;
+ gMultiuseListMenuTemplate.cursor_X = 0;
+ gMultiuseListMenuTemplate.lettersSpacing = 0;
+ gMultiuseListMenuTemplate.itemVerticalPadding = 2;
+ gMultiuseListMenuTemplate.upText_Y = 2;
+ gMultiuseListMenuTemplate.maxShowed = sTMCaseDynamicResources->maxTMsShown;
+ gMultiuseListMenuTemplate.fontId = 2;
+ gMultiuseListMenuTemplate.cursorPal = 2;
+ gMultiuseListMenuTemplate.fillValue = 0;
+ gMultiuseListMenuTemplate.cursorShadowPal = 3;
+ gMultiuseListMenuTemplate.moveCursorFunc = TMCase_MoveCursorFunc;
+ gMultiuseListMenuTemplate.itemPrintFunc = TMCase_ItemPrintFunc;
+ gMultiuseListMenuTemplate.cursorKind = 0;
+ gMultiuseListMenuTemplate.scrollMultiple = 0;
+}
+
+static void GetTMNumberAndMoveString(u8 * dest, u16 itemId)
+{
+ StringCopy(gStringVar4, gText_FontSize0);
+ if (itemId >= ITEM_HM01)
+ {
+ StringAppend(gStringVar4, sText_ClearTo18);
+ StringAppend(gStringVar4, gOtherText_UnkF9_08_Clear_01);
+ ConvertIntToDecimalStringN(gStringVar1, itemId - ITEM_HM01 + 1, STR_CONV_MODE_LEADING_ZEROS, 1);
+ StringAppend(gStringVar4, gStringVar1);
+ }
+ else
+ {
+ StringAppend(gStringVar4, gOtherText_UnkF9_08_Clear_01);
+ ConvertIntToDecimalStringN(gStringVar1, itemId - ITEM_TM01 + 1, STR_CONV_MODE_LEADING_ZEROS, 2);
+ StringAppend(gStringVar4, gStringVar1);
+ }
+ StringAppend(gStringVar4, sText_SingleSpace);
+ StringAppend(gStringVar4, gText_FontSize2);
+ StringAppend(gStringVar4, gMoveNames[ItemIdToBattleMoveId(itemId)]);
+ StringCopy(dest, gStringVar4);
+}
+
+static void TMCase_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list)
+{
+ u16 itemId;
+
+ if (itemIndex == -2)
+ itemId = 0;
+ else
+ itemId = BagGetItemIdByPocketPosition(POCKET_TM_CASE, itemIndex);
+
+ if (onInit != TRUE)
+ {
+ PlaySE(SE_SELECT);
+ InitSelectedTMSpriteData(sTMCaseDynamicResources->tmSpriteId, itemId);
+ }
+ TMCase_MoveCursor_UpdatePrintedDescription(itemIndex);
+ TMCase_MoveCursor_UpdatePrintedTMInfo(itemId);
+}
+
+static void TMCase_ItemPrintFunc(u8 windowId, s32 itemId, u8 y)
+{
+ if (itemId != -2)
+ {
+ if (!itemid_is_unique(BagGetItemIdByPocketPosition(POCKET_TM_CASE, itemId)))
+ {
+ ConvertIntToDecimalStringN(gStringVar1, BagGetQuantityByPocketPosition(POCKET_TM_CASE, itemId), STR_CONV_MODE_RIGHT_ALIGN, 3);
+ StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
+ AddTextPrinterParameterized_ColorByIndex(windowId, 0, gStringVar4, 0x7E, y, 0, 0, 0xFF, 1);
+ }
+ else
+ {
+ PlaceHMTileInWindow(windowId, 8, y);
+ }
+ }
+}
+
+static void TMCase_MoveCursor_UpdatePrintedDescription(s32 itemIndex)
+{
+ const u8 * str;
+ if (itemIndex != -2)
+ {
+ str = ItemId_GetDescription(BagGetItemIdByPocketPosition(POCKET_TM_CASE, itemIndex));
+ }
+ else
+ {
+ str = gText_TMCaseWillBePutAway;
+ }
+ FillWindowPixelBuffer(1, 0);
+ AddTextPrinterParameterized_ColorByIndex(1, 2, str, 2, 3, 1, 0, 0, 0);
+}
+
+static void FillBG2RowWithPalette_2timesNplus1(s32 a0)
+{
+ sub_80F6B08(2, 0, 12, 30, 8, 2 * a0 + 1);
+ schedule_bg_copy_tilemap_to_vram(2);
+}
+
+static void PrintListMenuCursorByID_WithColorIdx(u8 a0, u8 a1)
+{
+ PrintListMenuCursorAt_WithColorIdx(ListMenuGetYCoordForPrintingArrowCursor(a0), a1);
+}
+
+static void PrintListMenuCursorAt_WithColorIdx(u8 a0, u8 a1)
+{
+ if (a1 == 0xFF)
+ {
+ FillWindowPixelRect(0, 0, 0, a0, GetFontAttribute(2, 0), GetFontAttribute(2, 1));
+ CopyWindowToVram(0, 2);
+ }
+ else
+ {
+ AddTextPrinterParameterized_ColorByIndex(0, 2, gFameCheckerText_ListMenuCursor, 0, a0, 0, 0, 0, a1);
+ }
+}
+
+static void CreateTMCaseScrollIndicatorArrowPair_Main(void)
+{
+ sTMCaseDynamicResources->scrollIndicatorArrowPairId = AddScrollIndicatorArrowPairParametrized(2, 0xA0, 0x08, 0x58, sTMCaseDynamicResources->numTMs - sTMCaseDynamicResources->maxTMsShown + 1, 0x6E, 0x6E, &sTMCaseStaticResources.scrollOffset);
+}
+
+static void CreateTMCaseScrollIndicatorArrowPair_SellQuantitySelect(void)
+{
+ sTMCaseDynamicResources->currItem = 1;
+ sTMCaseDynamicResources->scrollIndicatorArrowPairId = AddScrollIndicatorArrowPairParametrized(2, 0x98, 0x48, 0x68, 2, 0x6E, 0x6E, &sTMCaseDynamicResources->currItem);
+}
+
+static void RemoveTMCaseScrollIndicatorArrowPair(void)
+{
+ if (sTMCaseDynamicResources->scrollIndicatorArrowPairId != 0xFF)
+ {
+ RemoveScrollIndicatorArrowPair(sTMCaseDynamicResources->scrollIndicatorArrowPairId);
+ sTMCaseDynamicResources->scrollIndicatorArrowPairId = 0xFF;
+ }
+}
+
+void ResetTMCaseCursorPos(void)
+{
+ sTMCaseStaticResources.selectedRow = 0;
+ sTMCaseStaticResources.scrollOffset = 0;
+}
+
+static void TMCaseSetup_GetTMCount(void)
+{
+ struct BagPocket * pocket = &gBagPockets[POCKET_TM_CASE - 1];
+ u16 i;
+
+ sub_809A584(pocket->itemSlots, pocket->capacity);
+ sTMCaseDynamicResources->numTMs = 0;
+ for (i = 0; i < pocket->capacity; i++)
+ {
+ if (pocket->itemSlots[i].itemId == ITEM_NONE)
+ break;
+ sTMCaseDynamicResources->numTMs++;
+ }
+ sTMCaseDynamicResources->maxTMsShown = min(sTMCaseDynamicResources->numTMs + 1, 5);
+}
+
+static void TMCaseSetup_InitListMenuPositions(void)
+{
+ if (sTMCaseStaticResources.scrollOffset != 0)
+ {
+ if (sTMCaseStaticResources.scrollOffset + sTMCaseDynamicResources->maxTMsShown > sTMCaseDynamicResources->numTMs + 1)
+ sTMCaseStaticResources.scrollOffset = sTMCaseDynamicResources->numTMs + 1 - sTMCaseDynamicResources->maxTMsShown;
+ }
+ if (sTMCaseStaticResources.scrollOffset + sTMCaseStaticResources.selectedRow >= sTMCaseDynamicResources->numTMs + 1)
+ {
+ if (sTMCaseDynamicResources->numTMs + 1 < 2)
+ sTMCaseStaticResources.selectedRow = 0;
+ else
+ sTMCaseStaticResources.selectedRow = sTMCaseDynamicResources->numTMs;
+ }
+}
+
+static void TMCaseSetup_UpdateVisualMenuOffset(void)
+{
+ u8 i;
+ if (sTMCaseStaticResources.selectedRow > 3)
+ {
+ for (i = 0; i <= sTMCaseStaticResources.selectedRow - 3 && sTMCaseStaticResources.scrollOffset + sTMCaseDynamicResources->maxTMsShown != sTMCaseDynamicResources->numTMs + 1; i++)
+ {
+ do {} while (0);
+ sTMCaseStaticResources.selectedRow--;
+ sTMCaseStaticResources.scrollOffset++;
+ }
+ }
+}
+
+static void DestroyTMCaseBuffers(void)
+{
+ if (sTMCaseDynamicResources != NULL)
+ Free(sTMCaseDynamicResources);
+ if (sTilemapBuffer != NULL)
+ Free(sTilemapBuffer);
+ if (sListMenuItemsBuffer != NULL)
+ Free(sListMenuItemsBuffer);
+ if (sListMenuStringsBuffer != NULL)
+ Free(sListMenuStringsBuffer);
+ if (sTMSpritePaletteBuffer != NULL)
+ Free(sTMSpritePaletteBuffer);
+ FreeAllWindowBuffers();
+}
+
+static void Task_BeginFadeOutFromTMCase(u8 taskId)
+{
+ BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK);
+ gTasks[taskId].func = Task_FadeOutAndCloseTMCase;
+}
+
+static void Task_FadeOutAndCloseTMCase(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (!gPaletteFade.active)
+ {
+ DestroyListMenu(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
+ if (sTMCaseDynamicResources->savedCallback != NULL)
+ SetMainCallback2(sTMCaseDynamicResources->savedCallback);
+ else
+ SetMainCallback2(sTMCaseStaticResources.savedCallback);
+ RemoveTMCaseScrollIndicatorArrowPair();
+ DestroyTMCaseBuffers();
+ DestroyTask(taskId);
+ }
+}
+
+static void Task_TMCaseMain(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+ s32 input;
+
+ if (!gPaletteFade.active)
+ {
+ if (sub_80BF72C() != TRUE)
+ {
+ input = ListMenuHandleInput(data[0]);
+ get_coro_args_x18_x1A(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
+ if (JOY_NEW(SELECT_BUTTON) && sTMCaseStaticResources.unk_05 == 1)
+ {
+ PlaySE(SE_SELECT);
+ gSpecialVar_ItemId = ITEM_NONE;
+ Task_BeginFadeOutFromTMCase(taskId);
+ }
+ else
+ {
+ switch (input)
+ {
+ case -1:
+ break;
+ case -2:
+ PlaySE(SE_SELECT);
+ gSpecialVar_ItemId = 0;
+ Task_BeginFadeOutFromTMCase(taskId);
+ break;
+ default:
+ PlaySE(SE_SELECT);
+ FillBG2RowWithPalette_2timesNplus1(1);
+ RemoveTMCaseScrollIndicatorArrowPair();
+ PrintListMenuCursorByID_WithColorIdx(data[0], 2);
+ data[1] = input;
+ data[2] = BagGetQuantityByPocketPosition(POCKET_TM_CASE, input);
+ gSpecialVar_ItemId = BagGetItemIdByPocketPosition(POCKET_TM_CASE, input);
+ gTasks[taskId].func = sSelectTMActionTasks[sTMCaseStaticResources.tmCaseMenuType];
+ break;
+ }
+ }
+ }
+ }
+}
+
+static void Subtask_ReturnToTMCaseMain(u8 taskId)
+{
+ FillBG2RowWithPalette_2timesNplus1(0);
+ CreateTMCaseScrollIndicatorArrowPair_Main();
+ gTasks[taskId].func = Task_TMCaseMain;
+}
+
+static void Task_SelectTMAction_FromFieldBag(u8 taskId)
+{
+ u8 * strbuf;
+ TMCase_SetWindowBorder2(2);
+ if (!sub_80BF708() && InUnionRoom() != TRUE)
+ {
+ AddTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId, 0);
+ sTMCaseDynamicResources->menuActionIndices = sMenuActionIndices_Field;
+ sTMCaseDynamicResources->numMenuActions = NELEMS(sMenuActionIndices_Field);
+ }
+ else
+ {
+ AddTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId, 1);
+ sTMCaseDynamicResources->menuActionIndices = sMenuActionIndices_UnionRoom;
+ sTMCaseDynamicResources->numMenuActions = NELEMS(sMenuActionIndices_UnionRoom);
+ }
+ AddItemMenuActionTextPrinters(sTMCaseDynamicResources->contextMenuWindowId, 2, GetMenuCursorDimensionByFont(2, 0), 2, 0, GetFontAttribute(2, 1) + 2, sTMCaseDynamicResources->numMenuActions, sMenuActions_UseGiveExit, sTMCaseDynamicResources->menuActionIndices);
+ ProgramAndPlaceMenuCursorOnWindow(sTMCaseDynamicResources->contextMenuWindowId, 2, 0, 2, GetFontAttribute(2, 1) + 2, sTMCaseDynamicResources->numMenuActions, 0);
+ strbuf = Alloc(256);
+ GetTMNumberAndMoveString(strbuf, gSpecialVar_ItemId);
+ StringAppend(strbuf, gText_IsSelected);
+ AddTextPrinterParameterized_ColorByIndex(2, 2, strbuf, 0, 2, 1, 0, 0, 1);
+ Free(strbuf);
+ if (itemid_is_unique(gSpecialVar_ItemId))
+ {
+ PlaceHMTileInWindow(2, 0, 2);
+ CopyWindowToVram(2, 2);
+ }
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ gTasks[taskId].func = Task_TMContextMenu_HandleInput;
+}
+
+static void Task_TMContextMenu_HandleInput(u8 taskId)
+{
+ s8 input;
+
+ if (sub_80BF72C() != TRUE)
+ {
+ input = ProcessMenuInputNoWrapAround();
+ switch (input)
+ {
+ case -1:
+ PlaySE(SE_SELECT);
+ sMenuActions_UseGiveExit[sTMCaseDynamicResources->menuActionIndices[sTMCaseDynamicResources->numMenuActions - 1]].func.void_u8(taskId);
+ break;
+ case -2:
+ break;
+ default:
+ PlaySE(SE_SELECT);
+ sMenuActions_UseGiveExit[sTMCaseDynamicResources->menuActionIndices[input]].func.void_u8(taskId);
+ break;
+ }
+ }
+}
+
+static void TMHMContextMenuAction_Use(u8 taskId)
+{
+ RemoveTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId);
+ sub_810F4D8(2, 0);
+ ClearWindowTilemap(2);
+ PutWindowTilemap(0);
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ if (CalculatePlayerPartyCount() == 0)
+ {
+ PrintError_ThereIsNoPokemon(taskId);
+ }
+ else
+ {
+ gUnknown_3005E98 = sub_8125B40;
+ sTMCaseDynamicResources->savedCallback = sub_8124C8C;
+ Task_BeginFadeOutFromTMCase(taskId);
+ }
+}
+
+static void TMHMContextMenuAction_Give(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+ u16 itemId = BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1]);
+ RemoveTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId);
+ sub_810F4D8(2, 0);
+ ClearWindowTilemap(2);
+ PutWindowTilemap(1);
+ PutWindowTilemap(4);
+ PutWindowTilemap(5);
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ if (!itemid_is_unique(itemId))
+ {
+ if (CalculatePlayerPartyCount() == 0)
+ {
+ PrintError_ThereIsNoPokemon(taskId);
+ }
+ else
+ {
+ sTMCaseDynamicResources->savedCallback = sub_8126EDC;
+ Task_BeginFadeOutFromTMCase(taskId);
+ }
+ }
+ else
+ {
+ PrintError_ItemCantBeHeld(taskId);
+ }
+}
+
+static void PrintError_ThereIsNoPokemon(u8 taskId)
+{
+ TMCase_PrintMessageWithFollowupTask(taskId, 2, gText_ThereIsNoPokemon, Task_WaitButtonAfterErrorPrint);
+}
+
+static void PrintError_ItemCantBeHeld(u8 taskId)
+{
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
+ StringExpandPlaceholders(gStringVar4, gText_ItemCantBeHeld);
+ TMCase_PrintMessageWithFollowupTask(taskId, 2, gStringVar4, Task_WaitButtonAfterErrorPrint);
+}
+
+static void Task_WaitButtonAfterErrorPrint(u8 taskId)
+{
+ if (JOY_NEW(A_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ Subtask_CloseContextMenuAndReturnToMain(taskId);
+ }
+}
+
+static void Subtask_CloseContextMenuAndReturnToMain(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ DestroyListMenu(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
+ data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sTMCaseStaticResources.scrollOffset, sTMCaseStaticResources.selectedRow);
+ PrintListMenuCursorByID_WithColorIdx(data[0], 1);
+ sub_810F260(6, 0);
+ ClearWindowTilemap(6);
+ PutWindowTilemap(1);
+ PutWindowTilemap(4);
+ PutWindowTilemap(5);
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ Subtask_ReturnToTMCaseMain(taskId);
+}
+
+static void TMHMContextMenuAction_Exit(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ RemoveTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId);
+ sub_810F4D8(2, 0);
+ ClearWindowTilemap(2);
+ PutWindowTilemap(0);
+ PrintListMenuCursorByID_WithColorIdx(data[0], 1);
+ PutWindowTilemap(1);
+ PutWindowTilemap(4);
+ PutWindowTilemap(5);
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ Subtask_ReturnToTMCaseMain(taskId);
+}
+
+static void Task_SelectTMAction_Type1(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (!itemid_is_unique(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])))
+ {
+ sTMCaseDynamicResources->savedCallback = c2_8123744;
+ Task_BeginFadeOutFromTMCase(taskId);
+ }
+ else
+ {
+ PrintError_ItemCantBeHeld(taskId);
+ }
+}
+
+static void Task_SelectTMAction_Type3(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (!itemid_is_unique(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])))
+ {
+ sTMCaseDynamicResources->savedCallback = sub_808CE60;
+ Task_BeginFadeOutFromTMCase(taskId);
+ }
+ else
+ {
+ PrintError_ItemCantBeHeld(taskId);
+ }
+}
+
+static void Task_SelectTMAction_FromSellMenu(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (itemid_get_market_price(gSpecialVar_ItemId) == 0)
+ {
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
+ StringExpandPlaceholders(gStringVar4, gText_OhNoICantBuyThat);
+ TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Subtask_CloseContextMenuAndReturnToMain);
+ }
+ else
+ {
+ data[8] = 1;
+ if (data[2] == 1)
+ {
+ HandlePrintMoneyOnHand();
+ Task_AskConfirmSaleWithAmount(taskId);
+ }
+ else
+ {
+ if (data[2] > 99)
+ data[2] = 99;
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
+ StringExpandPlaceholders(gStringVar4, gText_HowManyWouldYouLikeToSell);
+ TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Task_InitQuantitySelectUI);
+ }
+ }
+}
+
+static void Task_AskConfirmSaleWithAmount(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6);
+ StringExpandPlaceholders(gStringVar4, gText_ICanPayThisMuch_WouldThatBeOkay);
+ TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Task_PlaceYesNoBox);
+}
+
+static void Task_PlaceYesNoBox(u8 taskId)
+{
+ HandleCreateYesNoMenu(taskId, &sYesNoFuncTable);
+}
+
+static void Task_SaleOfTMsCancelled(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ sub_810F4D8(8, 0);
+ sub_810F260(6, 0);
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ PutWindowTilemap(3);
+ PutWindowTilemap(4);
+ PutWindowTilemap(5);
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ PrintListMenuCursorByID_WithColorIdx(data[0], 1);
+ Subtask_ReturnToTMCaseMain(taskId);
+}
+
+static void Task_InitQuantitySelectUI(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ TMCase_SetWindowBorder1(7);
+ ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, 2);
+ StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
+ AddTextPrinterParameterized_ColorByIndex(7, 0, gStringVar4, 4, 10, 1, 0, 0, 1);
+ SellTM_PrintQuantityAndSalePrice(1, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8]);
+ HandlePrintMoneyOnHand();
+ CreateTMCaseScrollIndicatorArrowPair_SellQuantitySelect();
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ gTasks[taskId].func = Task_QuantitySelect_HandleInput;
+}
+
+static void SellTM_PrintQuantityAndSalePrice(s16 quantity, s32 amount)
+{
+ FillWindowPixelBuffer(7, 0x11);
+ ConvertIntToDecimalStringN(gStringVar1, quantity, STR_CONV_MODE_LEADING_ZEROS, 2);
+ StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
+ AddTextPrinterParameterized_ColorByIndex(7, 0, gStringVar4, 4, 10, 1, 0, 0, 1);
+ PrintMoneyAmount(7, 0x38, 0x0A, amount, 0);
+}
+
+static void Task_QuantitySelect_HandleInput(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (sub_80BF848(&data[8], data[2]) == 1)
+ {
+ SellTM_PrintQuantityAndSalePrice(data[8], itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8]);
+ }
+ else if (JOY_NEW(A_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ sub_810F4D8(7, 0);
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ RemoveTMCaseScrollIndicatorArrowPair();
+ Task_AskConfirmSaleWithAmount(taskId);
+ }
+ else if (JOY_NEW(B_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ sub_810F4D8(7, 0);
+ sub_810F4D8(8, 0);
+ sub_810F260(6, 0);
+ PutWindowTilemap(3);
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ RemoveTMCaseScrollIndicatorArrowPair();
+ PrintListMenuCursorByID_WithColorIdx(data[0], 1);
+ Subtask_ReturnToTMCaseMain(taskId);
+ }
+}
+
+static void Task_PrintSaleConfirmedText(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ PutWindowTilemap(0);
+ schedule_bg_copy_tilemap_to_vram(0);
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
+ ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6);
+ StringExpandPlaceholders(gStringVar4, gText_TurnedOverItemsWorthYen);
+ TMCase_PrintMessageWithFollowupTask(taskId, 2, gStringVar4, Task_DoSaleOfTMs);
+}
+
+static void Task_DoSaleOfTMs(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ PlaySE(0xF8);
+ RemoveBagItem(gSpecialVar_ItemId, data[8]);
+ AddMoney(&gSaveBlock1Ptr->money, itemid_get_market_price(gSpecialVar_ItemId) / 2 * data[8]);
+ sub_809C09C(gSpecialVar_ItemId, data[8], 2);
+ DestroyListMenu(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
+ TMCaseSetup_GetTMCount();
+ TMCaseSetup_InitListMenuPositions();
+ InitTMCaseListMenuItems();
+ data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sTMCaseStaticResources.scrollOffset, sTMCaseStaticResources.selectedRow);
+ PrintListMenuCursorByID_WithColorIdx(data[0], 2);
+ PrintMoneyAmountInMoneyBox(8, GetMoney(&gSaveBlock1Ptr->money), 0);
+ gTasks[taskId].func = Task_AfterSale_ReturnToList;
+}
+
+static void Task_AfterSale_ReturnToList(u8 taskId)
+{
+ if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ sub_810F4D8(8, 0);
+ sub_810F260(6, 0);
+ PutWindowTilemap(1);
+ PutWindowTilemap(3);
+ PutWindowTilemap(4);
+ PutWindowTilemap(5);
+ Subtask_CloseContextMenuAndReturnToMain(taskId);
+ }
+}
+
+void PokeDude_InitTMCase(void)
+{
+ sPokeDudePackBackup = AllocZeroed(sizeof(*sPokeDudePackBackup));
+ memcpy(sPokeDudePackBackup->bagPocket_TMHM, gSaveBlock1Ptr->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM));
+ memcpy(sPokeDudePackBackup->bagPocket_KeyItems, gSaveBlock1Ptr->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems));
+ sPokeDudePackBackup->unk_160 = sTMCaseStaticResources.selectedRow;
+ sPokeDudePackBackup->unk_162 = sTMCaseStaticResources.scrollOffset;
+ ClearItemSlots(gSaveBlock1Ptr->bagPocket_TMHM, NELEMS(gSaveBlock1Ptr->bagPocket_TMHM));
+ ClearItemSlots(gSaveBlock1Ptr->bagPocket_KeyItems, NELEMS(gSaveBlock1Ptr->bagPocket_KeyItems));
+ ResetTMCaseCursorPos();
+ AddBagItem(ITEM_TM01, 1);
+ AddBagItem(ITEM_TM03, 1);
+ AddBagItem(ITEM_TM09, 1);
+ AddBagItem(ITEM_TM35, 1);
+ InitTMCase(4, CB2_ReturnToTeachyTV, 0);
+}
+
+static void Task_TMCaseDude1(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (!gPaletteFade.active)
+ {
+ data[8] = 0;
+ data[9] = 0;
+ gTasks[taskId].func = Task_TMCaseDude_Playback;
+ }
+}
+
+static void Task_TMCaseDude_Playback(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (JOY_NEW(B_BUTTON))
+ {
+ if (data[8] < 21)
+ {
+ data[8] = 21;
+ sub_815AC20();
+ }
+ }
+
+ switch (data[8])
+ {
+ case 0:
+ BeginNormalPaletteFade(0xFFFF8405, 4, 0, 6, 0);
+ FillBG2RowWithPalette_2timesNplus1(1);
+ data[8]++;
+ break;
+ case 1:
+ case 11:
+ if (!gPaletteFade.active)
+ {
+ data[9]++;
+ if (data[9] > 0x65)
+ {
+ data[9] = 0;
+ data[8]++;
+ }
+ }
+ break;
+ case 2:
+ case 3:
+ case 4:
+ case 12:
+ case 13:
+ case 14:
+ if (data[9] == 0)
+ {
+ gMain.newKeys = 0;
+ gMain.newAndRepeatedKeys = DPAD_DOWN;
+ ListMenuHandleInput(data[0]);
+ }
+ data[9]++;
+ if (data[9] > 0x65)
+ {
+ data[9] = 0;
+ data[8]++;
+ }
+ break;
+ case 5:
+ case 6:
+ case 7:
+ case 15:
+ case 16:
+ case 17:
+ if (data[9] == 0)
+ {
+ gMain.newKeys = 0;
+ gMain.newAndRepeatedKeys = DPAD_UP;
+ ListMenuHandleInput(data[0]);
+ }
+ data[9]++;
+ if (data[9] > 0x65)
+ {
+ data[9] = 0;
+ data[8]++;
+ }
+ break;
+ case 8:
+ FillBG2RowWithPalette_2timesNplus1(1);
+ TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokeDudeText_TMTypes, 0);
+ gTasks[taskId].func = Task_TMCaseDude_Playback;
+ data[8]++;
+ break;
+ case 9:
+ case 19:
+ RunTextPrinters();
+ if (!IsTextPrinterActive(6))
+ data[8]++;
+ break;
+ case 10:
+ if (JOY_NEW(A_BUTTON | B_BUTTON))
+ {
+ FillBG2RowWithPalette_2timesNplus1(0);
+ BeginNormalPaletteFade(0x00000400, 0, 6, 0, 0);
+ sub_810F260(6, 0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ data[8]++;
+ }
+ break;
+ case 18:
+ FillBG2RowWithPalette_2timesNplus1(1);
+ TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokeDudeText_ReadTMDescription, NULL);
+ gTasks[taskId].func = Task_TMCaseDude_Playback; // this function
+ data[8]++;
+ break;
+ case 20:
+ if (JOY_NEW(A_BUTTON | B_BUTTON))
+ data[8]++;
+ break;
+ case 21:
+ if (!gPaletteFade.active)
+ {
+ memcpy(gSaveBlock1Ptr->bagPocket_TMHM, sPokeDudePackBackup->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM));
+ memcpy(gSaveBlock1Ptr->bagPocket_KeyItems, sPokeDudePackBackup->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems));
+ DestroyListMenu(data[0], NULL, NULL);
+ sTMCaseStaticResources.selectedRow = sPokeDudePackBackup->unk_160;
+ sTMCaseStaticResources.scrollOffset = sPokeDudePackBackup->unk_162;
+ Free(sPokeDudePackBackup);
+ CpuFastCopy(gPlttBufferFaded, gPlttBufferUnfaded, 0x400);
+ sub_8108CF0();
+ BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, 0);
+ data[8]++;
+ }
+ break;
+ default:
+ if (!gPaletteFade.active)
+ {
+ SetMainCallback2(sTMCaseStaticResources.savedCallback);
+ RemoveTMCaseScrollIndicatorArrowPair();
+ DestroyTMCaseBuffers();
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+static void InitWindowTemplatesAndPals(void)
+{
+ u8 i;
+
+ InitWindows(sWindowTemplates);
+ DeactivateAllTextPrinters();
+ sub_815001C(0, 0x5B, 0xE0);
+ sub_814FEAC(0, 0x64, 0xB0);
+ sub_814FF2C(0, 0x78, 0xD0);
+ LoadPalette(gTMCaseMainWindowPalette, 0xF0, 0x20);
+ LoadPalette(gTMCaseMainWindowPalette, 0xA0, 0x20);
+ LoadPalette(sPal3Override, 0xF6, 0x04);
+ LoadPalette(sPal3Override, 0xD6, 0x04);
+ sub_8107D38(0xc0, 0x01);
+ for (i = 0; i < 9; i++)
+ FillWindowPixelBuffer(i, 0x00);
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ PutWindowTilemap(3);
+ PutWindowTilemap(4);
+ PutWindowTilemap(5);
+ schedule_bg_copy_tilemap_to_vram(0);
+}
+
+static void AddTextPrinterParameterized_ColorByIndex(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx)
+{
+ AddTextPrinterParametrized2(windowId, fontId, x, y, letterSpacing, lineSpacing, &sTextColors[colorIdx], speed, str);
+}
+
+static void TMCase_SetWindowBorder1(u8 windowId)
+{
+ SetWindowBorderStyle(windowId, FALSE, 0x5B, 0x0E);
+}
+
+static void TMCase_SetWindowBorder2(u8 windowId)
+{
+ SetWindowBorderStyle(windowId, FALSE, 0x78, 0x0D);
+}
+
+static void TMCase_PrintMessageWithFollowupTask(u8 taskId, u8 windowId, const u8 * str, TaskFunc func)
+{
+ DisplayMessageAndContinueTask(taskId, 6, 0x64, 0x0B, windowId, GetTextSpeedSetting(), str, func);
+ schedule_bg_copy_tilemap_to_vram(1);
+}
+
+static void PrintStringTMCaseOnWindow3(void)
+{
+ u32 distance = 72 - GetStringWidth(1, gText_TMCase, 0);
+ box_print(3, 1, distance / 2, 1, &sTextColors[0], 0, gText_TMCase);
+}
+
+static void DrawMoveInfoUIMarkers(void)
+{
+ blit_move_info_icon(4, 19, 0, 0);
+ blit_move_info_icon(4, 20, 0, 12);
+ blit_move_info_icon(4, 21, 0, 24);
+ blit_move_info_icon(4, 22, 0, 36);
+ CopyWindowToVram(4, 2);
+}
+
+static void TMCase_MoveCursor_UpdatePrintedTMInfo(u16 itemId)
+{
+ u8 i;
+ u16 move;
+ const u8 * str;
+
+ FillWindowPixelRect(5, 0, 0, 0, 40, 48);
+ if (itemId == ITEM_NONE)
+ {
+ for (i = 0; i < 4; i++)
+ {
+ AddTextPrinterParameterized_ColorByIndex(5, 3, gText_ThreeHyphens, 7, 12 * i, 0, 0, 0xFF, 3);
+ }
+ CopyWindowToVram(5, 2);
+ }
+ else
+ {
+ move = ItemIdToBattleMoveId(itemId);
+ blit_move_info_icon(5, gBattleMoves[move].type + 1, 0, 0);
+ if (gBattleMoves[move].power < 2)
+ str = gText_ThreeHyphens;
+ else
+ {
+ ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].power, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ str = gStringVar1;
+ }
+ AddTextPrinterParameterized_ColorByIndex(5, 3, str, 7, 12, 0, 0, 0xFF, 3);
+ if (gBattleMoves[move].accuracy == 0)
+ str = gText_ThreeHyphens;
+ else
+ {
+ ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].accuracy, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ str = gStringVar1;
+ }
+ AddTextPrinterParameterized_ColorByIndex(5, 3, str, 7, 24, 0, 0, 0xFF, 3);
+ ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].pp, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ AddTextPrinterParameterized_ColorByIndex(5, 3, gStringVar1, 7, 36, 0, 0, 0xFF, 3);
+ CopyWindowToVram(5, 2);
+ }
+}
+
+static void PlaceHMTileInWindow(u8 windowId, u8 x, u8 y)
+{
+ BlitBitmapToWindow(windowId, gUnknown_8E99118, x, y, 16, 12);
+}
+
+static void HandlePrintMoneyOnHand(void)
+{
+ PrintMoneyAmountInMoneyBoxWithBorder(8, 0x78, 0xD, GetMoney(&gSaveBlock1Ptr->money));
+}
+
+static void HandleCreateYesNoMenu(u8 taskId, const struct YesNoFuncTable *ptrs)
+{
+ CreateYesNoMenuWithCallbacks(taskId, &sYesNoWindowTemplate, 2, 0, 2, 0x5B, 0x0E, ptrs);
+}
+
+static u8 AddTMContextMenu(u8 * a0, u8 a1)
+{
+ if (*a0 == 0xFF)
+ {
+ *a0 = AddWindow(&sTMContextWindowTemplates[a1]);
+ TMCase_SetWindowBorder1(*a0);
+ schedule_bg_copy_tilemap_to_vram(0);
+ }
+ return *a0;
+}
+
+static void RemoveTMContextMenu(u8 * a0)
+{
+ sub_810F4D8(*a0, FALSE);
+ ClearWindowTilemap(*a0);
+ RemoveWindow(*a0);
+ schedule_bg_copy_tilemap_to_vram(0);
+ *a0 = 0xFF;
+}
+
+static u8 CreateTMSprite(u16 itemId)
+{
+ u8 spriteId = CreateSprite(&sTMSpriteTemplate, 0x29, 0x2E, 0);
+ u8 r5;
+ if (itemId == ITEM_NONE)
+ {
+ UpdateTMSpritePosition(&gSprites[spriteId], 0xFF);
+ return spriteId;
+ }
+ else
+ {
+ r5 = itemId - 33;
+ SetTMSpriteAnim(&gSprites[spriteId], r5);
+ TintTMSpriteByType(gBattleMoves[ItemIdToBattleMoveId(itemId)].type);
+ UpdateTMSpritePosition(&gSprites[spriteId], r5);
+ return spriteId;
+ }
+}
+
+static void SetTMSpriteAnim(struct Sprite * sprite, u8 idx)
+{
+ if (idx >= 50)
+ StartSpriteAnim(sprite, 1);
+ else
+ StartSpriteAnim(sprite, 0);
+}
+
+static void TintTMSpriteByType(u8 type)
+{
+ u8 palIndex = IndexOfSpritePaletteTag(TM_CASE_TM_TAG) << 4;
+ LoadPalette(sTMSpritePaletteBuffer + sTMSpritePaletteOffsetByType[type], 0x100 | palIndex, 0x20);
+ if (sTMCaseStaticResources.tmCaseMenuType == 4)
+ {
+ BlendPalettes(1 << (0x10 + palIndex), 4, RGB_BLACK);
+ }
+}
+
+static void UpdateTMSpritePosition(struct Sprite * sprite, u8 var)
+{
+ s32 x, y;
+ if (var == 0xFF)
+ {
+ x = 0x1B;
+ y = 0x36;
+ sprite->pos2.y = 0x14;
+ }
+ else
+ {
+ if (var >= 50)
+ var -= 50;
+ else
+ var += 8;
+ x = 0x29 - (((0xE00 * var) / 58) >> 8);
+ y = 0x2E + (((0x800 * var) / 58) >> 8);
+ }
+ sprite->pos1.x = x;
+ sprite->pos1.y = y;
+}
+
+static void InitSelectedTMSpriteData(u8 spriteId, u16 itemId)
+{
+ gSprites[spriteId].data[0] = itemId;
+ gSprites[spriteId].data[1] = 0;
+ gSprites[spriteId].callback = SpriteCB_MoveTMSpriteInCase;
+}
+
+static void SpriteCB_MoveTMSpriteInCase(struct Sprite * sprite)
+{
+ switch (sprite->data[1])
+ {
+ case 0:
+ if (sprite->pos2.y >= 20)
+ {
+ if (sprite->data[0] != ITEM_NONE)
+ {
+ sprite->data[1]++;
+ TintTMSpriteByType(gBattleMoves[ItemIdToBattleMoveId(sprite->data[0])].type);
+ sprite->data[0] -= ITEM_TM01;
+ SetTMSpriteAnim(sprite, sprite->data[0]);
+ UpdateTMSpritePosition(sprite, sprite->data[0]);
+ }
+ else
+ sprite->callback = SpriteCallbackDummy;
+ }
+ else
+ {
+ sprite->pos2.y += 10;
+ }
+ break;
+ case 1:
+ if (sprite->pos2.y <= 0)
+ sprite->callback = SpriteCallbackDummy;
+ else
+ sprite->pos2.y -= 10;
+ }
+}
+
+static void LoadTMTypePalettes(void)
+{
+ struct SpritePalette spritePalette;
+
+ sTMSpritePaletteBuffer = Alloc(0x110 * sizeof(u16));
+ LZDecompressWram(gUnknown_8E84F20, sTMSpritePaletteBuffer);
+ LZDecompressWram(gUnknown_8E85068, sTMSpritePaletteBuffer + 0x100);
+ spritePalette.data = sTMSpritePaletteBuffer + 0x110;
+ spritePalette.tag = TM_CASE_TM_TAG;
+ LoadSpritePalette(&spritePalette);
+}
diff --git a/src/window.c b/src/window.c
index e760fc8e4..71cfa6898 100644
--- a/src/window.c
+++ b/src/window.c
@@ -320,7 +320,7 @@ void PutWindowRectTilemap(u8 windowId, u8 x, u8 y, u8 width, u8 height)
}
}
-void BlitBitmapToWindow(u8 windowId, u8 *pixels, u16 x, u16 y, u16 width, u16 height)
+void BlitBitmapToWindow(u8 windowId, const u8 *pixels, u16 x, u16 y, u16 width, u16 height)
{
BlitBitmapRectToWindow(windowId, pixels, 0, 0, width, height, x, y, width, height);
}
diff --git a/sym_common.txt b/sym_common.txt
index 16c275b01..4adfe3bac 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -301,7 +301,7 @@ gUnknown_3005E20: @ 3005E20
gUnknown_3005E60: @ 3005E60
.space 0x10
-gUnknown_3005E70: @ 3005E70
+gMultiuseListMenuTemplate: @ 3005E70
.space 0x18
.include "quest_log.o"
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 36b7c991c..5a9795eb1 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -971,14 +971,8 @@ gUnknown_2039884: @ 2039884
gUnknown_2039888: @ 2039888
.space 0x4
-gUnknown_203988C: @ 203988C
- .space 0x18
-
-gUnknown_20398A4: @ 20398A4
- .space 0x8
-
-gUnknown_20398AC: @ 20398AC
- .space 0x8
+gBagPockets: @ 203988C
+ .space 0x28
gUnknown_20398B4: @ 20398B4
.space 0x4
@@ -1511,30 +1505,7 @@ gUnknown_203B0EE: @ 203B0EE
.include "src/fame_checker.o"
.include "src/oak_speech.o"
-
-gUnknown_203B10C: @ 203B10C
- .space 0xA
-
-gUnknown_203B116: @ 203B116
- .space 0x2
-
-gUnknown_203B118: @ 203B118
- .space 0x4
-
-gUnknown_203B11C: @ 203B11C
- .space 0x4
-
-gUnknown_203B120: @ 203B120
- .space 0x4
-
-gUnknown_203B124: @ 203B124
- .space 0x4
-
-gUnknown_203B128: @ 203B128
- .space 0x4
-
-gUnknown_203B12C: @ 203B12C
- .space 0x4
+ .include "src/tm_case.o"
gUnknown_203B130: @ 203B130
.space 0x10
@@ -1688,7 +1659,7 @@ gUnknown_203F43C: @ 203F43C
gUnknown_203F440: @ 203F440
.space 0x4
-gUnknown_203F444: @ 203F444
+gTeachyTV_StaticResources: @ 203F444
.space 0x6
gUnknown_203F44A: @ 203F44A