summaryrefslogtreecommitdiff
path: root/src/item_menu.c
diff options
context:
space:
mode:
authorDiegoisawesome <Diegoisawesome@users.noreply.github.com>2018-03-09 16:12:09 -0600
committerGitHub <noreply@github.com>2018-03-09 16:12:09 -0600
commitd2d587406ab096fde731c98b83599eca7f8c0f90 (patch)
treee8fa8e32ed217ccd7f8d46e333bedfdd9977a3d7 /src/item_menu.c
parentae214eca8b9086db64af3741aecaf05acf007b96 (diff)
parent711a345fd43da3edf0d1eed99e9df646c436ba16 (diff)
Merge pull request #228 from DizzyEggg/decompile_item_menu_icons
Decompile item menu icons
Diffstat (limited to 'src/item_menu.c')
-rwxr-xr-xsrc/item_menu.c224
1 files changed, 12 insertions, 212 deletions
diff --git a/src/item_menu.c b/src/item_menu.c
index 24dce79f6..8c05f0828 100755
--- a/src/item_menu.c
+++ b/src/item_menu.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "item_menu.h"
#include "battle.h"
#include "battle_controllers.h"
#include "battle_frontier_2.h"
@@ -58,7 +59,6 @@ void load_bag_item_list_buffers(u8);
void bag_menu_print_pocket_names(u8*, u8*);
void bag_menu_copy_pocket_name_to_window(u32);
void bag_menu_draw_pocket_indicator_square(u8, u8);
-void AddBagVisualObject(u8);
void bag_menu_add_pocket_scroll_arrow_indicators_maybe(void);
void bag_menu_add_list_scroll_arrow_indicators_maybe(void);
void bag_menu_prepare_tmhm_move_window(void);
@@ -67,9 +67,8 @@ void Task_WallyTutorialBagMenu(u8);
void Task_BagMenu(u8);
void get_name(s8*, u16);
u16 ItemIdToBattleMoveId(u16);
-void ShakeBagVisual(void);
u16 BagGetItemIdByPocketPosition(u8, u16);
-void AddBagItemIconObject(u16, u8);
+void AddBagItemIconSprite(u16, u8);
void bag_menu_print_description_box_text(int);
void bag_menu_print_cursor(u8, u8);
void bag_menu_print(u8, u8, const u8*, u8, u8, u8, u8, u8, u8);
@@ -86,9 +85,6 @@ u8 GetSwitchBagPocketDirection(void);
void SwitchBagPocket(u8, s16, u16);
bool8 sub_81AC2C0(void);
void bag_menu_swap_items(u8);
-void SetBagVisualPocketId(u8, u8);
-void RemoveBagObject(u8);
-void AddSwitchPocketRotatingBallObject(s16);
void sub_81AC10C(u8);
void sub_81AC3C0(u8);
void sub_81AC498(u8);
@@ -251,46 +247,6 @@ const struct WindowTemplate gUnknown_086141AC[] = {
// .text
-struct BagStruct {
- void (*bagCallback)(void);
- u8 location;
- u8 pocket;
- u8 unk6[2];
- u16 cursorPosition[5];
- u16 scrollPosition[5];
-};
-
-struct UnkBagStruct {
- MainCallback unk0;
- u8 unk4[0x800];
- u8 unk804;
- u8 unk805;
- u8 unk806[10];
- u8 unk810[7];
- u8 unk817;
- u8 unk818;
- u8 unk819;
- u8 unk81A;
- u8 unk81B:4;
- u8 unk81B_1:2;
- u8 unk81B_3:1;
- u8 unk81B_2:1;
- u8 filler3[2];
- u8 unk81E;
- u8 unk81F;
- const u8* unk820;
- u8 unk824;
- u8 unk825;
- u8 filler[2];
- u8 unk828;
- u8 unk829[5];
- u8 unk82E[6];
- s16 unk834;
- u8 filler4[0xE];
- u8 unk844[32][32];
- u8 filler2[4];
-};
-
struct ListBuffer1 {
struct ListMenuItem subBuffers[65];
};
@@ -319,14 +275,11 @@ void (*gFieldCallback)(void);
extern u8 *gPocketNamesStringsTable[];
extern u8 gUnknown_08D9A88C[];
-extern struct CompressedSpriteSheet gUnknown_0857FB34;
-extern struct CompressedSpriteSheet gUnknown_0857FB3C;
-extern struct CompressedSpritePalette gUnknown_0857FB44;
extern struct ListMenuTemplate gUnknown_08613F9C;
-extern u8 gMoveNames[][0xD];
+extern const u8 gMoveNames[][0xD];
extern u8* gReturnToXStringsTable[];
extern u32 gUnknown_0203CE5E[];
-extern u8 EventScript_2736B3[];
+extern const u8 EventScript_2736B3[];
extern const u16 gUnknown_0860F074[];
void ResetBagScrollPositions(void)
@@ -411,7 +364,7 @@ void GoToBagMenu(u8 bagMenuType, u8 pocketId, void ( *postExitMenuMainCallback2)
gUnknown_0203CE54->unk81A = 0xFF;
gUnknown_0203CE54->unk81E = -1;
gUnknown_0203CE54->unk81F = -1;
- memset(&gUnknown_0203CE54->unk804, 0xFF, 12);
+ memset(gUnknown_0203CE54->unk804, 0xFF, sizeof(gUnknown_0203CE54->unk804));
memset(gUnknown_0203CE54->unk810, 0xFF, 10);
SetMainCallback2(CB2_Bag);
}
@@ -517,7 +470,7 @@ bool8 setup_bag_menu(void)
gMain.state++;
break;
case 15:
- AddBagVisualObject(gUnknown_0203CE58.pocket);
+ AddBagVisualSprite(gUnknown_0203CE58.pocket);
gMain.state++;
break;
case 16:
@@ -697,11 +650,11 @@ void bag_menu_change_item_callback(s32 a, bool8 b, struct ListMenu *unused)
}
if (gUnknown_0203CE54->unk81A == 0xFF)
{
- RemoveBagItemIconObject(1 ^ gUnknown_0203CE54->unk81B_1);
+ RemoveBagItemIconSprite(1 ^ gUnknown_0203CE54->unk81B_1);
if (a != -2)
- AddBagItemIconObject(BagGetItemIdByPocketPosition(gUnknown_0203CE58.pocket + 1, a), gUnknown_0203CE54->unk81B_1);
+ AddBagItemIconSprite(BagGetItemIdByPocketPosition(gUnknown_0203CE58.pocket + 1, a), gUnknown_0203CE54->unk81B_1);
else
- AddBagItemIconObject(-1, gUnknown_0203CE54->unk81B_1);
+ AddBagItemIconSprite(-1, gUnknown_0203CE54->unk81B_1);
gUnknown_0203CE54->unk81B_1 ^= 1;
if (!gUnknown_0203CE54->unk81B_3)
bag_menu_print_description_box_text(a);
@@ -1038,7 +991,6 @@ u8 GetSwitchBagPocketDirection(void)
return 0;
}
-
void ChangeBagPocketId(u8 *bagPocketId, s8 deltaBagPocketId)
{
if (deltaBagPocketId == 1 && *bagPocketId == 4)
@@ -1049,13 +1001,11 @@ void ChangeBagPocketId(u8 *bagPocketId, s8 deltaBagPocketId)
*bagPocketId += deltaBagPocketId;
}
-#ifdef NONMATCHING
void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3)
{
s16* data = gTasks[taskId].data;
u8 pocketId;
-
data[13] = 0;
data[12] = 0;
data[11] = deltaBagPocketId;
@@ -1065,7 +1015,7 @@ void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3)
ClearWindowTilemap(1);
DestroyListMenuTask(data[0], &gUnknown_0203CE58.scrollPosition[gUnknown_0203CE58.pocket], &gUnknown_0203CE58.cursorPosition[gUnknown_0203CE58.pocket]);
schedule_bg_copy_tilemap_to_vram(0);
- gSprites[gUnknown_0203CE54->unk806[gUnknown_0203CE54->unk81B_1 ^ 1]].invisible = 1;
+ gSprites[gUnknown_0203CE54->unk804[2 + (gUnknown_0203CE54->unk81B_1 ^ 1)]].invisible = 1;
sub_81AB824();
}
pocketId = gUnknown_0203CE58.pocket;
@@ -1085,160 +1035,10 @@ void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3)
FillBgTilemapBufferRect_Palette0(2, 11, 14, 2, 15, 16);
schedule_bg_copy_tilemap_to_vram(2);
SetBagVisualPocketId(pocketId, 1);
- RemoveBagObject(1);
- AddSwitchPocketRotatingBallObject(deltaBagPocketId);
+ RemoveBagSprite(1);
+ AddSwitchPocketRotatingBallSprite(deltaBagPocketId);
SetTaskFuncWithFollowupFunc(taskId, sub_81AC10C, gTasks[taskId].func);
}
-#else
-__attribute__((naked))
-void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3)
-{
- asm(".syntax unified\n\
- push {r4-r6,lr}\n\
- sub sp, 0xC\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- lsls r1, 16\n\
- lsrs r5, r1, 16\n\
- lsls r2, 16\n\
- lsls r0, r6, 2\n\
- adds r0, r6\n\
- lsls r0, 3\n\
- ldr r1, =gTasks + 0x8\n\
- adds r4, r0, r1\n\
- movs r0, 0\n\
- strh r0, [r4, 0x1A]\n\
- strh r0, [r4, 0x18]\n\
- strh r5, [r4, 0x16]\n\
- cmp r2, 0\n\
- bne _081AC026\n\
- movs r0, 0\n\
- bl ClearWindowTilemap\n\
- movs r0, 0x1\n\
- bl ClearWindowTilemap\n\
- ldrb r0, [r4]\n\
- ldr r3, =gUnknown_0203CE58\n\
- ldrb r2, [r3, 0x5]\n\
- lsls r2, 1\n\
- adds r1, r3, 0\n\
- adds r1, 0x12\n\
- adds r1, r2, r1\n\
- adds r3, 0x8\n\
- adds r2, r3\n\
- bl DestroyListMenuTask\n\
- movs r0, 0\n\
- bl schedule_bg_copy_tilemap_to_vram\n\
- ldr r3, =gSprites\n\
- ldr r0, =gUnknown_0203CE54\n\
- ldr r2, [r0]\n\
- ldr r1, =0x0000081b\n\
- adds r0, r2, r1\n\
- ldrb r1, [r0]\n\
- lsls r1, 26\n\
- lsrs r1, 30\n\
- movs r0, 0x1\n\
- eors r0, r1\n\
- adds r2, r0\n\
- ldr r0, =0x00000806\n\
- adds r2, r0\n\
- ldrb r1, [r2]\n\
- lsls r0, r1, 4\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- adds r0, r3\n\
- adds r0, 0x3E\n\
- ldrb r1, [r0]\n\
- movs r2, 0x4\n\
- orrs r1, r2\n\
- strb r1, [r0]\n\
- bl sub_81AB824\n\
-_081AC026:\n\
- ldr r4, =gUnknown_0203CE58\n\
- ldrb r1, [r4, 0x5]\n\
- add r0, sp, 0x8\n\
- strb r1, [r0]\n\
- lsls r1, r5, 24\n\
- asrs r1, 24\n\
- bl ChangeBagPocketId\n\
- lsls r0, r5, 16\n\
- asrs r1, r0, 16\n\
- adds r5, r0, 0\n\
- cmp r1, 0x1\n\
- bne _081AC07C\n\
- ldr r2, =gPocketNamesStringsTable\n\
- ldrb r0, [r4, 0x5]\n\
- lsls r0, 2\n\
- adds r0, r2\n\
- ldr r0, [r0]\n\
- add r1, sp, 0x8\n\
- ldrb r1, [r1]\n\
- lsls r1, 2\n\
- adds r1, r2\n\
- ldr r1, [r1]\n\
- bl bag_menu_print_pocket_names\n\
- movs r0, 0\n\
- bl bag_menu_copy_pocket_name_to_window\n\
- b _081AC09A\n\
- .pool\n\
-_081AC07C:\n\
- ldr r2, =gPocketNamesStringsTable\n\
- add r0, sp, 0x8\n\
- ldrb r0, [r0]\n\
- lsls r0, 2\n\
- adds r0, r2\n\
- ldr r0, [r0]\n\
- ldrb r1, [r4, 0x5]\n\
- lsls r1, 2\n\
- adds r1, r2\n\
- ldr r1, [r1]\n\
- bl bag_menu_print_pocket_names\n\
- movs r0, 0x8\n\
- bl bag_menu_copy_pocket_name_to_window\n\
-_081AC09A:\n\
- ldr r0, =gUnknown_0203CE58\n\
- ldrb r0, [r0, 0x5]\n\
- movs r1, 0\n\
- bl bag_menu_draw_pocket_indicator_square\n\
- add r0, sp, 0x8\n\
- ldrb r0, [r0]\n\
- movs r1, 0x1\n\
- bl bag_menu_draw_pocket_indicator_square\n\
- movs r0, 0xF\n\
- str r0, [sp]\n\
- movs r0, 0x10\n\
- str r0, [sp, 0x4]\n\
- movs r0, 0x2\n\
- movs r1, 0xB\n\
- movs r2, 0xE\n\
- movs r3, 0x2\n\
- bl FillBgTilemapBufferRect_Palette0\n\
- movs r0, 0x2\n\
- bl schedule_bg_copy_tilemap_to_vram\n\
- add r0, sp, 0x8\n\
- ldrb r0, [r0]\n\
- movs r1, 0x1\n\
- bl SetBagVisualPocketId\n\
- movs r0, 0x1\n\
- bl RemoveBagObject\n\
- asrs r0, r5, 16\n\
- bl AddSwitchPocketRotatingBallObject\n\
- ldr r1, =sub_81AC10C\n\
- ldr r2, =gTasks\n\
- lsls r0, r6, 2\n\
- adds r0, r6\n\
- lsls r0, 3\n\
- adds r0, r2\n\
- ldr r2, [r0]\n\
- adds r0, r6, 0\n\
- bl SetTaskFuncWithFollowupFunc\n\
- add sp, 0xC\n\
- pop {r4-r6}\n\
- pop {r0}\n\
- bx r0\n\
- .pool\n\
- .syntax divided\n");
-}
-#endif
void sub_81AC10C(u8 taskId)
{