through bag_menu_print_cursor

This commit is contained in:
PikalaxALT
2020-01-17 22:23:20 -05:00
parent dbf3ac402d
commit 881199142c
4 changed files with 72 additions and 287 deletions
-284
View File
@@ -5,290 +5,6 @@
.text
thumb_func_start sub_81085A4
sub_81085A4: @ 81085A4
push {r4,r5,lr}
adds r5, r0, 0
lsls r1, 24
lsrs r1, 24
cmp r1, 0x1
beq _081085BA
movs r0, 0xF5
bl PlaySE
bl sub_8098580
_081085BA:
ldr r4, _08108604 @ =gUnknown_203AD10
ldr r1, [r4]
ldrb r0, [r1, 0x4]
cmp r0, 0xFF
bne _08108644
ldrb r1, [r1, 0x5]
lsls r1, 26
lsrs r1, 30
movs r0, 0x1
eors r0, r1
bl DestroyItemMenuIcon
ldr r2, [r4]
ldr r0, _08108608 @ =gUnknown_203ACFC
ldrh r1, [r0, 0x6]
adds r0, r2, 0
adds r0, 0xA
adds r0, r1
ldrb r0, [r0]
cmp r0, r5
beq _0810860C
adds r0, r1, 0x1
lsls r0, 24
lsrs r0, 24
lsls r1, r5, 16
lsrs r1, 16
bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
ldr r1, [r4]
ldrb r1, [r1, 0x5]
lsls r1, 26
lsrs r1, 30
bl CreateItemMenuIcon
b _08108618
.align 2, 0
_08108604: .4byte gUnknown_203AD10
_08108608: .4byte gUnknown_203ACFC
_0810860C:
ldr r0, _0810864C @ =0x00000177
ldrb r1, [r2, 0x5]
lsls r1, 26
lsrs r1, 30
bl CreateItemMenuIcon
_08108618:
ldr r4, _08108650 @ =gUnknown_203AD10
ldr r3, [r4]
ldrb r2, [r3, 0x5]
lsls r0, r2, 26
lsrs r0, 30
movs r1, 0x1
eors r1, r0
lsls r1, 4
movs r0, 0x31
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3, 0x5]
ldr r0, [r4]
ldrb r1, [r0, 0x5]
movs r0, 0xC0
ands r0, r1
cmp r0, 0
bne _08108644
adds r0, r5, 0
bl sub_8108818
_08108644:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810864C: .4byte 0x00000177
_08108650: .4byte gUnknown_203AD10
thumb_func_end sub_81085A4
thumb_func_start sub_8108654
sub_8108654: @ 8108654
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x14
adds r4, r1, 0
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r2, 24
lsrs r6, r2, 24
ldr r0, _08108684 @ =gUnknown_203AD10
ldr r0, [r0]
ldrb r1, [r0, 0x4]
cmp r1, 0xFF
beq _08108690
lsls r0, r4, 24
lsrs r0, 24
cmp r1, r0
bne _08108688
adds r0, r6, 0
movs r1, 0x2
bl bag_menu_print_cursor
b _08108690
.align 2, 0
_08108684: .4byte gUnknown_203AD10
_08108688:
adds r0, r6, 0
movs r1, 0xFF
bl bag_menu_print_cursor
_08108690:
movs r0, 0x2
negs r0, r0
cmp r4, r0
beq _08108752
ldr r0, _08108718 @ =gUnknown_203AD10
ldr r0, [r0]
ldr r5, _0810871C @ =gUnknown_203ACFC
ldrh r1, [r5, 0x6]
adds r0, 0xA
adds r0, r1
ldrb r0, [r0]
cmp r0, r4
beq _08108752
adds r0, r1, 0x1
lsls r0, 24
lsrs r0, 24
lsls r4, 16
lsrs r4, 16
adds r1, r4, 0
bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r7, r0, 16
ldrb r0, [r5, 0x6]
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0
bl BagGetQuantityByPocketPosition
lsls r0, 16
lsrs r4, r0, 16
ldrh r0, [r5, 0x6]
cmp r0, 0x1
beq _0810872C
adds r0, r7, 0
bl itemid_is_unique
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
bne _0810872C
ldr r0, _08108720 @ =gStringVar1
adds r1, r4, 0
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
ldr r4, _08108724 @ =gStringVar4
ldr r1, _08108728 @ =gText_TimesStrVar1
adds r0, r4, 0
bl StringExpandPlaceholders
str r6, [sp]
str r5, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0xFF
str r0, [sp, 0xC]
movs r0, 0x1
str r0, [sp, 0x10]
mov r0, r8
movs r1, 0
adds r2, r4, 0
movs r3, 0x6E
bl sub_810B8F0
b _08108752
.align 2, 0
_08108718: .4byte gUnknown_203AD10
_0810871C: .4byte gUnknown_203ACFC
_08108720: .4byte gStringVar1
_08108724: .4byte gStringVar4
_08108728: .4byte gText_TimesStrVar1
_0810872C:
ldr r0, _08108760 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08108764 @ =0x00000296
adds r0, r1
ldrh r0, [r0]
cmp r0, 0
beq _08108752
cmp r0, r7
bne _08108752
ldr r1, _08108768 @ =gUnknown_8452F7C
movs r0, 0x18
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
mov r0, r8
movs r2, 0x70
adds r3, r6, 0
bl BlitBitmapToWindow
_08108752:
add sp, 0x14
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08108760: .4byte gSaveBlock1Ptr
_08108764: .4byte 0x00000296
_08108768: .4byte gUnknown_8452F7C
thumb_func_end sub_8108654
thumb_func_start bag_menu_print_cursor_
bag_menu_print_cursor_: @ 810876C
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 bag_menu_print_cursor
pop {r4}
pop {r0}
bx r0
thumb_func_end bag_menu_print_cursor_
thumb_func_start bag_menu_print_cursor
bag_menu_print_cursor: @ 810878C
push {r4,r5,lr}
sub sp, 0x14
lsls r0, 24
lsrs r5, r0, 24
lsls r1, 24
lsrs r1, 24
cmp r1, 0xFF
bne _081087C8
movs r0, 0x2
movs r1, 0
bl GetMenuCursorDimensionByFont
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x2
movs r1, 0x1
bl GetMenuCursorDimensionByFont
lsls r0, 24
lsrs r0, 24
str r4, [sp]
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0x1
adds r3, r5, 0
bl FillWindowPixelRect
b _081087DE
_081087C8:
ldr r2, _081087E8 @ =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, 0x1
bl sub_810B8F0
_081087DE:
add sp, 0x14
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_081087E8: .4byte gFameCheckerText_ListMenuCursor
thumb_func_end bag_menu_print_cursor
thumb_func_start sub_81087EC
sub_81087EC: @ 81087EC
push {lr}
+1 -1
View File
@@ -4,7 +4,7 @@
#include "menu_helpers.h"
void sub_810B858(void);
void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 colorIdx);
void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx);
void sub_810B958(const u8 * str);
void sub_810B994(void);
u8 sub_810B9DC(u8 a0, u8 a1);
+1 -1
View File
@@ -227,7 +227,7 @@ void sub_810B858(void)
}
}
void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 colorIdx)
void sub_810B8F0(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_84530B8[colorIdx], speed, str);
}
+70 -1
View File
@@ -14,6 +14,7 @@
#include "scanline_effect.h"
#include "strings.h"
#include "constants/items.h"
#include "constants/songs.h"
struct BagMenuAlloc
{
@@ -46,10 +47,12 @@ bool8 sub_8108240(void);
u8 sub_8108388(u8 location);
bool8 sub_81083F4(void);
void sub_810842C(u8 pocket);
void sub_8108560(u8 *dest, u16 itemId);
void sub_81085A4(s32 itemIndex, bool8 onInit, struct ListMenu *list);
void sub_8108654(u8 windowId, s32 itemId, u8 y);
void sub_8108560(u8 *dest, u16 itemId);
void bag_menu_print_cursor(u8 y, u8 colorIdx);
void sub_81087EC(void);
void sub_8108818(s32 itemIndex);
void sub_8108888(void);
void sub_81088D8(void);
void sub_8108A68(void);
@@ -68,6 +71,7 @@ void sub_810B5D4(u8 taskId);
extern const struct BgTemplate gUnknown_8452CF4[2];
extern const u8 gUnknown_8452F60[];
extern const u8 gUnknown_8452F66[];
extern const u8 gUnknown_8452F7C[];
void GoToBagMenu(u8 location, u8 a1, MainCallback a2)
{
@@ -437,3 +441,68 @@ void sub_8108560(u8 *dest, u16 itemId)
StringCopy(dest, gUnknown_8452F60);
StringAppend(dest, ItemId_GetName(itemId));
}
void sub_81085A4(s32 itemIndex, bool8 onInit, struct ListMenu *list)
{
if (onInit != TRUE)
{
PlaySE(SE_BAG1);
sub_8098580();
}
if (gUnknown_203AD10->field_04 == 0xFF)
{
DestroyItemMenuIcon(gUnknown_203AD10->field_05_4 ^ 1);
if (gUnknown_203AD10->field_0A[gUnknown_203ACFC.pocket] != itemIndex)
CreateItemMenuIcon(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, itemIndex), gUnknown_203AD10->field_05_4);
else
CreateItemMenuIcon(ITEM_N_A, gUnknown_203AD10->field_05_4);
gUnknown_203AD10->field_05_4 ^= 1;
if (gUnknown_203AD10->field_05_6 == 0)
sub_8108818(itemIndex);
}
}
void sub_8108654(u8 windowId, s32 itemId, u8 y)
{
u16 bagItemId;
u16 bagItemQuantity;
if (gUnknown_203AD10->field_04 != 0xFF)
{
if (gUnknown_203AD10->field_04 == (u8)itemId)
bag_menu_print_cursor(y, 2);
else
bag_menu_print_cursor(y, 0xFF);
}
if (itemId != -2 && gUnknown_203AD10->field_0A[gUnknown_203ACFC.pocket] != itemId)
{
bagItemId = BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, itemId);
bagItemQuantity = BagGetQuantityByPocketPosition(gUnknown_203ACFC.pocket + 1, itemId);
if (gUnknown_203ACFC.pocket != POCKET_KEY_ITEMS - 1 && !itemid_is_unique(bagItemId))
{
ConvertIntToDecimalStringN(gStringVar1, bagItemQuantity, STR_CONV_MODE_RIGHT_ALIGN, 3);
StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
sub_810B8F0(windowId, 0, gStringVar4, 0x6e, y, 0, 0, 0xFF, 1);
}
else if (gSaveBlock1Ptr->registeredItem != ITEM_NONE && gSaveBlock1Ptr->registeredItem == bagItemId)
{
BlitBitmapToWindow(windowId, gUnknown_8452F7C, 0x70, y, 0x18, 0x10);
}
}
}
void bag_menu_print_cursor_(u8 taskId, u8 colorIdx)
{
bag_menu_print_cursor(ListMenuGetYCoordForPrintingArrowCursor(taskId), colorIdx);
}
void bag_menu_print_cursor(u8 y, u8 colorIdx)
{
if (colorIdx == 0xFF)
{
FillWindowPixelRect(0, PIXEL_FILL(0), 1, y, GetMenuCursorDimensionByFont(2, 0), GetMenuCursorDimensionByFont(2, 1));
}
else
{
sub_810B8F0(0, 2, gFameCheckerText_ListMenuCursor, 1, y, 0, 0, 0, colorIdx);
}
}