Merge pull request #207 from DizzyEggg/decompile_pokemon_123
Decompile and clean pokemon files
This commit is contained in:
@@ -229,6 +229,14 @@ extern const u8* const gPokeblockWasTooXStringTable[];
|
||||
extern const u8* const gRefereeStringsTable[];
|
||||
extern const u8* const gStatNamesTable2[];
|
||||
|
||||
extern const u8 gText_BadEgg[];
|
||||
extern const u8 gText_StatRose[];
|
||||
extern const u8 gText_PkmnsStatChanged2[];
|
||||
extern const u8 gText_PkmnGettingPumped[];
|
||||
extern const u8 gText_PkmnShroudedInMist[];
|
||||
extern const u8 gText_BattleWallyName[];
|
||||
extern const u8 gText_PkmnsXPreventsSwitching[];
|
||||
|
||||
extern const u16 gMissStringIds[];
|
||||
extern const u16 gTrappingMoves[];
|
||||
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
#ifndef GUARD_CALCULATE_BASE_DAMAGE_H
|
||||
#define GUARD_CALCULATE_BASE_DAMAGE_H
|
||||
|
||||
s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 sideStatus, u16 powerOverride, u8 typeOverride, u8 bankAtk, u8 bankDef);
|
||||
|
||||
#endif // GUARD_CALCULATE_BASE_DAMAGE_H
|
||||
@@ -464,4 +464,7 @@
|
||||
#define NUM_TECHNICAL_MACHINES 50
|
||||
#define NUM_HIDDEN_MACHINES 8
|
||||
|
||||
// Check if the item is one that can be used on a Pokemon.
|
||||
#define IS_POKEMON_ITEM(item) ((item) >= ITEM_POTION && (item) <= ITEM_0B2)
|
||||
|
||||
#endif // GUARD_CONSTANTS_ITEMS_H
|
||||
|
||||
@@ -956,13 +956,13 @@
|
||||
#define FACILITY_CLASS_HIKER 0x0
|
||||
#define FACILITY_CLASS_TEAM_AQUA_1 0x1
|
||||
#define FACILITY_CLASS_PKMN_BREEDER_1 0x2
|
||||
#define FACILITY_CLASS_COOLTRAINER_1 0x3
|
||||
#define FACILITY_CLASS_COOLTRAINER_M 0x3
|
||||
#define FACILITY_CLASS_BIRD_KEEPER 0x4
|
||||
#define FACILITY_CLASS_COLLECTOR 0x5
|
||||
#define FACILITY_CLASS_TEAM_AQUA_2 0x6
|
||||
#define FACILITY_CLASS_SWIMMER_M 0x7
|
||||
#define FACILITY_CLASS_TEAM_MAGMA_1 0x8
|
||||
#define FACILITY_CLASS_EXPERT_1 0x9
|
||||
#define FACILITY_CLASS_EXPERT_M 0x9
|
||||
#define FACILITY_CLASS_BLACK_BELT 0xa
|
||||
#define FACILITY_CLASS_AQUA_LEADER 0xb
|
||||
#define FACILITY_CLASS_HEX_MANIAC 0xc
|
||||
@@ -971,7 +971,7 @@
|
||||
#define FACILITY_CLASS_INTERVIEWER 0xf
|
||||
#define FACILITY_CLASS_TUBER_1 0x10
|
||||
#define FACILITY_CLASS_TUBER_2 0x11
|
||||
#define FACILITY_CLASS_COOLTRAINER_2 0x12
|
||||
#define FACILITY_CLASS_COOLTRAINER_F 0x12
|
||||
#define FACILITY_CLASS_LADY 0x13
|
||||
#define FACILITY_CLASS_BEAUTY 0x14
|
||||
#define FACILITY_CLASS_RICH_BOY 0x15
|
||||
@@ -983,16 +983,16 @@
|
||||
#define FACILITY_CLASS_CAMPER 0x1b
|
||||
#define FACILITY_CLASS_PICNICKER 0x1c
|
||||
#define FACILITY_CLASS_BUG_MANIAC 0x1d
|
||||
#define FACILITY_CLASS_PSYCHIC_1 0x1e
|
||||
#define FACILITY_CLASS_PSYCHIC_2 0x1f
|
||||
#define FACILITY_CLASS_PSYCHIC_M 0x1e
|
||||
#define FACILITY_CLASS_PSYCHIC_F 0x1f
|
||||
#define FACILITY_CLASS_GENTLEMAN 0x20
|
||||
#define FACILITY_CLASS_ELITE_FOUR_1 0x21
|
||||
#define FACILITY_CLASS_ELITE_FOUR_2 0x22
|
||||
#define FACILITY_CLASS_LEADER_1 0x23
|
||||
#define FACILITY_CLASS_LEADER_2 0x24
|
||||
#define FACILITY_CLASS_LEADER_3 0x25
|
||||
#define FACILITY_CLASS_SCHOOL_KID_1 0x26
|
||||
#define FACILITY_CLASS_SCHOOL_KID_2 0x27
|
||||
#define FACILITY_CLASS_SCHOOL_KID_M 0x26
|
||||
#define FACILITY_CLASS_SCHOOL_KID_F 0x27
|
||||
#define FACILITY_CLASS_SR_AND_JR 0x28
|
||||
#define FACILITY_CLASS_POKEFAN_1 0x29
|
||||
#define FACILITY_CLASS_POKEFAN_2 0x2a
|
||||
@@ -1013,28 +1013,28 @@
|
||||
#define FACILITY_CLASS_TWINS 0x39
|
||||
#define FACILITY_CLASS_SAILOR 0x3a
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_1 0x3b
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_2 0x3c
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_MAY 0x3c
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_3 0x3d
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_4 0x3e
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_5 0x3f
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_BRENDAN 0x3f
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_6 0x40
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_7 0x41
|
||||
#define FACILITY_CLASS_PKMN_BREEDER_2 0x42
|
||||
#define FACILITY_CLASS_BUG_CATCHER 0x43
|
||||
#define FACILITY_CLASS_PKMN_RANGER_1 0x44
|
||||
#define FACILITY_CLASS_PKMN_RANGER_2 0x45
|
||||
#define FACILITY_CLASS_PKMN_RANGER_M 0x44
|
||||
#define FACILITY_CLASS_PKMN_RANGER_F 0x45
|
||||
#define FACILITY_CLASS_MAGMA_LEADER 0x46
|
||||
#define FACILITY_CLASS_LASS 0x47
|
||||
#define FACILITY_CLASS_YOUNG_COUPLE 0x48
|
||||
#define FACILITY_CLASS_OLD_COUPLE 0x49
|
||||
#define FACILITY_CLASS_SIS_AND_BRO 0x4a
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_8 0x4b
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_STEVEN 0x4b
|
||||
#define FACILITY_CLASS_SALON_MAIDEN 0x4c
|
||||
#define FACILITY_CLASS_DOME_ACE 0x4d
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_9 0x4e
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_10 0x4f
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_11 0x50
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_12 0x51
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_RED 0x4e
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_LEAF 0x4f
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN 0x50
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_RS_MAY 0x51
|
||||
|
||||
#define TRAINER_CLASS_PKMN_TRAINER_1 0x0
|
||||
#define TRAINER_CLASS_PKMN_TRAINER_2 0x1
|
||||
|
||||
@@ -6,13 +6,13 @@ const u8 gFacilityClassToPicIndex[] =
|
||||
TRAINER_PIC_HIKER, // FACILITY_CLASS_HIKER
|
||||
TRAINER_PIC_AQUA_GRUNT_M, // FACILITY_CLASS_TEAM_AQUA_1
|
||||
TRAINER_PIC_POKEMON_BREEDER_F, // FACILITY_CLASS_PKMN_BREEDER_1
|
||||
TRAINER_PIC_COOL_TRAINER_M, // FACILITY_CLASS_COOLTRAINER_1
|
||||
TRAINER_PIC_COOL_TRAINER_M, // FACILITY_CLASS_COOLTRAINER_M
|
||||
TRAINER_PIC_BIRD_KEEPER, // FACILITY_CLASS_BIRD_KEEPER
|
||||
TRAINER_PIC_COLLECTOR, // FACILITY_CLASS_COLLECTOR
|
||||
TRAINER_PIC_AQUA_GRUNT_F, // FACILITY_CLASS_TEAM_AQUA_2
|
||||
TRAINER_PIC_SWIMMER_M, // FACILITY_CLASS_SWIMMER_M
|
||||
TRAINER_PIC_MAGMA_GRUNT_M, // FACILITY_CLASS_TEAM_MAGMA_1
|
||||
TRAINER_PIC_EXPERT_M, // FACILITY_CLASS_EXPERT_1
|
||||
TRAINER_PIC_EXPERT_M, // FACILITY_CLASS_EXPERT_M
|
||||
TRAINER_PIC_BLACK_BELT, // FACILITY_CLASS_BLACK_BELT
|
||||
TRAINER_PIC_AQUA_LEADER_ARCHIE, // FACILITY_CLASS_AQUA_LEADER
|
||||
TRAINER_PIC_HEX_MANIAC, // FACILITY_CLASS_HEX_MANIAC
|
||||
@@ -21,7 +21,7 @@ const u8 gFacilityClassToPicIndex[] =
|
||||
TRAINER_PIC_INTERVIEWER, // FACILITY_CLASS_INTERVIEWER
|
||||
TRAINER_PIC_TUBER_F, // FACILITY_CLASS_TUBER_1
|
||||
TRAINER_PIC_TUBER_M, // FACILITY_CLASS_TUBER_2
|
||||
TRAINER_PIC_COOL_TRAINER_F, // FACILITY_CLASS_COOLTRAINER_2
|
||||
TRAINER_PIC_COOL_TRAINER_F, // FACILITY_CLASS_COOLTRAINER_F
|
||||
TRAINER_PIC_LADY, // FACILITY_CLASS_LADY
|
||||
TRAINER_PIC_BEAUTY, // FACILITY_CLASS_BEAUTY
|
||||
TRAINER_PIC_RICH_BOY, // FACILITY_CLASS_RICH_BOY
|
||||
@@ -33,16 +33,16 @@ const u8 gFacilityClassToPicIndex[] =
|
||||
TRAINER_PIC_CAMPER, // FACILITY_CLASS_CAMPER
|
||||
TRAINER_PIC_PICNICKER, // FACILITY_CLASS_PICNICKER
|
||||
TRAINER_PIC_BUG_MANIAC, // FACILITY_CLASS_BUG_MANIAC
|
||||
TRAINER_PIC_PSYCHIC_M, // FACILITY_CLASS_PSYCHIC_1
|
||||
TRAINER_PIC_PSYCHIC_F, // FACILITY_CLASS_PSYCHIC_2
|
||||
TRAINER_PIC_PSYCHIC_M, // FACILITY_CLASS_PSYCHIC_M
|
||||
TRAINER_PIC_PSYCHIC_F, // FACILITY_CLASS_PSYCHIC_F
|
||||
TRAINER_PIC_GENTLEMAN, // FACILITY_CLASS_GENTLEMAN
|
||||
TRAINER_PIC_ELITE_FOUR_SIDNEY, // FACILITY_CLASS_ELITE_FOUR_1
|
||||
TRAINER_PIC_ELITE_FOUR_PHOEBE, // FACILITY_CLASS_ELITE_FOUR_2
|
||||
TRAINER_PIC_LEADER_ROXANNE, // FACILITY_CLASS_LEADER_1
|
||||
TRAINER_PIC_LEADER_BRAWLY, // FACILITY_CLASS_LEADER_2
|
||||
TRAINER_PIC_LEADER_TATE_AND_LIZA, // FACILITY_CLASS_LEADER_3
|
||||
TRAINER_PIC_SCHOOL_KID_M, // FACILITY_CLASS_SCHOOL_KID_1
|
||||
TRAINER_PIC_SCHOOL_KID_F, // FACILITY_CLASS_SCHOOL_KID_2
|
||||
TRAINER_PIC_SCHOOL_KID_M, // FACILITY_CLASS_SCHOOL_KID_M
|
||||
TRAINER_PIC_SCHOOL_KID_F, // FACILITY_CLASS_SCHOOL_KID_F
|
||||
TRAINER_PIC_SR_AND_JR, // FACILITY_CLASS_SR_AND_JR
|
||||
TRAINER_PIC_WINSTRATE_M, // FACILITY_CLASS_POKEFAN_1
|
||||
TRAINER_PIC_WINSTRATE_F, // FACILITY_CLASS_POKEFAN_2
|
||||
@@ -63,28 +63,28 @@ const u8 gFacilityClassToPicIndex[] =
|
||||
TRAINER_PIC_TWINS, // FACILITY_CLASS_TWINS
|
||||
TRAINER_PIC_SAILOR, // FACILITY_CLASS_SAILOR
|
||||
TRAINER_PIC_WALLY, // FACILITY_CLASS_PKMN_TRAINER_1
|
||||
TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_2
|
||||
TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_MAY
|
||||
TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_3
|
||||
TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_4
|
||||
TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_5
|
||||
TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_BRENDAN
|
||||
TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_6
|
||||
TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_7
|
||||
TRAINER_PIC_POKEMON_BREEDER_M, // FACILITY_CLASS_PKMN_BREEDER_2
|
||||
TRAINER_PIC_BUG_CATCHER, // FACILITY_CLASS_BUG_CATCHER
|
||||
TRAINER_PIC_POKEMON_RANGER_M, // FACILITY_CLASS_PKMN_RANGER_1
|
||||
TRAINER_PIC_POKEMON_RANGER_F, // FACILITY_CLASS_PKMN_RANGER_2
|
||||
TRAINER_PIC_POKEMON_RANGER_M, // FACILITY_CLASS_PKMN_RANGER_M
|
||||
TRAINER_PIC_POKEMON_RANGER_F, // FACILITY_CLASS_PKMN_RANGER_F
|
||||
TRAINER_PIC_MAGMA_LEADER_MAXIE, // FACILITY_CLASS_MAGMA_LEADER
|
||||
TRAINER_PIC_LASS, // FACILITY_CLASS_LASS
|
||||
TRAINER_PIC_YOUNG_COUPLE, // FACILITY_CLASS_YOUNG_COUPLE
|
||||
TRAINER_PIC_OLD_COUPLE, // FACILITY_CLASS_OLD_COUPLE
|
||||
TRAINER_PIC_SIS_AND_BRO, // FACILITY_CLASS_SIS_AND_BRO
|
||||
TRAINER_PIC_STEVEN, // FACILITY_CLASS_PKMN_TRAINER_8
|
||||
TRAINER_PIC_STEVEN, // FACILITY_CLASS_PKMN_TRAINER_STEVEN
|
||||
TRAINER_PIC_SALON_MAIDEN_ANABEL, // FACILITY_CLASS_SALON_MAIDEN
|
||||
TRAINER_PIC_DOME_ACE_TUCKER, // FACILITY_CLASS_DOME_ACE
|
||||
TRAINER_PIC_RED, // FACILITY_CLASS_PKMN_TRAINER_9
|
||||
TRAINER_PIC_LEAF, // FACILITY_CLASS_PKMN_TRAINER_10
|
||||
TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_11
|
||||
TRAINER_PIC_RUBY_SAPPHIRE_MAY, // FACILITY_CLASS_PKMN_TRAINER_12
|
||||
TRAINER_PIC_RED, // FACILITY_CLASS_PKMN_TRAINER_RED
|
||||
TRAINER_PIC_LEAF, // FACILITY_CLASS_PKMN_TRAINER_LEAF
|
||||
TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN
|
||||
TRAINER_PIC_RUBY_SAPPHIRE_MAY, // FACILITY_CLASS_PKMN_TRAINER_RS_MAY
|
||||
};
|
||||
|
||||
const u8 gFacilityClassToTrainerClass[] =
|
||||
@@ -92,13 +92,13 @@ const u8 gFacilityClassToTrainerClass[] =
|
||||
TRAINER_CLASS_HIKER, // FACILITY_CLASS_HIKER
|
||||
TRAINER_CLASS_TEAM_AQUA, // FACILITY_CLASS_TEAM_AQUA_1
|
||||
TRAINER_CLASS_PKMN_BREEDER, // FACILITY_CLASS_PKMN_BREEDER_1
|
||||
TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_1
|
||||
TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_M
|
||||
TRAINER_CLASS_BIRD_KEEPER, // FACILITY_CLASS_BIRD_KEEPER
|
||||
TRAINER_CLASS_COLLECTOR, // FACILITY_CLASS_COLLECTOR
|
||||
TRAINER_CLASS_TEAM_AQUA, // FACILITY_CLASS_TEAM_AQUA_2
|
||||
TRAINER_CLASS_SWIMMER_M, // FACILITY_CLASS_SWIMMER_M
|
||||
TRAINER_CLASS_TEAM_MAGMA, // FACILITY_CLASS_TEAM_MAGMA_1
|
||||
TRAINER_CLASS_EXPERT, // FACILITY_CLASS_EXPERT_1
|
||||
TRAINER_CLASS_EXPERT, // FACILITY_CLASS_EXPERT_M
|
||||
TRAINER_CLASS_BLACK_BELT, // FACILITY_CLASS_BLACK_BELT
|
||||
TRAINER_CLASS_AQUA_LEADER, // FACILITY_CLASS_AQUA_LEADER
|
||||
TRAINER_CLASS_HEX_MANIAC, // FACILITY_CLASS_HEX_MANIAC
|
||||
@@ -107,7 +107,7 @@ const u8 gFacilityClassToTrainerClass[] =
|
||||
TRAINER_CLASS_INTERVIEWER, // FACILITY_CLASS_INTERVIEWER
|
||||
TRAINER_CLASS_TUBER_1, // FACILITY_CLASS_TUBER_1
|
||||
TRAINER_CLASS_TUBER_2, // FACILITY_CLASS_TUBER_2
|
||||
TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_2
|
||||
TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_F
|
||||
TRAINER_CLASS_LADY, // FACILITY_CLASS_LADY
|
||||
TRAINER_CLASS_BEAUTY, // FACILITY_CLASS_BEAUTY
|
||||
TRAINER_CLASS_RICH_BOY, // FACILITY_CLASS_RICH_BOY
|
||||
@@ -119,16 +119,16 @@ const u8 gFacilityClassToTrainerClass[] =
|
||||
TRAINER_CLASS_CAMPER, // FACILITY_CLASS_CAMPER
|
||||
TRAINER_CLASS_PICNICKER, // FACILITY_CLASS_PICNICKER
|
||||
TRAINER_CLASS_BUG_MANIAC, // FACILITY_CLASS_BUG_MANIAC
|
||||
TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_1
|
||||
TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_2
|
||||
TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_M
|
||||
TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_F
|
||||
TRAINER_CLASS_GENTLEMAN, // FACILITY_CLASS_GENTLEMAN
|
||||
TRAINER_CLASS_ELITE_FOUR, // FACILITY_CLASS_ELITE_FOUR_1
|
||||
TRAINER_CLASS_ELITE_FOUR, // FACILITY_CLASS_ELITE_FOUR_2
|
||||
TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_1
|
||||
TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_2
|
||||
TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_3
|
||||
TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_1
|
||||
TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_2
|
||||
TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_M
|
||||
TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_F
|
||||
TRAINER_CLASS_SR_AND_JR, // FACILITY_CLASS_SR_AND_JR
|
||||
TRAINER_CLASS_POKEFAN, // FACILITY_CLASS_POKEFAN_1
|
||||
TRAINER_CLASS_POKEFAN, // FACILITY_CLASS_POKEFAN_2
|
||||
@@ -149,28 +149,28 @@ const u8 gFacilityClassToTrainerClass[] =
|
||||
TRAINER_CLASS_TWINS, // FACILITY_CLASS_TWINS
|
||||
TRAINER_CLASS_SAILOR, // FACILITY_CLASS_SAILOR
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_1
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_2
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_MAY
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_3
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_4
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_5
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_BRENDAN
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_6
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_7
|
||||
TRAINER_CLASS_PKMN_BREEDER, // FACILITY_CLASS_PKMN_BREEDER_2
|
||||
TRAINER_CLASS_BUG_CATCHER, // FACILITY_CLASS_BUG_CATCHER
|
||||
TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_1
|
||||
TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_2
|
||||
TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_M
|
||||
TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_F
|
||||
TRAINER_CLASS_MAGMA_LEADER, // FACILITY_CLASS_MAGMA_LEADER
|
||||
TRAINER_CLASS_LASS, // FACILITY_CLASS_LASS
|
||||
TRAINER_CLASS_YOUNG_COUPLE, // FACILITY_CLASS_YOUNG_COUPLE
|
||||
TRAINER_CLASS_OLD_COUPLE, // FACILITY_CLASS_OLD_COUPLE
|
||||
TRAINER_CLASS_SIS_AND_BRO, // FACILITY_CLASS_SIS_AND_BRO
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_8
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_STEVEN
|
||||
TRAINER_CLASS_SALON_MAIDEN, // FACILITY_CLASS_SALON_MAIDEN
|
||||
TRAINER_CLASS_DOME_ACE, // FACILITY_CLASS_DOME_ACE
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_9
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_10
|
||||
TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_11
|
||||
TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_12
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_RED
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_LEAF
|
||||
TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN
|
||||
TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_RS_MAY
|
||||
};
|
||||
|
||||
#endif //POKEEMERALD_TRAINER_CLASS_LOOKUPS_H
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define GUARD_POKEMON_H
|
||||
|
||||
#include "constants/pokemon.h"
|
||||
#include "sprite.h"
|
||||
|
||||
#define MON_DATA_PERSONALITY 0
|
||||
#define MON_DATA_OT_ID 1
|
||||
@@ -266,6 +267,46 @@ struct UnknownPokemonStruct
|
||||
u8 friendship;
|
||||
};
|
||||
|
||||
struct UnknownPokemonSubStruct2
|
||||
{
|
||||
u16 species;
|
||||
u16 moves[4];
|
||||
u16 item;
|
||||
};
|
||||
|
||||
struct UnknownPokemonStruct2
|
||||
{
|
||||
u8 field_0_0 : 5;
|
||||
u8 field_0_1 : 2;
|
||||
u8 field_1;
|
||||
u8 field_2;
|
||||
u8 field_3;
|
||||
struct UnknownPokemonSubStruct2 mons[3];
|
||||
u8 field_28[23];
|
||||
u8 language;
|
||||
};
|
||||
|
||||
struct UnknownPokemonStruct3
|
||||
{
|
||||
u8 field_0[48];
|
||||
u16 field_30;
|
||||
u8 field_32[38];
|
||||
};
|
||||
|
||||
struct Unknown_806F160_Struct
|
||||
{
|
||||
u8 field_0_0 : 4;
|
||||
u8 field_0_1 : 4;
|
||||
u8 field_1;
|
||||
u8 magic;
|
||||
u8 field_3_0 : 4;
|
||||
u8 field_3_1 : 4;
|
||||
void *bytes;
|
||||
u8 **byteArrays;
|
||||
struct SpriteTemplate *templates;
|
||||
struct SpriteFrameImage *frameImages;
|
||||
};
|
||||
|
||||
#define BATTLE_STATS_NO 8
|
||||
|
||||
struct BattlePokemon
|
||||
@@ -424,17 +465,22 @@ extern u8 gPlayerPartyCount;
|
||||
extern struct Pokemon gPlayerParty[PARTY_SIZE];
|
||||
extern u8 gEnemyPartyCount;
|
||||
extern struct Pokemon gEnemyParty[PARTY_SIZE];
|
||||
extern struct SpriteTemplate gUnknown_0202499C;
|
||||
extern struct PokemonStorage* gPokemonStoragePtr;
|
||||
|
||||
extern const u8 gFacilityClassToPicIndex[];
|
||||
extern const u8 gFacilityClassToTrainerClass[];
|
||||
extern const struct BaseStats gBaseStats[];
|
||||
extern const u8 *const gItemEffectTable[];
|
||||
extern const struct Evolution gEvolutionTable[][EVOS_PER_MON];
|
||||
extern struct PokemonStorage* gPokemonStoragePtr;
|
||||
extern const u32 gExperienceTables[][MAX_MON_LEVEL + 1];
|
||||
extern const u16 *const gLevelUpLearnsets[];
|
||||
|
||||
u8 CountAliveMonsInBattle(u8 caseId);
|
||||
#define BATTLE_ALIVE_EXCEPT_ACTIVE 0
|
||||
#define BATTLE_ALIVE_ATK_SIDE 1
|
||||
#define BATTLE_ALIVE_DEF_SIDE 2
|
||||
extern const u8 gUnknown_08329D22[];
|
||||
extern const u8 gUnknown_08329D26[];
|
||||
extern const u8 gUnknown_08329D2A[];
|
||||
extern const u8 gStatStageRatios[][2];
|
||||
extern const u16 gUnknown_08329D54[];
|
||||
extern const struct SpriteTemplate gUnknown_08329D98[];
|
||||
|
||||
void ZeroBoxMonData(struct BoxPokemon *boxMon);
|
||||
void ZeroMonData(struct Pokemon *mon);
|
||||
@@ -448,26 +494,45 @@ void CreateMaleMon(struct Pokemon *mon, u16 species, u8 level);
|
||||
void CreateMonWithIVsPersonality(struct Pokemon *mon, u16 species, u8 level, u32 ivs, u32 personality);
|
||||
void CreateMonWithIVsOTID(struct Pokemon *mon, u16 species, u8 level, u8 *ivs, u32 otId);
|
||||
void CreateMonWithEVSpread(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 evSpread);
|
||||
u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon);
|
||||
void sub_806819C(struct Pokemon *mon, struct UnknownPokemonStruct *src);
|
||||
void sub_8068338(struct Pokemon *mon, struct UnknownPokemonStruct *src, bool8 lvl50);
|
||||
void sub_8068528(struct Pokemon *mon, const struct UnknownPokemonStruct2 *src, u8 monId);
|
||||
void CreateMonWithEVSpreadPersonalityOTID(struct Pokemon *mon, u16 species, u8 level, u8 nature, u8 fixedIV, u8 evSpread, u32 otId);
|
||||
void sub_80686FC(struct Pokemon *mon, struct UnknownPokemonStruct *dest);
|
||||
void CreateObedientMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId);
|
||||
bool8 sub_80688F8(u8 caseId, u8 battlerId);
|
||||
void SetDeoxysStats(void);
|
||||
u16 sub_8068B48(void);
|
||||
u16 sub_8068BB0(void);
|
||||
void CreateObedientEnemyMon(void);
|
||||
void CalculateMonStats(struct Pokemon *mon);
|
||||
void BoxMonToMon(const struct BoxPokemon *src, struct Pokemon *dest);
|
||||
u8 GetLevelFromMonExp(struct Pokemon *mon);
|
||||
u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon);
|
||||
u16 GiveMoveToMon(struct Pokemon *mon, u16 move);
|
||||
u16 GiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move);
|
||||
u16 GiveMoveToBattleMon(struct BattlePokemon *mon, u16 move);
|
||||
void MonRestorePP(struct Pokemon *mon);
|
||||
void SetMonMoveSlot(struct Pokemon *mon, u16 move, u8 slot);
|
||||
void SetBattleMonMoveSlot(struct BattlePokemon *mon, u16 move, u8 slot);
|
||||
void GiveMonInitialMoveset(struct Pokemon *mon);
|
||||
void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon);
|
||||
u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove);
|
||||
void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, u16 move);
|
||||
void DeleteFirstMoveAndGiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move);
|
||||
s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 sideStatus, u16 powerOverride, u8 typeOverride, u8 bankAtk, u8 bankDef);
|
||||
|
||||
u8 CountAliveMonsInBattle(u8 caseId);
|
||||
#define BATTLE_ALIVE_EXCEPT_ACTIVE 0
|
||||
#define BATTLE_ALIVE_ATK_SIDE 1
|
||||
#define BATTLE_ALIVE_DEF_SIDE 2
|
||||
|
||||
u8 GetDefaultMoveTarget(u8 battlerId);
|
||||
u8 GetMonGender(struct Pokemon *mon);
|
||||
u8 GetBoxMonGender(struct BoxPokemon *boxMon);
|
||||
u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality);
|
||||
void EncryptBoxMon(struct BoxPokemon *boxMon);
|
||||
void DecryptBoxMon(struct BoxPokemon *boxMon);
|
||||
void sub_806A068(u16 species, u8 battlerPosition);
|
||||
void sub_806A12C(u16 trainerSpriteId, u8 battlerPosition);
|
||||
void sub_806A1C0(u16 arg0, u8 battlerPosition);
|
||||
|
||||
// These are full type signatures for GetMonData() and GetBoxMonData(),
|
||||
// but they are not used since some code erroneously omits the third arg.
|
||||
@@ -476,93 +541,105 @@ void DecryptBoxMon(struct BoxPokemon *boxMon);
|
||||
u32 GetMonData();
|
||||
u32 GetBoxMonData();
|
||||
|
||||
void SetMonData(struct Pokemon *mon, s32 field, const void *data);
|
||||
void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *data);
|
||||
void SetMonData(struct Pokemon *mon, s32 field, const void *dataArg);
|
||||
void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg);
|
||||
void CopyMon(void *dest, void *src, size_t size);
|
||||
u8 GiveMonToPlayer(struct Pokemon *mon);
|
||||
u8 SendMonToPC(struct Pokemon *mon);
|
||||
u8 SendMonToPC(struct Pokemon* mon);
|
||||
u8 CalculatePlayerPartyCount(void);
|
||||
u8 CalculateEnemyPartyCount(void);
|
||||
|
||||
u8 GetMonsStateToDoubles(void);
|
||||
u8 GetMonsStateToDoubles_2(void);
|
||||
u8 GetAbilityBySpecies(u16 species, bool8 altAbility);
|
||||
u8 GetMonAbility(struct Pokemon *mon);
|
||||
void CreateSecretBaseEnemyParty(struct SecretBaseRecord *secretBaseRecord);
|
||||
u8 GetSecretBaseTrainerPicIndex(void);
|
||||
u8 GetSecretBaseTrainerNameIndex(void);
|
||||
u8 GetSecretBaseTrainerClass(void);
|
||||
bool8 IsPlayerPartyAndPokemonStorageFull(void);
|
||||
bool8 IsPokemonStorageFull(void);
|
||||
void GetSpeciesName(u8 *name, u16 species);
|
||||
u8 CalculatePPWithBonus(u16 move, u8 ppBonuses, u8 moveIndex);
|
||||
void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex);
|
||||
void RemoveBattleMonPPBonus(struct BattlePokemon *mon, u8 moveIndex);
|
||||
void CopyPlayerPartyMonToBattleData(u8 battleIndex, u8 partyIndex);
|
||||
|
||||
void CopyPlayerPartyMonToBattleData(u8 battlerId, u8 partyIndex);
|
||||
bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex);
|
||||
bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex, u8 e);
|
||||
bool8 HealStatusConditions(struct Pokemon *mon, u32 battlePartyId, u32 healMask, u8 battlerId);
|
||||
u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit);
|
||||
u8 *sub_806CF78(u16 itemId);
|
||||
u8 GetNature(struct Pokemon *mon);
|
||||
u8 GetNatureFromPersonality(u32 personality);
|
||||
|
||||
u16 nature_stat_mod(u8 nature, u16 n, u8 statIndex);
|
||||
|
||||
void MonRestorePP(struct Pokemon *);
|
||||
void BoxMonRestorePP(struct BoxPokemon *);
|
||||
|
||||
u16 NationalPokedexNumToSpecies(u16 nationalNum);
|
||||
u16 NationalToHoennOrder(u16);
|
||||
u16 SpeciesToNationalPokedexNum(u16);
|
||||
u16 HoennToNationalOrder(u16);
|
||||
u16 SpeciesToCryId(u16 species);
|
||||
void DrawSpindaSpots(u16, u32, u8 *, u8);
|
||||
void AdjustFriendship(struct Pokemon *, u8);
|
||||
u8 CheckPartyHasHadPokerus(struct Pokemon *, u8);
|
||||
void UpdatePartyPokerusTime(u16);
|
||||
u32 CanMonLearnTMHM(struct Pokemon *, u8);
|
||||
u32 CanSpeciesLearnTMHM(u16 species, u8 tm);
|
||||
u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves);
|
||||
void ClearBattleMonForms(void);
|
||||
const u8 *GetMonFrontSpritePal(struct Pokemon *mon);
|
||||
const u8 *GetFrontSpritePalFromSpeciesAndPersonality(u16, u32, u32);
|
||||
const struct CompressedSpritePalette *sub_80409C8(u16, u32, u32);
|
||||
bool8 IsOtherTrainer(u32, u8 *);
|
||||
void SetWildMonHeldItem(void);
|
||||
u16 GetMonEVCount(struct Pokemon *);
|
||||
|
||||
const struct CompressedSpritePalette *sub_806E794(struct Pokemon *mon);
|
||||
const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u16 species, u32 otId , u32 personality);
|
||||
bool32 IsHMMove2(u16 move);
|
||||
bool8 IsPokeSpriteNotFlipped(u16 species);
|
||||
bool8 IsMonShiny(struct Pokemon *mon);
|
||||
bool8 IsShinyOtIdPersonality(u32 otId, u32 personality);
|
||||
|
||||
void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies);
|
||||
bool8 IsTradedMon(struct Pokemon *mon);
|
||||
void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality);
|
||||
s32 GetBattlerMultiplayerId(u16 a1);
|
||||
bool16 sub_806D82C(u8 id);
|
||||
u16 MonTryLearningNewMove(struct Pokemon* mon, bool8);
|
||||
void sub_8068AA4(void); // sets stats for deoxys
|
||||
bool8 HasTwoFramesAnimation(u16 species);
|
||||
u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem);
|
||||
u16 HoennPokedexNumToSpecies(u16 hoennNum);
|
||||
u16 NationalPokedexNumToSpecies(u16 nationalNum);
|
||||
u16 NationalToHoennOrder(u16 nationalNum);
|
||||
u16 SpeciesToNationalPokedexNum(u16 species);
|
||||
u16 SpeciesToHoennPokedexNum(u16 species);
|
||||
u16 HoennToNationalOrder(u16 hoennNum);
|
||||
u16 SpeciesToCryId(u16 species);
|
||||
void sub_806D544(u16 species, u32 personality, u8 *dest);
|
||||
void DrawSpindaSpots(u16 species, u32 personality, u8 *dest, u8 a4);
|
||||
void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies);
|
||||
bool8 sub_806D7EC(void);
|
||||
bool16 sub_806D82C(u8 id);
|
||||
s32 GetBattlerMultiplayerId(u16 a1);
|
||||
u8 GetTrainerEncounterMusicId(u16 trainerOpponentId);
|
||||
u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex);
|
||||
void AdjustFriendship(struct Pokemon *mon, u8 event);
|
||||
void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies);
|
||||
u16 GetMonEVCount(struct Pokemon *mon);
|
||||
void RandomlyGivePartyPokerus(struct Pokemon *party);
|
||||
u8 CheckPartyPokerus(struct Pokemon *party, u8 selection);
|
||||
u8 CheckPartyHasHadPokerus(struct Pokemon *party, u8 selection);
|
||||
void UpdatePartyPokerusTime(u16 days);
|
||||
void PartySpreadPokerus(struct Pokemon *party);
|
||||
s8 GetMonFlavorRelation(struct Pokemon *mon, u8 a2);
|
||||
s8 GetFlavorRelationByPersonality(u32 personality, u8 a2);
|
||||
u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit);
|
||||
u8 GetDefaultMoveTarget(u8 atkBank);
|
||||
u16 PlayerGenderToFrontTrainerPicId(u8 playerGender);
|
||||
void sub_806A1C0(u16 arg0, u8 bankIdentity);
|
||||
void sub_806A12C(u16 trainerSpriteId, u8 bankIdentity);
|
||||
u8 GetSecretBaseTrainerPicIndex(void);
|
||||
bool8 TryIncrementMonLevel(struct Pokemon *mon);
|
||||
void BoxMonToMon(struct BoxPokemon *srcMon, struct Pokemon *dstMon);
|
||||
u32 CanMonLearnTMHM(struct Pokemon *mon, u8 tm);
|
||||
u32 CanSpeciesLearnTMHM(u16 species, u8 tm);
|
||||
u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves);
|
||||
u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves);
|
||||
u8 GetMonsStateToDoubles_2(void);
|
||||
|
||||
#include "sprite.h"
|
||||
|
||||
void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3);
|
||||
u8 GetNumberOfRelearnableMoves(struct Pokemon *mon);
|
||||
u16 SpeciesToPokedexNum(u16 species);
|
||||
bool32 sub_806E3F8(u16 species);
|
||||
void ClearBattleMonForms(void);
|
||||
u16 GetBattleBGM(void);
|
||||
void PlayBattleBGM(void);
|
||||
void PlayMapChosenOrBattleBGM(u16 songId);
|
||||
void sub_806E694(u16 songId);
|
||||
const u8 *GetMonFrontSpritePal(struct Pokemon *mon);
|
||||
const u8 *GetFrontSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 personality);
|
||||
const struct CompressedSpritePalette *GetMonSpritePalStruct(struct Pokemon *mon);
|
||||
const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u16 species, u32 otId , u32 personality);
|
||||
bool32 IsHMMove2(u16 move);
|
||||
bool8 IsMonSpriteNotFlipped(u16 species);
|
||||
s8 GetMonFlavorRelation(struct Pokemon *mon, u8 flavor);
|
||||
s8 GetFlavorRelationByPersonality(u32 personality, u8 flavor);
|
||||
bool8 IsTradedMon(struct Pokemon *mon);
|
||||
bool8 IsOtherTrainer(u32 otId, u8 *otName);
|
||||
void MonRestorePP(struct Pokemon *mon);
|
||||
void BoxMonRestorePP(struct BoxPokemon *boxMon);
|
||||
void sub_806E994(void);
|
||||
void SetWildMonHeldItem(void);
|
||||
bool8 IsMonShiny(struct Pokemon *mon);
|
||||
bool8 IsShinyOtIdPersonality(u32 otId, u32 personality);
|
||||
const u8 *GetTrainerPartnerName(void);
|
||||
void BattleAnimateFrontSprite(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3);
|
||||
void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3);
|
||||
void PokemonSummaryDoMonAnimation(struct Sprite* sprite, u16 species, bool8 oneFrame);
|
||||
void sub_806EE98(void);
|
||||
void BattleAnimateBackSprite(struct Sprite* sprite, u16 species);
|
||||
u8 sub_806EF08(u8 arg0);
|
||||
u8 sub_806EF84(u8 arg0, u8 arg1);
|
||||
u16 sub_806EFF0(u16 arg0);
|
||||
u16 FacilityClassToPicIndex(u16 facilityClass);
|
||||
u16 PlayerGenderToFrontTrainerPicId(u8 playerGender);
|
||||
void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality);
|
||||
const u8 *GetTrainerClassNameFromId(u16 trainerId);
|
||||
const u8 *GetTrainerNameFromId(u16 trainerId);
|
||||
bool8 HasTwoFramesAnimation(u16 species);
|
||||
bool8 sub_806F104(void);
|
||||
struct Unknown_806F160_Struct *sub_806F2AC(u8 id, u8 arg1);
|
||||
void sub_806F47C(u8 id);
|
||||
u8 *sub_806F4F8(u8 id, u8 arg1);
|
||||
|
||||
#endif // GUARD_POKEMON_H
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
#ifndef GUARD_POKEMON_3_H
|
||||
#define GUARD_POKEMON_3_H
|
||||
|
||||
const u8* GetTrainerClassNameFromId(u16 trainerId);
|
||||
const u8* GetTrainerNameFromId(u16 trainerId);
|
||||
void PlayMapChosenOrBattleBGM(u16 song);
|
||||
u8 GetTrainerEncounterMusicId(u16 trainerOpponentId);
|
||||
|
||||
#endif // GUARD_POKEMON_3_H
|
||||
@@ -1,62 +0,0 @@
|
||||
#ifndef GUARD_POKEMON_ITEM_EFFECTS
|
||||
#define GUARD_POKEMON_ITEM_EFFECTS
|
||||
|
||||
#include "pokemon.h"
|
||||
|
||||
// TODO once pokemon item effects is decompiled
|
||||
/*
|
||||
struct PokemonItemEffect
|
||||
{
|
||||
//field 0
|
||||
u8 xAtk : 4; // x1, x2, x4, x8 = xF
|
||||
u8 field_0_x10 : 1; // x10
|
||||
u8 critRatioUp : 1; // x20
|
||||
u8 field_0_x40 : 1; // x40
|
||||
u8 cureInfatuation : 1; // x80
|
||||
|
||||
/*field 1
|
||||
u8 xSpeed : 4; // x1, x2, x4, x8 = xF
|
||||
u8 xDefense : 4; // x10, x20, x40, xF0
|
||||
|
||||
/*field 2
|
||||
u8 xSpAtk : 4; // x1, x2, x4, x8 = xF
|
||||
u8 xAccuracy : 4; // x10, x20, x40, xF0
|
||||
|
||||
/*field 3
|
||||
u8 cureConfusion : 1; // x1
|
||||
u8 cureParalysis : 1; // x2
|
||||
u8 cureFreeze : 1; // x4
|
||||
u8 cureBurn : 1; // x8
|
||||
u8 curePoison : 1; // x10
|
||||
u8 cureSleep : 1; // x20
|
||||
u8 field_3_x40 : 1; // x40
|
||||
u8 cantLowerStats : 1; // x80
|
||||
|
||||
/*field 4
|
||||
u8 hpEv : 1; // x1
|
||||
u8 attackEv : 1; // x2
|
||||
u8 healHp : 1; // x4
|
||||
u8 field_4_x8 : 1; // x8
|
||||
u8 field_4_x10 : 1; // x10
|
||||
u8 ppUp : 1; // x20
|
||||
u8 levelUp : 1; // x40
|
||||
u8 evolutionStone : 1; // x80
|
||||
|
||||
/*field 5
|
||||
u8 defEv: 1; // x1
|
||||
u8 speedEv : 1; // x2
|
||||
u8 spDefEv : 1; // x4
|
||||
u8 spAtkEv : 1; // x8
|
||||
u8 ppMax : 1; // x10
|
||||
u8 field_5_x20 : 1; // x20
|
||||
u8 field_5_x40 : 1; // x40
|
||||
u8 field_5_x80 : 1; // x80
|
||||
|
||||
/*field 6
|
||||
u8 value;
|
||||
};
|
||||
*/
|
||||
|
||||
bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 itemId, u8 partyId, u8 monMoveIndex, u8 a5);
|
||||
|
||||
#endif // GUARD_POKEMON_ITEM_EFFECTS
|
||||
Reference in New Issue
Block a user