diff options
author | PikalaxALT <PikalaxALT@users.noreply.github.com> | 2019-06-17 13:46:53 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-17 13:46:53 -0400 |
commit | e3de3422a8ab5225e6ecffec38c19cac89d17915 (patch) | |
tree | e12eddb9a126083e308968b56ce69d6dd85c42aa | |
parent | e28c7676126d31efa690f686152be19d5b62f743 (diff) | |
parent | 2b750cf44491aee3b2fe8265afb4ac6620500afa (diff) |
Merge pull request #69 from pret/item_pc
Item pc
75 files changed, 1588 insertions, 3281 deletions
@@ -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 Binary files differnew file mode 100644 index 000000000..6c6748683 --- /dev/null +++ b/graphics/item_pc/unk_8E85090.png diff --git a/graphics/item_pc/unk_8E85458.bin b/graphics/item_pc/unk_8E85458.bin Binary files differnew file mode 100644 index 000000000..046ef83b4 --- /dev/null +++ b/graphics/item_pc/unk_8E85458.bin diff --git a/graphics/text_window/unk_841F1C8.png b/graphics/text_window/unk_841F1C8.png Binary files differnew file mode 100644 index 000000000..5bdff868a --- /dev/null +++ b/graphics/text_window/unk_841F1C8.png 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); @@ -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 |