diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/friend_area_action_menu.h | 2 | ||||
-rw-r--r-- | include/friend_rescue.h | 2 | ||||
-rw-r--r-- | include/item.h | 270 | ||||
-rw-r--r-- | include/kangaskhan_storage.h | 2 | ||||
-rw-r--r-- | include/kecleon_items.h | 4 | ||||
-rw-r--r-- | include/pokemon.h | 2 | ||||
-rw-r--r-- | include/save.h | 2 | ||||
-rw-r--r-- | include/subStruct_203B240.h | 10 | ||||
-rw-r--r-- | include/sub_8095228.h | 2 | ||||
-rw-r--r-- | include/team_inventory.h (renamed from include/gUnknown_203B460.h) | 10 | ||||
-rw-r--r-- | include/trade_items_menu.h | 2 | ||||
-rw-r--r-- | include/wonder_mail.h | 2 |
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; |