From 5394435520c4942ec9935454ff420acbab2ff4e4 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 11 Sep 2017 14:42:13 +0200 Subject: more of pokemon3 decompiled --- include/battle.h | 102 +++++++++++++++++++++++++++++++++++++++++++++- include/m4a.h | 1 + include/pokemon.h | 8 ++++ include/trainer_class.h | 53 ------------------------ include/trainer_classes.h | 53 ++++++++++++++++++++++++ include/trainer_ids.h | 6 +++ 6 files changed, 169 insertions(+), 54 deletions(-) delete mode 100644 include/trainer_class.h create mode 100644 include/trainer_classes.h create mode 100644 include/trainer_ids.h (limited to 'include') diff --git a/include/battle.h b/include/battle.h index 81d3e2c82..61270bed0 100644 --- a/include/battle.h +++ b/include/battle.h @@ -32,6 +32,8 @@ #define BATTLE_TYPE_KYORGE 0x20000000 #define BATTLE_TYPE_RAYQUAZA 0x40000000 +#define STEVEN_PARTNER_ID 0xC03 + #define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000 | BATTLE_TYPE_PYRAMID) #define BATTLE_WON 0x1 @@ -337,7 +339,105 @@ struct BattleStruct u8 wildVictorySong; u8 dynamicMoveType; u8 wrappedBy[4]; - u8 field_18[0x63]; // TODO: expand + u8 field_18; + u8 field_19; + u8 field_1A; + u8 field_1B; + u8 field_1C; + u8 field_1D; + u8 field_1E; + u8 field_1F; + u8 field_20; + u8 field_21; + u8 field_22; + u8 field_23; + u8 field_24; + u8 field_25; + u8 field_26; + u8 field_27; + u8 field_28; + u8 field_29; + u8 field_2A; + u8 field_2B; + u8 field_2C; + u8 field_2D; + u8 field_2E; + u8 field_2F; + u8 field_30; + u8 field_31; + u8 field_32; + u8 field_33; + u8 field_34; + u8 field_35; + u8 field_36; + u8 field_37; + u8 field_38; + u8 field_39; + u8 field_3A; + u8 field_3B; + u8 field_3C; + u8 field_3D; + u8 field_3E; + u8 field_3F; + u8 field_40; + u8 field_41; + u8 field_42; + u8 field_43; + u8 field_44; + u8 field_45; + u8 field_46; + u8 field_47; + u8 field_48; + u8 field_49; + u8 field_4A; + u8 field_4B; + u8 field_4C; + u8 field_4D; + u8 field_4E; + u8 field_4F; + u8 field_50; + u8 field_51; + u8 field_52; + u8 field_53; + u8 field_54; + u8 field_55; + u8 field_56; + u8 field_57; + u8 field_58; + u8 field_59; + u8 field_5A; + u8 field_5B; + u8 field_5C; + u8 field_5D; + u8 field_5E; + u8 field_5F; + u8 field_60; + u8 field_61; + u8 field_62; + u8 field_63; + u8 field_64; + u8 field_65; + u8 field_66; + u8 field_67; + u8 field_68; + u8 field_69; + u8 field_6A; + u8 field_6B; + u8 field_6C; + u8 field_6D; + u8 field_6E; + u8 field_6F; + u8 field_70; + u8 field_71; + u8 field_72; + u8 field_73; + u8 field_74; + u8 field_75; + u8 field_76; + u8 field_77; + u8 field_78; + u8 field_79; + u8 field_7A; u8 field_7B; u8 field_7C; u8 field_7D; diff --git a/include/m4a.h b/include/m4a.h index 949403885..b6c8f9072 100644 --- a/include/m4a.h +++ b/include/m4a.h @@ -9,6 +9,7 @@ void m4aSoundInit(void); void m4aSoundMain(void); void m4aSongNumStart(u16); void m4aSongNumStop(u16 n); +void m4aMPlayAllStop(void); void m4aMPlayContinue(struct MusicPlayerInfo *mplayInfo); void m4aMPlayFadeOut(struct MusicPlayerInfo *mplayInfo, u16 speed); void m4aMPlayFadeOutTemporarily(struct MusicPlayerInfo *mplayInfo, u16 speed); diff --git a/include/pokemon.h b/include/pokemon.h index cfee4261c..12b58ba9f 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -562,6 +562,7 @@ 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); @@ -583,4 +584,11 @@ bool8 IsOtherTrainer(u32, u8 *); void SetWildMonHeldItem(void); u16 GetMonEVCount(struct Pokemon *); +const struct CompressedSpritePalette *sub_806E794(struct Pokemon *mon); +const struct CompressedSpritePalette *sub_806E7CC(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); + #endif // GUARD_POKEMON_H diff --git a/include/trainer_class.h b/include/trainer_class.h deleted file mode 100644 index 14fc69a24..000000000 --- a/include/trainer_class.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef GUARD_TRAINER_CLASS_H -#define GUARD_TRAINER_CLASS_H - -enum -{ - CLASS_PKMN_TRAINER0, //0 - CLASS_PKMN_TRAINER1, //1 - CLASS_HIKER, //2 - CLASS_TEAM_AQUA, //3 - CLASS_PKMN_BREEDER, //4 - CLASS_COOLTRAINER, //5 - CLASS_BIRDKEEPER, //6 - CLASS_COLLECTOR, //7 - CLASS_SWIMMER_MALE, //8 - CLASS_TEAM_MAGMA, //9 - CLASS_EXPERT, // 0xA - CLASS_AQUA_ADMIN, // 0xB - CLASS_BLACK_BELT, // 0xC - CLASS_AQUA_LEADER, // 0xD - CLASS_HEX_MANIAC, // 0xE - CLASS_AROMA_LADY, // 0xF - CLASS_RUIN_MANIAC, // 0x10 - CLASS_INTERVIEWER, // 0x11 - CLASS_TUBER_FEMALE, // 0x12 - CLASS_TUBER_MALE, // 0x13 - CLASS_LADY, // 0x14 - CLASS_BEAUTY, // 0x15 - CLASS_RICH_BOY, // 0x16 - CLASS_POKEMANIAC, // 0x17 - CLASS_GUITARIST, // 0x18 - CLASS_KINDLER, // 0x19 - CLASS_CAMPER, // 0x1A - CLASS_PICKNICKER, // 0x1B - CLASS_BUG_MANIAC, // 0x1C - CLASS_PSYCHIC, // 0x1D - CLASS_GENTLEMAN, // 0x1E - CLASS_ELITE_FOUR, // 0x1F - CLASS_LEADER, // 0x20 - CLASS_CHAMPION = 0x26, - CLASS_MAGMA_ADMIN = 0x31, - CLASS_PKMN_TRAINER_RIVAL = 0x32, - CLASS_MAGMA_LEADER = 0x35, - CLASS_SALON_MAIDEN = 0x3A, - CLASS_DOME_ACE, // 0x3B - CLASS_PALACE_MAVEN, // 0x3C - CLASS_ARENA_TYCOON, // 0x3D - CLASS_FACTORY_HEAD, // 0x3E - CLASS_PIKE_QUEEN, // 0x3F - CLASS_PYRAMID_KING, // 0x40 - CLASS_PKMN_TRAINER2, // 0x41 -}; - -#endif // GUARD_TRAINER_CLASS_H diff --git a/include/trainer_classes.h b/include/trainer_classes.h new file mode 100644 index 000000000..3f13dfc37 --- /dev/null +++ b/include/trainer_classes.h @@ -0,0 +1,53 @@ +#ifndef GUARD_TRAINER_CLASSES_H +#define GUARD_TRAINER_CLASSES_H + +enum +{ + CLASS_PKMN_TRAINER0, //0 + CLASS_PKMN_TRAINER1, //1 + CLASS_HIKER, //2 + CLASS_TEAM_AQUA, //3 + CLASS_PKMN_BREEDER, //4 + CLASS_COOLTRAINER, //5 + CLASS_BIRDKEEPER, //6 + CLASS_COLLECTOR, //7 + CLASS_SWIMMER_MALE, //8 + CLASS_TEAM_MAGMA, //9 + CLASS_EXPERT, // 0xA + CLASS_AQUA_ADMIN, // 0xB + CLASS_BLACK_BELT, // 0xC + CLASS_AQUA_LEADER, // 0xD + CLASS_HEX_MANIAC, // 0xE + CLASS_AROMA_LADY, // 0xF + CLASS_RUIN_MANIAC, // 0x10 + CLASS_INTERVIEWER, // 0x11 + CLASS_TUBER_FEMALE, // 0x12 + CLASS_TUBER_MALE, // 0x13 + CLASS_LADY, // 0x14 + CLASS_BEAUTY, // 0x15 + CLASS_RICH_BOY, // 0x16 + CLASS_POKEMANIAC, // 0x17 + CLASS_GUITARIST, // 0x18 + CLASS_KINDLER, // 0x19 + CLASS_CAMPER, // 0x1A + CLASS_PICKNICKER, // 0x1B + CLASS_BUG_MANIAC, // 0x1C + CLASS_PSYCHIC, // 0x1D + CLASS_GENTLEMAN, // 0x1E + CLASS_ELITE_FOUR, // 0x1F + CLASS_LEADER, // 0x20 + CLASS_CHAMPION = 0x26, + CLASS_MAGMA_ADMIN = 0x31, + CLASS_PKMN_TRAINER_RIVAL = 0x32, + CLASS_MAGMA_LEADER = 0x35, + CLASS_SALON_MAIDEN = 0x3A, + CLASS_DOME_ACE, // 0x3B + CLASS_PALACE_MAVEN, // 0x3C + CLASS_ARENA_TYCOON, // 0x3D + CLASS_FACTORY_HEAD, // 0x3E + CLASS_PIKE_QUEEN, // 0x3F + CLASS_PYRAMID_KING, // 0x40 + CLASS_PKMN_TRAINER2, // 0x41 +}; + +#endif // GUARD_TRAINER_CLASSES_H diff --git a/include/trainer_ids.h b/include/trainer_ids.h new file mode 100644 index 000000000..1dd3ba3ac --- /dev/null +++ b/include/trainer_ids.h @@ -0,0 +1,6 @@ +#ifndef GUARD_TRAINER_IDS_H +#define GUARD_TRAINER_IDS_H + +#define TRAINER_ID_STEVEN 804 + +#endif // GUARD_TRAINER_IDS_H -- cgit v1.2.3