summaryrefslogtreecommitdiff
path: root/arm9/src/itemtool.c
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/src/itemtool.c')
-rw-r--r--arm9/src/itemtool.c119
1 files changed, 59 insertions, 60 deletions
diff --git a/arm9/src/itemtool.c b/arm9/src/itemtool.c
index fb4097a3..2c389512 100644
--- a/arm9/src/itemtool.c
+++ b/arm9/src/itemtool.c
@@ -6,7 +6,7 @@
#pragma thumb on
-const u16 UNK_020F8454[] = {
+static const u16 sMailIdxs[] = {
ITEM_GRASS_MAIL,
ITEM_FLAME_MAIL,
ITEM_BUBBLE_MAIL,
@@ -21,7 +21,7 @@ const u16 UNK_020F8454[] = {
ITEM_BRICK_MAIL,
};
-const u16 UNK_020F846C[] = {
+static const u16 sBerryIdxs[] = {
ITEM_CHERI_BERRY,
ITEM_CHESTO_BERRY,
ITEM_PECHA_BERRY,
@@ -88,7 +88,7 @@ const u16 UNK_020F846C[] = {
ITEM_ROWAP_BERRY,
};
-const u16 UNK_020F84EC[] = {
+static const u16 sTMHMMoves[] = {
MOVE_FOCUS_PUNCH,
MOVE_DRAGON_CLAW,
MOVE_WATER_PULSE,
@@ -191,7 +191,12 @@ const u16 UNK_020F84EC[] = {
MOVE_ROCK_CLIMB,
};
-const u16 UNK_020F85B4[][4] = {
+static const u16 sItemIndexMappings[][4] = {
+ /* Col 1: Offset in item_data.narc
+ * Col 2: Gfx offset in item_icon.narc
+ * Col 3: Pal offset in item_icon.narc
+ * Col 4: Gen 3 item index (for Pal Park conversion)
+ */
{ 0, 699, 700, 0 },
{ 1, 2, 3, 1 },
{ 2, 4, 5, 2 },
@@ -658,7 +663,7 @@ const u16 UNK_020F85B4[][4] = {
{ 440, 598, 599, 285 },
{ 441, 600, 601, 0 },
};
-//
+
//static inline void ShiftItemSlots(struct ItemSlot * itemSlots, s16 from, s16 to, s32 direction)
//{
// for (; direction > 0 ? from < to : from > to; from += direction)
@@ -667,7 +672,7 @@ const u16 UNK_020F85B4[][4] = {
// }
//}
//
-//void FUN_0206E5B4(struct ItemSlot * itemSlots, u16 from, u16 to)
+//void MoveItemSlotInList(struct ItemSlot * itemSlots, u16 from, u16 to)
//{
// if (from != to)
// {
@@ -685,7 +690,7 @@ const u16 UNK_020F85B4[][4] = {
// }
//}
-u16 FUN_0206E640(u16 a0, u16 a1)
+u16 GetItemIndexMapping(u16 a0, u16 a1)
{
switch (a1)
{
@@ -694,35 +699,35 @@ u16 FUN_0206E640(u16 a0, u16 a1)
break;
if (a0 == 0xFFFF)
break;
- return UNK_020F85B4[a0][0];
+ return sItemIndexMappings[a0][0];
case 1:
if (a0 == 0)
return 699;
if (a0 == 0xFFFF)
return 701;
- return UNK_020F85B4[a0][1];
+ return sItemIndexMappings[a0][1];
case 2:
if (a0 == 0)
return 700;
if (a0 == 0xFFFF)
return 702;
- return UNK_020F85B4[a0][2];
+ return sItemIndexMappings[a0][2];
case 3:
if (a0 == 0)
break;
if (a0 == 0xFFFF)
break;
- return UNK_020F85B4[a0][3];
+ return sItemIndexMappings[a0][3];
}
return 0;
}
-u16 FUN_0206E6D8(u16 a0)
+u16 UpConvertItemId_Gen3to4(u16 a0)
{
u16 i;
- for (i = 1; i <= NELEMS(UNK_020F85B4) - 1; i++)
+ for (i = 1; i <= NELEMS(sItemIndexMappings) - 1; i++)
{
- if (a0 == UNK_020F85B4[i][3])
+ if (a0 == sItemIndexMappings[i][3])
return i;
}
return 0;
@@ -738,53 +743,47 @@ int FUN_0206E70C()
return 0;
}
-void * FUN_0206E710(u16 a0, u16 a1, u32 heap_id)
+void * LoadItemDataOrGfx(u16 a0, u16 a1, u32 heap_id)
{
- if (a0 > NELEMS(UNK_020F85B4) - 1)
+ if (a0 > NELEMS(sItemIndexMappings) - 1)
a0 = 0;
switch (a1)
{
case 0:
- return AllocAndReadWholeNarcMemberByIdPair(NARC_ITEMTOOL_ITEMDATA_ITEM_DATA, UNK_020F85B4[a0][0], heap_id);
+ return AllocAndReadWholeNarcMemberByIdPair(NARC_ITEMTOOL_ITEMDATA_ITEM_DATA, sItemIndexMappings[a0][0], heap_id);
case 1:
- return AllocAndReadWholeNarcMemberByIdPair(NARC_ITEMTOOL_ITEMDATA_ITEM_ICON, UNK_020F85B4[a0][1], heap_id);
+ return AllocAndReadWholeNarcMemberByIdPair(NARC_ITEMTOOL_ITEMDATA_ITEM_ICON, sItemIndexMappings[a0][1], heap_id);
case 2:
- return AllocAndReadWholeNarcMemberByIdPair(NARC_ITEMTOOL_ITEMDATA_ITEM_ICON, UNK_020F85B4[a0][2], heap_id);
+ return AllocAndReadWholeNarcMemberByIdPair(NARC_ITEMTOOL_ITEMDATA_ITEM_ICON, sItemIndexMappings[a0][2], heap_id);
default:
return NULL;
}
}
-void FUN_0206E768(struct String * dest, u16 item_id, u32 heap_no)
+void GetItemNameIntoString(struct String * dest, u16 item_id, u32 heap_no)
{
struct MsgData * msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 344, heap_no);
ReadMsgDataIntoString(msgData, item_id, dest);
DestroyMsgData(msgData);
}
-void FUN_0206E790(struct String * dest, u16 item_id, u32 heap_no)
+void GetItemDescIntoString(struct String * dest, u16 item_id, u32 heap_no)
{
struct MsgData * msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 343, heap_no);
ReadMsgDataIntoString(msgData, item_id, dest);
DestroyMsgData(msgData);
}
-struct ItemData;
-
-u32 FUN_0206E7DC(struct ItemData * itemData, u32 attr);
-
-u32 FUN_0206E7B8(u16 item, u32 attr, u32 heap_id)
+u32 GetItemAttr(u16 item, u32 attr, u32 heap_id)
{
u32 ret;
- struct ItemData * itemData = (struct ItemData *)FUN_0206E710(item, 0, heap_id);
- ret = FUN_0206E7DC(itemData, attr);
+ struct ItemData * itemData = (struct ItemData *)LoadItemDataOrGfx(item, 0, heap_id);
+ ret = GetItemAttr_PreloadedItemData(itemData, attr);
FUN_02016A8C(heap_id, itemData);
return ret;
}
-u32 FUN_0206E878(struct ItemDataSub * a0, u32 attr);
-
-u32 FUN_0206E7DC(struct ItemData * itemData, u32 attr)
+u32 GetItemAttr_PreloadedItemData(struct ItemData * itemData, u32 attr)
{
switch (attr)
{
@@ -824,14 +823,14 @@ u32 FUN_0206E7DC(struct ItemData * itemData, u32 attr)
case 0:
return itemData->unkE.flat;
case 1:
- return FUN_0206E878(&itemData->unkE.sub, attr);
+ return GetItemAttrSub(&itemData->unkE.sub, attr);
default:
return 0;
}
}
}
-u32 FUN_0206E878(struct ItemDataSub * sub, u32 attr)
+u32 GetItemAttrSub(struct ItemDataSub * sub, u32 attr)
{
switch (attr)
{
@@ -928,101 +927,101 @@ u32 FUN_0206E878(struct ItemDataSub * sub, u32 attr)
}
}
-u16 FUN_0206EA30(u16 a0)
+u16 TMHMGetMove(u16 a0)
{
if (a0 < ITEM_TM01 || a0 > ITEM_HM08)
return MOVE_NONE;
a0 -= ITEM_TM01;
- return UNK_020F84EC[a0];
+ return sTMHMMoves[a0];
}
-BOOL FUN_0206EA54(u16 a0)
+BOOL MoveIsHM(u16 a0)
{
u8 i;
for (i = 0; i < 8; i++)
{
- if (a0 == UNK_020F84EC[i + NUM_TMS])
+ if (a0 == sTMHMMoves[i + NUM_TMS])
return TRUE;
}
return FALSE;
}
-u8 FUN_0206EA7C(u16 a0)
+u8 ItemToTMHMId(u16 a0)
{
if (a0 < ITEM_TM01 || a0 > ITEM_HM08)
return 0;
return (u8)(a0 - ITEM_TM01);
}
-BOOL FUN_0206EA98(u16 a0)
+BOOL ItemIdIsMail(u16 a0)
{
u32 i;
for (i = 0; i < 12; i++)
{
- if (a0 == UNK_020F8454[i])
+ if (a0 == sMailIdxs[i])
return TRUE;
}
return FALSE;
}
-u8 FUN_0206EAB8(u16 a0)
+u8 ItemToMailId(u16 a0)
{
u32 i;
for (i = 0; i < 12; i++)
{
- if (a0 == UNK_020F8454[i])
+ if (a0 == sMailIdxs[i])
return (u8)i;
}
return 0;
}
-u16 FUN_0206EAD8(u8 i)
+u16 MailToItemId(u8 i)
{
if (i >= 12)
return 0;
- return UNK_020F8454[i];
+ return sMailIdxs[i];
}
-BOOL FUN_0206EAEC(u16 a0)
+BOOL ItemIdIsBerry(u16 a0)
{
u32 i;
for (i = 0; i < 64; i++)
{
- if (a0 == UNK_020F846C[i])
+ if (a0 == sBerryIdxs[i])
return TRUE;
}
return FALSE;
}
-u8 FUN_0206EB0C(u16 a0)
+u8 ItemToBerryId(u16 item_id)
{
- if (a0 < FIRST_BERRY_IDX)
+ if (item_id < FIRST_BERRY_IDX)
return 0xFF;
- return (u8)(a0 - FIRST_BERRY_IDX);
+ return (u8)(item_id - FIRST_BERRY_IDX);
}
-u16 FUN_0206EB1C(u8 a0)
+u16 BerryToItemId(u8 a0)
{
if (a0 >= NUM_BERRIES)
return 0xFFFF;
- return UNK_020F846C[a0];
+ return sBerryIdxs[a0];
}
-u8 FUN_0206EB34(u16 a0)
+u8 ItemIsBitter(u16 item_id)
{
- return a0 == ITEM_ENERGYPOWDER ||
- a0 == ITEM_ENERGY_ROOT ||
- a0 == ITEM_HEAL_POWDER ||
- a0 == ITEM_REVIVAL_HERB;
+ return item_id == ITEM_ENERGYPOWDER ||
+ item_id == ITEM_ENERGY_ROOT ||
+ item_id == ITEM_HEAL_POWDER ||
+ item_id == ITEM_REVIVAL_HERB;
}
-struct ItemData * FUN_0206EB50(u16 a0)
+struct ItemData * LoadAllItemData(u32 heap_id)
{
- return AllocAndReadFromNarcMemberByIdPair(NARC_ITEMTOOL_ITEMDATA_ITEM_DATA, 0, a0, 0, sizeof(struct ItemData) * FUN_0206E640(ITEM_SECRETPOTION, 0));
+ return AllocAndReadFromNarcMemberByIdPair(NARC_ITEMTOOL_ITEMDATA_ITEM_DATA, 0, heap_id, 0, sizeof(struct ItemData) * GetItemIndexMapping(ITEM_SECRETPOTION, 0));
}
-struct ItemData * FUN_0206EB78(struct ItemData * a0, u16 a1)
+struct ItemData * GetItemDataPtrFromArray(struct ItemData * a0, u16 item_id)
{
- return a0 + a1;
+ return a0 + item_id;
}