through MoveItemSlotInList

This commit is contained in:
PikalaxALT
2020-01-18 11:52:32 -05:00
parent 1c3f865acf
commit dfcfe6d8e1
8 changed files with 186 additions and 361 deletions
+18 -307
View File
@@ -5,295 +5,6 @@
.text
thumb_func_start sub_8108B8C
sub_8108B8C: @ 8108B8C
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, _08108BE0 @ =gTasks+0x8
adds r4, r0, r1
ldr r0, _08108BE4 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08108C08
ldr r0, _08108BE8 @ =sub_8108CFC
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08108C08
ldrb r0, [r4]
ldr r4, _08108BEC @ =gUnknown_203ACFC
ldrh r2, [r4, 0x6]
lsls r2, 1
adds r1, r4, 0
adds r1, 0xE
adds r1, r2, r1
adds r3, r4, 0
adds r3, 0x8
adds r2, r3
bl DestroyListMenuTask
ldr r0, _08108BF0 @ =gUnknown_203AD10
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0
beq _08108BF4
bl SetMainCallback2
b _08108BFA
.align 2, 0
_08108BE0: .4byte gTasks+0x8
_08108BE4: .4byte gPaletteFade
_08108BE8: .4byte sub_8108CFC
_08108BEC: .4byte gUnknown_203ACFC
_08108BF0: .4byte gUnknown_203AD10
_08108BF4:
ldr r0, [r4]
bl SetMainCallback2
_08108BFA:
bl sub_8108978
bl sub_8108B04
adds r0, r5, 0
bl DestroyTask
_08108C08:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8108B8C
thumb_func_start sub_8108C10
sub_8108C10: @ 8108C10
push {r4,r5,lr}
sub sp, 0x8
movs r5, 0
add r0, sp, 0x4
strh r5, [r0]
movs r1, 0
movs r2, 0x2
bl LoadPalette
movs r0, 0x48
movs r1, 0
bl SetGpuReg
movs r0, 0x4A
movs r1, 0x3F
bl SetGpuReg
movs r4, 0x1
negs r4, r4
adds r0, r4, 0
movs r1, 0x10
movs r2, 0
bl BlendPalettes
str r5, [sp]
adds r0, r4, 0
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldr r4, _08108C68 @ =gUnknown_203ACFC
ldrb r0, [r4, 0x5]
cmp r0, 0x1
bne _08108C6C
movs r0, 0x40
movs r1, 0xF0
bl SetGpuReg
movs r0, 0x44
movs r1, 0
bl SetGpuReg
b _08108C9E
.align 2, 0
_08108C68: .4byte gUnknown_203ACFC
_08108C6C:
movs r0, 0x40
movs r1, 0xF0
bl SetGpuReg
movs r0, 0x44
movs r1, 0xA0
bl SetGpuReg
ldr r0, _08108CA8 @ =sub_8108CFC
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _08108CAC @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
movs r0, 0xC0
strh r0, [r1, 0x8]
ldr r0, _08108CB0 @ =0x0000fff0
strh r0, [r1, 0xA]
movs r0, 0x1
strb r0, [r4, 0x5]
_08108C9E:
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08108CA8: .4byte sub_8108CFC
_08108CAC: .4byte gTasks
_08108CB0: .4byte 0x0000fff0
thumb_func_end sub_8108C10
thumb_func_start sub_8108CB4
sub_8108CB4: @ 8108CB4
push {lr}
ldr r0, _08108CE0 @ =sub_8108CFC
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _08108CE4 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
movs r2, 0
ldr r0, _08108CE8 @ =0x0000fff0
strh r0, [r1, 0x8]
movs r0, 0x10
strh r0, [r1, 0xA]
ldr r0, _08108CEC @ =gUnknown_203ACFC
strb r2, [r0, 0x5]
pop {r0}
bx r0
.align 2, 0
_08108CE0: .4byte sub_8108CFC
_08108CE4: .4byte gTasks
_08108CE8: .4byte 0x0000fff0
_08108CEC: .4byte gUnknown_203ACFC
thumb_func_end sub_8108CB4
thumb_func_start CB2_SetUpReshowBattleScreenAfterMenu
CB2_SetUpReshowBattleScreenAfterMenu: @ 8108CF0
ldr r1, _08108CF8 @ =gUnknown_203ACFC
movs r0, 0
strb r0, [r1, 0x5]
bx lr
.align 2, 0
_08108CF8: .4byte gUnknown_203ACFC
thumb_func_end CB2_SetUpReshowBattleScreenAfterMenu
thumb_func_start sub_8108CFC
sub_8108CFC: @ 8108CFC
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, _08108D28 @ =gTasks+0x8
adds r4, r0, r1
ldrh r0, [r4, 0x2]
ldrh r1, [r4]
adds r0, r1
strh r0, [r4]
lsls r0, 16
asrs r0, 16
cmp r0, 0xA0
ble _08108D2C
movs r0, 0x44
movs r1, 0xA0
bl SetGpuReg
b _08108D34
.align 2, 0
_08108D28: .4byte gTasks+0x8
_08108D2C:
ldrh r1, [r4]
movs r0, 0x44
bl SetGpuReg
_08108D34:
movs r2, 0x2
ldrsh r1, [r4, r2]
cmp r1, 0x10
bne _08108D44
movs r2, 0
ldrsh r0, [r4, r2]
cmp r0, 0xA0
beq _08108D54
_08108D44:
movs r0, 0x10
negs r0, r0
cmp r1, r0
bne _08108D5A
movs r1, 0
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08108D5A
_08108D54:
adds r0, r5, 0
bl DestroyTask
_08108D5A:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8108CFC
thumb_func_start ItemMenu_MoveItemSlotToNewPositionInArray
ItemMenu_MoveItemSlotToNewPositionInArray: @ 8108D60
push {r4-r6,lr}
adds r4, r0, 0
adds r3, r2, 0
cmp r1, r3
beq _08108DC0
lsls r0, r1, 2
adds r0, r4
ldr r6, [r0]
cmp r3, r1
bls _08108D98
subs r3, 0x1
lsls r1, 16
lsls r0, r3, 16
asrs r2, r0, 16
cmp r1, r0
bge _08108DBA
adds r5, r2, 0
_08108D82:
asrs r2, r1, 16
lsls r0, r2, 2
adds r0, r4
ldr r1, [r0, 0x4]
str r1, [r0]
adds r2, 0x1
lsls r1, r2, 16
asrs r0, r1, 16
cmp r0, r5
blt _08108D82
b _08108DBA
_08108D98:
lsls r1, 16
lsls r0, r3, 16
asrs r2, r0, 16
cmp r1, r0
ble _08108DBA
adds r5, r2, 0
_08108DA4:
asrs r2, r1, 16
lsls r1, r2, 2
adds r1, r4
subs r0, r1, 0x4
ldr r0, [r0]
str r0, [r1]
subs r2, 0x1
lsls r1, r2, 16
asrs r0, r1, 16
cmp r0, r5
bgt _08108DA4
_08108DBA:
lsls r0, r3, 2
adds r0, r4
str r6, [r0]
_08108DC0:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end ItemMenu_MoveItemSlotToNewPositionInArray
thumb_func_start sub_8108DC8
sub_8108DC8: @ 8108DC8
push {r4,r5,lr}
@@ -1306,7 +1017,7 @@ _081095E8:
ldr r0, [r0]
adds r1, r2, 0
adds r2, r5, 0
bl ItemMenu_MoveItemSlotToNewPositionInArray
bl MoveItemSlotInList
ldrb r0, [r6]
ldrh r2, [r4, 0x6]
lsls r2, 1
@@ -1641,7 +1352,7 @@ _081098AC:
_081098B6:
ldr r2, _081098D4 @ =gSpecialVar_ItemId
ldrh r1, [r2]
ldr r0, _081098D8 @ =0x0000016d
ldr r0, _081098D8 @ =0x0000016d @ ITEM_BERRY_POUCH
cmp r1, r0
bne _081098E8
ldr r1, _081098DC @ =gUnknown_203AD20
@@ -2068,8 +1779,8 @@ _08109C48: .4byte gUnknown_8452EB8
_08109C4C: .4byte gUnknown_203AD24
thumb_func_end sub_8109BE4
thumb_func_start sub_8109C50
sub_8109C50: @ 8109C50
thumb_func_start Task_ItemMenuAction_Use
Task_ItemMenuAction_Use: @ 8109C50
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
@@ -2116,10 +1827,10 @@ _08109CB4:
bx r0
.align 2, 0
_08109CBC: .4byte gSpecialVar_ItemId
thumb_func_end sub_8109C50
thumb_func_end Task_ItemMenuAction_Use
thumb_func_start sub_8109CC0
sub_8109CC0: @ 8109CC0
thumb_func_start Task_ItemMenuAction_Toss
Task_ItemMenuAction_Toss: @ 8109CC0
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
@@ -2171,7 +1882,7 @@ _08109D2A:
.align 2, 0
_08109D30: .4byte gText_TossOutHowManyStrVar1s
_08109D34: .4byte sub_8109DEC
thumb_func_end sub_8109CC0
thumb_func_end Task_ItemMenuAction_Toss
thumb_func_start sub_8109D38
sub_8109D38: @ 8109D38
@@ -2489,8 +2200,8 @@ _08109FF8: .4byte gUnknown_203ACFC
_08109FFC: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_8109F44
thumb_func_start sub_810A000
sub_810A000: @ 810A000
thumb_func_start Task_ItemMenuAction_ToggleSelect
Task_ItemMenuAction_ToggleSelect: @ 810A000
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -2557,7 +2268,7 @@ _0810A052:
movs r1, 0x1
bl CopyWindowToVram
mov r0, r8
bl sub_810A2DC
bl Task_ItemMenuAction_Cancel
pop {r3}
mov r8, r3
pop {r4-r7}
@@ -2566,10 +2277,10 @@ _0810A052:
.align 2, 0
_0810A0A0: .4byte gUnknown_203ACFC
_0810A0A4: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_810A000
thumb_func_end Task_ItemMenuAction_ToggleSelect
thumb_func_start sub_810A0A8
sub_810A0A8: @ 810A0A8
thumb_func_start Task_ItemMenuAction_Give
Task_ItemMenuAction_Give: @ 810A0A8
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -2655,7 +2366,7 @@ _0810A166:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_810A0A8
thumb_func_end Task_ItemMenuAction_Give
thumb_func_start sub_810A170
sub_810A170: @ 810A170
@@ -2831,8 +2542,8 @@ sub_810A288: @ 810A288
_0810A2D8: .4byte gTasks+0x8
thumb_func_end sub_810A288
thumb_func_start sub_810A2DC
sub_810A2DC: @ 810A2DC
thumb_func_start Task_ItemMenuAction_Cancel
Task_ItemMenuAction_Cancel: @ 810A2DC
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
@@ -2862,7 +2573,7 @@ sub_810A2DC: @ 810A2DC
bx r0
.align 2, 0
_0810A320: .4byte gTasks
thumb_func_end sub_810A2DC
thumb_func_end Task_ItemMenuAction_Cancel
thumb_func_start sub_810A324
sub_810A324: @ 810A324
+1
View File
@@ -1,6 +1,7 @@
#include "constants/region_map.h"
#include "constants/flags.h"
#include "constants/moves.h"
#include "constants/item_menu.h"
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
+8 -8
View File
@@ -411,7 +411,7 @@ gOtherText_Use::
gOtherText_Toss::
.string "TOSS$"
gUnknown_84161A9::
gOtherText_Register::
.string "REGISTER$"
gOtherText_Give::
@@ -420,7 +420,7 @@ gOtherText_Give::
gUnknown_84161B7::
.string "$"
gUnknown_84161BC::
gOtherText_Walk::
.string "WALK$"
gFameCheckerText_Cancel:: @ 84161C1
@@ -447,16 +447,16 @@ gText_Take::
gText_Store::
.string "STORE$"
gUnknown_84161E9::
gOtherText_Check::
.string "CHECK$"
gUnknown_84161EF:: @ 84161EF
.string "NONE$"
gUnknown_84161F4::
gOtherText_Open::
.string "OPEN$"
gUnknown_84161F9::
gOtherText_Deselect::
.string "DESELECT$"
gUnknown_8416202:: @ 8416202
@@ -555,13 +555,13 @@ gUnknown_84162BD:: @ 84162BD
gText_Coins:: @ 84162C4
.string "{STR_VAR_1} COINS$"
gUnknown_84162CD:: @ 0x84162CD
gText_Items2:: @ 0x84162CD
.string "ITEMS$"
gUnknown_84162D3:: @ 0x84162D3
gText_PokeBalls2:: @ 0x84162D3
.string "POKé BALLS$"
gUnknown_84162DE:: @ 0x84162DE
gText_KeyItems2:: @ 0x84162DE
.string "KEY ITEMS$"
gText_DepositItem:: @ 84162E8
+17
View File
@@ -0,0 +1,17 @@
#ifndef GUARD_CONSTANTS_ITEM_MENU_H
#define GUARD_CONSTANTS_ITEM_MENU_H
#define ITEMMENUACTION_USE 0
#define ITEMMENUACTION_TOSS 1
#define ITEMMENUACTION_REGISTER 2
#define ITEMMENUACTION_GIVE 3
#define ITEMMENUACTION_CANCEL 4
#define ITEMMENUACTION_BATTLE_USE 5
#define ITEMMENUACTION_CHECK 6
#define ITEMMENUACTION_OPEN 7
#define ITEMMENUACTION_OPEN_BERRIES 8
#define ITEMMENUACTION_WALK 9
#define ITEMMENUACTION_DESELECT 10
#define ITEMMENUACTION_DUMMY 11
#endif //GUARD_CONSTANTS_ITEM_MENU_H
+2 -1
View File
@@ -3,6 +3,7 @@
#include "global.h"
#include "task.h"
#include "constants/item_menu.h"
// Exported type declarations
@@ -29,7 +30,7 @@ void CB2_SetUpReshowBattleScreenAfterMenu(void);
void sub_81089BC(void);
void sub_810B108(u8);
void CB2_BagMenuFromStartMenu(void);
void ItemMenu_MoveItemSlotToNewPositionInArray(struct ItemSlot * slots, int pos1, int pos2);
void MoveItemSlotInList(struct ItemSlot * itemSlots_, u32 from, u32 to_);
void ItemMenu_StartFadeToExitCallback(u8 taskId);
void sub_8108CB4(void);
void ItemMenu_SetExitCallback(void (*)(void));
+8 -8
View File
@@ -1039,14 +1039,14 @@ extern const u8 gText_SaveFailedScreen_BackupMemoryDamaged[];
extern const u8 gText_SaveFailedScreen_SaveCompleted[];
// item_menu
extern const u8 gUnknown_84161A9[];
extern const u8 gUnknown_84161BC[];
extern const u8 gUnknown_84161E9[];
extern const u8 gUnknown_84161F4[];
extern const u8 gUnknown_84161F9[];
extern const u8 gUnknown_84162CD[];
extern const u8 gUnknown_84162D3[];
extern const u8 gUnknown_84162DE[];
extern const u8 gOtherText_Register[];
extern const u8 gOtherText_Walk[];
extern const u8 gOtherText_Check[];
extern const u8 gOtherText_Open[];
extern const u8 gOtherText_Deselect[];
extern const u8 gText_Items2[];
extern const u8 gText_PokeBalls2[];
extern const u8 gText_KeyItems2[];
extern const u8 gUnknown_84162F5[];
#endif //GUARD_STRINGS_H
+131 -36
View File
@@ -22,7 +22,7 @@
struct BagMenuAlloc
{
u32 field_00;
MainCallback field_00;
u8 field_04;
u8 field_05_0:4;
u8 itemMenuIcon:2;
@@ -64,14 +64,15 @@ void sub_8108A68(void);
void sub_8108A84(void);
void sub_8108B04(void);
void sub_8108B8C(u8 taskId);
void sub_8108CFC(u8 taskId);
void sub_8108C10(void);
void sub_8108E54(void);
void sub_8108F0C(u8 taskId);
void sub_8109C50(u8 taskId);
void sub_8109CC0(u8 taskId);
void sub_810A000(u8 taskId);
void sub_810A0A8(u8 taskId);
void sub_810A2DC(u8 taskId);
void Task_ItemMenuAction_Use(u8 taskId);
void Task_ItemMenuAction_Toss(u8 taskId);
void Task_ItemMenuAction_ToggleSelect(u8 taskId);
void Task_ItemMenuAction_Give(u8 taskId);
void Task_ItemMenuAction_Cancel(u8 taskId);
void sub_810A324(u8 taskId);
bool8 sub_810ADAC(void);
void sub_810AF9C(u8 taskId);
@@ -100,40 +101,40 @@ const struct BgTemplate gUnknown_8452CF4[2] = {
}
};
const u8 *const gUnknown_8452CFC[] = {
gUnknown_84162CD,
gUnknown_84162DE,
gUnknown_84162D3
const u8 *const sPocketNames[] = {
gText_Items2,
gText_KeyItems2,
gText_PokeBalls2
};
const u16 gUnknown_8452D08[][18] = {
INCBIN_U16("graphics/item_menu/bagmap_0.bin"),
INCBIN_U16("graphics/item_menu/bagmap_1.bin"),
INCBIN_U16("graphics/item_menu/bagmap_2.bin"),
INCBIN_U16("graphics/item_menu/bagmap_3.bin"),
INCBIN_U16("graphics/item_menu/bagmap_4.bin"),
INCBIN_U16("graphics/item_menu/bagmap_5.bin"),
INCBIN_U16("graphics/item_menu/bagmap_6.bin"),
INCBIN_U16("graphics/item_menu/bagmap_7.bin"),
INCBIN_U16("graphics/item_menu/bagmap_8.bin"),
INCBIN_U16("graphics/item_menu/bagmap_9.bin"),
INCBIN_U16("graphics/item_menu/bagmap_A.bin"),
INCBIN_U16("graphics/item_menu/bagmap_B.bin")
[ITEMMENUACTION_USE] = INCBIN_U16("graphics/item_menu/bagmap_0.bin"),
[ITEMMENUACTION_TOSS] = INCBIN_U16("graphics/item_menu/bagmap_1.bin"),
[ITEMMENUACTION_REGISTER] = INCBIN_U16("graphics/item_menu/bagmap_2.bin"),
[ITEMMENUACTION_GIVE] = INCBIN_U16("graphics/item_menu/bagmap_3.bin"),
[ITEMMENUACTION_CANCEL] = INCBIN_U16("graphics/item_menu/bagmap_4.bin"),
[ITEMMENUACTION_BATTLE_USE] = INCBIN_U16("graphics/item_menu/bagmap_5.bin"),
[ITEMMENUACTION_CHECK] = INCBIN_U16("graphics/item_menu/bagmap_6.bin"),
[ITEMMENUACTION_OPEN] = INCBIN_U16("graphics/item_menu/bagmap_7.bin"),
[ITEMMENUACTION_OPEN_BERRIES] = INCBIN_U16("graphics/item_menu/bagmap_8.bin"),
[ITEMMENUACTION_WALK] = INCBIN_U16("graphics/item_menu/bagmap_9.bin"),
[ITEMMENUACTION_DESELECT] = INCBIN_U16("graphics/item_menu/bagmap_A.bin"),
[ITEMMENUACTION_DUMMY] = INCBIN_U16("graphics/item_menu/bagmap_B.bin")
};
const struct MenuAction gUnknown_8452EB8[] = {
{gOtherText_Use, {.void_u8 = sub_8109C50}},
{gOtherText_Toss, {.void_u8 = sub_8109CC0}},
{gUnknown_84161A9, {.void_u8 = sub_810A000}},
{gOtherText_Give, {.void_u8 = sub_810A0A8}},
{gFameCheckerText_Cancel, {.void_u8 = sub_810A2DC}},
{gOtherText_Use, {.void_u8 = sub_810A324}},
{gUnknown_84161E9, {.void_u8 = sub_8109C50}},
{gUnknown_84161F4, {.void_u8 = sub_8109C50}},
{gUnknown_84161F4, {.void_u8 = sub_810A324}},
{gUnknown_84161BC, {.void_u8 = sub_8109C50}},
{gUnknown_84161F9, {.void_u8 = sub_810A000}},
{gString_Dummy, {.void_u8 = NULL}}
[ITEMMENUACTION_USE] = {gOtherText_Use, {.void_u8 = Task_ItemMenuAction_Use}},
[ITEMMENUACTION_TOSS] = {gOtherText_Toss, {.void_u8 = Task_ItemMenuAction_Toss}},
[ITEMMENUACTION_REGISTER] = {gOtherText_Register, {.void_u8 = Task_ItemMenuAction_ToggleSelect}},
[ITEMMENUACTION_GIVE] = {gOtherText_Give, {.void_u8 = Task_ItemMenuAction_Give}},
[ITEMMENUACTION_CANCEL] = {gFameCheckerText_Cancel, {.void_u8 = Task_ItemMenuAction_Cancel}},
[ITEMMENUACTION_BATTLE_USE] = {gOtherText_Use, {.void_u8 = sub_810A324}},
[ITEMMENUACTION_CHECK] = {gOtherText_Check, {.void_u8 = Task_ItemMenuAction_Use}},
[ITEMMENUACTION_OPEN] = {gOtherText_Open, {.void_u8 = Task_ItemMenuAction_Use}},
[ITEMMENUACTION_OPEN_BERRIES] = {gOtherText_Open, {.void_u8 = sub_810A324}},
[ITEMMENUACTION_WALK] = {gOtherText_Walk, {.void_u8 = Task_ItemMenuAction_Use}},
[ITEMMENUACTION_DESELECT] = {gOtherText_Deselect, {.void_u8 = Task_ItemMenuAction_ToggleSelect}},
[ITEMMENUACTION_DUMMY] = {gString_Dummy, {.void_u8 = NULL}}
};
extern const u8 gUnknown_8452F60[];
@@ -155,7 +156,7 @@ void GoToBagMenu(u8 location, u8 a1, MainCallback a2)
gUnknown_203ACFC.location = location;
if (a2 != NULL)
gUnknown_203ACFC.bagCallback = a2;
gUnknown_203AD10->field_00 = 0;
gUnknown_203AD10->field_00 = NULL;
gUnknown_203AD10->field_04 = 0xFF;
gUnknown_203AD10->itemMenuIcon = 0;
gUnknown_203AD10->field_05_6 = 0;
@@ -578,7 +579,7 @@ void bag_menu_print_cursor(u8 y, u8 colorIdx)
void sub_81087EC(void)
{
FillWindowPixelBuffer(2, PIXEL_FILL(0));
sub_810B958(gUnknown_8452CFC[gUnknown_203ACFC.pocket], gUnknown_203ACFC.pocket);
sub_810B958(sPocketNames[gUnknown_203ACFC.pocket], gUnknown_203ACFC.pocket);
}
void sub_8108818(s32 itemIndex)
@@ -731,3 +732,97 @@ void ItemMenu_StartFadeToExitCallback(u8 taskId)
BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK);
gTasks[taskId].func = sub_8108B8C;
}
void sub_8108B8C(u8 taskId)
{
s16 *data = gTasks[taskId].data;
if (!gPaletteFade.active && FuncIsActiveTask(sub_8108CFC) != TRUE)
{
DestroyListMenuTask(data[0], &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket], &gUnknown_203ACFC.itemsAbove[gUnknown_203ACFC.pocket]);
if (gUnknown_203AD10->field_00 != NULL)
SetMainCallback2(gUnknown_203AD10->field_00);
else
SetMainCallback2(gUnknown_203ACFC.bagCallback);
sub_8108978();
sub_8108B04();
DestroyTask(taskId);
}
}
void sub_8108C10(void)
{
u16 paldata = RGB_BLACK;
u8 taskId;
LoadPalette(&paldata, 0x00, 0x02);
SetGpuReg(REG_OFFSET_WININ, 0);
SetGpuReg(REG_OFFSET_WINOUT, 0x3F);
BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
if (gUnknown_203ACFC.unk5 == 1)
{
SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 240));
SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 0));
}
else
{
SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 240));
SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 160));
taskId = CreateTask(sub_8108CFC, 0);
gTasks[taskId].data[0] = 192;
gTasks[taskId].data[1] = -16;
gUnknown_203ACFC.unk5 = 1;
}
}
void sub_8108CB4(void)
{
u8 taskId = CreateTask(sub_8108CFC, 0);
gTasks[taskId].data[0] = -16;
gTasks[taskId].data[1] = 16;
gUnknown_203ACFC.unk5 = 0;
}
void CB2_SetUpReshowBattleScreenAfterMenu(void)
{
gUnknown_203ACFC.unk5 = 0;
}
void sub_8108CFC(u8 taskId)
{
s16 *data = gTasks[taskId].data;
data[0] += data[1];
if (data[0] > 160)
SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 160));
else
SetGpuReg(REG_OFFSET_WIN0V, data[0]);
if ((data[1] == 16 && data[0] == 160) || (data[1] == -16 && data[0] == 0))
DestroyTask(taskId);
}
void MoveItemSlotInList(struct ItemSlot * itemSlots_, u32 from, u32 to_)
{
// dumb assignments needed to match
struct ItemSlot *itemSlots = itemSlots_;
u32 to = to_;
if (from != to)
{
s16 i, count;
struct ItemSlot firstSlot = itemSlots[from];
if (to > from)
{
to--;
for (i = from, count = to; i < count; i++)
itemSlots[i] = itemSlots[i + 1];
}
else
{
for (i = from, count = to; i > count; i--)
itemSlots[i] = itemSlots[i - 1];
}
itemSlots[to] = firstSlot;
}
}
+1 -1
View File
@@ -814,7 +814,7 @@ static void ItemPc_InsertItemIntoNewSlot(u8 taskId, u32 pos)
ItemPc_MoveItemModeCancel(taskId, pos);
else
{
ItemMenu_MoveItemSlotToNewPositionInArray(gSaveBlock1Ptr->pcItems, data[1], pos);
MoveItemSlotInList(gSaveBlock1Ptr->pcItems, data[1], pos);
DestroyListMenuTask(data[0], &sListMenuState.scroll, &sListMenuState.row);
if (data[1] < pos)
sListMenuState.row--;