summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorGriffinR <griffin.richards@comcast.net>2019-09-22 12:18:48 -0400
committerGitHub <noreply@github.com>2019-09-22 12:18:48 -0400
commita180d2af49250b9cf005ce1635e5e59c7e6848c4 (patch)
treea457673d0bbfe61da83b59a08b256dadaa4b4821 /include
parent58b8d7c297576846aeef4173bbe8a6a71608ad98 (diff)
parent9d4fc9234be10ccad76987e08512373bb097d8e0 (diff)
Merge branch 'master' into document-eventscripts
Diffstat (limited to 'include')
-rw-r--r--include/constants/flags.h2
-rw-r--r--include/constants/item.h20
-rw-r--r--include/constants/pokemon.h320
-rw-r--r--include/constants/script_menu.h168
-rw-r--r--include/item.h21
-rw-r--r--include/pokemon.h179
-rw-r--r--include/script_menu.h24
-rw-r--r--include/strings.h284
-rw-r--r--include/text.h15
9 files changed, 600 insertions, 433 deletions
diff --git a/include/constants/flags.h b/include/constants/flags.h
index f8b4a273f..d90451ad7 100644
--- a/include/constants/flags.h
+++ b/include/constants/flags.h
@@ -701,7 +701,7 @@
#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_BRENDAN 0x2E9
#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_BRENDAN 0x2EA
#define FLAG_HIDE_SAFARI_ZONE_SOUTH_EAST_EXPANSION 0x2EB
-#define FLAG_HIDE_LILYCOVE_HARBOR_EON_TICKET_TAKER 0x2EC
+#define FLAG_HIDE_LILYCOVE_HARBOR_EVENT_TICKET_TAKER 0x2EC
#define FLAG_HIDE_SLATEPORT_CITY_SCOTT 0x2ED
#define FLAG_HIDE_ROUTE_101_ZIGZAGOON 0x2EE
#define FLAG_HIDE_VICTORY_ROAD_EXIT_WALLY 0x2EF
diff --git a/include/constants/item.h b/include/constants/item.h
new file mode 100644
index 000000000..a5c34418d
--- /dev/null
+++ b/include/constants/item.h
@@ -0,0 +1,20 @@
+#ifndef GUARD_ITEM_CONSTANTS_H
+#define GUARD_ITEM_CONSTANTS_H
+
+// These constants are used in gItems
+#define POCKET_NONE 0
+#define POCKET_ITEMS 1
+#define POCKET_POKE_BALLS 2
+#define POCKET_TM_HM 3
+#define POCKET_BERRIES 4
+#define POCKET_KEY_ITEMS 5
+
+#define ITEMS_POCKET 0
+#define BALLS_POCKET 1
+#define TMHM_POCKET 2
+#define BERRIES_POCKET 3
+#define KEYITEMS_POCKET 4
+#define POCKETS_COUNT 5
+
+
+#endif // GUARD_ITEM_CONSTANTS_H
diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h
index 5d0e562bc..14c2acdf6 100644
--- a/include/constants/pokemon.h
+++ b/include/constants/pokemon.h
@@ -2,81 +2,80 @@
#define GUARD_CONSTANTS_POKEMON_H
// Pokemon types
-#define TYPE_NONE 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 TYPE_NONE 255
+#define TYPE_NORMAL 0
+#define TYPE_FIGHTING 1
+#define TYPE_FLYING 2
+#define TYPE_POISON 3
+#define TYPE_GROUND 4
+#define TYPE_ROCK 5
+#define TYPE_BUG 6
+#define TYPE_GHOST 7
+#define TYPE_STEEL 8
+#define TYPE_MYSTERY 9
+#define TYPE_FIRE 10
+#define TYPE_WATER 11
+#define TYPE_GRASS 12
+#define TYPE_ELECTRIC 13
+#define TYPE_PSYCHIC 14
+#define TYPE_ICE 15
+#define TYPE_DRAGON 16
+#define TYPE_DARK 17
+#define NUMBER_OF_MON_TYPES 18
// Pokemon egg groups
-#define EGG_GROUP_NONE 0
-#define EGG_GROUP_MONSTER 1
-#define EGG_GROUP_WATER_1 2
-#define EGG_GROUP_BUG 3
-#define EGG_GROUP_FLYING 4
-#define EGG_GROUP_FIELD 5
-#define EGG_GROUP_FAIRY 6
-#define EGG_GROUP_GRASS 7
-#define EGG_GROUP_HUMAN_LIKE 8
-#define EGG_GROUP_WATER_3 9
-#define EGG_GROUP_MINERAL 10
-#define EGG_GROUP_AMORPHOUS 11
-#define EGG_GROUP_WATER_2 12
-#define EGG_GROUP_DITTO 13
-#define EGG_GROUP_DRAGON 14
-#define EGG_GROUP_UNDISCOVERED 15
+#define EGG_GROUP_NONE 0
+#define EGG_GROUP_MONSTER 1
+#define EGG_GROUP_WATER_1 2
+#define EGG_GROUP_BUG 3
+#define EGG_GROUP_FLYING 4
+#define EGG_GROUP_FIELD 5
+#define EGG_GROUP_FAIRY 6
+#define EGG_GROUP_GRASS 7
+#define EGG_GROUP_HUMAN_LIKE 8
+#define EGG_GROUP_WATER_3 9
+#define EGG_GROUP_MINERAL 10
+#define EGG_GROUP_AMORPHOUS 11
+#define EGG_GROUP_WATER_2 12
+#define EGG_GROUP_DITTO 13
+#define EGG_GROUP_DRAGON 14
+#define EGG_GROUP_UNDISCOVERED 15
// Pokemon natures
-#define NATURE_HARDY 0
-#define NATURE_LONELY 1
-#define NATURE_BRAVE 2
-#define NATURE_ADAMANT 3
-#define NATURE_NAUGHTY 4
-#define NATURE_BOLD 5
-#define NATURE_DOCILE 6
-#define NATURE_RELAXED 7
-#define NATURE_IMPISH 8
-#define NATURE_LAX 9
-#define NATURE_TIMID 10
-#define NATURE_HASTY 11
-#define NATURE_SERIOUS 12
-#define NATURE_JOLLY 13
-#define NATURE_NAIVE 14
-#define NATURE_MODEST 15
-#define NATURE_MILD 16
-#define NATURE_QUIET 17
-#define NATURE_BASHFUL 18
-#define NATURE_RASH 19
-#define NATURE_CALM 20
-#define NATURE_GENTLE 21
-#define NATURE_SASSY 22
-#define NATURE_CAREFUL 23
-#define NATURE_QUIRKY 24
+#define NATURE_HARDY 0
+#define NATURE_LONELY 1
+#define NATURE_BRAVE 2
+#define NATURE_ADAMANT 3
+#define NATURE_NAUGHTY 4
+#define NATURE_BOLD 5
+#define NATURE_DOCILE 6
+#define NATURE_RELAXED 7
+#define NATURE_IMPISH 8
+#define NATURE_LAX 9
+#define NATURE_TIMID 10
+#define NATURE_HASTY 11
+#define NATURE_SERIOUS 12
+#define NATURE_JOLLY 13
+#define NATURE_NAIVE 14
+#define NATURE_MODEST 15
+#define NATURE_MILD 16
+#define NATURE_QUIET 17
+#define NATURE_BASHFUL 18
+#define NATURE_RASH 19
+#define NATURE_CALM 20
+#define NATURE_GENTLE 21
+#define NATURE_SASSY 22
+#define NATURE_CAREFUL 23
+#define NATURE_QUIRKY 24
// Pokemon Stats
-#define STAT_HP 0
-#define STAT_ATK 1
-#define STAT_DEF 2
-#define STAT_SPEED 3
-#define STAT_SPATK 4
-#define STAT_SPDEF 5
-#define STAT_ACC 6 // Only in battles.
+#define STAT_HP 0
+#define STAT_ATK 1
+#define STAT_DEF 2
+#define STAT_SPEED 3
+#define STAT_SPATK 4
+#define STAT_SPDEF 5
+#define STAT_ACC 6 // Only in battles.
#define STAT_EVASION 7 // Only in battles.
#define NUM_STATS 6
@@ -85,4 +84,187 @@
// Shiny odds
#define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536
+// Flags for Get(Box)MonData / Set(Box)MonData
+#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_IS_BAD_EGG 4
+#define MON_DATA_SANITY_HAS_SPECIES 5
+#define MON_DATA_SANITY_IS_EGG 6
+#define MON_DATA_OT_NAME 7
+#define MON_DATA_MARKINGS 8
+#define MON_DATA_CHECKSUM 9
+#define MON_DATA_ENCRYPT_SEPARATOR 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_ABILITY_NUM 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_OBEDIENCE 80
+#define MON_DATA_KNOWN_MOVES 81
+#define MON_DATA_RIBBON_COUNT 82
+#define MON_DATA_RIBBONS 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 OT_ID_PLAYER_ID 0
+#define OT_ID_PRESET 1
+#define OT_ID_RANDOM_NO_SHINY 2
+
+
+#define MON_GIVEN_TO_PARTY 0
+#define MON_GIVEN_TO_PC 1
+#define MON_CANT_GIVE 2
+
+#define PLAYER_HAS_TWO_USABLE_MONS 0
+#define PLAYER_HAS_ONE_MON 1
+#define PLAYER_HAS_ONE_USABLE_MON 2
+
+#define MON_MALE 0x00
+#define MON_FEMALE 0xFE
+#define MON_GENDERLESS 0xFF
+
+#define FRIENDSHIP_EVENT_GROW_LEVEL 0
+#define FRIENDSHIP_EVENT_VITAMIN 1 // unused
+#define FRIENDSHIP_EVENT_BATTLE_ITEM 2 // unused
+#define FRIENDSHIP_EVENT_LEAGUE_BATTLE 3
+#define FRIENDSHIP_EVENT_LEARN_TMHM 4
+#define FRIENDSHIP_EVENT_WALKING 5
+#define FRIENDSHIP_EVENT_FAINT_SMALL 6
+#define FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE 7
+#define FRIENDSHIP_EVENT_FAINT_LARGE 8
+
+#define STATUS_PRIMARY_NONE 0
+#define STATUS_PRIMARY_POISON 1
+#define STATUS_PRIMARY_PARALYSIS 2
+#define STATUS_PRIMARY_SLEEP 3
+#define STATUS_PRIMARY_FREEZE 4
+#define STATUS_PRIMARY_BURN 5
+#define STATUS_PRIMARY_POKERUS 6
+#define STATUS_PRIMARY_FAINTED 7
+
+#define MAX_TOTAL_EVS 510
+#define EV_ITEM_RAISE_LIMIT 100
+
+#define UNOWN_FORM_COUNT 28
+
+// Battle move flags
+#define FLAG_MAKES_CONTACT 0x1
+#define FLAG_PROTECT_AFFECTED 0x2
+#define FLAG_MAGICCOAT_AFFECTED 0x4
+#define FLAG_SNATCH_AFFECTED 0x8
+#define FLAG_MIRROR_MOVE_AFFECTED 0x10
+#define FLAG_KINGSROCK_AFFECTED 0x20
+
+// Growth rates
+#define GROWTH_MEDIUM_FAST 0
+#define GROWTH_ERRATIC 1
+#define GROWTH_FLUCTUATING 2
+#define GROWTH_MEDIUM_SLOW 3
+#define GROWTH_FAST 4
+#define GROWTH_SLOW 5
+
+// Body colors for pokedex search
+#define BODY_COLOR_RED 0
+#define BODY_COLOR_BLUE 1
+#define BODY_COLOR_YELLOW 2
+#define BODY_COLOR_GREEN 3
+#define BODY_COLOR_BLACK 4
+#define BODY_COLOR_BROWN 5
+#define BODY_COLOR_PURPLE 6
+#define BODY_COLOR_GRAY 7
+#define BODY_COLOR_WHITE 8
+#define BODY_COLOR_PINK 9
+
+#define F_SUMMARY_SCREEN_FLIP_SPRITE 0x80
+
+// Evolution type flags
+#define EVO_FRIENDSHIP 0x0001 // Pokémon levels up with friendship ≥ 220
+#define EVO_FRIENDSHIP_DAY 0x0002 // Pokémon levels up during the day with friendship ≥ 220
+#define EVO_FRIENDSHIP_NIGHT 0x0003 // Pokémon levels up at night with friendship ≥ 220
+#define EVO_LEVEL 0x0004 // Pokémon reaches the specified level
+#define EVO_TRADE 0x0005 // Pokémon is traded
+#define EVO_TRADE_ITEM 0x0006 // Pokémon is traded while it's holding the specified item
+#define EVO_ITEM 0x0007 // specified item is used on Pokémon
+#define EVO_LEVEL_ATK_GT_DEF 0x0008 // Pokémon reaches the specified level with attack > defense
+#define EVO_LEVEL_ATK_EQ_DEF 0x0009 // Pokémon reaches the specified level with attack = defense
+#define EVO_LEVEL_ATK_LT_DEF 0x000a // Pokémon reaches the specified level with attack < defense
+#define EVO_LEVEL_SILCOON 0x000b // Pokémon reaches the specified level with a Silcoon personality value
+#define EVO_LEVEL_CASCOON 0x000c // Pokémon reaches the specified level with a Cascoon personality value
+#define EVO_LEVEL_NINJASK 0x000d // Pokémon reaches the specified level (special value for Ninjask)
+#define EVO_LEVEL_SHEDINJA 0x000e // Pokémon reaches the specified level (special value for Shedinja)
+#define EVO_BEAUTY 0x000f // Pokémon levels up with beauty ≥ specified value
+
+#define EVOS_PER_MON 5
+
#endif // GUARD_CONSTANTS_POKEMON_H
diff --git a/include/constants/script_menu.h b/include/constants/script_menu.h
new file mode 100644
index 000000000..b7ec908c1
--- /dev/null
+++ b/include/constants/script_menu.h
@@ -0,0 +1,168 @@
+#ifndef GUARD_SCRIPT_MENU_CONSTANTS_H
+#define GUARD_SCRIPT_MENU_CONSTANTS_H
+
+#define MULTICHOICE(name) {name, ARRAY_COUNT(name)}
+
+#define MAX_MULTICHOICE_WIDTH 28
+
+#define MULTI_B_PRESSED 127
+
+// Multichoice Ids
+#define MULTI_BRINEY_ON_DEWFORD 0
+#define MULTI_PC 1 // Exit only, populated by CreatePCMultichoice
+#define MULTI_ENTERINFO 2
+#define MULTI_CONTEST_INFO 3
+#define MULTI_CONTEST_TYPE 4
+#define MULTI_DECOR_NOREGISTRY 5
+#define MULTI_DECOR_REGISTRY 6
+#define MULTI_REGISTER_MENU 7
+#define MULTI_SSTIDAL_LILYCOVE 8 // Exit only, populated by CreateLilycoveSSTidalMultichoice
+#define MULTI_UNUSED_9 9
+#define MULTI_UNUSED_10 10
+#define MULTI_FRONTIER_PASS_INFO 11
+#define MULTI_BIKE 12
+#define MULTI_STATUS_INFO 13
+#define MULTI_BRINEY_OFF_DEWFORD 14
+#define MULTI_UNUSED_15 15
+#define MULTI_VIEWED_PAINTINGS 16
+#define MULTI_YESNOINFO 17
+#define MULTI_BATTLE_MODE 18
+#define MULTI_UNUSED_19 19
+#define MULTI_YESNOINFO_2 20
+#define MULTI_UNUSED_21 21
+#define MULTI_UNUSED_22 22
+#define MULTI_CHALLENGEINFO 23
+#define MULTI_LEVEL_MODE 24
+#define MULTI_MECHADOLL1_Q1 25
+#define MULTI_MECHADOLL1_Q2 26
+#define MULTI_MECHADOLL1_Q3 27
+#define MULTI_MECHADOLL2_Q1 28
+#define MULTI_MECHADOLL2_Q2 29
+#define MULTI_MECHADOLL2_Q3 30
+#define MULTI_MECHADOLL3_Q1 31
+#define MULTI_MECHADOLL3_Q2 32
+#define MULTI_MECHADOLL3_Q3 33
+#define MULTI_MECHADOLL4_Q1 34
+#define MULTI_MECHADOLL4_Q2 35
+#define MULTI_MECHADOLL4_Q3 36
+#define MULTI_MECHADOLL5_Q1 37
+#define MULTI_MECHADOLL5_Q2 38
+#define MULTI_MECHADOLL5_Q3 39
+#define MULTI_UNUSED_40 40
+#define MULTI_UNUSED_41 41
+#define MULTI_VENDING_MACHINE 42
+#define MULTI_MACH_BIKE_INFO 43
+#define MULTI_ACRO_BIKE_INFO 44
+#define MULTI_SATISFACTION 45
+#define MULTI_STERN_DEEPSEA 46
+#define MULTI_UNUSED_ASH_VENDOR 47 // Replaced by scrollable multichoice
+#define MULTI_GAME_CORNER_DOLLS 48
+#define MULTI_GAME_CORNER_COINS 49
+#define MULTI_HOWS_FISHING 50
+#define MULTI_UNUSED_51 51
+#define MULTI_SSTIDAL_SLATEPORT_WITH_BF 52
+#define MULTI_SSTIDAL_BATTLE_FRONTIER 53
+#define MULTI_RIGHTLEFT 54
+#define MULTI_GAME_CORNER_TMS 55
+#define MULTI_SSTIDAL_SLATEPORT_NO_BF 56
+#define MULTI_FLOORS 57
+#define MULTI_SHARDS_R 58
+#define MULTI_SHARDS_Y 59
+#define MULTI_SHARDS_RY 60
+#define MULTI_SHARDS_B 61
+#define MULTI_SHARDS_RB 62
+#define MULTI_SHARDS_YB 63
+#define MULTI_SHARDS_RYB 64
+#define MULTI_SHARDS_G 65
+#define MULTI_SHARDS_RG 66
+#define MULTI_SHARDS_YG 67
+#define MULTI_SHARDS_RYG 68
+#define MULTI_SHARDS_BG 69
+#define MULTI_SHARDS_RBG 70
+#define MULTI_SHARDS_YBG 71
+#define MULTI_SHARDS_RYBG 72
+#define MULTI_TOURNEY_WITH_RECORD 73
+#define MULTI_CABLE_CLUB_NO_RECORD_MIX 74
+#define MULTI_WIRELESS_NO_RECORD_BERRY 75
+#define MULTI_CABLE_CLUB_WITH_RECORD_MIX 76
+#define MULTI_WIRELESS_NO_BERRY 77
+#define MULTI_WIRELESS_NO_RECORD 78
+#define MULTI_WIRELESS_ALL_SERVICES 79
+#define MULTI_WIRELESS_MINIGAME 80
+#define MULTI_LINK_LEADER 81
+#define MULTI_CONTEST_RANK 82
+#define MULTI_FRONTIER_ITEM_CHOOSE 83
+#define MULTI_LINK_CONTEST_INFO 84
+#define MULTI_LINK_CONTEST_MODE 85
+#define MULTI_FORCED_START_MENU 86
+#define MULTI_FRONTIER_GAMBLER_BET 87
+#define MULTI_TENT 88
+#define MULTI_UNUSED_SSTIDAL_1 89 // These 4 were replaced by CreateLilycoveSSTidalMultichoice
+#define MULTI_UNUSED_SSTIDAL_2 90 //
+#define MULTI_UNUSED_SSTIDAL_3 91 //
+#define MULTI_UNUSED_SSTIDAL_4 92 //
+#define MULTI_FOSSIL 93
+#define MULTI_YESNO 94
+#define MULTI_FRONTIER_RULES 95
+#define MULTI_BATTLE_ARENA_RULES 96
+#define MULTI_BATTLE_TOWER_RULES 97
+#define MULTI_BATTLE_DOME_RULES 98
+#define MULTI_BATTLE_FACTORY_RULES 99
+#define MULTI_BATTLE_PALACE_RULES 100
+#define MULTI_BATTLE_PYRAMID_RULES 101
+#define MULTI_BATTLE_PIKE_RULES 102
+#define MULTI_GO_ON_RECORD_REST_RETIRE 103
+#define MULTI_GO_ON_REST_RETIRE 104
+#define MULTI_GO_ON_RECORD_RETIRE 105
+#define MULTI_GO_ON_RETIRE 106
+#define MULTI_TOURNEY_NO_RECORD 107
+#define MULTI_TV_LATI 108
+#define MULTI_BATTLE_TOWER_FEELINGS 109
+#define MULTI_WHERES_RAYQUAZA 110
+#define MULTI_SLATEPORT_TENT_RULES 111
+#define MULTI_FALLARBOR_TENT_RULES 112
+#define MULTI_TAG_MATCH_TYPE 113
+
+// Lilycove SS Tidal Multichoice Selections
+#define SSTIDAL_SELECTION_SLATEPORT 0
+#define SSTIDAL_SELECTION_BATTLE_FRONTIER 1
+#define SSTIDAL_SELECTION_SOUTHERN_ISLAND 2
+#define SSTIDAL_SELECTION_NAVEL_ROCK 3
+#define SSTIDAL_SELECTION_BIRTH_ISLAND 4
+#define SSTIDAL_SELECTION_FARAWAY_ISLAND 5
+#define SSTIDAL_SELECTION_EXIT 6
+#define SSTIDAL_SELECTION_COUNT 7
+
+// Std String Ids
+#define STDSTRING_COOL 0
+#define STDSTRING_BEAUTY 1
+#define STDSTRING_CUTE 2
+#define STDSTRING_SMART 3
+#define STDSTRING_TOUGH 4
+#define STDSTRING_NORMAL 5
+#define STDSTRING_SUPER 6
+#define STDSTRING_HYPER 7
+#define STDSTRING_MASTER 8
+#define STDSTRING_COOL2 9
+#define STDSTRING_BEAUTY2 10
+#define STDSTRING_CUTE2 11
+#define STDSTRING_SMART2 12
+#define STDSTRING_TOUGH2 13
+#define STDSTRING_ITEMS 14
+#define STDSTRING_KEYITEMS 15
+#define STDSTRING_POKEBALLS 16
+#define STDSTRING_TMHMS 17
+#define STDSTRING_BERRIES 18
+#define STDSTRING_SINGLE 19
+#define STDSTRING_DOUBLE 20
+#define STDSTRING_MULTI 21
+#define STDSTRING_MULTI_LINK 22
+#define STDSTRING_BATTLE_TOWER 23
+#define STDSTRING_BATTLE_DOME 24
+#define STDSTRING_BATTLE_FACTORY 25
+#define STDSTRING_BATTLE_PALACE 26
+#define STDSTRING_BATTLE_ARENA 27
+#define STDSTRING_BATTLE_PIKE 28
+#define STDSTRING_BATTLE_PYRAMID 29
+
+#endif //GUARD_SCRIPT_MENU_CONSTANTS_H
diff --git a/include/item.h b/include/item.h
index 881d3a3d4..87ff57bc7 100644
--- a/include/item.h
+++ b/include/item.h
@@ -1,26 +1,7 @@
#ifndef GUARD_ITEM_H
#define GUARD_ITEM_H
-// These constants are used in gItems
-enum
-{
- POCKET_NONE,
- POCKET_ITEMS,
- POCKET_POKE_BALLS,
- POCKET_TM_HM,
- POCKET_BERRIES,
- POCKET_KEY_ITEMS,
-};
-
-enum
-{
- ITEMS_POCKET,
- BALLS_POCKET,
- TMHM_POCKET,
- BERRIES_POCKET,
- KEYITEMS_POCKET,
- POCKETS_COUNT
-};
+#include "constants/item.h"
typedef void (*ItemUseFunc)(u8);
diff --git a/include/pokemon.h b/include/pokemon.h
index 2931f4428..6a34e3cda 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -4,136 +4,6 @@
#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_IS_BAD_EGG 4
-#define MON_DATA_SANITY_HAS_SPECIES 5
-#define MON_DATA_SANITY_IS_EGG 6
-#define MON_DATA_OT_NAME 7
-#define MON_DATA_MARKINGS 8
-#define MON_DATA_CHECKSUM 9
-#define MON_DATA_ENCRYPT_SEPARATOR 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_ABILITY_NUM 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_OBEDIENCE 80
-#define MON_DATA_KNOWN_MOVES 81
-#define MON_DATA_RIBBON_COUNT 82
-#define MON_DATA_RIBBONS 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 OT_ID_RANDOM_NO_SHINY 2
-#define OT_ID_PRESET 1
-#define OT_ID_PLAYER_ID 0
-
-#define MON_GIVEN_TO_PARTY 0x0
-#define MON_GIVEN_TO_PC 0x1
-#define MON_CANT_GIVE 0x2
-
-#define PLAYER_HAS_TWO_USABLE_MONS 0x0
-#define PLAYER_HAS_ONE_MON 0x1
-#define PLAYER_HAS_ONE_USABLE_MON 0x2
-
-#define MON_MALE 0x00
-#define MON_FEMALE 0xFE
-#define MON_GENDERLESS 0xFF
-
-#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 UNOWN_FORM_COUNT 28
-
struct PokemonSubstruct0
{
u16 species;
@@ -348,13 +218,6 @@ struct BattleMove
u8 flags;
};
-#define FLAG_MAKES_CONTACT 0x1
-#define FLAG_PROTECT_AFFECTED 0x2
-#define FLAG_MAGICCOAT_AFFECTED 0x4
-#define FLAG_SNATCH_AFFECTED 0x8
-#define FLAG_MIRROR_MOVE_AFFECTED 0x10
-#define FLAG_KINGSROCK_AFFECTED 0x20
-
struct SpindaSpot
{
u8 x, y;
@@ -367,46 +230,6 @@ struct __attribute__((packed)) LevelUpMove
u16 level:7;
};
-enum
-{
- GROWTH_MEDIUM_FAST,
- GROWTH_ERRATIC,
- GROWTH_FLUCTUATING,
- GROWTH_MEDIUM_SLOW,
- GROWTH_FAST,
- GROWTH_SLOW
-};
-
-enum
-{
- BODY_COLOR_RED,
- BODY_COLOR_BLUE,
- BODY_COLOR_YELLOW,
- BODY_COLOR_GREEN,
- BODY_COLOR_BLACK,
- BODY_COLOR_BROWN,
- BODY_COLOR_PURPLE,
- BODY_COLOR_GRAY,
- BODY_COLOR_WHITE,
- BODY_COLOR_PINK
-};
-
-#define EVO_FRIENDSHIP 0x0001 // Pokémon levels up with friendship ≥ 220
-#define EVO_FRIENDSHIP_DAY 0x0002 // Pokémon levels up during the day with friendship ≥ 220
-#define EVO_FRIENDSHIP_NIGHT 0x0003 // Pokémon levels up at night with friendship ≥ 220
-#define EVO_LEVEL 0x0004 // Pokémon reaches the specified level
-#define EVO_TRADE 0x0005 // Pokémon is traded
-#define EVO_TRADE_ITEM 0x0006 // Pokémon is traded while it's holding the specified item
-#define EVO_ITEM 0x0007 // specified item is used on Pokémon
-#define EVO_LEVEL_ATK_GT_DEF 0x0008 // Pokémon reaches the specified level with attack > defense
-#define EVO_LEVEL_ATK_EQ_DEF 0x0009 // Pokémon reaches the specified level with attack = defense
-#define EVO_LEVEL_ATK_LT_DEF 0x000a // Pokémon reaches the specified level with attack < defense
-#define EVO_LEVEL_SILCOON 0x000b // Pokémon reaches the specified level with a Silcoon personality value
-#define EVO_LEVEL_CASCOON 0x000c // Pokémon reaches the specified level with a Cascoon personality value
-#define EVO_LEVEL_NINJASK 0x000d // Pokémon reaches the specified level (special value for Ninjask)
-#define EVO_LEVEL_SHEDINJA 0x000e // Pokémon reaches the specified level (special value for Shedinja)
-#define EVO_BEAUTY 0x000f // Pokémon levels up with beauty ≥ specified value
-
struct Evolution
{
u16 method;
@@ -414,8 +237,6 @@ struct Evolution
u16 targetSpecies;
};
-#define EVOS_PER_MON 5
-
extern u8 gPlayerPartyCount;
extern struct Pokemon gPlayerParty[PARTY_SIZE];
extern u8 gEnemyPartyCount;
diff --git a/include/script_menu.h b/include/script_menu.h
index efb51870b..086ad147f 100644
--- a/include/script_menu.h
+++ b/include/script_menu.h
@@ -1,20 +1,20 @@
#ifndef GUARD_SCRIPT_MENU_H
#define GUARD_SCRIPT_MENU_H
-extern const u8 *const gUnknown_0858BAF0[];
+extern const u8 *const gStdStrings[];
-bool8 ScriptMenu_Multichoice(u8 left, u8 top, u8 var3, u8 var4);
-bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 var3, u8 var4, u8 var5);
-bool8 ScriptMenu_YesNo(u8 var1, u8 var2);
-bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount);
-bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3);
+bool8 ScriptMenu_Multichoice(u8 left, u8 top, u8 multichoiceId, bool8 ignoreBPress);
+bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 multichoiceId, bool8 ignoreBPress, u8 defaultChoice);
+bool8 ScriptMenu_YesNo(u8 left, u8 top);
+bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, bool8 ignoreBPress, u8 columnCount);
+bool8 ScriptMenu_ShowPokemonPic(u16 species, u8 x, u8 y);
bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void);
-int convert_pixel_width_to_tile_width(int);
-u8 CreateWindowFromRect(u8, u8, u8, u8);
-void ClearToTransparentAndRemoveWindow(u8);
-int display_text_and_get_width(const u8*, int);
-int sub_80E2D5C(int arg0, int tileWidth);
-bool16 ScrSpecial_CreatePCMenu(void);
+int ConvertPixelWidthToTileWidth(int width);
+u8 CreateWindowFromRect(u8 x, u8 y, u8 width, u8 height);
+void ClearToTransparentAndRemoveWindow(u8 windowId);
+int DisplayTextAndGetWidth(const u8* str, int width);
+int ScriptMenu_AdjustLeftCoordFromWidth(int left, int width);
+bool16 ScriptMenu_CreatePCMultichoice(void);
void ScriptMenu_DisplayPCStartupPrompt(void);
#endif //GUARD_SCRIPT_MENU_H
diff --git a/include/strings.h b/include/strings.h
index a7c3106d3..c1414269a 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -1022,36 +1022,31 @@ extern const u8 gText_PokenavRibbons_RibbonListButtons[];
extern const u8 gText_PokenavRibbons_RibbonCheckButtons[];
extern const u8 gText_Number2[];
-extern const u8 gUnknown_085EAD37[];
-extern const u8 gUnknown_085EAD41[];
-extern const u8 gUnknown_085EAD67[];
-extern const u8 gUnknown_085EAD6D[];
-extern const u8 gUnknown_085EAD72[];
-extern const u8 gUnknown_085EAD84[];
-extern const u8 gUnknown_085EAD96[];
-extern const u8 gUnknown_085EADA4[];
-extern const u8 gUnknown_085EADB5[];
-extern const u8 gUnknown_085EADC4[];
-extern const u8 gUnknown_085EADD5[];
-extern const u8 gUnknown_085EADE7[];
-extern const u8 gUnknown_085EADF9[];
-extern const u8 gUnknown_085EAE04[];
-extern const u8 gUnknown_085EAE12[];
-extern const u8 gUnknown_085EAE1B[];
-extern const u8 gUnknown_085EAE27[];
-extern const u8 gUnknown_085EAE2C[];
-extern const u8 gUnknown_085EAE31[];
-extern const u8 gUnknown_085EAE35[];
-extern const u8 gUnknown_085EAE39[];
-extern const u8 gUnknown_085EAE3D[];
-extern const u8 gUnknown_085EAE41[];
-extern const u8 gUnknown_085EAD5F[];
-extern const u8 gUnknown_085EAE53[];
-extern const u8 gUnknown_085EAE5A[];
+extern const u8 gText_Petalburg[];
+extern const u8 gText_Slateport[];
+extern const u8 gText_Enter2[];
+extern const u8 gText_Info2[];
+extern const u8 gText_WhatsAContest[];
+extern const u8 gText_TypesOfContests[];
+extern const u8 gText_Ranks[];
+extern const u8 gText_Decoration2[];
+extern const u8 gText_PackUp[];
+extern const u8 gText_Registry[];
+extern const u8 gText_Information[];
+extern const u8 gText_Mach[];
+extern const u8 gText_Acro[];
+extern const u8 gText_Psn[];
+extern const u8 gText_Par[];
+extern const u8 gText_Slp[];
+extern const u8 gText_Brn[];
+extern const u8 gText_Frz[];
+extern const u8 gText_Dewford[];
+extern const u8 gText_SawIt[];
+extern const u8 gText_NotYet[];
extern const u8 gText_Yes[];
extern const u8 gText_No[];
-extern const u8 gUnknown_085EAEA2[];
-extern const u8 gUnknown_085EAEAC[];
+extern const u8 gText_Challenge[];
+extern const u8 gText_Info3[];
extern const u8 gTrickHouse_Mechadoll_Oddish[];
extern const u8 gTrickHouse_Mechadoll_Poochyena[];
extern const u8 gTrickHouse_Mechadoll_Taillow[];
@@ -1147,65 +1142,64 @@ extern const u8 gText_DexEmptyString[];
extern const u8 gText_DexSearchDontSpecify[];
extern const u8 gText_DexSearchTypeNone[];
-extern const u8 gUnknown_085EAEC3[];
-extern const u8 gUnknown_085EAED6[];
-extern const u8 gUnknown_085EAEE6[];
-extern const u8 gUnknown_085EAEF6[];
-extern const u8 gUnknown_085EAF02[];
-extern const u8 gUnknown_085EAF0E[];
-extern const u8 gUnknown_085EAF1B[];
-extern const u8 gUnknown_085EAF24[];
-extern const u8 gUnknown_085EAF2F[];
-extern const u8 gUnknown_085EAF34[];
-extern const u8 gUnknown_085EAF3E[];
-extern const u8 gUnknown_085EAF4B[];
-extern const u8 gUnknown_085EAF58[];
-extern const u8 gUnknown_085EAF65[];
-extern const u8 gUnknown_085EAF70[];
-extern const u8 gUnknown_085EAF7D[];
-extern const u8 gUnknown_085EAF87[];
-extern const u8 gUnknown_085EAF93[];
-extern const u8 gUnknown_085EAF9F[];
-extern const u8 gUnknown_085EAFAB[];
-extern const u8 gUnknown_085EAFB6[];
-extern const u8 gUnknown_085EAFCF[];
-extern const u8 gUnknown_085EAFE8[];
-extern const u8 gUnknown_085EB089[];
-extern const u8 gUnknown_085EB09C[];
-extern const u8 gUnknown_085EB0AF[];
-extern const u8 gUnknown_085EB0C2[];
-extern const u8 gUnknown_085EB0D5[];
-extern const u8 gUnknown_085EB002[];
-extern const u8 gUnknown_085EB017[];
-extern const u8 gUnknown_085EB02A[];
-extern const u8 gUnknown_085EB034[];
+extern const u8 gText_FreshWaterAndPrice[];
+extern const u8 gText_SodaPopAndPrice[];
+extern const u8 gText_LemonadeAndPrice[];
+extern const u8 gText_HowToRide[];
+extern const u8 gText_HowToTurn[];
+extern const u8 gText_SandySlopes[];
+extern const u8 gText_Wheelies[];
+extern const u8 gText_BunnyHops[];
+extern const u8 gText_Jump[];
+extern const u8 gText_Satisfied[];
+extern const u8 gText_Dissatisfied[];
+extern const u8 gText_DeepSeaTooth[];
+extern const u8 gText_DeepSeaScale[];
+extern const u8 gText_BlueFlute2[];
+extern const u8 gText_YellowFlute2[];
+extern const u8 gText_RedFlute2[];
+extern const u8 gText_WhiteFlute2[];
+extern const u8 gText_BlackFlute2[];
+extern const u8 gText_GlassChair[];
+extern const u8 gText_GlassDesk[];
+extern const u8 gText_TreeckoDollAndPrice[];
+extern const u8 gText_TorchicDollAndPrice[];
+extern const u8 gText_MudkipDollAndPrice[];
+extern const u8 gText_TM32AndPrice[];
+extern const u8 gText_TM29AndPrice[];
+extern const u8 gText_TM35AndPrice[];
+extern const u8 gText_TM24AndPrice[];
+extern const u8 gText_TM13AndPrice[];
+extern const u8 gText_50CoinsAndPrice[];
+extern const u8 gText_500CoinsAndPrice[];
+extern const u8 gText_Excellent2[];
+extern const u8 gText_NotSoGood[];
extern const u8 gText_LilycoveCity[];
-extern const u8 gUnknown_085EB07E[];
-extern const u8 gUnknown_085EB084[];
-extern const u8 gUnknown_085EB040[];
-extern const u8 gUnknown_085EB04A[];
-extern const u8 gUnknown_085EB057[];
-extern const u8 gUnknown_085EB062[];
+extern const u8 gText_Right[];
+extern const u8 gText_Left[];
+extern const u8 gText_RedShard[];
+extern const u8 gText_YellowShard[];
+extern const u8 gText_BlueShard[];
+extern const u8 gText_GreenShard[];
extern const u8 gText_Opponent[];
extern const u8 gText_Tourney_Tree[];
extern const u8 gText_ReadyToStart[];
-extern const u8 gUnknown_085EB5BC[];
-extern const u8 gUnknown_085EB5C3[];
-extern const u8 gUnknown_085EB5C8[];
-extern const u8 gUnknown_085EB29A[];
-extern const u8 gUnknown_085EB2A3[];
-extern const u8 gUnknown_085EB372[];
-extern const u8 gUnknown_085EB37F[];
-extern const u8 gUnknown_085EB389[];
-extern const u8 gUnknown_085EAE6E[];
-extern const u8 gUnknown_085EAE7C[];
-extern const u8 gUnknown_085EAE8A[];
-extern const u8 gUnknown_085EAD6D[];
-extern const u8 gUnknown_085EB397[];
-extern const u8 gUnknown_085EB3A4[];
-extern const u8 gUnknown_085EB3B1[];
-extern const u8 gUnknown_085EB3D4[];
-extern const u8 gUnknown_085EB3C6[];
+extern const u8 gText_Record2[];
+extern const u8 gText_Rest[];
+extern const u8 gText_Retire[];
+extern const u8 gText_RedTent[];
+extern const u8 gText_BlueTent[];
+extern const u8 gText_TradeCenter[];
+extern const u8 gText_Colosseum[];
+extern const u8 gText_RecordCorner[];
+extern const u8 gText_SingleBattle[];
+extern const u8 gText_DoubleBattle[];
+extern const u8 gText_MultiBattle[];
+extern const u8 gText_BerryCrush3[];
+extern const u8 gText_PokemonJump[];
+extern const u8 gText_DodrioBerryPicking[];
+extern const u8 gText_JoinGroup[];
+extern const u8 gText_BecomeLeader[];
extern const u8 gText_NormalRank[];
extern const u8 gText_SuperRank[];
extern const u8 gText_HyperRank[];
@@ -1217,56 +1211,56 @@ extern const u8 gText_AboutE_Mode[];
extern const u8 gText_AboutG_Mode[];
extern const u8 gText_E_Mode[];
extern const u8 gText_G_Mode[];
-extern const u8 gUnknown_085EB278[];
-extern const u8 gUnknown_085EB28A[];
-extern const u8 gUnknown_085EB290[];
-extern const u8 gUnknown_085EB295[];
-extern const u8 gUnknown_085EB2E4[];
-extern const u8 gUnknown_085EB2F0[];
-extern const u8 gUnknown_085EB2FC[];
-extern const u8 gUnknown_085EB3DF[];
-extern const u8 gUnknown_085EB3EA[];
-extern const u8 gUnknown_085EB3F1[];
-extern const u8 gUnknown_085EB3FC[];
-extern const u8 gUnknown_085EB40A[];
-extern const u8 gUnknown_085EB415[];
-extern const u8 gUnknown_085EB41D[];
-extern const u8 gUnknown_085EB424[];
-extern const u8 gUnknown_085EB45C[];
-extern const u8 gUnknown_085EB469[];
-extern const u8 gUnknown_085EB475[];
-extern const u8 gUnknown_085EB482[];
-extern const u8 gUnknown_085EB42F[];
-extern const u8 gUnknown_085EB43A[];
-extern const u8 gUnknown_085EB444[];
-extern const u8 gUnknown_085EB451[];
-extern const u8 gUnknown_085EB48E[];
-extern const u8 gUnknown_085EB496[];
-extern const u8 gUnknown_085EB4A3[];
-extern const u8 gUnknown_085EB4AD[];
-extern const u8 gUnknown_085EB4B9[];
-extern const u8 gUnknown_085EB4C7[];
-extern const u8 gUnknown_085EB4D4[];
-extern const u8 gUnknown_085EB4E0[];
-extern const u8 gUnknown_085EB532[];
-extern const u8 gUnknown_085EB543[];
-extern const u8 gUnknown_085EB555[];
-extern const u8 gUnknown_085EB563[];
-extern const u8 gUnknown_085EB56E[];
-extern const u8 gUnknown_085EB57E[];
-extern const u8 gUnknown_085EB589[];
-extern const u8 gUnknown_085EB5B6[];
-extern const u8 gUnknown_085EE14B[];
-extern const u8 gUnknown_085EE14F[];
-extern const u8 gUnknown_085EB2FF[];
-extern const u8 gUnknown_085EB310[];
-extern const u8 gUnknown_085EB317[];
-extern const u8 gUnknown_085EB31F[];
+extern const u8 gText_Blank[];
+extern const u8 gText_5BP[];
+extern const u8 gText_10BP[];
+extern const u8 gText_15BP[];
+extern const u8 gText_ClawFossil[];
+extern const u8 gText_RootFossil[];
+extern const u8 gText_No4[];
+extern const u8 gText_TwoStyles[];
+extern const u8 gText_Lv50_3[];
+extern const u8 gText_OpenLevel2[];
+extern const u8 gText_MonTypeAndNo[];
+extern const u8 gText_HoldItems[];
+extern const u8 gText_Symbols2[];
+extern const u8 gText_Record3[];
+extern const u8 gText_BattlePts[];
+extern const u8 gText_BattleRules[];
+extern const u8 gText_JudgeMind[];
+extern const u8 gText_JudgeSkill[];
+extern const u8 gText_JudgeBody[];
+extern const u8 gText_TowerInfo[];
+extern const u8 gText_BattleMon[];
+extern const u8 gText_BattleSalon[];
+extern const u8 gText_MultiLink2[];
+extern const u8 gText_Matchup[];
+extern const u8 gText_TourneyTree[];
+extern const u8 gText_DoubleKO[];
+extern const u8 gText_BasicRules[];
+extern const u8 gText_SwapPartners[];
+extern const u8 gText_SwapNumber[];
+extern const u8 gText_SwapNotes[];
+extern const u8 gText_OpenLevel3[];
+extern const u8 gText_PyramidPokemon[];
+extern const u8 gText_PyramidTrainers[];
+extern const u8 gText_PyramidMaze[];
+extern const u8 gText_BattleBag2[];
+extern const u8 gText_PokenavAndBag[];
+extern const u8 gText_HeldItems[];
+extern const u8 gText_PokemonOrder[];
+extern const u8 gText_GoOn[];
+extern const u8 gText_Red[];
+extern const u8 gText_Blue[];
+extern const u8 gText_IllBattleNow[];
+extern const u8 gText_IWon[];
+extern const u8 gText_ILost[];
+extern const u8 gText_IWontTell[];
extern const u8 gText_CaveOfOrigin[];
extern const u8 gText_MtPyre[];
extern const u8 gText_SkyPillar[];
extern const u8 gText_DontRemember[];
-extern const u8 gUnknown_085EB597[];
+extern const u8 gText_BattlePokemon[];
extern const u8 gText_NormalTagMatch[];
extern const u8 gText_VarietyTagMatch[];
extern const u8 gText_UniqueTagMatch[];
@@ -1279,29 +1273,15 @@ extern const u8 gText_TrainerHill2F[];
extern const u8 gText_TrainerHill3F[];
extern const u8 gText_TrainerHill4F[];
-extern const u8 OldaleTown_PokemonCenter_2F_Text_277F1B[];
-extern const u8 OldaleTown_PokemonCenter_2F_Text_277F5A[];
-extern const u8 OldaleTown_PokemonCenter_2F_Text_277F96[];
-extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
-extern const u8 OldaleTown_PokemonCenter_2F_Text_27879F[];
-extern const u8 OldaleTown_PokemonCenter_2F_Text_2787D5[];
-extern const u8 OldaleTown_PokemonCenter_2F_Text_278831[];
-extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
-extern const u8 OldaleTown_PokemonCenter_2F_Text_27879F[];
-extern const u8 OldaleTown_PokemonCenter_2F_Text_2787D5[];
-extern const u8 OldaleTown_PokemonCenter_2F_Text_2787FC[];
-extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
-extern const u8 OldaleTown_PokemonCenter_2F_Text_27879F[];
-extern const u8 OldaleTown_PokemonCenter_2F_Text_2787D5[];
-extern const u8 OldaleTown_PokemonCenter_2F_Text_278831[];
-extern const u8 OldaleTown_PokemonCenter_2F_Text_2787FC[];
-extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
-extern const u8 OldaleTown_PokemonCenter_2F_Text_277F1B[];
-extern const u8 OldaleTown_PokemonCenter_2F_Text_277F5A[];
-extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
-extern const u8 OldaleTown_PokemonCenter_2F_Text_27879F[];
-extern const u8 OldaleTown_PokemonCenter_2F_Text_2787D5[];
-extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
+// Cable Club multichoice text
+extern const u8 CableClub_Text_TradeUsingLinkCable[];
+extern const u8 CableClub_Text_BattleUsingLinkCable[];
+extern const u8 CableClub_Text_RecordCornerUsingLinkCable[];
+extern const u8 CableClub_Text_CancelSelectedItem[];
+extern const u8 CableClub_Text_YouMayTradeHere[];
+extern const u8 CableClub_Text_YouMayBattleHere[];
+extern const u8 CableClub_Text_CanMixRecords[];
+extern const u8 CableClub_Text_CanMakeBerryPowder[];
// Frontier records.
extern const u8 gText_WinStreak[];
diff --git a/include/text.h b/include/text.h
index d3ff663bb..e37773475 100644
--- a/include/text.h
+++ b/include/text.h
@@ -114,6 +114,21 @@
// 0x7
#define TEXT_COLOR_BLUE 0x8
+#define PLACEHOLDER_ID_UNKNOWN 0x0
+#define PLACEHOLDER_ID_PLAYER 0x1
+#define PLACEHOLDER_ID_STRING_VAR_1 0x2
+#define PLACEHOLDER_ID_STRING_VAR_2 0x3
+#define PLACEHOLDER_ID_STRING_VAR_3 0x4
+#define PLACEHOLDER_ID_KUN 0x5
+#define PLACEHOLDER_ID_RIVAL 0x6
+#define PLACEHOLDER_ID_VERSION 0x7
+#define PLACEHOLDER_ID_AQUA 0x8
+#define PLACEHOLDER_ID_MAGMA 0x9
+#define PLACEHOLDER_ID_ARCHIE 0xA
+#define PLACEHOLDER_ID_MAXIE 0xB
+#define PLACEHOLDER_ID_KYOGRE 0xC
+#define PLACEHOLDER_ID_GROUDON 0xD
+
// battle placeholders are located in battle_message.h
#define NUM_TEXT_PRINTERS 32