diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/config.h | 10 | ||||
-rw-r--r-- | include/constants/metatile_labels.h | 12 | ||||
-rw-r--r-- | include/constants/pokemon.h | 144 | ||||
-rw-r--r-- | include/constants/vars.h | 37 | ||||
-rw-r--r-- | include/global.h | 14 | ||||
-rw-r--r-- | include/macros/event.inc | 10 | ||||
-rw-r--r-- | include/pokemon.h | 140 |
7 files changed, 199 insertions, 168 deletions
diff --git a/include/config.h b/include/config.h index 796da359c..0046c3878 100644 --- a/include/config.h +++ b/include/config.h @@ -55,6 +55,16 @@ #define UNITS_METRIC #endif +// An option to use translations/encoding fixes for the Debug menus. +// Selected by default for custom English debug roms. +#ifndef DEBUG_TRANSLATE +#if ENGLISH && DEBUG +#define DEBUG_TRANSLATE 1 +#else +#define DEBUG_TRANSLATE 0 +#endif +#endif + // Fixed in Emerald. // #define BUGFIX_SETMONIVS diff --git a/include/constants/metatile_labels.h b/include/constants/metatile_labels.h index 0995d5309..f126d222a 100644 --- a/include/constants/metatile_labels.h +++ b/include/constants/metatile_labels.h @@ -191,12 +191,12 @@ #define METATILE_MauvilleGym_PoleBottom_Off 0x243 // gTileset_MossdeepGym -#define METATILE_MossdeepGym_Obelisk_Top 0x204 -#define METATILE_MossdeepGym_Obelisk_Base 0x20C -#define METATILE_MossdeepGym_Wall_LeftCorner 0x20D -#define METATILE_MossdeepGym_OuterWall_RightCorner 0x205 -#define METATILE_MossdeepGym_Empty0 0x238 -#define METATILE_MossdeepGym_Empty1 0x239 +#define METATILE_MossdeepGym_RedArrow_Right 0x204 +#define METATILE_MossdeepGym_RedArrow_Left 0x20C +#define METATILE_MossdeepGym_RedArrow_Up 0x20D +#define METATILE_MossdeepGym_RedArrow_Down 0x205 +#define METATILE_MossdeepGym_Switch_Up 0x238 +#define METATILE_MossdeepGym_Switch_Down 0x239 // gTileset_Building #define METATILE_Building_TV_Off 0x002 diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h new file mode 100644 index 000000000..8e7c01eb5 --- /dev/null +++ b/include/constants/pokemon.h @@ -0,0 +1,144 @@ +#ifndef GUARD_CONSTANTS_POKEMON_H +#define GUARD_CONSTANTS_POKEMON_H + +#define MON_DATA_PERSONALITY 0 +#define MON_DATA_OT_ID 1 +#define MON_DATA_NICKNAME 2 +#define MON_DATA_LANGUAGE 3 +#define MON_DATA_SANITY_BIT1 4 +#define MON_DATA_SANITY_BIT2 5 +#define MON_DATA_SANITY_BIT3 6 +#define MON_DATA_OT_NAME 7 +#define MON_DATA_MARKINGS 8 +#define MON_DATA_CHECKSUM 9 +#define MON_DATA_10 10 +#define MON_DATA_SPECIES 11 +#define MON_DATA_HELD_ITEM 12 +#define MON_DATA_MOVE1 13 +#define MON_DATA_MOVE2 14 +#define MON_DATA_MOVE3 15 +#define MON_DATA_MOVE4 16 +#define MON_DATA_PP1 17 +#define MON_DATA_PP2 18 +#define MON_DATA_PP3 19 +#define MON_DATA_PP4 20 +#define MON_DATA_PP_BONUSES 21 +#define MON_DATA_COOL 22 +#define MON_DATA_BEAUTY 23 +#define MON_DATA_CUTE 24 +#define MON_DATA_EXP 25 +#define MON_DATA_HP_EV 26 +#define MON_DATA_ATK_EV 27 +#define MON_DATA_DEF_EV 28 +#define MON_DATA_SPEED_EV 29 +#define MON_DATA_SPATK_EV 30 +#define MON_DATA_SPDEF_EV 31 +#define MON_DATA_FRIENDSHIP 32 +#define MON_DATA_SMART 33 +#define MON_DATA_POKERUS 34 +#define MON_DATA_MET_LOCATION 35 +#define MON_DATA_MET_LEVEL 36 +#define MON_DATA_MET_GAME 37 +#define MON_DATA_POKEBALL 38 +#define MON_DATA_HP_IV 39 +#define MON_DATA_ATK_IV 40 +#define MON_DATA_DEF_IV 41 +#define MON_DATA_SPEED_IV 42 +#define MON_DATA_SPATK_IV 43 +#define MON_DATA_SPDEF_IV 44 +#define MON_DATA_IS_EGG 45 +#define MON_DATA_ALT_ABILITY 46 +#define MON_DATA_TOUGH 47 +#define MON_DATA_SHEEN 48 +#define MON_DATA_OT_GENDER 49 +#define MON_DATA_COOL_RIBBON 50 +#define MON_DATA_BEAUTY_RIBBON 51 +#define MON_DATA_CUTE_RIBBON 52 +#define MON_DATA_SMART_RIBBON 53 +#define MON_DATA_TOUGH_RIBBON 54 +#define MON_DATA_STATUS 55 +#define MON_DATA_LEVEL 56 +#define MON_DATA_HP 57 +#define MON_DATA_MAX_HP 58 +#define MON_DATA_ATK 59 +#define MON_DATA_DEF 60 +#define MON_DATA_SPEED 61 +#define MON_DATA_SPATK 62 +#define MON_DATA_SPDEF 63 +#define MON_DATA_MAIL 64 +#define MON_DATA_SPECIES2 65 +#define MON_DATA_IVS 66 +#define MON_DATA_CHAMPION_RIBBON 67 +#define MON_DATA_WINNING_RIBBON 68 +#define MON_DATA_VICTORY_RIBBON 69 +#define MON_DATA_ARTIST_RIBBON 70 +#define MON_DATA_EFFORT_RIBBON 71 +#define MON_DATA_GIFT_RIBBON_1 72 +#define MON_DATA_GIFT_RIBBON_2 73 +#define MON_DATA_GIFT_RIBBON_3 74 +#define MON_DATA_GIFT_RIBBON_4 75 +#define MON_DATA_GIFT_RIBBON_5 76 +#define MON_DATA_GIFT_RIBBON_6 77 +#define MON_DATA_GIFT_RIBBON_7 78 +#define MON_DATA_FATEFUL_ENCOUNTER 79 +#define MON_DATA_KNOWN_MOVES 80 +#define MON_DATA_RIBBON_COUNT 81 +#define MON_DATA_RIBBONS 82 +#define MON_DATA_83 83 +#define MON_DATA_ATK2 84 +#define MON_DATA_DEF2 85 +#define MON_DATA_SPEED2 86 +#define MON_DATA_SPATK2 87 +#define MON_DATA_SPDEF2 88 + +#define MIN_LEVEL 1 +#define MAX_LEVEL 100 + +#define MON_MALE 0x00 +#define MON_FEMALE 0xFE +#define MON_GENDERLESS 0xFF + +#define TYPE_NORMAL 0x00 +#define TYPE_FIGHTING 0x01 +#define TYPE_FLYING 0x02 +#define TYPE_POISON 0x03 +#define TYPE_GROUND 0x04 +#define TYPE_ROCK 0x05 +#define TYPE_BUG 0x06 +#define TYPE_GHOST 0x07 +#define TYPE_STEEL 0x08 +#define TYPE_MYSTERY 0x09 +#define TYPE_FIRE 0x0a +#define TYPE_WATER 0x0b +#define TYPE_GRASS 0x0c +#define TYPE_ELECTRIC 0x0d +#define TYPE_PSYCHIC 0x0e +#define TYPE_ICE 0x0f +#define TYPE_DRAGON 0x10 +#define TYPE_DARK 0x11 +#define NUMBER_OF_MON_TYPES 0x12 + +#define FRIENDSHIP_EVENT_GROW_LEVEL 0x0 +#define FRIENDSHIP_EVENT_VITAMIN 0x1 // unused +#define FRIENDSHIP_EVENT_BATTLE_ITEM 0x2 // unused +#define FRIENDSHIP_EVENT_LEAGUE_BATTLE 0x3 +#define FRIENDSHIP_EVENT_LEARN_TMHM 0x4 +#define FRIENDSHIP_EVENT_WALKING 0x5 +#define FRIENDSHIP_EVENT_FAINT_SMALL 0x6 +#define FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE 0x7 +#define FRIENDSHIP_EVENT_FAINT_LARGE 0x8 + +#define STATUS_PRIMARY_NONE 0x0 +#define STATUS_PRIMARY_POISON 0x1 +#define STATUS_PRIMARY_PARALYSIS 0x2 +#define STATUS_PRIMARY_SLEEP 0x3 +#define STATUS_PRIMARY_FREEZE 0x4 +#define STATUS_PRIMARY_BURN 0x5 +#define STATUS_PRIMARY_POKERUS 0x6 +#define STATUS_PRIMARY_FAINTED 0x7 + +#define MAX_TOTAL_EVS 510 +#define NUM_STATS 6 +#define UNOWN_FORM_COUNT 28 + +#endif // GUARD_CONSTANTS_POKEMON_H diff --git a/include/constants/vars.h b/include/constants/vars.h index 856aba069..de62e4e8a 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -172,25 +172,26 @@ #define VAR_STEVENS_HOUSE_STATE 0x40C6 #define VAR_OLDALE_STATE 0x40C7 +#define SPECIAL_VARS_START 0x8000 // special vars // They are commonly used as parameters to commands, or return values from commands. -#define VAR_SPECIAL_0 0x8000 -#define VAR_SPECIAL_1 0x8001 -#define VAR_SPECIAL_2 0x8002 -#define VAR_SPECIAL_3 0x8003 -#define VAR_SPECIAL_4 0x8004 -#define VAR_SPECIAL_5 0x8005 -#define VAR_SPECIAL_6 0x8006 -#define VAR_SPECIAL_7 0x8007 -#define VAR_SPECIAL_8 0x8008 -#define VAR_SPECIAL_9 0x8009 -#define VAR_SPECIAL_A 0x800A -#define VAR_SPECIAL_B 0x800B -#define FACING 0x800C -#define RESULT 0x800D -#define ITEM_ID 0x800E -#define LAST_TALKED 0x800F -#define CONTEST_RANK 0x8010 -#define CONTEST_CATEGORY 0x8011 +#define VAR_0x8000 0x8000 +#define VAR_0x8001 0x8001 +#define VAR_0x8002 0x8002 +#define VAR_0x8003 0x8003 +#define VAR_0x8004 0x8004 +#define VAR_0x8005 0x8005 +#define VAR_0x8006 0x8006 +#define VAR_0x8007 0x8007 +#define VAR_0x8008 0x8008 +#define VAR_0x8009 0x8009 +#define VAR_0x800A 0x800A +#define VAR_0x800B 0x800B +#define VAR_FACING 0x800C +#define VAR_RESULT 0x800D +#define VAR_ITEM_ID 0x800E +#define VAR_LAST_TALKED 0x800F +#define VAR_CONTEST_RANK 0x8010 +#define VAR_CONTEST_CATEGORY 0x8011 #endif // GUARD_CONSTANTS_VARS_H diff --git a/include/global.h b/include/global.h index 7fd7e902a..ba9e20813 100644 --- a/include/global.h +++ b/include/global.h @@ -19,6 +19,20 @@ #define INCBIN_S32 INCBIN #endif +// For debug menu translations. +// DTR("こんにちは", "Hello") will expand to "Hello" with DEBUG_TRANSLATE, +// or "こんにちは" if not. +// The KANA macro will wrap Japanese text with encoding markers to +// prevent mojibake while they are being translated. + +#if DEBUG_TRANSLATE +#define DTR(japanese, english) _(english) +#define KANA(txt) _("{JPN}" txt "{ENG}") +#else +#define DTR(japanese, english) _(japanese) +#define KANA(txt) _(txt) +#endif + // Prevent cross-jump optimization. #define BLOCK_CROSS_JUMP asm(""); diff --git a/include/macros/event.inc b/include/macros/event.inc index 8b2d587c9..7250ec5ca 100644 --- a/include/macros/event.inc +++ b/include/macros/event.inc @@ -1449,11 +1449,11 @@ .endm .macro switch var - copyvar VAR_SPECIAL_0, \var + copyvar VAR_0x8000, \var .endm .macro case condition, dest - compare_var_to_value VAR_SPECIAL_0, \condition + compare_var_to_value VAR_0x8000, \condition goto_if_eq \dest .endm @@ -1469,12 +1469,12 @@ NO = 0 .macro giveitem_std item, amount=1, function=0 - setorcopyvar VAR_SPECIAL_0, \item - setorcopyvar VAR_SPECIAL_1, \amount + setorcopyvar VAR_0x8000, \item + setorcopyvar VAR_0x8001, \amount callstd \function .endm .macro givedecoration_std decoration - setorcopyvar VAR_SPECIAL_0, \decoration + setorcopyvar VAR_0x8000, \decoration callstd 7 .endm diff --git a/include/pokemon.h b/include/pokemon.h index 67816b8f0..df2d42522 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -1,147 +1,9 @@ #ifndef GUARD_POKEMON_H #define GUARD_POKEMON_H +#include "constants/pokemon.h" #include "sprite.h" -#define MON_DATA_PERSONALITY 0 -#define MON_DATA_OT_ID 1 -#define MON_DATA_NICKNAME 2 -#define MON_DATA_LANGUAGE 3 -#define MON_DATA_SANITY_BIT1 4 -#define MON_DATA_SANITY_BIT2 5 -#define MON_DATA_SANITY_BIT3 6 -#define MON_DATA_OT_NAME 7 -#define MON_DATA_MARKINGS 8 -#define MON_DATA_CHECKSUM 9 -#define MON_DATA_10 10 -#define MON_DATA_SPECIES 11 -#define MON_DATA_HELD_ITEM 12 -#define MON_DATA_MOVE1 13 -#define MON_DATA_MOVE2 14 -#define MON_DATA_MOVE3 15 -#define MON_DATA_MOVE4 16 -#define MON_DATA_PP1 17 -#define MON_DATA_PP2 18 -#define MON_DATA_PP3 19 -#define MON_DATA_PP4 20 -#define MON_DATA_PP_BONUSES 21 -#define MON_DATA_COOL 22 -#define MON_DATA_BEAUTY 23 -#define MON_DATA_CUTE 24 -#define MON_DATA_EXP 25 -#define MON_DATA_HP_EV 26 -#define MON_DATA_ATK_EV 27 -#define MON_DATA_DEF_EV 28 -#define MON_DATA_SPEED_EV 29 -#define MON_DATA_SPATK_EV 30 -#define MON_DATA_SPDEF_EV 31 -#define MON_DATA_FRIENDSHIP 32 -#define MON_DATA_SMART 33 -#define MON_DATA_POKERUS 34 -#define MON_DATA_MET_LOCATION 35 -#define MON_DATA_MET_LEVEL 36 -#define MON_DATA_MET_GAME 37 -#define MON_DATA_POKEBALL 38 -#define MON_DATA_HP_IV 39 -#define MON_DATA_ATK_IV 40 -#define MON_DATA_DEF_IV 41 -#define MON_DATA_SPEED_IV 42 -#define MON_DATA_SPATK_IV 43 -#define MON_DATA_SPDEF_IV 44 -#define MON_DATA_IS_EGG 45 -#define MON_DATA_ALT_ABILITY 46 -#define MON_DATA_TOUGH 47 -#define MON_DATA_SHEEN 48 -#define MON_DATA_OT_GENDER 49 -#define MON_DATA_COOL_RIBBON 50 -#define MON_DATA_BEAUTY_RIBBON 51 -#define MON_DATA_CUTE_RIBBON 52 -#define MON_DATA_SMART_RIBBON 53 -#define MON_DATA_TOUGH_RIBBON 54 -#define MON_DATA_STATUS 55 -#define MON_DATA_LEVEL 56 -#define MON_DATA_HP 57 -#define MON_DATA_MAX_HP 58 -#define MON_DATA_ATK 59 -#define MON_DATA_DEF 60 -#define MON_DATA_SPEED 61 -#define MON_DATA_SPATK 62 -#define MON_DATA_SPDEF 63 -#define MON_DATA_MAIL 64 -#define MON_DATA_SPECIES2 65 -#define MON_DATA_IVS 66 -#define MON_DATA_CHAMPION_RIBBON 67 -#define MON_DATA_WINNING_RIBBON 68 -#define MON_DATA_VICTORY_RIBBON 69 -#define MON_DATA_ARTIST_RIBBON 70 -#define MON_DATA_EFFORT_RIBBON 71 -#define MON_DATA_GIFT_RIBBON_1 72 -#define MON_DATA_GIFT_RIBBON_2 73 -#define MON_DATA_GIFT_RIBBON_3 74 -#define MON_DATA_GIFT_RIBBON_4 75 -#define MON_DATA_GIFT_RIBBON_5 76 -#define MON_DATA_GIFT_RIBBON_6 77 -#define MON_DATA_GIFT_RIBBON_7 78 -#define MON_DATA_FATEFUL_ENCOUNTER 79 -#define MON_DATA_KNOWN_MOVES 80 -#define MON_DATA_RIBBON_COUNT 81 -#define MON_DATA_RIBBONS 82 -#define MON_DATA_83 83 -#define MON_DATA_ATK2 84 -#define MON_DATA_DEF2 85 -#define MON_DATA_SPEED2 86 -#define MON_DATA_SPATK2 87 -#define MON_DATA_SPDEF2 88 - -#define MAX_LEVEL 100 - -#define MON_MALE 0x00 -#define MON_FEMALE 0xFE -#define MON_GENDERLESS 0xFF - -#define TYPE_NORMAL 0x00 -#define TYPE_FIGHTING 0x01 -#define TYPE_FLYING 0x02 -#define TYPE_POISON 0x03 -#define TYPE_GROUND 0x04 -#define TYPE_ROCK 0x05 -#define TYPE_BUG 0x06 -#define TYPE_GHOST 0x07 -#define TYPE_STEEL 0x08 -#define TYPE_MYSTERY 0x09 -#define TYPE_FIRE 0x0a -#define TYPE_WATER 0x0b -#define TYPE_GRASS 0x0c -#define TYPE_ELECTRIC 0x0d -#define TYPE_PSYCHIC 0x0e -#define TYPE_ICE 0x0f -#define TYPE_DRAGON 0x10 -#define TYPE_DARK 0x11 -#define NUMBER_OF_MON_TYPES 0x12 - -#define FRIENDSHIP_EVENT_GROW_LEVEL 0x0 -#define FRIENDSHIP_EVENT_VITAMIN 0x1 // unused -#define FRIENDSHIP_EVENT_BATTLE_ITEM 0x2 // unused -#define FRIENDSHIP_EVENT_LEAGUE_BATTLE 0x3 -#define FRIENDSHIP_EVENT_LEARN_TMHM 0x4 -#define FRIENDSHIP_EVENT_WALKING 0x5 -#define FRIENDSHIP_EVENT_FAINT_SMALL 0x6 -#define FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE 0x7 -#define FRIENDSHIP_EVENT_FAINT_LARGE 0x8 - -#define STATUS_PRIMARY_NONE 0x0 -#define STATUS_PRIMARY_POISON 0x1 -#define STATUS_PRIMARY_PARALYSIS 0x2 -#define STATUS_PRIMARY_SLEEP 0x3 -#define STATUS_PRIMARY_FREEZE 0x4 -#define STATUS_PRIMARY_BURN 0x5 -#define STATUS_PRIMARY_POKERUS 0x6 -#define STATUS_PRIMARY_FAINTED 0x7 - -#define MAX_TOTAL_EVS 510 -#define NUM_STATS 6 -#define UNOWN_FORM_COUNT 28 - enum { EGG_GROUP_NONE, EGG_GROUP_MONSTER, |