summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/friend_area_action_menu.h2
-rw-r--r--include/friend_rescue.h2
-rw-r--r--include/item.h270
-rw-r--r--include/kangaskhan_storage.h2
-rw-r--r--include/kecleon_items.h4
-rw-r--r--include/pokemon.h2
-rw-r--r--include/save.h2
-rw-r--r--include/subStruct_203B240.h10
-rw-r--r--include/sub_8095228.h2
-rw-r--r--include/team_inventory.h (renamed from include/gUnknown_203B460.h)10
-rw-r--r--include/trade_items_menu.h2
-rw-r--r--include/wonder_mail.h2
12 files changed, 285 insertions, 25 deletions
diff --git a/include/friend_area_action_menu.h b/include/friend_area_action_menu.h
index 7c23336..aa82d6b 100644
--- a/include/friend_area_action_menu.h
+++ b/include/friend_area_action_menu.h
@@ -16,7 +16,7 @@ struct unkStruct_203B2BC
s16 unk8;
u16 unkA;
u32 unkC;
- struct ItemStruct_203B460_ALT unk10;
+ struct ItemSlot_ALT unk10;
u8 unk14;
u8 fill15[3];
struct unkSubStruct_203B2BC *unk18;
diff --git a/include/friend_rescue.h b/include/friend_rescue.h
index 01fee94..f7bbe50 100644
--- a/include/friend_rescue.h
+++ b/include/friend_rescue.h
@@ -21,7 +21,7 @@ struct WonderMailStruct_203B33C
u32 unk35C;
u8 padding5[0x5C];
struct UnkTextStruct2 unk3BC[4];
- struct ItemStruct_203B460 unk41C;
+ struct ItemSlot unk41C;
u32 unk420; // Is this supposed to be a File like 203B2C4?
u8 fill424[0x524 - 0x424];
s32 unk524;
diff --git a/include/item.h b/include/item.h
index ad60657..bb358b5 100644
--- a/include/item.h
+++ b/include/item.h
@@ -21,14 +21,14 @@ struct Item
/* 0x1F */ u8 fill3;
};
-struct ItemStruct_203B460
+struct ItemSlot
{
- u8 unk0;
+ u8 unk0; // some sort of flags, bit 0 seems to indicate an empty slot
u8 numItems;
u8 itemIndex;
};
-struct ItemStruct_203B460_ALT
+struct ItemSlot_ALT
{
u8 itemIndex;
u8 numItems;
@@ -69,22 +69,272 @@ enum ItemCategory
ITEM_CATEGORY_ORBS
};
+// see https://bulbapedia.bulbagarden.net/wiki/List_of_items_by_index_number_(Rescue_Team)
+enum ItemID {
+ ITEM_ID_NOTHING,
+ ITEM_ID_STICK,
+ ITEM_ID_IRON_THORN,
+ ITEM_ID_SILVER_SPIKE,
+ ITEM_ID_GOLD_FANG,
+ ITEM_ID_CACNEA_SPIKE,
+ ITEM_ID_CORSOLA_TWIG,
+ ITEM_ID_GRAVELEROCK,
+ ITEM_ID_GEO_PEBBLE,
+ ITEM_ID_MOBILE_SCARF,
+ ITEM_ID_HEAL_RIBBON,
+ ITEM_ID_TWIST_BAND,
+ ITEM_ID_SCOPE_LENS,
+ ITEM_ID_PATSY_BAND,
+ ITEM_ID_NOSTICK_CAP,
+ ITEM_ID_PIERCE_BAND,
+ ITEM_ID_JOY_RIBBON,
+ ITEM_ID_X_RAY_SPECS,
+ ITEM_ID_PERSIM_BAND,
+ ITEM_ID_POWER_BAND,
+ ITEM_ID_PECHA_SCARF,
+ ITEM_ID_INSOMNISCOPE,
+ ITEM_ID_WARP_SCARF,
+ ITEM_ID_TIGHT_BELT,
+ ITEM_ID_SNEAK_SCARF,
+ ITEM_ID_GOLD_RIBBON,
+ ITEM_ID_GOGGLE_SPECS,
+ ITEM_ID_DIET_RIBBON,
+ ITEM_ID_TRAP_SCARF,
+ ITEM_ID_RACKET_BAND,
+ ITEM_ID_DEF_SCARF,
+ ITEM_ID_STAMINA_BAND,
+ ITEM_ID_PLAIN_RIBBON,
+ ITEM_ID_SPECIAL_BAND,
+ ITEM_ID_ZINC_BAND,
+ ITEM_ID_DETECT_BAND,
+ ITEM_ID_ALERT_SPECS,
+ ITEM_ID_DODGE_SCARF,
+ ITEM_ID_BOUNCE_BAND,
+ ITEM_ID_CURVE_BAND,
+ ITEM_ID_WHIFF_SPECS,
+ ITEM_ID_NO_AIM_SCOPE,
+ ITEM_ID_LOCKON_SPECS,
+ ITEM_ID_MUNCH_BELT,
+ ITEM_ID_PASS_SCARF,
+ ITEM_ID_WEATHER_BAND,
+ ITEM_ID_FRIEND_BOW,
+ ITEM_ID_BEAUTY_SCARF,
+ ITEM_ID_SUN_RIBBON,
+ ITEM_ID_LUNAR_RIBBON,
+ ITEM_ID_RING_D,
+ ITEM_ID_RING_E,
+ ITEM_ID_RING_F,
+ ITEM_ID_HEAL_SEED,
+ ITEM_ID_WISH_STONE,
+ ITEM_ID_ORAN_BERRY,
+ ITEM_ID_SITRUS_BERRY,
+ ITEM_ID_EYEDROP_SEED,
+ ITEM_ID_REVIVER_SEED,
+ ITEM_ID_BLINKER_SEED,
+ ITEM_ID_DOOM_SEED,
+ ITEM_ID_ALLURE_SEED,
+ ITEM_ID_LIFE_SEED,
+ ITEM_ID_RAWST_BERRY,
+ ITEM_ID_HUNGER_SEED,
+ ITEM_ID_QUICK_SEED,
+ ITEM_ID_PECHA_BERRY,
+ ITEM_ID_CHERI_BERRY,
+ ITEM_ID_TOTTER_SEED,
+ ITEM_ID_SLEEP_SEED,
+ ITEM_ID_PLAIN_SEED,
+ ITEM_ID_WARP_SEED,
+ ITEM_ID_BLAST_SEED,
+ ITEM_ID_GINSENG,
+ ITEM_ID_JOY_SEED,
+ ITEM_ID_CHESTO_BERRY,
+ ITEM_ID_STUN_SEED,
+ ITEM_ID_MAX_ELIXIR,
+ ITEM_ID_PROTEIN,
+ ITEM_ID_CALCIUM,
+ ITEM_ID_IRON,
+ ITEM_ID_ZINC,
+ ITEM_ID_APPLE,
+ ITEM_ID_BIG_APPLE,
+ ITEM_ID_GRIMY_FOOD,
+ ITEM_ID_HUGE_APPLE,
+ ITEM_ID_WHITE_GUMMI,
+ ITEM_ID_RED_GUMMI,
+ ITEM_ID_BLUE_GUMMI,
+ ITEM_ID_GRASS_GUMMI,
+ ITEM_ID_YELLOW_GUMMI,
+ ITEM_ID_CLEAR_GUMMI,
+ ITEM_ID_ORANGE_GUMMI,
+ ITEM_ID_PINK_GUMMI,
+ ITEM_ID_BROWN_GUMMI,
+ ITEM_ID_SKY_GUMMI,
+ ITEM_ID_GOLD_GUMMI,
+ ITEM_ID_GREEN_GUMMI,
+ ITEM_ID_GRAY_GUMMI,
+ ITEM_ID_PURPLE_GUMMI,
+ ITEM_ID_ROYAL_GUMMI,
+ ITEM_ID_BLACK_GUMMI,
+ ITEM_ID_SILVER_GUMMI,
+ ITEM_ID_BANANA,
+ ITEM_ID_CHESTNUT,
+ ITEM_ID_POKE, // 105 (0x69)
+ ITEM_ID_UPGRADE,
+ ITEM_ID_KINGS_ROCK,
+ ITEM_ID_THUNDERSTONE,
+ ITEM_ID_DEEPSEASCALE,
+ ITEM_ID_DEEPSEATOOTH,
+ ITEM_ID_SUN_STONE,
+ ITEM_ID_MOON_STONE,
+ ITEM_ID_FIRE_STONE,
+ ITEM_ID_WATER_STONE,
+ ITEM_ID_METAL_COAT,
+ ITEM_ID_LEAF_STONE,
+ ITEM_ID_DRAGON_SCALE,
+ ITEM_ID_LINK_CABLE,
+ ITEM_ID_ICE_PART,
+ ITEM_ID_STEEL_PART,
+ ITEM_ID_ROCK_PART,
+ ITEM_ID_MUSIC_BOX,
+ ITEM_ID_KEY,
+ ITEM_ID_USED_TM,
+ ITEM_ID_FOCUS_PUNCH,
+ ITEM_ID_DRAGON_CLAW,
+ ITEM_ID_WATER_PULSE,
+ ITEM_ID_CALM_MIND,
+ ITEM_ID_ROAR,
+ ITEM_ID_TOXIC,
+ ITEM_ID_HAIL_ORB,
+ ITEM_ID_BULK_UP,
+ ITEM_ID_BULLET_SEED,
+ ITEM_ID_HIDDEN_POWER,
+ ITEM_ID_SUNNY_ORB,
+ ITEM_ID_TAUNT,
+ ITEM_ID_ICE_BEAM,
+ ITEM_ID_BLIZZARD,
+ ITEM_ID_HYPER_BEAM,
+ ITEM_ID_LIGHT_SCREEN,
+ ITEM_ID_PROTECT,
+ ITEM_ID_RAINY_ORB,
+ ITEM_ID_GIGA_DRAIN,
+ ITEM_ID_SAFEGUARD,
+ ITEM_ID_FRUSTRATION,
+ ITEM_ID_SOLARBEAM,
+ ITEM_ID_IRON_TAIL,
+ ITEM_ID_THUNDERBOLT,
+ ITEM_ID_THUNDER,
+ ITEM_ID_EARTHQUAKE,
+ ITEM_ID_RETURN,
+ ITEM_ID_DIG,
+ ITEM_ID_PSYCHIC,
+ ITEM_ID_SHADOW_BALL,
+ ITEM_ID_BRICK_BREAK,
+ ITEM_ID_EVASION_ORB,
+ ITEM_ID_REFLECT,
+ ITEM_ID_SHOCK_WAVE,
+ ITEM_ID_FLAMETHROWER,
+ ITEM_ID_SLUDGE_BOMB,
+ ITEM_ID_SANDY_ORB,
+ ITEM_ID_FIRE_BLAST,
+ ITEM_ID_ROCKY_ORB,
+ ITEM_ID_AERIAL_ACE,
+ ITEM_ID_TORMENT,
+ ITEM_ID_FACADE,
+ ITEM_ID_SECRET_POWER,
+ ITEM_ID_REST,
+ ITEM_ID_ATTRACT,
+ ITEM_ID_THIEF,
+ ITEM_ID_STEEL_WING,
+ ITEM_ID_SKILL_SWAP,
+ ITEM_ID_SNATCH_ORB,
+ ITEM_ID_OVERHEAT,
+ ITEM_ID_WIDE_SLASH,
+ ITEM_ID_EXCAVATE,
+ ITEM_ID_SPIN_SLASH,
+ ITEM_ID_SEE_TRAP_ORB,
+ ITEM_ID_MUG_ORB,
+ ITEM_ID_REBOUND_ORB,
+ ITEM_ID_LOB_ORB,
+ ITEM_ID_SWITCHER_ORB,
+ ITEM_ID_BLOWBACK_ORB,
+ ITEM_ID_WARP_ORB,
+ ITEM_ID_TRANSFER_ORB,
+ ITEM_ID_SLOW_ORB,
+ ITEM_ID_QUICK_ORB,
+ ITEM_ID_LUMINOUS_ORB,
+ ITEM_ID_PETRIFY_ORB,
+ ITEM_ID_STAYAWAY_ORB,
+ ITEM_ID_POUNCE_ORB,
+ ITEM_ID_TRAWL_ORB,
+ ITEM_ID_CLEANSE_ORB,
+ ITEM_ID_OBSERVER_ORB,
+ ITEM_ID_DECOY_ORB,
+ ITEM_ID_SLUMBER_ORB,
+ ITEM_ID_TOTTER_ORB,
+ ITEM_ID_TWO_EDGE_ORB,
+ ITEM_ID_SILENCE_ORB,
+ ITEM_ID_ESCAPE_ORB,
+ ITEM_ID_SCANNER_ORB,
+ ITEM_ID_RADAR_ORB,
+ ITEM_ID_DROUGHT_ORB,
+ ITEM_ID_TRAPBUST_ORB,
+ ITEM_ID_ROLLCALL_ORB,
+ ITEM_ID_INVISIFY_ORB,
+ ITEM_ID_ONE_SHOT_ORB,
+ ITEM_ID_IDENTIFY_ORB,
+ ITEM_ID_VACUUM_CUT,
+ ITEM_ID_REVIVER_ORB,
+ ITEM_ID_SHOCKER_ORB,
+ ITEM_ID_SIZEBUST_ORB,
+ ITEM_ID_ONE_ROOM_ORB,
+ ITEM_ID_FILL_IN_ORB,
+ ITEM_ID_TRAPPER_ORB,
+ ITEM_ID_POSSESS_ORB,
+ ITEM_ID_ITEMIZER_ORB,
+ ITEM_ID_HURL_ORB,
+ ITEM_ID_MOBILE_ORB,
+ ITEM_ID_TOSS_ORB,
+ ITEM_ID_STAIRS_ORB,
+ ITEM_ID_LONGTOSS_ORB,
+ ITEM_ID_PIERCE_ORB,
+ ITEM_ID_CUT,
+ ITEM_ID_FLY,
+ ITEM_ID_SURF,
+ ITEM_ID_STRENGTH,
+ ITEM_ID_FLASH,
+ ITEM_ID_ROCK_SMASH,
+ ITEM_ID_WATERFALL,
+ ITEM_ID_DIVE,
+ ITEM_ID_LINK_BOX,
+ ITEM_ID_SWITCH_BOX,
+ ITEM_ID_WEAVILE_FIG,
+ ITEM_ID_MIME_JR_FIG,
+ ITEM_ID_BEATUP_ORB,
+ ITEM_ID_G_MACHINE_6,
+ ITEM_ID_G_MACHINE_7,
+ ITEM_ID_G_MACHINE_8,
+};
+
void LoadItemParameters(void);
-struct unkStruct_203B460 *GetMoneyItemsInfo(void);
+struct TeamInventory *GetMoneyItemsInfo(void);
void InitializeMoneyItems(void);
u8 GetItemType(u8 index);
s32 GetItemBuyPrice(u8 itemIndex);
s32 GetItemSellPrice(u8 itemIndex);
-u8 GetItemOrder(u8 itemIndex);
+s32 GetItemOrder(u8 itemIndex);
u8 GetItemPalette(u8 itemIndex);
u8 GetItemCategory(u8 itemIndex);
u32 GetItemUnkThrow(u8 itemIndex, u32 r1);
u8 *GetItemDescription(u8 itemIndex);
u32 GetItemUnkFood(u8 itemIndex, u32 r1);
-s32 sub_8090A34(void);
-bool8 sub_8090A60(u8 itemIndex);
-void sub_8090A8C(struct ItemStruct_203B460 *param_1,u8 itemIndex,u8 param_3);
-void sub_8090B08(struct ItemStruct_203B460_ALT *param_1,u8 itemIndex);
-void sub_8090B64(struct ItemStruct_203B460 *param_1, struct ItemStruct_203B460_ALT *param_2);
+s32 GetNumberOfFilledInventorySlots(void);
+bool8 IsThrowableItem(u8 itemIndex);
+void sub_8090A8C(struct ItemSlot *param_1,u8 itemIndex,u8 param_3);
+void sub_8090B08(struct ItemSlot_ALT *param_1,u8 itemIndex);
+void sub_8090B64(struct ItemSlot *param_1, struct ItemSlot_ALT *param_2);
+void sub_8090DC4(void* param_1,u8 itemIndex,u32 param_3);
+bool8 AddItemToInventory(const struct ItemSlot* slot);
+void ConvertMoneyItemToMoney();
+void AddToTeamMoney(s32 amount);
+u32 GetMoneyValue(struct ItemSlot* slot);
+u16 GetItemMove(u8 index);
#endif
diff --git a/include/kangaskhan_storage.h b/include/kangaskhan_storage.h
index 15e42bd..fcc9157 100644
--- a/include/kangaskhan_storage.h
+++ b/include/kangaskhan_storage.h
@@ -11,7 +11,7 @@ struct unkStruct_203B208
u32 unk0;
u32 currState;
u32 unk8;
- struct ItemStruct_203B460 unkC;
+ struct ItemSlot unkC;
u32 unk10;
u8 itemIndex; // another itemIndex?
u8 fill15[0x3];
diff --git a/include/kecleon_items.h b/include/kecleon_items.h
index 122fe3f..1dba655 100644
--- a/include/kecleon_items.h
+++ b/include/kecleon_items.h
@@ -1,7 +1,7 @@
#ifndef GUARD_KECLEON_ITEMS_H
#define GUARD_KECLEON_ITEMS_H
-#include "gUnknown_203B460.h"
+#include "team_inventory.h"
#include "text.h"
#include "menu.h"
@@ -16,7 +16,7 @@ struct unkStruct_203B210
s32 itemSellPrice;
u32 unk14;
u32 unk18;
- struct ItemStruct_203B460 unk1C;
+ struct ItemSlot unk1C;
u8 unk20;
u8 unk21;
u8 unk22;
diff --git a/include/pokemon.h b/include/pokemon.h
index fad47e0..38f4bc8 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -28,7 +28,7 @@ struct PokemonStruct
u8 unk20[4];
u8 unk24;
u8 fill25[3];
- u8 unk28;
+ u8 itemIndexHeld;
u8 unk29;
u8 fill2A[2];
u8 unk2C[4];
diff --git a/include/save.h b/include/save.h
index ba2577c..69109b8 100644
--- a/include/save.h
+++ b/include/save.h
@@ -45,7 +45,7 @@ struct UnkStruct_sub_8011DAC {
struct UnkStruct_203B184 {
- /* 0x0 */ struct unkStruct_203B460 *MoneyItems;
+ /* 0x0 */ struct TeamInventory *MoneyItems;
/* 0x4 */ struct unkStruct_203B45C *recruitedPokemon;
/* 0x8 */ u8 *unk8;
/* 0xC */ u8 *unkC;
diff --git a/include/subStruct_203B240.h b/include/subStruct_203B240.h
new file mode 100644
index 0000000..040eb66
--- /dev/null
+++ b/include/subStruct_203B240.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_SUBSTRUCT_203B240_H
+#define GUARD_SUBSTRUCT_203B240_H
+
+struct subStruct_203B240
+{
+ char * unk0;
+ char * unk4;
+};
+
+#endif \ No newline at end of file
diff --git a/include/sub_8095228.h b/include/sub_8095228.h
index bb947c6..e7d214b 100644
--- a/include/sub_8095228.h
+++ b/include/sub_8095228.h
@@ -9,7 +9,7 @@ struct unkStruct_8095228
u8 padding[0x10 - 0x5];
u32 unk10;
u8 padding2[0x20 - 0x14];
- struct ItemStruct_203B460 unk20;
+ struct ItemSlot unk20;
u8 padding3[0x28 - 0x24];
u32 unk28;
s8 unk2C;
diff --git a/include/gUnknown_203B460.h b/include/team_inventory.h
index 880fef8..16cf0e1 100644
--- a/include/gUnknown_203B460.h
+++ b/include/team_inventory.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_GUNKNOWN_203B460_H
-#define GUARD_GUNKNOWN_203B460_H
+#ifndef GUARD_TEAM_INVENTORY_H
+#define GUARD_TEAM_INVENTORY_H
struct subStruct_203B460
{
@@ -7,11 +7,11 @@ struct subStruct_203B460
u8 unk1;
};
-struct unkStruct_203B460
+struct TeamInventory
{
- struct ItemStruct_203B460 fill0[20];
+ struct ItemSlot teamItems[20];
u16 unk50[0xF0];
- struct subStruct_203B460 unk230[8];
+ struct subStruct_203B460 unk230[8]; // this is probably actually the same struct as ItemSlot_ALT (see sub_80919FC)
struct subStruct_203B460 unk250[4]; // TODO: idk if this is identical struct or not.. Ghidra says sizes are same
/* 0x260 */ s32 teamMoney;
/* 0x264 */ u32 teamSavings;
diff --git a/include/trade_items_menu.h b/include/trade_items_menu.h
index 52cb733..8b3b0a9 100644
--- a/include/trade_items_menu.h
+++ b/include/trade_items_menu.h
@@ -44,7 +44,7 @@ struct TradeItemsMenu
/* 0x254 */ struct TradeSubStruct sentItem;
- /* 0x25C */ struct ItemStruct_203B460 itemToSend;
+ /* 0x25C */ struct ItemSlot itemToSend;
u8 fill25F[0x3A0 - 0x260];
};
diff --git a/include/wonder_mail.h b/include/wonder_mail.h
index 8973561..df622d3 100644
--- a/include/wonder_mail.h
+++ b/include/wonder_mail.h
@@ -78,7 +78,7 @@ struct WonderMailStruct_203B2C4
u8 filler310[0x35C - 0x310];
struct UnkTextStruct2 unk35C[4];
struct UnkTextStruct2 unk3BC[4];
- struct ItemStruct_203B460 unk41C;
+ struct ItemSlot unk41C;
/* 0x420 */ struct OpenedFile *faceFile;
/* 0x424 */ u8 *faceData;
u16 unk428;