diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/constants/items.h | 65 | ||||
-rw-r--r-- | include/constants/pokemon.h | 18 | ||||
-rw-r--r-- | include/constants/script_pokemon_util.h | 6 | ||||
-rw-r--r-- | include/daycare.h | 46 | ||||
-rw-r--r-- | include/itemtool.h | 139 | ||||
-rw-r--r-- | include/nutdata.h | 30 | ||||
-rw-r--r-- | include/options.h | 2 | ||||
-rw-r--r-- | include/player_data.h | 51 | ||||
-rw-r--r-- | include/scrcmd.h | 6 | ||||
-rw-r--r-- | include/script_pokemon_util.h | 17 | ||||
-rw-r--r-- | include/unk_020254B8.h | 23 | ||||
-rw-r--r-- | include/use_item_on_mon.h | 17 |
12 files changed, 329 insertions, 91 deletions
diff --git a/include/constants/items.h b/include/constants/items.h index f1649cf3..5844c001 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -19,6 +19,71 @@ #define NUM_BAG_BALLS 15 #define NUM_BAG_BATTLE_ITEMS 30 +#define ITEMATTR_PRICE 0 +#define ITEMATTR_HOLD_EFFECT 1 +#define ITEMATTR_HOLD_EFFECT_PARAM 2 +#define ITEMATTR_PREVENT_TOSS 3 +#define ITEMATTR_SELECTABLE 4 +#define ITEMATTR_POCKET 5 +#define ITEMATTR_UNKA 6 +#define ITEMATTR_UNKB 7 +#define ITEMATTR_UNK4 8 +#define ITEMATTR_UNK5 9 +#define ITEMATTR_UNK6 10 +#define ITEMATTR_NATURAL_GIFT_POWER 11 +#define ITEMATTR_UNK8_0 12 +#define ITEMATTR_UNK8_B 13 +#define ITEMATTR_PARTY_USE 14 +#define ITEMATTR_SLP_HEAL 15 +#define ITEMATTR_PSN_HEAL 16 +#define ITEMATTR_BRN_HEAL 17 +#define ITEMATTR_FRZ_HEAL 18 +#define ITEMATTR_PRZ_HEAL 19 +#define ITEMATTR_CFS_HEAL 20 +#define ITEMATTR_INF_HEAL 21 +#define ITEMATTR_GUARD_SPEC 22 +#define ITEMATTR_REVIVE 23 +#define ITEMATTR_REVIVE_ALL 24 +#define ITEMATTR_LEVEL_UP 25 +#define ITEMATTR_EVOLVE 26 +#define ITEMATTR_ATK_STAGES 27 +#define ITEMATTR_DEF_STAGES 28 +#define ITEMATTR_SPATK_STAGES 29 +#define ITEMATTR_SPDEF_STAGES 30 +#define ITEMATTR_SPEED_STAGES 31 +#define ITEMATTR_ACCURACY_STAGES 32 +#define ITEMATTR_CRITRATE_STAGES 33 +#define ITEMATTR_PP_UP 34 +#define ITEMATTR_PP_MAX 35 +#define ITEMATTR_PP_RESTORE 36 +#define ITEMATTR_PP_RESTORE_ALL 37 +#define ITEMATTR_HP_RESTORE 38 +#define ITEMATTR_HP_EV_UP 39 +#define ITEMATTR_ATK_EV_UP 40 +#define ITEMATTR_DEF_EV_UP 41 +#define ITEMATTR_SPEED_EV_UP 42 +#define ITEMATTR_SPATK_EV_UP 43 +#define ITEMATTR_SPDEF_EV_UP 44 +#define ITEMATTR_FRIENDSHIP_MOD_LO 45 +#define ITEMATTR_FRIENDSHIP_MOD_MED 46 +#define ITEMATTR_FRIENDSHIP_MOD_HI 47 +#define ITEMATTR_HP_EV_UP_PARAM 48 +#define ITEMATTR_ATK_EV_UP_PARAM 49 +#define ITEMATTR_DEF_EV_UP_PARAM 50 +#define ITEMATTR_SPEED_EV_UP_PARAM 51 +#define ITEMATTR_SPATK_EV_UP_PARAM 52 +#define ITEMATTR_SPDEF_EV_UP_PARAM 53 +#define ITEMATTR_HP_RESTORE_PARAM 54 +#define ITEMATTR_PP_RESTORE_PARAM 55 +#define ITEMATTR_FRIENDSHIP_MOD_LO_PARAM 56 +#define ITEMATTR_FRIENDSHIP_MOD_MED_PARAM 57 +#define ITEMATTR_FRIENDSHIP_MOD_HI_PARAM 58 + +#define PP_RESTORE_ALL 127 +#define HP_RESTORE_ALL 255 +#define HP_RESTORE_HALF 254 +#define HP_RESTORE_QTR 253 + #define HOLD_EFFECT_NONE 0 #define HOLD_EFFECT_HP_RESTORE 1 #define HOLD_EFFECT_DIALGA_BOOST 2 diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index a6acb188..123b144b 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -1,6 +1,11 @@ #ifndef POKEDIAMOND_CONSTANTS_POKEMON_H #define POKEDIAMOND_CONSTANTS_POKEMON_H +// Value and data limits +#define MAX_LEVEL 100 +#define MON_MOVES 4 +#define MAX_EV 100 +#define MAX_EV_SUM 510 // Pokemon types #define TYPE_NONE 255 @@ -51,6 +56,19 @@ #define EGG_GROUPS_PER_MON 2 +#define MON_STATUS_SLP_MASK 0x7 +#define MON_STATUS_SLP_SHIFT 0 +#define MON_STATUS_PSN_MASK 0x8 +#define MON_STATUS_PSN_SHIFT 3 +#define MON_STATUS_TOX_MASK 0x80 +#define MON_STATUS_TOX_SHIFT 7 +#define MON_STATUS_BRN_MASK 0x10 +#define MON_STATUS_BRN_SHIFT 4 +#define MON_STATUS_FRZ_MASK 0x20 +#define MON_STATUS_FRZ_SHIFT 5 +#define MON_STATUS_PRZ_MASK 0x40 +#define MON_STATUS_PRZ_SHIFT 6 + // Pokemon natures #define NATURE_HARDY 0 #define NATURE_LONELY 1 diff --git a/include/constants/script_pokemon_util.h b/include/constants/script_pokemon_util.h index afd70eeb..4c7a01e6 100644 --- a/include/constants/script_pokemon_util.h +++ b/include/constants/script_pokemon_util.h @@ -1,8 +1,8 @@ -#ifndef POKEDIAMOND_SCRIPT_POKEMON_UTIL_H
-#define POKEDIAMOND_SCRIPT_POKEMON_UTIL_H
+#ifndef POKEDIAMOND_CONSTANTS_SCRIPT_POKEMON_UTIL_H
+#define POKEDIAMOND_CONSTANTS_SCRIPT_POKEMON_UTIL_H
#define FLDPSN_NONE 0
#define FLDPSN_PSN 1
#define FLDPSN_HEAL 2
-#endif //POKEDIAMOND_SCRIPT_POKEMON_UTIL_H
+#endif //POKEDIAMOND_CONSTANTS_SCRIPT_POKEMON_UTIL_H
diff --git a/include/daycare.h b/include/daycare.h new file mode 100644 index 00000000..d1026f76 --- /dev/null +++ b/include/daycare.h @@ -0,0 +1,46 @@ +#ifndef POKEDIAMOND_DAYCARE_H +#define POKEDIAMOND_DAYCARE_H + +struct DayCareMail +{ + struct SealStruct seal; + u16 ot_name[OT_NAME_LENGTH + 1]; + u16 nickname[POKEMON_NAME_LENGTH + 1]; + u8 padding_5E[2]; +}; + +struct DayCareMon +{ + struct BoxPokemon mon; + struct DayCareMail mail; + u32 steps; +}; + +struct DayCare +{ + struct DayCareMon mons[2]; + u32 egg_pid; + u8 egg_cycles; + u8 padding_1DD[3]; +}; + +u32 Sav2_DayCare_sizeof(void); +void Sav2_DayCare_init(struct DayCare * daycare); +struct DayCareMon * Sav2_DayCare_GetMonX(struct DayCare * daycare, s32 i); +struct BoxPokemon * DayCareMon_GetBoxMon(struct DayCareMon * dcmon); +struct DayCareMail * DayCareMon_GetExtras(struct DayCareMon * dcmon); +u32 DayCareMon_GetSteps(struct DayCareMon * dcmon); +struct SealStruct * DayCareMail_GetCapsule(struct DayCareMail * dcmail); +u32 Sav2_DayCare_GetEggPID(struct DayCare * daycare); +u8 Sav2_DayCare_GetEggCycleCounter(struct DayCare * daycare); +void DayCareMon_SetSteps(struct DayCareMon * dcmon, u32 steps); +void DayCareMon_AddSteps(struct DayCareMon * dcmon, u32 steps); +void Sav2_DayCare_SetEggPID(struct DayCare * daycare, u32 pid); +void Sav2_DayCare_SetEggCycleCounter(struct DayCare * daycare, u8 count); +BOOL Sav2_DayCare_MasudaCheck(struct DayCare * daycare); +void DayCareMon_Copy(struct DayCareMon * dest, const struct DayCareMon * src); +void DayCareMon_Extras_init(struct DayCareMail * mail); +void DayCareMon_Init(struct DayCareMon * mon); +struct DayCare * Sav2_DayCare_get(struct SaveBlock2 * sav2); + +#endif //POKEDIAMOND_DAYCARE_H diff --git a/include/itemtool.h b/include/itemtool.h index 53140128..4dca94bc 100644 --- a/include/itemtool.h +++ b/include/itemtool.h @@ -3,24 +3,15 @@ #include "global.h" #include "filesystem.h" +#include "string16.h" #include "constants/items.h" -// Berries (nutdata) +#define ITEMDATA_DATA 0 +#define ITEMDATA_NCGR 1 +#define ITEMDATA_NCLR 2 +#define ITEMDATA_3TO4 3 -struct NutData -{ - u16 unk0; - u8 unk2; - u8 unk3; - u8 unk4; - u8 unk5; - u8 unk6; - u8 unk7; - u8 unk8; - u8 unk9; - u8 unkA; - u8 unkB; -}; +// Berries (nutdata) struct ItemSlot { @@ -28,53 +19,53 @@ struct ItemSlot u16 quantity; }; -struct ItemDataSub +struct ItemPartyUseParam { - 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]; + u8 slp_heal:1; + u8 psn_heal:1; + u8 brn_heal:1; + u8 frz_heal:1; + u8 prz_heal:1; + u8 cfs_heal:1; + u8 inf_heal:1; + u8 guard_spec:1; + u8 revive:1; + u8 revive_all:1; + u8 level_up:1; + u8 evolve:1; + u8 atk_stages:4; + u8 def_stages:4; + u8 spatk_stages:4; + u8 spdef_stages:4; + u8 speed_stages:4; + u8 accuracy_stages:4; + u8 critrate_stages:2; + u8 pp_up:1; + u8 pp_max:1; + u8 pp_restore:1; + u8 pp_restore_all:1; + u8 hp_restore:1; + u8 hp_ev_up:1; + u8 atk_ev_up:1; + u8 def_ev_up:1; + u8 speed_ev_up:1; + u8 spatk_ev_up:1; + u8 spdef_ev_up:1; + u8 friendship_mod_lo:1; + u8 friendship_mod_med:1; + u8 friendship_mod_hi:1; + s8 hp_ev_up_param; + s8 atk_ev_up_param; + s8 def_ev_up_param; + s8 speed_ev_up_param; + s8 spatk_ev_up_param; + s8 spdef_ev_up_param; + u8 hp_restore_param; + u8 pp_restore_param; + s8 friendship_mod_lo_param; + s8 friendship_mod_med_param; + s8 friendship_mod_hi_param; + u8 paddding[2]; }; struct ItemData @@ -87,40 +78,32 @@ struct ItemData u8 unk6; u8 naturalGiftPower; u16 unk8_0:5; - u16 unk8_5:1; - u16 unk8_6:1; + u16 prevent_toss:1; + u16 selectable:1; u16 pocket:4; u16 unk8_B:5; u8 unkA; u8 unkB; - u8 unkC; - u8 padding; + u8 partyUse; + u8 padding_0D; union { u8 flat; - struct ItemDataSub sub; - } unkE; + struct ItemPartyUseParam sub; + } partyUseParam; + u8 padding_22[2]; }; -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 * LoadItemDataOrGfx(u16 itemId, u16 which, 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); +u32 GetItemAttrSub(struct ItemPartyUseParam * sub, u32 attr); u16 TMHMGetMove(u16 a0); BOOL MoveIsHM(u16 a0); u8 ItemToTMHMId(u16 a0); diff --git a/include/nutdata.h b/include/nutdata.h new file mode 100644 index 00000000..74470f37 --- /dev/null +++ b/include/nutdata.h @@ -0,0 +1,30 @@ +#ifndef POKEDIAMOND_NUTDATA_H +#define POKEDIAMOND_NUTDATA_H + +#include "filesystem.h" + +struct NutData +{ + u16 unk0; + u8 unk2; + u8 unk3; + u8 unk4; + u8 unk5; + u8 unk6; + u8 unk7; + u8 unk8; + u8 unk9; + u8 unkA; + u8 unkB; +}; + +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); + +#endif //POKEDIAMOND_NUTDATA_H diff --git a/include/options.h b/include/options.h index 4ed466df..5f7a3d3f 100644 --- a/include/options.h +++ b/include/options.h @@ -10,4 +10,6 @@ struct Options { u16 unk0_A:5; }; +void Options_init(struct Options * options); + #endif //POKEDIAMOND_OPTIONS_H diff --git a/include/player_data.h b/include/player_data.h index 3c78de8f..5095ea61 100644 --- a/include/player_data.h +++ b/include/player_data.h @@ -3,6 +3,7 @@ #include "options.h" #include "igt.h" +#include "string16.h" struct SaveBlock2; @@ -12,12 +13,12 @@ struct PlayerData /* 0x10 */ u32 playerId; /* 0x14 */ u32 money; /* 0x18 */ u8 gender; - /* 0x19 */ u8 country; + /* 0x19 */ u8 language; /* 0x1A */ u8 badges; /* 0x1B */ u8 avatar; - /* 0x1C */ u8 field_1C; - /* 0x1D */ u8 field_1D_0:1; - u8 field_1D_1:1; + /* 0x1C */ u8 version; + /* 0x1D */ u8 gameCleared:1; + u8 nationalDex:1; u8 field_1D_pad:6; /* 0x1E */ u8 padding_1E[2]; }; @@ -32,13 +33,43 @@ struct PlayerDataSav u8 padding2[2]; }; -struct Options * Sav2_PlayerData_GetOptionsAddr(struct SaveBlock2 *); -struct String * PlayerProfile_GetPlayerName_NewString(struct PlayerData *, u32 heap_id); -u32 PlayerProfile_GetTrainerID(struct PlayerData *); -u32 PlayerProfile_GetTrainerGender(struct PlayerData *); u32 Sav2_PlayerData_sizeof(void); -void Sav2_PlayerData_init(struct PlayerDataSav *); -u16 * PlayerProfile_GetNamePtr(struct PlayerData * data); +void Sav2_PlayerData_init(struct PlayerDataSav * pds); struct PlayerData * Sav2_PlayerData_GetProfileAddr(struct SaveBlock2 * sav2); +struct Options * Sav2_PlayerData_GetOptionsAddr(struct SaveBlock2 * sav2); +u16 * Sav2_PlayerData_GetCoinsAddr(struct SaveBlock2 * sav2); +struct IGT * Sav2_PlayerData_GetIGTAddr(struct SaveBlock2 * sav2); +u32 PlayerProfile_sizeof(void); +struct PlayerData * PlayerProfile_new(u32 heap_id); +void PlayerProfile_Copy(const struct PlayerData * src, struct PlayerData * dest); +void PlayerProfile_init(struct PlayerData * data); +void CopyPlayerName(u16 * dest, struct PlayerData * data); +void PlayerName_StringToFlat(struct PlayerData * data, struct String * str); +u16 * PlayerProfile_GetNamePtr(struct PlayerData * data); +void PlayerName_FlatToString(struct PlayerData * data, struct String * str); +struct String * PlayerProfile_GetPlayerName_NewString(struct PlayerData * data, u32 heap_id); +void PlayerProfile_SetTrainerID(struct PlayerData * data, u32 otid); +u32 PlayerProfile_GetTrainerID(struct PlayerData * data); +u16 PlayerProfile_GetTrainerID_VisibleHalf(struct PlayerData * data); +void PlayerProfile_SetTrainerGender(struct PlayerData * data, u8 gender); +u32 PlayerProfile_GetTrainerGender(struct PlayerData * data); +BOOL PlayerProfile_TestBadgeFlag(struct PlayerData * data, u32 badgeno); +void PlayerProfile_SetBadgeFlag(struct PlayerData * data, u32 badgeno); +u32 PlayerProfile_CountBadges(struct PlayerData * data); +u32 PlayerProfile_GetMoney(struct PlayerData * data); +u32 PlayerProfile_SetMoney(struct PlayerData * data, u32 amount); +u8 PlayerProfile_GetAvatar(struct PlayerData * data); +void PlayerProfile_SetAvatar(struct PlayerData * data, u8 avatar); +u32 PlayerProfile_AddMoney(struct PlayerData * data, u32 amount); +u32 PlayerProfile_SubMoney(struct PlayerData * data, u32 amount); +u8 PlayerProfile_GetVersion(struct PlayerData * data); +void PlayerProfile_SetVersion(struct PlayerData * data, u8 a1); +u8 PlayerProfile_GetLanguage(struct PlayerData * data); +void PlayerProfile_SetLanguage(struct PlayerData * data, u8 language); +void PlayerProfile_SetGameClearFlag(struct PlayerData * data); +BOOL PlayerProfile_GetGameClearFlag(struct PlayerData * data); +void PlayerProfile_SetNatDexFlag(struct PlayerData * data); +BOOL PlayerProfile_GetNatDexFlag(struct PlayerData * data); +BOOL PlayerProfile_NameAndOTIDMatchPlayer(struct PlayerData * a, struct PlayerData * b); #endif //POKEDIAMOND_PLAYER_DATA_H diff --git a/include/scrcmd.h b/include/scrcmd.h new file mode 100644 index 00000000..5ebec947 --- /dev/null +++ b/include/scrcmd.h @@ -0,0 +1,6 @@ +#ifndef POKEDIAMOND_SCRCMD_H +#define POKEDIAMOND_SCRCMD_H + +BOOL ScrCmd_givemon(struct ScriptContext* ctx); + +#endif //POKEDIAMOND_SCRCMD_H diff --git a/include/script_pokemon_util.h b/include/script_pokemon_util.h new file mode 100644 index 00000000..472e5d77 --- /dev/null +++ b/include/script_pokemon_util.h @@ -0,0 +1,17 @@ +#ifndef POKEDIAMOND_SCRIPT_POKEMON_UTIL_H +#define POKEDIAMOND_SCRIPT_POKEMON_UTIL_H + +BOOL MonNotFaintedOrEgg(struct Pokemon * pokemon); +BOOL GiveMon(u32 heap_id, struct SaveBlock2 * sav2, u16 species, u8 level, u16 item, u32 mapSec, u32 encounterType); +BOOL GiveEgg(u32 heapId, struct SaveBlock2 * sav2, u16 species, int level, int metLocIndex, int a3); +void PartyMonSetMoveInSlot(struct PlayerParty * party, int partySlot, int moveSlot, u16 move); +int GetIdxOfFirstPartyMonWithMove(struct PlayerParty * party, int move); +int CountAlivePokemon(struct PlayerParty * party); +struct Pokemon * GetFirstAliveMonInParty_CrashIfNone(struct PlayerParty * party); +struct Pokemon * GetFirstNonEggInParty(struct PlayerParty * party); +BOOL HasEnoughAlivePokemonForDoubleBattle(struct PlayerParty * party); +void GiveAllMonsTheSinnohChampRibbon(struct PlayerParty * party); +int ApplyPoisonStep(struct PlayerParty * party, int location); +BOOL SurvivePoisoning(struct Pokemon * mon); + +#endif //POKEDIAMOND_SCRIPT_POKEMON_UTIL_H diff --git a/include/unk_020254B8.h b/include/unk_020254B8.h new file mode 100644 index 00000000..792ba33e --- /dev/null +++ b/include/unk_020254B8.h @@ -0,0 +1,23 @@ +#ifndef POKEDIAMOND_UNK_020254B8_H +#define POKEDIAMOND_UNK_020254B8_H + +struct UnkStruct_020254B8 +{ + u16 field_00[8]; + u32 field_10; + u8 filler_14[4]; + u32 field_18[16]; + u8 filler_58[16]; + u8 field_68[32]; +}; + +u32 FUN_020254B8(void); +struct UnkStruct_020254B8 * FUN_020254C0(struct SaveBlock2 * sav2); +void FUN_020254CC(struct UnkStruct_020254B8 * arr); +u16 * FUN_020254F0(struct UnkStruct_020254B8 * arr, s32 i); +u8 FUN_020254F8(struct UnkStruct_020254B8 * unk, s32 i); +BOOL FUN_02025500(struct UnkStruct_020254B8 * a, struct UnkStruct_020254B8 * b); +void FUN_02025520(struct UnkStruct_020254B8 * sp0, struct UnkStruct_020254B8 * sp4, s32 n, u32 heap_id); +s32 FUN_02025614(struct UnkStruct_020254B8 * a0, u32 a1); + +#endif //POKEDIAMOND_UNK_020254B8_H diff --git a/include/use_item_on_mon.h b/include/use_item_on_mon.h new file mode 100644 index 00000000..c73dfa0e --- /dev/null +++ b/include/use_item_on_mon.h @@ -0,0 +1,17 @@ +#ifndef POKEDIAMOND_USE_ITEM_ON_MON_H +#define POKEDIAMOND_USE_ITEM_ON_MON_H + +BOOL CanUseItemOnPokemon(struct Pokemon * pokemon, u16 itemId, s32 moveId, u32 heap_id); +BOOL CanUseItemOnMonInParty(struct PlayerParty * party, u16 itemId, s32 partyIdx, s32 moveIdx, u32 heap_id); +BOOL UseItemOnPokemon(struct Pokemon * pokemon, u16 itemId, s32 moveIdx, u16 location, u32 heap_id); +BOOL UseItemOnMonInParty(struct PlayerParty * party, u16 itemId, s32 partyIdx, s32 moveIdx, u16 location, u32 heap_id); +u8 MonMoveCanRestorePP(struct Pokemon * pokemon, s32 moveIdx); +BOOL MonMoveRestorePP(struct Pokemon * pokemon, s32 moveIdx, s32 ppRestore); +BOOL BoostMonMovePpUpBy(struct Pokemon * pokemon, s32 moveIdx, u32 nPpUp); +void RestoreMonHPBy(struct Pokemon * pokemon, u32 hp, u32 maxHp, u32 restoration); +s32 TryModEV(s32 ev, s32 evSum, s32 by); +BOOL CanItemModFriendship(struct Pokemon * pokemon, struct ItemData * itemData); +BOOL DoItemFriendshipMod(struct Pokemon * pokemon, s32 friendship, s32 mod, u16 location, u32 heap_id); +void HealParty(struct PlayerParty * party); + +#endif //POKEDIAMOND_USE_ITEM_ON_MON_H |