summaryrefslogtreecommitdiff
path: root/src/field/item_menu.c
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-12-23 12:57:46 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2017-12-23 12:57:46 -0500
commitfdd7e7cb848747a1e0ace8a63d29aaa22dfd1140 (patch)
tree6ddaed4de52bfcc517d573a8f30c5bd0a1650782 /src/field/item_menu.c
parentbb8f652504f886af296ffcaac57bf76cdc893c97 (diff)
parent1c1ce902515ccb3ccecde29611711c9b1a3ce955 (diff)
Merge branch 'master' into cable_car
Diffstat (limited to 'src/field/item_menu.c')
-rw-r--r--src/field/item_menu.c156
1 files changed, 75 insertions, 81 deletions
diff --git a/src/field/item_menu.c b/src/field/item_menu.c
index c508bcacf..4e283ffe9 100644
--- a/src/field/item_menu.c
+++ b/src/field/item_menu.c
@@ -8,7 +8,7 @@
#include "field_player_avatar.h"
#include "graphics.h"
#include "item.h"
-#include "items.h"
+#include "constants/items.h"
#include "item_menu.h"
#include "item_use.h"
#include "link.h"
@@ -25,7 +25,7 @@
#include "pokemon_menu.h"
#include "overworld.h"
#include "script.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
#include "strings.h"
@@ -34,9 +34,9 @@
#include "task.h"
#include "text.h"
#include "unknown_task.h"
+#include "ewram.h"
// External stuff
-extern u8 ewram[];
extern void gpu_pal_allocator_reset__manage_upper_four(void);
extern void sub_80F9020(void);
extern void sub_80F9988();
@@ -138,7 +138,7 @@ EWRAM_DATA static s8 sCurrentBagPocket = 0;
EWRAM_DATA static u8 gUnknown_0203855A = 0;
EWRAM_DATA static s8 gUnknown_0203855B = 0;
EWRAM_DATA static s8 gUnknown_0203855C = 0;
-EWRAM_DATA u16 gScriptItemId = 0;
+EWRAM_DATA u16 gSpecialVar_ItemId = 0;
EWRAM_DATA u8 gUnknown_02038560 = 0;
EWRAM_DATA u8 gUnknown_02038561 = 0;
EWRAM_DATA static u8 gUnknown_02038562 = 0;
@@ -158,12 +158,6 @@ extern struct PocketScrollState gBagPocketScrollStates[];
extern struct ItemSlot *gCurrentBagPocketItemSlots; // selected pocket item slots
extern const u8 Event_NoRegisteredItem[];
-#define ewramBerryPic (ewram + 0)
-#define ewramBerryPicTemp (ewram + 0x1000)
-#define ewramSavedItemsPocket ((struct ItemSlot *)(ewram + 0x1E000)) // saved items pocket (for Wally battle)
-#define ewramSavedPokeballsPocket ((struct ItemSlot *)(ewram + 0x1F000)) // saved Pokeballs pocket (for Wally battle)
-#define ewramBagSetupStep (ewram[0x1FFFF])
-
extern const struct CompressedSpriteSheet sMaleBagSpriteSheet;
extern const struct CompressedSpriteSheet sFemaleBagSpriteSheet;
extern const struct CompressedSpritePalette sBagSpritePalette;
@@ -1668,7 +1662,7 @@ static void sub_80A4BF0(u16 *a)
const u8 *text;
if (i == 0)
- text = sub_80A4B90(gScriptItemId);
+ text = sub_80A4B90(gSpecialVar_ItemId);
else
text = sItemPopupMenuActions[sPopupMenuActionList[i]].text;
MenuPrint(text, 1 + (i / 2) * 6, 8 + (i % 2) * 2);
@@ -1855,7 +1849,7 @@ static void sub_80A50C8(u8 taskId)
{
if (r5[10] == 0)
{
- gScriptItemId = 0;
+ gSpecialVar_ItemId = 0;
gUnknown_083C16BC[sReturnLocation].onBagClose(taskId);
}
else
@@ -1870,7 +1864,7 @@ static void sub_80A50C8(u8 taskId)
{
PlaySE(SE_SELECT);
gUnknown_02038560 = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos;
- gScriptItemId = gCurrentBagPocketItemSlots[gUnknown_02038560].itemId;
+ gSpecialVar_ItemId = gCurrentBagPocketItemSlots[gUnknown_02038560].itemId;
gUnknown_083C16BC[sReturnLocation].onItemSelect(taskId);
sub_80F98A4(0);
sub_80F98A4(1);
@@ -1893,7 +1887,7 @@ static void sub_80A50C8(u8 taskId)
{
if (sReturnLocation != RETURN_TO_FIELD_5)
{
- gScriptItemId = 0;
+ gSpecialVar_ItemId = 0;
gUnknown_083C16BC[sReturnLocation].onBagClose(taskId);
}
}
@@ -2533,7 +2527,7 @@ static void sub_80A57C4(void)
gUnknown_02038564 = 1;
r5 = 9;
}
- else if (sub_80F92F4(gScriptItemId) == 0)
+ else if (sub_80F92F4(gSpecialVar_ItemId) == 0)
{
sPopupMenuActionList = gUnknown_083C16AE[4];
gUnknown_02038564 = 1;
@@ -2660,10 +2654,10 @@ void sub_80A5B40(void)
static void HandlePopupMenuAction_UseOnField(u8 taskId)
{
- if (ItemId_GetFieldFunc(gScriptItemId) != NULL)
+ if (ItemId_GetFieldFunc(gSpecialVar_ItemId) != NULL)
{
PlaySE(SE_SELECT);
- if (CalculatePlayerPartyCount() == 0 && ItemId_GetType(gScriptItemId) == 1)
+ if (CalculatePlayerPartyCount() == 0 && ItemId_GetType(gSpecialVar_ItemId) == 1)
{
sub_80A5BF8(taskId);
}
@@ -2671,7 +2665,7 @@ static void HandlePopupMenuAction_UseOnField(u8 taskId)
{
gTasks[taskId].data[2] = 0;
if (sCurrentBagPocket != BAG_POCKET_BERRIES)
- ItemId_GetFieldFunc(gScriptItemId)(taskId);
+ ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId);
else
sub_80C9C7C(taskId);
}
@@ -2799,7 +2793,7 @@ static void sub_80A5EA0(u8 taskId)
if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
- sub_80A5DA0(gScriptItemId, gTasks[taskId].data[1]);
+ sub_80A5DA0(gSpecialVar_ItemId, gTasks[taskId].data[1]);
DoYesNoFuncWithChoice(taskId, &gUnknown_083C16F4);
}
else if (gMain.newKeys & B_BUTTON)
@@ -2833,7 +2827,7 @@ static void sub_80A5F80(u8 taskId)
static void HandlePopupMenuAction_Register(u8 taskId)
{
PlaySE(SE_SELECT);
- if (gSaveBlock1.registeredItem == gScriptItemId)
+ if (gSaveBlock1.registeredItem == gSpecialVar_ItemId)
{
// Un-register the registered item
RemoveSelectIconFromRegisteredItem();
@@ -2842,7 +2836,7 @@ static void HandlePopupMenuAction_Register(u8 taskId)
else
{
AddSelectIconToRegisteredItem();
- gSaveBlock1.registeredItem = gScriptItemId;
+ gSaveBlock1.registeredItem = gSpecialVar_ItemId;
}
sub_80A7528(0);
sub_80A41D4(taskId);
@@ -2871,7 +2865,7 @@ static void sub_80A6024(u8 taskId)
static void DisplayCannotBeHeldMessage(u8 taskId)
{
sub_80A73FC();
- CopyItemName(gScriptItemId, gStringVar1);
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gOtherText_CantBeHeld);
sub_80A7590();
DisplayCannotUseItemMessage(taskId, gStringVar4, sub_80A6024, 1);
@@ -2880,13 +2874,13 @@ static void DisplayCannotBeHeldMessage(u8 taskId)
static void HandlePopupMenuAction_Give(u8 taskId)
{
PlaySE(SE_SELECT);
- if (sub_80F931C(gScriptItemId) == 0)
+ if (sub_80F931C(gSpecialVar_ItemId) == 0)
{
sub_80A73FC();
sub_80A7590();
DisplayCannotUseItemMessage(taskId, gOtherText_CantWriteMail, sub_80A6024, 1);
}
- else if (ItemId_GetImportance(gScriptItemId) == 0)
+ else if (ItemId_GetImportance(gSpecialVar_ItemId) == 0)
{
if (CalculatePlayerPartyCount() == 0)
{
@@ -2937,21 +2931,21 @@ static void OnItemSelect_PkmnList(u8 taskId)
{
u8 r6 = sCurrentBagPocket + 1;
- if (sub_80F931C(gScriptItemId) == 0)
+ if (sub_80F931C(gSpecialVar_ItemId) == 0)
{
sub_80A73FC();
sub_80A7590();
DisplayCannotUseItemMessage(taskId, gOtherText_CantWriteMail, sub_80A6024, 1);
}
- else if (sub_80F92F4(gScriptItemId) == 0)
+ else if (sub_80F92F4(gSpecialVar_ItemId) == 0)
{
sub_80A73FC();
- CopyItemName(gScriptItemId, gStringVar1);
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gOtherText_CantBeHeldHere);
sub_80A7590();
DisplayCannotUseItemMessage(taskId, gStringVar4, sub_80A6024, 1);
}
- else if (r6 != 5 && ItemId_GetImportance(gScriptItemId) == 0)
+ else if (r6 != 5 && ItemId_GetImportance(gSpecialVar_ItemId) == 0)
{
gTasks[taskId].data[8] = (u32)sub_808A3F8 >> 16;
gTasks[taskId].data[9] = (u32)sub_808A3F8;
@@ -2989,8 +2983,8 @@ static void OnItemSelect_Shop(u8 taskId)
gTasks[taskId].data[10] = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos + 1;
sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos);
sub_80A73FC();
- CopyItemName(gScriptItemId, gStringVar2);
- if (ItemId_GetPrice(gScriptItemId) == 0)
+ CopyItemName(gSpecialVar_ItemId, gStringVar2);
+ if (ItemId_GetPrice(gSpecialVar_ItemId) == 0)
{
StringExpandPlaceholders(gStringVar4, gOtherText_CantBuyThat);
DisplayCannotUseItemMessage(taskId, gStringVar4, sub_80A6444, 1);
@@ -3031,7 +3025,7 @@ static void sub_80A648C(u8 taskId)
sub_80A418C(1, 1, 1, 11, 3);
else
sub_80A418C(1, 1, 1, 11, 2);
- BuyMenuDisplayMessage(gScriptItemId, 1);
+ BuyMenuDisplayMessage(gSpecialVar_ItemId, 1);
sub_80A683C();
}
@@ -3053,7 +3047,7 @@ static void sub_80A6548(u8 taskId)
static void sub_80A6574(u8 taskId)
{
PlaySE(SE_REGI);
- sub_80A6870(gScriptItemId, gTasks[taskId].data[1]);
+ sub_80A6870(gSpecialVar_ItemId, gTasks[taskId].data[1]);
gTasks[taskId].func = sub_80A6548;
}
@@ -3061,7 +3055,7 @@ static void sub_80A65AC(u8 taskId)
{
MenuZeroFillWindowRect(7, 6, 13, 12);
sub_80A36B8(gBGTilemapBuffers[1], 7, 6, 6, 6);
- CopyItemName(gScriptItemId, gStringVar2);
+ CopyItemName(gSpecialVar_ItemId, gStringVar2);
StringExpandPlaceholders(gStringVar4, gOtherText_SoldItem);
DisplayCannotUseItemMessage(taskId, gStringVar4, sub_80A6574, 1);
sub_80A3D5C(taskId);
@@ -3085,14 +3079,14 @@ static void Task_BuyHowManyDialogueHandleInput(u8 taskId)
if (sub_80A5350(taskId) == TRUE)
{
MenuZeroFillWindowRect(6, 11, 12, 11);
- BuyMenuDisplayMessage(gScriptItemId, gTasks[taskId].data[1]);
+ BuyMenuDisplayMessage(gSpecialVar_ItemId, gTasks[taskId].data[1]);
}
else if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
MenuZeroFillWindowRect(0, 10, 13, 13);
sub_80A36B8(gBGTilemapBuffers[1], 0, 10, 13, 3);
- ConvertIntToDecimalStringN(gStringVar1, ItemId_GetPrice(gScriptItemId) / 2 * gTasks[taskId].data[1], STR_CONV_MODE_LEFT_ALIGN, 6);
+ ConvertIntToDecimalStringN(gStringVar1, ItemId_GetPrice(gSpecialVar_ItemId) / 2 * gTasks[taskId].data[1], STR_CONV_MODE_LEFT_ALIGN, 6);
StringExpandPlaceholders(gStringVar4, gOtherText_CanPay);
DisplayCannotUseItemMessage(taskId, gStringVar4, sub_80A6650, 1);
}
@@ -3233,7 +3227,7 @@ static void sub_80A6A84(u8 taskId)
s16 *taskData = gTasks[taskId].data;
sub_80A4DA4(gBGTilemapBuffers[1]);
- CopyItemName(gScriptItemId, gStringVar1);
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
ConvertIntToDecimalStringN(gStringVar2, taskData[1], STR_CONV_MODE_LEFT_ALIGN, 3);
MenuZeroFillWindowRect(7, 6, 11, 13);
sub_80A7528(7);
@@ -3256,14 +3250,14 @@ static void sub_80A6B64(u8 taskId)
{
s16 *taskData = gTasks[taskId].data;
- if (ItemId_GetImportance(gScriptItemId) == 2)
+ if (ItemId_GetImportance(gSpecialVar_ItemId) == 2)
{
gTasks[taskId].func = sub_80A6B00;
sub_80A7528(9);
}
else
{
- if (AddPCItem(gScriptItemId, taskData[1]) == TRUE)
+ if (AddPCItem(gSpecialVar_ItemId, taskData[1]) == TRUE)
{
sub_80A6A84(taskId);
}
@@ -3331,7 +3325,7 @@ bool32 sub_80A6D1C(void)
FreezeMapObjects();
sub_80594C0();
sub_80597F4();
- gScriptItemId = gSaveBlock1.registeredItem;
+ gSpecialVar_ItemId = gSaveBlock1.registeredItem;
taskId = CreateTask(ItemId_GetFieldFunc(gSaveBlock1.registeredItem), 8);
gTasks[taskId].data[2] = 1;
return TRUE;
@@ -3421,7 +3415,7 @@ static const u8 gUnknown_083C170A[] = {5, 0};
static void sub_80A6FDC(void)
{
- if (ItemId_GetBattleUsage(gScriptItemId) != 0)
+ if (ItemId_GetBattleUsage(gSpecialVar_ItemId) != 0)
{
sPopupMenuActionList = gUnknown_083C1708;
gUnknown_02038564 = 2;
@@ -3460,10 +3454,10 @@ static void OnBagClose_Battle(u8 taskId)
static void HandlePopupMenuAction_UseInBattle(u8 taskId)
{
- if (ItemId_GetBattleFunc(gScriptItemId) != NULL)
+ if (ItemId_GetBattleFunc(gSpecialVar_ItemId) != NULL)
{
PlaySE(SE_SELECT);
- ItemId_GetBattleFunc(gScriptItemId)(taskId);
+ ItemId_GetBattleFunc(gSpecialVar_ItemId)(taskId);
}
}
@@ -3531,7 +3525,7 @@ static void sub_80A7230(u8 taskId)
PlaySE(SE_SELECT);
sub_80F98A4(2);
sub_80F98A4(3);
- gScriptItemId = ITEM_POKE_BALL;
+ gSpecialVar_ItemId = ITEM_POKE_BALL;
sPopupMenuActionList = gUnknown_083C1708;
gUnknown_02038564 = 2;
gTasks[taskId].data[10] = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos + 1;
@@ -3830,7 +3824,7 @@ static void sub_80A7768(void)
int var;
if (r4->unk1 == 1)
- text = sub_80A4B90(gScriptItemId);
+ text = sub_80A4B90(gSpecialVar_ItemId);
else
text = sItemPopupMenuActions[sPopupMenuActionList[r4->unk1 - 1]].text;
var = r4->unk1 - 1;
@@ -4086,11 +4080,11 @@ static const struct CompressedSpritePalette sBagSpritePalette = {gBagPalette, 30
static void sub_80A7998(struct Sprite *sprite)
{
sprite->animNum = 0;
- sprite->data0 = 0;
- sprite->data1 = 0;
- sprite->data2 = 0;
- sprite->data3 = 0;
- sprite->data4 = 0;
+ sprite->data[0] = 0;
+ sprite->data[1] = 0;
+ sprite->data[2] = 0;
+ sprite->data[3] = 0;
+ sprite->data[4] = 0;
sprite->callback = sub_80A79B4;
}
@@ -4104,7 +4098,7 @@ static void sub_80A79B4(struct Sprite *sprite)
static void sub_80A79EC(struct Sprite *sprite)
{
- switch (sprite->data3)
+ switch (sprite->data[3])
{
case 0:
if (gUnknown_0203855B != 6)
@@ -4118,26 +4112,26 @@ static void sub_80A79EC(struct Sprite *sprite)
sprite->animBeginning = TRUE;
sprite->animNum = 0;
sprite->pos1.y -= 4;
- sprite->data0 = 4;
- sprite->data3 = 1;
+ sprite->data[0] = 4;
+ sprite->data[3] = 1;
sub_80A7AE4(sprite);
}
break;
case 1:
- if (sprite->data0 != 0)
+ if (sprite->data[0] != 0)
{
- if (sprite->data1 != 0)
+ if (sprite->data[1] != 0)
{
sprite->pos1.y++;
- sprite->data0--;
+ sprite->data[0]--;
}
- sprite->data1 = (sprite->data1 + 1) & 1;
+ sprite->data[1] = (sprite->data[1] + 1) & 1;
}
else
{
gUnknown_0203855B = -1;
- sprite->data1 = 0;
- sprite->data3 = 0;
+ sprite->data[1] = 0;
+ sprite->data[3] = 0;
}
break;
}
@@ -4145,17 +4139,17 @@ static void sub_80A79EC(struct Sprite *sprite)
static void sub_80A7A94(struct Sprite *sprite)
{
- switch (sprite->data4)
+ switch (sprite->data[4])
{
case 0:
sprite->oam.affineMode = 1;
sprite->affineAnims = sBagSpriteAffineAnimTable;
InitSpriteAffineAnim(sprite);
- sprite->data4 = 1;
+ sprite->data[4] = 1;
break;
case 1:
- sprite->data2++;
- if (sprite->data2 == 12)
+ sprite->data[2]++;
+ if (sprite->data[2] == 12)
sub_80A7AE4(sprite);
break;
}
@@ -4165,8 +4159,8 @@ static void sub_80A7AE4(struct Sprite *sprite)
{
gUnknown_0203855C = 0;
sprite->oam.affineMode = 0;
- sprite->data2 = 0;
- sprite->data4 = 0;
+ sprite->data[2] = 0;
+ sprite->data[4] = 0;
FreeOamMatrix(sprite->oam.matrixNum);
}
@@ -4234,45 +4228,45 @@ static const struct SpritePalette sPokeballSpritePalette = {gPalette_83C170C, 8}
static void sub_80A7B28(struct Sprite *sprite)
{
- sprite->data3 = 0;
- sprite->data0 = 0;
+ sprite->data[3] = 0;
+ sprite->data[0] = 0;
sub_80A7B6C(sprite);
sprite->callback = sub_80A7B6C;
}
static void sub_80A7B48(struct Sprite *sprite)
{
- sprite->centerToCornerVecX = sprite->data5 - ((sprite->data0 + 1) & 1);
- sprite->centerToCornerVecY = sprite->data6 - ((sprite->data0 + 1) & 1);
+ sprite->centerToCornerVecX = sprite->data[5] - ((sprite->data[0] + 1) & 1);
+ sprite->centerToCornerVecY = sprite->data[6] - ((sprite->data[0] + 1) & 1);
}
static void sub_80A7B6C(struct Sprite *sprite)
{
- if (sprite->data7 != 0)
+ if (sprite->data[7] != 0)
{
- switch (sprite->data3)
+ switch (sprite->data[3])
{
case 0:
sprite->oam.affineMode = 1;
- if (sprite->data7 == 1)
+ if (sprite->data[7] == 1)
sprite->affineAnims = gSpriteAffineAnimTable_83C1D20;
else
sprite->affineAnims = gSpriteAffineAnimTable_83C1D20 + 1;
InitSpriteAffineAnim(sprite);
- sprite->data3 = 1;
- sprite->data5 = sprite->centerToCornerVecX;
- sprite->data6 = sprite->centerToCornerVecY;
+ sprite->data[3] = 1;
+ sprite->data[5] = sprite->centerToCornerVecX;
+ sprite->data[6] = sprite->centerToCornerVecY;
sub_80A7B48(sprite);
break;
case 1:
- sprite->data0++;
+ sprite->data[0]++;
sub_80A7B48(sprite);
- if (sprite->data0 == 32)
+ if (sprite->data[0] == 32)
{
- sprite->data0 = 0;
- sprite->data3 = 0;
- sprite->centerToCornerVecX = sprite->data5;
- sprite->centerToCornerVecY = sprite->data6;
+ sprite->data[0] = 0;
+ sprite->data[3] = 0;
+ sprite->centerToCornerVecX = sprite->data[5];
+ sprite->centerToCornerVecY = sprite->data[6];
FreeOamMatrix(sprite->oam.matrixNum);
sprite->oam.affineMode = 0;
sprite->callback = SpriteCallbackDummy;
@@ -4297,7 +4291,7 @@ static void CreateBagPokeballSprite(u8 a)
{
LoadSpritePalette(&sPokeballSpritePalette);
sPokeballSpriteId = CreateSprite(&sPokeballSpriteTemplate, 16, 88, 0);
- gSprites[sPokeballSpriteId].data7 = a;
+ gSprites[sPokeballSpriteId].data[7] = a;
}
static void sub_80A7C64(void)