through sub_81090DC
This commit is contained in:
-416
@@ -5,422 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_8108DC8
|
|
||||||
sub_8108DC8: @ 8108DC8
|
|
||||||
push {r4,r5,lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r5, r0, 24
|
|
||||||
lsls r1, r5, 3
|
|
||||||
ldr r0, _08108E3C @ =gBagPockets
|
|
||||||
adds r4, r1, r0
|
|
||||||
ldr r0, [r4]
|
|
||||||
ldrb r1, [r4, 0x4]
|
|
||||||
bl BagPocketCompaction
|
|
||||||
ldr r3, _08108E40 @ =gUnknown_203AD10
|
|
||||||
ldr r0, [r3]
|
|
||||||
adds r0, 0xA
|
|
||||||
adds r0, r5
|
|
||||||
movs r1, 0
|
|
||||||
strb r1, [r0]
|
|
||||||
movs r2, 0
|
|
||||||
ldrb r0, [r4, 0x4]
|
|
||||||
cmp r2, r0
|
|
||||||
bcs _08108E1C
|
|
||||||
ldr r0, [r4]
|
|
||||||
ldrh r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08108E1C
|
|
||||||
_08108DF8:
|
|
||||||
ldr r0, [r3]
|
|
||||||
adds r0, 0xA
|
|
||||||
adds r0, r5
|
|
||||||
ldrb r1, [r0]
|
|
||||||
adds r1, 0x1
|
|
||||||
strb r1, [r0]
|
|
||||||
adds r0, r2, 0x1
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r2, r0, 16
|
|
||||||
ldrb r0, [r4, 0x4]
|
|
||||||
cmp r2, r0
|
|
||||||
bcs _08108E1C
|
|
||||||
ldr r0, [r4]
|
|
||||||
lsls r1, r2, 2
|
|
||||||
adds r1, r0
|
|
||||||
ldrh r0, [r1]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _08108DF8
|
|
||||||
_08108E1C:
|
|
||||||
ldr r0, _08108E40 @ =gUnknown_203AD10
|
|
||||||
ldr r1, [r0]
|
|
||||||
adds r0, r1, 0
|
|
||||||
adds r0, 0xA
|
|
||||||
adds r0, r5
|
|
||||||
ldrb r0, [r0]
|
|
||||||
adds r2, r0, 0x1
|
|
||||||
cmp r2, 0x6
|
|
||||||
ble _08108E44
|
|
||||||
adds r0, r1, 0
|
|
||||||
adds r0, 0xD
|
|
||||||
adds r0, r5
|
|
||||||
movs r1, 0x6
|
|
||||||
strb r1, [r0]
|
|
||||||
b _08108E4C
|
|
||||||
.align 2, 0
|
|
||||||
_08108E3C: .4byte gBagPockets
|
|
||||||
_08108E40: .4byte gUnknown_203AD10
|
|
||||||
_08108E44:
|
|
||||||
adds r0, r1, 0
|
|
||||||
adds r0, 0xD
|
|
||||||
adds r0, r5
|
|
||||||
strb r2, [r0]
|
|
||||||
_08108E4C:
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_8108DC8
|
|
||||||
|
|
||||||
thumb_func_start sub_8108E54
|
|
||||||
sub_8108E54: @ 8108E54
|
|
||||||
push {r4,lr}
|
|
||||||
movs r4, 0
|
|
||||||
_08108E58:
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl sub_8108DC8
|
|
||||||
adds r0, r4, 0x1
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r4, r0, 24
|
|
||||||
cmp r4, 0x2
|
|
||||||
bls _08108E58
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_8108E54
|
|
||||||
|
|
||||||
thumb_func_start DisplayItemMessageInBag
|
|
||||||
DisplayItemMessageInBag: @ 8108E70
|
|
||||||
push {r4-r6,lr}
|
|
||||||
mov r6, r9
|
|
||||||
mov r5, r8
|
|
||||||
push {r5,r6}
|
|
||||||
sub sp, 0x10
|
|
||||||
adds r5, r0, 0
|
|
||||||
adds r6, r1, 0
|
|
||||||
mov r8, r2
|
|
||||||
mov r9, r3
|
|
||||||
lsls r5, 24
|
|
||||||
lsrs r5, 24
|
|
||||||
lsls r6, 24
|
|
||||||
lsrs r6, 24
|
|
||||||
lsls r4, r5, 2
|
|
||||||
adds r4, r5
|
|
||||||
lsls r4, 3
|
|
||||||
ldr r0, _08108EDC @ =gTasks+0x8
|
|
||||||
adds r4, r0
|
|
||||||
movs r0, 0x5
|
|
||||||
bl sub_810BA70
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
strh r0, [r4, 0x14]
|
|
||||||
movs r1, 0x11
|
|
||||||
bl FillWindowPixelBuffer
|
|
||||||
bl GetTextSpeedSetting
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
ldrb r1, [r4, 0x14]
|
|
||||||
str r6, [sp]
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
mov r0, r8
|
|
||||||
str r0, [sp, 0x8]
|
|
||||||
mov r0, r9
|
|
||||||
str r0, [sp, 0xC]
|
|
||||||
adds r0, r5, 0
|
|
||||||
movs r2, 0x6D
|
|
||||||
movs r3, 0xD
|
|
||||||
bl DisplayMessageAndContinueTask
|
|
||||||
movs r0, 0
|
|
||||||
bl ScheduleBgCopyTilemapToVram
|
|
||||||
add sp, 0x10
|
|
||||||
pop {r3,r4}
|
|
||||||
mov r8, r3
|
|
||||||
mov r9, r4
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08108EDC: .4byte gTasks+0x8
|
|
||||||
thumb_func_end DisplayItemMessageInBag
|
|
||||||
|
|
||||||
thumb_func_start ItemMenu_SetExitCallback
|
|
||||||
ItemMenu_SetExitCallback: @ 8108EE0
|
|
||||||
ldr r1, _08108EE8 @ =gUnknown_203AD10
|
|
||||||
ldr r1, [r1]
|
|
||||||
str r0, [r1]
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_08108EE8: .4byte gUnknown_203AD10
|
|
||||||
thumb_func_end ItemMenu_SetExitCallback
|
|
||||||
|
|
||||||
thumb_func_start sub_8108EEC
|
|
||||||
sub_8108EEC: @ 8108EEC
|
|
||||||
lsls r0, 24
|
|
||||||
ldr r1, _08108F08 @ =gUnknown_203ACFC
|
|
||||||
lsrs r0, 23
|
|
||||||
adds r2, r1, 0
|
|
||||||
adds r2, 0xE
|
|
||||||
adds r2, r0, r2
|
|
||||||
adds r1, 0x8
|
|
||||||
adds r0, r1
|
|
||||||
ldrb r0, [r0]
|
|
||||||
ldrb r2, [r2]
|
|
||||||
adds r0, r2
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_08108F08: .4byte gUnknown_203ACFC
|
|
||||||
thumb_func_end sub_8108EEC
|
|
||||||
|
|
||||||
thumb_func_start sub_8108F0C
|
|
||||||
sub_8108F0C: @ 8108F0C
|
|
||||||
push {r4-r7,lr}
|
|
||||||
sub sp, 0x4
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r6, r0, 24
|
|
||||||
lsls r0, r6, 2
|
|
||||||
adds r0, r6
|
|
||||||
lsls r0, 3
|
|
||||||
ldr r1, _08108F78 @ =gTasks+0x8
|
|
||||||
adds r7, r0, r1
|
|
||||||
ldr r0, _08108F7C @ =gPaletteFade
|
|
||||||
ldrb r1, [r0, 0x7]
|
|
||||||
movs r0, 0x80
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08108F2C
|
|
||||||
b _081090C6
|
|
||||||
_08108F2C:
|
|
||||||
ldr r0, _08108F80 @ =sub_8108CFC
|
|
||||||
bl FuncIsActiveTask
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
bne _08108F3C
|
|
||||||
b _081090C6
|
|
||||||
_08108F3C:
|
|
||||||
bl sub_80BF72C
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
bne _08108F4A
|
|
||||||
b _081090C6
|
|
||||||
_08108F4A:
|
|
||||||
ldr r4, _08108F84 @ =gUnknown_203ACFC
|
|
||||||
ldrb r1, [r4, 0x6]
|
|
||||||
adds r0, r6, 0
|
|
||||||
bl sub_8109168
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _08108F8C
|
|
||||||
cmp r0, 0x2
|
|
||||||
beq _08108F94
|
|
||||||
ldr r0, _08108F88 @ =gMain
|
|
||||||
ldrh r1, [r0, 0x2E]
|
|
||||||
movs r0, 0x4
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08108FE4
|
|
||||||
adds r5, r4, 0
|
|
||||||
ldrb r0, [r5, 0x4]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _08108FE4
|
|
||||||
b _08108FA0
|
|
||||||
.align 2, 0
|
|
||||||
_08108F78: .4byte gTasks+0x8
|
|
||||||
_08108F7C: .4byte gPaletteFade
|
|
||||||
_08108F80: .4byte sub_8108CFC
|
|
||||||
_08108F84: .4byte gUnknown_203ACFC
|
|
||||||
_08108F88: .4byte gMain
|
|
||||||
_08108F8C:
|
|
||||||
movs r1, 0x1
|
|
||||||
negs r1, r1
|
|
||||||
adds r0, r6, 0
|
|
||||||
b _08108F98
|
|
||||||
_08108F94:
|
|
||||||
adds r0, r6, 0
|
|
||||||
movs r1, 0x1
|
|
||||||
_08108F98:
|
|
||||||
movs r2, 0
|
|
||||||
bl sub_81091D0
|
|
||||||
b _081090C6
|
|
||||||
_08108FA0:
|
|
||||||
ldrb r0, [r7]
|
|
||||||
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, _08108FE0 @ =gUnknown_203AD10
|
|
||||||
ldr r0, [r0]
|
|
||||||
adds r0, 0xA
|
|
||||||
ldrh r5, [r5, 0x6]
|
|
||||||
adds r0, r5
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r1, r0
|
|
||||||
beq _08108FE4
|
|
||||||
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, r6, 0
|
|
||||||
bl sub_81093B8
|
|
||||||
b _081090C6
|
|
||||||
.align 2, 0
|
|
||||||
_08108FE0: .4byte gUnknown_203AD10
|
|
||||||
_08108FE4:
|
|
||||||
ldrb r0, [r7]
|
|
||||||
bl ListMenu_ProcessInput
|
|
||||||
adds r4, r0, 0
|
|
||||||
ldrb r0, [r7]
|
|
||||||
ldr r5, _08109014 @ =gUnknown_203ACFC
|
|
||||||
ldrh r2, [r5, 0x6]
|
|
||||||
lsls r2, 1
|
|
||||||
adds r1, r5, 0
|
|
||||||
adds r1, 0xE
|
|
||||||
adds r1, r2, r1
|
|
||||||
adds r3, r5, 0
|
|
||||||
adds r3, 0x8
|
|
||||||
adds r2, r3
|
|
||||||
bl ListMenuGetScrollAndRow
|
|
||||||
movs r0, 0x2
|
|
||||||
negs r0, r0
|
|
||||||
cmp r4, r0
|
|
||||||
beq _08109018
|
|
||||||
adds r0, 0x1
|
|
||||||
cmp r4, r0
|
|
||||||
bne _08109044
|
|
||||||
b _081090C6
|
|
||||||
.align 2, 0
|
|
||||||
_08109014: .4byte gUnknown_203ACFC
|
|
||||||
_08109018:
|
|
||||||
movs r0, 0x5
|
|
||||||
bl PlaySE
|
|
||||||
ldr r1, _08109038 @ =gSpecialVar_ItemId
|
|
||||||
movs r0, 0
|
|
||||||
strh r0, [r1]
|
|
||||||
bl sub_8108CB4
|
|
||||||
ldr r1, _0810903C @ =gTasks
|
|
||||||
lsls r0, r6, 2
|
|
||||||
adds r0, r6
|
|
||||||
lsls r0, 3
|
|
||||||
adds r0, r1
|
|
||||||
ldr r1, _08109040 @ =ItemMenu_StartFadeToExitCallback
|
|
||||||
b _081090C4
|
|
||||||
.align 2, 0
|
|
||||||
_08109038: .4byte gSpecialVar_ItemId
|
|
||||||
_0810903C: .4byte gTasks
|
|
||||||
_08109040: .4byte ItemMenu_StartFadeToExitCallback
|
|
||||||
_08109044:
|
|
||||||
movs r0, 0x5
|
|
||||||
bl PlaySE
|
|
||||||
ldr r0, _08109074 @ =gUnknown_203AD10
|
|
||||||
ldr r0, [r0]
|
|
||||||
adds r0, 0xA
|
|
||||||
ldrh r1, [r5, 0x6]
|
|
||||||
adds r0, r1
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r4, r0
|
|
||||||
bne _08109084
|
|
||||||
ldr r1, _08109078 @ =gSpecialVar_ItemId
|
|
||||||
movs r0, 0
|
|
||||||
strh r0, [r1]
|
|
||||||
bl sub_8108CB4
|
|
||||||
ldr r1, _0810907C @ =gTasks
|
|
||||||
lsls r0, r6, 2
|
|
||||||
adds r0, r6
|
|
||||||
lsls r0, 3
|
|
||||||
adds r0, r1
|
|
||||||
ldr r1, _08109080 @ =ItemMenu_StartFadeToExitCallback
|
|
||||||
b _081090C4
|
|
||||||
.align 2, 0
|
|
||||||
_08109074: .4byte gUnknown_203AD10
|
|
||||||
_08109078: .4byte gSpecialVar_ItemId
|
|
||||||
_0810907C: .4byte gTasks
|
|
||||||
_08109080: .4byte ItemMenu_StartFadeToExitCallback
|
|
||||||
_08109084:
|
|
||||||
bl sub_8108978
|
|
||||||
ldrb r0, [r7]
|
|
||||||
movs r1, 0x2
|
|
||||||
bl bag_menu_print_cursor_
|
|
||||||
strh r4, [r7, 0x2]
|
|
||||||
ldrb r0, [r5, 0x6]
|
|
||||||
adds r0, 0x1
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
lsls r4, 16
|
|
||||||
lsrs r4, 16
|
|
||||||
adds r1, r4, 0
|
|
||||||
bl BagGetQuantityByPocketPosition
|
|
||||||
strh r0, [r7, 0x4]
|
|
||||||
ldrb r0, [r5, 0x6]
|
|
||||||
adds r0, 0x1
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
adds r1, r4, 0
|
|
||||||
bl BagGetItemIdByPocketPosition
|
|
||||||
ldr r1, _081090D0 @ =gSpecialVar_ItemId
|
|
||||||
strh r0, [r1]
|
|
||||||
ldr r1, _081090D4 @ =gTasks
|
|
||||||
lsls r0, r6, 2
|
|
||||||
adds r0, r6
|
|
||||||
lsls r0, 3
|
|
||||||
adds r0, r1
|
|
||||||
ldr r1, _081090D8 @ =sub_81090DC
|
|
||||||
_081090C4:
|
|
||||||
str r1, [r0]
|
|
||||||
_081090C6:
|
|
||||||
add sp, 0x4
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_081090D0: .4byte gSpecialVar_ItemId
|
|
||||||
_081090D4: .4byte gTasks
|
|
||||||
_081090D8: .4byte sub_81090DC
|
|
||||||
thumb_func_end sub_8108F0C
|
|
||||||
|
|
||||||
thumb_func_start sub_81090DC
|
|
||||||
sub_81090DC: @ 81090DC
|
|
||||||
push {r4,lr}
|
|
||||||
adds r4, r0, 0
|
|
||||||
lsls r4, 24
|
|
||||||
lsrs r4, 24
|
|
||||||
movs r0, 0x1
|
|
||||||
bl sub_8109140
|
|
||||||
ldr r1, _08109104 @ =gUnknown_8452F34
|
|
||||||
ldr r0, _08109108 @ =gUnknown_203ACFC
|
|
||||||
ldrb r0, [r0, 0x4]
|
|
||||||
lsls r0, 2
|
|
||||||
adds r0, r1
|
|
||||||
ldr r1, [r0]
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl _call_via_r1
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08109104: .4byte gUnknown_8452F34
|
|
||||||
_08109108: .4byte gUnknown_203ACFC
|
|
||||||
thumb_func_end sub_81090DC
|
|
||||||
|
|
||||||
thumb_func_start sub_810910C
|
thumb_func_start sub_810910C
|
||||||
sub_810910C: @ 810910C
|
sub_810910C: @ 810910C
|
||||||
push {r4,lr}
|
push {r4,lr}
|
||||||
|
|||||||
+1
-1
@@ -34,7 +34,7 @@ void MoveItemSlotInList(struct ItemSlot * itemSlots_, u32 from, u32 to_);
|
|||||||
void ItemMenu_StartFadeToExitCallback(u8 taskId);
|
void ItemMenu_StartFadeToExitCallback(u8 taskId);
|
||||||
void sub_8108CB4(void);
|
void sub_8108CB4(void);
|
||||||
void ItemMenu_SetExitCallback(void (*)(void));
|
void ItemMenu_SetExitCallback(void (*)(void));
|
||||||
void DisplayItemMessageInBag(u8 taskId, u8 bgId, const u8 * string, TaskFunc followUpFunc);
|
void DisplayItemMessageInBag(u8 taskId, u8 fontId, const u8 * string, TaskFunc followUpFunc);
|
||||||
void sub_810A1F8(u8 taskId);
|
void sub_810A1F8(u8 taskId);
|
||||||
void sub_8107ECC(void);
|
void sub_8107ECC(void);
|
||||||
void sub_810AF74(void);
|
void sub_810AF74(void);
|
||||||
|
|||||||
+136
-4
@@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
struct BagMenuAlloc
|
struct BagMenuAlloc
|
||||||
{
|
{
|
||||||
MainCallback field_00;
|
MainCallback exitCB;
|
||||||
u8 field_04;
|
u8 field_04;
|
||||||
u8 field_05_0:4;
|
u8 field_05_0:4;
|
||||||
u8 itemMenuIcon:2;
|
u8 itemMenuIcon:2;
|
||||||
@@ -68,12 +68,26 @@ void sub_8108CFC(u8 taskId);
|
|||||||
void sub_8108C10(void);
|
void sub_8108C10(void);
|
||||||
void sub_8108E54(void);
|
void sub_8108E54(void);
|
||||||
void sub_8108F0C(u8 taskId);
|
void sub_8108F0C(u8 taskId);
|
||||||
|
void sub_81090DC(u8 taskId);
|
||||||
|
void sub_8109140(u8 a0);
|
||||||
|
u8 sub_8109168(u8 taskId, u8 pocketId);
|
||||||
|
void sub_81091D0(u8 taskId, s16 itemIndex, u8 a2);
|
||||||
|
void sub_81093B8(u8 taskId, s16 itemIndex);
|
||||||
|
void sub_8109BB8(u8 taskId);
|
||||||
void Task_ItemMenuAction_Use(u8 taskId);
|
void Task_ItemMenuAction_Use(u8 taskId);
|
||||||
void Task_ItemMenuAction_Toss(u8 taskId);
|
void Task_ItemMenuAction_Toss(u8 taskId);
|
||||||
void Task_ItemMenuAction_ToggleSelect(u8 taskId);
|
void Task_ItemMenuAction_ToggleSelect(u8 taskId);
|
||||||
void Task_ItemMenuAction_Give(u8 taskId);
|
void Task_ItemMenuAction_Give(u8 taskId);
|
||||||
void Task_ItemMenuAction_Cancel(u8 taskId);
|
void Task_ItemMenuAction_Cancel(u8 taskId);
|
||||||
|
void sub_8109DB0(u8 taskId);
|
||||||
|
void sub_8109EA8(u8 taskId);
|
||||||
void sub_810A324(u8 taskId);
|
void sub_810A324(u8 taskId);
|
||||||
|
void sub_810A370(u8 taskId);
|
||||||
|
void sub_810A468(u8 taskId);
|
||||||
|
void sub_810A568(u8 taskId);
|
||||||
|
void sub_810A720(u8 taskId);
|
||||||
|
void sub_810A940(u8 taskId);
|
||||||
|
void sub_810AB40(u8 taskId);
|
||||||
bool8 sub_810ADAC(void);
|
bool8 sub_810ADAC(void);
|
||||||
void sub_810AF9C(u8 taskId);
|
void sub_810AF9C(u8 taskId);
|
||||||
void sub_810B1D4(u8 taskId);
|
void sub_810B1D4(u8 taskId);
|
||||||
@@ -137,6 +151,7 @@ const struct MenuAction gUnknown_8452EB8[] = {
|
|||||||
[ITEMMENUACTION_DUMMY] = {gString_Dummy, {.void_u8 = NULL}}
|
[ITEMMENUACTION_DUMMY] = {gString_Dummy, {.void_u8 = NULL}}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern const TaskFunc gUnknown_8452F34[];
|
||||||
extern const u8 gUnknown_8452F60[];
|
extern const u8 gUnknown_8452F60[];
|
||||||
extern const u8 gUnknown_8452F66[];
|
extern const u8 gUnknown_8452F66[];
|
||||||
extern const struct ScrollArrowsTemplate gUnknown_8452F6C;
|
extern const struct ScrollArrowsTemplate gUnknown_8452F6C;
|
||||||
@@ -156,7 +171,7 @@ void GoToBagMenu(u8 location, u8 a1, MainCallback a2)
|
|||||||
gUnknown_203ACFC.location = location;
|
gUnknown_203ACFC.location = location;
|
||||||
if (a2 != NULL)
|
if (a2 != NULL)
|
||||||
gUnknown_203ACFC.bagCallback = a2;
|
gUnknown_203ACFC.bagCallback = a2;
|
||||||
gUnknown_203AD10->field_00 = NULL;
|
gUnknown_203AD10->exitCB = NULL;
|
||||||
gUnknown_203AD10->field_04 = 0xFF;
|
gUnknown_203AD10->field_04 = 0xFF;
|
||||||
gUnknown_203AD10->itemMenuIcon = 0;
|
gUnknown_203AD10->itemMenuIcon = 0;
|
||||||
gUnknown_203AD10->field_05_6 = 0;
|
gUnknown_203AD10->field_05_6 = 0;
|
||||||
@@ -739,8 +754,8 @@ void sub_8108B8C(u8 taskId)
|
|||||||
if (!gPaletteFade.active && FuncIsActiveTask(sub_8108CFC) != TRUE)
|
if (!gPaletteFade.active && FuncIsActiveTask(sub_8108CFC) != TRUE)
|
||||||
{
|
{
|
||||||
DestroyListMenuTask(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]);
|
DestroyListMenuTask(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]);
|
||||||
if (gUnknown_203AD10->field_00 != NULL)
|
if (gUnknown_203AD10->exitCB != NULL)
|
||||||
SetMainCallback2(gUnknown_203AD10->field_00);
|
SetMainCallback2(gUnknown_203AD10->exitCB);
|
||||||
else
|
else
|
||||||
SetMainCallback2(gUnknown_203ACFC.bagCallback);
|
SetMainCallback2(gUnknown_203ACFC.bagCallback);
|
||||||
sub_8108978();
|
sub_8108978();
|
||||||
@@ -826,3 +841,120 @@ void MoveItemSlotInList(struct ItemSlot * itemSlots_, u32 from, u32 to_)
|
|||||||
itemSlots[to] = firstSlot;
|
itemSlots[to] = firstSlot;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sub_8108DC8(u8 pocketId)
|
||||||
|
{
|
||||||
|
u16 i;
|
||||||
|
struct BagPocket * pocket = &gBagPockets[pocketId];
|
||||||
|
BagPocketCompaction(pocket->itemSlots, pocket->capacity);
|
||||||
|
gUnknown_203AD10->nItems[pocketId] = 0;
|
||||||
|
for (i = 0; i < pocket->capacity; i++)
|
||||||
|
{
|
||||||
|
if (pocket->itemSlots[i].itemId == ITEM_NONE)
|
||||||
|
break;
|
||||||
|
gUnknown_203AD10->nItems[pocketId]++;
|
||||||
|
}
|
||||||
|
if (gUnknown_203AD10->nItems[pocketId] + 1 > 6)
|
||||||
|
gUnknown_203AD10->maxShowed[pocketId] = 6;
|
||||||
|
else
|
||||||
|
gUnknown_203AD10->maxShowed[pocketId] = gUnknown_203AD10->nItems[pocketId] + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8108E54(void)
|
||||||
|
{
|
||||||
|
u8 i;
|
||||||
|
for (i = 0; i < 3; i++)
|
||||||
|
sub_8108DC8(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
void DisplayItemMessageInBag(u8 taskId, u8 fontId, const u8 * string, TaskFunc followUpFunc)
|
||||||
|
{
|
||||||
|
s16 *data = gTasks[taskId].data;
|
||||||
|
data[10] = sub_810BA70(5);
|
||||||
|
FillWindowPixelBuffer(data[10], PIXEL_FILL(1));
|
||||||
|
DisplayMessageAndContinueTask(taskId, data[10], 0x06D, 0x0D, fontId, GetTextSpeedSetting(), string, followUpFunc);
|
||||||
|
ScheduleBgCopyTilemapToVram(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ItemMenu_SetExitCallback(MainCallback cb)
|
||||||
|
{
|
||||||
|
gUnknown_203AD10->exitCB = cb;
|
||||||
|
}
|
||||||
|
|
||||||
|
u8 sub_8108EEC(u8 a0)
|
||||||
|
{
|
||||||
|
return gUnknown_203ACFC.cursorPos[a0] + gUnknown_203ACFC.itemsAbove[a0];
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8108F0C(u8 taskId)
|
||||||
|
{
|
||||||
|
s16 *data = gTasks[taskId].data;
|
||||||
|
u16 cursorPos;
|
||||||
|
u16 itemsAbove;
|
||||||
|
s32 input;
|
||||||
|
|
||||||
|
if (gPaletteFade.active)
|
||||||
|
return;
|
||||||
|
if (FuncIsActiveTask(sub_8108CFC) == TRUE)
|
||||||
|
return;
|
||||||
|
if ((u8)sub_80BF72C() == TRUE)
|
||||||
|
return;
|
||||||
|
switch (sub_8109168(taskId, gUnknown_203ACFC.pocket))
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
sub_81091D0(taskId, -1, 0);
|
||||||
|
return;
|
||||||
|
case 2:
|
||||||
|
sub_81091D0(taskId, 1, 0);
|
||||||
|
return;
|
||||||
|
default:
|
||||||
|
if (JOY_NEW(SELECT_BUTTON) && gUnknown_203ACFC.location == 0)
|
||||||
|
{
|
||||||
|
ListMenuGetScrollAndRow(data[0], &cursorPos, &itemsAbove);
|
||||||
|
if (cursorPos + itemsAbove != gUnknown_203AD10->nItems[gUnknown_203ACFC.pocket])
|
||||||
|
{
|
||||||
|
PlaySE(SE_SELECT);
|
||||||
|
sub_81093B8(taskId, cursorPos + itemsAbove);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
input = ListMenu_ProcessInput(data[0]);
|
||||||
|
ListMenuGetScrollAndRow(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]);
|
||||||
|
switch (input)
|
||||||
|
{
|
||||||
|
case -1:
|
||||||
|
return;
|
||||||
|
case -2:
|
||||||
|
PlaySE(SE_SELECT);
|
||||||
|
gSpecialVar_ItemId = ITEM_NONE;
|
||||||
|
sub_8108CB4();
|
||||||
|
gTasks[taskId].func = ItemMenu_StartFadeToExitCallback;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
PlaySE(SE_SELECT);
|
||||||
|
if (input == gUnknown_203AD10->nItems[gUnknown_203ACFC.pocket])
|
||||||
|
{
|
||||||
|
gSpecialVar_ItemId = ITEM_NONE;
|
||||||
|
sub_8108CB4();
|
||||||
|
gTasks[taskId].func = ItemMenu_StartFadeToExitCallback;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sub_8108978();
|
||||||
|
bag_menu_print_cursor_(data[0], 2);
|
||||||
|
data[1] = input;
|
||||||
|
data[2] = BagGetQuantityByPocketPosition(gUnknown_203ACFC.pocket + 1, input);
|
||||||
|
gSpecialVar_ItemId = BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, input);
|
||||||
|
gTasks[taskId].func = sub_81090DC;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_81090DC(u8 taskId)
|
||||||
|
{
|
||||||
|
sub_8109140(1);
|
||||||
|
gUnknown_8452F34[gUnknown_203ACFC.location](taskId);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user