diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/constants/global.h | 92 | ||||
-rw-r--r-- | include/global.h | 105 |
2 files changed, 105 insertions, 92 deletions
diff --git a/include/constants/global.h b/include/constants/global.h new file mode 100644 index 000000000..cd60f0be4 --- /dev/null +++ b/include/constants/global.h @@ -0,0 +1,92 @@ +#ifndef GUARD_CONSTANTS_GLOBAL_H +#define GUARD_CONSTANTS_GLOBAL_H +// Invalid Versions show as "----------" in Gen 4 and Gen 5's summary screen. +// In Gens 6 and 7, invalid versions instead show "a distant land" in the summary screen. +// In Gen 4 only, migrated Pokemon with Diamond, Pearl, or Platinum's ID show as "----------". +// Gen 5 and up read Diamond, Pearl, or Platinum's ID as "Sinnoh". +// In Gen 4 and up, migrated Pokemon with HeartGold or SoulSilver's ID show the otherwise unused "Johto" string. +#define VERSION_SAPPHIRE 1 +#define VERSION_RUBY 2 +#define VERSION_EMERALD 3 +#define VERSION_FIRE_RED 4 +#define VERSION_LEAF_GREEN 5 +#define VERSION_HEART_GOLD 7 +#define VERSION_SOUL_SILVER 8 +#define VERSION_DIAMOND 10 +#define VERSION_PEARL 11 +#define VERSION_PLATINUM 12 +#define VERSION_GAMECUBE 15 + +#define LANGUAGE_JAPANESE 1 +#define LANGUAGE_ENGLISH 2 +#define LANGUAGE_FRENCH 3 +#define LANGUAGE_ITALIAN 4 +#define LANGUAGE_GERMAN 5 +#define LANGUAGE_KOREAN 6 // 6 goes unused but the theory is it was meant to be Korean +#define LANGUAGE_SPANISH 7 +#define NUM_LANGUAGES 7 + +#if defined(ENGLISH) +#define GAME_LANGUAGE (LANGUAGE_ENGLISH) +#elif defined(GERMAN) +#define GAME_LANGUAGE (LANGUAGE_GERMAN) +#endif + +#if defined(SAPPHIRE) +#define GAME_VERSION (VERSION_SAPPHIRE) +#elif defined(RUBY) +#define GAME_VERSION (VERSION_RUBY) +#endif + +// capacities of various saveblock objects +#define DAYCARE_MON_COUNT 2 +#define POKEBLOCKS_COUNT 40 +#define OBJECT_EVENTS_COUNT 16 +#define BERRY_TREES_COUNT 128 +#define FLAGS_COUNT 288 +#define VARS_COUNT 256 +#define MAIL_COUNT 16 +#define SECRET_BASES_COUNT 20 +#define TV_SHOWS_COUNT 25 +#define POKE_NEWS_COUNT 16 +#define PC_ITEMS_COUNT 50 +#define BAG_ITEMS_COUNT 20 +#define BAG_KEYITEMS_COUNT 20 +#define BAG_POKEBALLS_COUNT 16 +#define BAG_TMHM_COUNT 64 +#define BAG_BERRIES_COUNT 46 +#define OBJECT_EVENT_TEMPLATES_COUNT 64 +#define DECOR_MAX_SECRET_BASE 16 +#define DECOR_MAX_PLAYERS_HOUSE 12 +#define MAX_REMATCH_ENTRIES 100 + +#define TRAINER_ID_LENGTH 4 +#define MAX_MON_MOVES 4 +#define NUM_STATS 6 +#define PARTY_SIZE 6 + +#define MALE 0 +#define FEMALE 1 +#define GENDER_COUNT 2 + +#define OPTIONS_BUTTON_MODE_NORMAL 0 +#define OPTIONS_BUTTON_MODE_LR 1 +#define OPTIONS_BUTTON_MODE_L_EQUALS_A 2 + +#define OPTIONS_TEXT_SPEED_SLOW 0 +#define OPTIONS_TEXT_SPEED_MID 1 +#define OPTIONS_TEXT_SPEED_FAST 2 + +#define OPTIONS_SOUND_MONO 0 +#define OPTIONS_SOUND_STEREO 1 + +#define OPTIONS_BATTLE_STYLE_SHIFT 0 +#define OPTIONS_BATTLE_STYLE_SET 1 + +#define BAG_ITEMS 1 +#define BAG_POKEBALLS 2 +#define BAG_TMsHMs 3 +#define BAG_BERRIES 4 +#define BAG_KEYITEMS 5 + +#endif // GUARD_CONSTANTS_GLOBAL_H diff --git a/include/global.h b/include/global.h index 0ddc2d7bb..5c1369feb 100644 --- a/include/global.h +++ b/include/global.h @@ -6,6 +6,7 @@ #include <limits.h> #include "config.h" // we need to define config before gba headers as print stuff needs the functions nulled before defines. #include "gba/gba.h" +#include "constants/global.h" // IDE support #if defined(__APPLE__) || defined(__CYGWIN__) @@ -96,91 +97,11 @@ enum f; \ }) -enum -{ - VERSION_SAPPHIRE = 1, - VERSION_RUBY = 2, - VERSION_EMERALD = 3, -}; - -enum LanguageId -{ - LANGUAGE_JAPANESE = 1, - LANGUAGE_ENGLISH = 2, - LANGUAGE_GERMAN = 5, -}; - -#if defined(ENGLISH) -#define GAME_LANGUAGE (LANGUAGE_ENGLISH) -#elif defined(GERMAN) -#define GAME_LANGUAGE (LANGUAGE_GERMAN) -#endif - -// capacities of various saveblock objects -#define DAYCARE_MON_COUNT 2 -#define POKEBLOCKS_COUNT 40 -#define PARTY_SIZE 6 -#define OBJECT_EVENTS_COUNT 16 -#define BERRY_TREES_COUNT 128 -#define FLAGS_COUNT 288 -#define VARS_COUNT 256 -#define MAIL_COUNT 16 -#define SECRET_BASES_COUNT 20 -#define TV_SHOWS_COUNT 25 -#define POKE_NEWS_COUNT 16 -#define PC_ITEMS_COUNT 50 -#define BAG_ITEMS_COUNT 20 -#define BAG_KEYITEMS_COUNT 20 -#define BAG_POKEBALLS_COUNT 16 -#define BAG_TMHM_COUNT 64 -#define BAG_BERRIES_COUNT 46 - #define TEST_BUTTON(value, button) ({(value) & (button);}) #define JOY_NEW(button) (TEST_BUTTON(gMain.newKeys, button)) #define JOY_HELD(button) (TEST_BUTTON(gMain.heldKeys, button)) #define JOY_REPT(button) (TEST_BUTTON(gMain.newAndRepeatedKeys, button)) -enum -{ - MALE, - FEMALE -}; - -enum -{ - OPTIONS_BUTTON_MODE_NORMAL, - OPTIONS_BUTTON_MODE_LR, - OPTIONS_BUTTON_MODE_L_EQUALS_A -}; - -enum -{ - OPTIONS_TEXT_SPEED_SLOW, - OPTIONS_TEXT_SPEED_MID, - OPTIONS_TEXT_SPEED_FAST -}; - -enum -{ - OPTIONS_SOUND_MONO, - OPTIONS_SOUND_STEREO -}; - -enum -{ - OPTIONS_BATTLE_STYLE_SHIFT, - OPTIONS_BATTLE_STYLE_SET -}; - -enum -{ - BAG_ITEMS = 1, - BAG_POKEBALLS, - BAG_TMsHMs, - BAG_BERRIES, - BAG_KEYITEMS -}; - struct Coords16 { s16 x; @@ -205,14 +126,14 @@ struct SecretBaseRecord /*0x1A16*/ u16 sbr_field_e; /*0x1A18*/ u8 sbr_field_10; /*0x1A19*/ u8 sbr_field_11; - /*0x1A1A*/ u8 decorations[16]; - /*0x1A2A*/ u8 decorationPos[16]; - /*0x1A3C*/ u32 partyPersonality[6]; - /*0x1A54*/ u16 partyMoves[6 * 4]; - /*0x1A84*/ u16 partySpecies[6]; - /*0x1A90*/ u16 partyHeldItems[6]; - /*0x1A9C*/ u8 partyLevels[6]; - /*0x1AA2*/ u8 partyEVs[6]; + /*0x1A1A*/ u8 decorations[DECOR_MAX_SECRET_BASE]; + /*0x1A2A*/ u8 decorationPos[DECOR_MAX_SECRET_BASE]; + /*0x1A3C*/ u32 partyPersonality[PARTY_SIZE]; + /*0x1A54*/ u16 partyMoves[PARTY_SIZE * 4]; + /*0x1A84*/ u16 partySpecies[PARTY_SIZE]; + /*0x1A90*/ u16 partyHeldItems[PARTY_SIZE]; + /*0x1A9C*/ u8 partyLevels[PARTY_SIZE]; + /*0x1AA2*/ u8 partyEVs[PARTY_SIZE]; }; #include "constants/game_stat.h" @@ -698,16 +619,16 @@ struct SaveBlock1 /* 0x02025734 */ /*0x96C*/ u16 berryBlenderRecords[3]; /*0x972*/ u8 filler_972[0x6]; /*0x978*/ u16 trainerRematchStepCounter; - /*0x97A*/ u8 trainerRematches[100]; + /*0x97A*/ u8 trainerRematches[MAX_REMATCH_ENTRIES]; /*0x9E0*/ struct ObjectEvent objectEvents[OBJECT_EVENTS_COUNT]; - /*0xC20*/ struct ObjectEventTemplate objectEventTemplates[64]; + /*0xC20*/ struct ObjectEventTemplate objectEventTemplates[OBJECT_EVENT_TEMPLATES_COUNT]; /*0x1220*/ u8 flags[FLAGS_COUNT]; /*0x1340*/ u16 vars[VARS_COUNT]; /*0x1540*/ u32 gameStats[NUM_GAME_STATS]; /*0x1608*/ struct BerryTree berryTrees[BERRY_TREES_COUNT]; /*0x1A08*/ struct SecretBaseRecord secretBases[SECRET_BASES_COUNT]; - /*0x2688*/ u8 playerRoomDecor[12]; - /*0x2694*/ u8 playerRoomDecorPos[12]; + /*0x2688*/ u8 playerRoomDecor[DECOR_MAX_PLAYERS_HOUSE]; + /*0x2694*/ u8 playerRoomDecorPos[DECOR_MAX_PLAYERS_HOUSE]; /*0x26A0*/ u8 decorDesk[10]; /*0x26AA*/ u8 decorChair[10]; /*0x26B4*/ u8 decorPlant[10]; |