summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle_tower.h2
-rw-r--r--include/constants/battle_frontier.h41
-rw-r--r--include/constants/battle_setup.h2
-rw-r--r--include/constants/battle_tower.h21
-rw-r--r--include/constants/field_specials.h13
-rw-r--r--include/constants/flags.h10
-rw-r--r--include/constants/items.h16
-rwxr-xr-xinclude/constants/layouts.h2
-rwxr-xr-xinclude/constants/map_groups.h178
-rw-r--r--include/constants/metatile_labels.h4
-rw-r--r--include/constants/trainer_hill.h49
-rw-r--r--include/constants/vars.h6
-rw-r--r--include/event_scripts.h10
-rw-r--r--include/field_specials.h4
-rw-r--r--include/global.h22
-rw-r--r--include/strings.h234
-rw-r--r--include/trainer_hill.h19
17 files changed, 344 insertions, 289 deletions
diff --git a/include/battle_tower.h b/include/battle_tower.h
index 8bc6e6554..2366cac12 100644
--- a/include/battle_tower.h
+++ b/include/battle_tower.h
@@ -48,7 +48,7 @@ extern u16 gUnknown_03006298[];
extern const struct BattleFrontierTrainer *gFacilityTrainers;
extern const struct FacilityMon *gFacilityTrainerMons;
-void sub_8161F74(void);
+void CallBattleTowerFunc(void);
u16 sub_8162548(u8 challengeNum, u8 battleNum);
void SetBattleFacilityTrainerGfxId(u16 trainerId, u8 tempVarId);
void SetEReaderTrainerGfxId(void);
diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h
index b849686f5..54d50c18a 100644
--- a/include/constants/battle_frontier.h
+++ b/include/constants/battle_frontier.h
@@ -46,18 +46,30 @@
#define MAX_BATTLE_FRONTIER_POINTS 9999
-// Frontier Maniac
-#define FRONTIER_MANIAC_BATTLE_TOWER_SINGLES 0
-#define FRONTIER_MANIAC_BATTLE_TOWER_DOUBLES 1
-#define FRONTIER_MANIAC_BATTLE_TOWER_MULTIS 2
-#define FRONTIER_MANIAC_BATTLE_TOWER_LINK_MULTIS 3
-#define FRONTIER_MANIAC_BATTLE_DOME 4
-#define FRONTIER_MANIAC_BATTLE_FACTORY 5
-#define FRONTIER_MANIAC_BATTLE_PALACE 6
-#define FRONTIER_MANIAC_BATTLE_ARENA 7
-#define FRONTIER_MANIAC_BATTLE_PIKE 8
-#define FRONTIER_MANIAC_BATTLE_PYRAMID 9
-#define FRONTIER_MANIAC_FACILITY_COUNT 10
+// These sets of facility ids would be redunant if the order was consistent
+// The order is important for this set so that all the non-link records can be continuous
+#define RANKING_HALL_BATTLE_TOWER_SINGLES 0
+#define RANKING_HALL_BATTLE_TOWER_DOUBLES 1
+#define RANKING_HALL_BATTLE_TOWER_MULTIS 2
+#define RANKING_HALL_BATTLE_DOME 3
+#define RANKING_HALL_BATTLE_PALACE 4
+#define RANKING_HALL_BATTLE_ARENA 5
+#define RANKING_HALL_BATTLE_FACTORY 6
+#define RANKING_HALL_BATTLE_PIKE 7
+#define RANKING_HALL_BATTLE_PYRAMID 8
+#define RANKING_HALL_BATTLE_TOWER_LINK 9
+
+#define FRONTIER_MANIAC_BATTLE_TOWER_SINGLES 0
+#define FRONTIER_MANIAC_BATTLE_TOWER_DOUBLES 1
+#define FRONTIER_MANIAC_BATTLE_TOWER_MULTIS 2
+#define FRONTIER_MANIAC_BATTLE_TOWER_LINK 3
+#define FRONTIER_MANIAC_BATTLE_DOME 4
+#define FRONTIER_MANIAC_BATTLE_FACTORY 5
+#define FRONTIER_MANIAC_BATTLE_PALACE 6
+#define FRONTIER_MANIAC_BATTLE_ARENA 7
+#define FRONTIER_MANIAC_BATTLE_PIKE 8
+#define FRONTIER_MANIAC_BATTLE_PYRAMID 9
+#define FRONTIER_MANIAC_FACILITY_COUNT 10
#define FRONTIER_MANIAC_MESSAGE_COUNT 3
@@ -77,6 +89,11 @@
// For 'ShowFacilityResultsWindow' function which is a part of the 'CallFrontierUtilFunc' special.
#define RESULTS_LINK_CONTEST 7
+#define EXCHANGE_CORNER_DECOR1_CLERK 0
+#define EXCHANGE_CORNER_DECOR2_CLERK 1
+#define EXCHANGE_CORNER_VITAMIN_CLERK 2
+#define EXCHANGE_CORNER_HOLD_ITEM_CLERK 3
+
#define F_EV_SPREAD_HP (1 << 0)
#define F_EV_SPREAD_ATTACK (1 << 1)
#define F_EV_SPREAD_DEFENSE (1 << 2)
diff --git a/include/constants/battle_setup.h b/include/constants/battle_setup.h
index d98e1762f..d825c88bc 100644
--- a/include/constants/battle_setup.h
+++ b/include/constants/battle_setup.h
@@ -13,6 +13,6 @@
#define TRAINER_BATTLE_PYRAMID 9
#define TRAINER_BATTLE_SET_TRAINER_A 10
#define TRAINER_BATTLE_SET_TRAINER_B 11
-#define TRAINER_BATTLE_12 12
+#define TRAINER_BATTLE_HILL 12
#endif // GUARD_CONSTANTS_BATTLE_SETUP_H
diff --git a/include/constants/battle_tower.h b/include/constants/battle_tower.h
new file mode 100644
index 000000000..508656fab
--- /dev/null
+++ b/include/constants/battle_tower.h
@@ -0,0 +1,21 @@
+#ifndef GUARD_CONSTANTS_BATTLE_TOWER_H
+#define GUARD_CONSTANTS_BATTLE_TOWER_H
+
+#define BATTLE_TOWER_FUNC_0 0
+#define BATTLE_TOWER_FUNC_1 1
+#define BATTLE_TOWER_FUNC_2 2
+#define BATTLE_TOWER_FUNC_CHOOSE_TRAINER 3
+#define BATTLE_TOWER_FUNC_4 4
+#define BATTLE_TOWER_FUNC_GIVE_RIBBONS 5
+#define BATTLE_TOWER_FUNC_SAVE 6
+#define BATTLE_TOWER_FUNC_7 7
+#define BATTLE_TOWER_FUNC_NOP 8
+#define BATTLE_TOWER_FUNC_NOP2 9
+#define BATTLE_TOWER_FUNC_10 10
+#define BATTLE_TOWER_FUNC_11 11
+#define BATTLE_TOWER_FUNC_12 12
+#define BATTLE_TOWER_FUNC_13 13
+#define BATTLE_TOWER_FUNC_14 14
+#define BATTLE_TOWER_FUNC_15 15
+
+#endif //GUARD_CONSTANTS_BATTLE_TOWER_H
diff --git a/include/constants/field_specials.h b/include/constants/field_specials.h
index cbc5e96a3..81c173f75 100644
--- a/include/constants/field_specials.h
+++ b/include/constants/field_specials.h
@@ -13,6 +13,19 @@
#define SS_TIDAL_LOCATION_ROUTE124 3
#define SS_TIDAL_LOCATION_ROUTE131 4
+#define SS_TIDAL_BOARD_SLATEPORT 1
+#define SS_TIDAL_DEPART_SLATEPORT 2
+#define SS_TIDAL_HALFWAY_LILYCOVE 3
+#define SS_TIDAL_LAND_LILYCOVE 4
+#define SS_TIDAL_BOARD_LILYCOVE 5
+#define SS_TIDAL_DEPART_LILYCOVE 6
+#define SS_TIDAL_HALFWAY_SLATEPORT 7
+#define SS_TIDAL_LAND_SLATEPORT 8
+#define SS_TIDAL_EXIT_CURRENTS_RIGHT 9
+#define SS_TIDAL_EXIT_CURRENTS_LEFT 10
+
+#define SS_TIDAL_MAX_STEPS 205
+
// Scrollable Multichoice Menus
#define SCROLL_MULTI_NONE 0
#define SCROLL_MULTI_GLASS_WORKSHOP_VENDOR 1
diff --git a/include/constants/flags.h b/include/constants/flags.h
index 8a507e976..1eb8a0673 100644
--- a/include/constants/flags.h
+++ b/include/constants/flags.h
@@ -125,7 +125,7 @@
#define FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT 0x6F
#define FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE 0x70
#define FLAG_UNUSED_RS_LEGENDARY_BATTLE_DONE 0x71 // Unused Flag. Used in R/S to indicate whether player defeated or caught Groudon/Kyogre in Cave of Origin.
-#define FLAG_SCOTT_CALL_NATIONAL_DEX 0x72 // Used in order to activate a phone call from Scott, inviting the player to the SS Tidal.
+#define FLAG_SCOTT_CALL_BATTLE_FRONTIER 0x72 // Used in order to activate a phone call from Scott, inviting the player to the SS Tidal.
#define FLAG_RECEIVED_METEORITE 0x73
#define FLAG_ADVENTURE_STARTED 0x74 // RECEIVED Pokédex.
#define FLAG_DEFEATED_MAGMA_SPACE_CENTER 0x75 // Set when Team Magma is defeated at Mossdeep's Space Center.
@@ -151,7 +151,7 @@
#define FLAG_THANKED_FOR_PLAYING_WITH_WALLY 0x87
#define FLAG_ENABLE_FIRST_WALLY_POKENAV_CALL 0x88 // Set after defeating Wally outside Mauville Gym. Will activate a call later to register Wally.
#define FLAG_RECEIVED_HM01 0x89
-#define FLAG_REGISTER_WINONA_POKENAV 0x8A // Set after obtaining registering Winona, and cleared after Scott's call.
+#define FLAG_SCOTT_CALL_FORTREE_GYM 0x8A // Triggers call from Scott after defeating Winona
#define FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY 0x8B
#define FLAG_RECEIVED_6_SODA_POP 0x8C
#define FLAG_DEFEATED_SEASHORE_HOUSE 0x8D
@@ -363,7 +363,7 @@
#define FLAG_MET_BATTLE_FRONTIER_MANIAC 0x154
#define FLAG_ENTERED_CONTEST 0x155
#define FLAG_MET_SLATEPORT_FANCLUB_CHAIRMAN 0x156
-#define FLAG_MET_BATTLE_FRONTIER_BETTOR 0x157
+#define FLAG_MET_BATTLE_FRONTIER_GAMBLER 0x157
#define FLAG_ENABLE_MR_STONE_POKENAV 0x158
#define FLAG_NURSE_MENTIONS_GOLD_CARD 0x159
#define FLAG_MET_FRONTIER_BEAUTY_MOVE_TUTOR 0x15A
@@ -491,7 +491,7 @@
#define FLAG_MET_SCOTT_IN_EVERGRANDE 0x1CF
#define FLAG_MET_SCOTT_ON_SS_TIDAL 0x1D0
#define FLAG_SCOTT_GIVES_BATTLE_POINTS 0x1D1
-#define FLAG_RECEIVED_STARF_BERRY_FROM_SCOTT 0x1D2
+#define FLAG_COLLECTED_ALL_GOLD_SYMBOLS 0x1D2
#define FLAG_ENABLE_ROXANNE_MATCH_CALL 0x1D3
#define FLAG_ENABLE_BRAWLY_MATCH_CALL 0x1D4
#define FLAG_ENABLE_WATTSON_MATCH_CALL 0x1D5
@@ -934,7 +934,7 @@
#define FLAG_HIDE_ROUTE_116_MR_BRINEY 0x37B
#define FLAG_HIDE_WEATHER_INSTITUTE_1F_WORKERS 0x37C
#define FLAG_HIDE_WEATHER_INSTITUTE_2F_WORKERS 0x37D
-#define FLAG_HIDE_ROUTE_116_TUNNELER 0x37E
+#define FLAG_HIDE_ROUTE_116_WANDAS_BOYFRIEND 0x37E
#define FLAG_HIDE_LILYCOVE_CONTEST_HALL_CONTEST_ATTENDANT_2 0x37F
#define FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_UNKNOWN_0x380 0x380
#define FLAG_HIDE_ROUTE_101_BIRCH 0x381
diff --git a/include/constants/items.h b/include/constants/items.h
index b4e4798fb..db3474a72 100644
--- a/include/constants/items.h
+++ b/include/constants/items.h
@@ -467,18 +467,24 @@
#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY
#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY
+
+// Range of berries given out by various NPCS
#define FIRST_BERRY_MASTER_BERRY ITEM_POMEG_BERRY
#define LAST_BERRY_MASTER_BERRY ITEM_NOMEL_BERRY
#define FIRST_BERRY_MASTER_WIFE_BERRY ITEM_CHERI_BERRY
#define LAST_BERRY_MASTER_WIFE_BERRY ITEM_SITRUS_BERRY
#define FIRST_KIRI_BERRY ITEM_POMEG_BERRY
#define LAST_KIRI_BERRY ITEM_NOMEL_BERRY
+#define FIRST_ROUTE_114_MAN_BERRY ITEM_RAZZ_BERRY
+#define LAST_ROUTE_114_MAN_BERRY ITEM_PINAP_BERRY
-#define NUM_BERRY_MASTER_BERRIES LAST_BERRY_MASTER_BERRY - FIRST_BERRY_MASTER_BERRY + 1
-#define NUM_BERRY_MASTER_BERRIES_SKIPPED FIRST_BERRY_MASTER_BERRY - FIRST_BERRY_INDEX
-#define NUM_BERRY_MASTER_WIFE_BERRIES LAST_BERRY_MASTER_WIFE_BERRY - FIRST_BERRY_MASTER_WIFE_BERRY + 1
-#define NUM_KIRI_BERRIES LAST_KIRI_BERRY - FIRST_KIRI_BERRY + 1
-#define NUM_KIRI_BERRIES_SKIPPED FIRST_KIRI_BERRY - FIRST_BERRY_INDEX
+#define NUM_BERRY_MASTER_BERRIES LAST_BERRY_MASTER_BERRY - FIRST_BERRY_MASTER_BERRY + 1
+#define NUM_BERRY_MASTER_BERRIES_SKIPPED FIRST_BERRY_MASTER_BERRY - FIRST_BERRY_INDEX
+#define NUM_BERRY_MASTER_WIFE_BERRIES LAST_BERRY_MASTER_WIFE_BERRY - FIRST_BERRY_MASTER_WIFE_BERRY + 1
+#define NUM_KIRI_BERRIES LAST_KIRI_BERRY - FIRST_KIRI_BERRY + 1
+#define NUM_KIRI_BERRIES_SKIPPED FIRST_KIRI_BERRY - FIRST_BERRY_INDEX
+#define NUM_ROUTE_114_MAN_BERRIES LAST_ROUTE_114_MAN_BERRY - FIRST_ROUTE_114_MAN_BERRY + 1
+#define NUM_ROUTE_114_MAN_BERRIES_SKIPPED FIRST_ROUTE_114_MAN_BERRY - FIRST_BERRY_INDEX
#define ITEM_TO_BERRY(itemId)(((itemId - FIRST_BERRY_INDEX) + 1))
diff --git a/include/constants/layouts.h b/include/constants/layouts.h
index 5e134b119..fe905a2c6 100755
--- a/include/constants/layouts.h
+++ b/include/constants/layouts.h
@@ -398,7 +398,7 @@
#define LAYOUT_SAFARI_ZONE_SOUTHEAST 395
#define LAYOUT_BATTLE_FRONTIER_RANKING_HALL 396
#define LAYOUT_BATTLE_FRONTIER_LOUNGE1 397
-#define LAYOUT_BATTLE_FRONTIER_BATTLE_POINT_EXCHANGE_SERVICE_CORNER 398
+#define LAYOUT_BATTLE_FRONTIER_EXCHANGE_SERVICE_CORNER 398
#define LAYOUT_BATTLE_FRONTIER_RECEPTION_GATE 399
#define LAYOUT_ARTISAN_CAVE_B1F 400
#define LAYOUT_ARTISAN_CAVE_1F 401
diff --git a/include/constants/map_groups.h b/include/constants/map_groups.h
index 23a8f224f..bedaaca2a 100755
--- a/include/constants/map_groups.h
+++ b/include/constants/map_groups.h
@@ -461,95 +461,95 @@
#define MAP_UNION_ROOM (60 | (25 << 8))
// Map Group 26
-#define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8))
-#define MAP_SAFARI_ZONE_NORTH (1 | (26 << 8))
-#define MAP_SAFARI_ZONE_SOUTHWEST (2 | (26 << 8))
-#define MAP_SAFARI_ZONE_SOUTH (3 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_OUTSIDE_WEST (4 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY (5 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR (6 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR (7 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM (8 | (26 << 8))
-#define MAP_SOUTHERN_ISLAND_EXTERIOR (9 | (26 << 8))
-#define MAP_SOUTHERN_ISLAND_INTERIOR (10 | (26 << 8))
-#define MAP_SAFARI_ZONE_REST_HOUSE (11 | (26 << 8))
-#define MAP_SAFARI_ZONE_NORTHEAST (12 | (26 << 8))
-#define MAP_SAFARI_ZONE_SOUTHEAST (13 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_OUTSIDE_EAST (14 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM (15 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR2 (16 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM2 (17 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY (18 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR (19 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM (20 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM (21 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY (22 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR (23 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM (24 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY (25 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE (26 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP (27 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY (28 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR (29 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM (30 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY (31 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM (32 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM (33 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY (34 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR (35 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM (36 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1 (37 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2 (38 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3 (39 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_RANKING_HALL (40 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE1 (41 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_POINT_EXCHANGE_SERVICE_CORNER (42 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE2 (43 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE3 (44 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE4 (45 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_SCOTTS_HOUSE (46 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE5 (47 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE6 (48 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE7 (49 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_RECEPTION_GATE (50 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE8 (51 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE9 (52 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F (53 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_2F (54 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_MART (55 | (26 << 8))
-#define MAP_FARAWAY_ISLAND_ENTRANCE (56 | (26 << 8))
-#define MAP_FARAWAY_ISLAND_INTERIOR (57 | (26 << 8))
-#define MAP_BIRTH_ISLAND_EXTERIOR (58 | (26 << 8))
-#define MAP_BIRTH_ISLAND_HARBOR (59 | (26 << 8))
-#define MAP_TRAINER_HILL_ENTRANCE (60 | (26 << 8))
-#define MAP_TRAINER_HILL_1F (61 | (26 << 8))
-#define MAP_TRAINER_HILL_2F (62 | (26 << 8))
-#define MAP_TRAINER_HILL_3F (63 | (26 << 8))
-#define MAP_TRAINER_HILL_4F (64 | (26 << 8))
-#define MAP_TRAINER_HILL_ROOF (65 | (26 << 8))
-#define MAP_NAVEL_ROCK_EXTERIOR (66 | (26 << 8))
-#define MAP_NAVEL_ROCK_HARBOR (67 | (26 << 8))
-#define MAP_NAVEL_ROCK_ENTRANCE (68 | (26 << 8))
-#define MAP_NAVEL_ROCK_B1F (69 | (26 << 8))
-#define MAP_NAVEL_ROCK_FORK (70 | (26 << 8))
-#define MAP_NAVEL_ROCK_UP1 (71 | (26 << 8))
-#define MAP_NAVEL_ROCK_UP2 (72 | (26 << 8))
-#define MAP_NAVEL_ROCK_UP3 (73 | (26 << 8))
-#define MAP_NAVEL_ROCK_UP4 (74 | (26 << 8))
-#define MAP_NAVEL_ROCK_TOP (75 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN01 (76 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN02 (77 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN03 (78 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN04 (79 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN05 (80 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN06 (81 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN07 (82 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN08 (83 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN09 (84 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN10 (85 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN11 (86 | (26 << 8))
-#define MAP_NAVEL_ROCK_BOTTOM (87 | (26 << 8))
-#define MAP_TRAINER_HILL_ELEVATOR (88 | (26 << 8))
+#define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8))
+#define MAP_SAFARI_ZONE_NORTH (1 | (26 << 8))
+#define MAP_SAFARI_ZONE_SOUTHWEST (2 | (26 << 8))
+#define MAP_SAFARI_ZONE_SOUTH (3 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_OUTSIDE_WEST (4 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY (5 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR (6 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR (7 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM (8 | (26 << 8))
+#define MAP_SOUTHERN_ISLAND_EXTERIOR (9 | (26 << 8))
+#define MAP_SOUTHERN_ISLAND_INTERIOR (10 | (26 << 8))
+#define MAP_SAFARI_ZONE_REST_HOUSE (11 | (26 << 8))
+#define MAP_SAFARI_ZONE_NORTHEAST (12 | (26 << 8))
+#define MAP_SAFARI_ZONE_SOUTHEAST (13 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_OUTSIDE_EAST (14 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM (15 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR2 (16 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM2 (17 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY (18 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR (19 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM (20 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM (21 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY (22 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR (23 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM (24 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY (25 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE (26 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP (27 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY (28 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR (29 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM (30 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY (31 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM (32 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM (33 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY (34 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR (35 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM (36 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1 (37 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2 (38 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3 (39 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_RANKING_HALL (40 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE1 (41 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_EXCHANGE_SERVICE_CORNER (42 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE2 (43 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE3 (44 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE4 (45 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_SCOTTS_HOUSE (46 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE5 (47 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE6 (48 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE7 (49 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_RECEPTION_GATE (50 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE8 (51 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE9 (52 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F (53 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_2F (54 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_MART (55 | (26 << 8))
+#define MAP_FARAWAY_ISLAND_ENTRANCE (56 | (26 << 8))
+#define MAP_FARAWAY_ISLAND_INTERIOR (57 | (26 << 8))
+#define MAP_BIRTH_ISLAND_EXTERIOR (58 | (26 << 8))
+#define MAP_BIRTH_ISLAND_HARBOR (59 | (26 << 8))
+#define MAP_TRAINER_HILL_ENTRANCE (60 | (26 << 8))
+#define MAP_TRAINER_HILL_1F (61 | (26 << 8))
+#define MAP_TRAINER_HILL_2F (62 | (26 << 8))
+#define MAP_TRAINER_HILL_3F (63 | (26 << 8))
+#define MAP_TRAINER_HILL_4F (64 | (26 << 8))
+#define MAP_TRAINER_HILL_ROOF (65 | (26 << 8))
+#define MAP_NAVEL_ROCK_EXTERIOR (66 | (26 << 8))
+#define MAP_NAVEL_ROCK_HARBOR (67 | (26 << 8))
+#define MAP_NAVEL_ROCK_ENTRANCE (68 | (26 << 8))
+#define MAP_NAVEL_ROCK_B1F (69 | (26 << 8))
+#define MAP_NAVEL_ROCK_FORK (70 | (26 << 8))
+#define MAP_NAVEL_ROCK_UP1 (71 | (26 << 8))
+#define MAP_NAVEL_ROCK_UP2 (72 | (26 << 8))
+#define MAP_NAVEL_ROCK_UP3 (73 | (26 << 8))
+#define MAP_NAVEL_ROCK_UP4 (74 | (26 << 8))
+#define MAP_NAVEL_ROCK_TOP (75 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN01 (76 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN02 (77 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN03 (78 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN04 (79 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN05 (80 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN06 (81 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN07 (82 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN08 (83 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN09 (84 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN10 (85 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN11 (86 | (26 << 8))
+#define MAP_NAVEL_ROCK_BOTTOM (87 | (26 << 8))
+#define MAP_TRAINER_HILL_ELEVATOR (88 | (26 << 8))
// Map Group 27
#define MAP_ROUTE104_PROTOTYPE (0 | (27 << 8))
diff --git a/include/constants/metatile_labels.h b/include/constants/metatile_labels.h
index c3ec28406..58ac90eab 100644
--- a/include/constants/metatile_labels.h
+++ b/include/constants/metatile_labels.h
@@ -149,8 +149,8 @@
#define METATILE_Fortree_SecretBase_LongGrass_BottomLeft 0x281
#define METATILE_Fortree_SecretBase_LongGrass_BottomMid 0x282
#define METATILE_Fortree_SecretBase_LongGrass_BottomRight 0x283
-#define METATILE_Fortree_WoodBridge_Kecleon0 0x297
-#define METATILE_Fortree_WoodBridge_Kecleon1 0x29F
+#define METATILE_Fortree_WoodBridge1_Top 0x297
+#define METATILE_Fortree_WoodBridge1_Bottom 0x29F
// gTileset_Sootopolis
#define METATILE_Sootopolis_Door_Closed 0x248
diff --git a/include/constants/trainer_hill.h b/include/constants/trainer_hill.h
index cab56a5ac..f7a270428 100644
--- a/include/constants/trainer_hill.h
+++ b/include/constants/trainer_hill.h
@@ -1,27 +1,46 @@
#ifndef GUARD_CONSTANTS_TRAINER_HILL_H
#define GUARD_CONSTANTS_TRAINER_HILL_H
+#define TRAINER_HILL_1F 1
+#define TRAINER_HILL_2F 2
+#define TRAINER_HILL_3F 3
+#define TRAINER_HILL_4F 4
+#define TRAINER_HILL_ROOF 5
+#define TRAINER_HILL_ENTRANCE 6
+
+#define NUM_TRAINER_HILL_FLOORS 4
+#define NUM_TRAINER_HILL_FLOORS_JP 2
+
+#define NUM_TRAINER_HILL_PRIZE_LISTS 10
+
#define TRAINER_HILL_FUNC_START 0
-#define TRAINER_HILL_FUNC_1 1
-#define TRAINER_HILL_FUNC_2 2
-#define TRAINER_HILL_FUNC_3 3
+#define TRAINER_HILL_FUNC_GET_OWNER_STATE 1
+#define TRAINER_HILL_FUNC_GIVE_PRIZE 2
+#define TRAINER_HILL_FUNC_CHECK_FINAL_TIME 3
#define TRAINER_HILL_FUNC_RESUME_TIMER 4
#define TRAINER_HILL_FUNC_SET_LOST 5
#define TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS 6
-#define TRAINER_HILL_FUNC_7 7
-#define TRAINER_HILL_FUNC_8 8
-#define TRAINER_HILL_FUNC_9 9
-#define TRAINER_HILL_FUNC_IS_IN 10
-#define TRAINER_HILL_FUNC_11 11
-#define TRAINER_HILL_FUNC_12 12
-#define TRAINER_HILL_FUNC_13 13
-#define TRAINER_HILL_FUNC_14 14
-#define TRAINER_HILL_FUNC_15 15
-#define TRAINER_HILL_FUNC_16 16
+#define TRAINER_HILL_FUNC_GET_CHALLENGE_TIME 7
+#define TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED 8
+#define TRAINER_HILL_FUNC_CLEAR_RESULT 9
+#define TRAINER_HILL_FUNC_IN_CHALLENGE 10
+#define TRAINER_HILL_FUNC_POST_BATTLE_TEXT 11
+#define TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS 12
+#define TRAINER_HILL_FUNC_GET_GAME_SAVED 13
+#define TRAINER_HILL_FUNC_SET_GAME_SAVED 14
+#define TRAINER_HILL_FUNC_CLEAR_GAME_SAVED 15
+#define TRAINER_HILL_FUNC_GET_WON 16
#define TRAINER_HILL_FUNC_SET_TAG 17
-// Values returned by the TrainerHillGetChallengeStatus
-// function.
+#define TRAINER_HILL_TEXT_INTRO 2
+#define TRAINER_HILL_TEXT_PLAYER_LOST 3
+#define TRAINER_HILL_TEXT_PLAYER_WON 4
+#define TRAINER_HILL_TEXT_AFTER 5
+
+#define NUM_TRAINER_HILL_TRAINERS (NUM_TRAINER_HILL_FLOORS * 2)
+#define NUM_TRAINER_HILL_TRAINERS_JP (NUM_TRAINER_HILL_FLOORS_JP * 2)
+
+// Values returned by TrainerHillGetChallengeStatus
#define TRAINER_HILL_PLAYER_STATUS_LOST 0
#define TRAINER_HILL_PLAYER_STATUS_ECARD_SCANNED 1
#define TRAINER_HILL_PLAYER_STATUS_NORMAL 2
diff --git a/include/constants/vars.h b/include/constants/vars.h
index 0d217b192..c2865a37a 100644
--- a/include/constants/vars.h
+++ b/include/constants/vars.h
@@ -194,7 +194,7 @@
#define VAR_TRICK_HOUSE_PUZZLE_7_STATE 0x40B1
#define VAR_TRICK_HOUSE_PUZZLE_8_STATE 0x40B2
#define VAR_WEATHER_INSTITUTE_STATE 0x40B3
-#define VAR_PORTHOLE_STATE 0x40B4
+#define VAR_SS_TIDAL_STATE 0x40B4
#define VAR_TRICK_HOUSE_ENTER_FROM_CORRIDOR 0x40B5
#define VAR_TRICK_HOUSE_PUZZLE_7_STATE_2 0x40B6 // Leftover from RS, never set
#define VAR_SLATEPORT_FAN_CLUB_STATE 0x40B7
@@ -257,9 +257,9 @@
#define VAR_SECRET_BASE_IS_NOT_LOCAL 0x40F0 // Set to TRUE while in another player's secret base.
#define VAR_DAILY_BP 0x40F1
#define VAR_WALLY_CALL_STEP_COUNTER 0x40F2
-#define VAR_WINONA_CALL_STEP_COUNTER 0x40F3
+#define VAR_SCOTT_FORTREE_CALL_STEP_COUNTER 0x40F3
#define VAR_ROXANNE_CALL_STEP_COUNTER 0x40F4
-#define VAR_SCOTT_CALL_STEP_COUNTER 0x40F5
+#define VAR_SCOTT_BF_CALL_STEP_COUNTER 0x40F5
#define VAR_RIVAL_RAYQUAZA_CALL_STEP_COUNTER 0x40F6
#define VAR_UNUSED_0x40F7 0x40F7 // Unused Var
#define VAR_UNUSED_0x40F8 0x40F8 // Unused Var
diff --git a/include/event_scripts.h b/include/event_scripts.h
index 2d52b3d04..3e4251cf6 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -383,10 +383,6 @@ extern const u8 EventScript_FldEffRockSmash[];
extern const u8 LittlerootTown_BrendansHouse_2F_EventScript_TurnOffPlayerPC[];
extern const u8 LittlerootTown_MaysHouse_2F_EventScript_TurnOffPlayerPC[];
-//contest_strings
-extern const u8 gText_0827D507[];
-extern const u8 gText_0827D531[];
-
//mauville_old_man
extern const u8 gOtherText_Is[];
extern const u8 gOtherText_DontYouAgree[];
@@ -553,11 +549,11 @@ extern const u8 EventScript_EggHatch[];
extern const u8 UnusualWeather_EventScript_EndEventAndCleanup_1[];
extern const u8 IslandCave_EventScript_OpenRegiEntrance[];
extern const u8 MauvilleCity_EventScript_RegisterWallyCall[];
-extern const u8 Route119_EventScript_1F49EC[];
+extern const u8 Route119_EventScript_ScottWonAtFortreeGymCall[];
extern const u8 LittlerootTown_ProfessorBirchsLab_EventScript_ScottAboardSSTidalCall[];
extern const u8 RustboroCity_Gym_EventScript_RegisterRoxanne[];
extern const u8 MossdeepCity_SpaceCenter_2F_EventScript_RivalRayquazaCall[];
-extern const u8 SSTidalCorridor_EventScript_23C050[];
+extern const u8 SSTidalCorridor_EventScript_ReachedStepCount[];
extern const u8 EventScript_FallDownHoleMtPyre[];
// Secret Base
@@ -586,6 +582,6 @@ extern const u8 SecretBase_EventScript_TreeUseSecretPower[];
extern const u8 SecretBase_EventScript_ShrubUseSecretPower[];
// trainer hill
-extern const u8 EventScript_2C83F0[];
+extern const u8 TrainerHill_EventScript_TrainerBattle[];
#endif // GUARD_EVENT_SCRIPTS_H
diff --git a/include/field_specials.h b/include/field_specials.h
index 952081e93..3529290a6 100644
--- a/include/field_specials.h
+++ b/include/field_specials.h
@@ -13,8 +13,8 @@ void IncrementBirthIslandRockStepCount(void);
bool8 UnusualWeatherHasExpired(void);
bool8 ShouldDoBrailleRegicePuzzle(void);
bool32 ShouldDoWallyCall(void);
-bool32 ShouldDoWinonaCall(void);
-bool32 ShouldDoScottCall(void);
+bool32 ShouldDoScottFortreeCall(void);
+bool32 ShouldDoScottBattleFrontierCall(void);
bool32 ShouldDoRoxanneCall(void);
bool32 ShouldDoRivalRayquazaCall(void);
bool32 CountSSTidalStep(u16 delta);
diff --git a/include/global.h b/include/global.h
index 9b98629cf..f067f5bbc 100644
--- a/include/global.h
+++ b/include/global.h
@@ -393,11 +393,11 @@ struct BattleFrontier
/*0xEBA*/ u16 field_EBA;
/*0xEBC*/ u32 battlesCount;
/*0xEC0*/ u16 field_EC0[16];
- /*0xEE0*/ u8 field_EE0;
+ /*0xEE0*/ u8 trainerFlags;
/*0xEE1*/ u8 opponentName[2][PLAYER_NAME_LENGTH + 1];
/*0xEF1*/ u8 field_EF1[2][4];
- /*0xEF9*/ u8 field_EF9_0:7;
- /*0xEF9*/ u8 field_EF9_1:1;
+ /*0xEF9*/ u8 unk_EF9:7;
+ /*0xEF9*/ u8 savedGame:1;
/*0xEFA*/ u8 field_EFA;
/*0xEFB*/ u8 field_EFB;
/*0xEFC*/ struct FrontierMonData field_EFC[3];
@@ -808,15 +808,15 @@ struct SaveTrainerHill
{
/*0x3D64*/ u32 timer;
/*0x3D68*/ u32 bestTime;
- /*0x3D6C*/ u8 field_3D6C;
+ /*0x3D6C*/ u8 unk_3D6C;
/*0x3D6D*/ u8 unused;
- /*0x3D6E*/ u16 field_3D6E_0a:1; // 1
- /*0x3D6E*/ u16 field_3D6E_0b:1; // 2
- /*0x3D6E*/ u16 field_3D6E_0c:1; // 4
- /*0x3D6E*/ u16 hasLost:1; // 8
- /*0x3D6E*/ u16 maybeECardScanDuringChallenge:1; // x10
- /*0x3D6E*/ u16 field_3D6E_0f:1; // x20
- /*0x3D6E*/ u16 tag:2; // x40, x80 = xC0
+ /*0x3D6E*/ u16 receivedPrize:1;
+ /*0x3D6E*/ u16 checkedFinalTime:1;
+ /*0x3D6E*/ u16 spokeToOwner:1;
+ /*0x3D6E*/ u16 hasLost:1;
+ /*0x3D6E*/ u16 maybeECardScanDuringChallenge:1;
+ /*0x3D6E*/ u16 field_3D6E_0f:1;
+ /*0x3D6E*/ u16 tag:2;
};
struct MysteryEventStruct
diff --git a/include/strings.h b/include/strings.h
index cdd02aa28..43b87e888 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -583,6 +583,8 @@ extern const u8 gText_BigGirl[];
extern const u8 gText_Son[];
extern const u8 gText_Daughter[];
+// Multichoice strings
+extern const u8 gText_Exit[];
extern const u8 gText_1F[];
extern const u8 gText_2F[];
extern const u8 gText_3F[];
@@ -601,8 +603,6 @@ extern const u8 gText_B4F[];
extern const u8 gText_Rooftop[];
extern const u8 gText_ElevatorNowOn[];
-extern const u8 gText_Exit[];
-
extern const u8 gText_BlueFlute[];
extern const u8 gText_YellowFlute[];
extern const u8 gText_RedFlute[];
@@ -610,7 +610,6 @@ extern const u8 gText_WhiteFlute[];
extern const u8 gText_BlackFlute[];
extern const u8 gText_PrettyChair[];
extern const u8 gText_PrettyDesk[];
-extern const u8 gText_Exit[];
extern const u8 gText_0Pts[];
extern const u8 gText_10Pts[];
@@ -635,14 +634,12 @@ extern const u8 gText_DittoDoll48BP[];
extern const u8 gText_CyndaquilDoll80BP[];
extern const u8 gText_ChikoritaDoll80BP[];
extern const u8 gText_TotodileDoll80BP[];
-extern const u8 gText_Exit[];
extern const u8 gText_LaprasDoll128BP[];
extern const u8 gText_SnorlaxDoll128BP[];
extern const u8 gText_VenusaurDoll256BP[];
extern const u8 gText_CharizardDoll256BP[];
extern const u8 gText_BlastoiseDoll256BP[];
-extern const u8 gText_Exit[];
extern const u8 gText_Protein1BP[];
extern const u8 gText_Calcium1BP[];
@@ -650,7 +647,6 @@ extern const u8 gText_Iron1BP[];
extern const u8 gText_Zinc1BP[];
extern const u8 gText_Carbos1BP[];
extern const u8 gText_HpUp1BP[];
-extern const u8 gText_Exit[];
extern const u8 gText_Leftovers48BP[];
extern const u8 gText_WhiteHerb48BP[];
@@ -661,7 +657,6 @@ extern const u8 gText_ChoiceBand64BP[];
extern const u8 gText_KingsRock64BP[];
extern const u8 gText_FocusBand64BP[];
extern const u8 gText_ScopeLens64BP[];
-extern const u8 gText_Exit[];
extern const u8 gText_EnergyPowder50[];
extern const u8 gText_EnergyRoot80[];
@@ -674,7 +669,6 @@ extern const u8 gText_Calcium1000[];
extern const u8 gText_Zinc1000[];
extern const u8 gText_HPUp1000[];
extern const u8 gText_PPUp3000[];
-extern const u8 gText_Exit[];
extern const u8 gText_BattleTower2[];
extern const u8 gText_BattleDome[];
@@ -685,8 +679,8 @@ extern const u8 gText_BattlePike[];
extern const u8 gText_BattlePyramid[];
extern const u8 gText_RankingHall[];
extern const u8 gText_ExchangeService[];
-extern const u8 gText_Exit[];
+// Battle Frontier Move Tutors
extern const u8 gText_Softboiled16BP[];
extern const u8 gText_SeismicToss24BP[];
extern const u8 gText_DreamEater24BP[];
@@ -697,8 +691,6 @@ extern const u8 gText_RockSlide48BP[];
extern const u8 gText_Counter48BP[];
extern const u8 gText_ThunderWave48BP[];
extern const u8 gText_SwordsDance48BP[];
-extern const u8 gText_Exit[];
-
extern const u8 gText_DefenseCurl16BP[];
extern const u8 gText_Snore24BP[];
extern const u8 gText_MudSlap24BP[];
@@ -709,7 +701,6 @@ extern const u8 gText_PsychUp48BP[];
extern const u8 gText_IcePunch48BP[];
extern const u8 gText_ThunderPunch48BP[];
extern const u8 gText_FirePunch48BP[];
-extern const u8 gText_Exit[];
extern const u8 gText_SlateportCity[];
extern const u8 gText_BattleFrontier[];
@@ -717,7 +708,6 @@ extern const u8 gText_SouthernIsland[];
extern const u8 gText_NavelRock[];
extern const u8 gText_BirthIsland[];
extern const u8 gText_FarawayIsland[];
-extern const u8 gText_Exit[];
extern const u8 gText_BattleTrainers[];
extern const u8 gText_BattleBasics[];
@@ -725,38 +715,34 @@ extern const u8 gText_PokemonNature[];
extern const u8 gText_PokemonMoves[];
extern const u8 gText_Underpowered[];
extern const u8 gText_WhenInDanger[];
-extern const u8 gText_Exit[];
-extern const u8 BattleFrontier_Lounge2_Text_260971[];
-extern const u8 BattleFrontier_Lounge2_Text_260A1E[];
-extern const u8 BattleFrontier_Lounge2_Text_260AE7[];
-extern const u8 BattleFrontier_Lounge2_Text_2619AC[];
-extern const u8 BattleFrontier_Lounge2_Text_261A91[];
-extern const u8 BattleFrontier_Lounge2_Text_261B0C[];
-extern const u8 BattleFrontier_Lounge2_Text_261B95[];
-extern const u8 BattleFrontier_Lounge2_Text_261B95[];
-extern const u8 BattleFrontier_Lounge2_Text_261B95[];
-extern const u8 BattleFrontier_Lounge2_Text_261C1A[];
-extern const u8 BattleFrontier_Lounge2_Text_261C1A[];
-extern const u8 BattleFrontier_Lounge2_Text_261C1A[];
-extern const u8 BattleFrontier_Lounge2_Text_260BC4[];
-extern const u8 BattleFrontier_Lounge2_Text_260C6D[];
-extern const u8 BattleFrontier_Lounge2_Text_260D3A[];
-extern const u8 BattleFrontier_Lounge2_Text_260E1E[];
-extern const u8 BattleFrontier_Lounge2_Text_260EC7[];
-extern const u8 BattleFrontier_Lounge2_Text_260F74[];
-extern const u8 BattleFrontier_Lounge2_Text_2614E6[];
-extern const u8 BattleFrontier_Lounge2_Text_261591[];
-extern const u8 BattleFrontier_Lounge2_Text_26166F[];
-extern const u8 BattleFrontier_Lounge2_Text_261282[];
-extern const u8 BattleFrontier_Lounge2_Text_261329[];
-extern const u8 BattleFrontier_Lounge2_Text_261403[];
-extern const u8 BattleFrontier_Lounge2_Text_261026[];
-extern const u8 BattleFrontier_Lounge2_Text_2610CC[];
-extern const u8 BattleFrontier_Lounge2_Text_261194[];
-extern const u8 BattleFrontier_Lounge2_Text_26174D[];
-extern const u8 BattleFrontier_Lounge2_Text_2617F9[];
-extern const u8 BattleFrontier_Lounge2_Text_2618C4[];
+// Battle Frontier Maniac
+extern const u8 BattleFrontier_Lounge2_Text_SalonMaidenIsThere[];
+extern const u8 BattleFrontier_Lounge2_Text_SalonMaidenSilverMons[];
+extern const u8 BattleFrontier_Lounge2_Text_SalonMaidenGoldMons[];
+extern const u8 BattleFrontier_Lounge2_Text_DoubleBattleAdvice1[];
+extern const u8 BattleFrontier_Lounge2_Text_DoubleBattleAdvice2[];
+extern const u8 BattleFrontier_Lounge2_Text_DoubleBattleAdvice3[];
+extern const u8 BattleFrontier_Lounge2_Text_MultiBattleAdvice[];
+extern const u8 BattleFrontier_Lounge2_Text_LinkMultiBattleAdvice[];
+extern const u8 BattleFrontier_Lounge2_Text_DomeAceIsThere[];
+extern const u8 BattleFrontier_Lounge2_Text_DomeAceSilverMons[];
+extern const u8 BattleFrontier_Lounge2_Text_DomeAceGoldMons[];
+extern const u8 BattleFrontier_Lounge2_Text_FactoryHeadIsThere[];
+extern const u8 BattleFrontier_Lounge2_Text_FactoryHeadSilverMons[];
+extern const u8 BattleFrontier_Lounge2_Text_FactoryHeadGoldMons[];
+extern const u8 BattleFrontier_Lounge2_Text_PalaceMavenIsThere[];
+extern const u8 BattleFrontier_Lounge2_Text_PalaceMavenSilverMons[];
+extern const u8 BattleFrontier_Lounge2_Text_PalaceMavenGoldMons[];
+extern const u8 BattleFrontier_Lounge2_Text_ArenaTycoonIsThere[];
+extern const u8 BattleFrontier_Lounge2_Text_ArenaTycoonSilverMons[];
+extern const u8 BattleFrontier_Lounge2_Text_ArenaTycoonGoldMons[];
+extern const u8 BattleFrontier_Lounge2_Text_PikeQueenIsThere[];
+extern const u8 BattleFrontier_Lounge2_Text_PikeQueenSilverMons[];
+extern const u8 BattleFrontier_Lounge2_Text_PikeQueenGoldMons[];
+extern const u8 BattleFrontier_Lounge2_Text_PyramidKingIsThere[];
+extern const u8 BattleFrontier_Lounge2_Text_PyramidKingSilverMons[];
+extern const u8 BattleFrontier_Lounge2_Text_PyramidKingGoldMons[];
// Battle Frontier Nature Girl
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlHardy[];
@@ -782,85 +768,83 @@ extern const u8 BattleFrontier_Lounge5_Text_NatureGirlGentle[];
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlSassy[];
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlCareful[];
-extern const u8 BattleFrontier_Lounge3_Text_262261[];
-extern const u8 BattleFrontier_Lounge3_Text_26230D[];
-extern const u8 BattleFrontier_Lounge3_Text_2623B9[];
-extern const u8 BattleFrontier_Lounge3_Text_262464[];
-extern const u8 BattleFrontier_Lounge3_Text_26250E[];
-extern const u8 BattleFrontier_Lounge3_Text_2625B8[];
-extern const u8 BattleFrontier_Lounge3_Text_26266A[];
-extern const u8 BattleFrontier_Lounge3_Text_26271C[];
-extern const u8 BattleFrontier_Lounge3_Text_2627C9[];
-extern const u8 BattleFrontier_Lounge3_Text_262876[];
-extern const u8 BattleFrontier_Lounge3_Text_26291A[];
-extern const u8 BattleFrontier_Lounge3_Text_2629BC[];
-
-extern const u8 BattleFrontier_Lounge3_Text_262C04[];
-extern const u8 BattleFrontier_Lounge3_Text_262C90[];
-extern const u8 BattleFrontier_Lounge3_Text_262D1C[];
-extern const u8 BattleFrontier_Lounge3_Text_262DA7[];
-extern const u8 BattleFrontier_Lounge3_Text_262E34[];
-extern const u8 BattleFrontier_Lounge3_Text_262EC1[];
-extern const u8 BattleFrontier_Lounge3_Text_262F56[];
-extern const u8 BattleFrontier_Lounge3_Text_262FEB[];
-extern const u8 BattleFrontier_Lounge3_Text_263078[];
-extern const u8 BattleFrontier_Lounge3_Text_263105[];
-extern const u8 BattleFrontier_Lounge3_Text_26318C[];
-extern const u8 BattleFrontier_Lounge3_Text_263211[];
+// Battle Frontier Gambler
+extern const u8 BattleFrontier_Lounge3_Text_ChallengeBattleTowerSingle[];
+extern const u8 BattleFrontier_Lounge3_Text_ChallengeBattleTowerDouble[];
+extern const u8 BattleFrontier_Lounge3_Text_ChallengeBattleTowerMulti[];
+extern const u8 BattleFrontier_Lounge3_Text_ChallengeBattleDomeSingle[];
+extern const u8 BattleFrontier_Lounge3_Text_ChallengeBattleDomeDouble[];
+extern const u8 BattleFrontier_Lounge3_Text_ChallengeBattleFactorySingle[];
+extern const u8 BattleFrontier_Lounge3_Text_ChallengeBattleFactoryDouble[];
+extern const u8 BattleFrontier_Lounge3_Text_ChallengeBattlePalaceSingle[];
+extern const u8 BattleFrontier_Lounge3_Text_ChallengeBattlePalaceDouble[];
+extern const u8 BattleFrontier_Lounge3_Text_ChallengeBattleArena[];
+extern const u8 BattleFrontier_Lounge3_Text_ChallengeBattlePike[];
+extern const u8 BattleFrontier_Lounge3_Text_ChallengeBattlePyramid[];
+extern const u8 BattleFrontier_Lounge3_Text_GetToBattleTowerSingle[];
+extern const u8 BattleFrontier_Lounge3_Text_GetToBattleTowerDouble[];
+extern const u8 BattleFrontier_Lounge3_Text_GetToBattleTowerMulti[];
+extern const u8 BattleFrontier_Lounge3_Text_GetToBattleDomeSingle[];
+extern const u8 BattleFrontier_Lounge3_Text_GetToBattleDomeDouble[];
+extern const u8 BattleFrontier_Lounge3_Text_GetToBattleFactorySingle[];
+extern const u8 BattleFrontier_Lounge3_Text_GetToBattleFactoryDouble[];
+extern const u8 BattleFrontier_Lounge3_Text_GetToBattlePalaceSingle[];
+extern const u8 BattleFrontier_Lounge3_Text_GetToBattlePalaceDouble[];
+extern const u8 BattleFrontier_Lounge3_Text_GetToBattleArena[];
+extern const u8 BattleFrontier_Lounge3_Text_GetToBattlePike[];
+extern const u8 BattleFrontier_Lounge3_Text_GetToBattlePyramid[];
extern const u8 gText_BP[];
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2601AA[];
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2601D0[];
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260201[];
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26022F[];
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26025B[];
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260287[];
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2602B5[];
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2602E0[];
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26030F[];
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26033E[];
-
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C[];
-
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260397[];
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2603BE[];
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2603E6[];
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26040E[];
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260436[];
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26045C[];
-
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26047A[];
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2604AC[];
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2604D8[];
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26050F[];
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260542[];
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260575[];
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2605A8[];
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2605E2[];
-extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260613[];
-
-extern const u8 BattleFrontier_Lounge7_Text_265E30[];
-extern const u8 BattleFrontier_Lounge7_Text_265E5B[];
-extern const u8 BattleFrontier_Lounge7_Text_265E8A[];
-extern const u8 BattleFrontier_Lounge7_Text_265EC0[];
-extern const u8 BattleFrontier_Lounge7_Text_265EED[];
-extern const u8 BattleFrontier_Lounge7_Text_265F1C[];
-extern const u8 BattleFrontier_Lounge7_Text_265F47[];
-extern const u8 BattleFrontier_Lounge7_Text_265F77[];
-extern const u8 BattleFrontier_Lounge7_Text_265FAA[];
-extern const u8 BattleFrontier_Lounge7_Text_265FDD[];
-
-extern const u8 BattleFrontier_Lounge7_Text_26600A[];
-extern const u8 BattleFrontier_Lounge7_Text_26603E[];
-extern const u8 BattleFrontier_Lounge7_Text_266070[];
-extern const u8 BattleFrontier_Lounge7_Text_2660A6[];
-extern const u8 BattleFrontier_Lounge7_Text_2660D0[];
-extern const u8 BattleFrontier_Lounge7_Text_2660FF[];
-extern const u8 BattleFrontier_Lounge7_Text_26612D[];
-extern const u8 BattleFrontier_Lounge7_Text_26615F[];
-extern const u8 BattleFrontier_Lounge7_Text_266185[];
-extern const u8 BattleFrontier_Lounge7_Text_2661B5[];
+// Battle Frontier Exchange Corner
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_KissPosterDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_KissCushionDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_SmoochumDollDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_TogepiDollDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_MeowthDollDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_ClefairyDollDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_DittoDollDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_CyndaquilDollDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_ChikoritaDollDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_TotodileDollDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_LargeDollDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_ProteinDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_CalciumDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_IronDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_ZincDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_CarbosDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_HPUpDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_LeftoversDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_WhiteHerbDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_QuickClawDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_MentalHerbDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_BrightpowderDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_ChoiceBandDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_KingsRockDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_FocusBandDesc[];
+extern const u8 BattleFrontier_ExchangeServiceCorner_Text_ScopeLensDesc[];
+
+// Battle Frontier Move Tutors
+extern const u8 BattleFrontier_Lounge7_Text_SoftboiledDesc[];
+extern const u8 BattleFrontier_Lounge7_Text_SeismicTossDesc[];
+extern const u8 BattleFrontier_Lounge7_Text_DreamEaterDesc[];
+extern const u8 BattleFrontier_Lounge7_Text_MegaPunchDesc[];
+extern const u8 BattleFrontier_Lounge7_Text_MegaKickDesc[];
+extern const u8 BattleFrontier_Lounge7_Text_BodySlamDesc[];
+extern const u8 BattleFrontier_Lounge7_Text_RockSlideDesc[];
+extern const u8 BattleFrontier_Lounge7_Text_CounterDesc[];
+extern const u8 BattleFrontier_Lounge7_Text_ThunderWaveDesc[];
+extern const u8 BattleFrontier_Lounge7_Text_SwordsDanceDesc[];
+extern const u8 BattleFrontier_Lounge7_Text_DefenseCurlDesc[];
+extern const u8 BattleFrontier_Lounge7_Text_SnoreDesc[];
+extern const u8 BattleFrontier_Lounge7_Text_MudSlapDesc[];
+extern const u8 BattleFrontier_Lounge7_Text_SwiftDesc[];
+extern const u8 BattleFrontier_Lounge7_Text_IcyWindDesc[];
+extern const u8 BattleFrontier_Lounge7_Text_EndureDesc[];
+extern const u8 BattleFrontier_Lounge7_Text_PsychUpDesc[];
+extern const u8 BattleFrontier_Lounge7_Text_IcePunchDesc[];
+extern const u8 BattleFrontier_Lounge7_Text_ThunderPunchDesc[];
+extern const u8 BattleFrontier_Lounge7_Text_FirePunchDesc[];
extern const u8 gText_YourPartnerHasRetired[];
@@ -1328,11 +1312,11 @@ extern const u8 gText_Are2[];
extern const u8 gText_123Dot[][3];
// Frontier util.
-extern const u8 gUnknown_085ED164[];
-extern const u8 gUnknown_085ED170[];
-extern const u8 gUnknown_085ED17C[];
-extern const u8 gUnknown_085ED188[];
-extern const u8 gUnknown_085ED190[];
+extern const u8 gText_FacilitySingle[];
+extern const u8 gText_FacilityDouble[];
+extern const u8 gText_FacilityMulti[];
+extern const u8 gText_FacilityLink[];
+extern const u8 gText_Facility[];
extern const u8 gText_RecordsLv50[];
extern const u8 gText_RecordsOpenLevel[];
diff --git a/include/trainer_hill.h b/include/trainer_hill.h
index a592ef580..c07aeb6d7 100644
--- a/include/trainer_hill.h
+++ b/include/trainer_hill.h
@@ -32,15 +32,15 @@ struct TrHillDisplay
struct TrHillFloor
{
- u8 unk0;
- u8 unk1;
+ u8 trainerNum1;
+ u8 trainerNum2;
struct TrainerHillTrainer trainers[2];
struct TrHillDisplay display;
};
struct TrHillTag
{
- u8 unkField_0;
+ u8 numTrainers;
u8 unused1;
u8 numFloors;
u32 checksum;
@@ -60,22 +60,21 @@ void CopyTrainerHillTrainerText(u8 which, u16 trainerId);
bool8 InTrainerHillChallenge(void);
void nullsub_129(void);
void PrintOnTrainerHillRecordsWindow(void);
-void sub_81D5DF8(void);
-bool32 sub_81D5F48(void);
-void sub_81D5FB4(u16 *mapArg);
+void LoadTrainerHillEventObjectTemplates(void);
+bool32 LoadTrainerHillFloorEventObjectScripts(void);
+void GenerateTrainerHillFloorLayout(u16 *mapArg);
bool32 InTrainerHill(void);
u8 GetCurrentTrainerHillMapId(void);
-const struct WarpEvent* sub_81D6120(void);
-const struct WarpEvent* sub_81D6134(u8 warpEventId);
+const struct WarpEvent* SetWarpDestinationTrainerHill4F(void);
+const struct WarpEvent* SetWarpDestinationTrainerHillFinalFloor(u8 warpEventId);
u16 LocalIdToHillTrainerId(u8 localId);
bool8 GetHillTrainerFlag(u8 eventObjectId);
void SetHillTrainerFlag(void);
const u8 *GetTrainerHillTrainerScript(void);
void FillHillTrainerParty(void);
void FillHillTrainersParties(void);
-u32 sub_81D63C4(void);
u8 GetTrainerEncounterMusicIdInTrainerHill(u16 trainerId);
-u8 sub_81D6490(void);
+u8 GetNumFloorsInTrainerHillChallenge(void);
void sub_81D64C0(void);
bool32 sub_81D6534(void);