pokediamond/include/itemtool.h
2020-06-22 13:46:40 -04:00

138 lines
2.9 KiB
C

#ifndef POKEDIAMOND_ITEMTOOL_H
#define POKEDIAMOND_ITEMTOOL_H
#include "global.h"
#include "filesystem.h"
#include "constants/items.h"
// Berries (nutdata)
struct NutData
{
u16 unk0;
u8 unk2;
u8 unk3;
u8 unk4;
u8 unk5;
u8 unk6;
u8 unk7;
u8 unk8;
u8 unk9;
u8 unkA;
u8 unkB;
};
struct ItemSlot
{
u16 id;
u16 quantity;
};
struct ItemDataSub
{
u8 unk0_0:1;
u8 unk0_1:1;
u8 unk0_2:1;
u8 unk0_3:1;
u8 unk0_4:1;
u8 unk0_5:1;
u8 unk0_6:1;
u8 unk0_7:1;
u8 unk1_0:1;
u8 unk1_1:1;
u8 unk1_2:1;
u8 unk1_3:1;
u8 unk1_4:4;
u8 unk2_0:4;
u8 unk2_4:4;
u8 unk3_0:4;
u8 unk3_4:4;
u8 unk4_0:4;
u8 unk4_4:2;
u8 unk4_6:1;
u8 unk4_7:1;
u8 unk5_0:1;
u8 unk5_1:1;
u8 unk5_2:1;
u8 unk5_3:1;
u8 unk5_4:1;
u8 unk5_5:1;
u8 unk5_6:1;
u8 unk5_7:1;
u8 unk6_0:1;
u8 unk6_1:1;
u8 unk6_2:1;
u8 unk6_3:1;
s8 unk7;
s8 unk8;
s8 unk9;
s8 unkA;
s8 unkB;
s8 unkC;
u8 unkD;
u8 unkE;
s8 unkF;
s8 unk10;
s8 unk11;
u8 paddding[4];
};
struct ItemData
{
u16 price;
u8 holdEffect;
u8 holdEffectParam;
u8 unk4;
u8 unk5;
u8 unk6;
u8 naturalGiftPower;
u16 unk8_0:5;
u16 unk8_5:1;
u16 unk8_6:1;
u16 pocket:4;
u16 unk8_B:5;
u8 unkA;
u8 unkB;
u8 unkC;
u8 padding;
union {
u8 flat;
struct ItemDataSub sub;
} unkE;
};
NARC * OpenNutsDataNarc(u32 heap_id);
struct NutData * ReadNutDataFromNarc(NARC * narc, u32 berry_idx, u32 heap_id);
void CloseNutsDataNarc(NARC * narc);
struct NutData * LoadNutDataSingle(s32 berry_idx, u32 heap_id);
struct NutData * LoadNutDataSingleByItemId(s32 item_id, u32 heap_id);
u32 GetNutAttr(struct NutData * nut, u32 attr);
struct String * GetNutName(u32 berry_idx, u32 heap_id);
struct String * GetNutDesc(u32 berry_idx, u32 heap_id);
void MoveItemSlotInList(struct ItemSlot * itemSlots, u16 from, u16 to);
u16 GetItemIndexMapping(u16 a0, u16 a1);
u16 UpConvertItemId_Gen3to4(u16 a0);
int FUN_0206E708();
int FUN_0206E70C();
void * LoadItemDataOrGfx(u16 a0, u16 a1, u32 heap_id);
void GetItemNameIntoString(struct String * dest, u16 item_id, u32 heap_no);
void GetItemDescIntoString(struct String * dest, u16 item_id, u32 heap_no);
u32 GetItemAttr(u16 item, u32 attr, u32 heap_id);
u32 GetItemAttr_PreloadedItemData(struct ItemData * itemData, u32 attr);
u32 GetItemAttrSub(struct ItemDataSub * sub, u32 attr);
u16 TMHMGetMove(u16 a0);
BOOL MoveIsHM(u16 a0);
u8 ItemToTMHMId(u16 a0);
BOOL ItemIdIsMail(u16 a0);
u8 ItemToMailId(u16 item_id);
u16 MailToItemId(u8 i);
BOOL ItemIdIsBerry(u16 item_id);
u8 ItemToBerryId(u16 item_id);
u16 BerryToItemId(u8 a0);
u8 ItemIsBitter(u16 item_id);
struct ItemData * LoadAllItemData(u32 heap_id);
struct ItemData * GetItemDataPtrFromArray(struct ItemData * a0, u16 item_id);
#endif //POKEDIAMOND_ITEMTOOL_H