diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/cereader_tool.h | 2 | ||||
-rw-r--r-- | include/constants/facility_trainer_classes.h | 155 | ||||
-rw-r--r-- | include/constants/flags.h | 2 | ||||
-rw-r--r-- | include/constants/region_map.h | 115 | ||||
-rw-r--r-- | include/constants/trainer_classes.h | 112 | ||||
-rw-r--r-- | include/constants/vars.h | 2 | ||||
-rw-r--r-- | include/global.h | 176 | ||||
-rw-r--r-- | include/main.h | 1 | ||||
-rw-r--r-- | include/overworld.h | 2 | ||||
-rw-r--r-- | include/region_map.h | 113 | ||||
-rw-r--r-- | include/trainer_classes.h | 118 |
11 files changed, 491 insertions, 307 deletions
diff --git a/include/cereader_tool.h b/include/cereader_tool.h index 28ef526eb..05677dc79 100644 --- a/include/cereader_tool.h +++ b/include/cereader_tool.h @@ -4,6 +4,6 @@ #include "global.h" bool32 sub_815D794(u8 *); -u8 sub_815D6B4(u8 *); +bool32 sub_815D6B4(u8 *); #endif //GUARD_CEREADER_TOOL_H diff --git a/include/constants/facility_trainer_classes.h b/include/constants/facility_trainer_classes.h new file mode 100644 index 000000000..10500ff35 --- /dev/null +++ b/include/constants/facility_trainer_classes.h @@ -0,0 +1,155 @@ +#ifndef GUARD_CONSTANTS_FACILITY_TRAINER_CLASSES_H +#define GUARD_CONSTANTS_FACILITY_TRAINER_CLASSES_H + +#define FACILITY_CLASS_AQUA_LEADER 0x00 +#define FACILITY_CLASS_TEAM_AQUA 0x01 +#define FACILITY_CLASS_TEAM_AQUA_2 0x02 +#define FACILITY_CLASS_AROMA_LADY 0x03 +#define FACILITY_CLASS_RUIN_MANIAC 0x04 +#define FACILITY_CLASS_INTERVIEWER 0x05 +#define FACILITY_CLASS_TUBER 0x06 +#define FACILITY_CLASS_TUBER_2 0x07 +#define FACILITY_CLASS_COOLTRAINER 0x08 +#define FACILITY_CLASS_COOLTRAINER_2 0x09 +#define FACILITY_CLASS_HEX_MANIAC 0x0A +#define FACILITY_CLASS_LADY 0x0B +#define FACILITY_CLASS_BEAUTY 0x0C +#define FACILITY_CLASS_RICH_BOY 0x0D +#define FACILITY_CLASS_POKEMANIAC 0x0E +#define FACILITY_CLASS_SWIMMER_MALE 0x0F +#define FACILITY_CLASS_BLACK_BELT 0x10 +#define FACILITY_CLASS_GUITARIST 0x11 +#define FACILITY_CLASS_KINDLER 0x12 +#define FACILITY_CLASS_CAMPER 0x13 +#define FACILITY_CLASS_BUG_MANIAC 0x14 +#define FACILITY_CLASS_PSYCHIC 0x15 +#define FACILITY_CLASS_PSYCHIC_2 0x16 +#define FACILITY_CLASS_GENTLEMAN 0x17 +#define FACILITY_CLASS_ELITE_FOUR 0x18 +#define FACILITY_CLASS_ELITE_FOUR_2 0x19 +#define FACILITY_CLASS_LEADER 0x1A +#define FACILITY_CLASS_LEADER_2 0x1B +#define FACILITY_CLASS_LEADER_3 0x1C +#define FACILITY_CLASS_SCHOOL_KID 0x1D +#define FACILITY_CLASS_SCHOOL_KID_2 0x1E +#define FACILITY_CLASS_SR_AND_JR 0x1F +#define FACILITY_CLASS_POKEFAN 0x20 +#define FACILITY_CLASS_POKEFAN_2 0x21 +#define FACILITY_CLASS_EXPERT 0x22 +#define FACILITY_CLASS_EXPERT_2 0x23 +#define FACILITY_CLASS_YOUNGSTER 0x24 +#define FACILITY_CLASS_CHAMPION 0x25 +#define FACILITY_CLASS_FISHERMAN 0x26 +#define FACILITY_CLASS_TRIATHLETE 0x27 +#define FACILITY_CLASS_TRIATHLETE_2 0x28 +#define FACILITY_CLASS_TRIATHLETE_3 0x29 +#define FACILITY_CLASS_TRIATHLETE_4 0x2A +#define FACILITY_CLASS_TRIATHLETE_5 0x2B +#define FACILITY_CLASS_TRIATHLETE_6 0x2C +#define FACILITY_CLASS_DRAGON_TAMER 0x2D +#define FACILITY_CLASS_BIRD_KEEPER 0x2E +#define FACILITY_CLASS_NINJA_BOY 0x2F +#define FACILITY_CLASS_BATTLE_GIRL 0x30 +#define FACILITY_CLASS_PARASOL_LADY 0x31 +#define FACILITY_CLASS_SWIMMER_FEMALE 0x32 +#define FACILITY_CLASS_PICNICKER 0x33 +#define FACILITY_CLASS_TWINS 0x34 +#define FACILITY_CLASS_SAILOR 0x35 +#define FACILITY_CLASS_BOARDER 0x36 +#define FACILITY_CLASS_BOARDER_2 0x37 +#define FACILITY_CLASS_COLLECTOR 0x38 +#define FACILITY_CLASS_PKMN_TRAINER 0x39 +#define FACILITY_CLASS_PKMN_TRAINER_2 0x3A +#define FACILITY_CLASS_PKMN_TRAINER_3 0x3B +#define FACILITY_CLASS_PKMN_TRAINER_4 0x3C +#define FACILITY_CLASS_PKMN_TRAINER_5 0x3D +#define FACILITY_CLASS_PKMN_TRAINER_6 0x3E +#define FACILITY_CLASS_PKMN_TRAINER_7 0x3F +#define FACILITY_CLASS_PKMN_BREEDER 0x40 +#define FACILITY_CLASS_PKMN_BREEDER_2 0x41 +#define FACILITY_CLASS_PKMN_RANGER 0x42 +#define FACILITY_CLASS_PKMN_RANGER_2 0x43 +#define FACILITY_CLASS_MAGMA_LEADER 0x44 +#define FACILITY_CLASS_TEAM_MAGMA 0x45 +#define FACILITY_CLASS_TEAM_MAGMA_2 0x46 +#define FACILITY_CLASS_LASS 0x47 +#define FACILITY_CLASS_BUG_CATCHER 0x48 +#define FACILITY_CLASS_HIKER 0x49 +#define FACILITY_CLASS_YOUNG_COUPLE 0x4A +#define FACILITY_CLASS_OLD_COUPLE 0x4B +#define FACILITY_CLASS_SIS_AND_BRO 0x4C +#define FACILITY_CLASS_AQUA_ADMIN 0x4D +#define FACILITY_CLASS_AQUA_ADMIN_2 0x4E +#define FACILITY_CLASS_MAGMA_ADMIN 0x4F +#define FACILITY_CLASS_MAGMA_ADMIN_2 0x50 +#define FACILITY_CLASS_LEADER_4 0x51 +#define FACILITY_CLASS_LEADER_5 0x52 +#define FACILITY_CLASS_LEADER_6 0x53 +#define FACILITY_CLASS_LEADER_7 0x54 +#define FACILITY_CLASS_LEADER_8 0x55 +#define FACILITY_CLASS_ELITE_FOUR_3 0x56 +#define FACILITY_CLASS_ELITE_FOUR_4 0x57 +#define FACILITY_CLASS_YOUNGSTER_2 0x58 +#define FACILITY_CLASS_BUG_CATCHER_2 0x59 +#define FACILITY_CLASS_LASS_2 0x5A +#define FACILITY_CLASS_SAILOR_2 0x5B +#define FACILITY_CLASS_CAMPER_2 0x5C +#define FACILITY_CLASS_PICNICKER_2 0x5D +#define FACILITY_CLASS_POKEMANIAC_2 0x5E +#define FACILITY_CLASS_SUPER_NERD 0x5F +#define FACILITY_CLASS_HIKER_2 0x60 +#define FACILITY_CLASS_BIKER 0x61 +#define FACILITY_CLASS_BURGLAR 0x62 +#define FACILITY_CLASS_ENGINEER 0x63 +#define FACILITY_CLASS_FISHERMAN_2 0x64 +#define FACILITY_CLASS_SWIMMER_MALE_2 0x65 +#define FACILITY_CLASS_CUE_BALL 0x66 +#define FACILITY_CLASS_GAMER 0x67 +#define FACILITY_CLASS_BEAUTY_2 0x68 +#define FACILITY_CLASS_SWIMMER_FEMALE_2 0x69 +#define FACILITY_CLASS_PSYCHIC_3 0x6A +#define FACILITY_CLASS_ROCKER 0x6B +#define FACILITY_CLASS_JUGGLER 0x6C +#define FACILITY_CLASS_TAMER 0x6D +#define FACILITY_CLASS_BIRD_KEEPER_2 0x6E +#define FACILITY_CLASS_BLACK_BELT_2 0x6F +#define FACILITY_CLASS_RIVAL 0x70 +#define FACILITY_CLASS_SCIENTIST 0x71 +#define FACILITY_CLASS_BOSS 0x72 +#define FACILITY_CLASS_TEAM_ROCKET 0x73 +#define FACILITY_CLASS_COOLTRAINER_3 0x74 +#define FACILITY_CLASS_COOLTRAINER_4 0x75 +#define FACILITY_CLASS_ELITE_FOUR_5 0x76 +#define FACILITY_CLASS_ELITE_FOUR_6 0x77 +#define FACILITY_CLASS_LEADER_9 0x78 +#define FACILITY_CLASS_LEADER_10 0x79 +#define FACILITY_CLASS_GENTLEMAN_2 0x7A +#define FACILITY_CLASS_RIVAL_2 0x7B +#define FACILITY_CLASS_CHAMPION_2 0x7C +#define FACILITY_CLASS_CHANNELER 0x7D +#define FACILITY_CLASS_TWINS_2 0x7E +#define FACILITY_CLASS_COOL_COUPLE 0x7F +#define FACILITY_CLASS_YOUNG_COUPLE_2 0x80 +#define FACILITY_CLASS_CRUSH_KIN 0x81 +#define FACILITY_CLASS_SIS_AND_BRO_2 0x82 +#define FACILITY_CLASS_PKMN_PROF 0x83 +#define FACILITY_CLASS_PLAYER 0x84 +#define FACILITY_CLASS_PLAYER_2 0x85 +#define FACILITY_CLASS_PLAYER_3 0x86 +#define FACILITY_CLASS_PLAYER_4 0x87 +#define FACILITY_CLASS_TEAM_ROCKET_2 0x88 +#define FACILITY_CLASS_PSYCHIC_4 0x89 +#define FACILITY_CLASS_CRUSH_GIRL 0x8A +#define FACILITY_CLASS_TUBER_3 0x8B +#define FACILITY_CLASS_PKMN_BREEDER_3 0x8C +#define FACILITY_CLASS_PKMN_RANGER_3 0x8D +#define FACILITY_CLASS_PKMN_RANGER_4 0x8E +#define FACILITY_CLASS_AROMA_LADY_2 0x8F +#define FACILITY_CLASS_RUIN_MANIAC_2 0x90 +#define FACILITY_CLASS_LADY_2 0x91 +#define FACILITY_CLASS_PAINTER 0x92 +#define FACILITY_CLASS_ELITE_FOUR_7 0x93 +#define FACILITY_CLASS_ELITE_FOUR_8 0x94 +#define FACILITY_CLASS_CHAMPION_3 0x95 + +#endif //GUARD_CONSTANTS_FACILITY_TRAINER_CLASSES_H diff --git a/include/constants/flags.h b/include/constants/flags.h index ea2d7d8bc..daa8b3132 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -1002,6 +1002,8 @@ #define FLAG_0x3E5 0x3E5 #define FLAG_0x3E6 0x3E6 #define FLAG_0x3E7 0x3E7 + +#define FLAG_TRAINER_TOWER_START 1000 // 0x3E8 #define FLAG_0x3E8 0x3E8 #define FLAG_0x3E9 0x3E9 #define FLAG_0x3EA 0x3EA diff --git a/include/constants/region_map.h b/include/constants/region_map.h new file mode 100644 index 000000000..87203f538 --- /dev/null +++ b/include/constants/region_map.h @@ -0,0 +1,115 @@ +#ifndef GUARD_CONSTANTS_REGION_MAP_H +#define GUARD_CONSTANTS_REGION_MAP_H + +#define MAPSEC_PALLET_TOWN 0x0 +#define MAPSEC_VIRIDIAN_CITY 0x1 +#define MAPSEC_PEWTER_CITY 0x2 +#define MAPSEC_CERULEAN_CITY 0x3 +#define MAPSEC_LAVENDER_TOWN 0x4 +#define MAPSEC_VERMILION_CITY 0x5 +#define MAPSEC_CELADON_CITY 0x6 +#define MAPSEC_FUCHSIA_CITY 0x7 +#define MAPSEC_CINNABAR_ISLAND 0x8 +#define MAPSEC_INDIGO_PLATEAU 0x9 +#define MAPSEC_SAFFRON_CITY 0xA +#define MAPSEC_ROUTE_4 0xB +#define MAPSEC_ROUTE_10 0xC +#define MAPSEC_ROUTE_1 0xD +#define MAPSEC_ROUTE_2 0xE +#define MAPSEC_ROUTE_3 0xF +#define MAPSEC_ROUTE_4_2 0x10 +#define MAPSEC_ROUTE_5 0x11 +#define MAPSEC_ROUTE_6 0x12 +#define MAPSEC_ROUTE_7 0x13 +#define MAPSEC_ROUTE_8 0x14 +#define MAPSEC_ROUTE_9 0x15 +#define MAPSEC_ROUTE_10_2 0x16 +#define MAPSEC_ROUTE_11 0x17 +#define MAPSEC_ROUTE_12 0x18 +#define MAPSEC_ROUTE_13 0x19 +#define MAPSEC_ROUTE_14 0x1A +#define MAPSEC_ROUTE_15 0x1B +#define MAPSEC_ROUTE_16 0x1C +#define MAPSEC_ROUTE_17 0x1D +#define MAPSEC_ROUTE_18 0x1E +#define MAPSEC_ROUTE_19 0x1F +#define MAPSEC_ROUTE_20 0x20 +#define MAPSEC_ROUTE_21 0x21 +#define MAPSEC_ROUTE_22 0x22 +#define MAPSEC_ROUTE_23 0x23 +#define MAPSEC_ROUTE_24 0x24 +#define MAPSEC_ROUTE_25 0x25 +#define MAPSEC_VIRIDIAN_FOREST 0x26 +#define MAPSEC_MT_MOON 0x27 +#define MAPSEC_S_S_ANNE 0x28 +#define MAPSEC_UNDERGROUND_PATH 0x29 +#define MAPSEC_UNDERGROUND_PATH_2 0x2A +#define MAPSEC_DIGLETTS_CAVE 0x2B +#define MAPSEC_KANTO_VICTORY_ROAD 0x2C +#define MAPSEC_ROCKET_HIDEOUT 0x2D +#define MAPSEC_SILPH_CO 0x2E +#define MAPSEC_POKEMON_MANSION 0x2F +#define MAPSEC_KANTO_SAFARI_ZONE 0x30 +#define MAPSEC_POKEMON_LEAGUE 0x31 +#define MAPSEC_ROCK_TUNNEL 0x32 +#define MAPSEC_SEAFOAM_ISLANDS 0x33 +#define MAPSEC_POKEMON_TOWER 0x34 +#define MAPSEC_CERULEAN_CAVE 0x35 +#define MAPSEC_POWER_PLANT 0x36 +#define MAPSEC_ONE_ISLAND 0x37 +#define MAPSEC_TWO_ISLAND 0x38 +#define MAPSEC_THREE_ISLAND 0x39 +#define MAPSEC_FOUR_ISLAND 0x3A +#define MAPSEC_FIVE_ISLAND 0x3B +#define MAPSEC_SEVEN_ISLAND 0x3C +#define MAPSEC_SIX_ISLAND 0x3D +#define MAPSEC_KINDLE_ROAD 0x3E +#define MAPSEC_TREASURE_BEACH 0x3F +#define MAPSEC_CAPE_BRINK 0x40 +#define MAPSEC_BOND_BRIDGE 0x41 +#define MAPSEC_THREE_ISLE_PORT 0x42 +#define MAPSEC_SEVII_ISLE_6 0x43 +#define MAPSEC_SEVII_ISLE_7 0x44 +#define MAPSEC_SEVII_ISLE_8 0x45 +#define MAPSEC_SEVII_ISLE_9 0x46 +#define MAPSEC_RESORT_GORGEOUS 0x47 +#define MAPSEC_WATER_LABYRINTH 0x48 +#define MAPSEC_FIVE_ISLE_MEADOW 0x49 +#define MAPSEC_MEMORIAL_PILLAR 0x4A +#define MAPSEC_OUTCAST_ISLAND 0x4B +#define MAPSEC_GREEN_PATH 0x4C +#define MAPSEC_WATER_PATH 0x4D +#define MAPSEC_RUIN_VALLEY 0x4E +#define MAPSEC_TRAINER_TOWER 0x4F +#define MAPSEC_CANYON_ENTRANCE 0x50 +#define MAPSEC_SEVAULT_CANYON 0x51 +#define MAPSEC_TANOBY_RUINS 0x52 +#define MAPSEC_SEVII_ISLE_22 0x53 +#define MAPSEC_SEVII_ISLE_23 0x54 +#define MAPSEC_SEVII_ISLE_24 0x55 +#define MAPSEC_NAVEL_ROCK 0x56 +#define MAPSEC_MT_EMBER 0x57 +#define MAPSEC_BERRY_FOREST 0x58 +#define MAPSEC_ICEFALL_CAVE 0x59 +#define MAPSEC_ROCKET_WAREHOUSE 0x5A +#define MAPSEC_TRAINER_TOWER_2 0x5B +#define MAPSEC_DOTTED_HOLE 0x5C +#define MAPSEC_LOST_CAVE 0x5D +#define MAPSEC_PATTERN_BUSH 0x5E +#define MAPSEC_ALTERING_CAVE 0x5F +#define MAPSEC_TANOBY_CHAMBERS 0x60 +#define MAPSEC_THREE_ISLE_PATH 0x61 +#define MAPSEC_TANOBY_KEY 0x62 +#define MAPSEC_BIRTH_ISLAND 0x63 +#define MAPSEC_MONEAN_CHAMBER 0x64 +#define MAPSEC_LIPTOO_CHAMBER 0x65 +#define MAPSEC_WEEPTH_CHAMBER 0x66 +#define MAPSEC_DILFORD_CHAMBER 0x67 +#define MAPSEC_SCUFIB_CHAMBER 0x68 +#define MAPSEC_RIXY_CHAMBER 0x69 +#define MAPSEC_VIAPOIS_CHAMBER 0x6A +#define MAPSEC_EMBER_SPA 0x6B +#define MAPSEC_CELADON_DEPT 0x6C +#define MAPSEC_NONE 0x6D + +#endif //GUARD_CONSTANTS_REGION_MAP_H diff --git a/include/constants/trainer_classes.h b/include/constants/trainer_classes.h new file mode 100644 index 000000000..f0c6d4123 --- /dev/null +++ b/include/constants/trainer_classes.h @@ -0,0 +1,112 @@ +#ifndef GUARD_TRAINER_CLASSES_H +#define GUARD_TRAINER_CLASSES_H + +#define CLASS_PKMN_TRAINER 0x00 +#define CLASS_PKMN_TRAINER_2 0x01 +#define CLASS_AQUA_LEADER 0x02 +#define CLASS_TEAM_AQUA 0x03 +#define CLASS_AROMA_LADY 0x04 +#define CLASS_RUIN_MANIAC 0x05 +#define CLASS_INTERVIEWER 0x06 +#define CLASS_TUBER 0x07 +#define CLASS_TUBER_2 0x08 +#define CLASS_COOLTRAINER 0x09 +#define CLASS_HEX_MANIAC 0x0A +#define CLASS_LADY 0x0B +#define CLASS_BEAUTY 0x0C +#define CLASS_RICH_BOY 0x0D +#define CLASS_POKEMANIAC 0x0E +#define CLASS_SWIMMER_MALE 0x0F +#define CLASS_BLACK_BELT 0x10 +#define CLASS_GUITARIST 0x11 +#define CLASS_KINDLER 0x12 +#define CLASS_CAMPER 0x13 +#define CLASS_BUG_MANIAC 0x14 +#define CLASS_PSYCHIC 0x15 +#define CLASS_GENTLEMAN 0x16 +#define CLASS_ELITE_FOUR 0x17 +#define CLASS_LEADER 0x18 +#define CLASS_SCHOOL_KID 0x19 +#define CLASS_SR_AND_JR 0x1A +#define CLASS_POKEFAN 0x1B +#define CLASS_EXPERT 0x1C +#define CLASS_YOUNGSTER 0x1D +#define CLASS_CHAMPION 0x1E +#define CLASS_FISHERMAN 0x1F +#define CLASS_TRIATHLETE 0x20 +#define CLASS_DRAGON_TAMER 0x21 +#define CLASS_BIRD_KEEPER 0x22 +#define CLASS_NINJA_BOY 0x23 +#define CLASS_BATTLE_GIRL 0x24 +#define CLASS_PARASOL_LADY 0x25 +#define CLASS_SWIMMER_FEMALE 0x26 +#define CLASS_PICNICKER 0x27 +#define CLASS_TWINS 0x28 +#define CLASS_SAILOR 0x29 +#define CLASS_BOARDER 0x2A +#define CLASS_COLLECTOR 0x2B +#define CLASS_PKMN_TRAINER_3 0x2C +#define CLASS_PKMN_BREEDER 0x2D +#define CLASS_PKMN_RANGER 0x2E +#define CLASS_MAGMA_LEADER 0x2F +#define CLASS_TEAM_MAGMA 0x30 +#define CLASS_LASS 0x31 +#define CLASS_BUG_CATCHER 0x32 +#define CLASS_HIKER 0x33 +#define CLASS_YOUNG_COUPLE 0x34 +#define CLASS_OLD_COUPLE 0x35 +#define CLASS_SIS_AND_BRO 0x36 +#define CLASS_AQUA_ADMIN 0x37 +#define CLASS_MAGMA_ADMIN 0x38 +#define CLASS_YOUNGSTER_2 0x39 +#define CLASS_BUG_CATCHER_2 0x3A +#define CLASS_LASS_2 0x3B +#define CLASS_SAILOR_2 0x3C +#define CLASS_CAMPER_2 0x3D +#define CLASS_PICNICKER_2 0x3E +#define CLASS_POKEMANIAC_2 0x3F +#define CLASS_SUPER_NERD 0x40 +#define CLASS_HIKER_2 0x41 +#define CLASS_BIKER 0x42 +#define CLASS_BURGLAR 0x43 +#define CLASS_ENGINEER 0x44 +#define CLASS_FISHERMAN_2 0x45 +#define CLASS_SWIMMER_MALE_2 0x46 +#define CLASS_CUE_BALL 0x47 +#define CLASS_GAMER 0x48 +#define CLASS_BEAUTY_2 0x49 +#define CLASS_SWIMMER_FEMALE_2 0x4A +#define CLASS_PSYCHIC_2 0x4B +#define CLASS_ROCKER 0x4C +#define CLASS_JUGGLER 0x4D +#define CLASS_TAMER 0x4E +#define CLASS_BIRD_KEEPER_2 0x4F +#define CLASS_BLACK_BELT_2 0x50 +#define CLASS_RIVAL 0x51 +#define CLASS_SCIENTIST 0x52 +#define CLASS_BOSS 0x53 +#define CLASS_LEADER_2 0x54 +#define CLASS_TEAM_ROCKET 0x55 +#define CLASS_COOLTRAINER_2 0x56 +#define CLASS_ELITE_FOUR_2 0x57 +#define CLASS_GENTLEMAN_2 0x58 +#define CLASS_RIVAL_2 0x59 +#define CLASS_CHAMPION_2 0x5A +#define CLASS_CHANNELER 0x5B +#define CLASS_TWINS_2 0x5C +#define CLASS_COOL_COUPLE 0x5D +#define CLASS_YOUNG_COUPLE_2 0x5E +#define CLASS_CRUSH_KIN 0x5F +#define CLASS_SIS_AND_BRO_2 0x60 +#define CLASS_PKMN_PROF 0x61 +#define CLASS_PLAYER 0x62 +#define CLASS_CRUSH_GIRL 0x63 +#define CLASS_TUBER_3 0x64 +#define CLASS_PKMN_BREEDER_2 0x65 +#define CLASS_PKMN_RANGER_2 0x66 +#define CLASS_AROMA_LADY_2 0x67 +#define CLASS_RUIN_MANIAC_2 0x68 +#define CLASS_LADY_2 0x69 +#define CLASS_PAINTER 0x6A + +#endif // GUARD_TRAINER_CLASSES_H diff --git a/include/constants/vars.h b/include/constants/vars.h index c9340a3b4..886bae93c 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -38,7 +38,7 @@ #define VAR_RECYCLE_GOODS 0x4020 #define VAR_REPEL_STEP_COUNT 0x4021 #define VAR_ICE_STEP_COUNT 0x4022 -#define VAR_FIRST_POKE 0x4023 +#define VAR_0x4023 0x4023 #define VAR_MIRAGE_RND_H 0x4024 #define VAR_MIRAGE_RND_L 0x4025 #define VAR_SECRET_BASE_MAP 0x4026 diff --git a/include/global.h b/include/global.h index c47bd2d15..858d95831 100644 --- a/include/global.h +++ b/include/global.h @@ -94,7 +94,7 @@ enum LanguageId { LANGUAGE_ITALIAN = 4, LANGUAGE_GERMAN = 5, // 6 goes unused but the theory is it was meant to be Korean - LANGUAGE_SPANISH = 7, + LANGUAGE_SPANISH = 7, }; #define GAME_LANGUAGE (LANGUAGE_ENGLISH) @@ -228,17 +228,44 @@ struct BerryCrush struct LinkBattleRecord { - u8 name[PLAYER_NAME_LENGTH]; - u16 trainerId; - u16 wins; - u16 losses; - u16 draws; + u8 name[PLAYER_NAME_LENGTH]; + u16 trainerId; + u16 wins; + u16 losses; + u16 draws; }; struct LinkBattleRecords { - struct LinkBattleRecord entries[LINK_B_RECORDS_COUNT]; - u8 languages[LINK_B_RECORDS_COUNT]; + struct LinkBattleRecord entries[LINK_B_RECORDS_COUNT]; + u8 languages[LINK_B_RECORDS_COUNT]; +}; + +struct BattleTowerPokemon +{ + u16 species; + u16 heldItem; + u16 moves[4]; + u8 level; + u8 ppBonuses; + u8 hpEV; + u8 attackEV; + u8 defenseEV; + u8 speedEV; + u8 spAttackEV; + u8 spDefenseEV; + u32 otId; + u32 hpIV:5; + u32 attackIV:5; + u32 defenseIV:5; + u32 speedIV:5; + u32 spAttackIV:5; + u32 spDefenseIV:5; + u32 gap:1; + u32 altAbility:1; + u32 personality; + u8 nickname[POKEMON_NAME_LENGTH + 1]; + u8 friendship; }; struct UnknownSaveBlock2Struct @@ -263,17 +290,17 @@ struct UnknownSaveBlock2Struct struct UnkSaveBlock2Substruct_55C { - /* 0x000:0x55C */ u8 unk_00_0:1; - u8 unk_00_1:1; - /* 0x001:0x55D */ u8 unk_01; - /* 0x002:0x55E */ u8 unk_02[2]; - /* 0x004:0x560 */ u16 unk_04[2]; - /* 0x008:0x564 */ u16 unk_08[2]; - /* 0x00C:0x568 */ u16 unk_0C[2]; - /* 0x010:0x56C */ u8 unk_10; - /* 0x011:0x56D */ u8 unk_11[3]; - /* 0x014:0x570 */ u16 unk_14; - /* 0x016:0x572 */ u8 unk_16; + /* 0x000:0x55C */ u8 unk_00_0:1; + u8 unk_00_1:1; + /* 0x001:0x55D */ u8 unk_01; + /* 0x002:0x55E */ u8 unk_02[2]; + /* 0x004:0x560 */ u16 unk_04[2]; + /* 0x008:0x564 */ u16 unk_08[2]; + /* 0x00C:0x568 */ u16 unk_0C[2]; + /* 0x010:0x56C */ u8 unk_10; + /* 0x011:0x56D */ u8 unk_11[3]; + /* 0x014:0x570 */ u16 unk_14; + /* 0x016:0x572 */ u8 unk_16; }; // size: 0x018 struct SaveBlock2 @@ -288,11 +315,11 @@ struct SaveBlock2 /*0x012*/ u8 playTimeVBlanks; /*0x013*/ u8 optionsButtonMode; // OPTIONS_BUTTON_MODE_[NORMAL/LR/L_EQUALS_A] /*0x014*/ u16 optionsTextSpeed:3; // OPTIONS_TEXT_SPEED_[SLOW/MID/FAST] - u16 optionsWindowFrameType:5; // Specifies one of the 20 decorative borders for text boxes - u16 optionsSound:1; // OPTIONS_SOUND_[MONO/STEREO] - u16 optionsBattleStyle:1; // OPTIONS_BATTLE_STYLE_[SHIFT/SET] - u16 optionsBattleSceneOff:1; // whether battle animations are disabled - u16 regionMapZoom:1; // whether the map is zoomed in + u16 optionsWindowFrameType:5; // Specifies one of the 20 decorative borders for text boxes + u16 optionsSound:1; // OPTIONS_SOUND_[MONO/STEREO] + u16 optionsBattleStyle:1; // OPTIONS_BATTLE_STYLE_[SHIFT/SET] + u16 optionsBattleSceneOff:1; // whether battle animations are disabled + u16 regionMapZoom:1; // whether the map is zoomed in /*0x018*/ struct Pokedex pokedex; /*0x090*/ u8 filler_90[0x8]; /*0x098*/ struct Time localTimeOffset; @@ -422,14 +449,14 @@ struct MailStruct struct UnkMauvilleOldManStruct { - u8 unk_2D94; - u8 unk_2D95; + u8 unk_2D94; + u8 unk_2D95; /*0x2D96*/ u16 mauvilleOldMan_ecArray[6]; /*0x2DA2*/ u16 mauvilleOldMan_ecArray2[6]; /*0x2DAE*/ u8 playerName[8]; /*0x2DB6*/ u8 filler_2DB6[0x3]; /*0x2DB9*/ u8 playerTrainerId[4]; - u8 unk_2DBD; + u8 unk_2DBD; }; /*size = 0x2C*/ struct UnkMauvilleOldManStruct2 @@ -578,8 +605,8 @@ union QuestLogMovement { u16 ident_raw; struct { - u16 ident:12; - u16 flags:4; + u16 ident:12; + u16 flags:4; } ident_struct; }; @@ -606,9 +633,9 @@ struct QuestLog struct FameCheckerSaveData { - /*3a54*/ u16 pickState:2; - u16 flavorTextFlags:12; - u16 unk_0_E:2; + /*3a54*/ u16 pickState:2; + u16 flavorTextFlags:12; + u16 unk_0_E:2; }; #define MAP_OBJECTS_COUNT 16 @@ -622,64 +649,64 @@ struct FameCheckerSaveData struct MEventBuffer_3120_Sub { - u16 unk_00; - u8 unk_02; - u8 unk_03; - u8 unk_04[40]; - u8 unk_2C[10][40]; + u16 unk_00; + u8 unk_02; + u8 unk_03; + u8 unk_04[40]; + u8 unk_2C[10][40]; }; struct MEventBuffer_3120 { - u32 crc; - struct MEventBuffer_3120_Sub data; + u32 crc; + struct MEventBuffer_3120_Sub data; }; struct MEventBuffer_32E0_Sub { - u16 unk_00; - u16 unk_02; - u32 unk_04; - u8 unk_08_0:2; - u8 unk_08_2:4; - u8 unk_08_6:2; - u8 unk_09; - u8 unk_0A[40]; - u8 unk_32[40]; - u8 unk_5A[4][40]; - u8 unk_FA[40]; - u8 unk_122[40]; + u16 unk_00; + u16 unk_02; + u32 unk_04; + u8 unk_08_0:2; + u8 unk_08_2:4; + u8 unk_08_6:2; + u8 unk_09; + u8 unk_0A[40]; + u8 unk_32[40]; + u8 unk_5A[4][40]; + u8 unk_FA[40]; + u8 unk_122[40]; }; struct MEventBuffer_32E0 { - u32 crc; - struct MEventBuffer_32E0_Sub data; + u32 crc; + struct MEventBuffer_32E0_Sub data; }; struct MEventBuffer_3430_Sub { - u16 unk_00; - u16 unk_02; - u16 unk_04; - u16 unk_06; - u16 unk_08[2][7]; + u16 unk_00; + u16 unk_02; + u16 unk_04; + u16 unk_06; + u16 unk_08[2][7]; }; struct MEventBuffer_3430 { - u32 crc; - struct MEventBuffer_3430_Sub data; + u32 crc; + struct MEventBuffer_3430_Sub data; }; struct MEventBuffers { - /*0x000 0x3120*/ struct MEventBuffer_3120 buffer_000; - /*0x1c0 0x32e0*/ struct MEventBuffer_32E0 buffer_1c0; - /*0x310 0x3430*/ struct MEventBuffer_3430 buffer_310; - /*0x338 0x3458*/ u16 unk_338[4]; - /*0x340 0x3460*/ struct MysteryEventStruct unk_340; - /*0x344 0x3464*/ u32 unk_344[2][5]; + /*0x000 0x3120*/ struct MEventBuffer_3120 buffer_000; + /*0x1c0 0x32e0*/ struct MEventBuffer_32E0 buffer_1c0; + /*0x310 0x3430*/ struct MEventBuffer_3430 buffer_310; + /*0x338 0x3458*/ u16 unk_338[4]; + /*0x340 0x3460*/ struct MysteryEventStruct unk_340; + /*0x344 0x3464*/ u32 unk_344[2][5]; }; // 0x36C 0x348C struct SaveBlock1 @@ -707,8 +734,8 @@ struct SaveBlock1 /*0x0464*/ struct ItemSlot bagPocket_TMHM[BAG_TMHM_COUNT]; /*0x054c*/ struct ItemSlot bagPocket_Berries[BAG_BERRIES_COUNT]; /*0x05F8*/ u8 seen1[DEX_FLAGS_NO]; - /*0x062C*/ u16 berryBlenderRecords[3]; // unused - /*0x0632*/ u8 field_632[6]; // unused? + /*0x062C*/ u16 berryBlenderRecords[3]; // unused + /*0x0632*/ u8 field_632[6]; // unused? /*0x0638*/ u8 trainerRematchStepCounter; /*0x063A*/ u8 ALIGNED(2) trainerRematches[100]; /*0x06A0*/ struct MapObject mapObjects[MAP_OBJECTS_COUNT]; @@ -717,10 +744,10 @@ struct SaveBlock1 /*0x1000*/ u16 vars[VARS_COUNT]; /*0x1200*/ u32 gameStats[NUM_GAME_STATS]; /*0x1300*/ struct QuestLog questLog[4]; - /*0x2CA0*/ u16 unk2CA0[6]; - /*0x2CAC*/ u16 unk2CAC[6]; - /*0x2CB8*/ u16 unk2CB8[6]; - /*0x2CC4*/ u16 unk2CC4[6]; + /*0x2CA0*/ u16 unk2CA0[6]; + /*0x2CAC*/ u16 unk2CAC[6]; + /*0x2CB8*/ u16 unk2CB8[6]; + /*0x2CC4*/ u16 unk2CC4[6]; /*0x2CD0*/ struct MailStruct mail[MAIL_COUNT]; /*0x2F10*/ u8 additionalPhrases[EASY_CHAT_EXTRA_PHRASES_SIZE]; /*0x2F18*/ OldMan oldMan; // unused @@ -737,8 +764,9 @@ struct SaveBlock1 /*0x3A48*/ u8 filler_3a48[4]; /*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH]; /*0x3A54*/ struct FameCheckerSaveData fameChecker[NUM_FAMECHECKER_PERSONS]; - /*0x3A94*/ u8 filler3A94[0x2A4]; - u32 unkArray[4][3]; + /*0x3A94*/ u8 filler3A94[0x2A0]; + /*0x3D34*/ u32 unkArrayIdx; + /*0x3D38*/ u32 unkArray[4][3]; }; extern struct SaveBlock1* gSaveBlock1Ptr; diff --git a/include/main.h b/include/main.h index adbf1fb5d..3fb254c95 100644 --- a/include/main.h +++ b/include/main.h @@ -65,6 +65,7 @@ void InitFlashTimer(void); void DoSoftReset(void); void ClearPokemonCrySongs(void); void RestoreSerialTimer3IntrHandlers(void); +void SetVBlankCounter1Ptr(u32 *ptr); extern const char RomHeaderGameCode[4]; extern const char RomHeaderSoftwareVersion; diff --git a/include/overworld.h b/include/overworld.h index 8cae07bdc..50ac09d9e 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -81,6 +81,8 @@ void sub_8055DC4(void); u8 sav1_map_get_name(void); +void sub_8055D40(u16 mapDataId); + extern u8 gUnknown_2031DD8; extern u8 gUnknown_2036E28; diff --git a/include/region_map.h b/include/region_map.h index d54553869..ea8a8130e 100644 --- a/include/region_map.h +++ b/include/region_map.h @@ -7,119 +7,6 @@ // Exported type declarations -enum { - MAPSEC_PALLET_TOWN, - MAPSEC_VIRIDIAN_CITY, - MAPSEC_PEWTER_CITY, - MAPSEC_CERULEAN_CITY, - MAPSEC_LAVENDER_TOWN, - MAPSEC_VERMILION_CITY, - MAPSEC_CELADON_CITY, - MAPSEC_FUCHSIA_CITY, - MAPSEC_CINNABAR_ISLAND, - MAPSEC_INDIGO_PLATEAU, - MAPSEC_SAFFRON_CITY, - MAPSEC_ROUTE_4, - MAPSEC_ROUTE_10, - MAPSEC_ROUTE_1, - MAPSEC_ROUTE_2, - MAPSEC_ROUTE_3, - MAPSEC_ROUTE_4_2, - MAPSEC_ROUTE_5, - MAPSEC_ROUTE_6, - MAPSEC_ROUTE_7, - MAPSEC_ROUTE_8, - MAPSEC_ROUTE_9, - MAPSEC_ROUTE_10_2, - MAPSEC_ROUTE_11, - MAPSEC_ROUTE_12, - MAPSEC_ROUTE_13, - MAPSEC_ROUTE_14, - MAPSEC_ROUTE_15, - MAPSEC_ROUTE_16, - MAPSEC_ROUTE_17, - MAPSEC_ROUTE_18, - MAPSEC_ROUTE_19, - MAPSEC_ROUTE_20, - MAPSEC_ROUTE_21, - MAPSEC_ROUTE_22, - MAPSEC_ROUTE_23, - MAPSEC_ROUTE_24, - MAPSEC_ROUTE_25, - MAPSEC_VIRIDIAN_FOREST, - MAPSEC_MT_MOON, - MAPSEC_S_S_ANNE, - MAPSEC_UNDERGROUND_PATH, - MAPSEC_UNDERGROUND_PATH_2, - MAPSEC_DIGLETTS_CAVE, - MAPSEC_KANTO_VICTORY_ROAD, - MAPSEC_ROCKET_HIDEOUT, - MAPSEC_SILPH_CO, - MAPSEC_POKEMON_MANSION, - MAPSEC_KANTO_SAFARI_ZONE, - MAPSEC_POKEMON_LEAGUE, - MAPSEC_ROCK_TUNNEL, - MAPSEC_SEAFOAM_ISLANDS, - MAPSEC_POKEMON_TOWER, - MAPSEC_CERULEAN_CAVE, - MAPSEC_POWER_PLANT, - MAPSEC_ONE_ISLAND, - MAPSEC_TWO_ISLAND, - MAPSEC_THREE_ISLAND, - MAPSEC_FOUR_ISLAND, - MAPSEC_FIVE_ISLAND, - MAPSEC_SEVEN_ISLAND, - MAPSEC_SIX_ISLAND, - MAPSEC_KINDLE_ROAD, - MAPSEC_TREASURE_BEACH, - MAPSEC_CAPE_BRINK, - MAPSEC_BOND_BRIDGE, - MAPSEC_THREE_ISLE_PORT, - MAPSEC_SEVII_ISLE_6, - MAPSEC_SEVII_ISLE_7, - MAPSEC_SEVII_ISLE_8, - MAPSEC_SEVII_ISLE_9, - MAPSEC_RESORT_GORGEOUS, - MAPSEC_WATER_LABYRINTH, - MAPSEC_FIVE_ISLE_MEADOW, - MAPSEC_MEMORIAL_PILLAR, - MAPSEC_OUTCAST_ISLAND, - MAPSEC_GREEN_PATH, - MAPSEC_WATER_PATH, - MAPSEC_RUIN_VALLEY, - MAPSEC_TRAINER_TOWER, - MAPSEC_CANYON_ENTRANCE, - MAPSEC_SEVAULT_CANYON, - MAPSEC_TANOBY_RUINS, - MAPSEC_SEVII_ISLE_22, - MAPSEC_SEVII_ISLE_23, - MAPSEC_SEVII_ISLE_24, - MAPSEC_NAVEL_ROCK, - MAPSEC_MT_EMBER, - MAPSEC_BERRY_FOREST, - MAPSEC_ICEFALL_CAVE, - MAPSEC_ROCKET_WAREHOUSE, - MAPSEC_TRAINER_TOWER, - MAPSEC_DOTTED_HOLE, - MAPSEC_LOST_CAVE, - MAPSEC_PATTERN_BUSH, - MAPSEC_ALTERING_CAVE, - MAPSEC_TANOBY_CHAMBERS, - MAPSEC_THREE_ISLE_PATH, - MAPSEC_TANOBY_KEY, - MAPSEC_BIRTH_ISLAND, - MAPSEC_MONEAN_CHAMBER, - MAPSEC_LIPTOO_CHAMBER, - MAPSEC_WEEPTH_CHAMBER, - MAPSEC_DILFORD_CHAMBER, - MAPSEC_SCUFIB_CHAMBER, - MAPSEC_RIXY_CHAMBER, - MAPSEC_VIAPOIS_CHAMBER, - MAPSEC_EMBER_SPA, - MAPSEC_CELADON_DEPT, - MAPSEC_NONE -}; - enum { INPUT_EVENT_NONE, diff --git a/include/trainer_classes.h b/include/trainer_classes.h deleted file mode 100644 index aea2623d7..000000000 --- a/include/trainer_classes.h +++ /dev/null @@ -1,118 +0,0 @@ -#ifndef GUARD_TRAINER_CLASSES_H -#define GUARD_TRAINER_CLASSES_H - -#include "global.h" - -enum -{ - CLASS_PKMN_TRAINER0, // 0 - CLASS_PKMN_TRAINER1, // 1 - CLASS_AQUA_LEADER, // 2 - CLASS_TEAM_AQUA, // 3 - CLASS_AROMA_LADY, // 4 - CLASS_RUIN_MANIAC, // 5 - CLASS_INTERVIEWER, // 6 - CLASS_TUBER_FEMALE, // 7 - CLASS_TUBER_MALE, // 8 - CLASS_COOLTRAINER_2, // 9 - CLASS_HEX_MANIAC, // 0xA - CLASS_LADY, // 0xB - CLASS_BEAUTY, // 0xC - CLASS_RICH_BOY, // 0xD - CLASS_POKEMANIAC, // 0xE - CLASS_SWIMMER_MALE, // 0xF - CLASS_BLACK_BELT, // 0x10 - CLASS_GUITARIST, // 0x11 - CLASS_KINDLER, // 0x12 - CLASS_CAMPER, // 0x13 - CLASS_BUG_MANIAC, // 0x14 - CLASS_PSYCHIC, // 0x15 - CLASS_GENTLEMAN, // 0x16 - CLASS_ELITE_FOUR, // 0x17 - CLASS_LEADER, // 0x18 - CLASS_SCHOOL_KID, // 0x19 - CLASS_SCHOOL_SR_JR, // 0x1A - CLASS_POKE_FAN, // 0x1B - CLASS_EXPERT, // 0x1C - CLASS_YOUNGSTER, // 0x1D - CLASS_CHAMPION, // 0x1E - CLASS_FISHERMAN, // 0x1F - CLASS_TRIATHLETE, // 0x20 - CLASS_DRAGON_TAMER, // 0x21 - CLASS_BIRD_KEEPER, // 0x22 - CLASS_NINJA_BOY, // 0x23 - CLASS_BATTLE_GIRL, // 0x24 - CLASS_PARASOL_LADY, // 0x25 - CLASS_SWIMMER_FEMALE, // 0x26 - CLASS_PICKNICKER, // 0x27 - CLASS_TWINS, // 0x28 - CLASS_SAILOR, // 0x29 - CLASS_BOARDER, // 0x2A - CLASS_COLLECTOR, // 0x2B - CLASS_PKMN_TRAINER2, // 0x2C - CLASS_PKMN_BREEDER, // 0x2D - CLASS_PKMN_RANGER, // 0x2E - CLASS_MAGMA_LEADER, // 0x2F - CLASS_TEAM_MAGMA, // 0x30 - CLASS_LASS, // 0x31 - CLASS_BUG_CATCHER, // 0x32 - CLASS_HIKER, // 0x33 - CLASS_YOUNG_COUPLE, // 0x34 - CLASS_OLD_COUPLE, // 0x35 - CLASS_SIS_AND_BRO, // 0x36 - CLASS_AQUA_ADMIN, // 0x37 - CLASS_MAGMA_ADMIN, // 0x38 - CLASS_YOUNGSTER, // 0x39 - CLASS_BUG_CATCHER, // 0x3A - CLASS_LASS, // 0x3B - CLASS_SAILER, // 0x3C - CLASS_CAMPER, // 0x3D - CLASS_PICKNICKER, // 0x3E - CLASS_POKEMANIAC, // 0x3F - CLASS_SUPER_NERD, // 0x40 - CLASS_HIKER, // 0x41 - CLASS_BIKER, // 0x42 - CLASS_BURGLAR, // 0x43 - CLASS_ENGINEER, // 0x44 - CLASS_FISHERMAN, // 0x45 - CLASS_SWIMMER_MALE, // 0x46 - CLASS_CUE_BALL, // 0x47 - CLASS_GAMER, // 0x48 - CLASS_BEAUTY, // 0x49 - CLASS_SWIMMER_FEMALE, // 0x4A - CLASS_PSYCHIC, // 0x4B - CLASS_ROCKER, // 0x4C - CLASS_JUGGLER, // 0x4D - CLASS_TAMER, // 0x4E - CLASS_BIRD_KEEPER, // 0x4F - CLASS_BLACK_BELT, // 0X50 - CLASS_PKMN_TRAINER_RIVAL, // 0X51 - CLASS_SCIENTIST, // 0X52 - CLASS_BOSS, // 0X53 - CLASS_LEADER, // 0X54 - CLASS_TEAM_ROCKET, // 0X55 - CLASS_COOLTRAINER, // 0X56 - CLASS_ELITE_FOUR, // 0X57 - CLASS_GENTLEMAN, // 0X58 - CLASS_PKMN_TRAINER_RIVAL, // 0X59 - CLASS_CHAMPION, // 0X5A - CLASS_CHANNERLER, // 0X5B - CLASS_TWINS, // 0X5C - CLASS_COOL_COUPLE, // 0X5D - CLASS_YOUNG_COUPLE, // 0X5E - CLASS_CRUSH_KIN, // 0X5F - CLASS_SIS_AND_BRO, // 0X60 - CLASS_PROFESSOR, // 0X61 - CLASS_PLAYER, // 0X62 - CLASS_CRUSH_GIRL, // 0X63 - CLASS_TUBER2, // 0X64 - CLASS_PKMN_BREEDER, // 0X65 - CLASS_PKMN_RANGER, // 0X66 - CLASS_AROMA_LADY, // 0X67 - CLASS_RUIN_MANIAC, // 0X68 - CLASS_LADY, // 0X69 - CLASS_PAINTER, // 0X6A - -}; - -#endif // GUARD_TRAINER_CLASSES_H |