mirror of
https://github.com/pret/pokediamond.git
synced 2026-08-06 18:53:21 -05:00
138 lines
2.9 KiB
C
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
|