diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/event_data.h | 8 | ||||
-rw-r--r-- | include/flags.h | 150 | ||||
-rw-r--r-- | include/global.h | 21 |
3 files changed, 104 insertions, 75 deletions
diff --git a/include/event_data.h b/include/event_data.h index 98e4a6da3..a2a501283 100644 --- a/include/event_data.h +++ b/include/event_data.h @@ -10,9 +10,14 @@ void ClearUpperFlags(void); void DisableNationalPokedex(void); void EnableNationalPokedex(void); bool32 IsNationalPokedexEnabled(void); +void DisableMysteryEvent(void); +void EnableMysteryEvent(void); +bool32 IsMysteryEventEnabled(void); void DisableMysteryGift(void); void EnableMysteryGift(void); bool32 IsMysteryGiftEnabled(void); +void sub_809D4D8(void); +void sub_809D570(void); void DisableResetRTC(void); void EnableResetRTC(void); bool32 CanResetRTC(void); @@ -40,5 +45,8 @@ extern u16 gSpecialVar_0x800B; extern u16 gScriptResult; extern u16 gScriptLastTalked; extern u16 gScriptFacing; +extern u16 gSpecialVar_0x8012; +extern u16 gSpecialVar_0x8013; +extern u16 gSpecialVar_0x8014; #endif // GUARD_EVENT_DATA_H diff --git a/include/flags.h b/include/flags.h index 2b3eb47dc..56e87b895 100644 --- a/include/flags.h +++ b/include/flags.h @@ -1,86 +1,90 @@ #ifndef GUARD_FLAGS_H #define GUARD_FLAGS_H -#define TRAINER_FLAG_START 0x500 +#define TRAINER_FLAG_START 0x500 +#define TRAINERS_FLAG_NO 0x360 +#define CODE_FLAGS (TRAINER_FLAG_START + TRAINERS_FLAG_NO) // SYSTEM FLAGS -#define SYS_POKEMON_GET 0x800 -#define SYS_POKEDEX_GET 0x801 -#define SYS_POKENAV_GET 0x802 -#define SYS_GAME_CLEAR 0x804 -#define SYS_CHAT_USED 0x805 -#define SYS_HIPSTER_MEET 0x806 +#define SYS_POKEMON_GET CODE_FLAGS + 0 +#define SYS_POKEDEX_GET CODE_FLAGS + 1 +#define SYS_POKENAV_GET CODE_FLAGS + 2 +// third one appears unused +#define SYS_GAME_CLEAR CODE_FLAGS + 4 +#define SYS_CHAT_USED CODE_FLAGS + 5 +#define SYS_HIPSTER_MEET CODE_FLAGS + 6 // badges -#define BADGE01_GET 0x807 -#define BADGE02_GET 0x808 -#define BADGE03_GET 0x809 -#define BADGE04_GET 0x80A -#define BADGE05_GET 0x80B -#define BADGE06_GET 0x80C -#define BADGE07_GET 0x80D -#define BADGE08_GET 0x80E +#define BADGE01_GET CODE_FLAGS + 7 +#define BADGE02_GET CODE_FLAGS + 8 +#define BADGE03_GET CODE_FLAGS + 9 +#define BADGE04_GET CODE_FLAGS + 0xA +#define BADGE05_GET CODE_FLAGS + 0xB +#define BADGE06_GET CODE_FLAGS + 0xC +#define BADGE07_GET CODE_FLAGS + 0xD +#define BADGE08_GET CODE_FLAGS + 0xE // cities and towns -#define FLAG_VISITED_LITTLEROOT_TOWN 0x80F -#define FLAG_VISITED_OLDALE_TOWN 0x810 -#define FLAG_VISITED_DEWFORD_TOWN 0x811 -#define FLAG_VISITED_LAVARIDGE_TOWN 0x812 -#define FLAG_VISITED_FALLARBOR_TOWN 0x813 -#define FLAG_VISITED_VERDANTURF_TOWN 0x814 -#define FLAG_VISITED_PACIFIDLOG_TOWN 0x815 -#define FLAG_VISITED_PETALBURG_CITY 0x816 -#define FLAG_VISITED_SLATEPORT_CITY 0x817 -#define FLAG_VISITED_MAUVILLE_CITY 0x818 -#define FLAG_VISITED_RUSTBORO_CITY 0x819 -#define FLAG_VISITED_FORTREE_CITY 0x81A -#define FLAG_VISITED_LILYCOVE_CITY 0x81B -#define FLAG_VISITED_MOSSDEEP_CITY 0x81C -#define FLAG_VISITED_SOOTOPOLIS_CITY 0x81D -#define FLAG_VISITED_EVER_GRANDE_CITY 0x81E - -#define SYS_USE_FLASH 0x828 -#define SYS_USE_STRENGTH 0x829 -#define SYS_WEATHER_CTRL 0x82A -#define SYS_CYCLING_ROAD 0x82B -#define SYS_SAFARI_MODE 0x82C -#define SYS_CRUISE_MODE 0x82D - -#define SYS_TV_HOME 0x830 -#define SYS_TV_WATCH 0x831 -#define SYS_TV_START 0x832 -#define SYS_POPWORD_INPUT 0x833 -#define SYS_MIX_RECORD 0x834 -#define SYS_CLOCK_SET 0x835 -#define SYS_NATIONAL_DEX 0x836 -#define SYS_CAVE_SHIP 0x837 -#define SYS_CAVE_WONDER 0x838 -#define SYS_CAVE_BATTLE 0x839 -#define SYS_SHOAL_TIDE 0x83A -#define SYS_RIBBON_GET 0x83B - -#define FLAG_UNLOCK_BATTLE_TOWER 0x848 -#define FLAG_UNLOCK_SOUTHERN_ISLAND 0x849 - -#define SYS_PC_LANETTE 0x84B -#define SYS_EXDATA_ENABLE 0x84C -#define SYS_ENC_UP_ITEM 0x84D -#define SYS_ENC_DOWN_ITEM 0x84E -#define SYS_BRAILLE_DIG 0x84F -#define SYS_BRAILLE_STRENGTH 0x850 -#define SYS_BRAILLE_WAIT 0x851 -#define SYS_BRAILLE_FLY 0x852 -#define SYS_HAS_EON_TICKET 0x853 - -#define SYS_POKEMON_LEAGUE_FLY 0x854 - -#define SYS_TV_LATI 0x85D - -#define SYS_SHOAL_ITEM 0x85F -#define SYS_B_DASH 0x860 // got Running Shoes -#define SYS_CTRL_OBJ_DELETE 0x861 -#define SYS_RESET_RTC_ENABLE 0x862 +#define FLAG_VISITED_LITTLEROOT_TOWN CODE_FLAGS + 0xF +#define FLAG_VISITED_OLDALE_TOWN CODE_FLAGS + 0x10 +#define FLAG_VISITED_DEWFORD_TOWN CODE_FLAGS + 0x11 +#define FLAG_VISITED_LAVARIDGE_TOWN CODE_FLAGS + 0x12 +#define FLAG_VISITED_FALLARBOR_TOWN CODE_FLAGS + 0x13 +#define FLAG_VISITED_VERDANTURF_TOWN CODE_FLAGS + 0x14 +#define FLAG_VISITED_PACIFIDLOG_TOWN CODE_FLAGS + 0x15 +#define FLAG_VISITED_PETALBURG_CITY CODE_FLAGS + 0x16 +#define FLAG_VISITED_SLATEPORT_CITY CODE_FLAGS + 0x17 +#define FLAG_VISITED_MAUVILLE_CITY CODE_FLAGS + 0x18 +#define FLAG_VISITED_RUSTBORO_CITY CODE_FLAGS + 0x19 +#define FLAG_VISITED_FORTREE_CITY CODE_FLAGS + 0x1A +#define FLAG_VISITED_LILYCOVE_CITY CODE_FLAGS + 0x1B +#define FLAG_VISITED_MOSSDEEP_CITY CODE_FLAGS + 0x1C +#define FLAG_VISITED_SOOTOPOLIS_CITY CODE_FLAGS + 0x1D +#define FLAG_VISITED_EVER_GRANDE_CITY CODE_FLAGS + 0x1E + +#define SYS_UNKNOWN_880 CODE_FLAGS + 0x20 + +#define SYS_USE_FLASH CODE_FLAGS + 0x28 +#define SYS_USE_STRENGTH CODE_FLAGS + 0x29 +#define SYS_WEATHER_CTRL CODE_FLAGS + 0x2A +#define SYS_CYCLING_ROAD CODE_FLAGS + 0x2B +#define SYS_SAFARI_MODE CODE_FLAGS + 0x2C +#define SYS_CRUISE_MODE CODE_FLAGS + 0x2D + +#define SYS_TV_HOME CODE_FLAGS + 0x30 +#define SYS_TV_WATCH CODE_FLAGS + 0x31 +#define SYS_TV_START CODE_FLAGS + 0x32 +#define SYS_POPWORD_INPUT CODE_FLAGS + 0x33 +#define SYS_MIX_RECORD CODE_FLAGS + 0x34 +#define SYS_CLOCK_SET CODE_FLAGS + 0x35 +#define SYS_NATIONAL_DEX CODE_FLAGS + 0x36 +#define SYS_CAVE_SHIP CODE_FLAGS + 0x37 +#define SYS_CAVE_WONDER CODE_FLAGS + 0x38 +#define SYS_CAVE_BATTLE CODE_FLAGS + 0x39 +#define SYS_SHOAL_TIDE CODE_FLAGS + 0x3A +#define SYS_RIBBON_GET CODE_FLAGS + 0x3B + +#define SYS_PC_LANETTE CODE_FLAGS + 0x4B +#define SYS_MYSTERY_EVENT_ENABLE CODE_FLAGS + 0x4C +#define SYS_ENC_UP_ITEM CODE_FLAGS + 0x4D +#define SYS_ENC_DOWN_ITEM CODE_FLAGS + 0x4E +#define SYS_BRAILLE_DIG CODE_FLAGS + 0x4F +#define SYS_BRAILLE_STRENGTH CODE_FLAGS + 0x50 +#define SYS_BRAILLE_WAIT CODE_FLAGS + 0x51 +#define SYS_BRAILLE_FLY CODE_FLAGS + 0x52 +#define SYS_HAS_EON_TICKET CODE_FLAGS + 0x53 + +#define SYS_POKEMON_LEAGUE_FLY CODE_FLAGS + 0x54 + +#define SYS_TV_LATI CODE_FLAGS + 0x5D + +#define SYS_SHOAL_ITEM CODE_FLAGS + 0x5F +#define SYS_B_DASH CODE_FLAGS + 0x60 // got Running Shoes +#define SYS_CTRL_OBJ_DELETE CODE_FLAGS + 0x61 +#define SYS_RESET_RTC_ENABLE CODE_FLAGS + 0x62 + +#define SYS_MYSTERY_GIFT_ENABLE CODE_FLAGS + 0x7B // SPECIAL FLAGS (unknown purpose) diff --git a/include/global.h b/include/global.h index f862d0bb1..25fe47635 100644 --- a/include/global.h +++ b/include/global.h @@ -87,6 +87,19 @@ struct UCoords16 u16 y; }; +struct Pokedex +{ + /*0x00*/ u8 order; + /*0x01*/ u8 unknown1; + /*0x02*/ u8 nationalMagic; // must equal 0xDA in order to have National mode + /*0x03*/ u8 unknown2; + /*0x04*/ u32 unownPersonality; // set when you first see Unown + /*0x08*/ u32 spindaPersonality; // set when you first see Spinda + /*0x0C*/ u32 unknown3; + /*0x10*/ u8 owned[52]; + /*0x44*/ u8 seen[52]; +}; + struct SaveBlock2 { /*0x00*/ u8 playerName[8]; @@ -104,6 +117,7 @@ struct SaveBlock2 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 + /*0x18*/ struct Pokedex pokedex; }; extern struct SaveBlock2 *gSaveBlock2Ptr; @@ -552,6 +566,9 @@ struct RecordMixingGift struct RecordMixingGiftData data; }; +#define FLAGS_NUMBER 300 +#define VARS_NUMBER 256 + struct SaveBlock1 { /*0x00*/ struct Coords16 pos; @@ -585,8 +602,8 @@ struct SaveBlock1 /*0x9CA*/ u8 trainerRematches[100]; /*0xA30*/ struct MapObject mapObjects[16]; /*0xC70*/ struct MapObjectTemplate mapObjectTemplates[64]; - /*0x1270*/ u8 flags[300]; - /*0x139C*/ u16 vars[256]; + /*0x1270*/ u8 flags[FLAGS_NUMBER]; + /*0x139C*/ u16 vars[VARS_NUMBER]; // TODO: FIX BELOW |