summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@users.noreply.github.com>2019-06-17 13:46:53 -0400
committerGitHub <noreply@github.com>2019-06-17 13:46:53 -0400
commite3de3422a8ab5225e6ecffec38c19cac89d17915 (patch)
treee12eddb9a126083e308968b56ce69d6dd85c42aa
parente28c7676126d31efa690f686152be19d5b62f743 (diff)
parent2b750cf44491aee3b2fe8265afb4ac6620500afa (diff)
Merge pull request #69 from pret/item_pc
Item pc
-rw-r--r--Makefile14
-rw-r--r--asm/battle_1.s6
-rw-r--r--asm/berry_crush_3.s8
-rw-r--r--asm/berry_pouch.s26
-rw-r--r--asm/buy_menu_helpers.s6
-rw-r--r--asm/clear_save_data_screen.s4
-rw-r--r--asm/dodrio_berry_picking.s4
-rw-r--r--asm/field_specials.s6
-rw-r--r--asm/hall_of_fame.s2
-rw-r--r--asm/item.s20
-rw-r--r--asm/item_menu.s50
-rw-r--r--asm/item_menu_icons.s18
-rw-r--r--asm/item_pc.s2909
-rw-r--r--asm/item_use.s24
-rw-r--r--asm/learn_move.s2
-rw-r--r--asm/link_rfu.s2
-rw-r--r--asm/link_rfu_3.s2
-rw-r--r--asm/list_menu.s2
-rw-r--r--asm/mail.s2
-rw-r--r--asm/mailbox_pc.s2
-rw-r--r--asm/main_menu.s2
-rw-r--r--asm/menu.s14
-rw-r--r--asm/menu_helpers.s8
-rw-r--r--asm/new_menu_helpers.s14
-rw-r--r--asm/party_menu.s128
-rw-r--r--asm/player_pc.s12
-rw-r--r--asm/pokemon_jump_2.s2
-rw-r--r--asm/pokemon_special_anim.s6
-rw-r--r--asm/pokemon_storage_system.s12
-rw-r--r--asm/script_menu.s2
-rw-r--r--asm/shop.s24
-rw-r--r--asm/start_menu.s16
-rw-r--r--asm/trade.s4
-rw-r--r--asm/union_room_chat.s10
-rw-r--r--data/data_835B488.s8
-rw-r--r--data/data_83FECCC.s66
-rw-r--r--data/graphics.s12
-rw-r--r--graphics/item_pc/unk_8E85090.pngbin0 -> 746 bytes
-rw-r--r--graphics/item_pc/unk_8E85458.binbin0 -> 2048 bytes
-rw-r--r--graphics/text_window/unk_841F1C8.pngbin0 -> 257 bytes
-rw-r--r--graphics_file_rules.mk4
-rw-r--r--include/constants/items.h2
-rw-r--r--include/graphics.h7
-rw-r--r--include/item.h6
-rw-r--r--include/item_menu.h1
-rw-r--r--include/item_menu_icons.h6
-rw-r--r--include/item_pc.h7
-rw-r--r--include/item_use.h2
-rw-r--r--include/list_menu.h1
-rw-r--r--include/menu.h5
-rw-r--r--include/menu_helpers.h3
-rw-r--r--include/new_menu_helpers.h2
-rw-r--r--include/party_menu.h1
-rw-r--r--include/pc_screen_effect.h9
-rw-r--r--include/strings.h13
-rw-r--r--include/text.h12
-rw-r--r--include/text_window.h6
-rw-r--r--include/text_window_graphics.h6
-rw-r--r--include/window.h4
-rw-r--r--ld_script.txt2
-rw-r--r--src/bag.c10
-rw-r--r--src/coins.c4
-rw-r--r--src/fldeff_softboiled.c2
-rw-r--r--src/item_pc.c1150
-rw-r--r--src/money.c4
-rw-r--r--src/oak_speech.c6
-rw-r--r--src/quest_log.c34
-rw-r--r--src/text_window.c24
-rw-r--r--src/text_window_graphics.c12
-rw-r--r--src/tm_case.c40
-rw-r--r--src/trainer_tower.c2
-rw-r--r--src/unk_815EDDC.c6
-rw-r--r--src/vs_seeker.c2
-rw-r--r--src/window.c2
-rw-r--r--sym_ewram.txt23
75 files changed, 1588 insertions, 3281 deletions
diff --git a/Makefile b/Makefile
index a59f032bb..a5de0f9da 100644
--- a/Makefile
+++ b/Makefile
@@ -61,6 +61,16 @@ MAPJSON := tools/mapjson/mapjson
$(shell mkdir -p $(C_BUILDDIR) $(ASM_BUILDDIR) $(DATA_ASM_BUILDDIR) $(SONG_BUILDDIR))
+infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line))))
+
+# Build tools when building the rom
+# Disable dependency scanning for clean/tidy/tools
+ifeq (,$(filter-out all compare,$(MAKECMDGOALS)))
+$(call infoshell, $(MAKE) tools)
+else
+NODEP := 1
+endif
+
C_SRCS := $(wildcard $(C_SUBDIR)/*.c)
C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS))
@@ -76,9 +86,11 @@ SONG_OBJS := $(patsubst $(SONG_SUBDIR)/%.s,$(SONG_BUILDDIR)/%.o,$(SONG_SRCS))
OBJS := $(C_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS) $(SONG_OBJS)
OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(OBJS))
+MAKEFLAGS += --no-print-directory
+
all: rom
-rom: tools $(ROM)
+rom: $(ROM)
tools:
@$(MAKE) -C tools/gbagfx
diff --git a/asm/battle_1.s b/asm/battle_1.s
index e8bb73629..87cb0e750 100644
--- a/asm/battle_1.s
+++ b/asm/battle_1.s
@@ -223,11 +223,11 @@ sub_800F380: @ 800F380
movs r0, 0x2
movs r1, 0x12
movs r2, 0x10
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
movs r0, 0x2
movs r1, 0x22
movs r2, 0x10
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
ldr r4, _0800F3F0 @ =gPlttBufferUnfaded
adds r0, r4, 0
adds r0, 0xB8
@@ -257,7 +257,7 @@ sub_800F380: @ 800F380
movs r0, 0
movs r1, 0x30
movs r2, 0x70
- bl sub_814FEAC
+ bl TextWindow_SetBubbleFrame_841F1C8
adds r0, r4, 0
adds r0, 0xEC
movs r1, 0
diff --git a/asm/berry_crush_3.s b/asm/berry_crush_3.s
index 4972f2566..f447c848f 100644
--- a/asm/berry_crush_3.s
+++ b/asm/berry_crush_3.s
@@ -2097,7 +2097,7 @@ _0814E6E0:
ldr r4, _0814E700 @ =0x0000021d
adds r1, r4, 0
movs r2, 0xD0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
ldrb r0, [r5]
movs r1, 0
adds r2, r4, 0
@@ -2246,7 +2246,7 @@ sub_814E80C: @ 814E80C
adds r5, r4, r0
ldrb r0, [r5]
movs r1, 0x1
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r5]
bl RemoveWindow
adds r0, r4, 0
@@ -2309,7 +2309,7 @@ _0814E876:
ldr r4, _0814E8AC @ =0x0000021d
adds r1, r4, 0
movs r2, 0xD0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
ldrb r0, [r7, 0x2]
movs r1, 0
adds r2, r4, 0
@@ -2499,7 +2499,7 @@ _0814EA3C: .4byte gMain
_0814EA40:
ldrb r0, [r7, 0x2]
movs r1, 0x1
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r7, 0x2]
bl ClearWindowTilemap
ldrb r0, [r7, 0x2]
diff --git a/asm/berry_pouch.s b/asm/berry_pouch.s
index 556cccbe0..63ad10a0c 100644
--- a/asm/berry_pouch.s
+++ b/asm/berry_pouch.s
@@ -130,7 +130,7 @@ _0813CE32:
lsrs r0, 24
cmp r0, 0x1
beq _0813CE56
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -199,10 +199,10 @@ _0813CEEC:
bl ResetSpriteData
b _0813CFD2
_0813CEF2:
- bl sub_80984D8
+ bl ResetItemMenuIconState
b _0813CFD2
_0813CEF8:
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
cmp r0, 0
bne _0813CFD2
@@ -798,7 +798,7 @@ _0813D3D6:
ldrb r1, [r0, 0x9]
movs r0, 0x1
eors r0, r1
- bl sub_8098940
+ bl DestroyItemMenuIcon
ldr r1, [r4]
ldrb r0, [r1, 0x7]
cmp r0, r5
@@ -1028,7 +1028,7 @@ sub_813D594: @ 813D594
movs r1, 0
movs r2, 0x10
movs r3, 0x1E
- bl sub_80F6B08
+ bl SetBgRectPal
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
add sp, 0x8
@@ -1869,7 +1869,7 @@ _0813DC18: .4byte gUnknown_203F384
_0813DC1C: .4byte gUnknown_84643B0
_0813DC20: .4byte gUnknown_203F388
_0813DC24:
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1985,7 +1985,7 @@ _0813DC86:
ldr r1, _0813DD68 @ =gStringVar1
bl sub_813D39C
ldr r5, _0813DD6C @ =gStringVar4
- ldr r1, _0813DD70 @ =gUnknown_84162FF
+ ldr r1, _0813DD70 @ =gOtherText_StrVar1
adds r0, r5, 0
bl StringExpandPlaceholders
movs r0, 0x2
@@ -2014,7 +2014,7 @@ _0813DD60: .4byte gUnknown_203F388
_0813DD64: .4byte gUnknown_846437C
_0813DD68: .4byte gStringVar1
_0813DD6C: .4byte gStringVar4
-_0813DD70: .4byte gUnknown_84162FF
+_0813DD70: .4byte gOtherText_StrVar1
thumb_func_end sub_813DBE4
thumb_func_start sub_813DD74
@@ -3367,15 +3367,15 @@ sub_813E910: @ 813E910
movs r0, 0
movs r1, 0x1
movs r2, 0xE0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
movs r0, 0
movs r1, 0x13
movs r2, 0xD0
- bl sub_814FEAC
+ bl TextWindow_SetBubbleFrame_841F1C8
movs r0, 0
movs r1, 0xA
movs r2, 0xC0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
ldr r0, _0813E998 @ =gTMCaseMainWindowPalette
movs r1, 0xF0
movs r2, 0x20
@@ -3562,7 +3562,7 @@ sub_813EA98: @ 813EA98
adds r4, r0
ldrb r0, [r4]
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r4]
bl ClearWindowTilemap
ldrb r0, [r4]
@@ -3589,7 +3589,7 @@ sub_813EACC: @ 813EACC
cmp r0, 0xFF
beq _0813EB04
movs r1, 0
- bl sub_810F260
+ bl ClearMenuWindow_BorderThickness2
ldrb r0, [r4]
bl ClearWindowTilemap
ldrb r0, [r4]
diff --git a/asm/buy_menu_helpers.s b/asm/buy_menu_helpers.s
index d3cf28b11..ed18eb711 100644
--- a/asm/buy_menu_helpers.s
+++ b/asm/buy_menu_helpers.s
@@ -24,15 +24,15 @@ _0813F686:
movs r0, 0
movs r1, 0x1
movs r2, 0xD0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
movs r0, 0
movs r1, 0x13
movs r2, 0xE0
- bl sub_814FEAC
+ bl TextWindow_SetBubbleFrame_841F1C8
movs r0, 0
movs r1, 0xA
movs r2, 0xF0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
movs r0, 0
bl PutWindowTilemap
movs r0, 0x4
diff --git a/asm/clear_save_data_screen.s b/asm/clear_save_data_screen.s
index 960621cd1..ccae18c34 100644
--- a/asm/clear_save_data_screen.s
+++ b/asm/clear_save_data_screen.s
@@ -109,11 +109,11 @@ _080F564A:
movs r0, 0
movs r1, 0x1
movs r2, 0xF0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
movs r0, 0x1
movs r1, 0x1
movs r2, 0xF0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
b _080F56E2
_080F5660:
movs r0, 0x1
diff --git a/asm/dodrio_berry_picking.s b/asm/dodrio_berry_picking.s
index ea779b399..160208493 100644
--- a/asm/dodrio_berry_picking.s
+++ b/asm/dodrio_berry_picking.s
@@ -6474,7 +6474,7 @@ sub_81538D0: @ 81538D0
adds r0, r7, 0
adds r1, r4, 0
movs r2, 0xD0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
adds r0, r7, 0
adds r1, r4, 0
movs r2, 0xD
@@ -8351,7 +8351,7 @@ sub_8154720: @ 8154720
movs r0, 0
movs r1, 0xA
movs r2, 0xB0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
pop {r0}
bx r0
thumb_func_end sub_8154720
diff --git a/asm/field_specials.s b/asm/field_specials.s
index a6f97e9df..fcec338e7 100644
--- a/asm/field_specials.s
+++ b/asm/field_specials.s
@@ -2071,7 +2071,7 @@ sub_80CB580: @ 80CB580
ldr r5, _080CB62C @ =0x0000021d
adds r1, r5, 0
movs r2, 0xD0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
ldrb r0, [r4]
movs r1, 0
adds r2, r5, 0
@@ -2141,7 +2141,7 @@ sub_80CB63C: @ 80CB63C
ldr r4, _080CB654 @ =gUnknown_2039A0C
ldrb r0, [r4]
movs r1, 0x1
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r4]
bl RemoveWindow
pop {r4}
@@ -2862,7 +2862,7 @@ sub_80CBBAC: @ 80CBBAC
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrh r0, [r4, 0x22]
lsls r0, 24
lsrs r0, 24
diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s
index c723f740d..97bf9ef64 100644
--- a/asm/hall_of_fame.s
+++ b/asm/hall_of_fame.s
@@ -1194,7 +1194,7 @@ sub_80F26D4: @ 80F26D4
ldr r1, _080F2758 @ =0x0000021d
movs r0, 0x1
movs r2, 0xD0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
movs r0, 0x78
strh r0, [r4, 0xE]
ldr r0, _080F275C @ =Task_Hof_WaitAndPrintPlayerInfo
diff --git a/asm/item.s b/asm/item.s
index ce20d4f8c..5dd58333d 100644
--- a/asm/item.s
+++ b/asm/item.s
@@ -169,7 +169,7 @@ CopyItemName: @ 8099E90
.align 2, 0
_08099EB4: .4byte gUnknown_84162BD
_08099EB8:
- bl ItemId_GetItem
+ bl ItemId_GetName
adds r1, r0, 0
adds r0, r4, 0
bl StringCopy
@@ -957,8 +957,8 @@ _0809A458:
bx r1
thumb_func_end AddPCItem
- thumb_func_start sub_809A460
-sub_809A460: @ 809A460
+ thumb_func_start RemoveItemFromPC
+RemoveItemFromPC: @ 809A460
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -1027,10 +1027,10 @@ _0809A4D8:
bx r0
.align 2, 0
_0809A4E4: .4byte gSaveBlock1Ptr
- thumb_func_end sub_809A460
+ thumb_func_end RemoveItemFromPC
- thumb_func_start sub_809A4E8
-sub_809A4E8: @ 809A4E8
+ thumb_func_start ItemPcCompaction
+ItemPcCompaction: @ 809A4E8
push {r4-r7,lr}
movs r2, 0
_0809A4EC:
@@ -1079,7 +1079,7 @@ _0809A52E:
bx r0
.align 2, 0
_0809A53C: .4byte gSaveBlock1Ptr
- thumb_func_end sub_809A4E8
+ thumb_func_end ItemPcCompaction
thumb_func_start sub_809A540
sub_809A540: @ 809A540
@@ -1567,8 +1567,8 @@ _0809A8B8:
bx r1
thumb_func_end SanitizeItemId
- thumb_func_start ItemId_GetItem
-ItemId_GetItem: @ 809A8BC
+ thumb_func_start ItemId_GetName
+ItemId_GetName: @ 809A8BC
push {lr}
lsls r0, 16
lsrs r0, 16
@@ -1583,7 +1583,7 @@ ItemId_GetItem: @ 809A8BC
bx r1
.align 2, 0
_0809A8D8: .4byte gItems
- thumb_func_end ItemId_GetItem
+ thumb_func_end ItemId_GetName
thumb_func_start itemid_get_number
itemid_get_number: @ 809A8DC
diff --git a/asm/item_menu.s b/asm/item_menu.s
index dd1fde957..4bad1609c 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -200,7 +200,7 @@ _08107F12:
lsrs r0, 24
cmp r0, 0x1
beq _08107F36
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -275,10 +275,10 @@ _08107FD8:
bl ResetSpriteData
b _08108104
_08107FDE:
- bl sub_80984D8
+ bl ResetItemMenuIconState
b _08108104
_08107FE4:
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
cmp r0, 0
beq _08107FF0
@@ -687,7 +687,7 @@ _08108340:
.align 2, 0
_08108348: .4byte gUnknown_83D41F4
_0810834C:
- ldr r0, _08108360 @ =gUnknown_83D4240
+ ldr r0, _08108360 @ =gBagSwapSpriteSheet
_0810834E:
bl LoadCompressedObjectPic
_08108352:
@@ -698,10 +698,10 @@ _08108352:
strb r0, [r1, 0x10]
b _0810837C
.align 2, 0
-_08108360: .4byte gUnknown_83D4240
+_08108360: .4byte gBagSwapSpriteSheet
_08108364: .4byte gUnknown_203AD10
_08108368:
- ldr r0, _08108378 @ =gUnknown_83D4248
+ ldr r0, _08108378 @ =gBagSwapSpritePalette
bl LoadCompressedObjectPalette
ldr r1, [r4]
movs r0, 0
@@ -709,7 +709,7 @@ _08108368:
movs r0, 0x1
b _0810837E
.align 2, 0
-_08108378: .4byte gUnknown_83D4248
+_08108378: .4byte gBagSwapSpritePalette
_0810837C:
movs r0, 0
_0810837E:
@@ -981,7 +981,7 @@ _08108584:
bl StringCopy
_0810858C:
adds r0, r5, 0
- bl ItemId_GetItem
+ bl ItemId_GetName
adds r1, r0, 0
adds r0, r4, 0
bl StringAppend
@@ -1014,7 +1014,7 @@ _081085BA:
lsrs r1, 30
movs r0, 0x1
eors r0, r1
- bl sub_8098940
+ bl DestroyItemMenuIcon
ldr r2, [r4]
ldr r0, _08108608 @ =gUnknown_203ACFC
ldrh r1, [r0, 0x6]
@@ -1036,7 +1036,7 @@ _081085BA:
ldrb r1, [r1, 0x5]
lsls r1, 26
lsrs r1, 30
- bl sub_80988E8
+ bl CreateItemMenuIcon
b _08108618
.align 2, 0
_08108604: .4byte gUnknown_203AD10
@@ -1046,7 +1046,7 @@ _0810860C:
ldrb r1, [r2, 0x5]
lsls r1, 26
lsrs r1, 30
- bl sub_80988E8
+ bl CreateItemMenuIcon
_08108618:
ldr r4, _08108650 @ =gUnknown_203AD10
ldr r3, [r4]
@@ -1999,8 +1999,8 @@ _08108D5A:
bx r0
thumb_func_end sub_8108CFC
- thumb_func_start sub_8108D60
-sub_8108D60: @ 8108D60
+ thumb_func_start ItemMenu_MoveItemSlotToNewPositionInArray
+ItemMenu_MoveItemSlotToNewPositionInArray: @ 8108D60
push {r4-r6,lr}
adds r4, r0, 0
adds r3, r2, 0
@@ -2057,7 +2057,7 @@ _08108DC0:
pop {r4-r6}
pop {r0}
bx r0
- thumb_func_end sub_8108D60
+ thumb_func_end ItemMenu_MoveItemSlotToNewPositionInArray
thumb_func_start sub_8108DC8
sub_8108DC8: @ 8108DC8
@@ -2514,7 +2514,7 @@ sub_8109140: @ 8109140
movs r1, 0
movs r2, 0xE
movs r3, 0x1E
- bl sub_80F6B08
+ bl SetBgRectPal
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
add sp, 0x8
@@ -2627,7 +2627,7 @@ sub_81091D0: @ 81091D0
lsrs r1, 30
movs r0, 0x1
eors r0, r1
- bl sub_8098940
+ bl DestroyItemMenuIcon
bl sub_8108978
_08109242:
movs r0, 0x12
@@ -2677,7 +2677,7 @@ sub_8109298: @ 8109298
lsls r0, 3
ldr r1, _081092DC @ =gTasks+0x8
adds r5, r0, r1
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
cmp r0, 0
bne _08109314
@@ -2853,12 +2853,12 @@ sub_81093B8: @ 81093B8
bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
- bl ItemId_GetItem
+ bl ItemId_GetName
adds r1, r0, 0
adds r0, r4, 0
bl StringCopy
ldr r4, _081094A4 @ =gStringVar4
- ldr r1, _081094A8 @ =gUnknown_841633F
+ ldr r1, _081094A8 @ =gOtherText_WhereShouldTheStrVar1BePlaced
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0x1
@@ -2910,7 +2910,7 @@ _08109498: .4byte gUnknown_203AD10
_0810949C: .4byte gStringVar1
_081094A0: .4byte gUnknown_203ACFC
_081094A4: .4byte gStringVar4
-_081094A8: .4byte gUnknown_841633F
+_081094A8: .4byte gOtherText_WhereShouldTheStrVar1BePlaced
_081094AC: .4byte sub_81094B0
thumb_func_end sub_81093B8
@@ -3071,7 +3071,7 @@ _081095E8:
ldr r0, [r0]
adds r1, r2, 0
adds r2, r5, 0
- bl sub_8108D60
+ bl ItemMenu_MoveItemSlotToNewPositionInArray
ldrb r0, [r6]
ldrh r2, [r4, 0x6]
lsls r2, 1
@@ -3464,7 +3464,7 @@ _08109930: .4byte gUnknown_203AD24
_08109934: .4byte gUnknown_8452F30
_08109938: .4byte gUnknown_203AD28
_0810993C:
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -3727,7 +3727,7 @@ _08109AD4:
ldr r1, _08109BAC @ =gStringVar1
bl CopyItemName
ldr r6, _08109BB0 @ =gStringVar4
- ldr r1, _08109BB4 @ =gUnknown_84162FF
+ ldr r1, _08109BB4 @ =gOtherText_StrVar1
adds r0, r6, 0
bl StringExpandPlaceholders
movs r0, 0x2
@@ -3754,7 +3754,7 @@ _08109BA4: .4byte gUnknown_8452EB8
_08109BA8: .4byte gSpecialVar_ItemId
_08109BAC: .4byte gStringVar1
_08109BB0: .4byte gStringVar4
-_08109BB4: .4byte gUnknown_84162FF
+_08109BB4: .4byte gOtherText_StrVar1
thumb_func_end sub_8109890
thumb_func_start sub_8109BB8
@@ -5753,7 +5753,7 @@ sub_810AC40: @ 810AC40
ldr r3, _0810ACD4 @ =0x0000ffff
movs r0, 0x1C
movs r1, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
ldrh r0, [r5]
ldr r1, _0810ACD8 @ =gStringVar1
bl CopyItemName
diff --git a/asm/item_menu_icons.s b/asm/item_menu_icons.s
index 118591dc2..6208c3fb9 100644
--- a/asm/item_menu_icons.s
+++ b/asm/item_menu_icons.s
@@ -5,8 +5,8 @@
.text
- thumb_func_start sub_80984D8
-sub_80984D8: @ 80984D8
+ thumb_func_start ResetItemMenuIconState
+ResetItemMenuIconState: @ 80984D8
push {r4,lr}
movs r2, 0
ldr r4, _080984F8 @ =gUnknown_2039878
@@ -26,7 +26,7 @@ _080984E0:
bx r0
.align 2, 0
_080984F8: .4byte gUnknown_2039878
- thumb_func_end sub_80984D8
+ thumb_func_end ResetItemMenuIconState
thumb_func_start sub_80984FC
sub_80984FC: @ 80984FC
@@ -534,8 +534,8 @@ _080988DA:
bx r1
thumb_func_end AddItemIconObjectWithCustomObjectTemplate
- thumb_func_start sub_80988E8
-sub_80988E8: @ 80988E8
+ thumb_func_start CreateItemMenuIcon
+CreateItemMenuIcon: @ 80988E8
push {r4-r6,lr}
lsls r0, 16
lsrs r6, r0, 16
@@ -577,10 +577,10 @@ _08098932:
.align 2, 0
_08098938: .4byte gUnknown_2039882
_0809893C: .4byte gSprites
- thumb_func_end sub_80988E8
+ thumb_func_end CreateItemMenuIcon
- thumb_func_start sub_8098940
-sub_8098940: @ 8098940
+ thumb_func_start DestroyItemMenuIcon
+DestroyItemMenuIcon: @ 8098940
push {r4,lr}
lsls r0, 24
lsrs r0, 24
@@ -605,7 +605,7 @@ _08098964:
.align 2, 0
_0809896C: .4byte gUnknown_2039882
_08098970: .4byte gSprites
- thumb_func_end sub_8098940
+ thumb_func_end DestroyItemMenuIcon
thumb_func_start sub_8098974
sub_8098974: @ 8098974
diff --git a/asm/item_pc.s b/asm/item_pc.s
deleted file mode 100644
index 93ca91ff9..000000000
--- a/asm/item_pc.s
+++ /dev/null
@@ -1,2909 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_810D3F4
-sub_810D3F4: @ 810D3F4
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- cmp r5, 0x1
- bhi _0810D410
- ldr r6, _0810D418 @ =gUnknown_203ADBC
- movs r0, 0x14
- bl Alloc
- str r0, [r6]
- cmp r0, 0
- bne _0810D41C
-_0810D410:
- adds r0, r4, 0
- bl SetMainCallback2
- b _0810D462
- .align 2, 0
-_0810D418: .4byte gUnknown_203ADBC
-_0810D41C:
- cmp r5, 0x1
- beq _0810D42A
- ldr r0, _0810D468 @ =gUnknown_203ADCC
- str r4, [r0]
- movs r1, 0
- strh r1, [r0, 0x6]
- strh r1, [r0, 0x4]
-_0810D42A:
- ldr r1, [r6]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r0, [r6]
- movs r2, 0
- strb r2, [r0, 0x5]
- ldr r1, [r6]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x8]
- ldr r0, [r6]
- str r2, [r0]
- ldr r5, _0810D46C @ =sub_810D4A0
- adds r4, r6, 0
- movs r3, 0
-_0810D448:
- ldr r0, [r4]
- lsls r1, r2, 1
- adds r0, 0xC
- adds r0, r1
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _0810D448
- adds r0, r5, 0
- bl SetMainCallback2
-_0810D462:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D468: .4byte gUnknown_203ADCC
-_0810D46C: .4byte sub_810D4A0
- thumb_func_end sub_810D3F4
-
- thumb_func_start sub_810D470
-sub_810D470: @ 810D470
- 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_810D470
-
- thumb_func_start sub_810D48C
-sub_810D48C: @ 810D48C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_810D48C
-
- thumb_func_start sub_810D4A0
-sub_810D4A0: @ 810D4A0
- push {lr}
-_0810D4A2:
- bl sub_810D4C0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810D4BA
- bl sub_80BF708
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810D4A2
-_0810D4BA:
- pop {r0}
- bx r0
- thumb_func_end sub_810D4A0
-
- thumb_func_start sub_810D4C0
-sub_810D4C0: @ 810D4C0
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0810D4E0 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x14
- bls _0810D4D4
- b _0810D688
-_0810D4D4:
- lsls r0, 2
- ldr r1, _0810D4E4 @ =_0810D4E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810D4E0: .4byte gMain
-_0810D4E4: .4byte _0810D4E8
- .align 2, 0
-_0810D4E8:
- .4byte _0810D53C
- .4byte _0810D546
- .4byte _0810D54C
- .4byte _0810D552
- .4byte _0810D558
- .4byte _0810D55E
- .4byte _0810D564
- .4byte _0810D56A
- .4byte _0810D584
- .4byte _0810D594
- .4byte _0810D59A
- .4byte _0810D5A8
- .4byte _0810D5BA
- .4byte _0810D5C0
- .4byte _0810D5C6
- .4byte _0810D5CC
- .4byte _0810D608
- .4byte _0810D60E
- .4byte _0810D616
- .4byte _0810D630
- .4byte _0810D668
-_0810D53C:
- bl VblankHblankHandlerSetZero
- bl clear_scheduled_bg_copies_to_vram
- b _0810D674
-_0810D546:
- bl ScanlineEffect_Stop
- b _0810D674
-_0810D54C:
- bl FreeAllSpritePalettes
- b _0810D674
-_0810D552:
- bl ResetPaletteFade
- b _0810D674
-_0810D558:
- bl ResetSpriteData
- b _0810D674
-_0810D55E:
- bl sub_80984D8
- b _0810D674
-_0810D564:
- bl ResetTasks
- b _0810D674
-_0810D56A:
- bl sub_810D71C
- lsls r0, 24
- cmp r0, 0
- beq _0810D5B2
- ldr r0, _0810D580 @ =gUnknown_203ADBC
- ldr r1, [r0]
- movs r0, 0
- strh r0, [r1, 0xC]
- b _0810D674
- .align 2, 0
-_0810D580: .4byte gUnknown_203ADBC
-_0810D584:
- bl sub_810D78C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810D592
- b _0810D6A0
-_0810D592:
- b _0810D674
-_0810D594:
- bl sub_810E8F0
- b _0810D674
-_0810D59A:
- bl sub_810DDA4
- bl sub_810DBF0
- bl sub_810DE08
- b _0810D674
-_0810D5A8:
- bl sub_810D83C
- lsls r0, 24
- cmp r0, 0
- bne _0810D674
-_0810D5B2:
- bl sub_810D6AC
- movs r0, 0x1
- b _0810D6A2
-_0810D5BA:
- bl sub_810D878
- b _0810D674
-_0810D5C0:
- bl sub_810DB34
- b _0810D674
-_0810D5C6:
- bl sub_80985E4
- b _0810D674
-_0810D5CC:
- ldr r0, _0810D5F8 @ =sub_810DEA0
- movs r1, 0
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0810D5FC @ =gMultiuseListMenuTemplate
- ldr r2, _0810D600 @ =gUnknown_203ADCC
- ldrh r1, [r2, 0x4]
- ldrh r2, [r2, 0x6]
- bl ListMenuInit
- ldr r2, _0810D604 @ =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 _0810D674
- .align 2, 0
-_0810D5F8: .4byte sub_810DEA0
-_0810D5FC: .4byte gMultiuseListMenuTemplate
-_0810D600: .4byte gUnknown_203ADCC
-_0810D604: .4byte gTasks
-_0810D608:
- bl sub_810DB5C
- b _0810D674
-_0810D60E:
- movs r0, 0x1D
- bl HelpSystem_SetSomeVariable2
- b _0810D674
-_0810D616:
- ldr r0, _0810D62C @ =gUnknown_203ADCC
- ldrb r0, [r0, 0x8]
- cmp r0, 0x1
- bne _0810D674
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- b _0810D674
- .align 2, 0
-_0810D62C: .4byte gUnknown_203ADCC
-_0810D630:
- ldr r0, _0810D64C @ =gUnknown_203ADCC
- ldrb r0, [r0, 0x8]
- cmp r0, 0x1
- bne _0810D650
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _0810D674
- .align 2, 0
-_0810D64C: .4byte gUnknown_203ADCC
-_0810D650:
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl sub_80A0A48
- movs r0, 0x1
- bl sub_810DE94
- movs r0, 0x2
- bl PlaySE
- b _0810D674
-_0810D668:
- bl sub_80BF72C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810D6A0
-_0810D674:
- ldr r1, _0810D684 @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0810D6A0
- .align 2, 0
-_0810D684: .4byte gMain
-_0810D688:
- ldr r0, _0810D698 @ =sub_810D48C
- bl SetVBlankCallback
- ldr r0, _0810D69C @ =sub_810D470
- bl SetMainCallback2
- movs r0, 0x1
- b _0810D6A2
- .align 2, 0
-_0810D698: .4byte sub_810D48C
-_0810D69C: .4byte sub_810D470
-_0810D6A0:
- movs r0, 0
-_0810D6A2:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810D4C0
-
- thumb_func_start sub_810D6AC
-sub_810D6AC: @ 810D6AC
- push {lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0810D6DC @ =sub_810D6E8
- movs r1, 0
- bl CreateTask
- ldr r0, _0810D6E0 @ =sub_810D48C
- bl SetVBlankCallback
- ldr r0, _0810D6E4 @ =sub_810D470
- bl SetMainCallback2
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0810D6DC: .4byte sub_810D6E8
-_0810D6E0: .4byte sub_810D48C
-_0810D6E4: .4byte sub_810D470
- thumb_func_end sub_810D6AC
-
- thumb_func_start sub_810D6E8
-sub_810D6E8: @ 810D6E8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0810D714 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810D70C
- ldr r0, _0810D718 @ =gUnknown_203ADCC
- ldr r0, [r0]
- bl SetMainCallback2
- bl sub_810DC40
- adds r0, r4, 0
- bl DestroyTask
-_0810D70C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D714: .4byte gPaletteFade
-_0810D718: .4byte gUnknown_203ADCC
- thumb_func_end sub_810D6E8
-
- thumb_func_start sub_810D71C
-sub_810D71C: @ 810D71C
- push {r4,r5,lr}
- bl InitBgReg
- ldr r5, _0810D77C @ =gUnknown_203ADC0
- movs r4, 0x80
- lsls r4, 4
- adds r0, r4, 0
- bl Alloc
- str r0, [r5]
- cmp r0, 0
- beq _0810D784
- movs r1, 0
- adds r2, r4, 0
- bl memset
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _0810D780 @ =gUnknown_8453F6C
- movs r0, 0
- movs r2, 0x2
- bl InitBgsFromTemplates
- ldr r1, [r5]
- movs r0, 0x1
- bl SetBgTilemapBuffer
- movs r0, 0x1
- 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, 0x1
- b _0810D786
- .align 2, 0
-_0810D77C: .4byte gUnknown_203ADC0
-_0810D780: .4byte gUnknown_8453F6C
-_0810D784:
- movs r0, 0
-_0810D786:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_810D71C
-
- thumb_func_start sub_810D78C
-sub_810D78C: @ 810D78C
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _0810D7A8 @ =gUnknown_203ADBC
- ldr r0, [r5]
- movs r1, 0xC
- ldrsh r4, [r0, r1]
- cmp r4, 0x1
- beq _0810D7D0
- cmp r4, 0x1
- bgt _0810D7AC
- cmp r4, 0
- beq _0810D7B6
- b _0810D814
- .align 2, 0
-_0810D7A8: .4byte gUnknown_203ADBC
-_0810D7AC:
- cmp r4, 0x2
- beq _0810D7F0
- cmp r4, 0x3
- beq _0810D800
- b _0810D814
-_0810D7B6:
- bl reset_temp_tile_data_buffers
- ldr r1, _0810D7CC @ =gUnknown_8E85090
- str r4, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- b _0810D806
- .align 2, 0
-_0810D7CC: .4byte gUnknown_8E85090
-_0810D7D0:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810D830
- ldr r0, _0810D7E8 @ =gUnknown_8E85458
- ldr r1, _0810D7EC @ =gUnknown_203ADC0
- ldr r1, [r1]
- bl LZDecompressWram
- b _0810D806
- .align 2, 0
-_0810D7E8: .4byte gUnknown_8E85458
-_0810D7EC: .4byte gUnknown_203ADC0
-_0810D7F0:
- ldr r0, _0810D7FC @ =gUnknown_8E85408
- movs r1, 0
- movs r2, 0x60
- bl LoadCompressedPalette
- b _0810D806
- .align 2, 0
-_0810D7FC: .4byte gUnknown_8E85408
-_0810D800:
- ldr r0, _0810D810 @ =gUnknown_83D4240
- bl LoadCompressedObjectPic
-_0810D806:
- ldr r1, [r5]
- ldrh r0, [r1, 0xC]
- adds r0, 0x1
- strh r0, [r1, 0xC]
- b _0810D830
- .align 2, 0
-_0810D810: .4byte gUnknown_83D4240
-_0810D814:
- ldr r0, _0810D828 @ =gUnknown_83D4248
- bl LoadCompressedObjectPalette
- ldr r0, _0810D82C @ =gUnknown_203ADBC
- ldr r1, [r0]
- movs r0, 0
- strh r0, [r1, 0xC]
- movs r0, 0x1
- b _0810D832
- .align 2, 0
-_0810D828: .4byte gUnknown_83D4248
-_0810D82C: .4byte gUnknown_203ADBC
-_0810D830:
- movs r0, 0
-_0810D832:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_810D78C
-
- thumb_func_start sub_810D83C
-sub_810D83C: @ 810D83C
- push {r4,lr}
- ldr r4, _0810D860 @ =gUnknown_203ADC4
- movs r0, 0xF8
- bl Alloc
- str r0, [r4]
- cmp r0, 0
- beq _0810D868
- ldr r4, _0810D864 @ =gUnknown_203ADC8
- movs r0, 0xD9
- lsls r0, 1
- bl Alloc
- str r0, [r4]
- cmp r0, 0
- beq _0810D868
- movs r0, 0x1
- b _0810D872
- .align 2, 0
-_0810D860: .4byte gUnknown_203ADC4
-_0810D864: .4byte gUnknown_203ADC8
-_0810D868:
- bl sub_810DC40
- bl sub_810D6AC
- movs r0, 0
-_0810D872:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810D83C
-
- thumb_func_start sub_810D878
-sub_810D878: @ 810D878
- push {r4,r5,lr}
- movs r4, 0
- b _0810D8A4
-_0810D87E:
- ldr r0, _0810D938 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- lsls r1, r4, 2
- adds r0, r1
- movs r1, 0xA6
- lsls r1, 2
- adds r0, r1
- ldrh r0, [r0]
- bl ItemId_GetItem
- ldr r1, _0810D93C @ =gUnknown_203ADC4
- ldr r2, [r1]
- lsls r1, r4, 3
- adds r1, r2
- str r0, [r1]
- str r4, [r1, 0x4]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_0810D8A4:
- ldr r0, _0810D940 @ =gUnknown_203ADBC
- ldr r0, [r0]
- ldrb r0, [r0, 0x7]
- cmp r4, r0
- bcc _0810D87E
- ldr r0, _0810D93C @ =gUnknown_203ADC4
- ldr r3, [r0]
- lsls r0, r4, 3
- adds r0, r3
- ldr r1, _0810D944 @ =gFameCheckerText_Cancel
- str r1, [r0]
- movs r1, 0x2
- negs r1, r1
- str r1, [r0, 0x4]
- ldr r2, _0810D948 @ =gMultiuseListMenuTemplate
- str r3, [r2]
- ldr r0, _0810D940 @ =gUnknown_203ADBC
- ldr r3, [r0]
- ldrb r0, [r3, 0x7]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r2, 0xC]
- strb r1, [r2, 0x10]
- strb r1, [r2, 0x11]
- movs r0, 0x9
- strb r0, [r2, 0x12]
- movs r1, 0x1
- movs r0, 0x1
- strb r0, [r2, 0x13]
- ldrb r0, [r2, 0x16]
- movs r4, 0x8
- negs r4, r4
- ands r4, r0
- orrs r4, r1
- 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, 0x6]
- 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, _0810D94C @ =sub_810D954
- str r0, [r2, 0x4]
- ldr r0, _0810D950 @ =sub_810DA20
- str r0, [r2, 0x8]
- movs r0, 0x3F
- ands r4, r0
- strb r4, [r2, 0x16]
- ands r3, r0
- strb r3, [r2, 0x17]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D938: .4byte gSaveBlock1Ptr
-_0810D93C: .4byte gUnknown_203ADC4
-_0810D940: .4byte gUnknown_203ADBC
-_0810D944: .4byte gFameCheckerText_Cancel
-_0810D948: .4byte gMultiuseListMenuTemplate
-_0810D94C: .4byte sub_810D954
-_0810D950: .4byte sub_810DA20
- thumb_func_end sub_810D878
-
- thumb_func_start sub_810D954
-sub_810D954: @ 810D954
- push {r4,r5,lr}
- sub sp, 0x14
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x1
- beq _0810D968
- movs r0, 0x5
- bl PlaySE
-_0810D968:
- ldr r5, _0810D9BC @ =gUnknown_203ADBC
- ldr r1, [r5]
- ldrb r0, [r1, 0x4]
- cmp r0, 0xFF
- bne _0810DA0A
- ldrb r1, [r1, 0x5]
- movs r0, 0x1
- eors r0, r1
- bl sub_8098940
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _0810D9CE
- lsls r0, r4, 16
- lsrs r0, 16
- bl sub_810DD68
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, [r5]
- ldrb r1, [r0, 0x5]
- adds r0, r4, 0
- bl sub_80988E8
- adds r0, r4, 0
- bl ItemId_GetPocket
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0810D9C4
- adds r0, r4, 0
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xD
- muls r1, r0
- ldr r0, _0810D9C0 @ =gMoveNames
- adds r5, r1, r0
- b _0810D9DA
- .align 2, 0
-_0810D9BC: .4byte gUnknown_203ADBC
-_0810D9C0: .4byte gMoveNames
-_0810D9C4:
- adds r0, r4, 0
- bl ItemId_GetDescription
- adds r5, r0, 0
- b _0810D9DA
-_0810D9CE:
- ldr r0, _0810DA14 @ =0x00000177
- ldr r1, [r5]
- ldrb r1, [r1, 0x5]
- bl sub_80988E8
- ldr r5, _0810DA18 @ =gUnknown_84178BE
-_0810D9DA:
- ldr r0, _0810DA1C @ =gUnknown_203ADBC
- ldr r2, [r0]
- ldrb r0, [r2, 0x5]
- movs r1, 0x1
- eors r0, r1
- movs r4, 0
- strb r0, [r2, 0x5]
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r1, 0x3
- str r1, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r1, [sp, 0x10]
- movs r0, 0x1
- movs r1, 0x2
- adds r2, r5, 0
- movs r3, 0
- bl sub_810EA34
-_0810DA0A:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DA14: .4byte 0x00000177
-_0810DA18: .4byte gUnknown_84178BE
-_0810DA1C: .4byte gUnknown_203ADBC
- thumb_func_end sub_810D954
-
- thumb_func_start sub_810DA20
-sub_810DA20: @ 810DA20
- push {r4-r6,lr}
- sub sp, 0x14
- adds r4, r1, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r2, 24
- lsrs r5, r2, 24
- ldr r0, _0810DA4C @ =gUnknown_203ADBC
- ldr r0, [r0]
- ldrb r1, [r0, 0x4]
- cmp r1, 0xFF
- beq _0810DA58
- lsls r0, r4, 24
- lsrs r0, 24
- cmp r1, r0
- bne _0810DA50
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_810DAD4
- b _0810DA58
- .align 2, 0
-_0810DA4C: .4byte gUnknown_203ADBC
-_0810DA50:
- adds r0, r5, 0
- movs r1, 0xFF
- bl sub_810DAD4
-_0810DA58:
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _0810DA9E
- lsls r0, r4, 16
- lsrs r0, 16
- bl sub_810DD80
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _0810DAA8 @ =gStringVar1
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r4, _0810DAAC @ =gStringVar4
- ldr r1, _0810DAB0 @ =gText_TimesStrVar1
- adds r0, r4, 0
- bl StringExpandPlaceholders
- str r5, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0xFF
- str r0, [sp, 0xC]
- movs r0, 0x1
- str r0, [sp, 0x10]
- adds r0, r6, 0
- movs r1, 0
- adds r2, r4, 0
- movs r3, 0x6E
- bl sub_810EA34
-_0810DA9E:
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DAA8: .4byte gStringVar1
-_0810DAAC: .4byte gStringVar4
-_0810DAB0: .4byte gText_TimesStrVar1
- thumb_func_end sub_810DA20
-
- thumb_func_start sub_810DAB4
-sub_810DAB4: @ 810DAB4
- 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_810DAD4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810DAB4
-
- thumb_func_start sub_810DAD4
-sub_810DAD4: @ 810DAD4
- push {r4,r5,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0xFF
- bne _0810DB10
- 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
- b _0810DB26
-_0810DB10:
- ldr r2, _0810DB30 @ =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_810EA34
-_0810DB26:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DB30: .4byte gFameCheckerText_ListMenuCursor
- thumb_func_end sub_810DAD4
-
- thumb_func_start sub_810DB34
-sub_810DB34: @ 810DB34
- push {lr}
- sub sp, 0x14
- ldr r2, _0810DB58 @ =gUnknown_84178A7
- movs r1, 0x1
- str r1, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- str r0, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x2
- movs r1, 0
- movs r3, 0
- bl sub_810EA34
- add sp, 0x14
- pop {r0}
- bx r0
- .align 2, 0
-_0810DB58: .4byte gUnknown_84178A7
- thumb_func_end sub_810DB34
-
- thumb_func_start sub_810DB5C
-sub_810DB5C: @ 810DB5C
- push {r4,lr}
- sub sp, 0x10
- ldr r4, _0810DB90 @ =gUnknown_203ADBC
- ldr r1, [r4]
- ldrb r0, [r1, 0x7]
- ldrb r1, [r1, 0x6]
- subs r0, r1
- adds r0, 0x1
- str r0, [sp]
- movs r0, 0x6E
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- ldr r0, _0810DB94 @ =gUnknown_203ADD0
- str r0, [sp, 0xC]
- movs r0, 0x2
- movs r1, 0x80
- movs r2, 0x8
- movs r3, 0x68
- bl AddScrollIndicatorArrowPairParameterized
- ldr r1, [r4]
- strb r0, [r1, 0x8]
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DB90: .4byte gUnknown_203ADBC
-_0810DB94: .4byte gUnknown_203ADD0
- thumb_func_end sub_810DB5C
-
- thumb_func_start sub_810DB98
-sub_810DB98: @ 810DB98
- push {r4,lr}
- sub sp, 0x10
- ldr r4, _0810DBCC @ =gUnknown_203ADBC
- 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, 0xD4
- movs r2, 0x78
- movs r3, 0x98
- bl AddScrollIndicatorArrowPairParameterized
- ldr r1, [r4]
- strb r0, [r1, 0x8]
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DBCC: .4byte gUnknown_203ADBC
- thumb_func_end sub_810DB98
-
- thumb_func_start sub_810DBD0
-sub_810DBD0: @ 810DBD0
- push {r4,lr}
- ldr r4, _0810DBEC @ =gUnknown_203ADBC
- ldr r1, [r4]
- ldrb r0, [r1, 0x8]
- cmp r0, 0xFF
- beq _0810DBE6
- bl RemoveScrollIndicatorArrowPair
- ldr r1, [r4]
- movs r0, 0xFF
- strb r0, [r1, 0x8]
-_0810DBE6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DBEC: .4byte gUnknown_203ADBC
- thumb_func_end sub_810DBD0
-
- thumb_func_start sub_810DBF0
-sub_810DBF0: @ 810DBF0
- push {r4,r5,lr}
- ldr r0, _0810DC30 @ =gUnknown_203ADCC
- ldrh r1, [r0, 0x4]
- adds r4, r0, 0
- ldr r5, _0810DC34 @ =gUnknown_203ADBC
- cmp r1, 0
- beq _0810DC14
- ldrh r0, [r4, 0x4]
- ldr r1, [r5]
- ldrb r3, [r1, 0x6]
- adds r0, r3
- ldrb r2, [r1, 0x7]
- adds r1, r2, 0x1
- cmp r0, r1
- ble _0810DC14
- subs r0, r3, 0x1
- subs r0, r2, r0
- strh r0, [r4, 0x4]
-_0810DC14:
- adds r3, r4, 0
- ldrh r0, [r3, 0x4]
- ldrh r1, [r3, 0x6]
- adds r0, r1
- ldr r1, [r5]
- ldrb r1, [r1, 0x7]
- adds r2, r1, 0x1
- cmp r0, r2
- blt _0810DC3A
- cmp r2, 0x1
- bgt _0810DC38
- movs r0, 0
- strh r0, [r3, 0x6]
- b _0810DC3A
- .align 2, 0
-_0810DC30: .4byte gUnknown_203ADCC
-_0810DC34: .4byte gUnknown_203ADBC
-_0810DC38:
- strh r1, [r4, 0x6]
-_0810DC3A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810DBF0
-
- thumb_func_start sub_810DC40
-sub_810DC40: @ 810DC40
- push {lr}
- ldr r0, _0810DC7C @ =gUnknown_203ADBC
- ldr r0, [r0]
- cmp r0, 0
- beq _0810DC4E
- bl Free
-_0810DC4E:
- ldr r0, _0810DC80 @ =gUnknown_203ADC0
- ldr r0, [r0]
- cmp r0, 0
- beq _0810DC5A
- bl Free
-_0810DC5A:
- ldr r0, _0810DC84 @ =gUnknown_203ADC4
- ldr r0, [r0]
- cmp r0, 0
- beq _0810DC66
- bl Free
-_0810DC66:
- ldr r0, _0810DC88 @ =gUnknown_203ADC8
- ldr r0, [r0]
- cmp r0, 0
- beq _0810DC72
- bl Free
-_0810DC72:
- bl FreeAllWindowBuffers
- pop {r0}
- bx r0
- .align 2, 0
-_0810DC7C: .4byte gUnknown_203ADBC
-_0810DC80: .4byte gUnknown_203ADC0
-_0810DC84: .4byte gUnknown_203ADC4
-_0810DC88: .4byte gUnknown_203ADC8
- thumb_func_end sub_810DC40
-
- thumb_func_start sub_810DC8C
-sub_810DC8C: @ 810DC8C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0810DCB0 @ =gUnknown_203ADCC
- ldrb r0, [r0, 0x8]
- cmp r0, 0x1
- bne _0810DCB4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _0810DCC4
- .align 2, 0
-_0810DCB0: .4byte gUnknown_203ADCC
-_0810DCB4:
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl sub_80A0A70
- movs r0, 0x3
- bl PlaySE
-_0810DCC4:
- ldr r0, _0810DCDC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810DCE0 @ =sub_810DCE4
- str r0, [r1]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DCDC: .4byte gTasks
-_0810DCE0: .4byte sub_810DCE4
- thumb_func_end sub_810DC8C
-
- thumb_func_start sub_810DCE4
-sub_810DCE4: @ 810DCE4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0810DD28 @ =gTasks+0x8
- adds r4, r0, r1
- ldr r0, _0810DD2C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810DD4E
- bl sub_80A0AAC
- lsls r0, 24
- cmp r0, 0
- bne _0810DD4E
- ldrb r0, [r4]
- ldr r4, _0810DD30 @ =gUnknown_203ADD0
- adds r2, r4, 0x2
- adds r1, r4, 0
- bl DestroyListMenu
- ldr r0, _0810DD34 @ =gUnknown_203ADBC
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0
- beq _0810DD38
- bl SetMainCallback2
- b _0810DD40
- .align 2, 0
-_0810DD28: .4byte gTasks+0x8
-_0810DD2C: .4byte gPaletteFade
-_0810DD30: .4byte gUnknown_203ADD0
-_0810DD34: .4byte gUnknown_203ADBC
-_0810DD38:
- subs r0, r4, 0x4
- ldr r0, [r0]
- bl SetMainCallback2
-_0810DD40:
- bl sub_810DBD0
- bl sub_810DC40
- adds r0, r5, 0
- bl DestroyTask
-_0810DD4E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810DCE4
-
- thumb_func_start sub_810DD54
-sub_810DD54: @ 810DD54
- ldr r1, _0810DD64 @ =gUnknown_203ADCC
- ldrb r0, [r1, 0x6]
- ldrb r1, [r1, 0x4]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- bx lr
- .align 2, 0
-_0810DD64: .4byte gUnknown_203ADCC
- thumb_func_end sub_810DD54
-
- thumb_func_start sub_810DD68
-sub_810DD68: @ 810DD68
- lsls r0, 16
- ldr r1, _0810DD7C @ =gSaveBlock1Ptr
- ldr r1, [r1]
- lsrs r0, 14
- adds r1, r0
- movs r0, 0xA6
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- bx lr
- .align 2, 0
-_0810DD7C: .4byte gSaveBlock1Ptr
- thumb_func_end sub_810DD68
-
- thumb_func_start sub_810DD80
-sub_810DD80: @ 810DD80
- push {lr}
- lsls r0, 16
- ldr r1, _0810DD9C @ =gSaveBlock1Ptr
- lsrs r0, 14
- ldr r1, [r1]
- adds r0, r1
- ldr r1, _0810DDA0 @ =0x0000029a
- adds r0, r1
- bl GetBagItemId
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_0810DD9C: .4byte gSaveBlock1Ptr
-_0810DDA0: .4byte 0x0000029a
- thumb_func_end sub_810DD80
-
- thumb_func_start sub_810DDA4
-sub_810DDA4: @ 810DDA4
- push {r4,r5,lr}
- bl sub_809A4E8
- ldr r4, _0810DE00 @ =gUnknown_203ADBC
- ldr r1, [r4]
- movs r0, 0
- strb r0, [r1, 0x7]
- movs r2, 0
- ldr r3, _0810DE04 @ =gSaveBlock1Ptr
- ldr r0, [r3]
- movs r1, 0xA6
- lsls r1, 2
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _0810DDEA
- adds r5, r4, 0
- adds r4, r3, 0
- adds r3, r1, 0
-_0810DDCA:
- ldr r0, [r5]
- ldrb r1, [r0, 0x7]
- adds r1, 0x1
- strb r1, [r0, 0x7]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1D
- bhi _0810DDEA
- ldr r0, [r4]
- lsls r1, r2, 2
- adds r0, r1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, 0
- bne _0810DDCA
-_0810DDEA:
- ldr r0, _0810DE00 @ =gUnknown_203ADBC
- ldr r1, [r0]
- ldrb r0, [r1, 0x7]
- adds r0, 0x1
- cmp r0, 0x6
- ble _0810DDF8
- movs r0, 0x6
-_0810DDF8:
- strb r0, [r1, 0x6]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DE00: .4byte gUnknown_203ADBC
-_0810DE04: .4byte gSaveBlock1Ptr
- thumb_func_end sub_810DDA4
-
- thumb_func_start sub_810DE08
-sub_810DE08: @ 810DE08
- push {r4-r6,lr}
- ldr r0, _0810DE64 @ =gUnknown_203ADCC
- ldrh r1, [r0, 0x6]
- adds r6, r0, 0
- cmp r1, 0x3
- bls _0810DE5C
- movs r4, 0
- ldrh r0, [r6, 0x6]
- subs r0, 0x3
- cmp r4, r0
- bgt _0810DE5C
- ldrh r1, [r6, 0x4]
- ldr r5, _0810DE68 @ =gUnknown_203ADBC
- ldr r2, [r5]
- ldrb r0, [r2, 0x6]
- adds r1, r0
- ldrb r0, [r2, 0x7]
- adds r0, 0x1
- cmp r1, r0
- beq _0810DE5C
- adds r3, r6, 0
-_0810DE32:
- ldrh r0, [r3, 0x6]
- subs r0, 0x1
- strh r0, [r3, 0x6]
- ldrh r0, [r3, 0x4]
- adds r0, 0x1
- strh r0, [r3, 0x4]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrh r0, [r3, 0x6]
- subs r0, 0x3
- cmp r4, r0
- bgt _0810DE5C
- ldrh r1, [r6, 0x4]
- ldr r2, [r5]
- ldrb r0, [r2, 0x6]
- adds r1, r0
- ldrb r0, [r2, 0x7]
- adds r0, 0x1
- cmp r1, r0
- bne _0810DE32
-_0810DE5C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DE64: .4byte gUnknown_203ADCC
-_0810DE68: .4byte gUnknown_203ADBC
- thumb_func_end sub_810DE08
-
- thumb_func_start sub_810DE6C
-sub_810DE6C: @ 810DE6C
- push {lr}
- sub sp, 0x8
- movs r1, 0x6
- str r1, [sp]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x1E
- bl sub_80F6B08
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_810DE6C
-
- thumb_func_start sub_810DE94
-sub_810DE94: @ 810DE94
- ldr r1, _0810DE9C @ =gUnknown_203ADCC
- strb r0, [r1, 0x8]
- bx lr
- .align 2, 0
-_0810DE9C: .4byte gUnknown_203ADCC
- thumb_func_end sub_810DE94
-
- thumb_func_start sub_810DEA0
-sub_810DEA0: @ 810DEA0
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0810DF10 @ =gTasks+0x8
- adds r6, r0, r1
- ldr r0, _0810DF14 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810DF9E
- bl sub_80A0A98
- lsls r0, 24
- cmp r0, 0
- bne _0810DF9E
- ldr r0, _0810DF18 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0810DF20
- ldrb r0, [r6]
- mov r4, sp
- adds r4, 0x2
- mov r1, sp
- adds r2, r4, 0
- bl ListMenuGetScrollAndRow
- mov r0, sp
- ldrh r1, [r0]
- ldrh r0, [r4]
- adds r1, r0
- ldr r0, _0810DF1C @ =gUnknown_203ADBC
- ldr r0, [r0]
- ldrb r0, [r0, 0x7]
- cmp r1, r0
- beq _0810DF20
- movs r0, 0x5
- bl PlaySE
- mov r0, sp
- ldrh r1, [r4]
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- asrs r1, 16
- adds r0, r5, 0
- bl sub_810DFE0
- b _0810DF9E
- .align 2, 0
-_0810DF10: .4byte gTasks+0x8
-_0810DF14: .4byte gPaletteFade
-_0810DF18: .4byte gMain
-_0810DF1C: .4byte gUnknown_203ADBC
-_0810DF20:
- ldrb r0, [r6]
- bl ListMenuHandleInput
- adds r4, r0, 0
- ldrb r0, [r6]
- ldr r1, _0810DF44 @ =gUnknown_203ADD0
- adds r2, r1, 0x2
- bl ListMenuGetScrollAndRow
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _0810DF48
- adds r0, 0x1
- cmp r4, r0
- bne _0810DF6C
- b _0810DF9E
- .align 2, 0
-_0810DF44: .4byte gUnknown_203ADD0
-_0810DF48:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_810DE94
- ldr r0, _0810DF64 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810DF68 @ =sub_810DC8C
- str r0, [r1]
- b _0810DF9E
- .align 2, 0
-_0810DF64: .4byte gTasks
-_0810DF68: .4byte sub_810DC8C
-_0810DF6C:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_810DE6C
- bl sub_810DBD0
- strh r4, [r6, 0x2]
- lsls r0, r4, 16
- lsrs r0, 16
- bl sub_810DD80
- strh r0, [r6, 0x4]
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_810DAB4
- ldr r1, _0810DFA8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810DFAC @ =sub_810E274
- str r1, [r0]
-_0810DF9E:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DFA8: .4byte gTasks
-_0810DFAC: .4byte sub_810E274
- thumb_func_end sub_810DEA0
-
- thumb_func_start sub_810DFB0
-sub_810DFB0: @ 810DFB0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_810DE6C
- bl sub_810DB5C
- ldr r1, _0810DFD8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810DFDC @ =sub_810DEA0
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DFD8: .4byte gTasks
-_0810DFDC: .4byte sub_810DEA0
- thumb_func_end sub_810DFB0
-
- thumb_func_start sub_810DFE0
-sub_810DFE0: @ 810DFE0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x14
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, r0, 2
- adds r5, r0
- lsls r5, 3
- ldr r0, _0810E09C @ =gTasks+0x8
- mov r8, r0
- adds r6, r5, r0
- ldrb r0, [r6]
- movs r1, 0x10
- movs r2, 0x1
- bl sub_8107BD0
- strh r4, [r6, 0x2]
- ldr r0, _0810E0A0 @ =gUnknown_203ADBC
- ldr r0, [r0]
- movs r1, 0
- mov r9, r1
- strb r4, [r0, 0x4]
- ldr r4, _0810E0A4 @ =gStringVar1
- ldrh r0, [r6, 0x2]
- bl sub_810DD68
- lsls r0, 16
- lsrs r0, 16
- bl ItemId_GetItem
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldr r4, _0810E0A8 @ =gStringVar4
- ldr r1, _0810E0AC @ =gUnknown_841633F
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r1, 0x3
- str r1, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- mov r0, r9
- str r0, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x1
- movs r1, 0x2
- adds r2, r4, 0
- movs r3, 0
- bl sub_810EA34
- movs r4, 0x20
- negs r4, r4
- ldrb r0, [r6]
- bl ListMenuGetYCoordForPrintingArrowCursor
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_80986A8
- movs r0, 0
- bl sub_8098660
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_810DAB4
- movs r1, 0x8
- negs r1, r1
- add r8, r1
- add r5, r8
- ldr r0, _0810E0B0 @ =sub_810E0B4
- str r0, [r5]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E09C: .4byte gTasks+0x8
-_0810E0A0: .4byte gUnknown_203ADBC
-_0810E0A4: .4byte gStringVar1
-_0810E0A8: .4byte gStringVar4
-_0810E0AC: .4byte gUnknown_841633F
-_0810E0B0: .4byte sub_810E0B4
- thumb_func_end sub_810DFE0
-
- thumb_func_start sub_810E0B4
-sub_810E0B4: @ 810E0B4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- mov r8, r6
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- ldr r0, _0810E11C @ =gTasks+0x8
- adds r4, r0
- ldrb r0, [r4]
- bl ListMenuHandleInput
- ldrb r0, [r4]
- ldr r7, _0810E120 @ =gUnknown_203ADD0
- adds r2, r7, 0x2
- adds r1, r7, 0
- bl ListMenuGetScrollAndRow
- movs r5, 0x20
- negs r5, r5
- ldrb r0, [r4]
- bl ListMenuGetYCoordForPrintingArrowCursor
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl sub_80986A8
- ldr r0, _0810E124 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x5
- ands r0, r1
- cmp r0, 0
- beq _0810E12C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0810E128 @ =gUnknown_203ADBC
- ldr r1, [r0]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- subs r0, r7, 0x4
- ldrh r1, [r0, 0x4]
- ldrh r0, [r0, 0x6]
- adds r1, r0
- adds r0, r6, 0
- bl sub_810E160
- b _0810E150
- .align 2, 0
-_0810E11C: .4byte gTasks+0x8
-_0810E120: .4byte gUnknown_203ADD0
-_0810E124: .4byte gMain
-_0810E128: .4byte gUnknown_203ADBC
-_0810E12C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810E150
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0810E15C @ =gUnknown_203ADBC
- ldr r1, [r0]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- subs r0, r7, 0x4
- ldrh r1, [r0, 0x4]
- ldrh r0, [r0, 0x6]
- adds r1, r0
- mov r0, r8
- bl sub_810E200
-_0810E150:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E15C: .4byte gUnknown_203ADBC
- thumb_func_end sub_810E0B4
-
- thumb_func_start sub_810E160
-sub_810E160: @ 810E160
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r7, r0, 3
- ldr r0, _0810E190 @ =gTasks+0x8
- mov r8, r0
- adds r6, r7, r0
- movs r0, 0x2
- ldrsh r1, [r6, r0]
- cmp r1, r4
- beq _0810E186
- subs r0, r4, 0x1
- cmp r1, r0
- bne _0810E194
-_0810E186:
- adds r0, r2, 0
- adds r1, r4, 0
- bl sub_810E200
- b _0810E1E6
- .align 2, 0
-_0810E190: .4byte gTasks+0x8
-_0810E194:
- ldr r0, _0810E1F0 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r2, 0xA6
- lsls r2, 2
- adds r0, r2
- adds r2, r4, 0
- bl sub_8108D60
- ldrb r0, [r6]
- ldr r5, _0810E1F4 @ =gUnknown_203ADD0
- adds r2, r5, 0x2
- adds r1, r5, 0
- bl DestroyListMenu
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- cmp r0, r4
- bcs _0810E1C0
- subs r1, r5, 0x4
- ldrh r0, [r1, 0x6]
- subs r0, 0x1
- strh r0, [r1, 0x6]
-_0810E1C0:
- bl sub_810D878
- ldr r0, _0810E1F8 @ =gMultiuseListMenuTemplate
- subs r2, r5, 0x4
- ldrh r1, [r2, 0x4]
- ldrh r2, [r2, 0x6]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6]
- movs r0, 0x1
- bl sub_8098660
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _0810E1FC @ =sub_810DEA0
- str r1, [r0]
-_0810E1E6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E1F0: .4byte gSaveBlock1Ptr
-_0810E1F4: .4byte gUnknown_203ADD0
-_0810E1F8: .4byte gMultiuseListMenuTemplate
-_0810E1FC: .4byte sub_810DEA0
- thumb_func_end sub_810E160
-
- thumb_func_start sub_810E200
-sub_810E200: @ 810E200
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r7, r1, 3
- ldr r0, _0810E264 @ =gTasks+0x8
- mov r8, r0
- adds r6, r7, r0
- ldrb r0, [r6]
- ldr r5, _0810E268 @ =gUnknown_203ADD0
- adds r2, r5, 0x2
- adds r1, r5, 0
- bl DestroyListMenu
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- cmp r0, r4
- bcs _0810E234
- subs r1, r5, 0x4
- ldrh r0, [r1, 0x6]
- subs r0, 0x1
- strh r0, [r1, 0x6]
-_0810E234:
- bl sub_810D878
- ldr r0, _0810E26C @ =gMultiuseListMenuTemplate
- subs r2, r5, 0x4
- ldrh r1, [r2, 0x4]
- ldrh r2, [r2, 0x6]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6]
- movs r0, 0x1
- bl sub_8098660
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _0810E270 @ =sub_810DEA0
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E264: .4byte gTasks+0x8
-_0810E268: .4byte gUnknown_203ADD0
-_0810E26C: .4byte gMultiuseListMenuTemplate
-_0810E270: .4byte sub_810DEA0
- thumb_func_end sub_810E200
-
- thumb_func_start sub_810E274
-sub_810E274: @ 810E274
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _0810E340 @ =gTasks+0x8
- mov r9, r0
- adds r6, r4, r0
- movs r0, 0x4
- bl sub_810EA9C
- movs r0, 0
- bl sub_810EAB4
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r5, 0x3
- str r5, [sp, 0x4]
- ldr r0, _0810E344 @ =gUnknown_8453F74
- str r0, [sp, 0x8]
- movs r0, 0x4
- movs r1, 0x2
- movs r2, 0x8
- movs r3, 0x2
- bl PrintTextArray
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- str r5, [sp, 0x4]
- movs r5, 0
- str r5, [sp, 0x8]
- movs r0, 0x4
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl ProgramAndPlaceMenuCursorOnWindow
- ldrh r0, [r6, 0x2]
- bl sub_810DD68
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0810E348 @ =gStringVar1
- bl CopyItemName
- ldr r6, _0810E34C @ =gStringVar4
- ldr r1, _0810E350 @ =gUnknown_84162FF
- adds r0, r6, 0
- bl StringExpandPlaceholders
- 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]
- mov r0, r8
- movs r1, 0x2
- adds r2, r6, 0
- movs r3, 0
- bl sub_810EA34
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x8
- negs r0, r0
- add r9, r0
- add r4, r9
- ldr r0, _0810E354 @ =sub_810E358
- str r0, [r4]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E340: .4byte gTasks+0x8
-_0810E344: .4byte gUnknown_8453F74
-_0810E348: .4byte gStringVar1
-_0810E34C: .4byte gStringVar4
-_0810E350: .4byte gUnknown_84162FF
-_0810E354: .4byte sub_810E358
- thumb_func_end sub_810E274
-
- thumb_func_start sub_810E358
-sub_810E358: @ 810E358
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- bl ProcessMenuInputNoWrapAround
- lsls r0, 24
- asrs r4, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _0810E39A
- adds r0, 0x1
- cmp r4, r0
- bne _0810E384
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- bl sub_810E8A0
- b _0810E39A
-_0810E384:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0810E3A0 @ =gUnknown_8453F74
- lsls r1, r4, 3
- adds r0, 0x4
- adds r1, r0
- ldr r1, [r1]
- adds r0, r6, 0
- bl _call_via_r1
-_0810E39A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E3A0: .4byte gUnknown_8453F74
- thumb_func_end sub_810E358
-
- thumb_func_start sub_810E3A4
-sub_810E3A4: @ 810E3A4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _0810E3F0 @ =gTasks+0x8
- adds r4, r6, r7
- movs r0, 0x4
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0
- bl sub_810EAF0
- movs r0, 0x4
- bl ClearWindowTilemap
- movs r0, 0x1
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0x2]
- bl sub_810DD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _0810E3F4
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r5, 0
- bl sub_810E418
- b _0810E40E
- .align 2, 0
-_0810E3F0: .4byte gTasks+0x8
-_0810E3F4:
- movs r0, 0
- bl PutWindowTilemap
- ldrh r0, [r4, 0x2]
- bl sub_810E5E0
- bl sub_810DB98
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0810E414 @ =sub_810E6D8
- str r1, [r0]
-_0810E40E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E414: .4byte sub_810E6D8
- thumb_func_end sub_810E3A4
-
- thumb_func_start sub_810E418
-sub_810E418: @ 810E418
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r6, r1, 3
- ldr r7, _0810E49C @ =gTasks+0x8
- adds r5, r6, r7
- ldrh r0, [r5, 0x2]
- bl sub_810DD68
- lsls r0, 16
- lsrs r4, r0, 16
- ldrh r1, [r5, 0x10]
- adds r0, r4, 0
- bl AddBagItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810E4B8
- ldr r3, _0810E4A0 @ =0x0000ffff
- movs r0, 0x1D
- movs r1, 0
- adds r2, r4, 0
- bl sub_80A2294
- ldr r1, _0810E4A4 @ =gStringVar1
- adds r0, r4, 0
- bl CopyItemName
- ldr r0, _0810E4A8 @ =gStringVar2
- movs r2, 0x10
- ldrsh r1, [r5, r2]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r4, _0810E4AC @ =gStringVar4
- ldr r1, _0810E4B0 @ =gUnknown_84177C5
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x2
- bl sub_810EAB4
- lsls r0, 24
- lsrs r1, r0, 24
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- adds r0, r1, 0
- movs r1, 0x2
- adds r2, r4, 0
- movs r3, 0
- bl AddTextPrinterParameterized
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0810E4B4 @ =sub_810E4F4
- b _0810E4E0
- .align 2, 0
-_0810E49C: .4byte gTasks+0x8
-_0810E4A0: .4byte 0x0000ffff
-_0810E4A4: .4byte gStringVar1
-_0810E4A8: .4byte gStringVar2
-_0810E4AC: .4byte gStringVar4
-_0810E4B0: .4byte gUnknown_84177C5
-_0810E4B4: .4byte sub_810E4F4
-_0810E4B8:
- movs r0, 0x2
- bl sub_810EAB4
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r2, _0810E4EC @ =gUnknown_841778A
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- adds r0, r1, 0
- movs r1, 0x2
- movs r3, 0
- bl AddTextPrinterParameterized
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0810E4F0 @ =sub_810E548
-_0810E4E0:
- str r1, [r0]
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E4EC: .4byte gUnknown_841778A
-_0810E4F0: .4byte sub_810E548
- thumb_func_end sub_810E418
-
- thumb_func_start sub_810E4F4
-sub_810E4F4: @ 810E4F4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0810E540 @ =gTasks+0x8
- adds r5, r0, r1
- ldr r0, _0810E544 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810E51A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810E53A
-_0810E51A:
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r5, 0x2]
- bl sub_810DD68
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r5, 0x10]
- bl sub_809A460
- bl sub_809A4E8
- adds r0, r4, 0
- bl sub_810E578
-_0810E53A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E540: .4byte gTasks+0x8
-_0810E544: .4byte gMain
- thumb_func_end sub_810E4F4
-
- thumb_func_start sub_810E548
-sub_810E548: @ 810E548
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0810E574 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810E562
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810E56E
-_0810E562:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_810E578
-_0810E56E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E574: .4byte gMain
- thumb_func_end sub_810E548
-
- thumb_func_start sub_810E578
-sub_810E578: @ 810E578
- 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, _0810E5D4 @ =gTasks+0x8
- adds r5, r0
- movs r0, 0x2
- bl sub_810EAF0
- movs r0, 0x1
- bl PutWindowTilemap
- ldrb r0, [r5]
- ldr r4, _0810E5D8 @ =gUnknown_203ADD0
- adds r2, r4, 0x2
- adds r1, r4, 0
- bl DestroyListMenu
- bl sub_810DDA4
- bl sub_810DBF0
- bl sub_810D878
- ldr r0, _0810E5DC @ =gMultiuseListMenuTemplate
- subs r4, 0x4
- ldrh r1, [r4, 0x4]
- ldrh r2, [r4, 0x6]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r6, 0
- bl sub_810DFB0
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E5D4: .4byte gTasks+0x8
-_0810E5D8: .4byte gUnknown_203ADD0
-_0810E5DC: .4byte gMultiuseListMenuTemplate
- thumb_func_end sub_810E578
-
- thumb_func_start sub_810E5E0
-sub_810E5E0: @ 810E5E0
- push {r4-r6,lr}
- sub sp, 0x14
- lsls r0, 16
- lsrs r0, 16
- bl sub_810DD68
- lsls r0, 16
- lsrs r0, 16
- ldr r6, _0810E660 @ =gStringVar1
- adds r1, r6, 0
- bl CopyItemName
- ldr r5, _0810E664 @ =gStringVar4
- ldr r1, _0810E668 @ =gUnknown_84177AC
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- bl sub_810EAB4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- str r1, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- adds r2, r5, 0
- movs r3, 0
- bl AddTextPrinterParameterized
- adds r0, r6, 0
- movs r1, 0x1
- movs r2, 0x2
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r1, _0810E66C @ =gText_TimesStrVar1
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0x3
- bl sub_810EA9C
- movs r0, 0xA
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x3
- movs r1, 0
- adds r2, r5, 0
- movs r3, 0x8
- bl sub_810EA34
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E660: .4byte gStringVar1
-_0810E664: .4byte gStringVar4
-_0810E668: .4byte gUnknown_84177AC
-_0810E66C: .4byte gText_TimesStrVar1
- thumb_func_end sub_810E5E0
-
- thumb_func_start sub_810E670
-sub_810E670: @ 810E670
- push {r4,lr}
- sub sp, 0x14
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0x1C
- str r0, [sp]
- movs r0, 0xC
- str r0, [sp, 0x4]
- movs r0, 0x3
- movs r1, 0x11
- movs r2, 0xA
- movs r3, 0xA
- bl FillWindowPixelRect
- ldr r0, _0810E6CC @ =gStringVar1
- lsls r4, 16
- asrs r4, 16
- adds r1, r4, 0
- movs r2, 0x2
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r4, _0810E6D0 @ =gStringVar4
- ldr r1, _0810E6D4 @ =gText_TimesStrVar1
- adds r0, r4, 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, 0x3
- movs r1, 0
- adds r2, r4, 0
- movs r3, 0x8
- bl sub_810EA34
- add sp, 0x14
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E6CC: .4byte gStringVar1
-_0810E6D0: .4byte gStringVar4
-_0810E6D4: .4byte gText_TimesStrVar1
- thumb_func_end sub_810E670
-
- thumb_func_start sub_810E6D8
-sub_810E6D8: @ 810E6D8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0810E708 @ =gTasks+0x8
- adds r4, r0, r1
- adds r0, r4, 0
- adds r0, 0x10
- ldrh r1, [r4, 0x4]
- bl sub_80BF848
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810E70C
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- bl sub_810E670
- b _0810E796
- .align 2, 0
-_0810E708: .4byte gTasks+0x8
-_0810E70C:
- ldr r0, _0810E74C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810E750
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_810EAF0
- movs r0, 0x3
- bl ClearWindowTilemap
- movs r0, 0
- bl PutWindowTilemap
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_810DAB4
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- bl sub_810DBD0
- adds r0, r5, 0
- bl sub_810E418
- b _0810E796
- .align 2, 0
-_0810E74C: .4byte gMain
-_0810E750:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810E796
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x3
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x1
- bl sub_810EAF0
- movs r0, 0x3
- bl ClearWindowTilemap
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_810DAB4
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- bl sub_810DBD0
- adds r0, r6, 0
- bl sub_810DFB0
-_0810E796:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_810E6D8
-
- thumb_func_start sub_810E79C
-sub_810E79C: @ 810E79C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl CalculatePlayerPartyCount
- lsls r0, 24
- cmp r0, 0
- bne _0810E7DC
- movs r0, 0x4
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0
- bl sub_810EAF0
- movs r0, 0x4
- bl ClearWindowTilemap
- movs r0, 0
- bl PutWindowTilemap
- ldr r1, _0810E7D4 @ =gText_ThereIsNoPokemon
- ldr r2, _0810E7D8 @ =sub_810E848
- adds r0, r4, 0
- bl sub_810EB30
- b _0810E7EA
- .align 2, 0
-_0810E7D4: .4byte gText_ThereIsNoPokemon
-_0810E7D8: .4byte sub_810E848
-_0810E7DC:
- ldr r0, _0810E7F0 @ =gUnknown_203ADBC
- ldr r1, [r0]
- ldr r0, _0810E7F4 @ =sub_810E7F8
- str r0, [r1]
- adds r0, r4, 0
- bl sub_810DC8C
-_0810E7EA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E7F0: .4byte gUnknown_203ADBC
-_0810E7F4: .4byte sub_810E7F8
- thumb_func_end sub_810E79C
-
- thumb_func_start sub_810E7F8
-sub_810E7F8: @ 810E7F8
- push {lr}
- sub sp, 0xC
- movs r0, 0x6
- str r0, [sp]
- ldr r0, _0810E82C @ =sub_811FB28
- str r0, [sp, 0x4]
- ldr r0, _0810E830 @ =sub_810E838
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0x6
- movs r3, 0
- bl sub_811EA44
- bl sub_810DD54
- lsls r0, 24
- lsrs r0, 24
- bl sub_810DD68
- ldr r1, _0810E834 @ =gUnknown_203B0A0
- strh r0, [r1, 0xC]
- add sp, 0xC
- pop {r0}
- bx r0
- .align 2, 0
-_0810E82C: .4byte sub_811FB28
-_0810E830: .4byte sub_810E838
-_0810E834: .4byte gUnknown_203B0A0
- thumb_func_end sub_810E7F8
-
- thumb_func_start sub_810E838
-sub_810E838: @ 810E838
- push {lr}
- movs r0, 0x1
- movs r1, 0
- bl sub_810D3F4
- pop {r0}
- bx r0
- thumb_func_end sub_810E838
-
- thumb_func_start sub_810E848
-sub_810E848: @ 810E848
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0810E898 @ =gTasks+0x8
- adds r5, r0, r1
- ldr r0, _0810E89C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810E892
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x5
- movs r1, 0
- bl sub_810F260
- movs r0, 0x5
- bl ClearWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_810DAB4
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r4, 0
- bl sub_810DFB0
-_0810E892:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E898: .4byte gTasks+0x8
-_0810E89C: .4byte gMain
- thumb_func_end sub_810E848
-
- thumb_func_start sub_810E8A0
-sub_810E8A0: @ 810E8A0
- 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, _0810E8EC @ =gTasks+0x8
- adds r4, r0
- movs r0, 0x4
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0
- bl sub_810EAF0
- movs r0, 0x4
- bl ClearWindowTilemap
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_810DAB4
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r5, 0
- bl sub_810DFB0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E8EC: .4byte gTasks+0x8
- thumb_func_end sub_810E8A0
-
- thumb_func_start sub_810E8F0
-sub_810E8F0: @ 810E8F0
- push {r4,lr}
- ldr r0, _0810E974 @ =gUnknown_8453F98
- bl InitWindows
- bl DeactivateAllTextPrinters
- movs r1, 0xF0
- lsls r1, 2
- movs r0, 0
- movs r2, 0xE0
- bl sub_815001C
- ldr r1, _0810E978 @ =0x000003a3
- movs r0, 0
- movs r2, 0xC0
- bl sub_814FF2C
- movs r1, 0xEB
- lsls r1, 2
- movs r0, 0
- movs r2, 0xB0
- bl sub_814FEAC
- movs r0, 0x2
- bl stdpal_get
- movs r1, 0xD0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0810E97C @ =gTMCaseMainWindowPalette
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- movs r4, 0
-_0810E938:
- adds r0, r4, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0810E938
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r4, 0
- ldr r3, _0810E980 @ =gUnknown_203ADD8
- movs r2, 0xFF
-_0810E95C:
- adds r0, r4, r3
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0810E95C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E974: .4byte gUnknown_8453F98
-_0810E978: .4byte 0x000003a3
-_0810E97C: .4byte gTMCaseMainWindowPalette
-_0810E980: .4byte gUnknown_203ADD8
- thumb_func_end sub_810E8F0
-
- thumb_func_start sub_810E984
-sub_810E984: @ 810E984
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x10
- ldr r6, [sp, 0x28]
- ldr r4, [sp, 0x2C]
- mov r8, r4
- ldr r4, [sp, 0x30]
- mov r9, r4
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r6, 24
- lsrs r6, 24
- mov r4, r8
- lsls r4, 24
- lsrs r4, 24
- mov r8, r4
- mov r4, r9
- lsls r4, 24
- lsrs r4, 24
- mov r9, r4
- str r1, [sp]
- mov r1, sp
- strb r0, [r1, 0x4]
- movs r0, 0x3
- strb r0, [r1, 0x5]
- mov r0, sp
- strb r2, [r0, 0x6]
- strb r3, [r0, 0x7]
- strb r2, [r0, 0x8]
- strb r3, [r0, 0x9]
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r5, 0xF
- adds r0, r5, 0
- ands r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2, 0xC]
- ldrb r1, [r2, 0xD]
- movs r4, 0x10
- negs r4, r4
- adds r0, r4, 0
- ands r0, r1
- strb r0, [r2, 0xD]
- mov r1, sp
- movs r0, 0x30
- strb r0, [r1, 0xD]
- movs r0, 0x3
- movs r1, 0x4
- bl GetFontAttribute
- mov r1, sp
- ands r5, r0
- ldrb r0, [r1, 0xC]
- ands r4, r0
- orrs r4, r5
- strb r4, [r1, 0xC]
- movs r0, 0x3
- movs r1, 0x2
- bl GetFontAttribute
- mov r1, sp
- adds r6, r0
- strb r6, [r1, 0xA]
- movs r0, 0x3
- movs r1, 0x3
- bl GetFontAttribute
- mov r1, sp
- add r8, r0
- mov r0, r8
- strb r0, [r1, 0xB]
- mov r0, sp
- mov r1, r9
- movs r2, 0
- bl AddTextPrinter
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_810E984
-
- thumb_func_start sub_810EA34
-sub_810EA34: @ 810EA34
- 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, _0810EA98 @ =gUnknown_8453F8C
- 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 AddTextPrinterParameterized4
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EA98: .4byte gUnknown_8453F8C
- thumb_func_end sub_810EA34
-
- thumb_func_start sub_810EA9C
-sub_810EA9C: @ 810EA9C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0xF0
- lsls r2, 2
- movs r1, 0
- movs r3, 0xE
- bl SetWindowBorderStyle
- pop {r0}
- bx r0
- thumb_func_end sub_810EA9C
-
- thumb_func_start sub_810EAB4
-sub_810EAB4: @ 810EAB4
- push {r4,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _0810EAE4 @ =gUnknown_203ADD8
- adds r4, r1, r0
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _0810EADC
- lsls r0, r1, 3
- ldr r1, _0810EAE8 @ =gUnknown_8453FD0
- adds r0, r1
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- ldr r2, _0810EAEC @ =0x000003a3
- movs r1, 0x1
- movs r3, 0xC
- bl SetWindowBorderStyle
-_0810EADC:
- ldrb r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0810EAE4: .4byte gUnknown_203ADD8
-_0810EAE8: .4byte gUnknown_8453FD0
-_0810EAEC: .4byte 0x000003a3
- thumb_func_end sub_810EAB4
-
- thumb_func_start sub_810EAF0
-sub_810EAF0: @ 810EAF0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0810EB1C @ =gUnknown_203ADD8
- adds r4, r0
- ldrb r0, [r4]
- movs r1, 0
- bl sub_810F4D8
- ldrb r0, [r4]
- bl ClearWindowTilemap
- ldrb r0, [r4]
- bl RemoveWindow
- movs r0, 0xFF
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EB1C: .4byte gUnknown_203ADD8
- thumb_func_end sub_810EAF0
-
- thumb_func_start sub_810EB20
-sub_810EB20: @ 810EB20
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810EB2C @ =gUnknown_203ADD8
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0810EB2C: .4byte gUnknown_203ADD8
- thumb_func_end sub_810EB20
-
- thumb_func_start sub_810EB30
-sub_810EB30: @ 810EB30
- push {r4-r6,lr}
- sub sp, 0x10
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- bl GetTextSpeedSetting
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0xEB
- lsls r2, 2
- movs r1, 0x2
- str r1, [sp]
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- str r6, [sp, 0xC]
- adds r0, r4, 0
- movs r1, 0x5
- movs r3, 0xB
- bl DisplayMessageAndContinueTask
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_810EB30
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/item_use.s b/asm/item_use.s
index 517d849c0..723eb5ee6 100644
--- a/asm/item_use.s
+++ b/asm/item_use.s
@@ -630,7 +630,7 @@ sub_80A1460: @ 80A1460
ldr r3, _080A14C4 @ =0x0000ffff
movs r0, 0x4
movs r1, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
ldr r1, _080A14C8 @ =gTasks
lsls r0, r5, 2
adds r0, r5
@@ -689,7 +689,7 @@ sub_80A14E8: @ 80A14E8
ldr r3, _080A1548 @ =0x0000ffff
movs r0, 0x4
movs r1, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
ldr r1, _080A154C @ =gTasks
lsls r0, r5, 2
adds r0, r5
@@ -765,7 +765,7 @@ _080A1598:
ldr r3, _080A15D8 @ =0x0000ffff
movs r0, 0x4
movs r1, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
ldr r1, _080A15DC @ =gTasks
lsls r0, r5, 2
adds r0, r5
@@ -1201,7 +1201,7 @@ sub_80A18EC: @ 80A18EC
ldr r3, _080A1924 @ =0x0000ffff
movs r0, 0x4
movs r1, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
ldr r1, _080A1928 @ =gTasks
lsls r0, r4, 2
adds r0, r4
@@ -1328,7 +1328,7 @@ sub_80A19E8: @ 80A19E8
ldr r3, _080A1A34 @ =0x0000ffff
movs r0, 0x4
movs r1, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
ldr r5, _080A1A38 @ =0x00004020
ldrh r0, [r4]
bl ItemId_GetHoldEffectParam
@@ -1399,7 +1399,7 @@ sub_80A1A94: @ 80A1A94
ldr r3, _080A1AD8 @ =0x0000ffff
movs r0, 0x4
movs r1, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
ldrh r0, [r5]
cmp r0, 0x2B
bne _080A1AF4
@@ -1533,7 +1533,7 @@ ItemUseOutOfBattle_EscapeRope: @ 80A1BAC
ldrb r3, [r0, 0x14]
movs r0, 0x4
movs r1, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
ldr r1, _080A1BE4 @ =gUnknown_2039998
ldr r0, _080A1BE8 @ =sub_80A1C08
str r0, [r1]
@@ -1692,7 +1692,7 @@ sub_80A1CF8: @ 80A1CF8
ldr r3, _080A1D30 @ =0x0000ffff
movs r0, 0x4
movs r1, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
ldr r1, _080A1D34 @ =gTasks
lsls r0, r4, 2
adds r0, r4
@@ -2102,7 +2102,7 @@ sub_80A2010: @ 80A2010
ldr r3, _080A204C @ =0x0000ffff
movs r0, 0x4
movs r1, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
ldr r2, _080A2050 @ =gStringVar4
ldr r3, _080A2054 @ =sub_8108B50
adds r0, r4, 0
@@ -2363,8 +2363,8 @@ _080A228A:
_080A2290: .4byte gTasks
thumb_func_end sub_80A2238
- thumb_func_start sub_80A2294
-sub_80A2294: @ 80A2294
+ thumb_func_start ItemUse_SetQuestLogEvent
+ItemUse_SetQuestLogEvent: @ 80A2294
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -2405,6 +2405,6 @@ _080A22CA:
bx r0
.align 2, 0
_080A22E4: .4byte 0x0000ffff
- thumb_func_end sub_80A2294
+ thumb_func_end ItemUse_SetQuestLogEvent
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/learn_move.s b/asm/learn_move.s
index e9041a9b2..4a37c7eae 100644
--- a/asm/learn_move.s
+++ b/asm/learn_move.s
@@ -119,7 +119,7 @@ _080E46C6:
movs r0, 0
movs r1, 0x1
movs r2, 0xE0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
movs r0, 0xD0
movs r1, 0x1
bl sub_8107D38
diff --git a/asm/link_rfu.s b/asm/link_rfu.s
index 81ecfaa4a..a1d543dd6 100644
--- a/asm/link_rfu.s
+++ b/asm/link_rfu.s
@@ -7851,7 +7851,7 @@ sub_8100E34: @ 8100E34
movs r0, 0x1
movs r1, 0x1
movs r2, 0xE0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
movs r0, 0x1
movs r1, 0x1
movs r2, 0xE
diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s
index 9dae54154..50121e847 100644
--- a/asm/link_rfu_3.s
+++ b/asm/link_rfu_3.s
@@ -12966,7 +12966,7 @@ _0811C300:
movs r0, 0
movs r1, 0x1
movs r2, 0xD0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
bl sub_80F77B8
ldr r0, _0811C35C @ =sub_811C1B4
bl SetVBlankCallback
diff --git a/asm/list_menu.s b/asm/list_menu.s
index 9558ea323..e6e316fb7 100644
--- a/asm/list_menu.s
+++ b/asm/list_menu.s
@@ -52,7 +52,7 @@ _08106F06:
lsls r2, r1, 24
lsrs r2, 24
adds r1, r7, 0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
_08106F24:
ldrb r0, [r5, 0x5]
mov r3, r8
diff --git a/asm/mail.s b/asm/mail.s
index 36af80e97..77f8864ed 100644
--- a/asm/mail.s
+++ b/asm/mail.s
@@ -623,7 +623,7 @@ _080BF112:
.align 2, 0
_080BF128: .4byte sub_80BF368
_080BF12C:
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/mailbox_pc.s b/asm/mailbox_pc.s
index 9a6dadb60..aecca0735 100644
--- a/asm/mailbox_pc.s
+++ b/asm/mailbox_pc.s
@@ -81,7 +81,7 @@ sub_810EBE0: @ 810EBE0
adds r4, r0
ldrb r0, [r4]
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r4]
bl ClearWindowTilemap
ldrb r0, [r4]
diff --git a/asm/main_menu.s b/asm/main_menu.s
index 31e87af11..f88fea21a 100644
--- a/asm/main_menu.s
+++ b/asm/main_menu.s
@@ -1656,7 +1656,7 @@ sub_800D094: @ 800D094
ldr r1, _0800D0AC @ =0x000001b1
movs r0, 0
movs r2, 0x20
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
ldr r0, _0800D0B0 @ =gUnknown_8234638
bl sub_800D1E8
pop {r0}
diff --git a/asm/menu.s b/asm/menu.s
index d9efcde84..2229f41d8 100644
--- a/asm/menu.s
+++ b/asm/menu.s
@@ -556,8 +556,8 @@ _0810F258: .4byte 0x00000803
_0810F25C: .4byte 0x00000804
thumb_func_end sub_810EE5C
- thumb_func_start sub_810F260
-sub_810F260: @ 810F260
+ thumb_func_start ClearMenuWindow_BorderThickness2
+ClearMenuWindow_BorderThickness2: @ 810F260
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 24
@@ -583,7 +583,7 @@ _0810F28E:
bx r0
.align 2, 0
_0810F294: .4byte sub_810F298
- thumb_func_end sub_810F260
+ thumb_func_end ClearMenuWindow_BorderThickness2
thumb_func_start sub_810F298
sub_810F298: @ 810F298
@@ -866,8 +866,8 @@ _0810F4D0: .4byte gUnknown_203ADF0
_0810F4D4: .4byte gUnknown_203ADF2
thumb_func_end DrawWindowBorder
- thumb_func_start sub_810F4D8
-sub_810F4D8: @ 810F4D8
+ thumb_func_start ClearMenuWindow
+ClearMenuWindow: @ 810F4D8
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 24
@@ -893,7 +893,7 @@ _0810F506:
bx r0
.align 2, 0
_0810F50C: .4byte sub_810F510
- thumb_func_end sub_810F4D8
+ thumb_func_end ClearMenuWindow
thumb_func_start sub_810F510
sub_810F510: @ 810F510
@@ -2469,7 +2469,7 @@ sub_81100E8: @ 81100E8
ldr r4, _08110100 @ =gUnknown_203ADF3
ldrb r0, [r4]
movs r1, 0x1
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r4]
bl RemoveWindow
pop {r4}
diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s
index 7984a32c4..e68c428cd 100644
--- a/asm/menu_helpers.s
+++ b/asm/menu_helpers.s
@@ -357,8 +357,8 @@ _080BF702:
bx r1
thumb_func_end itemid_80BF6D8_mail_related
- thumb_func_start sub_80BF708
-sub_80BF708: @ 80BF708
+ thumb_func_start MenuHelpers_LinkSomething
+MenuHelpers_LinkSomething: @ 80BF708
push {lr}
bl is_c1_link_related_active
cmp r0, 0x1
@@ -377,12 +377,12 @@ _080BF724:
_080BF726:
pop {r1}
bx r1
- thumb_func_end sub_80BF708
+ thumb_func_end MenuHelpers_LinkSomething
thumb_func_start sub_80BF72C
sub_80BF72C: @ 80BF72C
push {lr}
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
cmp r0, 0
beq _080BF742
diff --git a/asm/new_menu_helpers.s b/asm/new_menu_helpers.s
index b592c1bf5..9efda4372 100644
--- a/asm/new_menu_helpers.s
+++ b/asm/new_menu_helpers.s
@@ -486,8 +486,8 @@ _080F6AFC:
bx r1
thumb_func_end sub_80F6AD0
- thumb_func_start sub_80F6B08
-sub_80F6B08: @ 80F6B08
+ thumb_func_start SetBgRectPal
+SetBgRectPal: @ 80F6B08
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -561,7 +561,7 @@ _080F6B80:
bx r0
.align 2, 0
_080F6B90: .4byte 0x00000fff
- thumb_func_end sub_80F6B08
+ thumb_func_end SetBgRectPal
thumb_func_start sub_80F6B94
sub_80F6B94: @ 80F6B94
@@ -984,13 +984,13 @@ _080F6EC4:
lsls r1, 2
movs r0, 0
movs r2, 0xF0
- bl sub_814FEAC
+ bl TextWindow_SetBubbleFrame_841F1C8
_080F6ED4:
movs r1, 0x85
lsls r1, 2
movs r0, 0
movs r2, 0xE0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
pop {r0}
bx r0
thumb_func_end sub_80F6E9C
@@ -2033,7 +2033,7 @@ _080F7798:
lsls r1, 2
adds r0, r4, 0
movs r2, 0xF0
- bl sub_814FEAC
+ bl TextWindow_SetBubbleFrame_841F1C8
_080F77A4:
movs r2, 0x80
lsls r2, 2
@@ -2347,7 +2347,7 @@ sub_80F79A4: @ 80F79A4
lsls r1, 2
movs r0, 0
movs r2, 0xE0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
pop {r0}
bx r0
thumb_func_end sub_80F79A4
diff --git a/asm/party_menu.s b/asm/party_menu.s
index b3ce0f3be..d873fb9aa 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -5,8 +5,8 @@
.text
- thumb_func_start sub_811EA44
-sub_811EA44: @ 811EA44
+ thumb_func_start PartyMenuInit
+PartyMenuInit: @ 811EA44
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -181,7 +181,7 @@ _0811EB90: .4byte gUnknown_203B09C
_0811EB94: .4byte gPlayerParty
_0811EB98: .4byte gTextFlags
_0811EB9C: .4byte sub_811EBD0
- thumb_func_end sub_811EA44
+ thumb_func_end PartyMenuInit
thumb_func_start sub_811EBA0
sub_811EBA0: @ 811EBA0
@@ -219,7 +219,7 @@ _0811EBD2:
lsrs r0, 24
cmp r0, 0x1
beq _0811EBF6
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -299,7 +299,7 @@ _0811ECAE:
bl FreeAllSpritePalettes
b _0811EDFC
_0811ECB4:
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
cmp r0, 0
beq _0811ECC0
@@ -1799,7 +1799,7 @@ _0811F884:
movs r1, 0x17
movs r2, 0x10
movs r3, 0x7
- bl sub_80F6B08
+ bl SetBgRectPal
b _0811F8B0
_0811F89E:
movs r0, 0x2
@@ -1809,7 +1809,7 @@ _0811F89E:
movs r1, 0x17
movs r2, 0x10
movs r3, 0x7
- bl sub_80F6B08
+ bl SetBgRectPal
_0811F8B0:
ldr r0, _0811F8BC @ =gUnknown_203B09C
ldr r0, [r0]
@@ -1857,7 +1857,7 @@ _0811F8F2:
movs r2, 0x12
_0811F904:
movs r3, 0x7
- bl sub_80F6B08
+ bl SetBgRectPal
b _0811F91E
_0811F90C:
movs r0, 0x2
@@ -1867,7 +1867,7 @@ _0811F90C:
movs r1, 0x17
movs r2, 0x12
movs r3, 0x7
- bl sub_80F6B08
+ bl SetBgRectPal
_0811F91E:
ldr r0, _0811F940 @ =gUnknown_203B09C
ldr r0, [r0]
@@ -2494,7 +2494,7 @@ _0811FDD6:
.align 2, 0
_0811FDF0: .4byte gUnknown_203B0A0
_0811FDF4:
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
cmp r0, 0
bne _0811FE04
@@ -3234,7 +3234,7 @@ sub_8120328: @ 8120328
bne _0812035E
movs r0, 0x6
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
movs r0, 0x6
bl ClearWindowTilemap
_0812035E:
@@ -3302,10 +3302,10 @@ sub_81203B8: @ 81203B8
beq _08120410
movs r0, 0x6
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
movs r0, 0x6
bl ClearWindowTilemap
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -3366,7 +3366,7 @@ _0812043C:
_08120448:
adds r1, r5, 0
adds r2, r4, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
b _08120468
.align 2, 0
_08120454: .4byte gUnknown_203B0A0
@@ -3376,7 +3376,7 @@ _0812045C:
movs r0, 0x6
adds r1, r5, 0
adds r2, r4, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
_08120468:
ldr r1, _0812049C @ =gStringVar1
adds r0, r5, 0
@@ -3418,7 +3418,7 @@ sub_81204AC: @ 81204AC
movs r0, 0x8
adds r1, r6, 0
adds r2, r4, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
ldr r1, _081204FC @ =gStringVar1
adds r0, r6, 0
bl GetMonNickname
@@ -3627,7 +3627,7 @@ _08120678:
_0812067E:
ldr r0, _08120698 @ =0x0000016d
_08120680:
- bl ItemId_GetItem
+ bl ItemId_GetName
adds r1, r0, 0
_08120686:
ldr r0, _0812069C @ =gStringVar1
@@ -4709,11 +4709,11 @@ sub_8120E58: @ 8120E58
movs r0, 0
movs r1, 0x4F
movs r2, 0xD0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
movs r0, 0
movs r1, 0x58
movs r2, 0xF0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
ldr r0, _08120E94 @ =gUnknown_203B0A0
ldrb r0, [r0, 0xB]
cmp r0, 0x3
@@ -5016,11 +5016,11 @@ _081210AC:
movs r0, 0
movs r1, 0x4F
movs r2, 0xD0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
movs r0, 0
movs r1, 0x58
movs r2, 0xF0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
movs r0, 0x2
bl stdpal_get
movs r1, 0xC0
@@ -6507,7 +6507,7 @@ sub_8121CE4: @ 8121CE4
cmp r0, 0xFF
beq _08121D04
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r4]
bl RemoveWindow
movs r0, 0xFF
@@ -7026,7 +7026,7 @@ sub_81220D4: @ 81220D4
adds r0, r4, 0
movs r1, 0x4F
movs r2, 0xE0
- bl sub_814FEAC
+ bl TextWindow_SetBubbleFrame_841F1C8
adds r0, r4, 0
movs r1, 0x1
movs r2, 0x4F
@@ -7054,7 +7054,7 @@ sub_8122110: @ 8122110
bl ClearWindowTilemap
adds r0, r4, 0
movs r1, 0
- bl sub_810F260
+ bl ClearMenuWindow_BorderThickness2
adds r0, r4, 0
bl RemoveWindow
movs r0, 0x2
@@ -8717,7 +8717,7 @@ sub_8122DBC: @ 8122DBC
str r1, [sp, 0x8]
movs r1, 0xFF
movs r3, 0x1
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r0}
bx r0
@@ -9928,7 +9928,7 @@ _081237AE:
str r1, [sp, 0x8]
movs r1, 0xFF
movs r3, 0x1
- bl sub_811EA44
+ bl PartyMenuInit
b _08123814
.align 2, 0
_081237BC: .4byte gUnknown_203B0D8
@@ -9967,7 +9967,7 @@ _081237F8:
str r1, [sp, 0x8]
movs r1, 0xFF
movs r3, 0x1
- bl sub_811EA44
+ bl PartyMenuInit
_08123814:
add sp, 0xC
pop {r3}
@@ -10345,7 +10345,7 @@ sub_8123ACC: @ 8123ACC
str r1, [sp, 0x8]
movs r1, 0xFF
movs r3, 0x1
- bl sub_811EA44
+ bl PartyMenuInit
b _08123B68
.align 2, 0
_08123B38: .4byte gUnknown_203B0A0
@@ -10366,7 +10366,7 @@ _08123B4C:
str r1, [sp, 0x8]
movs r1, 0xFF
movs r3, 0x1
- bl sub_811EA44
+ bl PartyMenuInit
_08123B68:
add sp, 0xC
pop {r3}
@@ -10675,7 +10675,7 @@ sub_8123DCC: @ 8123DCC
str r1, [sp, 0x8]
movs r1, 0xFF
movs r3, 0x1
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r0}
bx r0
@@ -11627,7 +11627,7 @@ _081245D6:
ldr r0, [r5]
adds r0, 0xD
bl sub_8121CE4
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -12237,7 +12237,7 @@ sub_8124AB0: @ 8124AB0
movs r1, 0
movs r2, 0
movs r3, 0x1
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r0}
bx r0
@@ -12577,7 +12577,7 @@ _08124D6A:
adds r1, r7, 0
movs r2, 0x3
movs r3, 0x1
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r3}
mov r8, r3
@@ -12759,7 +12759,7 @@ _08124EC8:
str r1, [sp, 0x8]
movs r1, 0xFF
movs r2, 0
- bl sub_811EA44
+ bl PartyMenuInit
_08124EE6:
add sp, 0xC
pop {r3}
@@ -12820,7 +12820,7 @@ sub_8124EFC: @ 8124EFC
movs r0, 0x4
adds r1, r5, 0
adds r3, r6, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
ldrh r1, [r7]
movs r0, 0xA9
lsls r0, 1
@@ -12852,7 +12852,7 @@ _08124F94:
ldr r1, [r4]
str r1, [sp, 0x8]
movs r1, 0xFF
- bl sub_811EA44
+ bl PartyMenuInit
_08124FB2:
add sp, 0xC
pop {r3}
@@ -13312,7 +13312,7 @@ _08125380:
movs r0, 0x4
adds r1, r5, 0
adds r2, r6, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
adds r0, r7, 0
bl sub_8124DC0
ldr r1, _081253A8 @ =gUnknown_3005E98
@@ -13958,7 +13958,7 @@ sub_8125898: @ 8125898
ldr r3, _08125940 @ =0x0000ffff
movs r0, 0x4
adds r1, r4, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
movs r0, 0x1
bl PlaySE
ldrh r0, [r6]
@@ -14060,7 +14060,7 @@ _081259A0:
movs r0, 0x4
adds r1, r4, 0
adds r2, r5, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
movs r0, 0x1
bl PlaySE
adds r0, r5, 0
@@ -14315,7 +14315,7 @@ sub_8125B40: @ 8125B40
movs r0, 0x4
adds r1, r4, 0
adds r2, r5, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
adds r0, r6, 0
bl sub_8124DC0
ldr r1, _08125BEC @ =gUnknown_3005E98
@@ -14712,7 +14712,7 @@ _08125EE8:
movs r1, 0
movs r2, 0
movs r3, 0x1
- bl sub_811EA44
+ bl PartyMenuInit
_08125F02:
add sp, 0xC
pop {r4,r5}
@@ -14799,7 +14799,7 @@ sub_8125F5C: @ 8125F5C
movs r0, 0x4
adds r1, r6, 0
adds r3, r4, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
ldr r1, _08125FF0 @ =gStringVar1
adds r0, r6, 0
bl GetMonNickname
@@ -15268,7 +15268,7 @@ sub_8126350: @ 8126350
ldr r3, _08126424 @ =0x0000ffff
movs r0, 0x4
adds r1, r4, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
movs r0, 0
bl PlayFanfareByFanfareNum
ldrb r0, [r6, 0x9]
@@ -16112,7 +16112,7 @@ _08126A94:
ldrh r2, [r0]
ldr r3, _08126AE0 @ =0x0000ffff
movs r0, 0x4
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
_08126AB4:
ldr r0, _08126ADC @ =gSpecialVar_ItemId
ldrh r0, [r0]
@@ -16266,7 +16266,7 @@ sub_8126BD4: @ 8126BD4
ldrh r2, [r5]
ldr r3, _08126C20 @ =0x0000ffff
movs r0, 0x4
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
ldrh r0, [r5]
movs r1, 0x1
bl RemoveBagItem
@@ -16640,7 +16640,7 @@ CB2_PartyMenuFromStartMenu: @ 8126EB0
movs r1, 0
movs r2, 0
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r0}
bx r0
@@ -16684,7 +16684,7 @@ _08126F0A:
movs r1, 0
movs r2, 0x5
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
ldr r1, _08126F38 @ =gUnknown_203B0A0
ldr r0, _08126F3C @ =gSpecialVar_ItemId
ldrh r0, [r0]
@@ -16995,7 +16995,7 @@ _0812719C:
str r1, [sp, 0x8]
movs r1, 0xFF
movs r3, 0x1
- bl sub_811EA44
+ bl PartyMenuInit
_081271B8:
add sp, 0xC
pop {r4-r7}
@@ -17233,7 +17233,7 @@ sub_8127384: @ 8127384
bne _081273A0
adds r0, r1, 0
movs r1, 0x1
- bl sub_809A460
+ bl RemoveItemFromPC
b _081273A8
.align 2, 0
_0812739C: .4byte gUnknown_203B0A0
@@ -17286,7 +17286,7 @@ sub_81273D8: @ 81273D8
movs r1, 0
movs r2, 0x7
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r0}
bx r0
@@ -17387,7 +17387,7 @@ sub_81274A8: @ 81274A8
movs r1, 0
movs r2, 0
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
ldr r1, _081274F4 @ =gUnknown_203B0A0
lsls r4, 6
ldrb r2, [r1, 0x8]
@@ -17824,7 +17824,7 @@ sub_81277F4: @ 81277F4
movs r1, 0
movs r2, 0
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r0}
bx r0
@@ -17850,7 +17850,7 @@ sub_812781C: @ 812781C
movs r1, 0
movs r2, 0xC
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
b _08127870
.align 2, 0
_08127844: .4byte gSpecialVar_0x8005
@@ -17867,7 +17867,7 @@ _08127850:
movs r1, 0
movs r2, 0xC
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
ldr r1, _08127880 @ =gUnknown_203B0A0
ldr r0, _08127884 @ =gSpecialVar_0x8007
ldrh r0, [r0]
@@ -17897,7 +17897,7 @@ sub_8127888: @ 8127888
movs r1, 0
movs r2, 0xD
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r0}
bx r0
@@ -17960,7 +17960,7 @@ sub_81278DC: @ 81278DC
movs r0, 0x1
adds r2, r4, 0
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
movs r0, 0x8
bl sub_80EB2F4
b _08127950
@@ -17982,7 +17982,7 @@ _08127930:
movs r0, 0x1
adds r2, r4, 0
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
_08127950:
bl nullsub_44
bl pokemon_change_order
@@ -18012,7 +18012,7 @@ sub_8127968: @ 8127968
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
bl nullsub_44
bl pokemon_change_order
add sp, 0xC
@@ -18040,7 +18040,7 @@ sub_81279A4: @ 81279A4
movs r0, 0x1
movs r2, 0xE
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
bl nullsub_44
bl pokemon_change_order
add sp, 0xC
@@ -18079,7 +18079,7 @@ sub_81279E0: @ 81279E0
movs r0, 0x1
movs r2, 0x3
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
movs r0, 0x8
bl sub_80EB2F4
b _08127A62
@@ -18110,7 +18110,7 @@ _08127A44:
movs r0, 0x1
movs r2, 0x3
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
_08127A62:
bl nullsub_44
bl pokemon_change_order
@@ -19069,7 +19069,7 @@ sub_8128198: @ 8128198
movs r1, 0x3
movs r2, 0
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r0}
bx r0
@@ -19314,7 +19314,7 @@ sub_8128370: @ 8128370
movs r1, 0
movs r2, 0
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r0}
bx r0
@@ -19343,7 +19343,7 @@ sub_81283A8: @ 81283A8
movs r1, 0
movs r2, 0xB
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r0}
bx r0
diff --git a/asm/player_pc.s b/asm/player_pc.s
index cb6c9f9d0..d0fd38a8c 100644
--- a/asm/player_pc.s
+++ b/asm/player_pc.s
@@ -237,7 +237,7 @@ sub_80EB81C: @ 80EB81C
bl PlaySE
ldrb r0, [r4, 0x14]
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r4, 0x14]
bl ClearWindowTilemap
ldrb r0, [r4, 0x14]
@@ -256,7 +256,7 @@ _080EB874: .4byte sub_80EB9B8
_080EB878:
ldrb r0, [r4, 0x14]
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r4, 0x14]
bl ClearWindowTilemap
ldrb r0, [r4, 0x14]
@@ -752,7 +752,7 @@ _080EBC78: .4byte sub_80EBCAC
_080EBC7C:
ldrb r0, [r4, 0x14]
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r4, 0x14]
bl ClearWindowTilemap
ldrb r0, [r4, 0x14]
@@ -811,7 +811,7 @@ sub_80EBCD8: @ 80EBCD8
bl CleanupOverworldWindowsAndTilemaps
ldrb r0, [r5, 0xC]
ldr r1, _080EBD14 @ =CB2_ReturnToField
- bl sub_810D3F4
+ bl ItemPc_Init
adds r0, r4, 0
bl DestroyTask
_080EBD06:
@@ -837,7 +837,7 @@ sub_80EBD18: @ 80EBD18
ldr r0, _080EBD44 @ =sub_80EBCD8
str r0, [r1]
movs r0, 0
- bl sub_810DE94
+ bl ItemPc_SetInitializedFlag
movs r0, 0x1
movs r1, 0
bl fade_screen
@@ -861,7 +861,7 @@ sub_80EBD48: @ 80EBD48
adds r4, r0
ldrb r0, [r4, 0x14]
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r4, 0x14]
bl ClearWindowTilemap
ldrb r0, [r4, 0x14]
diff --git a/asm/pokemon_jump_2.s b/asm/pokemon_jump_2.s
index 9fde893f9..a8595db7f 100644
--- a/asm/pokemon_jump_2.s
+++ b/asm/pokemon_jump_2.s
@@ -7930,7 +7930,7 @@ sub_814B5C4: @ 814B5C4
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0xD0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0xD
diff --git a/asm/pokemon_special_anim.s b/asm/pokemon_special_anim.s
index abbf7a14f..8a14c09c3 100644
--- a/asm/pokemon_special_anim.s
+++ b/asm/pokemon_special_anim.s
@@ -1617,7 +1617,7 @@ sub_811D184: @ 811D184
movs r0, 0
movs r1, 0
movs r2, 0xE0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -1703,7 +1703,7 @@ sub_811D2D0: @ 811D2D0
bl ClearWindowTilemap
movs r0, 0
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
movs r0, 0
movs r1, 0x1
bl CopyWindowToVram
@@ -1759,7 +1759,7 @@ _0811D330:
_0811D358:
adds r4, 0x14
adds r0, r7, 0
- bl ItemId_GetItem
+ bl ItemId_GetName
adds r1, r0, 0
adds r0, r4, 0
bl StringCopy
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 366f714c2..4c851f4cb 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -3035,7 +3035,7 @@ _0808D0D6:
movs r0, 0x1
movs r1, 0xB
movs r2, 0xE0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
b _0808D20C
.align 2, 0
_0808D100: .4byte 0x05000080
@@ -8165,7 +8165,7 @@ sub_808FB68: @ 808FB68
movs r0, 0x1
movs r1, 0x2
movs r2, 0xD0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
movs r0, 0x20
str r0, [sp]
movs r0, 0x14
@@ -8363,7 +8363,7 @@ sub_808FD20: @ 808FD20
push {lr}
movs r0, 0x1
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
pop {r0}
@@ -16876,7 +16876,7 @@ _08093EF2:
beq _08093F78
ldr r3, _08093F74 @ =0x00000d61
adds r4, r3
- bl ItemId_GetItem
+ bl ItemId_GetName
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0
@@ -19077,7 +19077,7 @@ sub_8095024: @ 8095024
adds r0, r4
ldrb r0, [r0]
movs r1, 0x1
- bl sub_810F4D8
+ bl ClearMenuWindow
ldr r0, [r5]
adds r0, r4
ldrb r0, [r0]
@@ -21364,7 +21364,7 @@ sub_80961A8: @ 80961A8
ldr r1, _080961C0 @ =0x00002224
adds r0, r1
ldrh r0, [r0]
- bl ItemId_GetItem
+ bl ItemId_GetName
pop {r1}
bx r1
.align 2, 0
diff --git a/asm/script_menu.s b/asm/script_menu.s
index bb4b0e062..69e487bcc 100644
--- a/asm/script_menu.s
+++ b/asm/script_menu.s
@@ -1721,7 +1721,7 @@ sub_809D6B0: @ 809D6B0
bl ClearWindowTilemap
adds r0, r4, 0
movs r1, 0x1
- bl sub_810F4D8
+ bl ClearMenuWindow
adds r0, r4, 0
bl RemoveWindow
pop {r4}
diff --git a/asm/shop.s b/asm/shop.s
index d7188e66e..dfe2544d1 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -332,7 +332,7 @@ sub_809AD24: @ 809AD24
ldr r4, _0809AD3C @ =gUnknown_2039950
ldrb r0, [r4]
movs r1, 0x2
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r4]
bl RemoveWindow
pop {r4}
@@ -529,7 +529,7 @@ _0809AEAC:
bl ResetSpriteData
bl ResetTasks
bl clear_scheduled_bg_copies_to_vram
- bl sub_80984D8
+ bl ResetItemMenuIconState
bl sub_809AF6C
lsls r0, 24
cmp r0, 0
@@ -793,7 +793,7 @@ _0809B118:
movs r1, 0
movs r2, 0xE
movs r3, 0x1E
- bl sub_80F6B08
+ bl SetBgRectPal
b _0809B14E
.align 2, 0
_0809B138: .4byte gUnknown_2039934
@@ -805,7 +805,7 @@ _0809B13C:
movs r1, 0
movs r2, 0xC
movs r3, 0x1E
- bl sub_80F6B08
+ bl SetBgRectPal
_0809B14E:
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
@@ -1069,7 +1069,7 @@ _0809B34A:
lsrs r1, 30
movs r0, 0x1
eors r0, r1
- bl sub_8098940
+ bl DestroyItemMenuIcon
movs r0, 0x2
negs r0, r0
cmp r5, r0
@@ -1079,7 +1079,7 @@ _0809B34A:
ldrb r1, [r6, 0x17]
lsls r1, 29
lsrs r1, 30
- bl sub_80988E8
+ bl CreateItemMenuIcon
b _0809B398
.align 2, 0
_0809B384: .4byte gUnknown_8416757
@@ -1089,7 +1089,7 @@ _0809B38C:
ldrb r1, [r6, 0x17]
lsls r1, 29
lsrs r1, 30
- bl sub_80988E8
+ bl CreateItemMenuIcon
_0809B398:
ldr r3, _0809B3D4 @ =gUnknown_2039934
ldrb r2, [r3, 0x17]
@@ -2396,10 +2396,10 @@ _0809BDD4:
bl sub_809B73C
movs r0, 0x3
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
movs r0, 0x1
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
movs r0, 0x3
bl ClearWindowTilemap
movs r0, 0x1
@@ -2442,10 +2442,10 @@ _0809BE54:
bl sub_809B73C
movs r0, 0x3
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
movs r0, 0x1
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
movs r0, 0x3
bl ClearWindowTilemap
movs r0, 0x1
@@ -2601,7 +2601,7 @@ sub_809BF98: @ 809BF98
adds r4, r5, r6
movs r0, 0x2
movs r1, 0
- bl sub_810F260
+ bl ClearMenuWindow_BorderThickness2
ldrb r0, [r4, 0xE]
movs r1, 0x1
bl sub_809B57C
diff --git a/asm/start_menu.s b/asm/start_menu.s
index d6707732e..358eb7283 100644
--- a/asm/start_menu.s
+++ b/asm/start_menu.s
@@ -220,7 +220,7 @@ sub_806EF18: @ 806EF18
ldr r4, _0806EF40 @ =gUnknown_2037101
ldrb r0, [r4]
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r4]
movs r1, 0x2
bl CopyWindowToVram
@@ -440,7 +440,7 @@ _0806F0C4:
movs r3, 0
bl ProgramAndPlaceMenuCursorOnWindow
strb r0, [r4]
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
cmp r0, 0
bne _0806F118
@@ -666,7 +666,7 @@ sub_806F280: @ 806F280
bl MoveMenuCursor
ldr r4, _0806F360 @ =gUnknown_20370F4
strb r0, [r4]
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
cmp r0, 0
bne _0806F2D2
@@ -701,7 +701,7 @@ _0806F2D2:
bl MoveMenuCursor
ldr r4, _0806F360 @ =gUnknown_20370F4
strb r0, [r4]
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
cmp r0, 0
bne _0806F320
@@ -1080,7 +1080,7 @@ sub_806F5C8: @ 806F5C8
_0806F5E4:
movs r0, 0
movs r1, 0
- bl sub_810F260
+ bl ClearMenuWindow_BorderThickness2
bl sub_806F14C
bl sub_812B248
ldr r1, _0806F5FC @ =gUnknown_20370F0
@@ -1093,7 +1093,7 @@ _0806F600: .4byte sub_806F280
_0806F604:
movs r0, 0
movs r1, 0x1
- bl sub_810F260
+ bl ClearMenuWindow_BorderThickness2
bl sub_80696C0
bl ScriptContext2_Disable
bl sub_812B248
@@ -1781,7 +1781,7 @@ _0806FB12:
movs r0, 0
movs r1, 0x8
movs r2, 0xF0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
b _0806FB64
.align 2, 0
_0806FB34: .4byte gUnknown_83A73B8
@@ -2014,7 +2014,7 @@ sub_806FCF4: @ 806FCF4
ldr r4, _0806FE5C @ =0x0000021d
adds r1, r4, 0
movs r2, 0xD0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
ldrb r0, [r5]
movs r1, 0
adds r2, r4, 0
diff --git a/asm/trade.s b/asm/trade.s
index 287270525..eac1fdea5 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -78,11 +78,11 @@ _0804C674:
movs r0, 0
movs r1, 0x14
movs r2, 0xC0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
movs r0, 0x2
movs r1, 0x1
movs r2, 0xE0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
bl sub_809707C
ldr r2, _0804C708 @ =gUnknown_2031DA8
ldr r0, [r2]
diff --git a/asm/union_room_chat.s b/asm/union_room_chat.s
index c69ca9b55..6c917be27 100644
--- a/asm/union_room_chat.s
+++ b/asm/union_room_chat.s
@@ -4329,7 +4329,7 @@ sub_812A51C: @ 812A51C
lsls r0, 24
lsrs r0, 24
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
ldr r0, [r4]
ldrb r0, [r0, 0x18]
bl ClearWindowTilemap
@@ -4568,7 +4568,7 @@ sub_812A6F4: @ 812A6F4
lsls r0, 24
lsrs r0, 24
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
ldr r0, [r4]
ldrb r0, [r0, 0x1E]
bl ClearWindowTilemap
@@ -5015,7 +5015,7 @@ sub_812AA64: @ 812AA64
push {lr}
movs r0, 0x3
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
movs r0, 0x3
bl ClearWindowTilemap
pop {r0}
@@ -5350,11 +5350,11 @@ sub_812AD20: @ 812AD20
movs r0, 0x3
movs r1, 0x1
movs r2, 0xD0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
movs r0, 0x3
movs r1, 0xA
movs r2, 0x20
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
ldr r0, _0812AD4C @ =gTMCaseMainWindowPalette
movs r1, 0xE0
movs r2, 0x20
diff --git a/data/data_835B488.s b/data/data_835B488.s
index 7970f26c4..008c99dde 100644
--- a/data/data_835B488.s
+++ b/data/data_835B488.s
@@ -556,11 +556,11 @@ gUnknown_83D41F4:: @ 83D41F4
gUnknown_83D41FC:: @ 83D41FC
.incbin "baserom.gba", 0x3D41FC, 0x44
-gUnknown_83D4240:: @ 83D4240
- .incbin "baserom.gba", 0x3D4240, 0x8
+gBagSwapSpriteSheet:: @ 83D4240
+ obj_tiles gFile_graphics_interface_bag_swap_sheet, 0x0100, 0x0065
-gUnknown_83D4248:: @ 83D4248
- .incbin "baserom.gba", 0x3D4248, 0x8
+gBagSwapSpritePalette:: @ 83D4248
+ obj_pal gFile_graphics_interface_bag_swap_palette, 0x0065
gUnknown_83D4250:: @ 83D4250
.incbin "baserom.gba", 0x3D4250, 0x2C
diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s
index e84c93578..17e17c77a 100644
--- a/data/data_83FECCC.s
+++ b/data/data_83FECCC.s
@@ -892,8 +892,8 @@ gText_DepositItem:: @ 84162E8
gUnknown_84162F5:: @ 84162F5
.incbin "baserom.gba", 0x4162F5, 0xA
-gUnknown_84162FF:: @ 84162FF
- .incbin "baserom.gba", 0x4162FF, 0x2
+gOtherText_StrVar1:: @ 84162FF
+ .string "{STR_VAR_1}"
gText_IsSelected:: @ 8416301
.string " is\n"
@@ -906,8 +906,9 @@ gText_ThereIsNoPokemon:: @ 841632A
.string "There is no\n"
.string "POKéMON.$"
-gUnknown_841633F:: @ 841633F
- .incbin "baserom.gba", 0x41633F, 0x1F
+gOtherText_WhereShouldTheStrVar1BePlaced:: @ 841633F
+ .string "Where should the {STR_VAR_1}\n"
+ .string "be placed?$"
gText_ItemCantBeHeld:: @ 841635E
.string "The {STR_VAR_1} can't be held.$"
@@ -969,7 +970,7 @@ gUnknown_8416631:: @ 8416631
gUnknown_8416644:: @ 8416644
.incbin "baserom.gba", 0x416644, 0x11
-gUnknown_8416655:: @ 8416655
+gOtherText_Powder:: @ 8416655
.string "POWDER$"
gUnknown_841665C:: @ 841665C
@@ -1247,14 +1248,26 @@ gUnknown_84176FE:: @ 84176FE
gUnknown_8417774:: @ 8417774
.incbin "baserom.gba", 0x417774, 0x16
-gUnknown_841778A:: @ 841778A
- .incbin "baserom.gba", 0x41778A, 0x22
+gText_NoMoreRoomInBag:: @ 841778A
+ .string "There is no more\n"
+ .string "room in the BAG.$"
-gUnknown_84177AC:: @ 84177AC
- .incbin "baserom.gba", 0x4177AC, 0x19
+gText_WithdrawHowMany:: @ 84177AC
+ .string "Withdraw how many\n"
+ .string "{STR_VAR_1}(s)?$"
-gUnknown_84177C5:: @ 84177C5
- .incbin "baserom.gba", 0x4177C5, 0x29
+gText_WithdrewQuantItem:: @ 84177C5
+ .string "Withdrew {STR_VAR_2}\n"
+ .string "{STR_VAR_1}(s).$"
+
+gOtherText_Read::
+ .string "READ$"
+
+gOtherText_MoveToBag::
+ .string "MOVE TO BAG$"
+
+gOtherText_Give2::
+ .string "GIVE$"
gUnknown_84177EE:: @ 84177EE
.incbin "baserom.gba", 0x4177EE, 0x18
@@ -1271,11 +1284,15 @@ gUnknown_8417858:: @ 8417858
gUnknown_841786B:: @ 841786B
.incbin "baserom.gba", 0x41786B, 0x3C
-gUnknown_84178A7:: @ 84178A7
- .incbin "baserom.gba", 0x4178A7, 0x17
+gText_WithdrawItem:: @ 84178A7
+ .string "WITHDRAW\n"
+ .string "ITEM$"
+
+gText_Withdraw::
+ .string "WITHDRAW$"
-gUnknown_84178BE:: @ 84178BE
- .incbin "baserom.gba", 0x4178BE, 0x12
+gText_ReturnToPC:: @ 84178BE
+ .string "Return to the PC.$"
gUnknown_84178D0:: @ 84178D0
.incbin "baserom.gba", 0x4178D0, 0xA
@@ -2626,7 +2643,7 @@ gUnknown_841EF10:: @ 841EF10
.incbin "baserom.gba", 0x41EF10, 0x2B8
gUnknown_841F1C8:: @ 841F1C8
- .incbin "baserom.gba", 0x41F1C8, 0x240
+ .incbin "graphics/text_window/unk_841F1C8.4bpp"
gTMCaseMainWindowPalette:: @ 841F408
.incbin "graphics/tm_case/unk_841F408.gbapal"
@@ -3070,22 +3087,7 @@ gUnknown_8453094:: @ 8453094
.section .rodata.8453F6C
-// item_pc.o
-gUnknown_8453F6C:: @ 8453F6C
- .incbin "baserom.gba", 0x453F6C, 0x8
-
-gUnknown_8453F74:: @ 8453F74
- .incbin "baserom.gba", 0x453F74, 0x18
-
-gUnknown_8453F8C:: @ 8453F8C
- .incbin "baserom.gba", 0x453F8C, 0xC
-
-gUnknown_8453F98:: @ 8453F98
- .incbin "baserom.gba", 0x453F98, 0x38
-
-gUnknown_8453FD0:: @ 8453FD0
- .incbin "baserom.gba", 0x453FD0, 0x18
-
+// mailbox_pc.o
gUnknown_8453FE8:: @ 8453FE8
.incbin "baserom.gba", 0x453FE8, 0x18
diff --git a/data/graphics.s b/data/graphics.s
index de5272f5d..35d5873fa 100644
--- a/data/graphics.s
+++ b/data/graphics.s
@@ -13976,14 +13976,14 @@ gUnknown_8E84F20:: @ 8E84F20
gUnknown_8E85068:: @ 8E85068
.incbin "graphics/tm_case/unk_8E85068.gbapal.lz"
-gUnknown_8E85090:: @ 8E85090
- .incbin "baserom.gba", 0xE85090, 0x378
+gItemPcTiles:: @ 8E85090
+ .incbin "graphics/item_pc/unk_8E85090.4bpp.lz"
-gUnknown_8E85408:: @ 8E85408
- .incbin "baserom.gba", 0xE85408, 0x50
+gItemPcBgPals:: @ 8E85408
+ .incbin "graphics/item_pc/unk_8E85408.gbapal.lz"
-gUnknown_8E85458:: @ 8E85458
- .incbin "baserom.gba", 0xE85458, 0x1B4
+gItemPcTilemap:: @ 8E85458
+ .incbin "graphics/item_pc/unk_8E85458.bin.lz"
gUnknown_8E8560C:: @ 8E8560C
.incbin "baserom.gba", 0xE8560C, 0x3C4
diff --git a/graphics/item_pc/unk_8E85090.png b/graphics/item_pc/unk_8E85090.png
new file mode 100644
index 000000000..6c6748683
--- /dev/null
+++ b/graphics/item_pc/unk_8E85090.png
Binary files differ
diff --git a/graphics/item_pc/unk_8E85458.bin b/graphics/item_pc/unk_8E85458.bin
new file mode 100644
index 000000000..046ef83b4
--- /dev/null
+++ b/graphics/item_pc/unk_8E85458.bin
Binary files differ
diff --git a/graphics/text_window/unk_841F1C8.png b/graphics/text_window/unk_841F1C8.png
new file mode 100644
index 000000000..5bdff868a
--- /dev/null
+++ b/graphics/text_window/unk_841F1C8.png
Binary files differ
diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk
index 64d9d5c34..dfe15881a 100644
--- a/graphics_file_rules.mk
+++ b/graphics_file_rules.mk
@@ -21,6 +21,7 @@ MISCGFXDIR := graphics/misc
TEXTWINDOWGFXDIR := graphics/text_window
TEACHYTVGFXDIR := graphics/teachy_tv
SSANNEGFXDIR := graphics/ss_anne
+ITEMPCGFXDIR := graphics/item_pc
types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark
contest_types := cool beauty cute smart tough
@@ -482,3 +483,6 @@ $(TEACHYTVGFXDIR)/tiles.4bpp: %.4bpp: %.png
$(SSANNEGFXDIR)/unk_8479A38.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 17
+
+$(ITEMPCGFXDIR)/unk_8E85090.4bpp: %.4bpp: %.png
+ $(GFX) $< $@ -num_tiles 82
diff --git a/include/constants/items.h b/include/constants/items.h
index 64fed0e4c..cc73119e6 100644
--- a/include/constants/items.h
+++ b/include/constants/items.h
@@ -379,6 +379,8 @@
#define ITEM_RUBY 373
#define ITEM_SAPPHIRE 374
+#define ITEM_N_A 375
+
// Emerald
#define ITEM_MAGMA_EMBLEM 375
#define ITEM_OLD_SEA_MAP 376
diff --git a/include/graphics.h b/include/graphics.h
index 98f9750d4..01ae84add 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -176,7 +176,6 @@ extern const u8 gUnknown_8E86D6C[];
extern const u8 gUnknown_8E86F98[];
// berry_fix_program
-
extern const u8 gBerryFixGameboy_Gfx[];
extern const u8 gBerryFixGameboy_Tilemap[];
extern const u8 gBerryFixGameboy_Pal[];
@@ -196,4 +195,10 @@ extern const u8 gBerryFixWindow_Gfx[];
extern const u8 gBerryFixWindow_Tilemap[];
extern const u8 gBerryFixWindow_Pal[];
+// item_pc
+
+extern const u8 gItemPcTiles[];
+extern const u8 gItemPcBgPals[];
+extern const u8 gItemPcTilemap[];
+
#endif //GUARD_GRAPHICS_H
diff --git a/include/item.h b/include/item.h
index 320b7ffec..f5a8db699 100644
--- a/include/item.h
+++ b/include/item.h
@@ -44,7 +44,7 @@ bool8 CheckPCHasItem(u16 itemId, u16 count);
bool8 AddPCItem(u16 itemId, u16 count);
void RemovePCItem(u8 index, u16 count);
void SwapRegisteredBike(void);
-const struct Item *ItemId_GetItem(u16 itemId);
+const u8 *ItemId_GetName(u16 itemId);
u16 ItemId_GetId(u16 itemId);
u16 ItemId_GetPrice(u16 itemId);
u8 ItemId_GetHoldEffect(u16 itemId);
@@ -71,5 +71,9 @@ 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);
+u16 GetBagItemId(u16 *);
+
+void ItemPcCompaction(void);
+void RemoveItemFromPC(u16 itemId, u16 quantity);
#endif // ITEM_H
diff --git a/include/item_menu.h b/include/item_menu.h
index 2801a5001..2d4be4fd7 100644
--- a/include/item_menu.h
+++ b/include/item_menu.h
@@ -27,5 +27,6 @@ void sub_81AAC70(void);
void sub_8108CF0(void);
void sub_810B108(u8);
void UseFameCheckerFromMenu(void);
+void ItemMenu_MoveItemSlotToNewPositionInArray(struct ItemSlot * slots, int pos1, int pos2);
#endif //GUARD_ITEM_MENU_H
diff --git a/include/item_menu_icons.h b/include/item_menu_icons.h
index 7fcd6d5e1..ce61c38ac 100644
--- a/include/item_menu_icons.h
+++ b/include/item_menu_icons.h
@@ -3,6 +3,12 @@
#include "global.h"
+void ResetItemMenuIconState(void);
+void sub_80985E4(void);
u8 sub_80D511C(u8 a0, u8 a1, u8 a2, u8 a3);
+void DestroyItemMenuIcon(bool8 a0);
+void CreateItemMenuIcon(u16 itemId, bool8 a0);
+void sub_80986A8(s16 x, u16 y);
+void sub_8098660(u8);
#endif // GUARD_ITEM_MENU_ICONS
diff --git a/include/item_pc.h b/include/item_pc.h
new file mode 100644
index 000000000..2fecf69a8
--- /dev/null
+++ b/include/item_pc.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_ITEM_PC_H
+#define GUARD_ITEM_PC_H
+
+void ItemPc_Init(u8 a0, MainCallback callback);
+void ItemPc_SetInitializedFlag(u8);
+
+#endif //GUARD_ITEM_PC_H
diff --git a/include/item_use.h b/include/item_use.h
index 5ec5f2b33..04e61ab59 100644
--- a/include/item_use.h
+++ b/include/item_use.h
@@ -4,6 +4,6 @@
#include "global.h"
void sub_80A1E0C(u8);
-void sub_80A2294(u8, u8, u16, u16);
+void ItemUse_SetQuestLogEvent(u8, struct Pokemon *, u16, u16);
#endif //GUARD_ITEM_USE_H
diff --git a/include/list_menu.h b/include/list_menu.h
index 6116ee39a..290b1d925 100644
--- a/include/list_menu.h
+++ b/include/list_menu.h
@@ -62,5 +62,6 @@ u16 ListMenuGetYCoordForPrintingArrowCursor(u8);
void sub_8107D38(u8, u8);
s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum);
void ListMenuDefaultCursorMoveFunc(s32, u8, struct ListMenu *);
+void sub_8107BD0(u8 taskId, u8 attr, s32 value);
#endif //GUARD_LIST_MENU_H
diff --git a/include/menu.h b/include/menu.h
index 08112c891..fa8552484 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -36,7 +36,7 @@ void do_scheduled_bg_tilemap_copies_to_vram(void);
void clear_scheduled_bg_copies_to_vram(void);
void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const struct TextColor *color, s8 speed, const u8 *str);
void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u16 a3);
-void sub_810F4D8(u8 windowId, bool32 someBool);
+void ClearMenuWindow(u8 windowId, bool8 copyToVram);
void *sub_80F68F0(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
void CreateWindow_SnapRight_StdPal(u8, u8, u8, u8, u16);
void Menu_PrintHelpSystemUIHeader(const u8 *, const u8 *, u8, u32, u8);
@@ -49,6 +49,7 @@ void CreateYesNoMenu(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);
+void ClearMenuWindow_BorderThickness2(u8 windowId, u8 a1);
+void PrintTextArray(u8, u8, u8, u8, u8, u8, const struct MenuAction *);
#endif // GUARD_MENU_H
diff --git a/include/menu_helpers.h b/include/menu_helpers.h
index f8b57034a..25ef3252e 100644
--- a/include/menu_helpers.h
+++ b/include/menu_helpers.h
@@ -2,6 +2,7 @@
#define GUARD_MENU_HELPERS_H
#include "global.h"
+#include "task.h"
// Exported type declarations
@@ -20,7 +21,7 @@ void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data);
bool8 sub_81221AC(void);
bool16 sub_80BF518(u8 textPrinterId);
bool8 sub_80BF72C(void);
-bool8 sub_80BF708(void);
+bool8 MenuHelpers_LinkSomething(void);
void VblankHblankHandlerSetZero(void);
void InitBgReg(void);
u8 sub_80BF8E4(void);
diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h
index 929147c0c..ed933089f 100644
--- a/include/new_menu_helpers.h
+++ b/include/new_menu_helpers.h
@@ -29,7 +29,7 @@ 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);
+void SetBgRectPal(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette);
void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void * gfx, u32 size, u16 a3, u8 a4);
void ClearStdWindowAndFrame(u8 taskId, bool8 copyNow);
diff --git a/include/party_menu.h b/include/party_menu.h
index 01cd0ef57..527147296 100644
--- a/include/party_menu.h
+++ b/include/party_menu.h
@@ -51,5 +51,6 @@ void sub_8120760(u8 taskId, u8 a1, s8 a2, s16 amount, TaskFunc followupFunc);
void GetMonNickname(const struct Pokemon * mon, u8 * dest);
void sub_81202F8(const u8 * src, u8 a1);
bool8 sub_8120370(void);
+void PartyMenuInit(u8 a, u8 b, u8 c, u8 d, u8 messageId, TaskFunc task, MainCallback callback);
#endif // GUARD_PARTY_MENU_H
diff --git a/include/pc_screen_effect.h b/include/pc_screen_effect.h
new file mode 100644
index 000000000..6d68de2d3
--- /dev/null
+++ b/include/pc_screen_effect.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_PC_SCREEN_EFFECT_H
+#define GUARD_PC_SCREEN_EFFECT_H
+
+void sub_80A0A48(u16, u16, u8);
+void sub_80A0A70(u16, u16, u8);
+bool8 sub_80A0AAC(void);
+bool8 sub_80A0A98(void);
+
+#endif //GUARD_PC_SCREEN_EFFECT_H
diff --git a/include/strings.h b/include/strings.h
index 0a8af28d1..08dd25174 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -113,6 +113,7 @@ extern const u8 gText_ICanPayThisMuch_WouldThatBeOkay[];
extern const u8 gText_TurnedOverItemsWorthYen[];
extern const u8 gPokeDudeText_TMTypes[];
extern const u8 gPokeDudeText_ReadTMDescription[];
+extern const u8 gFameCheckerText_Cancel[];
// teachy_tv
extern const u8 gTeachyTvString_TeachBattle[];
@@ -148,6 +149,16 @@ extern const u8 gString_Someone[];
extern const u8 gString_Help[];
extern const u8 gString_HelpSystem_ClearTo8[];
-extern const u8 gUnknown_8416655[];
+extern const u8 gOtherText_Give[];
+extern const u8 gFameCheckerText_Cancel[];
+extern const u8 gOtherText_StrVar1[];
+extern const u8 gOtherText_WhereShouldTheStrVar1BePlaced[];
+extern const u8 gOtherText_Powder[];
+extern const u8 gText_NoMoreRoomInBag[];
+extern const u8 gText_WithdrawHowMany[];
+extern const u8 gText_WithdrewQuantItem[];
+extern const u8 gText_WithdrawItem[];
+extern const u8 gText_Withdraw[];
+extern const u8 gText_ReturnToPC[];
#endif //GUARD_STRINGS_H
diff --git a/include/text.h b/include/text.h
index dc53b4845..2e6a8c837 100644
--- a/include/text.h
+++ b/include/text.h
@@ -91,6 +91,18 @@
#define TEXT_SPEED_FF 0xFF
+enum
+{
+ FONTATTR_MAX_LETTER_WIDTH,
+ FONTATTR_MAX_LETTER_HEIGHT,
+ FONTATTR_LETTER_SPACING,
+ FONTATTR_LINE_SPACING,
+ FONTATTR_UNKNOWN, // dunno what this is yet
+ FONTATTR_COLOR_FOREGROUND,
+ FONTATTR_COLOR_BACKGROUND,
+ FONTATTR_COLOR_SHADOW
+};
+
struct TextPrinterSubStruct
{
u8 font_type:4; // 0x14
diff --git a/include/text_window.h b/include/text_window.h
index c384ca1bb..cc1de56ae 100644
--- a/include/text_window.h
+++ b/include/text_window.h
@@ -20,9 +20,9 @@ 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);
+void TextWindow_SetBubbleFrame_841F1C8(u8 windowId, u16 tileStart, u8 palette);
+void TextWindow_SetStdFrame0_WithPal(u8 windowId, u16 tileStart, u8 palette);
+void TextWindow_SetUserSelectedFrame(u8 windowId, u16 tileStart, u8 palette);
void LoadUserWindowBorderGfx(u8 windowId, u16 tileStart, u8 palette);
void sub_814FDA0(u8 windowId, u16 tileStart, u8 palette);
void DrawTextBorderOuter(u8 windowId, u16 tileStart, u8 palette);
diff --git a/include/text_window_graphics.h b/include/text_window_graphics.h
index 5fa78d955..17e919705 100644
--- a/include/text_window_graphics.h
+++ b/include/text_window_graphics.h
@@ -8,11 +8,11 @@ struct TextWindowGraphics
};
extern const u16 gUnknown_8470B0C[];
-extern const u16 gUnknown_8471A4C[];
-extern const u16 gUnknown_8471B6C[];
+extern const u16 gStdFrame0[];
+extern const u16 gStdFrame1[];
extern const u16 gUnknown_8471DEC[][16];
-extern const struct TextWindowGraphics gUnknown_8471E8C[];
+extern const struct TextWindowGraphics gUserFrames[];
const struct TextWindowGraphics * sub_8069788(u8 idx);
diff --git a/include/window.h b/include/window.h
index eb35e94d2..30e73dd32 100644
--- a/include/window.h
+++ b/include/window.h
@@ -47,6 +47,8 @@ struct Window
u8 *tileData;
};
+typedef void (*WindowFunc)(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum);
+
bool16 InitWindows(const struct WindowTemplate *templates);
u16 AddWindow(const struct WindowTemplate *template);
int AddWindowWithoutTileMap(const struct WindowTemplate *template);
@@ -64,7 +66,7 @@ void FillWindowPixelRect(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16
void CopyToWindowPixelBuffer(u8 windowId, const u8 *src, u16 size, u16 tileOffset);
void FillWindowPixelBuffer(u8 windowId, u8 fillValue);
void ScrollWindow(u8 windowId, u8 direction, u8 distance, u8 fillValue);
-void CallWindowFunction(u8 windowId, void ( *func)(u8, u8, u8, u8, u8, u8));
+void CallWindowFunction(u8 windowId, WindowFunc func);
bool8 SetWindowAttribute(u8 windowId, u8 attributeId, u32 value);
u32 GetWindowAttribute(u8 windowId, u8 attributeId);
u16 AddWindow8Bit(struct WindowTemplate *template);
diff --git a/ld_script.txt b/ld_script.txt
index f3d24a9ec..6360e600f 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -231,6 +231,7 @@ SECTIONS {
src/bag.o(.text);
src/trainer_pokemon_sprites.o(.text);
src/vs_seeker.o(.text);
+ src/item_pc.o(.text);
asm/item_pc.o(.text);
asm/mailbox_pc.o(.text);
asm/menu.o(.text);
@@ -416,6 +417,7 @@ SECTIONS {
src/bag.o(.rodata);
src/trainer_pokemon_sprites.o(.rodata);
src/vs_seeker.o(.rodata);
+ src/item_pc.o(.rodata);
data/data_83FECCC.o(.rodata.8453F6C);
src/quest_log.o(.rodata);
data/data_83FECCC.o(.rodata.8456C74);
diff --git a/src/bag.c b/src/bag.c
index 6f0badd81..f2fc40d93 100644
--- a/src/bag.c
+++ b/src/bag.c
@@ -210,9 +210,9 @@ void sub_810B858(void)
else
InitWindows(gUnknown_84530E4);
DeactivateAllTextPrinters();
- sub_815001C(0, 0x64, 0xE0);
- sub_814FEAC(0, 0x6D, 0xD0);
- sub_814FF2C(0, 0x81, 0xC0);
+ TextWindow_SetUserSelectedFrame(0, 0x64, 0xE0);
+ TextWindow_SetBubbleFrame_841F1C8(0, 0x6D, 0xD0);
+ TextWindow_SetStdFrame0_WithPal(0, 0x81, 0xC0);
LoadPalette(gUnknown_8453098, 0xF0, 0x20);
for (i = 0; i < 3; i++)
{
@@ -265,7 +265,7 @@ u8 sub_810B9DC(u8 a0, u8 a1)
void sub_810BA3C(u8 a0)
{
- sub_810F4D8(gUnknown_203AD34[a0], FALSE);
+ ClearMenuWindow(gUnknown_203AD34[a0], FALSE);
ClearWindowTilemap(gUnknown_203AD34[a0]);
RemoveWindow(gUnknown_203AD34[a0]);
schedule_bg_copy_tilemap_to_vram(0);
@@ -285,7 +285,7 @@ void sub_810BA9C(u8 a0)
{
if (gUnknown_203AD34[a0] != 0xFF)
{
- sub_810F260(gUnknown_203AD34[a0], FALSE);
+ ClearMenuWindow_BorderThickness2(gUnknown_203AD34[a0], FALSE);
ClearWindowTilemap(gUnknown_203AD34[a0]);
RemoveWindow(gUnknown_203AD34[a0]);
PutWindowTilemap(1);
diff --git a/src/coins.c b/src/coins.c
index e97928df7..3a51f6813 100644
--- a/src/coins.c
+++ b/src/coins.c
@@ -87,7 +87,7 @@ void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y)
sCoinsWindowId = AddWindow(&template2);
FillWindowPixelBuffer(sCoinsWindowId, 0);
PutWindowTilemap(sCoinsWindowId);
- sub_814FF2C(sCoinsWindowId, 0x21D, 0xD0);
+ TextWindow_SetStdFrame0_WithPal(sCoinsWindowId, 0x21D, 0xD0);
SetWindowBorderStyle(sCoinsWindowId, FALSE, 0x21D, 0xD);
AddTextPrinterParameterized(sCoinsWindowId, 2, gUnknown_8417C2D, 0, 0, 0xFF, 0);
PrintCoinsString(coinAmount);
@@ -96,6 +96,6 @@ void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y)
void HideCoinsWindow(void)
{
ClearWindowTilemap(sCoinsWindowId);
- sub_810F4D8(sCoinsWindowId, TRUE);
+ ClearMenuWindow(sCoinsWindowId, TRUE);
RemoveWindow(sCoinsWindowId);
}
diff --git a/src/fldeff_softboiled.c b/src/fldeff_softboiled.c
index deaa36eb5..50c715388 100644
--- a/src/fldeff_softboiled.c
+++ b/src/fldeff_softboiled.c
@@ -84,7 +84,7 @@ void sub_80E58A0(u8 taskId)
sub_811F818(gUnknown_203B0A0.unk9, 0);
gUnknown_203B0A0.unk9 = gUnknown_203B0A0.unkA;
sub_811F818(gUnknown_203B0A0.unkA, 1);
- sub_810F4D8(6, 0);
+ ClearMenuWindow(6, 0);
ClearWindowTilemap(6);
sub_8121D0C(0);
gTasks[taskId].func = sub_811FB28;
diff --git a/src/item_pc.c b/src/item_pc.c
new file mode 100644
index 000000000..3e139503e
--- /dev/null
+++ b/src/item_pc.c
@@ -0,0 +1,1150 @@
+#include "global.h"
+#include "bg.h"
+#include "data2.h"
+#include "decompress.h"
+#include "gpu_regs.h"
+#include "graphics.h"
+#include "help_system.h"
+#include "item.h"
+#include "item_menu.h"
+#include "item_menu_icons.h"
+#include "list_menu.h"
+#include "item_pc.h"
+#include "item_use.h"
+#include "main.h"
+#include "malloc.h"
+#include "menu.h"
+#include "menu_helpers.h"
+#include "menu_indicators.h"
+#include "new_menu_helpers.h"
+#include "palette.h"
+#include "party_menu.h"
+#include "pc_screen_effect.h"
+#include "scanline_effect.h"
+#include "sound.h"
+#include "string_util.h"
+#include "strings.h"
+#include "task.h"
+#include "text_window.h"
+#include "constants/items.h"
+#include "constants/songs.h"
+
+struct ItemPcResources
+{
+ MainCallback savedCallback;
+ u8 moveModeOrigPos;
+ u8 itemMenuIconSlot;
+ u8 maxShowed;
+ u8 nItems;
+ u8 scrollIndicatorArrowPairId;
+ u16 withdrawQuantitySubmenuCursorPos;
+ s16 data[3];
+};
+
+struct ItemPcStaticResources
+{
+ MainCallback savedCallback;
+ u16 scroll;
+ u16 row;
+ u8 initialized;
+};
+
+static EWRAM_DATA struct ItemPcResources * sStateDataPtr = NULL;
+static EWRAM_DATA u8 * sBg1TilemapBuffer = NULL;
+static EWRAM_DATA struct ListMenuItem * sListMenuItems = NULL;
+static EWRAM_DATA u8 * sUnusedStringAllocation = NULL;
+static EWRAM_DATA struct ItemPcStaticResources sListMenuState = {};
+static EWRAM_DATA u8 sSubmenuWindowIds[3] = {};
+
+extern const struct CompressedSpriteSheet gBagSwapSpriteSheet;
+extern const struct CompressedSpritePalette gBagSwapSpritePalette;
+
+static void ItemPc_RunSetup(void);
+static bool8 ItemPc_DoGfxSetup(void);
+static void ItemPc_FadeAndBail(void);
+static void Task_ItemPcWaitFadeAndBail(u8 taskId);
+static bool8 ItemPc_InitBgs(void);
+static bool8 ItemPc_LoadGraphics(void);
+static bool8 ItemPc_AllocateResourcesForListMenu(void);
+static void ItemPc_BuildListMenuTemplate(void);
+static void ItemPc_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu * list);
+static void ItemPc_ItemPrintFunc(u8 windowId, s32 itemId, u8 y);
+static void ItemPc_PrintOrRemoveCursorAt(u8 y, u8 state);
+static void ItemPc_PrintWithdrawItem(void);
+static void ItemPc_PlaceTopMenuScrollIndicatorArrows(void);
+static void ItemPc_SetCursorPosition(void);
+static void ItemPc_FreeResources(void);
+static void Task_ItemPcTurnOff2(u8 taskId);
+static u16 ItemPc_GetItemIdBySlotId(u16 itemIndex);
+static u16 ItemPc_GetItemQuantityBySlotId(u16 itemIndex);
+static void ItemPc_CountPcItems(void);
+static void ItemPc_SetScrollPosition(void);
+static void Task_ItemPcMain(u8 taskId);
+static void ItemPc_MoveItemModeInit(u8 taskId, s16 pos);
+static void Task_ItemPcMoveItemModeRun(u8 taskId);
+static void ItemPc_InsertItemIntoNewSlot(u8 taskId, u32 pos);
+static void ItemPc_MoveItemModeCancel(u8 taskId, u32 pos);
+static void Task_ItemPcSubmenuInit(u8 taskId);
+static void Task_ItemPcSubmenuRun(u8 taskId);
+static void Task_ItemPcWithdraw(u8 taskId);
+static void ItemPc_DoWithdraw(u8 taskId);
+static void Task_ItemPcWaitButtonAndFinishWithdrawMultiple(u8 taskId);
+static void Task_ItemPcWaitButtonWithdrawMultipleFailed(u8 taskId);
+static void Task_ItemPcCleanUpWithdraw(u8 taskId);
+static void ItemPc_WithdrawMultipleInitWindow(u16 slotId);
+static void Task_ItemPcHandleWithdrawMultiple(u8 taskId);
+static void Task_ItemPcGive(u8 taskId);
+static void ItemPc_CB2_SwitchToPartyMenu(void);
+static void ItemPc_CB2_ReturnFromPartyMenu(void);
+static void gTask_ItemPcWaitButtonAndExitSubmenu(u8 taskId);
+static void Task_ItemPcCancel(u8 taskId);
+static void ItemPc_InitWindows(void);
+static void ItemPc_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx);
+static void ItemPc_SetBorderStyleOnWindow(u8 windowId);
+static u8 ItemPc_GetOrCreateSubwindow(u8 idx);
+static void ItemPc_DestroySubwindow(u8 idx);
+static void ItemPc_PrintOnWindow5WithContinueTask(u8 taskId, const u8 * str, TaskFunc taskFunc);
+
+static const struct BgTemplate sBgTemplates[2] = {
+ {
+ .bg = 0,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 31,
+ .priority = 0
+ }, {
+ .bg = 1,
+ .charBaseIndex = 3,
+ .mapBaseIndex = 30,
+ .priority = 1
+ }
+};
+
+static const struct MenuAction sItemPcSubmenuOptions[] = {
+ {gText_Withdraw, {.void_u8 = Task_ItemPcWithdraw}},
+ {gOtherText_Give, {.void_u8 = Task_ItemPcGive}},
+ {gFameCheckerText_Cancel, {.void_u8 = Task_ItemPcCancel}}
+};
+
+static const struct TextColor gUnknown_8453F8C[] = {
+ {0, 1, 2},
+ {0, 2, 3},
+ {0, 3, 2},
+ {0, 10, 2}
+};
+
+static const struct WindowTemplate gUnknown_8453F98[] = {
+ {
+ .bg = 0,
+ .tilemapLeft = 0x07,
+ .tilemapTop = 0x01,
+ .width = 0x13,
+ .height = 0x0c,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x02bf
+ }, {
+ .bg = 0,
+ .tilemapLeft = 0x05,
+ .tilemapTop = 0x0e,
+ .width = 0x19,
+ .height = 0x06,
+ .paletteNum = 0x0d,
+ .baseBlock = 0x0229
+ }, {
+ .bg = 0,
+ .tilemapLeft = 0x01,
+ .tilemapTop = 0x01,
+ .width = 0x05,
+ .height = 0x04,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x0215
+ }, {
+ .bg = 0,
+ .tilemapLeft = 0x18,
+ .tilemapTop = 0x0f,
+ .width = 0x05,
+ .height = 0x04,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x0201
+ }, {
+ .bg = 0,
+ .tilemapLeft = 0x16,
+ .tilemapTop = 0x0d,
+ .width = 0x07,
+ .height = 0x06,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x01d7
+ }, {
+ .bg = 0,
+ .tilemapLeft = 0x02,
+ .tilemapTop = 0x0f,
+ .width = 0x1a,
+ .height = 0x04,
+ .paletteNum = 0x0b,
+ .baseBlock = 0x016f
+ }, DUMMY_WIN_TEMPLATE
+};
+
+static const struct WindowTemplate gUnknown_8453FD0[] = {
+ {
+ .bg = 0,
+ .tilemapLeft = 0x06,
+ .tilemapTop = 0x0f,
+ .width = 0x0e,
+ .height = 0x04,
+ .paletteNum = 0x0c,
+ .baseBlock = 0x0137
+ }, {
+ .bg = 0,
+ .tilemapLeft = 0x06,
+ .tilemapTop = 0x0f,
+ .width = 0x10,
+ .height = 0x04,
+ .paletteNum = 0x0c,
+ .baseBlock = 0x0137
+ }, {
+ .bg = 0,
+ .tilemapLeft = 0x06,
+ .tilemapTop = 0x0f,
+ .width = 0x17,
+ .height = 0x04,
+ .paletteNum = 0x0c,
+ .baseBlock = 0x009b
+ }
+};
+
+void ItemPc_Init(u8 a0, MainCallback callback)
+{
+ u8 i;
+
+ if (a0 >= 2)
+ {
+ SetMainCallback2(callback);
+ return;
+ }
+ if ((sStateDataPtr = Alloc(sizeof(struct ItemPcResources))) == NULL)
+ {
+ SetMainCallback2(callback);
+ return;
+ }
+ if (a0 != 1)
+ {
+ sListMenuState.savedCallback = callback;
+ sListMenuState.scroll = sListMenuState.row = 0;
+ }
+ sStateDataPtr->moveModeOrigPos = 0xFF;
+ sStateDataPtr->itemMenuIconSlot = 0;
+ sStateDataPtr->scrollIndicatorArrowPairId = 0xFF;
+ sStateDataPtr->savedCallback = 0;
+ for (i = 0; i < 3; i++)
+ {
+ sStateDataPtr->data[i] = 0;
+ }
+ SetMainCallback2(ItemPc_RunSetup);
+}
+
+static void ItemPc_MainCB(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ do_scheduled_bg_tilemap_copies_to_vram();
+ UpdatePaletteFade();
+}
+
+static void ItemPc_VBlankCB(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+static void ItemPc_RunSetup(void)
+{
+ while (1)
+ {
+ if (ItemPc_DoGfxSetup() == TRUE)
+ break;
+ if (MenuHelpers_LinkSomething() == TRUE)
+ break;
+ }
+}
+
+static bool8 ItemPc_DoGfxSetup(void)
+{
+ u8 taskId;
+ switch (gMain.state)
+ {
+ case 0:
+ VblankHblankHandlerSetZero();
+ 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:
+ ResetItemMenuIconState();
+ gMain.state++;
+ break;
+ case 6:
+ ResetTasks();
+ gMain.state++;
+ break;
+ case 7:
+ if (ItemPc_InitBgs())
+ {
+ sStateDataPtr->data[0] = 0;
+ gMain.state++;
+ }
+ else
+ {
+ ItemPc_FadeAndBail();
+ return TRUE;
+ }
+ break;
+ case 8:
+ if (ItemPc_LoadGraphics() == TRUE)
+ gMain.state++;
+ break;
+ case 9:
+ ItemPc_InitWindows();
+ gMain.state++;
+ break;
+ case 10:
+ ItemPc_CountPcItems();
+ ItemPc_SetCursorPosition();
+ ItemPc_SetScrollPosition();
+ gMain.state++;
+ break;
+ case 11:
+ if (ItemPc_AllocateResourcesForListMenu())
+ gMain.state++;
+ else
+ {
+ ItemPc_FadeAndBail();
+ return TRUE;
+ }
+ break;
+ case 12:
+ ItemPc_BuildListMenuTemplate();
+ gMain.state++;
+ break;
+ case 13:
+ ItemPc_PrintWithdrawItem();
+ gMain.state++;
+ break;
+ case 14:
+ sub_80985E4();
+ gMain.state++;
+ break;
+ case 15:
+ taskId = CreateTask(Task_ItemPcMain, 0);
+ gTasks[taskId].data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row);
+ gMain.state++;
+ break;
+ case 16:
+ ItemPc_PlaceTopMenuScrollIndicatorArrows();
+ gMain.state++;
+ break;
+ case 17:
+ HelpSystem_SetSomeVariable2(29);
+ gMain.state++;
+ break;
+ case 18:
+ if (sListMenuState.initialized == 1)
+ {
+ BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK);
+ }
+ gMain.state++;
+ break;
+ case 19:
+ if (sListMenuState.initialized == 1)
+ {
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
+ }
+ else
+ {
+ sub_80A0A48(0, 0, 0);
+ ItemPc_SetInitializedFlag(1);
+ PlaySE(SE_PC_LOGON);
+ }
+ gMain.state++;
+ break;
+ case 20:
+ if (sub_80BF72C() != TRUE)
+ gMain.state++;
+ break;
+ default:
+ SetVBlankCallback(ItemPc_VBlankCB);
+ SetMainCallback2(ItemPc_MainCB);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static void ItemPc_FadeAndBail(void)
+{
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
+ CreateTask(Task_ItemPcWaitFadeAndBail, 0);
+ SetVBlankCallback(ItemPc_VBlankCB);
+ SetMainCallback2(ItemPc_MainCB);
+}
+
+static void Task_ItemPcWaitFadeAndBail(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ SetMainCallback2(sListMenuState.savedCallback);
+ ItemPc_FreeResources();
+ DestroyTask(taskId);
+ }
+}
+
+static bool8 ItemPc_InitBgs(void)
+{
+ InitBgReg();
+ sBg1TilemapBuffer = Alloc(0x800);
+ if (sBg1TilemapBuffer == NULL)
+ return FALSE;
+ memset(sBg1TilemapBuffer, 0, 0x800);
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(0, sBgTemplates, NELEMS(sBgTemplates));
+ SetBgTilemapBuffer(1, sBg1TilemapBuffer);
+ schedule_bg_copy_tilemap_to_vram(1);
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON);
+ SetGpuReg(REG_OFFSET_BLDCNT , 0);
+ ShowBg(0);
+ ShowBg(1);
+ return TRUE;
+}
+
+static bool8 ItemPc_LoadGraphics(void)
+{
+ switch (sStateDataPtr->data[0])
+ {
+ case 0:
+ reset_temp_tile_data_buffers();
+ decompress_and_copy_tile_data_to_vram(1, gItemPcTiles, 0, 0, 0);
+ sStateDataPtr->data[0]++;
+ break;
+ case 1:
+ if (free_temp_tile_data_buffers_if_possible() != TRUE)
+ {
+ LZDecompressWram(gItemPcTilemap, sBg1TilemapBuffer);
+ sStateDataPtr->data[0]++;
+ }
+ break;
+ case 2:
+ LoadCompressedPalette(gItemPcBgPals, 0x00, 0x60);
+ sStateDataPtr->data[0]++;
+ break;
+ case 3:
+ LoadCompressedObjectPic(&gBagSwapSpriteSheet);
+ sStateDataPtr->data[0]++;
+ break;
+ default:
+ LoadCompressedObjectPalette(&gBagSwapSpritePalette);
+ sStateDataPtr->data[0] = 0;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+#define try_alloc(ptr__, size) ({ \
+ void ** ptr = (void **)&(ptr__); \
+ *ptr = Alloc(size); \
+ if (*ptr == NULL) \
+ { \
+ ItemPc_FreeResources(); \
+ ItemPc_FadeAndBail(); \
+ return FALSE; \
+ } \
+})
+
+static bool8 ItemPc_AllocateResourcesForListMenu(void)
+{
+ try_alloc(sListMenuItems, sizeof(struct ListMenuItem) * (PC_ITEMS_COUNT + 1));
+ try_alloc(sUnusedStringAllocation, 14 * (PC_ITEMS_COUNT + 1));
+ return TRUE;
+}
+
+static void ItemPc_BuildListMenuTemplate(void)
+{
+ u16 i;
+
+ for (i = 0; i < sStateDataPtr->nItems; i++)
+ {
+ sListMenuItems[i].label = ItemId_GetName(gSaveBlock1Ptr->pcItems[i].itemId);
+ sListMenuItems[i].index = i;
+ }
+ sListMenuItems[i].label = gFameCheckerText_Cancel;
+ sListMenuItems[i].index = -2;
+
+ gMultiuseListMenuTemplate.items = sListMenuItems;
+ gMultiuseListMenuTemplate.totalItems = sStateDataPtr->nItems + 1;
+ gMultiuseListMenuTemplate.windowId = 0;
+ gMultiuseListMenuTemplate.header_X = 0;
+ gMultiuseListMenuTemplate.item_X = 9;
+ gMultiuseListMenuTemplate.cursor_X = 1;
+ gMultiuseListMenuTemplate.lettersSpacing = 1;
+ gMultiuseListMenuTemplate.itemVerticalPadding = 2;
+ gMultiuseListMenuTemplate.upText_Y = 2;
+ gMultiuseListMenuTemplate.maxShowed = sStateDataPtr->maxShowed;
+ gMultiuseListMenuTemplate.fontId = 2;
+ gMultiuseListMenuTemplate.cursorPal = 2;
+ gMultiuseListMenuTemplate.fillValue = 0;
+ gMultiuseListMenuTemplate.cursorShadowPal = 3;
+ gMultiuseListMenuTemplate.moveCursorFunc = ItemPc_MoveCursorFunc;
+ gMultiuseListMenuTemplate.itemPrintFunc = ItemPc_ItemPrintFunc;
+ gMultiuseListMenuTemplate.scrollMultiple = 0;
+ gMultiuseListMenuTemplate.cursorKind = 0;
+}
+
+static void ItemPc_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu * list)
+{
+ u16 itemId;
+ const u8 * desc;
+ if (onInit != TRUE)
+ PlaySE(SE_SELECT);
+
+ if (sStateDataPtr->moveModeOrigPos == 0xFF)
+ {
+ DestroyItemMenuIcon(sStateDataPtr->itemMenuIconSlot ^ 1);
+ if (itemIndex != -2)
+ {
+ itemId = ItemPc_GetItemIdBySlotId(itemIndex);
+ CreateItemMenuIcon(itemId, sStateDataPtr->itemMenuIconSlot);
+ if (ItemId_GetPocket(itemId) == POCKET_TM_CASE)
+ desc = gMoveNames[ItemIdToBattleMoveId(itemId)];
+ else
+ desc = ItemId_GetDescription(itemId);
+ }
+ else
+ {
+ CreateItemMenuIcon(ITEM_N_A, sStateDataPtr->itemMenuIconSlot);
+ desc = gText_ReturnToPC;
+ }
+ sStateDataPtr->itemMenuIconSlot ^= 1;
+ FillWindowPixelBuffer(1, 0);
+ ItemPc_AddTextPrinterParameterized(1, 2, desc, 0, 3, 2, 0, 0, 3);
+ }
+}
+
+static void ItemPc_ItemPrintFunc(u8 windowId, s32 itemId, u8 y)
+{
+ if (sStateDataPtr->moveModeOrigPos != 0xFF)
+ {
+ if (sStateDataPtr->moveModeOrigPos == (u8)itemId)
+ ItemPc_PrintOrRemoveCursorAt(y, 2);
+ else
+ ItemPc_PrintOrRemoveCursorAt(y, 0xFF);
+ }
+ if (itemId != -2)
+ {
+ u16 quantity = ItemPc_GetItemQuantityBySlotId(itemId);
+ ConvertIntToDecimalStringN(gStringVar1, quantity, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
+ ItemPc_AddTextPrinterParameterized(windowId, 0, gStringVar4, 110, y, 0, 0, 0xFF, 1);
+ }
+}
+
+static void ItemPc_PrintOrRemoveCursor(u8 listMenuId, u8 colorIdx)
+{
+ ItemPc_PrintOrRemoveCursorAt(ListMenuGetYCoordForPrintingArrowCursor(listMenuId), colorIdx);
+}
+
+static void ItemPc_PrintOrRemoveCursorAt(u8 y, u8 colorIdx)
+{
+ if (colorIdx == 0xFF)
+ {
+ u8 maxWidth = GetFontAttribute(2, FONTATTR_MAX_LETTER_WIDTH);
+ u8 maxHeight = GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT);
+ FillWindowPixelRect(0, 0, 0, y, maxWidth, maxHeight);
+ }
+ else
+ {
+ ItemPc_AddTextPrinterParameterized(0, 2, gFameCheckerText_ListMenuCursor, 0, y, 0, 0, 0, colorIdx);
+ }
+}
+
+static void ItemPc_PrintWithdrawItem(void)
+{
+ ItemPc_AddTextPrinterParameterized(2, 0, gText_WithdrawItem, 0, 1, 0, 1, 0, 0);
+}
+
+static void ItemPc_PlaceTopMenuScrollIndicatorArrows(void)
+{
+ sStateDataPtr->scrollIndicatorArrowPairId = AddScrollIndicatorArrowPairParameterized(2, 128, 8, 104, sStateDataPtr->nItems - sStateDataPtr->maxShowed + 1, 110, 110, &sListMenuState.scroll);
+}
+
+static void ItemPc_PlaceWithdrawQuantityScrollIndicatorArrows(void)
+{
+ sStateDataPtr->withdrawQuantitySubmenuCursorPos = 1;
+ sStateDataPtr->scrollIndicatorArrowPairId = AddScrollIndicatorArrowPairParameterized(2, 212, 120, 152, 2, 110, 110, &sStateDataPtr->withdrawQuantitySubmenuCursorPos);
+}
+
+static void ItemPc_RemoveScrollIndicatorArrowPair(void)
+{
+ if (sStateDataPtr->scrollIndicatorArrowPairId != 0xFF)
+ {
+ RemoveScrollIndicatorArrowPair(sStateDataPtr->scrollIndicatorArrowPairId);
+ sStateDataPtr->scrollIndicatorArrowPairId = 0xFF;
+ }
+}
+
+static void ItemPc_SetCursorPosition(void)
+{
+ if (sListMenuState.scroll != 0 && sListMenuState.scroll + sStateDataPtr->maxShowed > sStateDataPtr->nItems + 1)
+ sListMenuState.scroll = (sStateDataPtr->nItems + 1) - sStateDataPtr->maxShowed;
+ if (sListMenuState.scroll + sListMenuState.row >= sStateDataPtr->nItems + 1)
+ {
+ if (sStateDataPtr->nItems + 1 < 2)
+ sListMenuState.row = 0;
+ else
+ sListMenuState.row = sStateDataPtr->nItems;
+ }
+}
+
+#define try_free(ptr) ({ \
+ void ** ptr__ = (void **)&(ptr); \
+ if (*ptr__ != NULL) \
+ Free(*ptr__); \
+})
+
+static void ItemPc_FreeResources(void)
+{
+ try_free(sStateDataPtr);
+ try_free(sBg1TilemapBuffer);
+ try_free(sListMenuItems);
+ try_free(sUnusedStringAllocation);
+ FreeAllWindowBuffers();
+}
+
+static void Task_ItemPcTurnOff1(u8 taskId)
+{
+ if (sListMenuState.initialized == 1)
+ {
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
+ }
+ else
+ {
+ sub_80A0A70(0, 0, 0);
+ PlaySE(SE_PC_OFF);
+ }
+ gTasks[taskId].func = Task_ItemPcTurnOff2;
+}
+
+static void Task_ItemPcTurnOff2(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (!gPaletteFade.active && !sub_80A0AAC())
+ {
+ DestroyListMenu(data[0], &sListMenuState.scroll, &sListMenuState.row);
+ if (sStateDataPtr->savedCallback != NULL)
+ SetMainCallback2(sStateDataPtr->savedCallback);
+ else
+ SetMainCallback2(sListMenuState.savedCallback);
+ ItemPc_RemoveScrollIndicatorArrowPair();
+ ItemPc_FreeResources();
+ DestroyTask(taskId);
+ }
+}
+
+static u8 ItemPc_GetCursorPosition(void)
+{
+ return sListMenuState.scroll + sListMenuState.row;
+}
+
+static u16 ItemPc_GetItemIdBySlotId(u16 idx)
+{
+ return gSaveBlock1Ptr->pcItems[idx].itemId;
+}
+
+static u16 ItemPc_GetItemQuantityBySlotId(u16 idx)
+{
+ return GetBagItemId(&gSaveBlock1Ptr->pcItems[idx].quantity);
+}
+
+static void ItemPc_CountPcItems(void)
+{
+ u16 i;
+
+ ItemPcCompaction();
+ sStateDataPtr->nItems = 0;
+ for (i = 0; i < PC_ITEMS_COUNT; sStateDataPtr->nItems++, i++)
+ {
+ if (gSaveBlock1Ptr->pcItems[i].itemId == ITEM_NONE)
+ break;
+ }
+ sStateDataPtr->maxShowed = sStateDataPtr->nItems + 1 <= 6 ? sStateDataPtr->nItems + 1 : 6;
+}
+
+static void ItemPc_SetScrollPosition(void)
+{
+ u8 i;
+
+ if (sListMenuState.row > 3)
+ {
+ for (i = 0; i <= sListMenuState.row - 3; sListMenuState.row--, sListMenuState.scroll++, i++)
+ {
+ if (sListMenuState.scroll + sStateDataPtr->maxShowed == sStateDataPtr->nItems + 1)
+ break;
+ }
+ }
+}
+
+static void ItemPc_SetMessageWindowPalette(int a0)
+{
+ SetBgRectPal(1, 0, 14, 30, 6, a0 + 1);
+ schedule_bg_copy_tilemap_to_vram(1);
+}
+
+void ItemPc_SetInitializedFlag(u8 a0)
+{
+ sListMenuState.initialized = a0;
+}
+
+static void Task_ItemPcMain(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+ u16 scroll;
+ u16 row;
+ s32 input;
+
+ if (!gPaletteFade.active && !sub_80A0A98())
+ {
+ if (JOY_NEW(SELECT_BUTTON))
+ {
+ ListMenuGetScrollAndRow(data[0], &scroll, &row);
+ if (scroll + row != sStateDataPtr->nItems)
+ {
+ PlaySE(SE_SELECT);
+ ItemPc_MoveItemModeInit(taskId, scroll + row);
+ return;
+ }
+ }
+ input = ListMenuHandleInput(data[0]);
+ ListMenuGetScrollAndRow(data[0], &sListMenuState.scroll, &sListMenuState.row);
+ switch (input)
+ {
+ case -1:
+ break;
+ case -2:
+ PlaySE(SE_SELECT);
+ ItemPc_SetInitializedFlag(0);
+ gTasks[taskId].func = Task_ItemPcTurnOff1;
+ break;
+ default:
+ PlaySE(SE_SELECT);
+ ItemPc_SetMessageWindowPalette(1);
+ ItemPc_RemoveScrollIndicatorArrowPair();
+ data[1] = input;
+ data[2] = ItemPc_GetItemQuantityBySlotId(input);
+ ItemPc_PrintOrRemoveCursor(data[0], 2);
+ gTasks[taskId].func = Task_ItemPcSubmenuInit;
+ break;
+ }
+ }
+}
+
+static void ItemPc_ReturnFromSubmenu(u8 taskId)
+{
+ ItemPc_SetMessageWindowPalette(0);
+ ItemPc_PlaceTopMenuScrollIndicatorArrows();
+ gTasks[taskId].func = Task_ItemPcMain;
+}
+
+static void ItemPc_MoveItemModeInit(u8 taskId, s16 pos)
+{
+ s16 * data = gTasks[taskId].data;
+
+ sub_8107BD0(data[0], 16, 1);
+ data[1] = pos;
+ sStateDataPtr->moveModeOrigPos = pos;
+ StringCopy(gStringVar1, ItemId_GetName(ItemPc_GetItemIdBySlotId(data[1])));
+ StringExpandPlaceholders(gStringVar4, gOtherText_WhereShouldTheStrVar1BePlaced);
+ FillWindowPixelBuffer(1, 0x00);
+ ItemPc_AddTextPrinterParameterized(1, 2, gStringVar4, 0, 3, 2, 3, 0, 0);
+ sub_80986A8(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
+ sub_8098660(0);
+ ItemPc_PrintOrRemoveCursor(data[0], 2);
+ gTasks[taskId].func = Task_ItemPcMoveItemModeRun;
+}
+
+static void Task_ItemPcMoveItemModeRun(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ ListMenuHandleInput(data[0]);
+ ListMenuGetScrollAndRow(data[0], &sListMenuState.scroll, &sListMenuState.row);
+ sub_80986A8(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
+ if (JOY_NEW(A_BUTTON | SELECT_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ sStateDataPtr->moveModeOrigPos = 0xFF;
+ ItemPc_InsertItemIntoNewSlot(taskId, sListMenuState.scroll + sListMenuState.row);
+ }
+ else if (JOY_NEW(B_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ sStateDataPtr->moveModeOrigPos = 0xFF;
+ ItemPc_MoveItemModeCancel(taskId, sListMenuState.scroll + sListMenuState.row);
+ }
+}
+
+static void ItemPc_InsertItemIntoNewSlot(u8 taskId, u32 pos)
+{
+ s16 * data = gTasks[taskId].data;
+ if (data[1] == pos || data[1] == pos - 1)
+ ItemPc_MoveItemModeCancel(taskId, pos);
+ else
+ {
+ ItemMenu_MoveItemSlotToNewPositionInArray(gSaveBlock1Ptr->pcItems, data[1], pos);
+ DestroyListMenu(data[0], &sListMenuState.scroll, &sListMenuState.row);
+ if (data[1] < pos)
+ sListMenuState.row--;
+ ItemPc_BuildListMenuTemplate();
+ data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row);
+ sub_8098660(1);
+ gTasks[taskId].func = Task_ItemPcMain;
+ }
+}
+
+static void ItemPc_MoveItemModeCancel(u8 taskId, u32 pos)
+{
+ s16 * data = gTasks[taskId].data;
+
+ DestroyListMenu(data[0], &sListMenuState.scroll, &sListMenuState.row);
+ if (data[1] < pos)
+ sListMenuState.row--;
+ ItemPc_BuildListMenuTemplate();
+ data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row);
+ sub_8098660(1);
+ gTasks[taskId].func = Task_ItemPcMain;
+}
+
+static void Task_ItemPcSubmenuInit(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+ u8 windowId;
+
+ ItemPc_SetBorderStyleOnWindow(4);
+ windowId = ItemPc_GetOrCreateSubwindow(0);
+ PrintTextArray(4, 2, 8, 2, GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) + 2, 3, sItemPcSubmenuOptions);
+ ProgramAndPlaceMenuCursorOnWindow(4, 2, 0, 2, GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) + 2, 3, 0);
+ CopyItemName(ItemPc_GetItemIdBySlotId(data[1]), gStringVar1);
+ StringExpandPlaceholders(gStringVar4, gOtherText_StrVar1);
+ ItemPc_AddTextPrinterParameterized(windowId, 2, gStringVar4, 0, 2, 1, 0, 0, 1);
+ schedule_bg_copy_tilemap_to_vram(0);
+ gTasks[taskId].func = Task_ItemPcSubmenuRun;
+}
+
+static void Task_ItemPcSubmenuRun(u8 taskId)
+{
+ s8 input = ProcessMenuInputNoWrapAround();
+ switch (input)
+ {
+ case -1:
+ PlaySE(SE_SELECT);
+ Task_ItemPcCancel(taskId);
+ break;
+ case -2:
+ break;
+ default:
+ PlaySE(SE_SELECT);
+ sItemPcSubmenuOptions[input].func.void_u8(taskId);
+ }
+}
+
+static void Task_ItemPcWithdraw(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ ClearMenuWindow(4, FALSE);
+ ItemPc_DestroySubwindow(0);
+ ClearWindowTilemap(4);
+ data[8] = 1;
+ if (ItemPc_GetItemQuantityBySlotId(data[1]) == 1)
+ {
+ PutWindowTilemap(0);
+ schedule_bg_copy_tilemap_to_vram(0);
+ ItemPc_DoWithdraw(taskId);
+ }
+ else
+ {
+ PutWindowTilemap(0);
+ ItemPc_WithdrawMultipleInitWindow(data[1]);
+ ItemPc_PlaceWithdrawQuantityScrollIndicatorArrows();
+ gTasks[taskId].func = Task_ItemPcHandleWithdrawMultiple;
+ }
+}
+
+static void ItemPc_DoWithdraw(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+ u16 itemId = ItemPc_GetItemIdBySlotId(data[1]);
+ u8 windowId;
+
+ if (AddBagItem(itemId, data[8]) == TRUE)
+ {
+ ItemUse_SetQuestLogEvent(29, NULL, itemId, 0xFFFF);
+ CopyItemName(itemId, gStringVar1);
+ ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 3);
+ StringExpandPlaceholders(gStringVar4, gText_WithdrewQuantItem);
+ windowId = ItemPc_GetOrCreateSubwindow(2);
+ AddTextPrinterParameterized(windowId, 2, gStringVar4, 0, 2, 0, NULL);
+ gTasks[taskId].func = Task_ItemPcWaitButtonAndFinishWithdrawMultiple;
+ }
+ else
+ {
+ windowId = ItemPc_GetOrCreateSubwindow(2);
+ AddTextPrinterParameterized(windowId, 2, gText_NoMoreRoomInBag, 0, 2, 0, NULL);
+ gTasks[taskId].func = Task_ItemPcWaitButtonWithdrawMultipleFailed;
+ }
+}
+
+static void Task_ItemPcWaitButtonAndFinishWithdrawMultiple(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+ u16 itemId;
+
+ if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ itemId = ItemPc_GetItemIdBySlotId(data[1]);
+ RemoveItemFromPC(itemId, data[8]);
+ ItemPcCompaction();
+ Task_ItemPcCleanUpWithdraw(taskId);
+ }
+}
+
+static void Task_ItemPcWaitButtonWithdrawMultipleFailed(u8 taskId)
+{
+ if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ Task_ItemPcCleanUpWithdraw(taskId);
+ }
+}
+
+static void Task_ItemPcCleanUpWithdraw(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ ItemPc_DestroySubwindow(2);
+ PutWindowTilemap(1);
+ DestroyListMenu(data[0], &sListMenuState.scroll, &sListMenuState.row);
+ ItemPc_CountPcItems();
+ ItemPc_SetCursorPosition();
+ ItemPc_BuildListMenuTemplate();
+ data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row);
+ schedule_bg_copy_tilemap_to_vram(0);
+ ItemPc_ReturnFromSubmenu(taskId);
+}
+
+static void ItemPc_WithdrawMultipleInitWindow(u16 slotId)
+{
+ u16 itemId = ItemPc_GetItemIdBySlotId(slotId);
+
+ CopyItemName(itemId, gStringVar1);
+ StringExpandPlaceholders(gStringVar4, gText_WithdrawHowMany);
+ AddTextPrinterParameterized(ItemPc_GetOrCreateSubwindow(1), 2, gStringVar4, 0, 2, 0, NULL);
+ ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, 3);
+ StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
+ ItemPc_SetBorderStyleOnWindow(3);
+ ItemPc_AddTextPrinterParameterized(3, 0, gStringVar4, 8, 10, 1, 0, 0, 1);
+ schedule_bg_copy_tilemap_to_vram(0);
+}
+
+static void sub_810E670(s16 quantity)
+{
+ FillWindowPixelRect(3, 0x11, 10, 10, 28, 12);
+ ConvertIntToDecimalStringN(gStringVar1, quantity, STR_CONV_MODE_LEADING_ZEROS, 3);
+ StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
+ ItemPc_AddTextPrinterParameterized(3, 0, gStringVar4, 8, 10, 1, 0, 0, 1);
+}
+
+static void Task_ItemPcHandleWithdrawMultiple(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (sub_80BF848(&data[8], data[2]) == TRUE)
+ sub_810E670(data[8]);
+ else if (JOY_NEW(A_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ ItemPc_DestroySubwindow(1);
+ ClearWindowTilemap(3);
+ PutWindowTilemap(0);
+ ItemPc_PrintOrRemoveCursor(data[0], 1);
+ schedule_bg_copy_tilemap_to_vram(0);
+ ItemPc_RemoveScrollIndicatorArrowPair();
+ ItemPc_DoWithdraw(taskId);
+ }
+ else if (JOY_NEW(B_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ ClearMenuWindow(3, FALSE);
+ ItemPc_DestroySubwindow(1);
+ ClearWindowTilemap(3);
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ ItemPc_PrintOrRemoveCursor(data[0], 1);
+ schedule_bg_copy_tilemap_to_vram(0);
+ ItemPc_RemoveScrollIndicatorArrowPair();
+ ItemPc_ReturnFromSubmenu(taskId);
+ }
+}
+
+static void Task_ItemPcGive(u8 taskId)
+{
+ if (CalculatePlayerPartyCount() == 0)
+ {
+ ClearMenuWindow(4, FALSE);
+ ItemPc_DestroySubwindow(0);
+ ClearWindowTilemap(4);
+ PutWindowTilemap(0);
+ ItemPc_PrintOnWindow5WithContinueTask(taskId, gText_ThereIsNoPokemon, gTask_ItemPcWaitButtonAndExitSubmenu);
+ }
+ else
+ {
+ sStateDataPtr->savedCallback = ItemPc_CB2_SwitchToPartyMenu;
+ Task_ItemPcTurnOff1(taskId);
+ }
+}
+
+static void ItemPc_CB2_SwitchToPartyMenu(void)
+{
+ PartyMenuInit(0, 0, 6, 0, 6, sub_811FB28, ItemPc_CB2_ReturnFromPartyMenu);
+ gUnknown_203B0A0.unkC = ItemPc_GetItemIdBySlotId(ItemPc_GetCursorPosition());
+}
+
+static void ItemPc_CB2_ReturnFromPartyMenu(void)
+{
+ ItemPc_Init(1, NULL);
+}
+
+static void gTask_ItemPcWaitButtonAndExitSubmenu(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (JOY_NEW(A_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ ClearMenuWindow_BorderThickness2(5, 0);
+ ClearWindowTilemap(5);
+ PutWindowTilemap(1);
+ ItemPc_PrintOrRemoveCursor(data[0], 1);
+ schedule_bg_copy_tilemap_to_vram(0);
+ ItemPc_ReturnFromSubmenu(taskId);
+ }
+}
+
+static void Task_ItemPcCancel(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ ClearMenuWindow(4, FALSE);
+ ItemPc_DestroySubwindow(0);
+ ClearWindowTilemap(4);
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ ItemPc_PrintOrRemoveCursor(data[0], 1);
+ schedule_bg_copy_tilemap_to_vram(0);
+ ItemPc_ReturnFromSubmenu(taskId);
+}
+
+static void ItemPc_InitWindows(void)
+{
+ u8 i;
+
+ InitWindows(gUnknown_8453F98);
+ DeactivateAllTextPrinters();
+ TextWindow_SetUserSelectedFrame(0, 0x3C0, 0xE0);
+ TextWindow_SetStdFrame0_WithPal(0, 0x3A3, 0xC0);
+ TextWindow_SetBubbleFrame_841F1C8(0, 0x3AC, 0xB0);
+ LoadPalette(stdpal_get(2), 0xD0, 0x20);
+ LoadPalette(gTMCaseMainWindowPalette, 0xF0, 0x20);
+ for (i = 0; i < 3; i++)
+ {
+ FillWindowPixelBuffer(i, 0x00);
+ PutWindowTilemap(i);
+ }
+ schedule_bg_copy_tilemap_to_vram(0);
+ for (i = 0; i < 3; i++)
+ sSubmenuWindowIds[i] = 0xFF;
+}
+
+static void unused_ItemPc_AddTextPrinterParameterized(u8 windowId, const u8 * string, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed)
+{
+ struct TextPrinterTemplate template;
+
+ template.currentChar = string;
+ template.windowId = windowId;
+ template.fontId = 3;
+ template.x = x;
+ template.y = y;
+ template.currentX = x;
+ template.currentY = y;
+ template.fgColor = 2;
+ template.bgColor = 0;
+ template.shadowColor = 3;
+ template.unk = GetFontAttribute(3, FONTATTR_UNKNOWN);
+ template.letterSpacing = letterSpacing + GetFontAttribute(3, FONTATTR_LETTER_SPACING);
+ template.lineSpacing = lineSpacing + GetFontAttribute(3, FONTATTR_LINE_SPACING);
+ AddTextPrinter(&template, speed, NULL);
+}
+
+static void ItemPc_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx)
+{
+ AddTextPrinterParameterized4(windowId, fontId, x, y, letterSpacing, lineSpacing, &gUnknown_8453F8C[colorIdx], speed, str);
+}
+
+static void ItemPc_SetBorderStyleOnWindow(u8 windowId)
+{
+ SetWindowBorderStyle(windowId, FALSE, 0x3C0, 0x0E);
+}
+
+static u8 ItemPc_GetOrCreateSubwindow(u8 idx)
+{
+ if (sSubmenuWindowIds[idx] == 0xFF)
+ {
+ sSubmenuWindowIds[idx] = AddWindow(&gUnknown_8453FD0[idx]);
+ SetWindowBorderStyle(sSubmenuWindowIds[idx], TRUE, 0x3A3, 0x0C);
+ }
+
+ return sSubmenuWindowIds[idx];
+}
+
+static void ItemPc_DestroySubwindow(u8 idx)
+{
+ ClearMenuWindow(sSubmenuWindowIds[idx], FALSE);
+ ClearWindowTilemap(sSubmenuWindowIds[idx]); // redundant
+ RemoveWindow(sSubmenuWindowIds[idx]);
+ sSubmenuWindowIds[idx] = 0xFF;
+}
+
+static u8 ItemPc_GetSubwindow(u8 idx)
+{
+ return sSubmenuWindowIds[idx];
+}
+
+static void ItemPc_PrintOnWindow5WithContinueTask(u8 taskId, const u8 * str, TaskFunc taskFunc)
+{
+ DisplayMessageAndContinueTask(taskId, 5, 0x3AC, 0x0B, 2, GetTextSpeedSetting(), str, taskFunc);
+ schedule_bg_copy_tilemap_to_vram(0);
+}
diff --git a/src/money.c b/src/money.c
index 6d9a0fce9..ffaba2e29 100644
--- a/src/money.c
+++ b/src/money.c
@@ -128,13 +128,13 @@ void DrawMoneyBox(int amount, u8 x, u8 y)
sMoneyBoxWindowId = AddWindow(&template2);
FillWindowPixelBuffer(sMoneyBoxWindowId, 0);
PutWindowTilemap(sMoneyBoxWindowId);
- sub_814FF2C(sMoneyBoxWindowId, 0x21D, 0xD0);
+ TextWindow_SetStdFrame0_WithPal(sMoneyBoxWindowId, 0x21D, 0xD0);
PrintMoneyAmountInMoneyBoxWithBorder(sMoneyBoxWindowId, 0x21D, 13, amount);
}
void HideMoneyBox(void)
{
- sub_810F4D8(sMoneyBoxWindowId, FALSE);
+ ClearMenuWindow(sMoneyBoxWindowId, FALSE);
CopyWindowToVram(sMoneyBoxWindowId, 2);
RemoveWindow(sMoneyBoxWindowId);
}
diff --git a/src/oak_speech.c b/src/oak_speech.c
index 107bf234c..3bf174778 100644
--- a/src/oak_speech.c
+++ b/src/oak_speech.c
@@ -1092,7 +1092,7 @@ static void Task_OakSpeech20(u8 taskId)
static void Task_OakSpeech21(u8 taskId)
{
s16 * data = gTasks[taskId].data;
- sub_810F4D8(data[13], 1);
+ ClearMenuWindow(data[13], 1);
RemoveWindow(data[13]);
data[13] = 0;
ClearDialogWindowAndFrame(0, 1);
@@ -1184,7 +1184,7 @@ static void Task_OakSpeech29(u8 taskId)
case 3:
case 4:
PlaySE(SE_SELECT);
- sub_810F4D8(data[13], TRUE);
+ ClearMenuWindow(data[13], TRUE);
RemoveWindow(data[13]);
GetDefaultName(sOakSpeechResources->unk_0010, input - 1);
data[15] = 1;
@@ -1211,7 +1211,7 @@ static void Task_OakSpeech25(u8 taskId)
}
else
{
- sub_810F4D8(gTasks[taskId].data[13], 1);
+ ClearMenuWindow(gTasks[taskId].data[13], 1);
RemoveWindow(gTasks[taskId].data[13]);
DoNamingScreen(4, gSaveBlock1Ptr->rivalName, 0, 0, 0, CB2_ReturnFromNamingScreen);
}
diff --git a/src/quest_log.c b/src/quest_log.c
index ed061a8b6..723323427 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -1691,7 +1691,7 @@ void sub_81123BC(void)
void sub_8112450(void)
{
- if (sub_80BF708() != 1)
+ if (MenuHelpers_LinkSomething() != 1)
{
sub_8112364();
sub_81123BC();
@@ -2842,7 +2842,7 @@ void sub_8113550(u16 a0, const u16 * a1)
if (sub_81138A0(a0, a1) == TRUE)
return;
- if (sub_80BF708() == TRUE)
+ if (MenuHelpers_LinkSomething() == TRUE)
return;
// NONMATCHING: branch logic here
@@ -2954,7 +2954,7 @@ void sub_8113550(u16 a0, const u16 * a1)
"\tbne _081135AA\n"
"\tb ._return\n"
"_081135AA:\n"
- "\tbl sub_80BF708\n"
+ "\tbl MenuHelpers_LinkSomething\n"
"\tlsls r0, 24\n"
"\tlsrs r0, 24\n"
"\tcmp r0, 0x1\n"
@@ -3708,7 +3708,7 @@ const u16 * sub_8113FBC(const u16 * a0)
case POCKET_ITEMS:
case POCKET_POKE_BALLS:
case POCKET_BERRY_POUCH:
- StringCopy(gStringVar1, ItemId_GetItem(r5[0])->name);
+ StringCopy(gStringVar1, ItemId_GetName(r5[0]));
if (r5[0] == ITEM_ESCAPE_ROPE)
{
sub_80C4DF8(gStringVar2, r5[2]);
@@ -3725,7 +3725,7 @@ const u16 * sub_8113FBC(const u16 * a0)
}
break;
case POCKET_KEY_ITEMS:
- StringCopy(gStringVar1, ItemId_GetItem(r5[0])->name);
+ StringCopy(gStringVar1, ItemId_GetName(r5[0]));
StringExpandPlaceholders(gStringVar4, gUnknown_841A220);
break;
case POCKET_TM_CASE:
@@ -3771,7 +3771,7 @@ const u16 * sub_8114188(const u16 * a0)
{
const u16 * r4 = sub_8113E88(5, a0);
QuestLog_AutoGetSpeciesName(r4[1], gStringVar1, 0);
- StringCopy(gStringVar2, ItemId_GetItem(r4[0])->name);
+ StringCopy(gStringVar2, ItemId_GetName(r4[0]));
StringExpandPlaceholders(gStringVar4, gUnknown_841AB74);
r4 += 2;
return r4;
@@ -3787,7 +3787,7 @@ const u16 * sub_81141E4(const u16 * a0)
const u16 * r4 = sub_8113E88(6, a0);
QuestLog_AutoGetSpeciesName(r4[1], gStringVar1, 0);
- StringCopy(gStringVar2, ItemId_GetItem(r4[0])->name);
+ StringCopy(gStringVar2, ItemId_GetName(r4[0]));
StringExpandPlaceholders(gStringVar4, gUnknown_841AB8E);
r4 += 2;
return r4;
@@ -3803,7 +3803,7 @@ const u16 * sub_8114240(const u16 * a0)
const u16 * r4 = sub_8113E88(7, a0);
QuestLog_AutoGetSpeciesName(r4[1], gStringVar2, 0);
- StringCopy(gStringVar1, ItemId_GetItem(r4[0])->name);
+ StringCopy(gStringVar1, ItemId_GetName(r4[0]));
StringExpandPlaceholders(gStringVar4, gUnknown_841A6A5);
r4 += 2;
return r4;
@@ -3819,7 +3819,7 @@ const u16 * sub_811429C(const u16 * a0)
const u16 * r4 = sub_8113E88(8, a0);
QuestLog_AutoGetSpeciesName(r4[1], gStringVar1, 0);
- StringCopy(gStringVar2, ItemId_GetItem(r4[0])->name);
+ StringCopy(gStringVar2, ItemId_GetName(r4[0]));
StringExpandPlaceholders(gStringVar4, gUnknown_841A1CD);
r4 += 2;
return r4;
@@ -3846,8 +3846,8 @@ const u16 * sub_8114324(const u16 * a0)
{
const u16 * r4 = sub_8113E88(9, a0);
QuestLog_AutoGetSpeciesName(r4[2], gStringVar1, 0);
- StringCopy(gStringVar2, ItemId_GetItem(r4[0])->name);
- StringCopy(gStringVar3, ItemId_GetItem(r4[1])->name);
+ StringCopy(gStringVar2, ItemId_GetName(r4[0]));
+ StringCopy(gStringVar3, ItemId_GetName(r4[1]));
StringExpandPlaceholders(gStringVar4, gUnknown_841A193);
r4 += 3;
return r4;
@@ -3862,8 +3862,8 @@ const u16 * sub_8114394(const u16 * a0)
{
const u16 * r4 = sub_8113E88(10, a0);
QuestLog_AutoGetSpeciesName(r4[2], gStringVar2, 0);
- StringCopy(gStringVar3, ItemId_GetItem(r4[0])->name);
- StringCopy(gStringVar1, ItemId_GetItem(r4[1])->name);
+ StringCopy(gStringVar3, ItemId_GetName(r4[0]));
+ StringCopy(gStringVar1, ItemId_GetName(r4[1]));
StringExpandPlaceholders(gStringVar4, gUnknown_841A6E1);
r4 += 3;
return r4;
@@ -4817,7 +4817,7 @@ const u16 * sub_8115518(const u16 * a0)
UnkTextUtil_Reset();
sub_80C4DF8(gStringVar1, r7[0]);
UnkTextUtil_SetPtrI(0, gStringVar1);
- UnkTextUtil_SetPtrI(1, ItemId_GetItem(r4[0])->name);
+ UnkTextUtil_SetPtrI(1, ItemId_GetName(r4[0]));
if (r4[1] < 2)
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A7DD);
else
@@ -4852,7 +4852,7 @@ const u16 * sub_81155E0(const u16 * a0) {
if (r7[1] == 0) {
UnkTextUtil_SetPtrI(0, gSaveBlock2Ptr->playerName);
UnkTextUtil_SetPtrI(1, gStringVar1);
- UnkTextUtil_SetPtrI(2, ItemId_GetItem(r5[0])->name);
+ UnkTextUtil_SetPtrI(2, ItemId_GetName(r5[0]));
if (r5[1] == 1)
UnkTextUtil_SetPtrI(3, gUnknown_841A8D4);
else
@@ -4867,7 +4867,7 @@ const u16 * sub_81155E0(const u16 * a0) {
else
{
UnkTextUtil_SetPtrI(0, gStringVar1);
- UnkTextUtil_SetPtrI(1, ItemId_GetItem(r5[0])->name);
+ UnkTextUtil_SetPtrI(1, ItemId_GetName(r5[0]));
ConvertIntToDecimalStringN(gStringVar2, r6, STR_CONV_MODE_LEFT_ALIGN, 6);
UnkTextUtil_SetPtrI(2, gStringVar2);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A896);
@@ -4890,7 +4890,7 @@ const u16 * sub_8115700(const u16 * a0)
const u16 * r4 = sub_8113E88(40, a0);
const u8 * r5 = (const u8 *)r4 + 2;
sub_80C4DF8(gStringVar1, r5[0]);
- StringCopy(gStringVar2, ItemId_GetItem(r4[0])->name);
+ StringCopy(gStringVar2, ItemId_GetName(r4[0]));
StringExpandPlaceholders(gStringVar4, gUnknown_841B03F);
return (const u16 *)(r5 + 2);
}
diff --git a/src/text_window.c b/src/text_window.c
index 90db8f599..0c562b195 100644
--- a/src/text_window.c
+++ b/src/text_window.c
@@ -31,19 +31,19 @@ void sub_814FD6C(u8 bgId, u16 destOffset, u8 palIdx)
void sub_814FDA0(u8 bgId, u16 destOffset, u8 palIdx)
{
- LoadBgTiles(bgId, gUnknown_8471A4C, 0x120, destOffset);
+ LoadBgTiles(bgId, gStdFrame0, 0x120, destOffset);
LoadPalette(stdpal_get(3), palIdx, 32);
}
void sub_814FDD4(u8 bgId, u16 destOffset)
{
- LoadBgTiles(bgId, gUnknown_8471B6C, 0x280, destOffset);
+ LoadBgTiles(bgId, gStdFrame1, 0x280, destOffset);
}
void sub_814FDF4(u8 bgId, u8 frameType, u16 destOffset, u8 palIdx)
{
- LoadBgTiles(bgId, gUnknown_8471E8C[frameType].tiles, 0x120, destOffset);
- LoadPalette(gUnknown_8471E8C[frameType].palette, palIdx, 32);
+ LoadBgTiles(bgId, gUserFrames[frameType].tiles, 0x120, destOffset);
+ LoadPalette(gUserFrames[frameType].palette, palIdx, 32);
}
void LoadUserWindowBorderGfx(u8 windowId, u16 destOffset, u8 palIdx)
@@ -57,7 +57,7 @@ void sub_814FE6C(u8 windowId, u16 destOffset, u8 palIdx)
LoadPalette(stdpal_get(2), palIdx, 32);
}
-void sub_814FEAC(u8 windowId, u16 destOffset, u8 palIdx)
+void TextWindow_SetBubbleFrame_841F1C8(u8 windowId, u16 destOffset, u8 palIdx)
{
LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gUnknown_841F1C8, 0x280, destOffset);
LoadPalette(stdpal_get(0), palIdx, 32);
@@ -69,29 +69,29 @@ void sub_814FEEC(u8 windowId, u16 destOffset, u8 palIdx)
LoadPalette(stdpal_get(1), palIdx, 32);
}
-void sub_814FF2C(u8 windowId, u16 destOffset, u8 palIdx)
+void TextWindow_SetStdFrame0_WithPal(u8 windowId, u16 destOffset, u8 palIdx)
{
- LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gUnknown_8471A4C, 0x120, destOffset);
+ LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gStdFrame0, 0x120, destOffset);
LoadPalette(stdpal_get(3), palIdx, 32);
}
void sub_814FF6C(u8 windowId, u16 destOffset)
{
- LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gUnknown_8471A4C, 0x120, destOffset);
+ LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gStdFrame0, 0x120, destOffset);
}
void sub_814FF98(u8 windowId, u16 destOffset)
{
- LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gUnknown_8471B6C, 0x280, destOffset);
+ LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gStdFrame1, 0x280, destOffset);
}
void sub_814FFC4(u8 windowId, u8 frameType, u16 destOffset, u8 palIdx)
{
- LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gUnknown_8471E8C[frameType].tiles, 0x120, destOffset);
- LoadPalette(gUnknown_8471E8C[frameType].palette, palIdx, 32);
+ LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gUserFrames[frameType].tiles, 0x120, destOffset);
+ LoadPalette(gUserFrames[frameType].palette, palIdx, 32);
}
-void sub_815001C(u8 windowId, u16 destOffset, u8 palIdx)
+void TextWindow_SetUserSelectedFrame(u8 windowId, u16 destOffset, u8 palIdx)
{
sub_814FFC4(windowId, gSaveBlock2Ptr->optionsWindowFrameType, destOffset, palIdx);
}
diff --git a/src/text_window_graphics.c b/src/text_window_graphics.c
index 347de3d65..e16037a34 100644
--- a/src/text_window_graphics.c
+++ b/src/text_window_graphics.c
@@ -27,8 +27,8 @@ static const u16 gUnknown_84719EC[] = INCBIN_U16("graphics/text_window/unk_84715
static const u16 gUnknown_8471A0C[] = INCBIN_U16("graphics/text_window/unk_84716AC.gbapal");
static const u16 gUnknown_8471A2C[] = INCBIN_U16("graphics/text_window/unk_84717CC.gbapal");
-const u16 gUnknown_8471A4C[] = INCBIN_U16("graphics/text_window/unk_8471A4C.4bpp");
-const u16 gUnknown_8471B6C[] = INCBIN_U16("graphics/text_window/unk_8471B6C.4bpp");
+const u16 gStdFrame0[] = INCBIN_U16("graphics/text_window/unk_8471A4C.4bpp");
+const u16 gStdFrame1[] = INCBIN_U16("graphics/text_window/unk_8471B6C.4bpp");
const u16 gUnknown_8471DEC[][16] = {
INCBIN_U16("graphics/text_window/stdpal_0.gbapal"),
@@ -38,7 +38,7 @@ const u16 gUnknown_8471DEC[][16] = {
INCBIN_U16("graphics/text_window/stdpal_4.gbapal")
};
-const struct TextWindowGraphics gUnknown_8471E8C[] = {
+const struct TextWindowGraphics gUserFrames[] = {
{gUnknown_8470D6C, gUnknown_847190C},
{gUnknown_8470E8C, gUnknown_847192C},
{gUnknown_8470FCC, gUnknown_847194C},
@@ -53,8 +53,8 @@ const struct TextWindowGraphics gUnknown_8471E8C[] = {
const struct TextWindowGraphics * sub_8069788(u8 idx)
{
- if (idx >= 20) // if (idx >= NELEMS(gUnknown_8471E8C))
- return &gUnknown_8471E8C[0];
+ if (idx >= 20) // if (idx >= NELEMS(gUserFrames))
+ return &gUserFrames[0];
else
- return &gUnknown_8471E8C[idx];
+ return &gUserFrames[idx];
}
diff --git a/src/tm_case.c b/src/tm_case.c
index 5a079ed2d..120116c8d 100644
--- a/src/tm_case.c
+++ b/src/tm_case.c
@@ -309,7 +309,7 @@ static void CB2_SetUpTMCaseUI_Blocking(void)
break;
if (DoSetUpTMCaseUI() == TRUE)
break;
- if (sub_80BF708() == TRUE)
+ if (MenuHelpers_LinkSomething() == TRUE)
break;
}
}
@@ -595,7 +595,7 @@ static void TMCase_MoveCursor_UpdatePrintedDescription(s32 itemIndex)
static void FillBG2RowWithPalette_2timesNplus1(s32 a0)
{
- sub_80F6B08(2, 0, 12, 30, 8, 2 * a0 + 1);
+ SetBgRectPal(2, 0, 12, 30, 8, 2 * a0 + 1);
schedule_bg_copy_tilemap_to_vram(2);
}
@@ -782,7 +782,7 @@ static void Task_SelectTMAction_FromFieldBag(u8 taskId)
{
u8 * strbuf;
TMCase_SetWindowBorder2(2);
- if (!sub_80BF708() && InUnionRoom() != TRUE)
+ if (!MenuHelpers_LinkSomething() && InUnionRoom() != TRUE)
{
AddTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId, 0);
sTMCaseDynamicResources->menuActionIndices = sMenuActionIndices_Field;
@@ -837,7 +837,7 @@ static void Task_TMContextMenu_HandleInput(u8 taskId)
static void TMHMContextMenuAction_Use(u8 taskId)
{
RemoveTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId);
- sub_810F4D8(2, 0);
+ ClearMenuWindow(2, 0);
ClearWindowTilemap(2);
PutWindowTilemap(0);
schedule_bg_copy_tilemap_to_vram(0);
@@ -859,7 +859,7 @@ 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);
+ ClearMenuWindow(2, 0);
ClearWindowTilemap(2);
PutWindowTilemap(1);
PutWindowTilemap(4);
@@ -912,7 +912,7 @@ static void Subtask_CloseContextMenuAndReturnToMain(u8 taskId)
DestroyListMenu(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sTMCaseStaticResources.scrollOffset, sTMCaseStaticResources.selectedRow);
PrintListMenuCursorByID_WithColorIdx(data[0], 1);
- sub_810F260(6, 0);
+ ClearMenuWindow_BorderThickness2(6, 0);
ClearWindowTilemap(6);
PutWindowTilemap(1);
PutWindowTilemap(4);
@@ -927,7 +927,7 @@ static void TMHMContextMenuAction_Exit(u8 taskId)
s16 * data = gTasks[taskId].data;
RemoveTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId);
- sub_810F4D8(2, 0);
+ ClearMenuWindow(2, 0);
ClearWindowTilemap(2);
PutWindowTilemap(0);
PrintListMenuCursorByID_WithColorIdx(data[0], 1);
@@ -1016,8 +1016,8 @@ static void Task_SaleOfTMsCancelled(u8 taskId)
{
s16 * data = gTasks[taskId].data;
- sub_810F4D8(8, 0);
- sub_810F260(6, 0);
+ ClearMenuWindow(8, 0);
+ ClearMenuWindow_BorderThickness2(6, 0);
PutWindowTilemap(0);
PutWindowTilemap(1);
PutWindowTilemap(3);
@@ -1065,7 +1065,7 @@ static void Task_QuantitySelect_HandleInput(u8 taskId)
else if (JOY_NEW(A_BUTTON))
{
PlaySE(SE_SELECT);
- sub_810F4D8(7, 0);
+ ClearMenuWindow(7, 0);
schedule_bg_copy_tilemap_to_vram(0);
schedule_bg_copy_tilemap_to_vram(1);
RemoveTMCaseScrollIndicatorArrowPair();
@@ -1074,9 +1074,9 @@ static void Task_QuantitySelect_HandleInput(u8 taskId)
else if (JOY_NEW(B_BUTTON))
{
PlaySE(SE_SELECT);
- sub_810F4D8(7, 0);
- sub_810F4D8(8, 0);
- sub_810F260(6, 0);
+ ClearMenuWindow(7, 0);
+ ClearMenuWindow(8, 0);
+ ClearMenuWindow_BorderThickness2(6, 0);
PutWindowTilemap(3);
PutWindowTilemap(0);
PutWindowTilemap(1);
@@ -1123,8 +1123,8 @@ 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);
+ ClearMenuWindow(8, 0);
+ ClearMenuWindow_BorderThickness2(6, 0);
PutWindowTilemap(1);
PutWindowTilemap(3);
PutWindowTilemap(4);
@@ -1249,7 +1249,7 @@ static void Task_TMCaseDude_Playback(u8 taskId)
{
FillBG2RowWithPalette_2timesNplus1(0);
BeginNormalPaletteFade(0x00000400, 0, 6, 0, 0);
- sub_810F260(6, 0);
+ ClearMenuWindow_BorderThickness2(6, 0);
schedule_bg_copy_tilemap_to_vram(1);
data[8]++;
}
@@ -1297,9 +1297,9 @@ static void InitWindowTemplatesAndPals(void)
InitWindows(sWindowTemplates);
DeactivateAllTextPrinters();
- sub_815001C(0, 0x5B, 0xE0);
- sub_814FEAC(0, 0x64, 0xB0);
- sub_814FF2C(0, 0x78, 0xD0);
+ TextWindow_SetUserSelectedFrame(0, 0x5B, 0xE0);
+ TextWindow_SetBubbleFrame_841F1C8(0, 0x64, 0xB0);
+ TextWindow_SetStdFrame0_WithPal(0, 0x78, 0xD0);
LoadPalette(gTMCaseMainWindowPalette, 0xF0, 0x20);
LoadPalette(gTMCaseMainWindowPalette, 0xA0, 0x20);
LoadPalette(sPal3Override, 0xF6, 0x04);
@@ -1420,7 +1420,7 @@ static u8 AddTMContextMenu(u8 * a0, u8 a1)
static void RemoveTMContextMenu(u8 * a0)
{
- sub_810F4D8(*a0, FALSE);
+ ClearMenuWindow(*a0, FALSE);
ClearWindowTilemap(*a0);
RemoveWindow(*a0);
schedule_bg_copy_tilemap_to_vram(0);
diff --git a/src/trainer_tower.c b/src/trainer_tower.c
index 5711bff94..ef2a12ce0 100644
--- a/src/trainer_tower.c
+++ b/src/trainer_tower.c
@@ -1299,7 +1299,7 @@ void sub_815E720(void)
void sub_815E88C(void)
{
u8 windowId = VarGet(VAR_0x4001);
- sub_810F4D8(windowId, TRUE);
+ ClearMenuWindow(windowId, TRUE);
RemoveWindow(windowId);
}
diff --git a/src/unk_815EDDC.c b/src/unk_815EDDC.c
index d5da946fc..669bb2ddb 100644
--- a/src/unk_815EDDC.c
+++ b/src/unk_815EDDC.c
@@ -98,7 +98,7 @@ void sub_815EFBC(u8 windowId, u32 powder, u8 x, u8 y, u8 speed)
void sub_815F014(u8 windowId, u16 baseBlock, u8 palette, u32 powder)
{
SetWindowBorderStyle(windowId, FALSE, baseBlock, palette);
- AddTextPrinterParameterized(windowId, 0, gUnknown_8416655, 0, 0, -1, NULL);
+ AddTextPrinterParameterized(windowId, 0, gOtherText_Powder, 0, 0, -1, NULL);
sub_815EFBC(windowId, powder, 39, 12, 0);
}
@@ -119,7 +119,7 @@ void sub_815F094(void)
gUnknown_203F464 = AddWindow(&template2);
FillWindowPixelBuffer(gUnknown_203F464, 0);
PutWindowTilemap(gUnknown_203F464);
- sub_814FF2C(gUnknown_203F464, 0x21D, 0xD0);
+ TextWindow_SetStdFrame0_WithPal(gUnknown_203F464, 0x21D, 0xD0);
sub_815F014(gUnknown_203F464, 0x21D, 0xD, sub_815EFA0());
}
}
@@ -127,6 +127,6 @@ void sub_815F094(void)
void sub_815F114(void)
{
ClearWindowTilemap(gUnknown_203F464);
- sub_810F4D8(gUnknown_203F464, 1);
+ ClearMenuWindow(gUnknown_203F464, 1);
RemoveWindow(gUnknown_203F464);
}
diff --git a/src/vs_seeker.c b/src/vs_seeker.c
index e1cb40f3a..e3df77242 100644
--- a/src/vs_seeker.c
+++ b/src/vs_seeker.c
@@ -814,7 +814,7 @@ void Task_VsSeeker_0(u8 taskId)
}
else if (respval == 2)
{
- sub_80A2294(4, 0, gSpecialVar_ItemId, 0xffff);
+ ItemUse_SetQuestLogEvent(4, 0, gSpecialVar_ItemId, 0xffff);
FieldEffectStart(FLDEFF_UNK_41); // TODO: name this enum
gTasks[taskId].func = Task_VsSeeker_1;
gTasks[taskId].data[0] = 15;
diff --git a/src/window.c b/src/window.c
index 9d38ba2c3..4c302885c 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1069,7 +1069,7 @@ _08004046:\n\
}
#endif // NONMATCHING
-void CallWindowFunction(u8 windowId, void ( *func)(u8, u8, u8, u8, u8, u8))
+void CallWindowFunction(u8 windowId, WindowFunc func)
{
struct WindowTemplate window = gWindows[windowId].window;
func(window.bg, window.tilemapLeft, window.tilemapTop, window.width, window.height, window.paletteNum);
diff --git a/sym_ewram.txt b/sym_ewram.txt
index d06fb5c5a..058e3aa03 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -1318,27 +1318,10 @@ gSpecialVar_ItemId: @ 203AD30
.align 2
.include "src/vs_seeker.o"
-gUnknown_203ADBC: @ 203ADBC
- .space 0x4
-
-gUnknown_203ADC0: @ 203ADC0
- .space 0x4
-
-gUnknown_203ADC4: @ 203ADC4
- .space 0x4
-
-gUnknown_203ADC8: @ 203ADC8
- .space 0x4
-
-gUnknown_203ADCC: @ 203ADCC
- .space 0x4
-
-gUnknown_203ADD0: @ 203ADD0
- .space 0x8
-
-gUnknown_203ADD8: @ 203ADD8
- .space 0x4
+ .align 2
+ .include "src/item_pc.o"
+ .align 2
gUnknown_203ADDC: @ 203ADDC
.space 0x4