Document some of item_menu.c

This commit is contained in:
Slawter666 2018-12-15 18:08:13 +00:00
parent 5e92481f51
commit 2fa0555ed5
5 changed files with 119 additions and 119 deletions

View File

@ -32,10 +32,10 @@ extern struct BagStruct gUnknown_0203CE58;
struct UnkBagStruct struct UnkBagStruct
{ {
void (*unk0)(void); void (*mainCallback2)(void);
u8 unk4[0x800]; u8 tilemapBuffer[0x800];
u8 unk804[12]; u8 spriteId[12];
u8 unk810[7]; u8 windowPointers[7];
u8 unk817; u8 unk817;
u8 unk818; u8 unk818;
u8 unk819; u8 unk819;
@ -43,7 +43,7 @@ struct UnkBagStruct
u8 unk81B:4; u8 unk81B:4;
u8 unk81B_1:2; u8 unk81B_1:2;
u8 unk81B_3:1; u8 unk81B_3:1;
u8 unk81B_2:1; u8 hideCloseBagText:1;
u8 filler3[2]; u8 filler3[2];
u8 unk81E; u8 unk81E;
u8 unk81F; u8 unk81F;
@ -52,11 +52,11 @@ struct UnkBagStruct
u8 unk825; u8 unk825;
u8 filler[2]; u8 filler[2];
u8 unk828; u8 unk828;
u8 unk829[POCKETS_COUNT]; u8 numItemStacks[POCKETS_COUNT];
u8 unk82E[6]; u8 numShownItems[6];
s16 unk834; s16 unk834;
u8 filler4[0xE]; u8 filler4[0xE];
u8 unk844[32][32]; u8 pocketNameBuffer[32][32];
u8 filler2[4]; u8 filler2[4];
}; };
@ -71,9 +71,10 @@ void sub_81AAC14(void);
void sub_81AAC50(void); void sub_81AAC50(void);
void sub_81AAC70(void); void sub_81AAC70(void);
void sub_81AAC28(void); void sub_81AAC28(void);
void SetInitialScrollAndCursorPositions(u8 pocketId);
void bag_menu_mail_related(void); void bag_menu_mail_related(void);
void CB2_BagMenuFromStartMenu(void); void CB2_BagMenuFromStartMenu(void);
u8 sub_81ABB2C(u8 pocketId); u8 GetItemListPosition(u8 pocketId);
bool8 UseRegisteredKeyItemOnField(void); bool8 UseRegisteredKeyItemOnField(void);
void CB2_GoToSellMenu(void); void CB2_GoToSellMenu(void);

View File

@ -543,7 +543,7 @@ bool8 RemoveBagItem(u16 itemId, u16 count)
VarSet(VAR_0x40ED, itemId); VarSet(VAR_0x40ED, itemId);
} }
var = sub_81ABB2C(pocket); var = GetItemListPosition(pocket);
if (itemPocket->capacity > var if (itemPocket->capacity > var
&& itemPocket->itemSlots[var].itemId == itemId) && itemPocket->itemSlots[var].itemId == itemId)
{ {

View File

@ -57,7 +57,7 @@ bool8 load_bag_menu_graphics(void);
void setup_bag_menu_textboxes(void); void setup_bag_menu_textboxes(void);
void allocate_bag_item_list_buffers(void); void allocate_bag_item_list_buffers(void);
void load_bag_item_list_buffers(u8); void load_bag_item_list_buffers(u8);
void bag_menu_print_pocket_names(u8*, u8*); void bag_menu_print_pocket_names(const u8*, const u8*);
void bag_menu_copy_pocket_name_to_window(u32); void bag_menu_copy_pocket_name_to_window(u32);
void bag_menu_draw_pocket_indicator_square(u8, u8); void bag_menu_draw_pocket_indicator_square(u8, u8);
void bag_menu_add_pocket_scroll_arrow_indicators_maybe(void); void bag_menu_add_pocket_scroll_arrow_indicators_maybe(void);
@ -69,7 +69,6 @@ void Task_BagMenu(u8);
void get_name(s8*, u16); void get_name(s8*, u16);
u16 ItemIdToBattleMoveId(u16); u16 ItemIdToBattleMoveId(u16);
u16 BagGetItemIdByPocketPosition(u8, u16); u16 BagGetItemIdByPocketPosition(u8, u16);
void AddBagItemIconSprite(u16, u8);
void bag_menu_print_description_box_text(int); void bag_menu_print_description_box_text(int);
void bag_menu_print_cursor(u8, u8); void bag_menu_print_cursor(u8, u8);
void bag_menu_print(u8, u8, const u8*, u8, u8, u8, u8, u8, u8); void bag_menu_print(u8, u8, const u8*, u8, u8, u8, u8, u8, u8);
@ -121,7 +120,7 @@ void bag_menu_leave_maybe_3(void);
void bag_menu_leave_maybe_2(void); void bag_menu_leave_maybe_2(void);
void bag_menu_leave_maybe(void); void bag_menu_leave_maybe(void);
void sub_81ABA6C(void); void sub_81ABA6C(void);
void sub_81ABAC4(void); static void SetPocketListPositions(void);
void sub_81ABAE0(void); void sub_81ABAE0(void);
u8 sub_81AB1F0(u8); u8 sub_81AB1F0(u8);
void sub_81AC23C(u8); void sub_81AC23C(u8);
@ -151,7 +150,7 @@ void sub_81AD6FC(u8 taskId);
// .rodata // .rodata
const struct BgTemplate gUnknown_08613F90[3] = static const struct BgTemplate sBgTemplates_ItemMenu[3] =
{ {
{ {
.bg = 0, .bg = 0,
@ -182,7 +181,7 @@ const struct BgTemplate gUnknown_08613F90[3] =
}, },
}; };
const struct ListMenuTemplate gUnknown_08613F9C = static const struct ListMenuTemplate sItemListMenu =
{ {
.items = NULL, .items = NULL,
.moveCursorFunc = bag_menu_change_item_callback, .moveCursorFunc = bag_menu_change_item_callback,
@ -258,7 +257,8 @@ const struct ScrollArrowsTemplate gUnknown_08614094 = {SCROLL_ARROW_LEFT, 0x1C,
const u8 gUnknown_086140A4[] = INCBIN_U8("graphics/interface/select_button.4bpp"); const u8 gUnknown_086140A4[] = INCBIN_U8("graphics/interface/select_button.4bpp");
const u8 gUnknown_08614164[][3] = { static const u8 sFontColorTable[][3] = {
// bgColor, textColor, shadowColor
{0, 1, 3}, {0, 1, 3},
{0, 1, 4}, {0, 1, 4},
{0, 3, 6}, {0, 3, 6},
@ -268,7 +268,7 @@ const u8 gUnknown_08614164[][3] = {
const struct WindowTemplate gUnknown_08614174[] = const struct WindowTemplate gUnknown_08614174[] =
{ {
{ { // Item names
.bg = 0, .bg = 0,
.tilemapLeft = 14, .tilemapLeft = 14,
.tilemapTop = 2, .tilemapTop = 2,
@ -277,7 +277,7 @@ const struct WindowTemplate gUnknown_08614174[] =
.paletteNum = 1, .paletteNum = 1,
.baseBlock = 0x27, .baseBlock = 0x27,
}, },
{ { // Description
.bg = 0, .bg = 0,
.tilemapLeft = 0, .tilemapLeft = 0,
.tilemapTop = 13, .tilemapTop = 13,
@ -286,7 +286,7 @@ const struct WindowTemplate gUnknown_08614174[] =
.paletteNum = 1, .paletteNum = 1,
.baseBlock = 0x117, .baseBlock = 0x117,
}, },
{ { // Pocket name
.bg = 0, .bg = 0,
.tilemapLeft = 4, .tilemapLeft = 4,
.tilemapTop = 1, .tilemapTop = 1,
@ -295,7 +295,7 @@ const struct WindowTemplate gUnknown_08614174[] =
.paletteNum = 1, .paletteNum = 1,
.baseBlock = 0x1A1, .baseBlock = 0x1A1,
}, },
{ { // TM/HM info icons
.bg = 0, .bg = 0,
.tilemapLeft = 1, .tilemapLeft = 1,
.tilemapTop = 13, .tilemapTop = 13,
@ -304,7 +304,7 @@ const struct WindowTemplate gUnknown_08614174[] =
.paletteNum = 12, .paletteNum = 12,
.baseBlock = 0x16B, .baseBlock = 0x16B,
}, },
{ {// TM/HM info
.bg = 0, .bg = 0,
.tilemapLeft = 7, .tilemapLeft = 7,
.tilemapTop = 13, .tilemapTop = 13,
@ -313,7 +313,7 @@ const struct WindowTemplate gUnknown_08614174[] =
.paletteNum = 12, .paletteNum = 12,
.baseBlock = 0x189, .baseBlock = 0x189,
}, },
{ { // Field message box
.bg = 1, .bg = 1,
.tilemapLeft = 2, .tilemapLeft = 2,
.tilemapTop = 15, .tilemapTop = 15,
@ -440,16 +440,14 @@ struct TempWallyStruct {
EWRAM_DATA struct UnkBagStruct *gUnknown_0203CE54 = 0; EWRAM_DATA struct UnkBagStruct *gUnknown_0203CE54 = 0;
EWRAM_DATA struct BagStruct gUnknown_0203CE58 = {0}; EWRAM_DATA struct BagStruct gUnknown_0203CE58 = {0};
EWRAM_DATA struct ListBuffer1 *gUnknown_0203CE74 = 0; static EWRAM_DATA struct ListBuffer1 *sListBuffer1 = 0;
EWRAM_DATA struct ListBuffer2 *gUnknown_0203CE78 = 0; static EWRAM_DATA struct ListBuffer2 *sListBuffer2 = 0;
EWRAM_DATA u16 gSpecialVar_ItemId = 0; EWRAM_DATA u16 gSpecialVar_ItemId = 0;
EWRAM_DATA struct TempWallyStruct *gUnknown_0203CE80 = 0; static EWRAM_DATA struct TempWallyStruct *gUnknown_0203CE80 = 0;
extern u8 *gPocketNamesStringsTable[]; extern u8 *const gPocketNamesStringsTable[];
extern struct ListMenuTemplate gUnknown_08613F9C;
extern const u8 gMoveNames[][0xD]; extern const u8 gMoveNames[][0xD];
extern u8* gReturnToXStringsTable[]; extern u8* gReturnToXStringsTable[];
extern u32 gUnknown_0203CE5E[];
extern const u8 EventScript_2736B3[]; extern const u8 EventScript_2736B3[];
extern const u16 gUnknown_0860F074[]; extern const u16 gUnknown_0860F074[];
@ -531,12 +529,12 @@ void GoToBagMenu(u8 bagMenuType, u8 pocketId, void ( *postExitMenuMainCallback2)
temp = gUnknown_0203CE58.location - (POCKETS_COUNT - 1); temp = gUnknown_0203CE58.location - (POCKETS_COUNT - 1);
if (temp <= 1) if (temp <= 1)
gUnknown_0203CE54->unk81B = 1; gUnknown_0203CE54->unk81B = 1;
gUnknown_0203CE54->unk0 = 0; gUnknown_0203CE54->mainCallback2 = 0;
gUnknown_0203CE54->unk81A = 0xFF; gUnknown_0203CE54->unk81A = 0xFF;
gUnknown_0203CE54->unk81E = -1; gUnknown_0203CE54->unk81E = -1;
gUnknown_0203CE54->unk81F = -1; gUnknown_0203CE54->unk81F = -1;
memset(gUnknown_0203CE54->unk804, 0xFF, sizeof(gUnknown_0203CE54->unk804)); memset(gUnknown_0203CE54->spriteId, 0xFF, sizeof(gUnknown_0203CE54->spriteId));
memset(gUnknown_0203CE54->unk810, 0xFF, 10); memset(gUnknown_0203CE54->windowPointers, 0xFF, 10);
SetMainCallback2(CB2_Bag); SetMainCallback2(CB2_Bag);
} }
} }
@ -615,7 +613,7 @@ bool8 setup_bag_menu(void)
break; break;
case 10: case 10:
sub_81ABA6C(); sub_81ABA6C();
sub_81ABAC4(); SetPocketListPositions();
sub_81ABAE0(); sub_81ABAE0();
gMain.state++; gMain.state++;
break; break;
@ -677,10 +675,10 @@ bool8 setup_bag_menu(void)
void bag_menu_init_bgs(void) void bag_menu_init_bgs(void)
{ {
ResetVramOamAndBgCntRegs(); ResetVramOamAndBgCntRegs();
memset(gUnknown_0203CE54->unk4, 0, 0x800); memset(gUnknown_0203CE54->tilemapBuffer, 0, 0x800);
ResetBgsAndClearDma3BusyFlags(0); ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, gUnknown_08613F90, 3); InitBgsFromTemplates(0, sBgTemplates_ItemMenu, 3);
SetBgTilemapBuffer(2, gUnknown_0203CE54->unk4); SetBgTilemapBuffer(2, gUnknown_0203CE54->tilemapBuffer);
ResetAllBgsCoordinates(); ResetAllBgsCoordinates();
schedule_bg_copy_tilemap_to_vram(2); schedule_bg_copy_tilemap_to_vram(2);
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP);
@ -702,7 +700,7 @@ bool8 load_bag_menu_graphics(void)
case 1: case 1:
if (free_temp_tile_data_buffers_if_possible() != TRUE) if (free_temp_tile_data_buffers_if_possible() != TRUE)
{ {
LZDecompressWram(gUnknown_08D9A88C, gUnknown_0203CE54->unk4); LZDecompressWram(gUnknown_08D9A88C, gUnknown_0203CE54->tilemapBuffer);
gUnknown_0203CE54->unk834++; gUnknown_0203CE54->unk834++;
} }
break; break;
@ -744,8 +742,8 @@ u8 sub_81AB1F0(u8 a)
void allocate_bag_item_list_buffers(void) void allocate_bag_item_list_buffers(void)
{ {
gUnknown_0203CE74 = Alloc(sizeof(struct ListBuffer1)); sListBuffer1 = Alloc(sizeof(struct ListBuffer1));
gUnknown_0203CE78 = Alloc(sizeof(struct ListBuffer2)); sListBuffer2 = Alloc(sizeof(struct ListBuffer2));
} }
void load_bag_item_list_buffers(u8 pocketId) void load_bag_item_list_buffers(u8 pocketId)
@ -754,34 +752,34 @@ void load_bag_item_list_buffers(u8 pocketId)
struct BagPocket *pocket = &gBagPockets[pocketId]; struct BagPocket *pocket = &gBagPockets[pocketId];
struct ListMenuItem *subBuffer; struct ListMenuItem *subBuffer;
if (!gUnknown_0203CE54->unk81B_2) if (!gUnknown_0203CE54->hideCloseBagText)
{ {
for (i = 0; i < gUnknown_0203CE54->unk829[pocketId] - 1; i++) for (i = 0; i < gUnknown_0203CE54->numItemStacks[pocketId] - 1; i++)
{ {
get_name(gUnknown_0203CE78->name[i], pocket->itemSlots[i].itemId); get_name(sListBuffer2->name[i], pocket->itemSlots[i].itemId);
subBuffer = gUnknown_0203CE74->subBuffers; subBuffer = sListBuffer1->subBuffers;
subBuffer[i].name = gUnknown_0203CE78->name[i]; subBuffer[i].name = sListBuffer2->name[i];
subBuffer[i].id = i; subBuffer[i].id = i;
} }
StringCopy(gUnknown_0203CE78->name[i], gText_CloseBag); StringCopy(sListBuffer2->name[i], gText_CloseBag);
subBuffer = gUnknown_0203CE74->subBuffers; subBuffer = sListBuffer1->subBuffers;
subBuffer[i].name = gUnknown_0203CE78->name[i]; subBuffer[i].name = sListBuffer2->name[i];
subBuffer[i].id = -2; subBuffer[i].id = -2;
} }
else else
{ {
for (i = 0; i < gUnknown_0203CE54->unk829[pocketId]; i++) for (i = 0; i < gUnknown_0203CE54->numItemStacks[pocketId]; i++)
{ {
get_name(gUnknown_0203CE78->name[i], pocket->itemSlots[i].itemId); get_name(sListBuffer2->name[i], pocket->itemSlots[i].itemId);
subBuffer = gUnknown_0203CE74->subBuffers; subBuffer = sListBuffer1->subBuffers;
subBuffer[i].name = gUnknown_0203CE78->name[i]; subBuffer[i].name = sListBuffer2->name[i];
subBuffer[i].id = i; subBuffer[i].id = i;
} }
} }
gMultiuseListMenuTemplate = gUnknown_08613F9C; gMultiuseListMenuTemplate = sItemListMenu;
gMultiuseListMenuTemplate.totalItems = gUnknown_0203CE54->unk829[pocketId]; gMultiuseListMenuTemplate.totalItems = gUnknown_0203CE54->numItemStacks[pocketId];
gMultiuseListMenuTemplate.items = gUnknown_0203CE74->subBuffers; gMultiuseListMenuTemplate.items = sListBuffer1->subBuffers;
gMultiuseListMenuTemplate.maxShowed = gUnknown_0203CE54->unk82E[pocketId]; gMultiuseListMenuTemplate.maxShowed = gUnknown_0203CE54->numShownItems[pocketId];
} }
void get_name(s8 *dest, u16 itemId) void get_name(s8 *dest, u16 itemId)
@ -907,7 +905,7 @@ void bag_menu_print_cursor(u8 a, u8 b)
void bag_menu_add_pocket_scroll_arrow_indicators_maybe(void) void bag_menu_add_pocket_scroll_arrow_indicators_maybe(void)
{ {
if (gUnknown_0203CE54->unk81E == 0xFF) if (gUnknown_0203CE54->unk81E == 0xFF)
gUnknown_0203CE54->unk81E = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 0xAC, 12, 0x94, gUnknown_0203CE54->unk829[gUnknown_0203CE58.pocket] - gUnknown_0203CE54->unk82E[gUnknown_0203CE58.pocket], 0x6E, 0x6E, &gUnknown_0203CE58.scrollPosition[gUnknown_0203CE58.pocket]); gUnknown_0203CE54->unk81E = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 0xAC, 12, 0x94, gUnknown_0203CE54->numItemStacks[gUnknown_0203CE58.pocket] - gUnknown_0203CE54->numShownItems[gUnknown_0203CE58.pocket], 0x6E, 0x6E, &gUnknown_0203CE58.scrollPosition[gUnknown_0203CE58.pocket]);
} }
void sub_81AB824(void) void sub_81AB824(void)
@ -937,8 +935,8 @@ void sub_81AB89C(void)
void free_bag_item_list_buffers(void) void free_bag_item_list_buffers(void)
{ {
Free(gUnknown_0203CE78); Free(sListBuffer2);
Free(gUnknown_0203CE74); Free(sListBuffer1);
FreeAllWindowBuffers(); FreeAllWindowBuffers();
Free(gUnknown_0203CE54); Free(gUnknown_0203CE54);
} }
@ -955,8 +953,8 @@ void task_close_bag_menu_2(u8 taskId)
if (!gPaletteFade.active) if (!gPaletteFade.active)
{ {
DestroyListMenuTask(data[0], &gUnknown_0203CE58.scrollPosition[gUnknown_0203CE58.pocket], &gUnknown_0203CE58.cursorPosition[gUnknown_0203CE58.pocket]); DestroyListMenuTask(data[0], &gUnknown_0203CE58.scrollPosition[gUnknown_0203CE58.pocket], &gUnknown_0203CE58.cursorPosition[gUnknown_0203CE58.pocket]);
if (gUnknown_0203CE54->unk0 != 0) if (gUnknown_0203CE54->mainCallback2 != 0)
SetMainCallback2(gUnknown_0203CE54->unk0); SetMainCallback2(gUnknown_0203CE54->mainCallback2);
else else
SetMainCallback2(gUnknown_0203CE58.bagCallback); SetMainCallback2(gUnknown_0203CE58.bagCallback);
sub_81AB824(); sub_81AB824();
@ -981,15 +979,17 @@ void sub_81AB9A8(u8 pocketId)
CompactItemsInBagPocket(pocket); CompactItemsInBagPocket(pocket);
break; break;
} }
gUnknown_0203CE54->unk829[pocketId] = 0; gUnknown_0203CE54->numItemStacks[pocketId] = 0;
for (i = 0; i < pocket->capacity && pocket->itemSlots[i].itemId; i++) for (i = 0; i < pocket->capacity && pocket->itemSlots[i].itemId; i++)
gUnknown_0203CE54->unk829[pocketId]++; gUnknown_0203CE54->numItemStacks[pocketId]++;
if (!gUnknown_0203CE54->unk81B_2)
gUnknown_0203CE54->unk829[pocketId]++; if (!gUnknown_0203CE54->hideCloseBagText)
if (gUnknown_0203CE54->unk829[pocketId] > 8) gUnknown_0203CE54->numItemStacks[pocketId]++;
gUnknown_0203CE54->unk82E[pocketId] = 8;
if (gUnknown_0203CE54->numItemStacks[pocketId] > 8)
gUnknown_0203CE54->numShownItems[pocketId] = 8;
else else
gUnknown_0203CE54->unk82E[pocketId] = gUnknown_0203CE54->unk829[pocketId]; gUnknown_0203CE54->numShownItems[pocketId] = gUnknown_0203CE54->numItemStacks[pocketId];
} }
void sub_81ABA6C(void) void sub_81ABA6C(void)
@ -999,26 +999,26 @@ void sub_81ABA6C(void)
sub_81AB9A8(i); sub_81AB9A8(i);
} }
void sub_81ABA88(u8 a) void SetInitialScrollAndCursorPositions(u8 pocketId)
{ {
sub_812225C(&gUnknown_0203CE58.scrollPosition[a], &gUnknown_0203CE58.cursorPosition[a], gUnknown_0203CE54->unk82E[a], gUnknown_0203CE54->unk829[a]); sub_812225C(&gUnknown_0203CE58.scrollPosition[pocketId], &gUnknown_0203CE58.cursorPosition[pocketId], gUnknown_0203CE54->numShownItems[pocketId], gUnknown_0203CE54->numItemStacks[pocketId]);
} }
void sub_81ABAC4(void) static void SetPocketListPositions(void)
{ {
u8 i; u8 i;
for (i = 0; i < POCKETS_COUNT; i++) for (i = 0; i < POCKETS_COUNT; i++)
sub_81ABA88(i); SetInitialScrollAndCursorPositions(i);
} }
void sub_81ABAE0(void) void sub_81ABAE0(void)
{ {
u8 i; u8 i;
for (i = 0; i < POCKETS_COUNT; i++) for (i = 0; i < POCKETS_COUNT; i++)
sub_8122298(&gUnknown_0203CE58.scrollPosition[i], &gUnknown_0203CE58.cursorPosition[i], gUnknown_0203CE54->unk82E[i], gUnknown_0203CE54->unk829[i], 8); sub_8122298(&gUnknown_0203CE58.scrollPosition[i], &gUnknown_0203CE58.cursorPosition[i], gUnknown_0203CE54->numShownItems[i], gUnknown_0203CE54->numItemStacks[i], 8);
} }
u8 sub_81ABB2C(u8 pocketId) u8 GetItemListPosition(u8 pocketId)
{ {
return gUnknown_0203CE58.scrollPosition[pocketId] + gUnknown_0203CE58.cursorPosition[pocketId]; return gUnknown_0203CE58.scrollPosition[pocketId] + gUnknown_0203CE58.cursorPosition[pocketId];
} }
@ -1041,7 +1041,7 @@ void bag_menu_inits_lists_menu(u8 taskId)
bag_menu_RemoveBagItem_message_window(4); bag_menu_RemoveBagItem_message_window(4);
DestroyListMenuTask(data[0], scrollPos, cursorPos); DestroyListMenuTask(data[0], scrollPos, cursorPos);
sub_81AB9A8(gUnknown_0203CE58.pocket); sub_81AB9A8(gUnknown_0203CE58.pocket);
sub_81ABA88(gUnknown_0203CE58.pocket); SetInitialScrollAndCursorPositions(gUnknown_0203CE58.pocket);
load_bag_item_list_buffers(gUnknown_0203CE58.pocket); load_bag_item_list_buffers(gUnknown_0203CE58.pocket);
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos);
schedule_bg_copy_tilemap_to_vram(0); schedule_bg_copy_tilemap_to_vram(0);
@ -1092,7 +1092,7 @@ void Task_BagMenu(u8 taskId)
if (sub_81AC2C0() == 1) if (sub_81AC2C0() == 1)
{ {
ListMenuGetScrollAndRow(data[0], scrollPos, cursorPos); ListMenuGetScrollAndRow(data[0], scrollPos, cursorPos);
if ((*scrollPos + *cursorPos) != gUnknown_0203CE54->unk829[gUnknown_0203CE58.pocket] - 1) if ((*scrollPos + *cursorPos) != gUnknown_0203CE54->numItemStacks[gUnknown_0203CE58.pocket] - 1)
{ {
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
bag_menu_swap_items(taskId); bag_menu_swap_items(taskId);
@ -1102,13 +1102,13 @@ void Task_BagMenu(u8 taskId)
} }
else else
{ {
int r4 = ListMenuHandleInputGetItemId(data[0]); int listPosition = ListMenuHandleInputGetItemId(data[0]);
ListMenuGetScrollAndRow(data[0], scrollPos, cursorPos); ListMenuGetScrollAndRow(data[0], scrollPos, cursorPos);
switch (r4) switch (listPosition)
{ {
case -1: case LIST_NOTHING_CHOSEN:
break; break;
case -2: case LIST_B_PRESSED:
if (gUnknown_0203CE58.location == 5) if (gUnknown_0203CE58.location == 5)
{ {
PlaySE(SE_HAZURE); PlaySE(SE_HAZURE);
@ -1118,13 +1118,13 @@ void Task_BagMenu(u8 taskId)
gSpecialVar_ItemId = select; gSpecialVar_ItemId = select;
gTasks[taskId].func = unknown_ItemMenu_Confirm; gTasks[taskId].func = unknown_ItemMenu_Confirm;
break; break;
default: default: // A_BUTTON
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
sub_81AB824(); sub_81AB824();
bag_menu_print_cursor_(data[0], 2); bag_menu_print_cursor_(data[0], 2);
data[1] = r4; data[1] = listPosition;
data[2] = BagGetQuantityByPocketPosition(gUnknown_0203CE58.pocket + 1, r4); data[2] = BagGetQuantityByPocketPosition(gUnknown_0203CE58.pocket + 1, listPosition);
gSpecialVar_ItemId = BagGetItemIdByPocketPosition(gUnknown_0203CE58.pocket + 1, r4); gSpecialVar_ItemId = BagGetItemIdByPocketPosition(gUnknown_0203CE58.pocket + 1, listPosition);
gUnknown_08614054[gUnknown_0203CE58.location](taskId); gUnknown_08614054[gUnknown_0203CE58.location](taskId);
break; break;
} }
@ -1186,7 +1186,7 @@ void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3)
ClearWindowTilemap(1); ClearWindowTilemap(1);
DestroyListMenuTask(data[0], &gUnknown_0203CE58.scrollPosition[gUnknown_0203CE58.pocket], &gUnknown_0203CE58.cursorPosition[gUnknown_0203CE58.pocket]); DestroyListMenuTask(data[0], &gUnknown_0203CE58.scrollPosition[gUnknown_0203CE58.pocket], &gUnknown_0203CE58.cursorPosition[gUnknown_0203CE58.pocket]);
schedule_bg_copy_tilemap_to_vram(0); schedule_bg_copy_tilemap_to_vram(0);
gSprites[gUnknown_0203CE54->unk804[2 + (gUnknown_0203CE54->unk81B_1 ^ 1)]].invisible = TRUE; gSprites[gUnknown_0203CE54->spriteId[2 + (gUnknown_0203CE54->unk81B_1 ^ 1)]].invisible = TRUE;
sub_81AB824(); sub_81AB824();
} }
pocketId = gUnknown_0203CE58.pocket; pocketId = gUnknown_0203CE58.pocket;
@ -1744,7 +1744,7 @@ void Task_ActuallyToss(u8 taskId)
RemoveBagItem(gSpecialVar_ItemId, data[8]); RemoveBagItem(gSpecialVar_ItemId, data[8]);
DestroyListMenuTask(data[0], scrollPos, cursorPos); DestroyListMenuTask(data[0], scrollPos, cursorPos);
sub_81AB9A8(gUnknown_0203CE58.pocket); sub_81AB9A8(gUnknown_0203CE58.pocket);
sub_81ABA88(gUnknown_0203CE58.pocket); SetInitialScrollAndCursorPositions(gUnknown_0203CE58.pocket);
load_bag_item_list_buffers(gUnknown_0203CE58.pocket); load_bag_item_list_buffers(gUnknown_0203CE58.pocket);
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos);
schedule_bg_copy_tilemap_to_vram(0); schedule_bg_copy_tilemap_to_vram(0);
@ -1782,7 +1782,7 @@ void ItemMenu_Give(u8 taskId)
bag_menu_print_there_is_no_pokemon(taskId); bag_menu_print_there_is_no_pokemon(taskId);
else else
{ {
gUnknown_0203CE54->unk0 = sub_81B7F60; gUnknown_0203CE54->mainCallback2 = sub_81B7F60;
unknown_ItemMenu_Confirm(taskId); unknown_ItemMenu_Confirm(taskId);
} }
} }
@ -1815,7 +1815,7 @@ void sub_81AD350(u8 taskId)
void ItemMenu_CheckTag(u8 taskId) void ItemMenu_CheckTag(u8 taskId)
{ {
gUnknown_0203CE54->unk0 = DoBerryTagScreen; gUnknown_0203CE54->mainCallback2 = DoBerryTagScreen;
unknown_ItemMenu_Confirm(taskId); unknown_ItemMenu_Confirm(taskId);
} }
@ -2012,7 +2012,7 @@ void sub_81AD8C8(u8 taskId)
AddMoney(&gSaveBlock1Ptr->money, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * data[8]); AddMoney(&gSaveBlock1Ptr->money, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * data[8]);
DestroyListMenuTask(data[0], scrollPos, cursorPos); DestroyListMenuTask(data[0], scrollPos, cursorPos);
sub_81AB9A8(gUnknown_0203CE58.pocket); sub_81AB9A8(gUnknown_0203CE58.pocket);
sub_81ABA88(gUnknown_0203CE58.pocket); SetInitialScrollAndCursorPositions(gUnknown_0203CE58.pocket);
load_bag_item_list_buffers(gUnknown_0203CE58.pocket); load_bag_item_list_buffers(gUnknown_0203CE58.pocket);
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos);
bag_menu_print_cursor_(data[0], 2); bag_menu_print_cursor_(data[0], 2);
@ -2235,7 +2235,7 @@ void bag_menu_leave_maybe(void)
SetMainCallback2(CB2_ReturnToField); SetMainCallback2(CB2_ReturnToField);
} }
void bag_menu_print_pocket_names(u8 *pocketName1, u8 *pocketName2) void bag_menu_print_pocket_names(const u8 *pocketName1, const u8 *pocketName2)
{ {
struct WindowTemplate window = {0, 0, 0, 0, 0, 0, 0}; struct WindowTemplate window = {0, 0, 0, 0, 0, 0, 0};
u16 windowId; u16 windowId;
@ -2252,7 +2252,7 @@ void bag_menu_print_pocket_names(u8 *pocketName1, u8 *pocketName2)
offset = GetStringCenterAlignXOffset(1, pocketName2, 0x40); offset = GetStringCenterAlignXOffset(1, pocketName2, 0x40);
bag_menu_print(windowId, 1, pocketName2, offset + 0x40, 1, 0, 0, -1, 1); bag_menu_print(windowId, 1, pocketName2, offset + 0x40, 1, 0, 0, -1, 1);
} }
CpuCopy32((u8*)GetWindowAttribute(windowId, WINDOW_TILE_DATA), gUnknown_0203CE54->unk844, 0x400); CpuCopy32((u8*)GetWindowAttribute(windowId, WINDOW_TILE_DATA), gUnknown_0203CE54->pocketNameBuffer, 0x400);
RemoveWindow(windowId); RemoveWindow(windowId);
} }
@ -2263,7 +2263,7 @@ void bag_menu_copy_pocket_name_to_window(u32 a)
int b; int b;
if (a > 8) if (a > 8)
a = 8; a = 8;
r4 = &gUnknown_0203CE54->unk844; r4 = &gUnknown_0203CE54->pocketNameBuffer;
windowAttribute = (u8*)GetWindowAttribute(2, WINDOW_TILE_DATA); windowAttribute = (u8*)GetWindowAttribute(2, WINDOW_TILE_DATA);
CpuCopy32(r4[0][a], windowAttribute, 0x100); CpuCopy32(r4[0][a], windowAttribute, 0x100);
b = a + 16; b = a + 16;
@ -2292,17 +2292,17 @@ void setup_bag_menu_textboxes(void)
void bag_menu_print(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 h) void bag_menu_print(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 h)
{ {
AddTextPrinterParameterized4(windowId, fontId, left, top, letterSpacing, lineSpacing, gUnknown_08614164[h], speed, str); AddTextPrinterParameterized4(windowId, fontId, left, top, letterSpacing, lineSpacing, sFontColorTable[h], speed, str);
} }
u8 sub_81AE124(u8 a) u8 sub_81AE124(u8 a)
{ {
return gUnknown_0203CE54->unk810[a]; return gUnknown_0203CE54->windowPointers[a];
} }
u8 bag_menu_add_window(u8 a) u8 bag_menu_add_window(u8 a)
{ {
u8 *ptr = &gUnknown_0203CE54->unk810[a]; u8 *ptr = &gUnknown_0203CE54->windowPointers[a];
if (*ptr == 0xFF) if (*ptr == 0xFF)
{ {
*ptr = AddWindow(&gUnknown_086141AC[a]); *ptr = AddWindow(&gUnknown_086141AC[a]);
@ -2314,7 +2314,7 @@ u8 bag_menu_add_window(u8 a)
void bag_menu_remove_window(u8 a) void bag_menu_remove_window(u8 a)
{ {
u8 *ptr = &gUnknown_0203CE54->unk810[a]; u8 *ptr = &gUnknown_0203CE54->windowPointers[a];
if (*ptr != 0xFF) if (*ptr != 0xFF)
{ {
sub_8198070(*ptr, 0); sub_8198070(*ptr, 0);
@ -2327,7 +2327,7 @@ void bag_menu_remove_window(u8 a)
u8 AddItemMessageWindow(u8 a) u8 AddItemMessageWindow(u8 a)
{ {
u8 *ptr = &gUnknown_0203CE54->unk810[a]; u8 *ptr = &gUnknown_0203CE54->windowPointers[a];
if (*ptr == 0xFF) if (*ptr == 0xFF)
*ptr = AddWindow(&gUnknown_086141AC[a]); *ptr = AddWindow(&gUnknown_086141AC[a]);
return *ptr; return *ptr;
@ -2335,7 +2335,7 @@ u8 AddItemMessageWindow(u8 a)
void bag_menu_RemoveBagItem_message_window(u8 a) void bag_menu_RemoveBagItem_message_window(u8 a)
{ {
u8 *ptr = &gUnknown_0203CE54->unk810[a]; u8 *ptr = &gUnknown_0203CE54->windowPointers[a];
if (*ptr != 0xFF) if (*ptr != 0xFF)
{ {
sub_8197DF8(*ptr, 0); sub_8197DF8(*ptr, 0);

View File

@ -1,14 +1,14 @@
#include "global.h" #include "global.h"
#include "sprite.h" #include "berry.h"
#include "decompress.h" #include "decompress.h"
#include "graphics.h"
#include "item.h"
#include "item_menu.h" #include "item_menu.h"
#include "item_icon.h" #include "item_icon.h"
#include "item_menu_icons.h" #include "item_menu_icons.h"
#include "window.h"
#include "menu_helpers.h" #include "menu_helpers.h"
#include "berry.h" #include "sprite.h"
#include "graphics.h" #include "window.h"
#include "item.h"
#include "constants/items.h" #include "constants/items.h"
struct CompressedTilesPal struct CompressedTilesPal
@ -199,7 +199,7 @@ static const struct SpritePalette gUnknown_0857FBA8 =
gUnknown_0857F564, 101 gUnknown_0857F564, 101
}; };
static const struct SpriteTemplate gUnknown_0857FBB0 = static const struct SpriteTemplate gSpriteTemplate_RotatingBall =
{ {
.tileTag = 101, .tileTag = 101,
.paletteTag = 101, .paletteTag = 101,
@ -409,7 +409,7 @@ static const struct SpriteTemplate gUnknown_0857FE10 =
// code // code
void RemoveBagSprite(u8 id) void RemoveBagSprite(u8 id)
{ {
u8 *spriteId = &gUnknown_0203CE54->unk804[id]; u8 *spriteId = &gUnknown_0203CE54->spriteId[id];
if (*spriteId != 0xFF) if (*spriteId != 0xFF)
{ {
FreeSpriteTilesByTag(id + 100); FreeSpriteTilesByTag(id + 100);
@ -422,14 +422,14 @@ void RemoveBagSprite(u8 id)
void AddBagVisualSprite(u8 bagPocketId) void AddBagVisualSprite(u8 bagPocketId)
{ {
u8 *spriteId = &gUnknown_0203CE54->unk804[0]; u8 *spriteId = &gUnknown_0203CE54->spriteId[0];
*spriteId = CreateSprite(&gUnknown_0857FB4C, 68, 66, 0); *spriteId = CreateSprite(&gUnknown_0857FB4C, 68, 66, 0);
SetBagVisualPocketId(bagPocketId, FALSE); SetBagVisualPocketId(bagPocketId, FALSE);
} }
void SetBagVisualPocketId(u8 bagPocketId, bool8 isSwitchingPockets) void SetBagVisualPocketId(u8 bagPocketId, bool8 isSwitchingPockets)
{ {
struct Sprite *sprite = &gSprites[gUnknown_0203CE54->unk804[0]]; struct Sprite *sprite = &gSprites[gUnknown_0203CE54->spriteId[0]];
if (isSwitchingPockets) if (isSwitchingPockets)
{ {
sprite->pos2.y = -5; sprite->pos2.y = -5;
@ -458,7 +458,7 @@ static void SpriteCB_BagVisualSwitchingPockets(struct Sprite *sprite)
void ShakeBagVisual(void) void ShakeBagVisual(void)
{ {
struct Sprite *sprite = &gSprites[gUnknown_0203CE54->unk804[0]]; struct Sprite *sprite = &gSprites[gUnknown_0203CE54->spriteId[0]];
if (sprite->affineAnimEnded) if (sprite->affineAnimEnded)
{ {
StartSpriteAffineAnim(sprite, 1); StartSpriteAffineAnim(sprite, 1);
@ -477,10 +477,10 @@ static void SpriteCB_ShakeBagVisual(struct Sprite *sprite)
void AddSwitchPocketRotatingBallSprite(s16 rotationDirection) void AddSwitchPocketRotatingBallSprite(s16 rotationDirection)
{ {
u8 *spriteId = &gUnknown_0203CE54->unk804[1]; u8 *spriteId = &gUnknown_0203CE54->spriteId[1];
LoadSpriteSheet(&gUnknown_0857FBA0); LoadSpriteSheet(&gUnknown_0857FBA0);
LoadSpritePalette(&gUnknown_0857FBA8); LoadSpritePalette(&gUnknown_0857FBA8);
*spriteId = CreateSprite(&gUnknown_0857FBB0, 16, 16, 0); *spriteId = CreateSprite(&gSpriteTemplate_RotatingBall, 16, 16, 0);
gSprites[*spriteId].data[0] = rotationDirection; gSprites[*spriteId].data[0] = rotationDirection;
} }
@ -515,7 +515,7 @@ static void SpriteCB_SwitchPocketRotatingBallContinue(struct Sprite *sprite)
void AddBagItemIconSprite(u16 itemId, u8 id) void AddBagItemIconSprite(u16 itemId, u8 id)
{ {
u8 *spriteId = &gUnknown_0203CE54->unk804[id + 2]; u8 *spriteId = &gUnknown_0203CE54->spriteId[id + 2];
if (*spriteId == 0xFF) if (*spriteId == 0xFF)
{ {
u8 iconSpriteId; u8 iconSpriteId;
@ -539,17 +539,17 @@ void RemoveBagItemIconSprite(u8 id)
void sub_80D4FAC(void) void sub_80D4FAC(void)
{ {
sub_8122344(&gUnknown_0203CE54->unk804[4], 8); sub_8122344(&gUnknown_0203CE54->spriteId[4], 8);
} }
void sub_80D4FC8(u8 arg0) void sub_80D4FC8(u8 arg0)
{ {
sub_81223FC(&gUnknown_0203CE54->unk804[4], 8, arg0); sub_81223FC(&gUnknown_0203CE54->spriteId[4], 8, arg0);
} }
void sub_80D4FEC(u8 arg0) void sub_80D4FEC(u8 arg0)
{ {
sub_8122448(&gUnknown_0203CE54->unk804[4], 136, 120, (arg0 + 1) * 16); sub_8122448(&gUnknown_0203CE54->spriteId[4], 136, 120, (arg0 + 1) * 16);
} }
static void sub_80D5018(void *mem0, void *mem1) static void sub_80D5018(void *mem0, void *mem1)

View File

@ -57,7 +57,6 @@ extern void bag_menu_yes_no(u8, u8, const struct YesNoFuncTable*);
extern void sub_81C5924(void); extern void sub_81C5924(void);
extern void sub_81C59BC(void); extern void sub_81C59BC(void);
extern void sub_81AB9A8(u8); extern void sub_81AB9A8(u8);
extern void sub_81ABA88(u8);
extern void StartEscapeRopeFieldEffect(void); extern void StartEscapeRopeFieldEffect(void);
extern u8* sub_806CF78(u16); extern u8* sub_806CF78(u16);
extern void sub_81B89F0(void); extern void sub_81B89F0(void);
@ -128,7 +127,7 @@ void SetUpItemUseCallback(u8 taskId)
type = ItemId_GetType(gSpecialVar_ItemId) - 1; type = ItemId_GetType(gSpecialVar_ItemId) - 1;
if (!InBattlePyramid()) if (!InBattlePyramid())
{ {
gUnknown_0203CE54->unk0 = gUnknown_085920D8[type]; gUnknown_0203CE54->mainCallback2 = gUnknown_085920D8[type];
unknown_ItemMenu_Confirm(taskId); unknown_ItemMenu_Confirm(taskId);
} }
else else
@ -212,7 +211,7 @@ void sub_80FD254(void)
void ItemUseOutOfBattle_Mail(u8 taskId) void ItemUseOutOfBattle_Mail(u8 taskId)
{ {
gUnknown_0203CE54->unk0 = sub_80FD254; gUnknown_0203CE54->mainCallback2 = sub_80FD254;
unknown_ItemMenu_Confirm(taskId); unknown_ItemMenu_Confirm(taskId);
} }
@ -608,7 +607,7 @@ void ItemUseOutOfBattle_PokeblockCase(u8 taskId)
} }
else if (gTasks[taskId].data[3] != TRUE) else if (gTasks[taskId].data[3] != TRUE)
{ {
gUnknown_0203CE54->unk0 = sub_80FDBEC; gUnknown_0203CE54->mainCallback2 = sub_80FDBEC;
unknown_ItemMenu_Confirm(taskId); unknown_ItemMenu_Confirm(taskId);
} }
else else
@ -670,7 +669,7 @@ void sub_80FDD10(u8 taskId)
{ {
gUnknown_0203A0F4 = sub_80FDD74; gUnknown_0203A0F4 = sub_80FDD74;
gFieldCallback = MapPostLoadHook_UseItem; gFieldCallback = MapPostLoadHook_UseItem;
gUnknown_0203CE54->unk0 = CB2_ReturnToField; gUnknown_0203CE54->mainCallback2 = CB2_ReturnToField;
unknown_ItemMenu_Confirm(taskId); unknown_ItemMenu_Confirm(taskId);
} }
else else
@ -812,7 +811,7 @@ void sub_80FE058(void)
if (!InBattlePyramid()) if (!InBattlePyramid())
{ {
sub_81AB9A8(ItemId_GetPocket(gSpecialVar_ItemId)); sub_81AB9A8(ItemId_GetPocket(gSpecialVar_ItemId));
sub_81ABA88(ItemId_GetPocket(gSpecialVar_ItemId)); SetInitialScrollAndCursorPositions(ItemId_GetPocket(gSpecialVar_ItemId));
} }
else else
{ {
@ -993,7 +992,7 @@ void sub_80FE54C(u8 taskId)
{ {
if (!InBattlePyramid()) if (!InBattlePyramid())
{ {
gUnknown_0203CE54->unk0 = sub_81B89F0; gUnknown_0203CE54->mainCallback2 = sub_81B89F0;
unknown_ItemMenu_Confirm(taskId); unknown_ItemMenu_Confirm(taskId);
} }
else else