summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/macros/event.inc10
-rw-r--r--data/layouts/BattleFrontier_BattlePikeRoomUnused/border.bin (renamed from data/layouts/Unknown_084693AC/border.bin)bin8 -> 8 bytes
-rw-r--r--data/layouts/BattleFrontier_BattlePikeRoomUnused/map.bin (renamed from data/layouts/Unknown_084693AC/map.bin)bin4 -> 4 bytes
-rw-r--r--data/layouts/UnusedCave1/border.bin (renamed from data/layouts/Unknown_0843E6C0/border.bin)0
-rw-r--r--data/layouts/UnusedCave1/map.bin (renamed from data/layouts/Unknown_0843E6C0/map.bin)bin4 -> 4 bytes
-rw-r--r--data/layouts/UnusedCave10/border.bin (renamed from data/layouts/Unknown_0843E6E4/border.bin)0
-rw-r--r--data/layouts/UnusedCave10/map.bin (renamed from data/layouts/Unknown_0843E6E4/map.bin)bin4 -> 4 bytes
-rw-r--r--data/layouts/UnusedCave11/border.bin (renamed from data/layouts/Unknown_0843E708/border.bin)0
-rw-r--r--data/layouts/UnusedCave11/map.bin (renamed from data/layouts/Unknown_0843E708/map.bin)bin4 -> 4 bytes
-rw-r--r--data/layouts/UnusedCave12/border.bin (renamed from data/layouts/Unknown_0843E72C/border.bin)0
-rw-r--r--data/layouts/UnusedCave12/map.bin (renamed from data/layouts/Unknown_0843E72C/map.bin)bin4 -> 4 bytes
-rw-r--r--data/layouts/UnusedCave13/border.bin (renamed from data/layouts/Unknown_0843E750/border.bin)0
-rw-r--r--data/layouts/UnusedCave13/map.bin (renamed from data/layouts/Unknown_0843E750/map.bin)bin4 -> 4 bytes
-rw-r--r--data/layouts/UnusedCave14/border.bin (renamed from data/layouts/Unknown_0843E774/border.bin)0
-rw-r--r--data/layouts/UnusedCave14/map.bin (renamed from data/layouts/Unknown_0843E774/map.bin)bin4 -> 4 bytes
-rw-r--r--data/layouts/UnusedCave2/border.bin (renamed from data/layouts/Unknown_0843E798/border.bin)0
-rw-r--r--data/layouts/UnusedCave2/map.bin (renamed from data/layouts/Unknown_0843E798/map.bin)bin4 -> 4 bytes
-rw-r--r--data/layouts/UnusedCave3/border.bin (renamed from data/layouts/Unknown_0843E7BC/border.bin)0
-rw-r--r--data/layouts/UnusedCave3/map.bin (renamed from data/layouts/Unknown_0843E7BC/map.bin)bin4 -> 4 bytes
-rw-r--r--data/layouts/UnusedCave4/border.bin (renamed from data/layouts/Unknown_0843E7E0/border.bin)0
-rw-r--r--data/layouts/UnusedCave4/map.bin (renamed from data/layouts/Unknown_0843E7E0/map.bin)bin4 -> 4 bytes
-rw-r--r--data/layouts/UnusedCave5/border.bin (renamed from data/layouts/Unknown_0843E804/border.bin)0
-rw-r--r--data/layouts/UnusedCave5/map.bin (renamed from data/layouts/Unknown_0843E804/map.bin)bin4 -> 4 bytes
-rw-r--r--data/layouts/UnusedCave6/border.bin (renamed from data/layouts/Unknown_0843E828/border.bin)0
-rw-r--r--data/layouts/UnusedCave6/map.bin (renamed from data/layouts/Unknown_0843E828/map.bin)bin4 -> 4 bytes
-rw-r--r--data/layouts/UnusedCave7/border.bin (renamed from data/layouts/Unknown_0843E84C/border.bin)0
-rw-r--r--data/layouts/UnusedCave7/map.bin (renamed from data/layouts/Unknown_0843E84C/map.bin)bin4 -> 4 bytes
-rw-r--r--data/layouts/UnusedCave8/border.bin (renamed from data/layouts/Unknown_0843E870/border.bin)0
-rw-r--r--data/layouts/UnusedCave8/map.bin (renamed from data/layouts/Unknown_0843E870/map.bin)bin4 -> 4 bytes
-rw-r--r--data/layouts/UnusedCave9/border.bin (renamed from data/layouts/Unknown_0843E894/border.bin)0
-rw-r--r--data/layouts/UnusedCave9/map.bin (renamed from data/layouts/Unknown_0843E894/map.bin)bin4 -> 4 bytes
-rw-r--r--data/layouts/UnusedContestHall1/border.bin (renamed from data/layouts/UnknownLinkContestRoom_25_29/border.bin)0
-rw-r--r--data/layouts/UnusedContestHall1/map.bin (renamed from data/layouts/UnknownLinkContestRoom_25_29/map.bin)0
-rw-r--r--data/layouts/UnusedContestHall2/border.bin (renamed from data/layouts/UnknownLinkContestRoom_25_30/border.bin)0
-rw-r--r--data/layouts/UnusedContestHall2/map.bin (renamed from data/layouts/UnknownLinkContestRoom_25_30/map.bin)0
-rw-r--r--data/layouts/UnusedContestHall3/border.bin (renamed from data/layouts/UnknownLinkContestRoom_25_31/border.bin)0
-rw-r--r--data/layouts/UnusedContestHall3/map.bin (renamed from data/layouts/UnknownLinkContestRoom_25_31/map.bin)0
-rw-r--r--data/layouts/UnusedContestHall4/border.bin (renamed from data/layouts/UnknownLinkContestRoom_25_32/border.bin)0
-rw-r--r--data/layouts/UnusedContestHall4/map.bin (renamed from data/layouts/UnknownLinkContestRoom_25_32/map.bin)0
-rw-r--r--data/layouts/UnusedContestHall5/border.bin (renamed from data/layouts/UnknownLinkContestRoom_25_33/border.bin)0
-rw-r--r--data/layouts/UnusedContestHall5/map.bin (renamed from data/layouts/UnknownLinkContestRoom_25_33/map.bin)0
-rw-r--r--data/layouts/UnusedContestHall6/border.bin (renamed from data/layouts/UnknownLinkContestRoom_25_34/border.bin)0
-rw-r--r--data/layouts/UnusedContestHall6/map.bin (renamed from data/layouts/UnknownLinkContestRoom_25_34/map.bin)0
-rw-r--r--data/layouts/UnusedContestRoom1/border.bin (renamed from data/layouts/Unknown_08428450/border.bin)0
-rw-r--r--data/layouts/UnusedContestRoom1/map.bin (renamed from data/layouts/Unknown_08428450/map.bin)bin4 -> 4 bytes
-rw-r--r--data/layouts/UnusedContestRoom2/border.bin (renamed from data/layouts/Unknown_084294C4/border.bin)0
-rw-r--r--data/layouts/UnusedContestRoom2/map.bin (renamed from data/layouts/Unknown_084294C4/map.bin)bin4 -> 4 bytes
-rw-r--r--data/layouts/UnusedContestRoom3/border.bin (renamed from data/layouts/Unknown_084294E8/border.bin)0
-rw-r--r--data/layouts/UnusedContestRoom3/map.bin (renamed from data/layouts/Unknown_084294E8/map.bin)bin4 -> 4 bytes
-rw-r--r--data/layouts/UnusedOutdoorArea/border.bin (renamed from data/layouts/Unknown_08447028/border.bin)0
-rw-r--r--data/layouts/UnusedOutdoorArea/map.bin (renamed from data/layouts/Unknown_08447028/map.bin)0
-rw-r--r--data/layouts/layouts.json200
-rw-r--r--data/map_events.s1
-rw-r--r--data/maps/BirthIsland_Exterior/scripts.inc2
-rw-r--r--data/maps/FarawayIsland_Interior/scripts.inc2
-rw-r--r--data/maps/LavaridgeTown_Gym_1F/scripts.inc28
-rw-r--r--data/maps/LavaridgeTown_Gym_B1F/scripts.inc28
-rw-r--r--data/maps/LilycoveCity_CoveLilyMotel_2F/map.json14
-rw-r--r--data/maps/NavelRock_Bottom/scripts.inc2
-rw-r--r--data/maps/NavelRock_Top/scripts.inc2
-rw-r--r--data/maps/Route102/map.json4
-rw-r--r--data/maps/Route103/map.json6
-rw-r--r--data/maps/Route104/map.json20
-rw-r--r--data/maps/Route110/map.json6
-rw-r--r--data/maps/Route111/map.json8
-rw-r--r--data/maps/Route112/map.json8
-rw-r--r--data/maps/Route113/map.json4
-rw-r--r--data/maps/Route114/map.json6
-rw-r--r--data/maps/Route115/map.json10
-rw-r--r--data/maps/Route116/map.json8
-rw-r--r--data/maps/Route117/map.json6
-rw-r--r--data/maps/Route118/map.json6
-rw-r--r--data/maps/Route119/map.json14
-rw-r--r--data/maps/Route120/map.json20
-rw-r--r--data/maps/Route121/map.json16
-rw-r--r--data/maps/Route123/map.json36
-rw-r--r--data/maps/Route130/map.json2
-rw-r--r--data/maps/SlateportCity_Harbor/scripts.inc2
-rw-r--r--data/maps/SouthernIsland_Interior/scripts.inc4
-rw-r--r--data/maps/UnknownLinkContestRoom_25_33/map.json18
-rw-r--r--data/maps/UnknownLinkContestRoom_25_34/map.json18
-rw-r--r--data/maps/UnusedContestHall1/map.json (renamed from data/maps/UnknownLinkContestRoom_25_29/map.json)6
-rw-r--r--data/maps/UnusedContestHall2/map.json (renamed from data/maps/UnknownLinkContestRoom_25_30/map.json)6
-rw-r--r--data/maps/UnusedContestHall3/map.json (renamed from data/maps/UnknownLinkContestRoom_25_31/map.json)6
-rw-r--r--data/maps/UnusedContestHall4/map.json (renamed from data/maps/UnknownLinkContestRoom_25_32/map.json)6
-rw-r--r--data/maps/UnusedContestHall5/map.json18
-rw-r--r--data/maps/UnusedContestHall6/map.json18
-rw-r--r--data/maps/map_groups.json12
-rw-r--r--data/script_cmd_table.inc4
-rw-r--r--data/scripts/hall_of_fame.inc2
-rw-r--r--data/scripts/mevent_pichu.inc2
-rw-r--r--data/scripts/new_game.inc162
-rw-r--r--data/specials.inc2
-rw-r--r--include/berry.h2
-rw-r--r--include/constants/berry.h97
-rwxr-xr-xinclude/constants/event_object_movement.h2
-rw-r--r--include/constants/flags.h4
-rw-r--r--include/constants/global.h3
-rwxr-xr-xinclude/constants/layouts.h50
-rwxr-xr-xinclude/constants/map_groups.h122
-rw-r--r--include/constants/pokemon.h18
-rwxr-xr-xinclude/constants/secret_bases.h58
-rw-r--r--include/event_object_movement.h4
-rw-r--r--include/global.h44
-rw-r--r--include/pokemon.h22
-rw-r--r--include/trainer_see.h2
-rw-r--r--src/apprentice.c2
-rw-r--r--src/battle_message.c1
-rw-r--r--src/battle_pike.c2
-rw-r--r--src/battle_util.c7
-rw-r--r--src/berry.c1
-rw-r--r--src/berry_blender.c1
-rw-r--r--src/berry_tag_screen.c1
-rw-r--r--src/contest.c2
-rw-r--r--src/crt0.s4
-rwxr-xr-xsrc/data/object_events/movement_type_func_tables.h4
-rw-r--r--src/daycare.c2
-rw-r--r--src/egg_hatch.c6
-rw-r--r--src/event_object_movement.c22
-rw-r--r--src/evolution_scene.c2
-rw-r--r--src/field_effect.c4
-rw-r--r--src/field_weather.c8
-rw-r--r--src/international_string_util.c2
-rw-r--r--src/mail.c2
-rw-r--r--src/menu_specialized.c1
-rwxr-xr-xsrc/party_menu.c8
-rw-r--r--src/pokeblock.c1
-rw-r--r--src/pokemon.c110
-rw-r--r--src/pokemon_size_record.c6
-rw-r--r--src/scrcmd.c12
-rw-r--r--src/secret_base.c473
-rw-r--r--src/trade.c18
-rw-r--r--src/trainer_see.c60
-rw-r--r--src/tv.c36
-rw-r--r--src/util.c7
135 files changed, 1123 insertions, 865 deletions
diff --git a/asm/macros/event.inc b/asm/macros/event.inc
index e9d55c4bc..4625f8df6 100644
--- a/asm/macros/event.inc
+++ b/asm/macros/event.inc
@@ -1486,15 +1486,15 @@
.4byte \value
.endm
- @ Makes the Pokemon in the specified slot of the player's party obedient. It will not randomly disobey orders in battle.
- .macro setmonobedient slot:req
+ @ Sets the Pokemon in the specified slot of the player party's eventLegal bit.
+ .macro setmoneventlegal slot:req
.byte 0xcd
.2byte \slot
.endm
- @ Checks if the Pokemon in the specified slot of the player's party is obedient. If the Pokemon is disobedient,
- @ VAR_RESULT is TRUE. If the Pokemon is obedient (or if the specified slot is empty or invalid), VAR_RESULT is FALSE.
- .macro checkmonobedience slot:req
+ @ Checks if the Pokemon in the specified slot of the player's party has its eventLegal bit set. If it isn't set,
+ @ VAR_RESULT is TRUE. If the bit is set (or if the specified slot is empty or invalid), VAR_RESULT is FALSE.
+ .macro checkmoneventlegal slot:req
.byte 0xce
.2byte \slot
.endm
diff --git a/data/layouts/Unknown_084693AC/border.bin b/data/layouts/BattleFrontier_BattlePikeRoomUnused/border.bin
index f496f458e..f496f458e 100644
--- a/data/layouts/Unknown_084693AC/border.bin
+++ b/data/layouts/BattleFrontier_BattlePikeRoomUnused/border.bin
Binary files differ
diff --git a/data/layouts/Unknown_084693AC/map.bin b/data/layouts/BattleFrontier_BattlePikeRoomUnused/map.bin
index a179d8997..a179d8997 100644
--- a/data/layouts/Unknown_084693AC/map.bin
+++ b/data/layouts/BattleFrontier_BattlePikeRoomUnused/map.bin
Binary files differ
diff --git a/data/layouts/Unknown_0843E6C0/border.bin b/data/layouts/UnusedCave1/border.bin
index b15c94f96..b15c94f96 100644
--- a/data/layouts/Unknown_0843E6C0/border.bin
+++ b/data/layouts/UnusedCave1/border.bin
diff --git a/data/layouts/Unknown_0843E6C0/map.bin b/data/layouts/UnusedCave1/map.bin
index 22a47d94e..22a47d94e 100644
--- a/data/layouts/Unknown_0843E6C0/map.bin
+++ b/data/layouts/UnusedCave1/map.bin
Binary files differ
diff --git a/data/layouts/Unknown_0843E6E4/border.bin b/data/layouts/UnusedCave10/border.bin
index b15c94f96..b15c94f96 100644
--- a/data/layouts/Unknown_0843E6E4/border.bin
+++ b/data/layouts/UnusedCave10/border.bin
diff --git a/data/layouts/Unknown_0843E6E4/map.bin b/data/layouts/UnusedCave10/map.bin
index 22a47d94e..22a47d94e 100644
--- a/data/layouts/Unknown_0843E6E4/map.bin
+++ b/data/layouts/UnusedCave10/map.bin
Binary files differ
diff --git a/data/layouts/Unknown_0843E708/border.bin b/data/layouts/UnusedCave11/border.bin
index b15c94f96..b15c94f96 100644
--- a/data/layouts/Unknown_0843E708/border.bin
+++ b/data/layouts/UnusedCave11/border.bin
diff --git a/data/layouts/Unknown_0843E708/map.bin b/data/layouts/UnusedCave11/map.bin
index 22a47d94e..22a47d94e 100644
--- a/data/layouts/Unknown_0843E708/map.bin
+++ b/data/layouts/UnusedCave11/map.bin
Binary files differ
diff --git a/data/layouts/Unknown_0843E72C/border.bin b/data/layouts/UnusedCave12/border.bin
index b15c94f96..b15c94f96 100644
--- a/data/layouts/Unknown_0843E72C/border.bin
+++ b/data/layouts/UnusedCave12/border.bin
diff --git a/data/layouts/Unknown_0843E72C/map.bin b/data/layouts/UnusedCave12/map.bin
index 22a47d94e..22a47d94e 100644
--- a/data/layouts/Unknown_0843E72C/map.bin
+++ b/data/layouts/UnusedCave12/map.bin
Binary files differ
diff --git a/data/layouts/Unknown_0843E750/border.bin b/data/layouts/UnusedCave13/border.bin
index b15c94f96..b15c94f96 100644
--- a/data/layouts/Unknown_0843E750/border.bin
+++ b/data/layouts/UnusedCave13/border.bin
diff --git a/data/layouts/Unknown_0843E750/map.bin b/data/layouts/UnusedCave13/map.bin
index 22a47d94e..22a47d94e 100644
--- a/data/layouts/Unknown_0843E750/map.bin
+++ b/data/layouts/UnusedCave13/map.bin
Binary files differ
diff --git a/data/layouts/Unknown_0843E774/border.bin b/data/layouts/UnusedCave14/border.bin
index b15c94f96..b15c94f96 100644
--- a/data/layouts/Unknown_0843E774/border.bin
+++ b/data/layouts/UnusedCave14/border.bin
diff --git a/data/layouts/Unknown_0843E774/map.bin b/data/layouts/UnusedCave14/map.bin
index 22a47d94e..22a47d94e 100644
--- a/data/layouts/Unknown_0843E774/map.bin
+++ b/data/layouts/UnusedCave14/map.bin
Binary files differ
diff --git a/data/layouts/Unknown_0843E798/border.bin b/data/layouts/UnusedCave2/border.bin
index b15c94f96..b15c94f96 100644
--- a/data/layouts/Unknown_0843E798/border.bin
+++ b/data/layouts/UnusedCave2/border.bin
diff --git a/data/layouts/Unknown_0843E798/map.bin b/data/layouts/UnusedCave2/map.bin
index 22a47d94e..22a47d94e 100644
--- a/data/layouts/Unknown_0843E798/map.bin
+++ b/data/layouts/UnusedCave2/map.bin
Binary files differ
diff --git a/data/layouts/Unknown_0843E7BC/border.bin b/data/layouts/UnusedCave3/border.bin
index b15c94f96..b15c94f96 100644
--- a/data/layouts/Unknown_0843E7BC/border.bin
+++ b/data/layouts/UnusedCave3/border.bin
diff --git a/data/layouts/Unknown_0843E7BC/map.bin b/data/layouts/UnusedCave3/map.bin
index 22a47d94e..22a47d94e 100644
--- a/data/layouts/Unknown_0843E7BC/map.bin
+++ b/data/layouts/UnusedCave3/map.bin
Binary files differ
diff --git a/data/layouts/Unknown_0843E7E0/border.bin b/data/layouts/UnusedCave4/border.bin
index b15c94f96..b15c94f96 100644
--- a/data/layouts/Unknown_0843E7E0/border.bin
+++ b/data/layouts/UnusedCave4/border.bin
diff --git a/data/layouts/Unknown_0843E7E0/map.bin b/data/layouts/UnusedCave4/map.bin
index 22a47d94e..22a47d94e 100644
--- a/data/layouts/Unknown_0843E7E0/map.bin
+++ b/data/layouts/UnusedCave4/map.bin
Binary files differ
diff --git a/data/layouts/Unknown_0843E804/border.bin b/data/layouts/UnusedCave5/border.bin
index b15c94f96..b15c94f96 100644
--- a/data/layouts/Unknown_0843E804/border.bin
+++ b/data/layouts/UnusedCave5/border.bin
diff --git a/data/layouts/Unknown_0843E804/map.bin b/data/layouts/UnusedCave5/map.bin
index 22a47d94e..22a47d94e 100644
--- a/data/layouts/Unknown_0843E804/map.bin
+++ b/data/layouts/UnusedCave5/map.bin
Binary files differ
diff --git a/data/layouts/Unknown_0843E828/border.bin b/data/layouts/UnusedCave6/border.bin
index b15c94f96..b15c94f96 100644
--- a/data/layouts/Unknown_0843E828/border.bin
+++ b/data/layouts/UnusedCave6/border.bin
diff --git a/data/layouts/Unknown_0843E828/map.bin b/data/layouts/UnusedCave6/map.bin
index 22a47d94e..22a47d94e 100644
--- a/data/layouts/Unknown_0843E828/map.bin
+++ b/data/layouts/UnusedCave6/map.bin
Binary files differ
diff --git a/data/layouts/Unknown_0843E84C/border.bin b/data/layouts/UnusedCave7/border.bin
index b15c94f96..b15c94f96 100644
--- a/data/layouts/Unknown_0843E84C/border.bin
+++ b/data/layouts/UnusedCave7/border.bin
diff --git a/data/layouts/Unknown_0843E84C/map.bin b/data/layouts/UnusedCave7/map.bin
index 22a47d94e..22a47d94e 100644
--- a/data/layouts/Unknown_0843E84C/map.bin
+++ b/data/layouts/UnusedCave7/map.bin
Binary files differ
diff --git a/data/layouts/Unknown_0843E870/border.bin b/data/layouts/UnusedCave8/border.bin
index b15c94f96..b15c94f96 100644
--- a/data/layouts/Unknown_0843E870/border.bin
+++ b/data/layouts/UnusedCave8/border.bin
diff --git a/data/layouts/Unknown_0843E870/map.bin b/data/layouts/UnusedCave8/map.bin
index 22a47d94e..22a47d94e 100644
--- a/data/layouts/Unknown_0843E870/map.bin
+++ b/data/layouts/UnusedCave8/map.bin
Binary files differ
diff --git a/data/layouts/Unknown_0843E894/border.bin b/data/layouts/UnusedCave9/border.bin
index b15c94f96..b15c94f96 100644
--- a/data/layouts/Unknown_0843E894/border.bin
+++ b/data/layouts/UnusedCave9/border.bin
diff --git a/data/layouts/Unknown_0843E894/map.bin b/data/layouts/UnusedCave9/map.bin
index 22a47d94e..22a47d94e 100644
--- a/data/layouts/Unknown_0843E894/map.bin
+++ b/data/layouts/UnusedCave9/map.bin
Binary files differ
diff --git a/data/layouts/UnknownLinkContestRoom_25_29/border.bin b/data/layouts/UnusedContestHall1/border.bin
index 19d906679..19d906679 100644
--- a/data/layouts/UnknownLinkContestRoom_25_29/border.bin
+++ b/data/layouts/UnusedContestHall1/border.bin
diff --git a/data/layouts/UnknownLinkContestRoom_25_29/map.bin b/data/layouts/UnusedContestHall1/map.bin
index 5fc1e81ec..5fc1e81ec 100644
--- a/data/layouts/UnknownLinkContestRoom_25_29/map.bin
+++ b/data/layouts/UnusedContestHall1/map.bin
diff --git a/data/layouts/UnknownLinkContestRoom_25_30/border.bin b/data/layouts/UnusedContestHall2/border.bin
index 19d906679..19d906679 100644
--- a/data/layouts/UnknownLinkContestRoom_25_30/border.bin
+++ b/data/layouts/UnusedContestHall2/border.bin
diff --git a/data/layouts/UnknownLinkContestRoom_25_30/map.bin b/data/layouts/UnusedContestHall2/map.bin
index 5fc1e81ec..5fc1e81ec 100644
--- a/data/layouts/UnknownLinkContestRoom_25_30/map.bin
+++ b/data/layouts/UnusedContestHall2/map.bin
diff --git a/data/layouts/UnknownLinkContestRoom_25_31/border.bin b/data/layouts/UnusedContestHall3/border.bin
index 19d906679..19d906679 100644
--- a/data/layouts/UnknownLinkContestRoom_25_31/border.bin
+++ b/data/layouts/UnusedContestHall3/border.bin
diff --git a/data/layouts/UnknownLinkContestRoom_25_31/map.bin b/data/layouts/UnusedContestHall3/map.bin
index 5fc1e81ec..5fc1e81ec 100644
--- a/data/layouts/UnknownLinkContestRoom_25_31/map.bin
+++ b/data/layouts/UnusedContestHall3/map.bin
diff --git a/data/layouts/UnknownLinkContestRoom_25_32/border.bin b/data/layouts/UnusedContestHall4/border.bin
index 19d906679..19d906679 100644
--- a/data/layouts/UnknownLinkContestRoom_25_32/border.bin
+++ b/data/layouts/UnusedContestHall4/border.bin
diff --git a/data/layouts/UnknownLinkContestRoom_25_32/map.bin b/data/layouts/UnusedContestHall4/map.bin
index 5fc1e81ec..5fc1e81ec 100644
--- a/data/layouts/UnknownLinkContestRoom_25_32/map.bin
+++ b/data/layouts/UnusedContestHall4/map.bin
diff --git a/data/layouts/UnknownLinkContestRoom_25_33/border.bin b/data/layouts/UnusedContestHall5/border.bin
index 19d906679..19d906679 100644
--- a/data/layouts/UnknownLinkContestRoom_25_33/border.bin
+++ b/data/layouts/UnusedContestHall5/border.bin
diff --git a/data/layouts/UnknownLinkContestRoom_25_33/map.bin b/data/layouts/UnusedContestHall5/map.bin
index 5fc1e81ec..5fc1e81ec 100644
--- a/data/layouts/UnknownLinkContestRoom_25_33/map.bin
+++ b/data/layouts/UnusedContestHall5/map.bin
diff --git a/data/layouts/UnknownLinkContestRoom_25_34/border.bin b/data/layouts/UnusedContestHall6/border.bin
index 19d906679..19d906679 100644
--- a/data/layouts/UnknownLinkContestRoom_25_34/border.bin
+++ b/data/layouts/UnusedContestHall6/border.bin
diff --git a/data/layouts/UnknownLinkContestRoom_25_34/map.bin b/data/layouts/UnusedContestHall6/map.bin
index 5fc1e81ec..5fc1e81ec 100644
--- a/data/layouts/UnknownLinkContestRoom_25_34/map.bin
+++ b/data/layouts/UnusedContestHall6/map.bin
diff --git a/data/layouts/Unknown_08428450/border.bin b/data/layouts/UnusedContestRoom1/border.bin
index 19d906679..19d906679 100644
--- a/data/layouts/Unknown_08428450/border.bin
+++ b/data/layouts/UnusedContestRoom1/border.bin
diff --git a/data/layouts/Unknown_08428450/map.bin b/data/layouts/UnusedContestRoom1/map.bin
index ca93fa0e2..ca93fa0e2 100644
--- a/data/layouts/Unknown_08428450/map.bin
+++ b/data/layouts/UnusedContestRoom1/map.bin
Binary files differ
diff --git a/data/layouts/Unknown_084294C4/border.bin b/data/layouts/UnusedContestRoom2/border.bin
index 19d906679..19d906679 100644
--- a/data/layouts/Unknown_084294C4/border.bin
+++ b/data/layouts/UnusedContestRoom2/border.bin
diff --git a/data/layouts/Unknown_084294C4/map.bin b/data/layouts/UnusedContestRoom2/map.bin
index 37f05b971..37f05b971 100644
--- a/data/layouts/Unknown_084294C4/map.bin
+++ b/data/layouts/UnusedContestRoom2/map.bin
Binary files differ
diff --git a/data/layouts/Unknown_084294E8/border.bin b/data/layouts/UnusedContestRoom3/border.bin
index 19d906679..19d906679 100644
--- a/data/layouts/Unknown_084294E8/border.bin
+++ b/data/layouts/UnusedContestRoom3/border.bin
diff --git a/data/layouts/Unknown_084294E8/map.bin b/data/layouts/UnusedContestRoom3/map.bin
index ca93fa0e2..ca93fa0e2 100644
--- a/data/layouts/Unknown_084294E8/map.bin
+++ b/data/layouts/UnusedContestRoom3/map.bin
Binary files differ
diff --git a/data/layouts/Unknown_08447028/border.bin b/data/layouts/UnusedOutdoorArea/border.bin
index 9e4b3fb7a..9e4b3fb7a 100644
--- a/data/layouts/Unknown_08447028/border.bin
+++ b/data/layouts/UnusedOutdoorArea/border.bin
diff --git a/data/layouts/Unknown_08447028/map.bin b/data/layouts/UnusedOutdoorArea/map.bin
index 028da0526..028da0526 100644
--- a/data/layouts/Unknown_08447028/map.bin
+++ b/data/layouts/UnusedOutdoorArea/map.bin
diff --git a/data/layouts/layouts.json b/data/layouts/layouts.json
index 9292e10af..b8d841f72 100644
--- a/data/layouts/layouts.json
+++ b/data/layouts/layouts.json
@@ -742,14 +742,14 @@
"blockdata_filepath": "data/layouts/LilycoveCity_House2/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_08428450",
- "name": "Unknown_08428450_Layout",
+ "id": "LAYOUT_UNUSED_CONTEST_ROOM1",
+ "name": "UnusedContestRoom1_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_Contest",
- "border_filepath": "data/layouts/Unknown_08428450/border.bin",
- "blockdata_filepath": "data/layouts/Unknown_08428450/map.bin"
+ "border_filepath": "data/layouts/UnusedContestRoom1/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedContestRoom1/map.bin"
},
{
"id": "LAYOUT_VERDANTURF_TOWN_WANDAS_HOUSE",
@@ -822,24 +822,24 @@
"blockdata_filepath": "data/layouts/SlateportCity_SternsShipyard_2F/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_084294C4",
- "name": "Unknown_084294C4_Layout",
+ "id": "LAYOUT_UNUSED_CONTEST_ROOM2",
+ "name": "UnusedContestRoom2_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_Contest",
- "border_filepath": "data/layouts/Unknown_084294C4/border.bin",
- "blockdata_filepath": "data/layouts/Unknown_084294C4/map.bin"
+ "border_filepath": "data/layouts/UnusedContestRoom2/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedContestRoom2/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_084294E8",
- "name": "Unknown_084294E8_Layout",
+ "id": "LAYOUT_UNUSED_CONTEST_ROOM3",
+ "name": "UnusedContestRoom3_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_Contest",
- "border_filepath": "data/layouts/Unknown_084294E8/border.bin",
- "blockdata_filepath": "data/layouts/Unknown_084294E8/map.bin"
+ "border_filepath": "data/layouts/UnusedContestRoom3/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedContestRoom3/map.bin"
},
{
"id": "LAYOUT_SLATEPORT_CITY_POKEMON_FAN_CLUB",
@@ -1692,144 +1692,144 @@
"blockdata_filepath": "data/layouts/ShoalCave_HighTideInnerRoom/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_0843E6C0",
- "name": "Unknown_0843E6C0_Layout",
+ "id": "LAYOUT_UNUSED_CAVE1",
+ "name": "UnusedCave1_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave",
- "border_filepath": "data/layouts/Unknown_0843E6C0/border.bin",
- "blockdata_filepath": "data/layouts/Unknown_0843E6C0/map.bin"
+ "border_filepath": "data/layouts/UnusedCave1/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedCave1/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_0843E6E4",
- "name": "Unknown_0843E6E4_Layout",
+ "id": "LAYOUT_UNUSED_CAVE2",
+ "name": "UnusedCave2_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave",
- "border_filepath": "data/layouts/Unknown_0843E6E4/border.bin",
- "blockdata_filepath": "data/layouts/Unknown_0843E6E4/map.bin"
+ "border_filepath": "data/layouts/UnusedCave2/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedCave2/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_0843E708",
- "name": "Unknown_0843E708_Layout",
+ "id": "LAYOUT_UNUSED_CAVE3",
+ "name": "UnusedCave3_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave",
- "border_filepath": "data/layouts/Unknown_0843E708/border.bin",
- "blockdata_filepath": "data/layouts/Unknown_0843E708/map.bin"
+ "border_filepath": "data/layouts/UnusedCave3/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedCave3/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_0843E72C",
- "name": "Unknown_0843E72C_Layout",
+ "id": "LAYOUT_UNUSED_CAVE4",
+ "name": "UnusedCave4_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave",
- "border_filepath": "data/layouts/Unknown_0843E72C/border.bin",
- "blockdata_filepath": "data/layouts/Unknown_0843E72C/map.bin"
+ "border_filepath": "data/layouts/UnusedCave4/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedCave4/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_0843E750",
- "name": "Unknown_0843E750_Layout",
+ "id": "LAYOUT_UNUSED_CAVE5",
+ "name": "UnusedCave5_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave",
- "border_filepath": "data/layouts/Unknown_0843E750/border.bin",
- "blockdata_filepath": "data/layouts/Unknown_0843E750/map.bin"
+ "border_filepath": "data/layouts/UnusedCave5/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedCave5/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_0843E774",
- "name": "Unknown_0843E774_Layout",
+ "id": "LAYOUT_UNUSED_CAVE6",
+ "name": "UnusedCave6_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave",
- "border_filepath": "data/layouts/Unknown_0843E774/border.bin",
- "blockdata_filepath": "data/layouts/Unknown_0843E774/map.bin"
+ "border_filepath": "data/layouts/UnusedCave6/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedCave6/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_0843E798",
- "name": "Unknown_0843E798_Layout",
+ "id": "LAYOUT_UNUSED_CAVE7",
+ "name": "UnusedCave7_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave",
- "border_filepath": "data/layouts/Unknown_0843E798/border.bin",
- "blockdata_filepath": "data/layouts/Unknown_0843E798/map.bin"
+ "border_filepath": "data/layouts/UnusedCave7/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedCave7/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_0843E7BC",
- "name": "Unknown_0843E7BC_Layout",
+ "id": "LAYOUT_UNUSED_CAVE8",
+ "name": "UnusedCave8_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave",
- "border_filepath": "data/layouts/Unknown_0843E7BC/border.bin",
- "blockdata_filepath": "data/layouts/Unknown_0843E7BC/map.bin"
+ "border_filepath": "data/layouts/UnusedCave8/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedCave8/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_0843E7E0",
- "name": "Unknown_0843E7E0_Layout",
+ "id": "LAYOUT_UNUSED_CAVE9",
+ "name": "UnusedCave9_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave",
- "border_filepath": "data/layouts/Unknown_0843E7E0/border.bin",
- "blockdata_filepath": "data/layouts/Unknown_0843E7E0/map.bin"
+ "border_filepath": "data/layouts/UnusedCave9/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedCave9/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_0843E804",
- "name": "Unknown_0843E804_Layout",
+ "id": "LAYOUT_UNUSED_CAVE10",
+ "name": "UnusedCave10_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave",
- "border_filepath": "data/layouts/Unknown_0843E804/border.bin",
- "blockdata_filepath": "data/layouts/Unknown_0843E804/map.bin"
+ "border_filepath": "data/layouts/UnusedCave10/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedCave10/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_0843E828",
- "name": "Unknown_0843E828_Layout",
+ "id": "LAYOUT_UNUSED_CAVE11",
+ "name": "UnusedCave11_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave",
- "border_filepath": "data/layouts/Unknown_0843E828/border.bin",
- "blockdata_filepath": "data/layouts/Unknown_0843E828/map.bin"
+ "border_filepath": "data/layouts/UnusedCave11/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedCave11/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_0843E84C",
- "name": "Unknown_0843E84C_Layout",
+ "id": "LAYOUT_UNUSED_CAVE12",
+ "name": "UnusedCave12_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave",
- "border_filepath": "data/layouts/Unknown_0843E84C/border.bin",
- "blockdata_filepath": "data/layouts/Unknown_0843E84C/map.bin"
+ "border_filepath": "data/layouts/UnusedCave12/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedCave12/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_0843E870",
- "name": "Unknown_0843E870_Layout",
+ "id": "LAYOUT_UNUSED_CAVE13",
+ "name": "UnusedCave13_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave",
- "border_filepath": "data/layouts/Unknown_0843E870/border.bin",
- "blockdata_filepath": "data/layouts/Unknown_0843E870/map.bin"
+ "border_filepath": "data/layouts/UnusedCave13/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedCave13/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_0843E894",
- "name": "Unknown_0843E894_Layout",
+ "id": "LAYOUT_UNUSED_CAVE14",
+ "name": "UnusedCave14_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave",
- "border_filepath": "data/layouts/Unknown_0843E894/border.bin",
- "blockdata_filepath": "data/layouts/Unknown_0843E894/map.bin"
+ "border_filepath": "data/layouts/UnusedCave14/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedCave14/map.bin"
},
{
"id": "LAYOUT_NEW_MAUVILLE_ENTRANCE",
@@ -2252,64 +2252,64 @@
"blockdata_filepath": "data/layouts/ContestHall/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_29",
- "name": "UnknownLinkContestRoom_25_29_Layout",
+ "id": "LAYOUT_UNUSED_CONTEST_HALL1",
+ "name": "UnusedContestHall1_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_Contest",
- "border_filepath": "data/layouts/UnknownLinkContestRoom_25_29/border.bin",
- "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_29/map.bin"
+ "border_filepath": "data/layouts/UnusedContestHall1/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedContestHall1/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_30",
- "name": "UnknownLinkContestRoom_25_30_Layout",
+ "id": "LAYOUT_UNUSED_CONTEST_HALL2",
+ "name": "UnusedContestHall2_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_Contest",
- "border_filepath": "data/layouts/UnknownLinkContestRoom_25_30/border.bin",
- "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_30/map.bin"
+ "border_filepath": "data/layouts/UnusedContestHall2/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedContestHall2/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_31",
- "name": "UnknownLinkContestRoom_25_31_Layout",
+ "id": "LAYOUT_UNUSED_CONTEST_HALL3",
+ "name": "UnusedContestHall3_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_Contest",
- "border_filepath": "data/layouts/UnknownLinkContestRoom_25_31/border.bin",
- "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_31/map.bin"
+ "border_filepath": "data/layouts/UnusedContestHall3/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedContestHall3/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_32",
- "name": "UnknownLinkContestRoom_25_32_Layout",
+ "id": "LAYOUT_UNUSED_CONTEST_HALL4",
+ "name": "UnusedContestHall4_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_Contest",
- "border_filepath": "data/layouts/UnknownLinkContestRoom_25_32/border.bin",
- "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_32/map.bin"
+ "border_filepath": "data/layouts/UnusedContestHall4/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedContestHall4/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_33",
- "name": "UnknownLinkContestRoom_25_33_Layout",
+ "id": "LAYOUT_UNUSED_CONTEST_HALL5",
+ "name": "UnusedContestHall5_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_Contest",
- "border_filepath": "data/layouts/UnknownLinkContestRoom_25_33/border.bin",
- "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_33/map.bin"
+ "border_filepath": "data/layouts/UnusedContestHall5/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedContestHall5/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_34",
- "name": "UnknownLinkContestRoom_25_34_Layout",
+ "id": "LAYOUT_UNUSED_CONTEST_HALL6",
+ "name": "UnusedContestHall6_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_Contest",
- "border_filepath": "data/layouts/UnknownLinkContestRoom_25_34/border.bin",
- "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_34/map.bin"
+ "border_filepath": "data/layouts/UnusedContestHall6/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedContestHall6/map.bin"
},
{
"id": "LAYOUT_CONTEST_HALL_BEAUTY",
@@ -2412,14 +2412,14 @@
"blockdata_filepath": "data/layouts/SafariZone_South/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_08447028",
- "name": "Unknown_08447028_Layout",
+ "id": "LAYOUT_UNUSED_OUTDOOR_AREA",
+ "name": "UnusedOutdoorArea_Layout",
"width": 58,
"height": 26,
"primary_tileset": "gTileset_General",
"secondary_tileset": "0",
- "border_filepath": "data/layouts/Unknown_08447028/border.bin",
- "blockdata_filepath": "data/layouts/Unknown_08447028/map.bin"
+ "border_filepath": "data/layouts/UnusedOutdoorArea/border.bin",
+ "blockdata_filepath": "data/layouts/UnusedOutdoorArea/map.bin"
},
{
"id": "LAYOUT_ROUTE109_SEASHORE_HOUSE",
@@ -3582,14 +3582,14 @@
"blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomWildMons/map.bin"
},
{
- "id": "LAYOUT_UNKNOWN_084693AC",
- "name": "Unknown_084693AC_Layout",
+ "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_UNUSED",
+ "name": "BattleFrontier_BattlePikeRoomUnused_Layout",
"width": 1,
"height": 1,
"primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_BattlePike",
- "border_filepath": "data/layouts/Unknown_084693AC/border.bin",
- "blockdata_filepath": "data/layouts/Unknown_084693AC/map.bin"
+ "border_filepath": "data/layouts/BattleFrontier_BattlePikeRoomUnused/border.bin",
+ "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomUnused/map.bin"
},
{
"id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY",
diff --git a/data/map_events.s b/data/map_events.s
index d285040a0..dcbb9cfb1 100644
--- a/data/map_events.s
+++ b/data/map_events.s
@@ -10,6 +10,7 @@
#include "constants/weather.h"
#include "constants/trainer_hill.h"
#include "constants/trainer_types.h"
+#include "constants/berry.h"
.include "asm/macros.inc"
.include "constants/constants.inc"
diff --git a/data/maps/BirthIsland_Exterior/scripts.inc b/data/maps/BirthIsland_Exterior/scripts.inc
index 16a1c7488..c20de3798 100644
--- a/data/maps/BirthIsland_Exterior/scripts.inc
+++ b/data/maps/BirthIsland_Exterior/scripts.inc
@@ -85,7 +85,7 @@ BirthIsland_Exterior_EventScript_Deoxys:: @ 8267FC1
setvar VAR_0x8004, SPECIES_DEOXYS
setvar VAR_0x8005, 30 @ level
setvar VAR_0x8006, ITEM_NONE
- special CreateObedientEnemyMon
+ special CreateEventLegalEnemyMon
setflag FLAG_SYS_CTRL_OBJ_DELETE
special BattleSetup_StartLegendaryBattle
waitstate
diff --git a/data/maps/FarawayIsland_Interior/scripts.inc b/data/maps/FarawayIsland_Interior/scripts.inc
index 2a06ffdfa..108bc12e6 100644
--- a/data/maps/FarawayIsland_Interior/scripts.inc
+++ b/data/maps/FarawayIsland_Interior/scripts.inc
@@ -141,7 +141,7 @@ FarawayIsland_Interior_EventScript_Mew:: @ 8267DF2
setvar VAR_0x8004, SPECIES_MEW
setvar VAR_0x8005, 30 @ level
setvar VAR_0x8006, ITEM_NONE
- special CreateObedientEnemyMon
+ special CreateEventLegalEnemyMon
setflag FLAG_SYS_CTRL_OBJ_DELETE
special BattleSetup_StartLegendaryBattle
waitstate
diff --git a/data/maps/LavaridgeTown_Gym_1F/scripts.inc b/data/maps/LavaridgeTown_Gym_1F/scripts.inc
index df95a0b4b..901969416 100644
--- a/data/maps/LavaridgeTown_Gym_1F/scripts.inc
+++ b/data/maps/LavaridgeTown_Gym_1F/scripts.inc
@@ -9,7 +9,7 @@ LavaridgeTown_Gym_1F_MapScripts:: @ 81FE6F4
LavaridgeTown_Gym_1F_OnTransition: @ 81FE6FA
call LavaridgeTown_Gym_1F_EventScript_SetTrainerTempVars
- call LavaridgeTown_Gym_1F_EventScript_CheckHideTrainers
+ call LavaridgeTown_Gym_1F_EventScript_CheckBuryTrainers
end
@ Unclear where/if these temp vars are getting checked
@@ -33,19 +33,19 @@ LavaridgeTown_Gym_1F_EventScript_SetDanielleTempVar:: @ 81FE748
LavaridgeTown_Gym_1F_EventScript_EndSetTrainerTempVars:: @ 81FE756
return
-LavaridgeTown_Gym_1F_EventScript_CheckHideTrainers:: @ 81FE757
- goto_if_defeated TRAINER_COLE, LavaridgeTown_Gym_1F_EventScript_CheckHideGerald
- setobjectmovementtype LOCALID_COLE, MOVEMENT_TYPE_HIDDEN
-LavaridgeTown_Gym_1F_EventScript_CheckHideGerald:: @ 81FE764
- goto_if_defeated TRAINER_GERALD, LavaridgeTown_Gym_1F_EventScript_CheckHideAxle
- setobjectmovementtype LOCALID_GERALD, MOVEMENT_TYPE_HIDDEN
-LavaridgeTown_Gym_1F_EventScript_CheckHideAxle:: @ 81FE771
- goto_if_defeated TRAINER_AXLE, LavaridgeTown_Gym_1F_EventScript_CheckHideDanielle
- setobjectmovementtype LOCALID_AXLE, MOVEMENT_TYPE_HIDDEN
-LavaridgeTown_Gym_1F_EventScript_CheckHideDanielle:: @ 81FE77E
- goto_if_defeated TRAINER_DANIELLE, LavaridgeTown_Gym_1F_EventScript_EndCheckHideTrainers
- setobjectmovementtype LOCALID_DANIELLE, MOVEMENT_TYPE_HIDDEN
-LavaridgeTown_Gym_1F_EventScript_EndCheckHideTrainers:: @ 81FE78B
+LavaridgeTown_Gym_1F_EventScript_CheckBuryTrainers:: @ 81FE757
+ goto_if_defeated TRAINER_COLE, LavaridgeTown_Gym_1F_EventScript_CheckBuryGerald
+ setobjectmovementtype LOCALID_COLE, MOVEMENT_TYPE_BURIED
+LavaridgeTown_Gym_1F_EventScript_CheckBuryGerald:: @ 81FE764
+ goto_if_defeated TRAINER_GERALD, LavaridgeTown_Gym_1F_EventScript_CheckBuryAxle
+ setobjectmovementtype LOCALID_GERALD, MOVEMENT_TYPE_BURIED
+LavaridgeTown_Gym_1F_EventScript_CheckBuryAxle:: @ 81FE771
+ goto_if_defeated TRAINER_AXLE, LavaridgeTown_Gym_1F_EventScript_CheckBuryDanielle
+ setobjectmovementtype LOCALID_AXLE, MOVEMENT_TYPE_BURIED
+LavaridgeTown_Gym_1F_EventScript_CheckBuryDanielle:: @ 81FE77E
+ goto_if_defeated TRAINER_DANIELLE, LavaridgeTown_Gym_1F_EventScript_EndCheckBuryTrainers
+ setobjectmovementtype LOCALID_DANIELLE, MOVEMENT_TYPE_BURIED
+LavaridgeTown_Gym_1F_EventScript_EndCheckBuryTrainers:: @ 81FE78B
return
LavaridgeTown_Gym_1F_EventScript_Flannery:: @ 81FE78C
diff --git a/data/maps/LavaridgeTown_Gym_B1F/scripts.inc b/data/maps/LavaridgeTown_Gym_B1F/scripts.inc
index aad7c4778..f2e41ace4 100644
--- a/data/maps/LavaridgeTown_Gym_B1F/scripts.inc
+++ b/data/maps/LavaridgeTown_Gym_B1F/scripts.inc
@@ -9,7 +9,7 @@ LavaridgeTown_Gym_B1F_MapScripts:: @ 81FF87E
LavaridgeTown_Gym_B1F_OnTransition: @ 81FF884
call LavaridgeTown_Gym_B1F_EventScript_SetTrainerTempVars
- call LavaridgeTown_Gym_B1F_EventScript_CheckHideTrainers
+ call LavaridgeTown_Gym_B1F_EventScript_CheckBuryTrainers
end
@ Unclear where/if these temp vars are getting checked
@@ -32,18 +32,18 @@ LavaridgeTown_Gym_B1F_EventScript_SetEliTempVar:: @ 81FF8CD
LavaridgeTown_Gym_B1F_EventScript_EndSetTrainerTempVars:: @ 81FF8DB
return
-LavaridgeTown_Gym_B1F_EventScript_CheckHideTrainers:: @ 81FF8DC
- goto_if_defeated TRAINER_KEEGAN, LavaridgeTown_Gym_B1F_EventScript_CheckHideJace
- setobjectmovementtype LOCALID_KEEGAN, MOVEMENT_TYPE_HIDDEN
-LavaridgeTown_Gym_B1F_EventScript_CheckHideJace:: @ 81FF8E9
- goto_if_defeated TRAINER_JACE, LavaridgeTown_Gym_B1F_EventScript_CheckHideJeff
- setobjectmovementtype LOCALID_JACE, MOVEMENT_TYPE_HIDDEN
-LavaridgeTown_Gym_B1F_EventScript_CheckHideJeff:: @ 81FF8F6
- goto_if_defeated TRAINER_JEFF, LavaridgeTown_Gym_B1F_EventScript_CheckHideEli
- setobjectmovementtype LOCALID_JEFF, MOVEMENT_TYPE_HIDDEN
-LavaridgeTown_Gym_B1F_EventScript_CheckHideEli:: @ 81FF903
- goto_if_defeated TRAINER_ELI, LavaridgeTown_Gym_B1F_EventScript_EndCheckHideTrainers
- setobjectmovementtype LOCALID_ELI, MOVEMENT_TYPE_HIDDEN
-LavaridgeTown_Gym_B1F_EventScript_EndCheckHideTrainers:: @ 81FF910
+LavaridgeTown_Gym_B1F_EventScript_CheckBuryTrainers:: @ 81FF8DC
+ goto_if_defeated TRAINER_KEEGAN, LavaridgeTown_Gym_B1F_EventScript_CheckBuryJace
+ setobjectmovementtype LOCALID_KEEGAN, MOVEMENT_TYPE_BURIED
+LavaridgeTown_Gym_B1F_EventScript_CheckBuryJace:: @ 81FF8E9
+ goto_if_defeated TRAINER_JACE, LavaridgeTown_Gym_B1F_EventScript_CheckBuryJeff
+ setobjectmovementtype LOCALID_JACE, MOVEMENT_TYPE_BURIED
+LavaridgeTown_Gym_B1F_EventScript_CheckBuryJeff:: @ 81FF8F6
+ goto_if_defeated TRAINER_JEFF, LavaridgeTown_Gym_B1F_EventScript_CheckBuryEli
+ setobjectmovementtype LOCALID_JEFF, MOVEMENT_TYPE_BURIED
+LavaridgeTown_Gym_B1F_EventScript_CheckBuryEli:: @ 81FF903
+ goto_if_defeated TRAINER_ELI, LavaridgeTown_Gym_B1F_EventScript_EndCheckBuryTrainers
+ setobjectmovementtype LOCALID_ELI, MOVEMENT_TYPE_BURIED
+LavaridgeTown_Gym_B1F_EventScript_EndCheckBuryTrainers:: @ 81FF910
return
diff --git a/data/maps/LilycoveCity_CoveLilyMotel_2F/map.json b/data/maps/LilycoveCity_CoveLilyMotel_2F/map.json
index f55770b88..0edd978fd 100644
--- a/data/maps/LilycoveCity_CoveLilyMotel_2F/map.json
+++ b/data/maps/LilycoveCity_CoveLilyMotel_2F/map.json
@@ -25,7 +25,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "LilycoveCity_CoveLilyMotel_2F_EventScript_GameDesigner",
- "flag": "FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS"
+ "flag": "FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS"
},
{
"graphics_id": "OBJ_EVENT_GFX_SCIENTIST_1",
@@ -38,7 +38,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "LilycoveCity_CoveLilyMotel_2F_EventScript_GraphicArtist",
- "flag": "FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS"
+ "flag": "FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS"
},
{
"graphics_id": "OBJ_EVENT_GFX_FAT_MAN",
@@ -51,7 +51,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "LilycoveCity_CoveLilyMotel_2F_EventScript_FatMan",
- "flag": "FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS"
+ "flag": "FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS"
},
{
"graphics_id": "OBJ_EVENT_GFX_MAN_4",
@@ -64,7 +64,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "LilycoveCity_CoveLilyMotel_2F_EventScript_Programmer",
- "flag": "FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS"
+ "flag": "FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS"
},
{
"graphics_id": "OBJ_EVENT_GFX_GAMEBOY_KID",
@@ -77,7 +77,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "LilycoveCity_CoveLilyMotel_2F_EventScript_GameBoyKid",
- "flag": "FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS"
+ "flag": "FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS"
},
{
"graphics_id": "OBJ_EVENT_GFX_WOMAN_2",
@@ -90,7 +90,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "LilycoveCity_CoveLilyMotel_2F_EventScript_Woman",
- "flag": "FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS"
+ "flag": "FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS"
},
{
"graphics_id": "OBJ_EVENT_GFX_SCOTT",
@@ -103,7 +103,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "LilycoveCity_CoveLilyMotel_2F_EventScript_Scott",
- "flag": "FLAG_HIDE_LILCOVE_MOTEL_SCOTT"
+ "flag": "FLAG_HIDE_LILYCOVE_MOTEL_SCOTT"
}
],
"warp_events": [
diff --git a/data/maps/NavelRock_Bottom/scripts.inc b/data/maps/NavelRock_Bottom/scripts.inc
index 9c438fc5c..766c818d2 100644
--- a/data/maps/NavelRock_Bottom/scripts.inc
+++ b/data/maps/NavelRock_Bottom/scripts.inc
@@ -57,7 +57,7 @@ NavelRock_Bottom_EventScript_Lugia:: @ 82692A2
setvar VAR_0x8004, SPECIES_LUGIA
setvar VAR_0x8005, 70 @ level
setvar VAR_0x8006, ITEM_NONE
- special CreateObedientEnemyMon
+ special CreateEventLegalEnemyMon
setflag FLAG_SYS_CTRL_OBJ_DELETE
special BattleSetup_StartLegendaryBattle
waitstate
diff --git a/data/maps/NavelRock_Top/scripts.inc b/data/maps/NavelRock_Top/scripts.inc
index c95596ff6..b24aed23b 100644
--- a/data/maps/NavelRock_Top/scripts.inc
+++ b/data/maps/NavelRock_Top/scripts.inc
@@ -61,7 +61,7 @@ NavelRock_Top_EventScript_HoOh:: @ 826916F
setvar VAR_0x8004, SPECIES_HO_OH
setvar VAR_0x8005, 70 @ level
setvar VAR_0x8006, ITEM_NONE
- special CreateObedientEnemyMon
+ special CreateEventLegalEnemyMon
setflag FLAG_SYS_CTRL_OBJ_DELETE
special BattleSetup_StartLegendaryBattle
waitstate
diff --git a/data/maps/Route102/map.json b/data/maps/Route102/map.json
index fc9adee3b..aaa63b11f 100644
--- a/data/maps/Route102/map.json
+++ b/data/maps/Route102/map.json
@@ -112,7 +112,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "2",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_102_ORAN",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -125,7 +125,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "1",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_102_PECHA",
"script": "BerryTreeScript",
"flag": "0"
},
diff --git a/data/maps/Route103/map.json b/data/maps/Route103/map.json
index 4b91f913b..fbf92dd0c 100644
--- a/data/maps/Route103/map.json
+++ b/data/maps/Route103/map.json
@@ -112,7 +112,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "5",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_103_CHERI_1",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -125,7 +125,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "6",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_103_LEPPA",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -138,7 +138,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "7",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_103_CHERI_2",
"script": "BerryTreeScript",
"flag": "0"
},
diff --git a/data/maps/Route104/map.json b/data/maps/Route104/map.json
index 69e5faf27..6ec8b3752 100644
--- a/data/maps/Route104/map.json
+++ b/data/maps/Route104/map.json
@@ -156,7 +156,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "8",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_CHERI_1",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -169,7 +169,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "9",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_SOIL_2",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -182,7 +182,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "10",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_LEPPA",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -195,7 +195,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "11",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_ORAN_2",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -208,7 +208,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "12",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_SOIL_3",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -221,7 +221,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "13",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_PECHA",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -247,7 +247,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "3",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_SOIL_1",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -260,7 +260,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "4",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_ORAN_1",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -273,7 +273,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "75",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_SOIL_4",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -286,7 +286,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "76",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_CHERI_2",
"script": "BerryTreeScript",
"flag": "0"
},
diff --git a/data/maps/Route110/map.json b/data/maps/Route110/map.json
index bb5df5eb4..abfc2b767 100644
--- a/data/maps/Route110/map.json
+++ b/data/maps/Route110/map.json
@@ -234,7 +234,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "16",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_110_NANAB_1",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -247,7 +247,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "17",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_110_NANAB_2",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -260,7 +260,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "18",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_110_NANAB_3",
"script": "BerryTreeScript",
"flag": "0"
},
diff --git a/data/maps/Route111/map.json b/data/maps/Route111/map.json
index 014ac084c..4621591e4 100644
--- a/data/maps/Route111/map.json
+++ b/data/maps/Route111/map.json
@@ -104,7 +104,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "19",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_111_RAZZ_1",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -117,7 +117,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "20",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_111_RAZZ_2",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -273,7 +273,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "80",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_111_ORAN_1",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -286,7 +286,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "81",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_111_ORAN_2",
"script": "BerryTreeScript",
"flag": "0"
},
diff --git a/data/maps/Route112/map.json b/data/maps/Route112/map.json
index d4d650857..04b2e6d12 100644
--- a/data/maps/Route112/map.json
+++ b/data/maps/Route112/map.json
@@ -117,7 +117,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "24",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_112_RAWST_2",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -130,7 +130,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "23",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_112_PECHA_2",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -143,7 +143,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "22",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_112_PECHA_1",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -156,7 +156,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "21",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_112_RAWST_1",
"script": "BerryTreeScript",
"flag": "0"
},
diff --git a/data/maps/Route113/map.json b/data/maps/Route113/map.json
index 8d9d74028..422b88e6e 100644
--- a/data/maps/Route113/map.json
+++ b/data/maps/Route113/map.json
@@ -126,7 +126,7 @@
"x": 29,
"y": 6,
"elevation": 3,
- "movement_type": "MOVEMENT_TYPE_HIDDEN",
+ "movement_type": "MOVEMENT_TYPE_BURIED",
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_BURIED",
@@ -139,7 +139,7 @@
"x": 71,
"y": 2,
"elevation": 3,
- "movement_type": "MOVEMENT_TYPE_HIDDEN",
+ "movement_type": "MOVEMENT_TYPE_BURIED",
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_BURIED",
diff --git a/data/maps/Route114/map.json b/data/maps/Route114/map.json
index 37edf509d..38891b518 100644
--- a/data/maps/Route114/map.json
+++ b/data/maps/Route114/map.json
@@ -34,7 +34,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "77",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_114_PERSIM_2",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -47,7 +47,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "78",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_114_PERSIM_3",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -125,7 +125,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "68",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_114_PERSIM_1",
"script": "BerryTreeScript",
"flag": "0"
},
diff --git a/data/maps/Route115/map.json b/data/maps/Route115/map.json
index 2d0dbdbaa..bbac132f5 100644
--- a/data/maps/Route115/map.json
+++ b/data/maps/Route115/map.json
@@ -73,7 +73,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "69",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_115_KELPSY_1",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -86,7 +86,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "70",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_115_KELPSY_2",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -99,7 +99,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "71",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_115_KELPSY_3",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -190,7 +190,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "55",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_115_BLUK_1",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -203,7 +203,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "56",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_115_BLUK_2",
"script": "BerryTreeScript",
"flag": "0"
},
diff --git a/data/maps/Route116/map.json b/data/maps/Route116/map.json
index 247a4b7b1..13b4bac1c 100644
--- a/data/maps/Route116/map.json
+++ b/data/maps/Route116/map.json
@@ -34,7 +34,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "25",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_116_PINAP_1",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -47,7 +47,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "26",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_116_CHESTO_1",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -138,7 +138,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "66",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_116_CHESTO_2",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -151,7 +151,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "67",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_116_PINAP_2",
"script": "BerryTreeScript",
"flag": "0"
},
diff --git a/data/maps/Route117/map.json b/data/maps/Route117/map.json
index dd923a7cd..b72866741 100644
--- a/data/maps/Route117/map.json
+++ b/data/maps/Route117/map.json
@@ -164,7 +164,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "29",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_117_WEPEAR_3",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -177,7 +177,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "28",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_117_WEPEAR_2",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -190,7 +190,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "27",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_117_WEPEAR_1",
"script": "BerryTreeScript",
"flag": "0"
},
diff --git a/data/maps/Route118/map.json b/data/maps/Route118/map.json
index 7b541e629..67acb1b98 100644
--- a/data/maps/Route118/map.json
+++ b/data/maps/Route118/map.json
@@ -39,7 +39,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "31",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_118_SITRUS_1",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -52,7 +52,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "32",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_118_SOIL",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -65,7 +65,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "33",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_118_SITRUS_2",
"script": "BerryTreeScript",
"flag": "0"
},
diff --git a/data/maps/Route119/map.json b/data/maps/Route119/map.json
index 8d78d1065..c5715daa2 100644
--- a/data/maps/Route119/map.json
+++ b/data/maps/Route119/map.json
@@ -34,7 +34,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "34",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_119_POMEG_1",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -47,7 +47,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "35",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_119_POMEG_2",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -60,7 +60,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "36",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_119_POMEG_3",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -372,7 +372,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "83",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_119_HONDEW_1",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -385,7 +385,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "84",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_119_HONDEW_2",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -398,7 +398,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "85",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_119_SITRUS",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -411,7 +411,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "86",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_119_LEPPA",
"script": "BerryTreeScript",
"flag": "0"
},
diff --git a/data/maps/Route120/map.json b/data/maps/Route120/map.json
index 787f51361..6b67310d3 100644
--- a/data/maps/Route120/map.json
+++ b/data/maps/Route120/map.json
@@ -34,7 +34,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "46",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_WEPEAR",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -47,7 +47,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "45",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_PINAP",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -60,7 +60,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "44",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_NANAB",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -73,7 +73,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "43",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_RAZZ",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -86,7 +86,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "37",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_ASPEAR_1",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -99,7 +99,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "38",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_ASPEAR_2",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -112,7 +112,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "39",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_ASPEAR_3",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -125,7 +125,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "40",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_PECHA_1",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -138,7 +138,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "41",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_PECHA_2",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -151,7 +151,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "42",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_PECHA_3",
"script": "BerryTreeScript",
"flag": "0"
},
diff --git a/data/maps/Route121/map.json b/data/maps/Route121/map.json
index e956f6251..aa8f07085 100644
--- a/data/maps/Route121/map.json
+++ b/data/maps/Route121/map.json
@@ -52,7 +52,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "47",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_PERSIM",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -65,7 +65,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "48",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_ASPEAR",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -78,7 +78,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "49",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_RAWST",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -91,7 +91,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "50",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_CHESTO",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -104,7 +104,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "51",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_SOIL_1",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -117,7 +117,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "52",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_NANAB_1",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -130,7 +130,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "53",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_NANAB_2",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -143,7 +143,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "54",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_SOIL_2",
"script": "BerryTreeScript",
"flag": "0"
},
diff --git a/data/maps/Route123/map.json b/data/maps/Route123/map.json
index 1bd25310a..695b50acd 100644
--- a/data/maps/Route123/map.json
+++ b/data/maps/Route123/map.json
@@ -34,7 +34,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "58",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_POMEG_3",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -47,7 +47,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "59",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_POMEG_4",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -60,7 +60,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "60",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_GREPA_1",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -73,7 +73,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "61",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_GREPA_2",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -86,7 +86,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "62",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_LEPPA_1",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -99,7 +99,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "63",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_SOIL",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -112,7 +112,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "64",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_LEPPA_2",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -151,7 +151,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "65",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_GREPA_3",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -164,7 +164,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "72",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_GREPA_4",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -177,7 +177,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "73",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_QUALOT_2",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -190,7 +190,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "74",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_QUALOT_3",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -203,7 +203,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "79",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_QUALOT_4",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -216,7 +216,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "14",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_QUALOT_1",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -229,7 +229,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "15",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_POMEG_1",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -242,7 +242,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "30",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_POMEG_2",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -320,7 +320,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "87",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_PECHA",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -333,7 +333,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "88",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_SITRUS",
"script": "BerryTreeScript",
"flag": "0"
},
@@ -346,7 +346,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "89",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_RAWST",
"script": "BerryTreeScript",
"flag": "0"
},
diff --git a/data/maps/Route130/map.json b/data/maps/Route130/map.json
index 7b4cf047c..c612eccb5 100644
--- a/data/maps/Route130/map.json
+++ b/data/maps/Route130/map.json
@@ -60,7 +60,7 @@
"movement_range_x": 0,
"movement_range_y": 0,
"trainer_type": "TRAINER_TYPE_NONE",
- "trainer_sight_or_berry_tree_id": "82",
+ "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_130_LIECHI",
"script": "BerryTreeScript",
"flag": "FLAG_TEMP_11"
},
diff --git a/data/maps/SlateportCity_Harbor/scripts.inc b/data/maps/SlateportCity_Harbor/scripts.inc
index 644911ea6..41a224f75 100644
--- a/data/maps/SlateportCity_Harbor/scripts.inc
+++ b/data/maps/SlateportCity_Harbor/scripts.inc
@@ -70,7 +70,7 @@ SlateportCity_Harbor_EventScript_AquaEscapeScene:: @ 820C9F5
removeobject LOCALID_SUBMARINE
setvar VAR_SLATEPORT_HARBOR_STATE, 2
setflag FLAG_MET_TEAM_AQUA_HARBOR
- setflag FLAG_HIDE_LILCOVE_MOTEL_SCOTT
+ setflag FLAG_HIDE_LILYCOVE_MOTEL_SCOTT
compare VAR_0x8008, 0
call_if_eq SlateportCity_Harbor_EventScript_SternApproachPlayer0
compare VAR_0x8008, 1
diff --git a/data/maps/SouthernIsland_Interior/scripts.inc b/data/maps/SouthernIsland_Interior/scripts.inc
index 0dd8cc303..2c2e6e00d 100644
--- a/data/maps/SouthernIsland_Interior/scripts.inc
+++ b/data/maps/SouthernIsland_Interior/scripts.inc
@@ -118,14 +118,14 @@ SouthernIsland_Interior_EventScript_SetLatiosBattleVars:: @ 8242BA4
setvar VAR_0x8004, SPECIES_LATIOS
setvar VAR_0x8005, 50 @ level
setvar VAR_0x8006, ITEM_SOUL_DEW
- special CreateObedientEnemyMon
+ special CreateEventLegalEnemyMon
return
SouthernIsland_Interior_EventScript_SetLatiasBattleVars:: @ 8242BB7
setvar VAR_0x8004, SPECIES_LATIAS
setvar VAR_0x8005, 50 @ level
setvar VAR_0x8006, ITEM_SOUL_DEW
- special CreateObedientEnemyMon
+ special CreateEventLegalEnemyMon
return
SouthernIsland_Interior_Movement_CameraPanUp: @ 8242BCA
diff --git a/data/maps/UnknownLinkContestRoom_25_33/map.json b/data/maps/UnknownLinkContestRoom_25_33/map.json
deleted file mode 100644
index f73ffe22e..000000000
--- a/data/maps/UnknownLinkContestRoom_25_33/map.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_33",
- "name": "UnknownLinkContestRoom_25_33",
- "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_33",
- "music": "MUS_GSC_PEWTER",
- "region_map_section": "MAPSEC_DYNAMIC",
- "requires_flash": false,
- "weather": "WEATHER_NONE",
- "map_type": "MAP_TYPE_INDOOR",
- "allow_cycling": false,
- "allow_escaping": false,
- "allow_running": false,
- "show_map_name": false,
- "battle_scene": "MAP_BATTLE_SCENE_NORMAL",
- "connections": null,
- "shared_events_map": "ContestHall",
- "shared_scripts_map": "ContestHall"
-}
diff --git a/data/maps/UnknownLinkContestRoom_25_34/map.json b/data/maps/UnknownLinkContestRoom_25_34/map.json
deleted file mode 100644
index f5ddbbe5a..000000000
--- a/data/maps/UnknownLinkContestRoom_25_34/map.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_34",
- "name": "UnknownLinkContestRoom_25_34",
- "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_34",
- "music": "MUS_GSC_PEWTER",
- "region_map_section": "MAPSEC_DYNAMIC",
- "requires_flash": false,
- "weather": "WEATHER_NONE",
- "map_type": "MAP_TYPE_INDOOR",
- "allow_cycling": false,
- "allow_escaping": false,
- "allow_running": false,
- "show_map_name": false,
- "battle_scene": "MAP_BATTLE_SCENE_NORMAL",
- "connections": null,
- "shared_events_map": "ContestHall",
- "shared_scripts_map": "ContestHall"
-}
diff --git a/data/maps/UnknownLinkContestRoom_25_29/map.json b/data/maps/UnusedContestHall1/map.json
index 72ed407ee..f0cc06947 100644
--- a/data/maps/UnknownLinkContestRoom_25_29/map.json
+++ b/data/maps/UnusedContestHall1/map.json
@@ -1,7 +1,7 @@
{
- "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_29",
- "name": "UnknownLinkContestRoom_25_29",
- "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_29",
+ "id": "MAP_UNUSED_CONTEST_HALL1",
+ "name": "UnusedContestHall1",
+ "layout": "LAYOUT_UNUSED_CONTEST_HALL1",
"music": "MUS_GSC_PEWTER",
"region_map_section": "MAPSEC_DYNAMIC",
"requires_flash": false,
diff --git a/data/maps/UnknownLinkContestRoom_25_30/map.json b/data/maps/UnusedContestHall2/map.json
index cd4d6fddd..96f47e5df 100644
--- a/data/maps/UnknownLinkContestRoom_25_30/map.json
+++ b/data/maps/UnusedContestHall2/map.json
@@ -1,7 +1,7 @@
{
- "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_30",
- "name": "UnknownLinkContestRoom_25_30",
- "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_30",
+ "id": "MAP_UNUSED_CONTEST_HALL2",
+ "name": "UnusedContestHall2",
+ "layout": "LAYOUT_UNUSED_CONTEST_HALL2",
"music": "MUS_GSC_PEWTER",
"region_map_section": "MAPSEC_DYNAMIC",
"requires_flash": false,
diff --git a/data/maps/UnknownLinkContestRoom_25_31/map.json b/data/maps/UnusedContestHall3/map.json
index 975ec382d..95d20e61d 100644
--- a/data/maps/UnknownLinkContestRoom_25_31/map.json
+++ b/data/maps/UnusedContestHall3/map.json
@@ -1,7 +1,7 @@
{
- "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_31",
- "name": "UnknownLinkContestRoom_25_31",
- "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_31",
+ "id": "MAP_UNUSED_CONTEST_HALL3",
+ "name": "UnusedContestHall3",
+ "layout": "LAYOUT_UNUSED_CONTEST_HALL3",
"music": "MUS_GSC_PEWTER",
"region_map_section": "MAPSEC_DYNAMIC",
"requires_flash": false,
diff --git a/data/maps/UnknownLinkContestRoom_25_32/map.json b/data/maps/UnusedContestHall4/map.json
index d2d673adc..b4e715842 100644
--- a/data/maps/UnknownLinkContestRoom_25_32/map.json
+++ b/data/maps/UnusedContestHall4/map.json
@@ -1,7 +1,7 @@
{
- "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_32",
- "name": "UnknownLinkContestRoom_25_32",
- "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_32",
+ "id": "MAP_UNUSED_CONTEST_HALL4",
+ "name": "UnusedContestHall4",
+ "layout": "LAYOUT_UNUSED_CONTEST_HALL4",
"music": "MUS_GSC_PEWTER",
"region_map_section": "MAPSEC_DYNAMIC",
"requires_flash": false,
diff --git a/data/maps/UnusedContestHall5/map.json b/data/maps/UnusedContestHall5/map.json
new file mode 100644
index 000000000..4c1281bf3
--- /dev/null
+++ b/data/maps/UnusedContestHall5/map.json
@@ -0,0 +1,18 @@
+{
+ "id": "MAP_UNUSED_CONTEST_HALL5",
+ "name": "UnusedContestHall5",
+ "layout": "LAYOUT_UNUSED_CONTEST_HALL5",
+ "music": "MUS_GSC_PEWTER",
+ "region_map_section": "MAPSEC_DYNAMIC",
+ "requires_flash": false,
+ "weather": "WEATHER_NONE",
+ "map_type": "MAP_TYPE_INDOOR",
+ "allow_cycling": false,
+ "allow_escaping": false,
+ "allow_running": false,
+ "show_map_name": false,
+ "battle_scene": "MAP_BATTLE_SCENE_NORMAL",
+ "connections": null,
+ "shared_events_map": "ContestHall",
+ "shared_scripts_map": "ContestHall"
+}
diff --git a/data/maps/UnusedContestHall6/map.json b/data/maps/UnusedContestHall6/map.json
new file mode 100644
index 000000000..c0a7dbb4d
--- /dev/null
+++ b/data/maps/UnusedContestHall6/map.json
@@ -0,0 +1,18 @@
+{
+ "id": "MAP_UNUSED_CONTEST_HALL6",
+ "name": "UnusedContestHall6",
+ "layout": "LAYOUT_UNUSED_CONTEST_HALL6",
+ "music": "MUS_GSC_PEWTER",
+ "region_map_section": "MAPSEC_DYNAMIC",
+ "requires_flash": false,
+ "weather": "WEATHER_NONE",
+ "map_type": "MAP_TYPE_INDOOR",
+ "allow_cycling": false,
+ "allow_escaping": false,
+ "allow_running": false,
+ "show_map_name": false,
+ "battle_scene": "MAP_BATTLE_SCENE_NORMAL",
+ "connections": null,
+ "shared_events_map": "ContestHall",
+ "shared_scripts_map": "ContestHall"
+}
diff --git a/data/maps/map_groups.json b/data/maps/map_groups.json
index 4201e814f..4268abbef 100644
--- a/data/maps/map_groups.json
+++ b/data/maps/map_groups.json
@@ -461,12 +461,12 @@
"RecordCorner",
"BattleColosseum_4P",
"ContestHall",
- "UnknownLinkContestRoom_25_29",
- "UnknownLinkContestRoom_25_30",
- "UnknownLinkContestRoom_25_31",
- "UnknownLinkContestRoom_25_32",
- "UnknownLinkContestRoom_25_33",
- "UnknownLinkContestRoom_25_34",
+ "UnusedContestHall1",
+ "UnusedContestHall2",
+ "UnusedContestHall3",
+ "UnusedContestHall4",
+ "UnusedContestHall5",
+ "UnusedContestHall6",
"ContestHallBeauty",
"ContestHallTough",
"ContestHallCool",
diff --git a/data/script_cmd_table.inc b/data/script_cmd_table.inc
index f89e0a72a..a26ce6bf2 100644
--- a/data/script_cmd_table.inc
+++ b/data/script_cmd_table.inc
@@ -205,8 +205,8 @@ gScriptCmdTable:: @ 81DB67C
.4byte ScrCmd_nop1 @ 0xca
.4byte ScrCmd_nop1 @ 0xcb
.4byte ScrCmd_nop1 @ 0xcc
- .4byte ScrCmd_setmonobedient @ 0xcd
- .4byte ScrCmd_checkmonobedience @ 0xce
+ .4byte ScrCmd_setmoneventlegal @ 0xcd
+ .4byte ScrCmd_checkmoneventlegal @ 0xce
.4byte ScrCmd_gotoram @ 0xcf
.4byte ScrCmd_nop1 @ 0xd0
.4byte ScrCmd_warpspinenter @ 0xd1
diff --git a/data/scripts/hall_of_fame.inc b/data/scripts/hall_of_fame.inc
index 91a88f348..021784f81 100644
--- a/data/scripts/hall_of_fame.inc
+++ b/data/scripts/hall_of_fame.inc
@@ -4,7 +4,7 @@ EverGrandeCity_HallOfFame_EventScript_SetGameClearFlags:: @ 82717C1
call EverGrandeCity_HallOfFame_EventScript_ResetDefeatedEventLegendaries
compare VAR_FOSSIL_MANIAC_STATE, 0
call_if_eq EverGrandeCity_HallOfFame_EventScript_SetDesertUnderpassCommentReady
- clearflag FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS
+ clearflag FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS
call EverGrandeCity_HallOfFame_EventScript_ResetEliteFour
setflag FLAG_HIDE_SLATEPORT_CITY_STERNS_SHIPYARD_MR_BRINEY
clearflag FLAG_HIDE_SS_TIDAL_CORRIDOR_MR_BRINEY
diff --git a/data/scripts/mevent_pichu.inc b/data/scripts/mevent_pichu.inc
index c51558e9e..2b9e09df9 100644
--- a/data/scripts/mevent_pichu.inc
+++ b/data/scripts/mevent_pichu.inc
@@ -30,7 +30,7 @@ SurfPichu_FullParty: @ 8674D73
SurfPichu_GiveEgg: @ 8674D7E
giveegg SPECIES_PICHU
- setmonobedient VAR_EVENT_PICHU_SLOT
+ setmoneventlegal VAR_EVENT_PICHU_SLOT
setmonmetlocation VAR_EVENT_PICHU_SLOT, METLOC_FATEFUL_ENCOUNTER
compare VAR_EVENT_PICHU_SLOT, 1
vgoto_if_eq SurfPichu_Slot1
diff --git a/data/scripts/new_game.inc b/data/scripts/new_game.inc
index 77102a001..422186695 100644
--- a/data/scripts/new_game.inc
+++ b/data/scripts/new_game.inc
@@ -1,115 +1,115 @@
EventScript_ResetAllBerries:: @ 827149D
@ Route 102
- setberrytree 2, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES
- setberrytree 1, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_102_ORAN, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_102_PECHA, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
@ Route 104
- setberrytree 11, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES
- setberrytree 13, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
- setberrytree 4, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES
- setberrytree 76, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES
- setberrytree 8, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES
- setberrytree 10, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_104_ORAN_2, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_104_PECHA, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_104_ORAN_1, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_104_CHERI_2, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_104_CHERI_1, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_104_LEPPA, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES
@ Route 116
- setberrytree 25, ITEM_TO_BERRY(ITEM_PINAP_BERRY), BERRY_STAGE_BERRIES
- setberrytree 26, ITEM_TO_BERRY(ITEM_CHESTO_BERRY), BERRY_STAGE_BERRIES
- setberrytree 66, ITEM_TO_BERRY(ITEM_CHESTO_BERRY), BERRY_STAGE_BERRIES
- setberrytree 67, ITEM_TO_BERRY(ITEM_PINAP_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_116_PINAP_1, ITEM_TO_BERRY(ITEM_PINAP_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_116_CHESTO_1, ITEM_TO_BERRY(ITEM_CHESTO_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_116_CHESTO_2, ITEM_TO_BERRY(ITEM_CHESTO_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_116_PINAP_2, ITEM_TO_BERRY(ITEM_PINAP_BERRY), BERRY_STAGE_BERRIES
@ Route 115
- setberrytree 69, ITEM_TO_BERRY(ITEM_KELPSY_BERRY), BERRY_STAGE_BERRIES
- setberrytree 70, ITEM_TO_BERRY(ITEM_KELPSY_BERRY), BERRY_STAGE_BERRIES
- setberrytree 71, ITEM_TO_BERRY(ITEM_KELPSY_BERRY), BERRY_STAGE_BERRIES
- setberrytree 55, ITEM_TO_BERRY(ITEM_BLUK_BERRY), BERRY_STAGE_BERRIES
- setberrytree 56, ITEM_TO_BERRY(ITEM_BLUK_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_115_KELPSY_1, ITEM_TO_BERRY(ITEM_KELPSY_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_115_KELPSY_2, ITEM_TO_BERRY(ITEM_KELPSY_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_115_KELPSY_3, ITEM_TO_BERRY(ITEM_KELPSY_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_115_BLUK_1, ITEM_TO_BERRY(ITEM_BLUK_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_115_BLUK_2, ITEM_TO_BERRY(ITEM_BLUK_BERRY), BERRY_STAGE_BERRIES
@ Route 103
- setberrytree 5, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES
- setberrytree 6, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES
- setberrytree 7, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_103_CHERI_1, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_103_LEPPA, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_103_CHERI_2, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES
@ Route 110
- setberrytree 16, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES
- setberrytree 17, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES
- setberrytree 18, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_110_NANAB_1, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_110_NANAB_2, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_110_NANAB_3, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES
@ Route 117
- setberrytree 29, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
- setberrytree 28, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
- setberrytree 27, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_117_WEPEAR_3, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_117_WEPEAR_2, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_117_WEPEAR_1, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
@ Route 112
- setberrytree 24, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES
- setberrytree 23, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
- setberrytree 22, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
- setberrytree 21, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_112_RAWST_2, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_112_PECHA_2, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_112_PECHA_1, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_112_RAWST_1, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES
@ Route 111
- setberrytree 19, ITEM_TO_BERRY(ITEM_RAZZ_BERRY), BERRY_STAGE_BERRIES
- setberrytree 20, ITEM_TO_BERRY(ITEM_RAZZ_BERRY), BERRY_STAGE_BERRIES
- setberrytree 80, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES
- setberrytree 81, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_111_RAZZ_1, ITEM_TO_BERRY(ITEM_RAZZ_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_111_RAZZ_2, ITEM_TO_BERRY(ITEM_RAZZ_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_111_ORAN_1, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_111_ORAN_2, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES
@ Route 114
- setberrytree 77, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES
- setberrytree 78, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES
- setberrytree 68, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_114_PERSIM_2, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_114_PERSIM_3, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_114_PERSIM_1, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES
@ Route 118
- setberrytree 31, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES
- setberrytree 33, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_118_SITRUS_1, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_118_SITRUS_2, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES
@ Route 119
- setberrytree 34, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES
- setberrytree 35, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES
- setberrytree 36, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES
- setberrytree 83, ITEM_TO_BERRY(ITEM_HONDEW_BERRY), BERRY_STAGE_BERRIES
- setberrytree 84, ITEM_TO_BERRY(ITEM_HONDEW_BERRY), BERRY_STAGE_BERRIES
- setberrytree 85, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES
- setberrytree 86, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_119_POMEG_1, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_119_POMEG_2, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_119_POMEG_3, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_119_HONDEW_1, ITEM_TO_BERRY(ITEM_HONDEW_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_119_HONDEW_2, ITEM_TO_BERRY(ITEM_HONDEW_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_119_SITRUS, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_119_LEPPA, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES
@ Route 120
- setberrytree 37, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES
- setberrytree 38, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES
- setberrytree 39, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES
- setberrytree 40, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
- setberrytree 41, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
- setberrytree 42, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
- setberrytree 46, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
- setberrytree 45, ITEM_TO_BERRY(ITEM_PINAP_BERRY), BERRY_STAGE_BERRIES
- setberrytree 44, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES
- setberrytree 43, ITEM_TO_BERRY(ITEM_RAZZ_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_120_ASPEAR_1, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_120_ASPEAR_2, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_120_ASPEAR_3, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_120_PECHA_1, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_120_PECHA_2, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_120_PECHA_3, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_120_WEPEAR, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_120_PINAP, ITEM_TO_BERRY(ITEM_PINAP_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_120_NANAB, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_120_RAZZ, ITEM_TO_BERRY(ITEM_RAZZ_BERRY), BERRY_STAGE_BERRIES
@ Route 121
- setberrytree 47, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES
- setberrytree 48, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES
- setberrytree 49, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES
- setberrytree 50, ITEM_TO_BERRY(ITEM_CHESTO_BERRY), BERRY_STAGE_BERRIES
- setberrytree 52, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES
- setberrytree 53, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_121_PERSIM, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_121_ASPEAR, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_121_RAWST, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_121_CHESTO, ITEM_TO_BERRY(ITEM_CHESTO_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_121_NANAB_1, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_121_NANAB_2, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES
@ Route 123
- setberrytree 62, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES
- setberrytree 64, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES
- setberrytree 58, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES
- setberrytree 59, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES
- setberrytree 60, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES
- setberrytree 61, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES
- setberrytree 79, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES
- setberrytree 14, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES
- setberrytree 15, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES
- setberrytree 30, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES
- setberrytree 65, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES
- setberrytree 72, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES
- setberrytree 73, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES
- setberrytree 74, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES
- setberrytree 87, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
- setberrytree 88, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES
- setberrytree 89, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_123_LEPPA_1, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_123_LEPPA_2, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_123_POMEG_3, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_123_POMEG_4, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_123_GREPA_1, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_123_GREPA_2, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_123_QUALOT_4, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_123_QUALOT_1, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_123_POMEG_1, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_123_POMEG_2, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_123_GREPA_3, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_123_GREPA_4, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_123_QUALOT_2, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_123_QUALOT_3, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_123_PECHA, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_123_SITRUS, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_123_RAWST, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES
@ Mirage Island
- setberrytree 82, ITEM_TO_BERRY(ITEM_LIECHI_BERRY), BERRY_STAGE_BERRIES
+ setberrytree BERRY_TREE_ROUTE_130_LIECHI, ITEM_TO_BERRY(ITEM_LIECHI_BERRY), BERRY_STAGE_BERRIES
return
EventScript_ResetAllMapFlags:: @ 82715DE
@@ -229,7 +229,7 @@ EventScript_ResetAllMapFlags:: @ 82715DE
setflag FLAG_HIDE_ROUTE_110_RIVAL_ON_BIKE
setflag FLAG_HIDE_ROUTE_119_RIVAL_ON_BIKE
setflag FLAG_HIDE_ROUTE_104_RIVAL
- setflag FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS
+ setflag FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS
setflag FLAG_HIDE_LAVARIDGE_TOWN_RIVAL
setflag FLAG_HIDE_LAVARIDGE_TOWN_RIVAL_ON_BIKE
setflag FLAG_HIDE_MOSSDEEP_CITY_HOUSE_2_WINGULL
diff --git a/data/specials.inc b/data/specials.inc
index 3e1d1862d..97f698379 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -490,7 +490,7 @@ gSpecials:: @ 81DBA64
def_special sub_813AF48
def_special DoDeoxysRockInteraction
def_special SetDeoxysRockPalette
- def_special CreateObedientEnemyMon
+ def_special CreateEventLegalEnemyMon
def_special StartMirageTowerDisintegration
def_special StartMirageTowerShake
def_special StartMirageTowerFossilFallAndSink
diff --git a/include/berry.h b/include/berry.h
index 3412caae5..4a5a46615 100644
--- a/include/berry.h
+++ b/include/berry.h
@@ -1,8 +1,6 @@
#ifndef GUARD_BERRY_H
#define GUARD_BERRY_H
-#include "constants/berry.h"
-
void ClearEnigmaBerries(void);
void SetEnigmaBerry(u8 *src);
bool32 IsEnigmaBerryValid(void);
diff --git a/include/constants/berry.h b/include/constants/berry.h
index 8f1e7cd82..3ba59c0f5 100644
--- a/include/constants/berry.h
+++ b/include/constants/berry.h
@@ -32,4 +32,101 @@
// - BERRY_STAGE_FLOWERING
#define NUM_WATER_STAGES 4
+// IDs for berry tree objects, indexes into berryTrees in SaveBlock1
+// Named for whatever berry is initially planted there on a new game
+// Those with no initial berry are named "soil"
+#define BERRY_TREE_ROUTE_102_PECHA 1
+#define BERRY_TREE_ROUTE_102_ORAN 2
+#define BERRY_TREE_ROUTE_104_SOIL_1 3
+#define BERRY_TREE_ROUTE_104_ORAN_1 4
+#define BERRY_TREE_ROUTE_103_CHERI_1 5
+#define BERRY_TREE_ROUTE_103_LEPPA 6
+#define BERRY_TREE_ROUTE_103_CHERI_2 7
+#define BERRY_TREE_ROUTE_104_CHERI_1 8
+#define BERRY_TREE_ROUTE_104_SOIL_2 9
+#define BERRY_TREE_ROUTE_104_LEPPA 10
+#define BERRY_TREE_ROUTE_104_ORAN_2 11
+#define BERRY_TREE_ROUTE_104_SOIL_3 12
+#define BERRY_TREE_ROUTE_104_PECHA 13
+#define BERRY_TREE_ROUTE_123_QUALOT_1 14
+#define BERRY_TREE_ROUTE_123_POMEG_1 15
+#define BERRY_TREE_ROUTE_110_NANAB_1 16
+#define BERRY_TREE_ROUTE_110_NANAB_2 17
+#define BERRY_TREE_ROUTE_110_NANAB_3 18
+#define BERRY_TREE_ROUTE_111_RAZZ_1 19
+#define BERRY_TREE_ROUTE_111_RAZZ_2 20
+#define BERRY_TREE_ROUTE_112_RAWST_1 21
+#define BERRY_TREE_ROUTE_112_PECHA_1 22
+#define BERRY_TREE_ROUTE_112_PECHA_2 23
+#define BERRY_TREE_ROUTE_112_RAWST_2 24
+#define BERRY_TREE_ROUTE_116_PINAP_1 25
+#define BERRY_TREE_ROUTE_116_CHESTO_1 26
+#define BERRY_TREE_ROUTE_117_WEPEAR_1 27
+#define BERRY_TREE_ROUTE_117_WEPEAR_2 28
+#define BERRY_TREE_ROUTE_117_WEPEAR_3 29
+#define BERRY_TREE_ROUTE_123_POMEG_2 30
+#define BERRY_TREE_ROUTE_118_SITRUS_1 31
+#define BERRY_TREE_ROUTE_118_SOIL 32
+#define BERRY_TREE_ROUTE_118_SITRUS_2 33
+#define BERRY_TREE_ROUTE_119_POMEG_1 34
+#define BERRY_TREE_ROUTE_119_POMEG_2 35
+#define BERRY_TREE_ROUTE_119_POMEG_3 36
+#define BERRY_TREE_ROUTE_120_ASPEAR_1 37
+#define BERRY_TREE_ROUTE_120_ASPEAR_2 38
+#define BERRY_TREE_ROUTE_120_ASPEAR_3 39
+#define BERRY_TREE_ROUTE_120_PECHA_1 40
+#define BERRY_TREE_ROUTE_120_PECHA_2 41
+#define BERRY_TREE_ROUTE_120_PECHA_3 42
+#define BERRY_TREE_ROUTE_120_RAZZ 43
+#define BERRY_TREE_ROUTE_120_NANAB 44
+#define BERRY_TREE_ROUTE_120_PINAP 45
+#define BERRY_TREE_ROUTE_120_WEPEAR 46
+#define BERRY_TREE_ROUTE_121_PERSIM 47
+#define BERRY_TREE_ROUTE_121_ASPEAR 48
+#define BERRY_TREE_ROUTE_121_RAWST 49
+#define BERRY_TREE_ROUTE_121_CHESTO 50
+#define BERRY_TREE_ROUTE_121_SOIL_1 51
+#define BERRY_TREE_ROUTE_121_NANAB_1 52
+#define BERRY_TREE_ROUTE_121_NANAB_2 53
+#define BERRY_TREE_ROUTE_121_SOIL_2 54
+#define BERRY_TREE_ROUTE_115_BLUK_1 55
+#define BERRY_TREE_ROUTE_115_BLUK_2 56
+#define BERRY_TREE_UNUSED 57
+#define BERRY_TREE_ROUTE_123_POMEG_3 58
+#define BERRY_TREE_ROUTE_123_POMEG_4 59
+#define BERRY_TREE_ROUTE_123_GREPA_1 60
+#define BERRY_TREE_ROUTE_123_GREPA_2 61
+#define BERRY_TREE_ROUTE_123_LEPPA_1 62
+#define BERRY_TREE_ROUTE_123_SOIL 63
+#define BERRY_TREE_ROUTE_123_LEPPA_2 64
+#define BERRY_TREE_ROUTE_123_GREPA_3 65
+#define BERRY_TREE_ROUTE_116_CHESTO_2 66
+#define BERRY_TREE_ROUTE_116_PINAP_2 67
+#define BERRY_TREE_ROUTE_114_PERSIM_1 68
+#define BERRY_TREE_ROUTE_115_KELPSY_1 69
+#define BERRY_TREE_ROUTE_115_KELPSY_2 70
+#define BERRY_TREE_ROUTE_115_KELPSY_3 71
+#define BERRY_TREE_ROUTE_123_GREPA_4 72
+#define BERRY_TREE_ROUTE_123_QUALOT_2 73
+#define BERRY_TREE_ROUTE_123_QUALOT_3 74
+#define BERRY_TREE_ROUTE_104_SOIL_4 75
+#define BERRY_TREE_ROUTE_104_CHERI_2 76
+#define BERRY_TREE_ROUTE_114_PERSIM_2 77
+#define BERRY_TREE_ROUTE_114_PERSIM_3 78
+#define BERRY_TREE_ROUTE_123_QUALOT_4 79
+#define BERRY_TREE_ROUTE_111_ORAN_1 80
+#define BERRY_TREE_ROUTE_111_ORAN_2 81
+#define BERRY_TREE_ROUTE_130_LIECHI 82
+#define BERRY_TREE_ROUTE_119_HONDEW_1 83
+#define BERRY_TREE_ROUTE_119_HONDEW_2 84
+#define BERRY_TREE_ROUTE_119_SITRUS 85
+#define BERRY_TREE_ROUTE_119_LEPPA 86
+#define BERRY_TREE_ROUTE_123_PECHA 87
+#define BERRY_TREE_ROUTE_123_SITRUS 88
+#define BERRY_TREE_ROUTE_123_RAWST 89
+
+// Remainder are unused
+
+#define BERRY_TREES_COUNT 128
+
#endif // GUARD_CONSTANTS_BERRY_H
diff --git a/include/constants/event_object_movement.h b/include/constants/event_object_movement.h
index 6a4405b65..223650081 100755
--- a/include/constants/event_object_movement.h
+++ b/include/constants/event_object_movement.h
@@ -64,7 +64,7 @@
#define MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS 0x3C
#define MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS 0x3D
#define MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS 0x3E
-#define MOVEMENT_TYPE_HIDDEN 0x3F
+#define MOVEMENT_TYPE_BURIED 0x3F
#define MOVEMENT_TYPE_WALK_IN_PLACE_DOWN 0x40
#define MOVEMENT_TYPE_WALK_IN_PLACE_UP 0x41
#define MOVEMENT_TYPE_WALK_IN_PLACE_LEFT 0x42
diff --git a/include/constants/flags.h b/include/constants/flags.h
index 9be269105..21b730de3 100644
--- a/include/constants/flags.h
+++ b/include/constants/flags.h
@@ -829,7 +829,7 @@
#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_MOM 0x310
#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_MOM 0x311
#define FLAG_HIDE_ROUTE_119_SCOTT 0x312
-#define FLAG_HIDE_LILCOVE_MOTEL_SCOTT 0x313
+#define FLAG_HIDE_LILYCOVE_MOTEL_SCOTT 0x313
#define FLAG_HIDE_MOSSDEEP_CITY_SCOTT 0x314
#define FLAG_HIDE_FANCLUB_OLD_LADY 0x315
#define FLAG_HIDE_FANCLUB_BOY 0x316
@@ -967,7 +967,7 @@
#define FLAG_HIDE_ROUTE_110_RIVAL_ON_BIKE 0x39A
#define FLAG_HIDE_ROUTE_119_RIVAL_ON_BIKE 0x39B
#define FLAG_HIDE_AQUA_HIDEOUT_GRUNTS 0x39C
-#define FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS 0x39D
+#define FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS 0x39D
#define FLAG_HIDE_MT_CHIMNEY_TEAM_AQUA 0x39E
#define FLAG_HIDE_MT_CHIMNEY_TEAM_MAGMA 0x39F
#define FLAG_HIDE_FALLARBOR_HOUSE_PROF_COZMO 0x3A0
diff --git a/include/constants/global.h b/include/constants/global.h
index 55830ae8b..ee2fd3abc 100644
--- a/include/constants/global.h
+++ b/include/constants/global.h
@@ -33,7 +33,6 @@
#define DAYCARE_MON_COUNT 2
#define POKEBLOCKS_COUNT 40
#define OBJECT_EVENTS_COUNT 16
-#define BERRY_TREES_COUNT 128
#define MAIL_COUNT 16
#define SECRET_BASES_COUNT 20
#define TV_SHOWS_COUNT 25
@@ -70,7 +69,7 @@
// party sizes
#define PARTY_SIZE 6
-#define MULTI_PARTY_SIZE PARTY_SIZE / 2
+#define MULTI_PARTY_SIZE (PARTY_SIZE / 2)
#define FRONTIER_PARTY_SIZE 3
#define FRONTIER_DOUBLES_PARTY_SIZE 4
#define FRONTIER_MULTI_PARTY_SIZE 2
diff --git a/include/constants/layouts.h b/include/constants/layouts.h
index 9d5e877b0..db92c9594 100755
--- a/include/constants/layouts.h
+++ b/include/constants/layouts.h
@@ -79,7 +79,7 @@
#define LAYOUT_FALLARBOR_TOWN_LEFTOVER_RSCONTEST_LOBBY 72
#define LAYOUT_FALLARBOR_TOWN_LEFTOVER_RSCONTEST_HALL 73
#define LAYOUT_LILYCOVE_CITY_HOUSE2 74
-#define LAYOUT_UNKNOWN_08428450 75
+#define LAYOUT_UNUSED_CONTEST_ROOM1 75
#define LAYOUT_VERDANTURF_TOWN_WANDAS_HOUSE 76
#define LAYOUT_PACIFIDLOG_TOWN_HOUSE1 77
#define LAYOUT_PACIFIDLOG_TOWN_HOUSE2 78
@@ -87,8 +87,8 @@
#define LAYOUT_HOUSE_WITH_BED 80
#define LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_1F 81
#define LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_2F 82
-#define LAYOUT_UNKNOWN_084294C4 83
-#define LAYOUT_UNKNOWN_084294E8 84
+#define LAYOUT_UNUSED_CONTEST_ROOM2 83
+#define LAYOUT_UNUSED_CONTEST_ROOM3 84
#define LAYOUT_SLATEPORT_CITY_POKEMON_FAN_CLUB 85
#define LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_1F 86
#define LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_2F 87
@@ -174,20 +174,20 @@
#define LAYOUT_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM 167
#define LAYOUT_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM 168
#define LAYOUT_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM 169
-#define LAYOUT_UNKNOWN_0843E6C0 170
-#define LAYOUT_UNKNOWN_0843E6E4 171
-#define LAYOUT_UNKNOWN_0843E708 172
-#define LAYOUT_UNKNOWN_0843E72C 173
-#define LAYOUT_UNKNOWN_0843E750 174
-#define LAYOUT_UNKNOWN_0843E774 175
-#define LAYOUT_UNKNOWN_0843E798 176
-#define LAYOUT_UNKNOWN_0843E7BC 177
-#define LAYOUT_UNKNOWN_0843E7E0 178
-#define LAYOUT_UNKNOWN_0843E804 179
-#define LAYOUT_UNKNOWN_0843E828 180
-#define LAYOUT_UNKNOWN_0843E84C 181
-#define LAYOUT_UNKNOWN_0843E870 182
-#define LAYOUT_UNKNOWN_0843E894 183
+#define LAYOUT_UNUSED_CAVE1 170
+#define LAYOUT_UNUSED_CAVE2 171
+#define LAYOUT_UNUSED_CAVE3 172
+#define LAYOUT_UNUSED_CAVE4 173
+#define LAYOUT_UNUSED_CAVE5 174
+#define LAYOUT_UNUSED_CAVE6 175
+#define LAYOUT_UNUSED_CAVE7 176
+#define LAYOUT_UNUSED_CAVE8 177
+#define LAYOUT_UNUSED_CAVE9 178
+#define LAYOUT_UNUSED_CAVE10 179
+#define LAYOUT_UNUSED_CAVE11 180
+#define LAYOUT_UNUSED_CAVE12 181
+#define LAYOUT_UNUSED_CAVE13 182
+#define LAYOUT_UNUSED_CAVE14 183
#define LAYOUT_NEW_MAUVILLE_ENTRANCE 184
#define LAYOUT_NEW_MAUVILLE_INSIDE 185
#define LAYOUT_ABANDONED_SHIP_DECK 186
@@ -230,12 +230,12 @@
#define LAYOUT_RECORD_CORNER 223
#define LAYOUT_BATTLE_COLOSSEUM_4P 224
#define LAYOUT_CONTEST_HALL 225
-#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_29 226
-#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_30 227
-#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_31 228
-#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_32 229
-#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_33 230
-#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_34 231
+#define LAYOUT_UNUSED_CONTEST_HALL1 226
+#define LAYOUT_UNUSED_CONTEST_HALL2 227
+#define LAYOUT_UNUSED_CONTEST_HALL3 228
+#define LAYOUT_UNUSED_CONTEST_HALL4 229
+#define LAYOUT_UNUSED_CONTEST_HALL5 230
+#define LAYOUT_UNUSED_CONTEST_HALL6 231
#define LAYOUT_CONTEST_HALL_BEAUTY 232
#define LAYOUT_CONTEST_HALL_TOUGH 233
#define LAYOUT_CONTEST_HALL_COOL 234
@@ -246,7 +246,7 @@
#define LAYOUT_SAFARI_ZONE_NORTH 239
#define LAYOUT_SAFARI_ZONE_SOUTHWEST 240
#define LAYOUT_SAFARI_ZONE_SOUTH 241
-#define LAYOUT_UNKNOWN_08447028 242
+#define LAYOUT_UNUSED_OUTDOOR_AREA 242
#define LAYOUT_ROUTE109_SEASHORE_HOUSE 243
#define LAYOUT_ROUTE110_TRICK_HOUSE_ENTRANCE 244
#define LAYOUT_ROUTE110_TRICK_HOUSE_END 245
@@ -363,7 +363,7 @@
#define LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM 356
#define LAYOUT_SOOTOPOLIS_CITY_LEGENDS_BATTLE 357
#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS 358
-#define LAYOUT_UNKNOWN_084693AC 359
+#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_UNUSED 359
#define LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY 360
#define LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR 361
#define LAYOUT_BATTLE_PYRAMID_SQUARE01 362
diff --git a/include/constants/map_groups.h b/include/constants/map_groups.h
index 69355635b..c650600e8 100755
--- a/include/constants/map_groups.h
+++ b/include/constants/map_groups.h
@@ -402,67 +402,67 @@
#define MAP_METEOR_FALLS_STEVENS_CAVE (107 | (24 << 8))
// Map Group 25
-#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8))
-#define MAP_SECRET_BASE_BROWN_CAVE1 (1 | (25 << 8))
-#define MAP_SECRET_BASE_BLUE_CAVE1 (2 | (25 << 8))
-#define MAP_SECRET_BASE_YELLOW_CAVE1 (3 | (25 << 8))
-#define MAP_SECRET_BASE_TREE1 (4 | (25 << 8))
-#define MAP_SECRET_BASE_SHRUB1 (5 | (25 << 8))
-#define MAP_SECRET_BASE_RED_CAVE2 (6 | (25 << 8))
-#define MAP_SECRET_BASE_BROWN_CAVE2 (7 | (25 << 8))
-#define MAP_SECRET_BASE_BLUE_CAVE2 (8 | (25 << 8))
-#define MAP_SECRET_BASE_YELLOW_CAVE2 (9 | (25 << 8))
-#define MAP_SECRET_BASE_TREE2 (10 | (25 << 8))
-#define MAP_SECRET_BASE_SHRUB2 (11 | (25 << 8))
-#define MAP_SECRET_BASE_RED_CAVE3 (12 | (25 << 8))
-#define MAP_SECRET_BASE_BROWN_CAVE3 (13 | (25 << 8))
-#define MAP_SECRET_BASE_BLUE_CAVE3 (14 | (25 << 8))
-#define MAP_SECRET_BASE_YELLOW_CAVE3 (15 | (25 << 8))
-#define MAP_SECRET_BASE_TREE3 (16 | (25 << 8))
-#define MAP_SECRET_BASE_SHRUB3 (17 | (25 << 8))
-#define MAP_SECRET_BASE_RED_CAVE4 (18 | (25 << 8))
-#define MAP_SECRET_BASE_BROWN_CAVE4 (19 | (25 << 8))
-#define MAP_SECRET_BASE_BLUE_CAVE4 (20 | (25 << 8))
-#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8))
-#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8))
-#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8))
-#define MAP_BATTLE_COLOSSEUM_2P (24 | (25 << 8))
-#define MAP_TRADE_CENTER (25 | (25 << 8))
-#define MAP_RECORD_CORNER (26 | (25 << 8))
-#define MAP_BATTLE_COLOSSEUM_4P (27 | (25 << 8))
-#define MAP_CONTEST_HALL (28 | (25 << 8))
-#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_29 (29 | (25 << 8))
-#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_30 (30 | (25 << 8))
-#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_31 (31 | (25 << 8))
-#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_32 (32 | (25 << 8))
-#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_33 (33 | (25 << 8))
-#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_34 (34 | (25 << 8))
-#define MAP_CONTEST_HALL_BEAUTY (35 | (25 << 8))
-#define MAP_CONTEST_HALL_TOUGH (36 | (25 << 8))
-#define MAP_CONTEST_HALL_COOL (37 | (25 << 8))
-#define MAP_CONTEST_HALL_SMART (38 | (25 << 8))
-#define MAP_CONTEST_HALL_CUTE (39 | (25 << 8))
-#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8))
-#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8))
-#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8))
-#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE01 (44 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE02 (45 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE03 (46 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE04 (47 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE05 (48 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE06 (49 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE07 (50 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE08 (51 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE09 (52 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE10 (53 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE11 (54 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE12 (55 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE13 (56 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE14 (57 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE15 (58 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE16 (59 | (25 << 8))
-#define MAP_UNION_ROOM (60 | (25 << 8))
+#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8))
+#define MAP_SECRET_BASE_BROWN_CAVE1 (1 | (25 << 8))
+#define MAP_SECRET_BASE_BLUE_CAVE1 (2 | (25 << 8))
+#define MAP_SECRET_BASE_YELLOW_CAVE1 (3 | (25 << 8))
+#define MAP_SECRET_BASE_TREE1 (4 | (25 << 8))
+#define MAP_SECRET_BASE_SHRUB1 (5 | (25 << 8))
+#define MAP_SECRET_BASE_RED_CAVE2 (6 | (25 << 8))
+#define MAP_SECRET_BASE_BROWN_CAVE2 (7 | (25 << 8))
+#define MAP_SECRET_BASE_BLUE_CAVE2 (8 | (25 << 8))
+#define MAP_SECRET_BASE_YELLOW_CAVE2 (9 | (25 << 8))
+#define MAP_SECRET_BASE_TREE2 (10 | (25 << 8))
+#define MAP_SECRET_BASE_SHRUB2 (11 | (25 << 8))
+#define MAP_SECRET_BASE_RED_CAVE3 (12 | (25 << 8))
+#define MAP_SECRET_BASE_BROWN_CAVE3 (13 | (25 << 8))
+#define MAP_SECRET_BASE_BLUE_CAVE3 (14 | (25 << 8))
+#define MAP_SECRET_BASE_YELLOW_CAVE3 (15 | (25 << 8))
+#define MAP_SECRET_BASE_TREE3 (16 | (25 << 8))
+#define MAP_SECRET_BASE_SHRUB3 (17 | (25 << 8))
+#define MAP_SECRET_BASE_RED_CAVE4 (18 | (25 << 8))
+#define MAP_SECRET_BASE_BROWN_CAVE4 (19 | (25 << 8))
+#define MAP_SECRET_BASE_BLUE_CAVE4 (20 | (25 << 8))
+#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8))
+#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8))
+#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8))
+#define MAP_BATTLE_COLOSSEUM_2P (24 | (25 << 8))
+#define MAP_TRADE_CENTER (25 | (25 << 8))
+#define MAP_RECORD_CORNER (26 | (25 << 8))
+#define MAP_BATTLE_COLOSSEUM_4P (27 | (25 << 8))
+#define MAP_CONTEST_HALL (28 | (25 << 8))
+#define MAP_UNUSED_CONTEST_HALL1 (29 | (25 << 8))
+#define MAP_UNUSED_CONTEST_HALL2 (30 | (25 << 8))
+#define MAP_UNUSED_CONTEST_HALL3 (31 | (25 << 8))
+#define MAP_UNUSED_CONTEST_HALL4 (32 | (25 << 8))
+#define MAP_UNUSED_CONTEST_HALL5 (33 | (25 << 8))
+#define MAP_UNUSED_CONTEST_HALL6 (34 | (25 << 8))
+#define MAP_CONTEST_HALL_BEAUTY (35 | (25 << 8))
+#define MAP_CONTEST_HALL_TOUGH (36 | (25 << 8))
+#define MAP_CONTEST_HALL_COOL (37 | (25 << 8))
+#define MAP_CONTEST_HALL_SMART (38 | (25 << 8))
+#define MAP_CONTEST_HALL_CUTE (39 | (25 << 8))
+#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8))
+#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8))
+#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8))
+#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE01 (44 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE02 (45 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE03 (46 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE04 (47 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE05 (48 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE06 (49 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE07 (50 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE08 (51 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE09 (52 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE10 (53 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE11 (54 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE12 (55 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE13 (56 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE14 (57 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE15 (58 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE16 (59 | (25 << 8))
+#define MAP_UNION_ROOM (60 | (25 << 8))
// Map Group 26
#define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8))
diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h
index d4f6e5684..e32ddf496 100644
--- a/include/constants/pokemon.h
+++ b/include/constants/pokemon.h
@@ -164,15 +164,15 @@
#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_MARINE_RIBBON 72
+#define MON_DATA_LAND_RIBBON 73
+#define MON_DATA_SKY_RIBBON 74
+#define MON_DATA_COUNTRY_RIBBON 75
+#define MON_DATA_NATIONAL_RIBBON 76
+#define MON_DATA_EARTH_RIBBON 77
+#define MON_DATA_WORLD_RIBBON 78
+#define MON_DATA_FILLER 79
+#define MON_DATA_EVENT_LEGAL 80
#define MON_DATA_KNOWN_MOVES 81
#define MON_DATA_RIBBON_COUNT 82
#define MON_DATA_RIBBONS 83
diff --git a/include/constants/secret_bases.h b/include/constants/secret_bases.h
index 2f405317d..e9188fbf5 100755
--- a/include/constants/secret_bases.h
+++ b/include/constants/secret_bases.h
@@ -12,106 +12,160 @@
// The secret base's map is determined by (id / 10). The ones
// digit is used to differentiate secret bases using the same map.
// Therefore, each secret base map can be used by up to 10 different
-// secret bases in the game. These ids are 1-based, but there is no
-// apparent reason for that.
+// secret bases in the game.
+
+// * 4 is for each byte of data per secret base group in sSecretBaseEntrancePositions
+// They are the map number, the entrance warp id, and the x/y position in front of the computer
+#define SECRET_BASE_GROUP(idx) ((idx) * 4)
+#define SECRET_BASE_ID_TO_GROUP(baseId) SECRET_BASE_GROUP((baseId) / 10)
#define SECRET_BASE_RED_CAVE1_1 1
#define SECRET_BASE_RED_CAVE1_2 2
#define SECRET_BASE_RED_CAVE1_3 3
+#define SECRET_BASE_RED_CAVE1 SECRET_BASE_GROUP(0)
+
#define SECRET_BASE_RED_CAVE2_1 11
#define SECRET_BASE_RED_CAVE2_2 12
#define SECRET_BASE_RED_CAVE2_3 13
+#define SECRET_BASE_RED_CAVE2 SECRET_BASE_GROUP(1)
+
#define SECRET_BASE_RED_CAVE3_1 21
#define SECRET_BASE_RED_CAVE3_2 22
#define SECRET_BASE_RED_CAVE3_3 23
+#define SECRET_BASE_RED_CAVE3 SECRET_BASE_GROUP(2)
+
#define SECRET_BASE_RED_CAVE4_1 31
#define SECRET_BASE_RED_CAVE4_2 32
#define SECRET_BASE_RED_CAVE4_3 33
+#define SECRET_BASE_RED_CAVE4 SECRET_BASE_GROUP(3)
+
#define SECRET_BASE_BROWN_CAVE1_1 41
#define SECRET_BASE_BROWN_CAVE1_2 42
#define SECRET_BASE_BROWN_CAVE1_3 43
+#define SECRET_BASE_BROWN_CAVE1 SECRET_BASE_GROUP(4)
+
#define SECRET_BASE_BROWN_CAVE2_1 51
#define SECRET_BASE_BROWN_CAVE2_2 52
#define SECRET_BASE_BROWN_CAVE2_3 53
+#define SECRET_BASE_BROWN_CAVE2 SECRET_BASE_GROUP(5)
+
#define SECRET_BASE_BROWN_CAVE3_1 61
#define SECRET_BASE_BROWN_CAVE3_2 62
#define SECRET_BASE_BROWN_CAVE3_3 63
+#define SECRET_BASE_BROWN_CAVE3 SECRET_BASE_GROUP(6)
+
#define SECRET_BASE_BROWN_CAVE4_1 71
#define SECRET_BASE_BROWN_CAVE4_2 72
#define SECRET_BASE_BROWN_CAVE4_3 73
+#define SECRET_BASE_BROWN_CAVE4 SECRET_BASE_GROUP(7)
+
#define SECRET_BASE_BLUE_CAVE1_1 81
#define SECRET_BASE_BLUE_CAVE1_2 82
#define SECRET_BASE_BLUE_CAVE1_3 83
+#define SECRET_BASE_BLUE_CAVE1 SECRET_BASE_GROUP(8)
+
#define SECRET_BASE_BLUE_CAVE2_1 91
#define SECRET_BASE_BLUE_CAVE2_2 92
#define SECRET_BASE_BLUE_CAVE2_3 93
+#define SECRET_BASE_BLUE_CAVE2 SECRET_BASE_GROUP(9)
+
#define SECRET_BASE_BLUE_CAVE3_1 101
#define SECRET_BASE_BLUE_CAVE3_2 102
#define SECRET_BASE_BLUE_CAVE3_3 103
+#define SECRET_BASE_BLUE_CAVE3 SECRET_BASE_GROUP(10)
+
#define SECRET_BASE_BLUE_CAVE4_1 111
#define SECRET_BASE_BLUE_CAVE4_2 112
#define SECRET_BASE_BLUE_CAVE4_3 113
+#define SECRET_BASE_BLUE_CAVE4 SECRET_BASE_GROUP(11)
+
#define SECRET_BASE_YELLOW_CAVE1_1 121
#define SECRET_BASE_YELLOW_CAVE1_2 122
#define SECRET_BASE_YELLOW_CAVE1_3 123
+#define SECRET_BASE_YELLOW_CAVE1 SECRET_BASE_GROUP(12)
+
#define SECRET_BASE_YELLOW_CAVE2_1 131
#define SECRET_BASE_YELLOW_CAVE2_2 132
#define SECRET_BASE_YELLOW_CAVE2_3 133
+#define SECRET_BASE_YELLOW_CAVE2 SECRET_BASE_GROUP(13)
+
#define SECRET_BASE_YELLOW_CAVE3_1 141
#define SECRET_BASE_YELLOW_CAVE3_2 142
#define SECRET_BASE_YELLOW_CAVE3_3 143
+#define SECRET_BASE_YELLOW_CAVE3 SECRET_BASE_GROUP(14)
+
#define SECRET_BASE_YELLOW_CAVE4_1 151
#define SECRET_BASE_YELLOW_CAVE4_2 152
#define SECRET_BASE_YELLOW_CAVE4_3 153
+#define SECRET_BASE_YELLOW_CAVE4 SECRET_BASE_GROUP(15)
+
#define SECRET_BASE_TREE1_1 161
#define SECRET_BASE_TREE1_2 162
#define SECRET_BASE_TREE1_3 163
#define SECRET_BASE_TREE1_4 164
+#define SECRET_BASE_TREE1 SECRET_BASE_GROUP(16)
+
#define SECRET_BASE_TREE2_1 171
#define SECRET_BASE_TREE2_2 172
#define SECRET_BASE_TREE2_3 173
#define SECRET_BASE_TREE2_4 174
+#define SECRET_BASE_TREE2 SECRET_BASE_GROUP(17)
+
#define SECRET_BASE_TREE3_1 181
#define SECRET_BASE_TREE3_2 182
#define SECRET_BASE_TREE3_3 183
+#define SECRET_BASE_TREE3 SECRET_BASE_GROUP(18)
+
#define SECRET_BASE_TREE4_1 191
#define SECRET_BASE_TREE4_2 192
#define SECRET_BASE_TREE4_3 193
+#define SECRET_BASE_TREE4 SECRET_BASE_GROUP(19)
+
#define SECRET_BASE_SHRUB1_1 201
#define SECRET_BASE_SHRUB1_2 202
#define SECRET_BASE_SHRUB1_3 203
#define SECRET_BASE_SHRUB1_4 204
+#define SECRET_BASE_SHRUB1 SECRET_BASE_GROUP(20)
+
#define SECRET_BASE_SHRUB2_1 211
#define SECRET_BASE_SHRUB2_2 212
#define SECRET_BASE_SHRUB2_3 213
+#define SECRET_BASE_SHRUB2 SECRET_BASE_GROUP(21)
+
#define SECRET_BASE_SHRUB3_1 221
#define SECRET_BASE_SHRUB3_2 222
#define SECRET_BASE_SHRUB3_3 223
+#define SECRET_BASE_SHRUB3 SECRET_BASE_GROUP(22)
+
#define SECRET_BASE_SHRUB4_1 231
#define SECRET_BASE_SHRUB4_2 232
#define SECRET_BASE_SHRUB4_3 233
+#define SECRET_BASE_SHRUB4 SECRET_BASE_GROUP(23)
+
+#define NUM_SECRET_BASE_GROUPS 24
+
#endif // GUARD_CONSTANTS_SECRET_BASES_H
diff --git a/include/event_object_movement.h b/include/event_object_movement.h
index 247db9efc..1e754dcd9 100644
--- a/include/event_object_movement.h
+++ b/include/event_object_movement.h
@@ -255,7 +255,7 @@ void MovementType_CopyPlayer(struct Sprite *);
void MovementType_TreeDisguise(struct Sprite *);
void MovementType_MountainDisguise(struct Sprite *);
void MovementType_CopyPlayerInGrass(struct Sprite *);
-void MovementType_Hidden(struct Sprite *);
+void MovementType_Buried(struct Sprite *);
void MovementType_WalkInPlace(struct Sprite *);
void MovementType_JogInPlace(struct Sprite *);
void MovementType_RunInPlace(struct Sprite *);
@@ -413,7 +413,7 @@ bool8 cph_IM_DIFFERENT(struct ObjectEvent *, struct Sprite *, u8, bool8(u8));
bool8 CopyablePlayerMovement_GoSpeed4(struct ObjectEvent *, struct Sprite *, u8, bool8(u8));
bool8 CopyablePlayerMovement_Jump(struct ObjectEvent *, struct Sprite *, u8, bool8(u8));
u8 MovementType_CopyPlayerInGrass_Step1(struct ObjectEvent *, struct Sprite *);
-u8 MovementType_Hidden_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_Buried_Step0(struct ObjectEvent *, struct Sprite *);
u8 MovementType_WalkInPlace_Step0(struct ObjectEvent *, struct Sprite *);
u8 MovementType_MoveInPlace_Step1(struct ObjectEvent *, struct Sprite *);
u8 MovementType_WalkSlowlyInPlace_Step0(struct ObjectEvent *, struct Sprite *);
diff --git a/include/global.h b/include/global.h
index 4ccd2be50..5b1a7b44b 100644
--- a/include/global.h
+++ b/include/global.h
@@ -9,6 +9,7 @@
#include "constants/flags.h"
#include "constants/vars.h"
#include "constants/species.h"
+#include "constants/berry.h"
// Prevent cross-jump optimization.
#define BLOCK_CROSS_JUMP asm("");
@@ -500,7 +501,7 @@ struct SecretBaseParty
struct SecretBase
{
/*0x1A9C*/ u8 secretBaseId;
- /*0x1A9D*/ u8 sbr_field_1_0:4;
+ /*0x1A9D*/ bool8 toRegister:4;
/*0x1A9D*/ u8 gender:1;
/*0x1A9D*/ u8 battledOwnerToday:1;
/*0x1A9D*/ u8 registryStatus:2;
@@ -509,7 +510,7 @@ struct SecretBase
/*0x1AA9*/ u8 language;
/*0x1AAA*/ u16 numSecretBasesReceived;
/*0x1AAC*/ u8 numTimesEntered;
- /*0x1AAD*/ u8 sbr_field_11;
+ /*0x1AAD*/ u8 unused;
/*0x1AAE*/ u8 decorations[DECOR_MAX_SECRET_BASE];
/*0x1ABE*/ u8 decorationPositions[DECOR_MAX_SECRET_BASE];
/*0x1AD0*/ struct SecretBaseParty party;
@@ -897,6 +898,41 @@ struct MysteryEventStruct
/*0x344 0x3570*/ u32 unk_344[2][5];
}; // 0x36C 0x3598
+// For external event data storage. The majority of these may have never been used.
+struct ExternalEventData
+{
+ u8 unknownExternalDataFields1[7]; // if actually used, may be broken up into different fields.
+ u32 currentPokeCoupons; // PokéCoupons stored by Pokémon Colosseum and XD from Mt. Battle runs. Earned PokéCoupons are also added to totalEarnedPokeCoupons.
+ u32 totalEarnedPokeCoupons; // Used by the JP Colosseum bonus disc. Determines PokéCoupon rank to distribute rewards. Unread in International games.
+ u8 unknownExternalDataFields2[5]; // if actually used, may be broken up into different fields.
+} __attribute__((packed)); /*size = 0x14*/
+
+// For external event flags. The majority of these may have never been used.
+struct ExternalEventFlags
+{
+ u8 unknownFlag1;
+ u8 receivedWishmakerJirachi; // may also be used for Ageto Celebi?
+ u8 unknownFlag3;
+ u8 unknownFlag4;
+ u8 unknownFlag5;
+ u8 unknownFlag6;
+ u8 unknownFlag7;
+ u8 unknownFlag8;
+ u8 unknownFlag9;
+ u8 unknownFlag10;
+ u8 unknownFlag11;
+ u8 unknownFlag12;
+ u8 unknownFlag13;
+ u8 unknownFlag14;
+ u8 unknownFlag15;
+ u8 unknownFlag16;
+ u8 unknownFlag17;
+ u8 unknownFlag18;
+ u8 unknownFlag19;
+ u8 unknownFlag20;
+
+};/*size = 0x14*/
+
struct SaveBlock1
{
/*0x00*/ struct Coords16 pos;
@@ -970,7 +1006,9 @@ struct SaveBlock1
/*0x2e90*/ struct ContestWinner contestWinners[NUM_CONTEST_WINNERS]; // see CONTEST_WINNER_*
/*0x3030*/ struct DayCare daycare;
/*0x3150*/ struct LinkBattleRecords linkBattleRecords;
- /*0x31A8*/ u8 giftRibbons[52];
+ /*0x31A8*/ u8 giftRibbons[11];
+ /*0x31B3*/ struct ExternalEventData externalEventData;
+ /*0x31C7*/ struct ExternalEventFlags externalEventFlags;
/*0x31DC*/ struct Roamer roamer;
/*0x31F8*/ struct EnigmaBerry enigmaBerry;
/*0x322C*/ struct MEventBuffers unk_322C;
diff --git a/include/pokemon.h b/include/pokemon.h
index 654af3031..7d6e960d7 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -65,15 +65,15 @@ struct PokemonSubstruct3
/* 0x0A */ u32 victoryRibbon:1;
/* 0x0A */ u32 artistRibbon:1;
/* 0x0A */ u32 effortRibbon:1;
- /* 0x0A */ u32 giftRibbon1:1;
- /* 0x0A */ u32 giftRibbon2:1;
- /* 0x0A */ u32 giftRibbon3:1;
- /* 0x0A */ u32 giftRibbon4:1;
- /* 0x0B */ u32 giftRibbon5:1;
- /* 0x0B */ u32 giftRibbon6:1;
- /* 0x0B */ u32 giftRibbon7:1;
- /* 0x0B */ u32 fatefulEncounter:4;
- /* 0x0B */ u32 obedient:1;
+ /* 0x0A */ u32 marineRibbon:1; // never distributed
+ /* 0x0A */ u32 landRibbon:1; // never distributed
+ /* 0x0A */ u32 skyRibbon:1; // never distributed
+ /* 0x0A */ u32 countryRibbon:1; // distributed during Pokémon Festa '04 and '05 to tournament winners
+ /* 0x0B */ u32 nationalRibbon:1;
+ /* 0x0B */ u32 earthRibbon:1;
+ /* 0x0B */ u32 worldRibbon:1; // distributed during Pokémon Festa '04 and '05 to tournament winners
+ /* 0x0B */ u32 filler:4;
+ /* 0x0B */ u32 eventLegal:1; // controls Mew & Deoxys obedience; if set, Pokémon is a fateful encounter in Gen 4+; set for in-game event island legendaries, some distributed events, and Pokémon from XD: Gale of Darkness.
};
union PokemonSubstruct
@@ -286,12 +286,12 @@ void CreateBattleTowerMon2(struct Pokemon *mon, struct BattleTowerPokemon *src,
void CreateApprenticeMon(struct Pokemon *mon, const struct Apprentice *src, u8 monId);
void CreateMonWithEVSpreadNatureOTID(struct Pokemon *mon, u16 species, u8 level, u8 nature, u8 fixedIV, u8 evSpread, u32 otId);
void ConvertPokemonToBattleTowerPokemon(struct Pokemon *mon, struct BattleTowerPokemon *dest);
-void CreateObedientMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId);
+void CreateEventLegalMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId);
bool8 ShouldIgnoreDeoxysForm(u8 caseId, u8 battlerId);
void SetDeoxysStats(void);
u16 GetUnionRoomTrainerPic(void);
u16 GetUnionRoomTrainerClass(void);
-void CreateObedientEnemyMon(void);
+void CreateEventLegalEnemyMon(void);
void CalculateMonStats(struct Pokemon *mon);
void BoxMonToMon(const struct BoxPokemon *src, struct Pokemon *dest);
u8 GetLevelFromMonExp(struct Pokemon *mon);
diff --git a/include/trainer_see.h b/include/trainer_see.h
index 7a20671ea..ab808c720 100644
--- a/include/trainer_see.h
+++ b/include/trainer_see.h
@@ -17,7 +17,7 @@ extern bool8 gTrainerApproachedPlayer;
extern u8 gApproachingTrainerId;
bool8 CheckForTrainersWantingBattle(void);
-void SetHiddenTrainerMovement(struct ObjectEvent *var);
+void SetBuriedTrainerMovement(struct ObjectEvent *var);
void DoTrainerApproach(void);
void TryPrepareSecondApproachingTrainer(void);
u8 FldEff_ExclamationMarkIcon(void);
diff --git a/src/apprentice.c b/src/apprentice.c
index 20c0cb9e3..8a8de009c 100644
--- a/src/apprentice.c
+++ b/src/apprentice.c
@@ -1083,7 +1083,7 @@ static void ApprenticeBufferString(void)
StringCopy(stringDst, ItemId_GetName(PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].data));
break;
case APPRENTICE_BUFF_NAME:
- TVShowConvertInternationalString(text, GetApprenticeNameInLanguage(PLAYER_APPRENTICE.id, LANGUAGE_ENGLISH), LANGUAGE_ENGLISH);
+ TVShowConvertInternationalString(text, GetApprenticeNameInLanguage(PLAYER_APPRENTICE.id, GAME_LANGUAGE), GAME_LANGUAGE);
StringCopy(stringDst, text);
break;
case APPRENTICE_BUFF_LEVEL:
diff --git a/src/battle_message.c b/src/battle_message.c
index 3920f94cf..46444a8fa 100644
--- a/src/battle_message.c
+++ b/src/battle_message.c
@@ -21,7 +21,6 @@
#include "window.h"
#include "constants/battle_dome.h"
#include "constants/battle_string_ids.h"
-#include "constants/berry.h"
#include "constants/frontier_util.h"
#include "constants/items.h"
#include "constants/moves.h"
diff --git a/src/battle_pike.c b/src/battle_pike.c
index a161b88b8..ed18b2f71 100644
--- a/src/battle_pike.c
+++ b/src/battle_pike.c
@@ -1326,7 +1326,7 @@ bool8 InBattlePike(void)
return gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM
|| gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL
|| gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS
- || gMapHeader.mapLayoutId == LAYOUT_UNKNOWN_084693AC;
+ || gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_UNUSED;
}
static void SetHintedRoom(void)
diff --git a/src/battle_util.c b/src/battle_util.c
index b7919f904..2bf06f331 100644
--- a/src/battle_util.c
+++ b/src/battle_util.c
@@ -29,7 +29,6 @@
#include "constants/battle_move_effects.h"
#include "constants/battle_script_commands.h"
#include "constants/battle_string_ids.h"
-#include "constants/berry.h"
#include "constants/hold_effects.h"
#include "constants/items.h"
#include "constants/moves.h"
@@ -3950,14 +3949,14 @@ u8 GetMoveTarget(u16 move, u8 setTarget)
return targetBattler;
}
-static bool32 HasObedientBitSet(u8 battlerId)
+static bool32 IsNotEventLegalMewOrDeoxys(u8 battlerId)
{
if (GetBattlerSide(battlerId) == B_SIDE_OPPONENT)
return TRUE;
if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES, NULL) != SPECIES_DEOXYS
&& GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES, NULL) != SPECIES_MEW)
return TRUE;
- return GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_OBEDIENCE, NULL);
+ return GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_EVENT_LEGAL, NULL);
}
u8 IsMonDisobedient(void)
@@ -3971,7 +3970,7 @@ u8 IsMonDisobedient(void)
if (GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT)
return 0;
- if (HasObedientBitSet(gBattlerAttacker)) // only if species is Mew or Deoxys
+ if (IsNotEventLegalMewOrDeoxys(gBattlerAttacker)) // only if species is Mew or Deoxys
{
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && GetBattlerPosition(gBattlerAttacker) == 2)
return 0;
diff --git a/src/berry.c b/src/berry.c
index 022fdc934..ea62deabf 100644
--- a/src/berry.c
+++ b/src/berry.c
@@ -11,7 +11,6 @@
#include "random.h"
#include "string_util.h"
#include "text.h"
-#include "constants/berry.h"
#include "constants/event_object_movement.h"
#include "constants/items.h"
diff --git a/src/berry_blender.c b/src/berry_blender.c
index 08a25c58a..252407562 100644
--- a/src/berry_blender.c
+++ b/src/berry_blender.c
@@ -34,7 +34,6 @@
#include "new_game.h"
#include "save.h"
#include "strings.h"
-#include "constants/berry.h"
#include "constants/game_stat.h"
#include "constants/items.h"
#include "constants/rgb.h"
diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c
index 089228b17..5be149b0f 100644
--- a/src/berry_tag_screen.c
+++ b/src/berry_tag_screen.c
@@ -26,7 +26,6 @@
#include "item_menu_icons.h"
#include "decompress.h"
#include "international_string_util.h"
-#include "constants/berry.h"
#include "constants/items.h"
#include "constants/rgb.h"
#include "constants/songs.h"
diff --git a/src/contest.c b/src/contest.c
index 36c32683a..8d8bd666c 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -5998,7 +5998,7 @@ static u8 GetMonNicknameLanguage(u8 *nickname)
u8 ret = GAME_LANGUAGE;
if (nickname[0] == EXT_CTRL_CODE_BEGIN && nickname[1] == EXT_CTRL_CODE_JPN)
- return LANGUAGE_ENGLISH;
+ return GAME_LANGUAGE;
if (StringLength(nickname) < PLAYER_NAME_LENGTH - 1)
{
diff --git a/src/crt0.s b/src/crt0.s
index cc83a04df..385e340a5 100644
--- a/src/crt0.s
+++ b/src/crt0.s
@@ -76,8 +76,8 @@ GPIOPortReadEnable: @ 80000C8
.4byte 0x00000008 @ offsetof(struct SaveBlock2, playerGender)
.4byte 0x00000ca8 @ offsetof(struct SaveBlock2, frontier.challengeStatus)
.4byte 0x00000ca8 @ offsetof(struct SaveBlock2, frontier.challengeStatus)
- .4byte 0x000031c7 @ offsetof(struct SaveBlock1, ? part-way into giftRibbons)
- .4byte 0x000031b3 @ offsetof(struct SaveBlock1, ? part-way into giftRibbons)
+ .4byte 0x000031c7 @ offsetof(struct SaveBlock1, externalEventFlags)
+ .4byte 0x000031b3 @ offsetof(struct SaveBlock1, externalEventData)
.4byte 0x00000000
.4byte gBaseStats
diff --git a/src/data/object_events/movement_type_func_tables.h b/src/data/object_events/movement_type_func_tables.h
index 68dfeb730..f4890d684 100755
--- a/src/data/object_events/movement_type_func_tables.h
+++ b/src/data/object_events/movement_type_func_tables.h
@@ -407,8 +407,8 @@ u8 (*const gMovementTypeFuncs_CopyPlayerInGrass[])(struct ObjectEvent *, struct
MovementType_CopyPlayer_Step2,
};
-u8 (*const gMovementTypeFuncs_Hidden[])(struct ObjectEvent *, struct Sprite *) = {
- MovementType_Hidden_Step0,
+u8 (*const gMovementTypeFuncs_Buried[])(struct ObjectEvent *, struct Sprite *) = {
+ MovementType_Buried_Step0,
};
u8 (*const gMovementTypeFuncs_WalkInPlace[])(struct ObjectEvent *, struct Sprite *) = {
diff --git a/src/daycare.c b/src/daycare.c
index 7ae1e72c4..14cf57806 100644
--- a/src/daycare.c
+++ b/src/daycare.c
@@ -170,7 +170,7 @@ static void StorePokemonInDaycare(struct Pokemon *mon, struct DaycareMon *daycar
StringCopy(daycareMon->mail.OT_name, gSaveBlock2Ptr->playerName);
GetMonNickname2(mon, daycareMon->mail.monName);
StripExtCtrlCodes(daycareMon->mail.monName);
- daycareMon->mail.gameLanguage = LANGUAGE_ENGLISH;
+ daycareMon->mail.gameLanguage = GAME_LANGUAGE;
daycareMon->mail.monLanguage = GetMonData(mon, MON_DATA_LANGUAGE);
mailId = GetMonData(mon, MON_DATA_MAIL);
daycareMon->mail.message = gSaveBlock1Ptr->mail[mailId];
diff --git a/src/egg_hatch.c b/src/egg_hatch.c
index 4e050ce62..5b80bfb6c 100644
--- a/src/egg_hatch.c
+++ b/src/egg_hatch.c
@@ -297,7 +297,7 @@ static void CreateHatchedMon(struct Pokemon *egg, struct Pokemon *temp)
{
u16 species;
u32 personality, pokerus;
- u8 i, friendship, language, gameMet, markings, obedience;
+ u8 i, friendship, language, gameMet, markings, isEventLegal;
u16 moves[MAX_MON_MOVES];
u32 ivs[NUM_STATS];
@@ -320,7 +320,7 @@ static void CreateHatchedMon(struct Pokemon *egg, struct Pokemon *temp)
gameMet = GetMonData(egg, MON_DATA_MET_GAME);
markings = GetMonData(egg, MON_DATA_MARKINGS);
pokerus = GetMonData(egg, MON_DATA_POKERUS);
- obedience = GetMonData(egg, MON_DATA_OBEDIENCE);
+ isEventLegal = GetMonData(egg, MON_DATA_EVENT_LEGAL);
CreateMon(temp, species, EGG_HATCH_LEVEL, USE_RANDOM_IVS, TRUE, personality, OT_ID_PLAYER_ID, 0);
@@ -342,7 +342,7 @@ static void CreateHatchedMon(struct Pokemon *egg, struct Pokemon *temp)
friendship = 120;
SetMonData(temp, MON_DATA_FRIENDSHIP, &friendship);
SetMonData(temp, MON_DATA_POKERUS, &pokerus);
- SetMonData(temp, MON_DATA_OBEDIENCE, &obedience);
+ SetMonData(temp, MON_DATA_EVENT_LEGAL, &isEventLegal);
*egg = *temp;
}
diff --git a/src/event_object_movement.c b/src/event_object_movement.c
index f6e638f31..1a7d08db2 100644
--- a/src/event_object_movement.c
+++ b/src/event_object_movement.c
@@ -101,7 +101,7 @@ static void DoGroundEffects_OnFinishStep(struct ObjectEvent*, struct Sprite*);
static void UpdateObjectEventSpritePosition(struct Sprite*);
static void ApplyLevitateMovement(u8);
static bool8 MovementType_Disguise_Callback(struct ObjectEvent *, struct Sprite *);
-static bool8 MovementType_Hidden_Callback(struct ObjectEvent *, struct Sprite *);
+static bool8 MovementType_Buried_Callback(struct ObjectEvent *, struct Sprite *);
static void CreateReflectionEffectSprites(void);
static u8 GetObjectEventIdByLocalId(u8);
static u8 GetObjectEventIdByLocalIdAndMapInternal(u8, u8, u8);
@@ -212,7 +212,7 @@ static void (*const sMovementTypeCallbacks[])(struct Sprite *) =
[MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = MovementType_CopyPlayerInGrass,
[MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = MovementType_CopyPlayerInGrass,
[MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = MovementType_CopyPlayerInGrass,
- [MOVEMENT_TYPE_HIDDEN] = MovementType_Hidden,
+ [MOVEMENT_TYPE_BURIED] = MovementType_Buried,
[MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = MovementType_WalkInPlace,
[MOVEMENT_TYPE_WALK_IN_PLACE_UP] = MovementType_WalkInPlace,
[MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = MovementType_WalkInPlace,
@@ -296,7 +296,7 @@ const u8 gRangedMovementTypes[] = {
[MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = 1,
[MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = 1,
[MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = 1,
- [MOVEMENT_TYPE_HIDDEN] = 0,
+ [MOVEMENT_TYPE_BURIED] = 0,
[MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = 0,
[MOVEMENT_TYPE_WALK_IN_PLACE_UP] = 0,
[MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = 0,
@@ -380,7 +380,7 @@ const u8 gInitialMovementTypeFacingDirections[] = {
[MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = DIR_SOUTH,
[MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = DIR_WEST,
[MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = DIR_EAST,
- [MOVEMENT_TYPE_HIDDEN] = DIR_SOUTH,
+ [MOVEMENT_TYPE_BURIED] = DIR_SOUTH,
[MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = DIR_SOUTH,
[MOVEMENT_TYPE_WALK_IN_PLACE_UP] = DIR_NORTH,
[MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = DIR_WEST,
@@ -4467,7 +4467,7 @@ void MovementType_MountainDisguise(struct Sprite *sprite)
UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_Disguise_Callback);
}
-void MovementType_Hidden(struct Sprite *sprite)
+void MovementType_Buried(struct Sprite *sprite)
{
if (!sprite->data[7])
{
@@ -4476,15 +4476,15 @@ void MovementType_Hidden(struct Sprite *sprite)
sprite->oam.priority = 3;
sprite->data[7]++;
}
- UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_Hidden_Callback);
+ UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_Buried_Callback);
}
-static bool8 MovementType_Hidden_Callback(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+static bool8 MovementType_Buried_Callback(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- return gMovementTypeFuncs_Hidden[sprite->data[1]](objectEvent, sprite);
+ return gMovementTypeFuncs_Buried[sprite->data[1]](objectEvent, sprite);
}
-bool8 MovementType_Hidden_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+bool8 MovementType_Buried_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ClearObjectEventMovement(objectEvent, sprite);
return FALSE;
@@ -6600,9 +6600,9 @@ bool8 MovementAction_EmoteHeart_Step0(struct ObjectEvent *objectEvent, struct Sp
bool8 MovementAction_RevealTrainer_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (objectEvent->movementType == MOVEMENT_TYPE_HIDDEN)
+ if (objectEvent->movementType == MOVEMENT_TYPE_BURIED)
{
- SetHiddenTrainerMovement(objectEvent);
+ SetBuriedTrainerMovement(objectEvent);
return FALSE;
}
if (objectEvent->movementType != MOVEMENT_TYPE_TREE_DISGUISE && objectEvent->movementType != MOVEMENT_TYPE_MOUNTAIN_DISGUISE)
diff --git a/src/evolution_scene.c b/src/evolution_scene.c
index b0e3067b1..6f5a4dce7 100644
--- a/src/evolution_scene.c
+++ b/src/evolution_scene.c
@@ -561,7 +561,7 @@ static void CreateShedinja(u16 preEvoSpecies, struct Pokemon* mon)
for (i = MON_DATA_COOL_RIBBON; i < MON_DATA_COOL_RIBBON + CONTEST_CATEGORIES_COUNT; i++)
SetMonData(&gPlayerParty[gPlayerPartyCount], i, (&data));
- for (i = MON_DATA_CHAMPION_RIBBON; i <= MON_DATA_FATEFUL_ENCOUNTER; i++)
+ for (i = MON_DATA_CHAMPION_RIBBON; i <= MON_DATA_FILLER; i++)
SetMonData(&gPlayerParty[gPlayerPartyCount], i, (&data));
SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_STATUS, (&data));
diff --git a/src/field_effect.c b/src/field_effect.c
index b1837c514..467a0f656 100644
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -967,8 +967,8 @@ void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b)
curBlue -= ((curBlue * b) >> 4);
color = curRed;
- color |= curGreen << 5;
- color |= curBlue << 10;
+ color |= (curGreen << 5);
+ color |= (curBlue << 10);
gPlttBufferFaded[i] = color;
}
diff --git a/src/field_weather.c b/src/field_weather.c
index 25ee0582a..02e3a0cb0 100644
--- a/src/field_weather.c
+++ b/src/field_weather.c
@@ -494,7 +494,7 @@ static void ApplyGammaShift(u8 startPalIndex, u8 numPalettes, s8 gammaIndex)
r = gammaTable[baseColor.r];
g = gammaTable[baseColor.g];
b = gammaTable[baseColor.b];
- gPlttBufferFaded[palOffset++] = (b << 10) | (g << 5) | r;
+ gPlttBufferFaded[palOffset++] = RGB2(r, g, b);
}
}
@@ -579,7 +579,7 @@ static void ApplyGammaShiftWithBlend(u8 startPalIndex, u8 numPalettes, s8 gammaI
r += ((rBlend - r) * blendCoeff) >> 4;
g += ((gBlend - g) * blendCoeff) >> 4;
b += ((bBlend - b) * blendCoeff) >> 4;
- gPlttBufferFaded[palOffset++] = (b << 10) | (g << 5) | r;
+ gPlttBufferFaded[palOffset++] = RGB2(r, g, b);
}
}
@@ -636,7 +636,7 @@ static void ApplyDroughtGammaShiftWithBlend(s8 gammaIndex, u8 blendCoeff, u16 bl
g2 += ((gBlend - g2) * blendCoeff) >> 4;
b2 += ((bBlend - b2) * blendCoeff) >> 4;
- gPlttBufferFaded[palOffset++] = (b2 << 10) | (g2 << 5) | r2;
+ gPlttBufferFaded[palOffset++] = RGB2(r2, g2, b2);
}
}
}
@@ -678,7 +678,7 @@ static void ApplyFogBlend(u8 blendCoeff, u16 blendColor)
g += ((gBlend - g) * blendCoeff) >> 4;
b += ((bBlend - b) * blendCoeff) >> 4;
- gPlttBufferFaded[palOffset] = (b << 10) | (g << 5) | r;
+ gPlttBufferFaded[palOffset] = RGB2(r, g, b);
palOffset++;
}
}
diff --git a/src/international_string_util.c b/src/international_string_util.c
index 23ca6c081..c2b4b43cf 100644
--- a/src/international_string_util.c
+++ b/src/international_string_util.c
@@ -214,7 +214,7 @@ int sub_81DB604(u8 *str)
if (str[0] == EXT_CTRL_CODE_BEGIN && str[1] == EXT_CTRL_CODE_JPN)
return LANGUAGE_JAPANESE;
else
- return LANGUAGE_ENGLISH;
+ return GAME_LANGUAGE;
}
void sub_81DB620(int windowId, int columnStart, int rowStart, int numFillTiles, int numRows)
diff --git a/src/mail.c b/src/mail.c
index 71e98b42a..09d5bfc44 100644
--- a/src/mail.c
+++ b/src/mail.c
@@ -248,7 +248,7 @@ void ReadMail(struct MailStruct *mail, void (*callback)(void), bool8 flag)
u16 species;
sMailRead = calloc(1, sizeof(*sMailRead));
- sMailRead->language = LANGUAGE_ENGLISH;
+ sMailRead->language = GAME_LANGUAGE;
sMailRead->playerIsSender = TRUE;
sMailRead->parserSingle = CopyEasyChatWord;
sMailRead->parserMultiple = ConvertEasyChatWordsToString;
diff --git a/src/menu_specialized.c b/src/menu_specialized.c
index 7de963893..74e3455c3 100644
--- a/src/menu_specialized.c
+++ b/src/menu_specialized.c
@@ -23,7 +23,6 @@
#include "text_window.h"
#include "trig.h"
#include "window.h"
-#include "constants/berry.h"
#include "constants/songs.h"
#include "gba/io_reg.h"
diff --git a/src/party_menu.c b/src/party_menu.c
index 096f87dd2..b2fd358ca 100755
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -3520,9 +3520,9 @@ static void CursorCb_Register(u8 taskId)
{
u16 species2 = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES2);
u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES);
- u8 obedience = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_OBEDIENCE);
+ u8 isEventLegal = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_EVENT_LEGAL);
- switch (CanRegisterMonForTradingBoard(*(struct GFtgtGnameSub *)GetHostRFUtgtGname(), species2, species, obedience))
+ switch (CanRegisterMonForTradingBoard(*(struct GFtgtGnameSub *)GetHostRFUtgtGname(), species2, species, isEventLegal))
{
case CANT_REGISTER_MON:
StringExpandPlaceholders(gStringVar4, gText_PkmnCantBeTradedNow);
@@ -3547,8 +3547,8 @@ static void CursorCb_Trade1(u8 taskId)
{
u16 species2 = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES2);
u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES);
- u8 obedience = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_OBEDIENCE);
- u32 stringId = GetUnionRoomTradeMessageId(*(struct GFtgtGnameSub *)GetHostRFUtgtGname(), gPartnerTgtGnameSub, species2, gUnionRoomOfferedSpecies, gUnionRoomRequestedMonType, species, obedience);
+ u8 isEventLegal = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_EVENT_LEGAL);
+ u32 stringId = GetUnionRoomTradeMessageId(*(struct GFtgtGnameSub *)GetHostRFUtgtGname(), gPartnerTgtGnameSub, species2, gUnionRoomOfferedSpecies, gUnionRoomRequestedMonType, species, isEventLegal);
if (stringId != UR_TRADE_MSG_NONE)
{
diff --git a/src/pokeblock.c b/src/pokeblock.c
index 0bfb10632..4485fe1ef 100644
--- a/src/pokeblock.c
+++ b/src/pokeblock.c
@@ -29,7 +29,6 @@
#include "task.h"
#include "text.h"
#include "text_window.h"
-#include "constants/berry.h"
#include "constants/items.h"
#include "constants/songs.h"
#include "constants/rgb.h"
diff --git a/src/pokemon.c b/src/pokemon.c
index d890a3a6c..5812e987a 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -2615,12 +2615,12 @@ void ConvertPokemonToBattleTowerPokemon(struct Pokemon *mon, struct BattleTowerP
GetMonData(mon, MON_DATA_NICKNAME, dest->nickname);
}
-void CreateObedientMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId)
+void CreateEventLegalMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId)
{
- bool32 obedient = TRUE;
+ bool32 isEventLegal = TRUE;
CreateMon(mon, species, level, fixedIV, hasFixedPersonality, fixedPersonality, otIdType, fixedOtId);
- SetMonData(mon, MON_DATA_OBEDIENCE, &obedient);
+ SetMonData(mon, MON_DATA_EVENT_LEGAL, &isEventLegal);
}
// If FALSE, should load this game's Deoxys form. If TRUE, should load normal Deoxys form
@@ -2755,14 +2755,14 @@ u16 GetUnionRoomTrainerClass(void)
return gFacilityClassToTrainerClass[gLinkPlayerFacilityClasses[arrId]];
}
-void CreateObedientEnemyMon(void)
+void CreateEventLegalEnemyMon(void)
{
s32 species = gSpecialVar_0x8004;
s32 level = gSpecialVar_0x8005;
s32 itemId = gSpecialVar_0x8006;
ZeroEnemyPartyMons();
- CreateObedientMon(&gEnemyParty[0], species, level, USE_RANDOM_IVS, 0, 0, 0, 0);
+ CreateEventLegalMon(&gEnemyParty[0], species, level, USE_RANDOM_IVS, 0, 0, 0, 0);
if (itemId)
{
u8 heldItem[2];
@@ -3907,32 +3907,32 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data)
case MON_DATA_EFFORT_RIBBON:
retVal = substruct3->effortRibbon;
break;
- case MON_DATA_GIFT_RIBBON_1:
- retVal = substruct3->giftRibbon1;
+ case MON_DATA_MARINE_RIBBON:
+ retVal = substruct3->marineRibbon;
break;
- case MON_DATA_GIFT_RIBBON_2:
- retVal = substruct3->giftRibbon2;
+ case MON_DATA_LAND_RIBBON:
+ retVal = substruct3->landRibbon;
break;
- case MON_DATA_GIFT_RIBBON_3:
- retVal = substruct3->giftRibbon3;
+ case MON_DATA_SKY_RIBBON:
+ retVal = substruct3->skyRibbon;
break;
- case MON_DATA_GIFT_RIBBON_4:
- retVal = substruct3->giftRibbon4;
+ case MON_DATA_COUNTRY_RIBBON:
+ retVal = substruct3->countryRibbon;
break;
- case MON_DATA_GIFT_RIBBON_5:
- retVal = substruct3->giftRibbon5;
+ case MON_DATA_NATIONAL_RIBBON:
+ retVal = substruct3->nationalRibbon;
break;
- case MON_DATA_GIFT_RIBBON_6:
- retVal = substruct3->giftRibbon6;
+ case MON_DATA_EARTH_RIBBON:
+ retVal = substruct3->earthRibbon;
break;
- case MON_DATA_GIFT_RIBBON_7:
- retVal = substruct3->giftRibbon7;
+ case MON_DATA_WORLD_RIBBON:
+ retVal = substruct3->worldRibbon;
break;
- case MON_DATA_FATEFUL_ENCOUNTER:
- retVal = substruct3->fatefulEncounter;
+ case MON_DATA_FILLER:
+ retVal = substruct3->filler;
break;
- case MON_DATA_OBEDIENCE:
- retVal = substruct3->obedient;
+ case MON_DATA_EVENT_LEGAL:
+ retVal = substruct3->eventLegal;
break;
case MON_DATA_SPECIES2:
retVal = substruct0->species;
@@ -3974,13 +3974,13 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data)
retVal += substruct3->victoryRibbon;
retVal += substruct3->artistRibbon;
retVal += substruct3->effortRibbon;
- retVal += substruct3->giftRibbon1;
- retVal += substruct3->giftRibbon2;
- retVal += substruct3->giftRibbon3;
- retVal += substruct3->giftRibbon4;
- retVal += substruct3->giftRibbon5;
- retVal += substruct3->giftRibbon6;
- retVal += substruct3->giftRibbon7;
+ retVal += substruct3->marineRibbon;
+ retVal += substruct3->landRibbon;
+ retVal += substruct3->skyRibbon;
+ retVal += substruct3->countryRibbon;
+ retVal += substruct3->nationalRibbon;
+ retVal += substruct3->earthRibbon;
+ retVal += substruct3->worldRibbon;
}
break;
case MON_DATA_RIBBONS:
@@ -3997,13 +3997,13 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data)
| (substruct3->victoryRibbon << 17)
| (substruct3->artistRibbon << 18)
| (substruct3->effortRibbon << 19)
- | (substruct3->giftRibbon1 << 20)
- | (substruct3->giftRibbon2 << 21)
- | (substruct3->giftRibbon3 << 22)
- | (substruct3->giftRibbon4 << 23)
- | (substruct3->giftRibbon5 << 24)
- | (substruct3->giftRibbon6 << 25)
- | (substruct3->giftRibbon7 << 26);
+ | (substruct3->marineRibbon << 20)
+ | (substruct3->landRibbon << 21)
+ | (substruct3->skyRibbon << 22)
+ | (substruct3->countryRibbon << 23)
+ | (substruct3->nationalRibbon << 24)
+ | (substruct3->earthRibbon << 25)
+ | (substruct3->worldRibbon << 26);
}
break;
default:
@@ -4286,32 +4286,32 @@ void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg)
case MON_DATA_EFFORT_RIBBON:
SET8(substruct3->effortRibbon);
break;
- case MON_DATA_GIFT_RIBBON_1:
- SET8(substruct3->giftRibbon1);
+ case MON_DATA_MARINE_RIBBON:
+ SET8(substruct3->marineRibbon);
break;
- case MON_DATA_GIFT_RIBBON_2:
- SET8(substruct3->giftRibbon2);
+ case MON_DATA_LAND_RIBBON:
+ SET8(substruct3->landRibbon);
break;
- case MON_DATA_GIFT_RIBBON_3:
- SET8(substruct3->giftRibbon3);
+ case MON_DATA_SKY_RIBBON:
+ SET8(substruct3->skyRibbon);
break;
- case MON_DATA_GIFT_RIBBON_4:
- SET8(substruct3->giftRibbon4);
+ case MON_DATA_COUNTRY_RIBBON:
+ SET8(substruct3->countryRibbon);
break;
- case MON_DATA_GIFT_RIBBON_5:
- SET8(substruct3->giftRibbon5);
+ case MON_DATA_NATIONAL_RIBBON:
+ SET8(substruct3->nationalRibbon);
break;
- case MON_DATA_GIFT_RIBBON_6:
- SET8(substruct3->giftRibbon6);
+ case MON_DATA_EARTH_RIBBON:
+ SET8(substruct3->earthRibbon);
break;
- case MON_DATA_GIFT_RIBBON_7:
- SET8(substruct3->giftRibbon7);
+ case MON_DATA_WORLD_RIBBON:
+ SET8(substruct3->worldRibbon);
break;
- case MON_DATA_FATEFUL_ENCOUNTER:
- SET8(substruct3->fatefulEncounter);
+ case MON_DATA_FILLER:
+ SET8(substruct3->filler);
break;
- case MON_DATA_OBEDIENCE:
- SET8(substruct3->obedient);
+ case MON_DATA_EVENT_LEGAL:
+ SET8(substruct3->eventLegal);
break;
case MON_DATA_IVS:
{
diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c
index f8b361912..5b80fd428 100644
--- a/src/pokemon_size_record.c
+++ b/src/pokemon_size_record.c
@@ -38,9 +38,9 @@ static const struct UnknownStruct sBigMonSizeTable[] =
static const u8 sGiftRibbonsMonDataIds[] =
{
- MON_DATA_GIFT_RIBBON_1, MON_DATA_GIFT_RIBBON_2, MON_DATA_GIFT_RIBBON_3,
- MON_DATA_GIFT_RIBBON_4, MON_DATA_GIFT_RIBBON_5, MON_DATA_GIFT_RIBBON_6,
- MON_DATA_GIFT_RIBBON_7
+ MON_DATA_MARINE_RIBBON, MON_DATA_LAND_RIBBON, MON_DATA_SKY_RIBBON,
+ MON_DATA_COUNTRY_RIBBON, MON_DATA_NATIONAL_RIBBON, MON_DATA_EARTH_RIBBON,
+ MON_DATA_WORLD_RIBBON
};
extern const u8 gText_DecimalPoint[];
diff --git a/src/scrcmd.c b/src/scrcmd.c
index f599a0004..7caaa194b 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -2207,21 +2207,21 @@ bool8 ScrCmd_lockfortrainer(struct ScriptContext *ctx)
}
}
-// This command will force the Pokémon to be obedient, you don't get to make it disobedient.
-bool8 ScrCmd_setmonobedient(struct ScriptContext *ctx)
+// This command will set a Pokémon's eventLegal bit; there is no similar command to clear it.
+bool8 ScrCmd_setmoneventlegal(struct ScriptContext *ctx)
{
- bool8 obedient = TRUE;
+ bool8 isEventLegal = TRUE;
u16 partyIndex = VarGet(ScriptReadHalfword(ctx));
- SetMonData(&gPlayerParty[partyIndex], MON_DATA_OBEDIENCE, &obedient);
+ SetMonData(&gPlayerParty[partyIndex], MON_DATA_EVENT_LEGAL, &isEventLegal);
return FALSE;
}
-bool8 ScrCmd_checkmonobedience(struct ScriptContext *ctx)
+bool8 ScrCmd_checkmoneventlegal(struct ScriptContext *ctx)
{
u16 partyIndex = VarGet(ScriptReadHalfword(ctx));
- gSpecialVar_Result = GetMonData(&gPlayerParty[partyIndex], MON_DATA_OBEDIENCE, NULL);
+ gSpecialVar_Result = GetMonData(&gPlayerParty[partyIndex], MON_DATA_EVENT_LEGAL, NULL);
return FALSE;
}
diff --git a/src/secret_base.c b/src/secret_base.c
index d49eef277..ddc051dca 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -49,6 +49,13 @@
#include "constants/trainers.h"
#include "constants/tv.h"
+// Values for registryStatus
+enum {
+ UNREGISTERED,
+ REGISTERED,
+ NEW, // Temporary, so new secret bases mixed at the same time don't overwrite each other
+};
+
struct SecretBaseRegistryMenu
{
struct ListMenuItem items[11];
@@ -72,21 +79,21 @@ static EWRAM_DATA u8 sCurSecretBaseId = 0;
static EWRAM_DATA bool8 sInFriendSecretBase = FALSE;
static EWRAM_DATA struct SecretBaseRegistryMenu *sRegistryMenu = NULL;
-static void Task_ShowSecretBaseRegistryMenu(u8 taskId);
-static void BuildRegistryMenuItems(u8 taskId);
-static void RegistryMenu_OnCursorMove(s32 unused, bool8 flag, struct ListMenu *menu);
-static void FinalizeRegistryMenu(u8 taskId);
-static void AddRegistryMenuScrollArrows(u8 taskId);
-static void HandleRegistryMenuInput(u8 taskId);
-static void ShowRegistryMenuActions(u8 taskId);
-static void HandleRegistryMenuActionsInput(u8 taskId);
-static void ShowRegistryMenuDeleteConfirmation(u8 taskId);
-static void ShowRegistryMenuDeleteYesNo(u8 taskId);
-static void DeleteRegistry_Yes(u8 taskId);
-static void DeleteRegistry_No(u8 taskId);
-static void ReturnToMainRegistryMenu(u8 taskId);
-static void GoToSecretBasePCRegisterMenu(u8 taskId);
-static u8 GetSecretBaseOwnerType(u8 secretBaseId);
+static void Task_ShowSecretBaseRegistryMenu(u8);
+static void BuildRegistryMenuItems(u8);
+static void RegistryMenu_OnCursorMove(s32, bool8, struct ListMenu *);
+static void FinalizeRegistryMenu(u8);
+static void AddRegistryMenuScrollArrows(u8);
+static void HandleRegistryMenuInput(u8);
+static void ShowRegistryMenuActions(u8);
+static void HandleRegistryMenuActionsInput(u8);
+static void ShowRegistryMenuDeleteConfirmation(u8);
+static void ShowRegistryMenuDeleteYesNo(u8);
+static void DeleteRegistry_Yes(u8);
+static void DeleteRegistry_No(u8);
+static void ReturnToMainRegistryMenu(u8);
+static void GoToSecretBasePCRegisterMenu(u8);
+static u8 GetSecretBaseOwnerType(u8);
static const struct SecretBaseEntranceMetatiles sSecretBaseEntranceMetatiles[] =
{
@@ -101,34 +108,39 @@ static const struct SecretBaseEntranceMetatiles sSecretBaseEntranceMetatiles[] =
// mapNum, warpId, x, y
// x, y positions are for when the player warps in for the first time (in front of the computer)
-static const u8 sSecretBaseEntrancePositions[] =
-{
- MAP_NUM(SECRET_BASE_RED_CAVE1), 0, 1, 3,
- MAP_NUM(SECRET_BASE_RED_CAVE2), 0, 5, 9,
- MAP_NUM(SECRET_BASE_RED_CAVE3), 0, 1, 3,
- MAP_NUM(SECRET_BASE_RED_CAVE4), 0, 7, 13,
- MAP_NUM(SECRET_BASE_BROWN_CAVE1), 0, 2, 3,
- MAP_NUM(SECRET_BASE_BROWN_CAVE2), 0, 9, 2,
- MAP_NUM(SECRET_BASE_BROWN_CAVE3), 0, 13, 4,
- MAP_NUM(SECRET_BASE_BROWN_CAVE4), 0, 1, 2,
- MAP_NUM(SECRET_BASE_BLUE_CAVE1), 0, 1, 3,
- MAP_NUM(SECRET_BASE_BLUE_CAVE2), 0, 1, 2,
- MAP_NUM(SECRET_BASE_BLUE_CAVE3), 0, 3, 15,
- MAP_NUM(SECRET_BASE_BLUE_CAVE4), 0, 3, 14,
- MAP_NUM(SECRET_BASE_YELLOW_CAVE1), 0, 9, 3,
- MAP_NUM(SECRET_BASE_YELLOW_CAVE2), 0, 8, 7,
- MAP_NUM(SECRET_BASE_YELLOW_CAVE3), 0, 3, 6,
- MAP_NUM(SECRET_BASE_YELLOW_CAVE4), 0, 5, 9,
- MAP_NUM(SECRET_BASE_TREE1), 0, 2, 3,
- MAP_NUM(SECRET_BASE_TREE2), 0, 5, 6,
- MAP_NUM(SECRET_BASE_TREE3), 0, 15, 3,
- MAP_NUM(SECRET_BASE_TREE4), 0, 4, 10,
- MAP_NUM(SECRET_BASE_SHRUB1), 0, 3, 3,
- MAP_NUM(SECRET_BASE_SHRUB2), 0, 1, 2,
- MAP_NUM(SECRET_BASE_SHRUB3), 0, 7, 8,
- MAP_NUM(SECRET_BASE_SHRUB4), 0, 9, 6,
+static const u8 sSecretBaseEntrancePositions[NUM_SECRET_BASE_GROUPS * 4] =
+{
+ [SECRET_BASE_RED_CAVE1] = MAP_NUM(SECRET_BASE_RED_CAVE1), 0, 1, 3,
+ [SECRET_BASE_RED_CAVE2] = MAP_NUM(SECRET_BASE_RED_CAVE2), 0, 5, 9,
+ [SECRET_BASE_RED_CAVE3] = MAP_NUM(SECRET_BASE_RED_CAVE3), 0, 1, 3,
+ [SECRET_BASE_RED_CAVE4] = MAP_NUM(SECRET_BASE_RED_CAVE4), 0, 7, 13,
+ [SECRET_BASE_BROWN_CAVE1] = MAP_NUM(SECRET_BASE_BROWN_CAVE1), 0, 2, 3,
+ [SECRET_BASE_BROWN_CAVE2] = MAP_NUM(SECRET_BASE_BROWN_CAVE2), 0, 9, 2,
+ [SECRET_BASE_BROWN_CAVE3] = MAP_NUM(SECRET_BASE_BROWN_CAVE3), 0, 13, 4,
+ [SECRET_BASE_BROWN_CAVE4] = MAP_NUM(SECRET_BASE_BROWN_CAVE4), 0, 1, 2,
+ [SECRET_BASE_BLUE_CAVE1] = MAP_NUM(SECRET_BASE_BLUE_CAVE1), 0, 1, 3,
+ [SECRET_BASE_BLUE_CAVE2] = MAP_NUM(SECRET_BASE_BLUE_CAVE2), 0, 1, 2,
+ [SECRET_BASE_BLUE_CAVE3] = MAP_NUM(SECRET_BASE_BLUE_CAVE3), 0, 3, 15,
+ [SECRET_BASE_BLUE_CAVE4] = MAP_NUM(SECRET_BASE_BLUE_CAVE4), 0, 3, 14,
+ [SECRET_BASE_YELLOW_CAVE1] = MAP_NUM(SECRET_BASE_YELLOW_CAVE1), 0, 9, 3,
+ [SECRET_BASE_YELLOW_CAVE2] = MAP_NUM(SECRET_BASE_YELLOW_CAVE2), 0, 8, 7,
+ [SECRET_BASE_YELLOW_CAVE3] = MAP_NUM(SECRET_BASE_YELLOW_CAVE3), 0, 3, 6,
+ [SECRET_BASE_YELLOW_CAVE4] = MAP_NUM(SECRET_BASE_YELLOW_CAVE4), 0, 5, 9,
+ [SECRET_BASE_TREE1] = MAP_NUM(SECRET_BASE_TREE1), 0, 2, 3,
+ [SECRET_BASE_TREE2] = MAP_NUM(SECRET_BASE_TREE2), 0, 5, 6,
+ [SECRET_BASE_TREE3] = MAP_NUM(SECRET_BASE_TREE3), 0, 15, 3,
+ [SECRET_BASE_TREE4] = MAP_NUM(SECRET_BASE_TREE4), 0, 4, 10,
+ [SECRET_BASE_SHRUB1] = MAP_NUM(SECRET_BASE_SHRUB1), 0, 3, 3,
+ [SECRET_BASE_SHRUB2] = MAP_NUM(SECRET_BASE_SHRUB2), 0, 1, 2,
+ [SECRET_BASE_SHRUB3] = MAP_NUM(SECRET_BASE_SHRUB3), 0, 7, 8,
+ [SECRET_BASE_SHRUB4] = MAP_NUM(SECRET_BASE_SHRUB4), 0, 9, 6,
};
+#define GET_BASE_MAP_NUM(group) (sSecretBaseEntrancePositions[(group) + 0])
+#define GET_BASE_WARP_ID(group) (sSecretBaseEntrancePositions[(group) + 1])
+#define GET_BASE_COMPUTER_X(group) (sSecretBaseEntrancePositions[(group) + 2])
+#define GET_BASE_COMPUTER_Y(group) (sSecretBaseEntrancePositions[(group) + 3])
+
static const struct MenuAction sRegistryMenuActions[] =
{
{
@@ -314,6 +326,8 @@ void ToggleSecretBaseEntranceMetatile(void)
GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
metatileId = MapGridGetMetatileIdAt(x, y);
+
+ // Look for entrance metatiles to open
for (i = 0; i < ARRAY_COUNT(sSecretBaseEntranceMetatiles); i++)
{
if (sSecretBaseEntranceMetatiles[i].closedMetatileId == metatileId)
@@ -324,6 +338,7 @@ void ToggleSecretBaseEntranceMetatile(void)
}
}
+ // Look for entrance metatiles to close
for (i = 0; i < ARRAY_COUNT(sSecretBaseEntranceMetatiles); i++)
{
if (sSecretBaseEntranceMetatiles[i].openMetatileId == metatileId)
@@ -362,6 +377,7 @@ void SetPlayerSecretBase(void)
VarSet(VAR_SECRET_BASE_MAP, gMapHeader.regionMapSectionId);
}
+// Set the 'open' entrance metatile for any occupied secret base on this map
void SetOccupiedSecretBaseEntranceMetatiles(struct MapEvents const *events)
{
u16 bgId;
@@ -395,24 +411,26 @@ void SetOccupiedSecretBaseEntranceMetatiles(struct MapEvents const *events)
static void SetSecretBaseWarpDestination(void)
{
- s8 offset = (sCurSecretBaseId / 10) * 4;
- SetWarpDestinationToMapWarp(MAP_GROUP(SECRET_BASE_RED_CAVE1), sSecretBaseEntrancePositions[offset], sSecretBaseEntrancePositions[offset + 1]);
+ s8 secretBaseGroup = SECRET_BASE_ID_TO_GROUP(sCurSecretBaseId);
+ SetWarpDestinationToMapWarp(MAP_GROUP(SECRET_BASE_RED_CAVE1), GET_BASE_MAP_NUM(secretBaseGroup), GET_BASE_WARP_ID(secretBaseGroup));
}
+#define tState data[0]
+
static void Task_EnterSecretBase(u8 taskId)
{
- u16 secretBaseId;
+ u16 secretBaseIdx;
- switch (gTasks[taskId].data[0])
+ switch (gTasks[taskId].tState)
{
case 0:
if (!gPaletteFade.active)
- gTasks[taskId].data[0] = 1;
+ gTasks[taskId].tState = 1;
break;
case 1:
- secretBaseId = VarGet(VAR_CURRENT_SECRET_BASE);
- if (gSaveBlock1Ptr->secretBases[secretBaseId].numTimesEntered < 255)
- gSaveBlock1Ptr->secretBases[secretBaseId].numTimesEntered++;
+ secretBaseIdx = VarGet(VAR_CURRENT_SECRET_BASE);
+ if (gSaveBlock1Ptr->secretBases[secretBaseIdx].numTimesEntered < 255)
+ gSaveBlock1Ptr->secretBases[secretBaseIdx].numTimesEntered++;
SetSecretBaseWarpDestination();
WarpIntoMap();
@@ -423,6 +441,8 @@ static void Task_EnterSecretBase(u8 taskId)
}
}
+#undef tState
+
void EnterSecretBase(void)
{
CreateTask(Task_EnterSecretBase, 0);
@@ -467,13 +487,13 @@ static void Task_EnterNewlyCreatedSecretBase(u8 taskId)
{
if (!gPaletteFade.active)
{
- s8 offset = sCurSecretBaseId / 10 * 4;
+ s8 secretBaseGroup = SECRET_BASE_ID_TO_GROUP(sCurSecretBaseId);
SetWarpDestination(
gSaveBlock1Ptr->location.mapGroup,
gSaveBlock1Ptr->location.mapNum,
-1,
- sSecretBaseEntrancePositions[offset + 2],
- sSecretBaseEntrancePositions[offset + 3]);
+ GET_BASE_COMPUTER_X(secretBaseGroup),
+ GET_BASE_COMPUTER_Y(secretBaseGroup));
WarpIntoMap();
gFieldCallback = EnterNewlyCreatedSecretBase_StartFadeIn;
SetMainCallback2(CB2_LoadMap);
@@ -498,23 +518,23 @@ bool8 CurMapIsSecretBase(void)
void InitSecretBaseAppearance(bool8 hidePC)
{
- u16 secretBaseId;
+ u16 secretBaseIdx;
u16 x, y;
u8 *decorations;
u8 *decorPos;
if (CurMapIsSecretBase())
{
- secretBaseId = VarGet(VAR_CURRENT_SECRET_BASE);
- decorations = gSaveBlock1Ptr->secretBases[secretBaseId].decorations;
- decorPos = gSaveBlock1Ptr->secretBases[secretBaseId].decorationPositions;
+ secretBaseIdx = VarGet(VAR_CURRENT_SECRET_BASE);
+ decorations = gSaveBlock1Ptr->secretBases[secretBaseIdx].decorations;
+ decorPos = gSaveBlock1Ptr->secretBases[secretBaseIdx].decorationPositions;
for (x = 0; x < DECOR_MAX_SECRET_BASE; x++)
{
if (decorations[x] > 0 && decorations[x] <= NUM_DECORATIONS && gDecorations[decorations[x]].permission != DECORPERM_SPRITE)
ShowDecorationOnMap((decorPos[x] >> 4) + 7, (decorPos[x] & 0xF) + 7, decorations[x]);
}
- if (secretBaseId != 0)
+ if (secretBaseIdx != 0)
{
// Another player's secret base. Change PC type to the "Register" PC.
FindMetatileIdMapCoords(&x, &y, METATILE_SecretBase_PC);
@@ -549,9 +569,9 @@ void InitSecretBaseDecorationSprites(void)
}
else
{
- u16 secretBaseId = VarGet(VAR_CURRENT_SECRET_BASE);
- decorations = gSaveBlock1Ptr->secretBases[secretBaseId].decorations;
- decorationPositions = gSaveBlock1Ptr->secretBases[secretBaseId].decorationPositions;
+ u16 secretBaseIdx = VarGet(VAR_CURRENT_SECRET_BASE);
+ decorations = gSaveBlock1Ptr->secretBases[secretBaseIdx].decorations;
+ decorationPositions = gSaveBlock1Ptr->secretBases[secretBaseIdx].decorationPositions;
numDecorations = DECOR_MAX_SECRET_BASE;
}
@@ -703,10 +723,10 @@ void IsCurSecretBaseOwnedByAnotherPlayer(void)
gSpecialVar_Result = FALSE;
}
-static u8 *GetSecretBaseName(u8 *dest, u8 secretBaseId)
+static u8 *GetSecretBaseName(u8 *dest, u8 secretBaseIdx)
{
- *StringCopyN(dest, gSaveBlock1Ptr->secretBases[secretBaseId].trainerName, GetNameLength(gSaveBlock1Ptr->secretBases[secretBaseId].trainerName)) = EOS;
- ConvertInternationalString(dest, gSaveBlock1Ptr->secretBases[secretBaseId].language);
+ *StringCopyN(dest, gSaveBlock1Ptr->secretBases[secretBaseIdx].trainerName, GetNameLength(gSaveBlock1Ptr->secretBases[secretBaseIdx].trainerName)) = EOS;
+ ConvertInternationalString(dest, gSaveBlock1Ptr->secretBases[secretBaseIdx].language);
return StringAppend(dest, gText_ApostropheSBase);
}
@@ -717,18 +737,18 @@ u8 *GetSecretBaseMapName(u8 *dest)
void CopyCurSecretBaseOwnerName_StrVar1(void)
{
- u8 secretBaseId;
+ u8 secretBaseIdx;
const u8 *name;
- secretBaseId = VarGet(VAR_CURRENT_SECRET_BASE);
- name = gSaveBlock1Ptr->secretBases[secretBaseId].trainerName;
+ secretBaseIdx = VarGet(VAR_CURRENT_SECRET_BASE);
+ name = gSaveBlock1Ptr->secretBases[secretBaseIdx].trainerName;
*StringCopyN(gStringVar1, name, GetNameLength(name)) = EOS;
- ConvertInternationalString(gStringVar1, gSaveBlock1Ptr->secretBases[secretBaseId].language);
+ ConvertInternationalString(gStringVar1, gSaveBlock1Ptr->secretBases[secretBaseIdx].language);
}
-static bool8 IsSecretBaseRegistered(u8 secretBaseId)
+static bool8 IsSecretBaseRegistered(u8 secretBaseIdx)
{
- if (gSaveBlock1Ptr->secretBases[secretBaseId].registryStatus)
+ if (gSaveBlock1Ptr->secretBases[secretBaseIdx].registryStatus)
return TRUE;
return FALSE;
@@ -812,7 +832,7 @@ static void ClosePlayerSecretBaseEntrance(void)
&& gSaveBlock1Ptr->secretBases[0].secretBaseId == events->bgEvents[i].bgUnion.secretBaseId)
{
metatileId = MapGridGetMetatileIdAt(events->bgEvents[i].x + 7, events->bgEvents[i].y + 7);
- for (j = 0; j < 7; j++)
+ for (j = 0; j < ARRAY_COUNT(sSecretBaseEntranceMetatiles); j++)
{
if (sSecretBaseEntranceMetatiles[j].openMetatileId == metatileId)
{
@@ -879,18 +899,28 @@ void ShowSecretBaseRegistryMenu(void)
CreateTask(Task_ShowSecretBaseRegistryMenu, 0);
}
+#define tNumBases data[0]
+#define tSelectedRow data[1]
+#define tScrollOffset data[2]
+#define tMaxShownItems data[3]
+#define tSelectedBaseId data[4]
+#define tListTaskId data[5]
+#define tMainWindowId data[6]
+#define tActionWindowId data[7]
+#define tArrowTaskId data[8]
+
static void Task_ShowSecretBaseRegistryMenu(u8 taskId)
{
s16 *data = gTasks[taskId].data;
ScriptContext2_Enable();
- data[0] = GetNumRegisteredSecretBases();
- if (data[0] != 0)
+ tNumBases = GetNumRegisteredSecretBases();
+ if (tNumBases != 0)
{
- data[1] = 0;
- data[2] = 0;
+ tSelectedRow = 0;
+ tScrollOffset = 0;
ClearDialogWindowAndFrame(0, 0);
sRegistryMenu = calloc(1, sizeof(*sRegistryMenu));
- data[6] = AddWindow(&sRegistryWindowTemplates[0]);
+ tMainWindowId = AddWindow(&sRegistryWindowTemplates[0]);
BuildRegistryMenuItems(taskId);
FinalizeRegistryMenu(taskId);
gTasks[taskId].func = HandleRegistryMenuInput;
@@ -922,17 +952,17 @@ static void BuildRegistryMenuItems(u8 taskId)
sRegistryMenu->items[count].name = gText_Cancel;
sRegistryMenu->items[count].id = -2;
- data[0] = count + 1;
- if (data[0] < 8)
- data[3] = data[0];
+ tNumBases = count + 1;
+ if (tNumBases < 8)
+ tMaxShownItems = tNumBases;
else
- data[3] = 8;
+ tMaxShownItems = 8;
gMultiuseListMenuTemplate = sRegistryListMenuTemplate;
- gMultiuseListMenuTemplate.windowId = data[6];
- gMultiuseListMenuTemplate.totalItems = data[0];
+ gMultiuseListMenuTemplate.windowId = tMainWindowId;
+ gMultiuseListMenuTemplate.totalItems = tNumBases;
gMultiuseListMenuTemplate.items = sRegistryMenu->items;
- gMultiuseListMenuTemplate.maxShowed = data[3];
+ gMultiuseListMenuTemplate.maxShowed = tMaxShownItems;
}
static void RegistryMenu_OnCursorMove(s32 unused, bool8 flag, struct ListMenu *menu)
@@ -944,8 +974,8 @@ static void RegistryMenu_OnCursorMove(s32 unused, bool8 flag, struct ListMenu *m
static void FinalizeRegistryMenu(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- SetStandardWindowBorderStyle(data[6], 0);
- data[5] = ListMenuInit(&gMultiuseListMenuTemplate, data[2], data[1]);
+ SetStandardWindowBorderStyle(tMainWindowId, 0);
+ tListTaskId = ListMenuInit(&gMultiuseListMenuTemplate, tScrollOffset, tSelectedRow);
AddRegistryMenuScrollArrows(taskId);
ScheduleBgCopyTilemapToVram(0);
}
@@ -953,35 +983,33 @@ static void FinalizeRegistryMenu(u8 taskId)
static void AddRegistryMenuScrollArrows(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- data[8] = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 0xbc, 0x0c, 0x94, data[0] - data[3], 0x13f8, 0x13f8, &data[2]);
+ tArrowTaskId = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 188, 12, 148, tNumBases - tMaxShownItems, 0x13f8, 0x13f8, &tScrollOffset);
}
static void HandleRegistryMenuInput(u8 taskId)
{
- s16 *data;
- s32 input;
+ s16 *data = gTasks[taskId].data;
+ s32 input = ListMenu_ProcessInput(tListTaskId);
+ ListMenuGetScrollAndRow(tListTaskId, &tScrollOffset, &tSelectedRow);
- data = gTasks[taskId].data;
- input = ListMenu_ProcessInput(data[5]);
- ListMenuGetScrollAndRow(data[5], &data[2], &data[1]);
switch (input)
{
case LIST_NOTHING_CHOSEN:
break;
case LIST_CANCEL:
PlaySE(SE_SELECT);
- DestroyListMenuTask(data[5], NULL, NULL);
- RemoveScrollIndicatorArrowPair(data[8]);
- ClearStdWindowAndFrame(data[6], 0);
- ClearWindowTilemap(data[6]);
- RemoveWindow(data[6]);
+ DestroyListMenuTask(tListTaskId, NULL, NULL);
+ RemoveScrollIndicatorArrowPair(tArrowTaskId);
+ ClearStdWindowAndFrame(tMainWindowId, 0);
+ ClearWindowTilemap(tMainWindowId);
+ RemoveWindow(tMainWindowId);
ScheduleBgCopyTilemapToVram(0);
free(sRegistryMenu);
GoToSecretBasePCRegisterMenu(taskId);
break;
default:
PlaySE(SE_SELECT);
- data[4] = input;
+ tSelectedBaseId = input;
ShowRegistryMenuActions(taskId);
break;
}
@@ -991,13 +1019,13 @@ static void ShowRegistryMenuActions(u8 taskId)
{
struct WindowTemplate template;
s16 *data = gTasks[taskId].data;
- RemoveScrollIndicatorArrowPair(data[8]);
+ RemoveScrollIndicatorArrowPair(tArrowTaskId);
template = sRegistryWindowTemplates[1];
template.width = GetMaxWidthInMenuTable(sRegistryMenuActions, 2);
- data[7] = AddWindow(&template);
- SetStandardWindowBorderStyle(data[7], 0);
- PrintMenuTable(data[7], ARRAY_COUNT(sRegistryMenuActions), sRegistryMenuActions);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(data[7], 2, 0);
+ tActionWindowId = AddWindow(&template);
+ SetStandardWindowBorderStyle(tActionWindowId, 0);
+ PrintMenuTable(tActionWindowId, ARRAY_COUNT(sRegistryMenuActions), sRegistryMenuActions);
+ InitMenuInUpperLeftCornerPlaySoundWhenAPressed(tActionWindowId, 2, 0);
ScheduleBgCopyTilemapToVram(0);
gTasks[taskId].func = HandleRegistryMenuActionsInput;
}
@@ -1023,13 +1051,13 @@ static void HandleRegistryMenuActionsInput(u8 taskId)
static void ShowRegistryMenuDeleteConfirmation(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- ClearStdWindowAndFrame(data[6], FALSE);
- ClearStdWindowAndFrame(data[7], FALSE);
- ClearWindowTilemap(data[6]);
- ClearWindowTilemap(data[7]);
- RemoveWindow(data[7]);
+ ClearStdWindowAndFrame(tMainWindowId, FALSE);
+ ClearStdWindowAndFrame(tActionWindowId, FALSE);
+ ClearWindowTilemap(tMainWindowId);
+ ClearWindowTilemap(tActionWindowId);
+ RemoveWindow(tActionWindowId);
ScheduleBgCopyTilemapToVram(0);
- GetSecretBaseName(gStringVar1, data[4]);
+ GetSecretBaseName(gStringVar1, tSelectedBaseId);
StringExpandPlaceholders(gStringVar4, gText_OkayToDeleteFromRegistry);
DisplayItemMessageOnField(taskId, gStringVar4, ShowRegistryMenuDeleteYesNo);
}
@@ -1044,10 +1072,10 @@ void DeleteRegistry_Yes_Callback(u8 taskId)
{
s16 *data = gTasks[taskId].data;
ClearDialogWindowAndFrame(0, 0);
- DestroyListMenuTask(data[5], &data[2], &data[1]);
- gSaveBlock1Ptr->secretBases[data[4]].registryStatus = 0;
+ DestroyListMenuTask(tListTaskId, &tScrollOffset, &tSelectedRow);
+ gSaveBlock1Ptr->secretBases[tSelectedBaseId].registryStatus = UNREGISTERED;
BuildRegistryMenuItems(taskId);
- sub_812225C(&data[2], &data[1], data[3], data[0]);
+ sub_812225C(&tScrollOffset, &tSelectedRow, tMaxShownItems, tNumBases);
FinalizeRegistryMenu(taskId);
gTasks[taskId].func = HandleRegistryMenuInput;
}
@@ -1061,7 +1089,7 @@ static void DeleteRegistry_No(u8 taskId)
{
s16 *data = gTasks[taskId].data;
ClearDialogWindowAndFrame(0, 0);
- DestroyListMenuTask(data[5], &data[2], &data[1]);
+ DestroyListMenuTask(tListTaskId, &tScrollOffset, &tSelectedRow);
FinalizeRegistryMenu(taskId);
gTasks[taskId].func = HandleRegistryMenuInput;
}
@@ -1070,9 +1098,9 @@ static void ReturnToMainRegistryMenu(u8 taskId)
{
s16 *data = gTasks[taskId].data;
AddRegistryMenuScrollArrows(taskId);
- ClearStdWindowAndFrame(data[7], 0);
- ClearWindowTilemap(data[7]);
- RemoveWindow(data[7]);
+ ClearStdWindowAndFrame(tActionWindowId, 0);
+ ClearWindowTilemap(tActionWindowId);
+ RemoveWindow(tActionWindowId);
ScheduleBgCopyTilemapToVram(0);
gTasks[taskId].func = HandleRegistryMenuInput;
}
@@ -1087,10 +1115,20 @@ static void GoToSecretBasePCRegisterMenu(u8 taskId)
DestroyTask(taskId);
}
-static u8 GetSecretBaseOwnerType(u8 secretBaseId)
+#undef tNumBases
+#undef tSelectedRow
+#undef tScrollOffset
+#undef tMaxShownItems
+#undef tSelectedBaseId
+#undef tListTaskId
+#undef tMainWindowId
+#undef tActionWindowId
+#undef tArrowTaskId
+
+static u8 GetSecretBaseOwnerType(u8 secretBaseIdx)
{
- return (gSaveBlock1Ptr->secretBases[secretBaseId].trainerId[0] % 5)
- + (gSaveBlock1Ptr->secretBases[secretBaseId].gender * 5);
+ return (gSaveBlock1Ptr->secretBases[secretBaseIdx].trainerId[0] % 5)
+ + (gSaveBlock1Ptr->secretBases[secretBaseIdx].gender * 5);
}
const u8 *GetSecretBaseTrainerLoseText(void)
@@ -1132,10 +1170,10 @@ void SetBattledOwnerFromResult(void)
void GetSecretBaseOwnerAndState(void)
{
- u16 secretBaseId;
+ u16 secretBaseIdx;
u8 i;
- secretBaseId = VarGet(VAR_CURRENT_SECRET_BASE);
+ secretBaseIdx = VarGet(VAR_CURRENT_SECRET_BASE);
if (!FlagGet(FLAG_DAILY_SECRET_BASE))
{
for (i = 0; i < SECRET_BASES_COUNT; i++)
@@ -1143,10 +1181,16 @@ void GetSecretBaseOwnerAndState(void)
FlagSet(FLAG_DAILY_SECRET_BASE);
}
- gSpecialVar_0x8004 = GetSecretBaseOwnerType(secretBaseId);
- gSpecialVar_Result = gSaveBlock1Ptr->secretBases[secretBaseId].battledOwnerToday;
+ gSpecialVar_0x8004 = GetSecretBaseOwnerType(secretBaseIdx);
+ gSpecialVar_Result = gSaveBlock1Ptr->secretBases[secretBaseIdx].battledOwnerToday;
}
+#define tStepCb data[0] // See Task_RunPerStepCallback
+#define tState data[1]
+#define tPlayerX data[2]
+#define tPlayerY data[3]
+#define tFldEff data[4]
+
void SecretBasePerStepCallback(u8 taskId)
{
s16 x;
@@ -1156,23 +1200,23 @@ void SecretBasePerStepCallback(u8 taskId)
s16 *data;
data = gTasks[taskId].data;
- switch (data[1])
+ switch (tState)
{
case 0:
- if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
+ if (VarGet(VAR_CURRENT_SECRET_BASE))
sInFriendSecretBase = TRUE;
else
sInFriendSecretBase = FALSE;
- PlayerGetDestCoords(&data[2], &data[3]);
- data[1] = 1;
+ PlayerGetDestCoords(&tPlayerX, &tPlayerY);
+ tState = 1;
break;
case 1:
PlayerGetDestCoords(&x, &y);
- if (x != data[2] || y != data[3])
+ if (x != tPlayerX || y != tPlayerY)
{
- data[2] = x;
- data[3] = y;
+ tPlayerX = x;
+ tPlayerY = y;
VarSet(VAR_SECRET_BASE_STEP_COUNTER, VarGet(VAR_SECRET_BASE_STEP_COUNTER) + 1);
behavior = MapGridGetMetatileBehaviorAt(x, y);
tileId = MapGridGetMetatileIdAt(x, y);
@@ -1273,33 +1317,40 @@ void SecretBasePerStepCallback(u8 taskId)
}
break;
case 2:
- if (!FieldEffectActiveListContains(data[4]))
- data[1] = 1;
+ // This state is never reached, and tFldEff is never set
+ if (!FieldEffectActiveListContains(tFldEff))
+ tState = 1;
break;
}
}
-static void SetSecretBaseDataAndLanguage(u8 secretBaseId, struct SecretBase *secretBase, u32 version, u32 language)
+#undef tStepCb
+#undef tState
+#undef tPlayerX
+#undef tPlayerY
+#undef tFldEff
+
+static void SaveSecretBase(u8 secretBaseIdx, struct SecretBase *secretBase, u32 version, u32 language)
{
int stringLength;
u8 *name;
- gSaveBlock1Ptr->secretBases[secretBaseId] = *secretBase;
- gSaveBlock1Ptr->secretBases[secretBaseId].registryStatus = 2;
+ gSaveBlock1Ptr->secretBases[secretBaseIdx] = *secretBase;
+ gSaveBlock1Ptr->secretBases[secretBaseIdx].registryStatus = NEW;
if (version == VERSION_SAPPHIRE || version == VERSION_RUBY)
- gSaveBlock1Ptr->secretBases[secretBaseId].language = LANGUAGE_ENGLISH;
+ gSaveBlock1Ptr->secretBases[secretBaseIdx].language = GAME_LANGUAGE;
if (version == VERSION_EMERALD && language == LANGUAGE_JAPANESE)
{
- name = gSaveBlock1Ptr->secretBases[secretBaseId].trainerName;
- for (stringLength = 0; stringLength < 7; stringLength++)
+ name = gSaveBlock1Ptr->secretBases[secretBaseIdx].trainerName;
+ for (stringLength = 0; stringLength < PLAYER_NAME_LENGTH; stringLength++)
{
if (name[stringLength] == EOS)
break;
}
if (stringLength > 5)
- gSaveBlock1Ptr->secretBases[secretBaseId].language = LANGUAGE_ENGLISH;
+ gSaveBlock1Ptr->secretBases[secretBaseIdx].language = GAME_LANGUAGE;
}
}
@@ -1363,56 +1414,67 @@ static u8 FindAvailableSecretBaseIndex(void)
return 0;
}
-static u8 sub_80EAA18(void)
+static u8 FindUnregisteredSecretBaseIndex(void)
{
s16 i;
for (i = 1; i < SECRET_BASES_COUNT; i++)
{
- if (gSaveBlock1Ptr->secretBases[i].registryStatus == 0 && gSaveBlock1Ptr->secretBases[i].sbr_field_1_0 == 0)
+ if (gSaveBlock1Ptr->secretBases[i].registryStatus == UNREGISTERED && gSaveBlock1Ptr->secretBases[i].toRegister == FALSE)
return i;
}
return 0;
}
-static u8 sub_80EAA64(struct SecretBase *secretBase, u32 version, u32 language)
+static u8 TrySaveFriendsSecretBase(struct SecretBase *secretBase, u32 version, u32 language)
{
s16 index;
+ // Secret base has no location
if (!secretBase->secretBaseId)
return 0;
index = GetSecretBaseIndexFromId(secretBase->secretBaseId);
if (index != 0)
{
+ // An existing secret base is using this location
if (index != -1)
{
- if (gSaveBlock1Ptr->secretBases[index].sbr_field_1_0 == 1)
+ if (gSaveBlock1Ptr->secretBases[index].toRegister == TRUE)
return 0;
- if (gSaveBlock1Ptr->secretBases[index].registryStatus != 2 || secretBase->sbr_field_1_0 == 1)
+ if (gSaveBlock1Ptr->secretBases[index].registryStatus != NEW || secretBase->toRegister == TRUE)
{
- SetSecretBaseDataAndLanguage(index, secretBase, version, language);
+ // Overwrite unregistered base at this location
+ SaveSecretBase(index, secretBase, version, language);
return index;
}
}
+ // No secret base is using this location, find a spot to save it
else
{
index = FindAvailableSecretBaseIndex();
if (index != 0)
{
- SetSecretBaseDataAndLanguage(index, secretBase, version, language);
+ // Save in empty space
+ SaveSecretBase(index, secretBase, version, language);
return index;
}
- index = sub_80EAA18();
+ index = FindUnregisteredSecretBaseIndex();
if (index != 0)
{
- SetSecretBaseDataAndLanguage(index, secretBase, version, language);
+ // Overwrite unregistered base
+ SaveSecretBase(index, secretBase, version, language);
return index;
}
}
}
+
+ // Unable to save. Either...
+ // - This was the player's base
+ // - A registered base exists at this location
+ // - The secret base limit has been filled with registered bases
return 0;
}
@@ -1425,11 +1487,12 @@ static void SortSecretBasesByRegistryStatus(void)
struct SecretBase *secretBases;
secretBases = gSaveBlock1Ptr->secretBases;
- for (i = 1; i < 19; i++)
+ for (i = 1; i < SECRET_BASES_COUNT - 1; i++)
{
for (j = i + 1; j < SECRET_BASES_COUNT; j++)
{
- if ((secretBases[i].registryStatus == 0 && secretBases[j].registryStatus == 1) || (secretBases[i].registryStatus == 2 && secretBases[j].registryStatus != 2))
+ if ((secretBases[i].registryStatus == UNREGISTERED && secretBases[j].registryStatus == REGISTERED)
+ || (secretBases[i].registryStatus == NEW && secretBases[j].registryStatus != NEW))
{
struct SecretBase temp;
SWAP(secretBases[i], secretBases[j], temp)
@@ -1438,17 +1501,19 @@ static void SortSecretBasesByRegistryStatus(void)
}
}
-void sub_80EABA4(struct SecretBaseRecordMixer *mixer, u8 registryStatus)
+// Used to save a record mixing friends' bases other than their own
+// registryStatus is so registered bases can be attempted first
+static void TrySaveFriendsSecretBases(struct SecretBaseRecordMixer *mixer, u8 registryStatus)
{
u16 i;
for (i = 1; i < SECRET_BASES_COUNT; i++)
{
if (mixer->secretBases[i].registryStatus == registryStatus)
- sub_80EAA64(&mixer->secretBases[i], mixer->version, mixer->language);
+ TrySaveFriendsSecretBase(&mixer->secretBases[i], mixer->version, mixer->language);
}
}
-bool8 SecretBaseBelongsToPlayer(struct SecretBase *secretBase)
+static bool8 SecretBaseBelongsToPlayer(struct SecretBase *secretBase)
{
u8 i;
@@ -1478,7 +1543,7 @@ bool8 SecretBaseBelongsToPlayer(struct SecretBase *secretBase)
#define DELETED_BASE_B (1 << 1)
#define DELETED_BASE_C (1 << 2)
-void DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords(struct SecretBase *basesA, struct SecretBase *basesB, struct SecretBase *basesC)
+static void DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords(struct SecretBase *basesA, struct SecretBase *basesB, struct SecretBase *basesC)
{
u8 i;
u8 sbFlags = 0;
@@ -1524,7 +1589,7 @@ void DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords(struct SecretBase
#undef DELETED_BASE_C
// returns TRUE if secretBase was deleted, FALSE otherwise
-static bool8 ClearDuplicateOwnedSecretBases(struct SecretBase *secretBase, struct SecretBase *secretBases, u8 c)
+static bool8 ClearDuplicateOwnedSecretBase(struct SecretBase *secretBase, struct SecretBase *secretBases, u8 idx)
{
u8 i;
@@ -1534,7 +1599,7 @@ static bool8 ClearDuplicateOwnedSecretBases(struct SecretBase *secretBase, struc
{
if (SecretBasesBelongToSamePlayer(secretBase, &secretBases[i]) == TRUE)
{
- if (c == 0)
+ if (idx == 0)
{
ClearSecretBase(&secretBases[i]);
return FALSE;
@@ -1546,7 +1611,7 @@ static bool8 ClearDuplicateOwnedSecretBases(struct SecretBase *secretBase, struc
return FALSE;
}
- secretBases[i].sbr_field_1_0 = secretBase->sbr_field_1_0;
+ secretBases[i].toRegister = secretBase->toRegister;
ClearSecretBase(secretBase);
return TRUE;
}
@@ -1556,87 +1621,97 @@ static bool8 ClearDuplicateOwnedSecretBases(struct SecretBase *secretBase, struc
return FALSE;
}
-void sub_80EAD94(struct SecretBase *basesA, struct SecretBase *basesB, struct SecretBase *basesC, struct SecretBase *basesD)
+static void ClearDuplicateOwnedSecretBases(struct SecretBase *playersBases, struct SecretBase *friendsBasesA, struct SecretBase *friendsBasesB, struct SecretBase *friendsBasesC)
{
u8 i;
for (i = 1; i < SECRET_BASES_COUNT; i++)
{
- if (basesA[i].secretBaseId)
+ if (playersBases[i].secretBaseId)
{
- if (basesA[i].registryStatus == 1)
+ if (playersBases[i].registryStatus == REGISTERED)
{
- basesA[i].sbr_field_1_0 = 1;
+ // Mark registered bases, so if they're deleted as a duplicate they
+ // will be re-registered later
+ playersBases[i].toRegister = TRUE;
}
- if (!ClearDuplicateOwnedSecretBases(&basesA[i], basesB, i))
+ if (!ClearDuplicateOwnedSecretBase(&playersBases[i], friendsBasesA, i))
{
- if (!ClearDuplicateOwnedSecretBases(&basesA[i], basesC, i))
+ if (!ClearDuplicateOwnedSecretBase(&playersBases[i], friendsBasesB, i))
{
- ClearDuplicateOwnedSecretBases(&basesA[i], basesD, i);
+ ClearDuplicateOwnedSecretBase(&playersBases[i], friendsBasesC, i);
}
}
}
}
for (i = 0; i < SECRET_BASES_COUNT; i++)
{
- if (basesB[i].secretBaseId)
+ if (friendsBasesA[i].secretBaseId)
{
- basesB[i].battledOwnerToday = 0;
- if (!ClearDuplicateOwnedSecretBases(&basesB[i], basesC, i))
+ friendsBasesA[i].battledOwnerToday = 0;
+ if (!ClearDuplicateOwnedSecretBase(&friendsBasesA[i], friendsBasesB, i))
{
- ClearDuplicateOwnedSecretBases(&basesB[i], basesD, i);
+ ClearDuplicateOwnedSecretBase(&friendsBasesA[i], friendsBasesC, i);
}
}
}
for (i = 0; i < SECRET_BASES_COUNT; i++)
{
- if (basesC[i].secretBaseId)
+ if (friendsBasesB[i].secretBaseId)
{
- basesC[i].battledOwnerToday = 0;
- ClearDuplicateOwnedSecretBases(&basesC[i], basesD, i);
+ friendsBasesB[i].battledOwnerToday = 0;
+ ClearDuplicateOwnedSecretBase(&friendsBasesB[i], friendsBasesC, i);
}
- if (basesD[i].secretBaseId)
+ if (friendsBasesC[i].secretBaseId)
{
- basesD[i].battledOwnerToday = 0;
+ friendsBasesC[i].battledOwnerToday = 0;
}
}
}
-void sub_80EAE90(struct SecretBase *base, u32 version, u32 language)
+static void TrySaveRegisteredDuplicate(struct SecretBase *base, u32 version, u32 language)
{
- if (base->sbr_field_1_0 == 1)
+ if (base->toRegister == TRUE)
{
- sub_80EAA64(base, version, language);
+ TrySaveFriendsSecretBase(base, version, language);
ClearSecretBase(base);
}
}
-void sub_80EAEB4(struct SecretBaseRecordMixer *mixers)
+static void TrySaveRegisteredDuplicates(struct SecretBaseRecordMixer *mixers)
{
u16 i;
for (i = 0; i < SECRET_BASES_COUNT; i++)
{
- sub_80EAE90(&mixers[0].secretBases[i], mixers[0].version, mixers[0].language);
- sub_80EAE90(&mixers[1].secretBases[i], mixers[1].version, mixers[1].language);
- sub_80EAE90(&mixers[2].secretBases[i], mixers[2].version, mixers[2].language);
+ TrySaveRegisteredDuplicate(&mixers[0].secretBases[i], mixers[0].version, mixers[0].language);
+ TrySaveRegisteredDuplicate(&mixers[1].secretBases[i], mixers[1].version, mixers[1].language);
+ TrySaveRegisteredDuplicate(&mixers[2].secretBases[i], mixers[2].version, mixers[2].language);
}
}
-void sub_80EAEF4(struct SecretBaseRecordMixer *mixers)
+static void SaveRecordMixBases(struct SecretBaseRecordMixer *mixers)
{
DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords(mixers[0].secretBases, mixers[1].secretBases, mixers[2].secretBases);
- sub_80EAD94(gSaveBlock1Ptr->secretBases, mixers[0].secretBases, mixers[1].secretBases, mixers[2].secretBases);
- sub_80EAEB4(mixers);
- sub_80EAA64(mixers[0].secretBases, mixers[0].version, mixers[0].language);
- sub_80EAA64(mixers[1].secretBases, mixers[1].version, mixers[1].language);
- sub_80EAA64(mixers[2].secretBases, mixers[2].version, mixers[2].language);
- sub_80EABA4(&mixers[0], 1);
- sub_80EABA4(&mixers[1], 1);
- sub_80EABA4(&mixers[2], 1);
- sub_80EABA4(&mixers[0], 0);
- sub_80EABA4(&mixers[1], 0);
- sub_80EABA4(&mixers[2], 0);
+ ClearDuplicateOwnedSecretBases(gSaveBlock1Ptr->secretBases, mixers[0].secretBases, mixers[1].secretBases, mixers[2].secretBases);
+
+ // First, save any registered secret bases that were deleted as duplicates
+ TrySaveRegisteredDuplicates(mixers);
+
+ // Then try to save the record mixing friends' own bases
+ TrySaveFriendsSecretBase(mixers[0].secretBases, mixers[0].version, mixers[0].language);
+ TrySaveFriendsSecretBase(mixers[1].secretBases, mixers[1].version, mixers[1].language);
+ TrySaveFriendsSecretBase(mixers[2].secretBases, mixers[2].version, mixers[2].language);
+
+ // Then try to save as many of their registered bases as possible
+ TrySaveFriendsSecretBases(&mixers[0], REGISTERED);
+ TrySaveFriendsSecretBases(&mixers[1], REGISTERED);
+ TrySaveFriendsSecretBases(&mixers[2], REGISTERED);
+
+ // Lastly save as many of their unregistered bases as possible
+ TrySaveFriendsSecretBases(&mixers[0], UNREGISTERED);
+ TrySaveFriendsSecretBases(&mixers[1], UNREGISTERED);
+ TrySaveFriendsSecretBases(&mixers[2], UNREGISTERED);
}
#define INIT_SECRET_BASE_RECORD_MIXER(linkId1, linkId2, linkId3) \
@@ -1684,23 +1759,25 @@ void ReceiveSecretBasesData(void *secretBases, size_t recordSize, u8 linkIdx)
break;
}
- sub_80EAEF4(mixers);
+ SaveRecordMixBases(mixers);
+
for (i = 1; i < SECRET_BASES_COUNT; i++)
{
- if (gSaveBlock1Ptr->secretBases[i].sbr_field_1_0 == 1)
+ // In the process of deleting duplicate bases, if a base the player has registered is deleted it is
+ // flagged with the temporary toRegister flag, so it can be re-registered after it has been newly saved
+ if (gSaveBlock1Ptr->secretBases[i].toRegister == TRUE)
{
- gSaveBlock1Ptr->secretBases[i].registryStatus = 1;
- gSaveBlock1Ptr->secretBases[i].sbr_field_1_0 = 0;
+ gSaveBlock1Ptr->secretBases[i].registryStatus = REGISTERED;
+ gSaveBlock1Ptr->secretBases[i].toRegister = FALSE;
}
}
SortSecretBasesByRegistryStatus();
for (i = 1; i < SECRET_BASES_COUNT; i++)
{
- if (gSaveBlock1Ptr->secretBases[i].registryStatus == 2)
- {
- gSaveBlock1Ptr->secretBases[i].registryStatus = 0;
- }
+ // Unmark "new" bases, they've been saved now and are no longer important
+ if (gSaveBlock1Ptr->secretBases[i].registryStatus == NEW)
+ gSaveBlock1Ptr->secretBases[i].registryStatus = UNREGISTERED;
}
if (gSaveBlock1Ptr->secretBases[0].secretBaseId != 0
diff --git a/src/trade.c b/src/trade.c
index 96099cb74..afefce93c 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -1489,7 +1489,7 @@ static u8 CheckValidityOfTradeMons(u8 *aliveMons, u8 playerPartyCount, u8 player
// Partner cant trade illegitimate Deoxys or Mew
if (partnerSpecies == SPECIES_DEOXYS || partnerSpecies == SPECIES_MEW)
{
- if (!GetMonData(&gEnemyParty[partnerMonIdx], MON_DATA_OBEDIENCE))
+ if (!GetMonData(&gEnemyParty[partnerMonIdx], MON_DATA_EVENT_LEGAL))
return PARTNER_MON_INVALID;
}
@@ -2329,7 +2329,7 @@ static u32 CanTradeSelectedMon(struct Pokemon *playerParty, int partyCount, int
if (species[monIdx] == SPECIES_DEOXYS || species[monIdx] == SPECIES_MEW)
{
- if (!GetMonData(&playerParty[monIdx], MON_DATA_OBEDIENCE))
+ if (!GetMonData(&playerParty[monIdx], MON_DATA_EVENT_LEGAL))
return CANT_TRADE_INVALID_MON;
}
@@ -2394,17 +2394,17 @@ s32 GetGameProgressForLinkTrade(void)
return TRADE_BOTH_PLAYERS_READY;
}
-static bool32 IsDeoxysOrMewUntradable(u16 species, bool8 isObedientBitSet)
+static bool32 IsDeoxysOrMewUntradable(u16 species, bool8 isEventLegal)
{
if (species == SPECIES_DEOXYS || species == SPECIES_MEW)
{
- if (!isObedientBitSet)
+ if (!isEventLegal)
return TRUE;
}
return FALSE;
}
-int GetUnionRoomTradeMessageId(struct GFtgtGnameSub rfuPlayer, struct GFtgtGnameSub rfuPartner, u16 playerSpecies2, u16 partnerSpecies, u8 requestedType, u16 playerSpecies, u8 isObedientBitSet)
+int GetUnionRoomTradeMessageId(struct GFtgtGnameSub rfuPlayer, struct GFtgtGnameSub rfuPartner, u16 playerSpecies2, u16 partnerSpecies, u8 requestedType, u16 playerSpecies, u8 isEventLegal)
{
bool8 playerHasNationalDex = rfuPlayer.hasNationalDex;
bool8 playerIsChampion = rfuPlayer.isChampion;
@@ -2424,7 +2424,7 @@ int GetUnionRoomTradeMessageId(struct GFtgtGnameSub rfuPlayer, struct GFtgtGname
}
}
- if (IsDeoxysOrMewUntradable(playerSpecies, isObedientBitSet))
+ if (IsDeoxysOrMewUntradable(playerSpecies, isEventLegal))
{
return UR_TRADE_MSG_MON_CANT_BE_TRADED_2;
}
@@ -2475,11 +2475,11 @@ int GetUnionRoomTradeMessageId(struct GFtgtGnameSub rfuPlayer, struct GFtgtGname
return UR_TRADE_MSG_NONE;
}
-int CanRegisterMonForTradingBoard(struct GFtgtGnameSub rfuPlayer, u16 species2, u16 species, u8 isObedientBitSet)
+int CanRegisterMonForTradingBoard(struct GFtgtGnameSub rfuPlayer, u16 species2, u16 species, u8 isEventLegal)
{
bool8 hasNationalDex = rfuPlayer.hasNationalDex;
- if (IsDeoxysOrMewUntradable(species, isObedientBitSet))
+ if (IsDeoxysOrMewUntradable(species, isEventLegal))
return CANT_REGISTER_MON;
if (hasNationalDex)
@@ -2920,7 +2920,7 @@ static void CB2_InGameTrade(void)
StringCopy(gLinkPlayers[0].name, gSaveBlock2Ptr->playerName);
GetMonData(&gEnemyParty[0], MON_DATA_OT_NAME, otName);
StringCopy(gLinkPlayers[1].name, otName);
- gLinkPlayers[0].language = LANGUAGE_ENGLISH;
+ gLinkPlayers[0].language = GAME_LANGUAGE;
gLinkPlayers[1].language = GetMonData(&gEnemyParty[0], MON_DATA_LANGUAGE);
sTradeData = AllocZeroed(sizeof(*sTradeData));
AllocateMonSpritesGfx();
diff --git a/src/trainer_see.c b/src/trainer_see.c
index 8a7d2a5f9..9833f14bd 100644
--- a/src/trainer_see.c
+++ b/src/trainer_see.c
@@ -41,10 +41,10 @@ static bool8 PlayerFaceApproachingTrainer(u8 taskId, struct Task *task, struct O
static bool8 WaitPlayerFaceApproachingTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj);
static bool8 RevealDisguisedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj);
static bool8 WaitRevealDisguisedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj);
-static bool8 RevealHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj);
-static bool8 PopOutOfAshHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj);
-static bool8 JumpInPlaceHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj);
-static bool8 WaitRevealHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj);
+static bool8 RevealBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj);
+static bool8 PopOutOfAshBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj);
+static bool8 JumpInPlaceBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj);
+static bool8 WaitRevealBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj);
static void SpriteCB_TrainerIcons(struct Sprite *sprite);
@@ -80,10 +80,10 @@ enum {
TRSEE_PLAYER_FACE_WAIT,
TRSEE_REVEAL_DISGUISE,
TRSEE_REVEAL_DISGUISE_WAIT,
- TRSEE_REVEAL_HIDDEN,
- TRSEE_HIDDEN_POP_OUT,
- TRSEE_HIDDEN_JUMP,
- TRSEE_REVEAL_HIDDEN_WAIT,
+ TRSEE_REVEAL_BURIED,
+ TRSEE_BURIED_POP_OUT,
+ TRSEE_BURIED_JUMP,
+ TRSEE_REVEAL_BURIED_WAIT,
};
static bool8 (*const sTrainerSeeFuncList[])(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) =
@@ -96,18 +96,18 @@ static bool8 (*const sTrainerSeeFuncList[])(u8 taskId, struct Task *task, struct
[TRSEE_PLAYER_FACE_WAIT] = WaitPlayerFaceApproachingTrainer,
[TRSEE_REVEAL_DISGUISE] = RevealDisguisedTrainer,
[TRSEE_REVEAL_DISGUISE_WAIT] = WaitRevealDisguisedTrainer,
- [TRSEE_REVEAL_HIDDEN] = RevealHiddenTrainer,
- [TRSEE_HIDDEN_POP_OUT] = PopOutOfAshHiddenTrainer,
- [TRSEE_HIDDEN_JUMP] = JumpInPlaceHiddenTrainer,
- [TRSEE_REVEAL_HIDDEN_WAIT] = WaitRevealHiddenTrainer,
+ [TRSEE_REVEAL_BURIED] = RevealBuriedTrainer,
+ [TRSEE_BURIED_POP_OUT] = PopOutOfAshBuriedTrainer,
+ [TRSEE_BURIED_JUMP] = JumpInPlaceBuriedTrainer,
+ [TRSEE_REVEAL_BURIED_WAIT] = WaitRevealBuriedTrainer,
};
static bool8 (*const sTrainerSeeFuncList2[])(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) =
{
- RevealHiddenTrainer,
- PopOutOfAshHiddenTrainer,
- JumpInPlaceHiddenTrainer,
- WaitRevealHiddenTrainer,
+ RevealBuriedTrainer,
+ PopOutOfAshBuriedTrainer,
+ JumpInPlaceBuriedTrainer,
+ WaitRevealBuriedTrainer,
};
static const struct OamData sOamData_Icons =
@@ -481,8 +481,8 @@ static bool8 WaitTrainerExclamationMark(u8 taskId, struct Task *task, struct Obj
task->tFuncId++; // TRSEE_MOVE_TO_PLAYER
if (trainerObj->movementType == MOVEMENT_TYPE_TREE_DISGUISE || trainerObj->movementType == MOVEMENT_TYPE_MOUNTAIN_DISGUISE)
task->tFuncId = TRSEE_REVEAL_DISGUISE;
- if (trainerObj->movementType == MOVEMENT_TYPE_HIDDEN)
- task->tFuncId = TRSEE_REVEAL_HIDDEN;
+ if (trainerObj->movementType == MOVEMENT_TYPE_BURIED)
+ task->tFuncId = TRSEE_REVEAL_BURIED;
return TRUE;
}
}
@@ -561,8 +561,8 @@ static bool8 WaitRevealDisguisedTrainer(u8 taskId, struct Task *task, struct Obj
return FALSE;
}
-// TRSEE_REVEAL_HIDDEN
-static bool8 RevealHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj)
+// TRSEE_REVEAL_BURIED
+static bool8 RevealBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj)
{
if (!ObjectEventIsMovementOverridden(trainerObj)
|| ObjectEventClearHeldMovementIfFinished(trainerObj))
@@ -573,8 +573,8 @@ static bool8 RevealHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEven
return FALSE;
}
-// TRSEE_HIDDEN_POP_OUT
-static bool8 PopOutOfAshHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj)
+// TRSEE_BURIED_POP_OUT
+static bool8 PopOutOfAshBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj)
{
if (ObjectEventCheckHeldMovementStatus(trainerObj))
{
@@ -588,8 +588,8 @@ static bool8 PopOutOfAshHiddenTrainer(u8 taskId, struct Task *task, struct Objec
return FALSE;
}
-// TRSEE_HIDDEN_JUMP
-static bool8 JumpInPlaceHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj)
+// TRSEE_BURIED_JUMP
+static bool8 JumpInPlaceBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj)
{
struct Sprite *sprite;
@@ -608,8 +608,8 @@ static bool8 JumpInPlaceHiddenTrainer(u8 taskId, struct Task *task, struct Objec
return FALSE;
}
-// TRSEE_REVEAL_HIDDEN_WAIT
-static bool8 WaitRevealHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj)
+// TRSEE_REVEAL_BURIED_WAIT
+static bool8 WaitRevealBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj)
{
if (!FieldEffectActiveListContains(FLDEFF_ASH_PUFF))
task->tFuncId = TRSEE_MOVE_TO_PLAYER;
@@ -623,7 +623,7 @@ static bool8 WaitRevealHiddenTrainer(u8 taskId, struct Task *task, struct Object
#define tObjEvent data[1]
-static void Task_SetHiddenTrainerMovement(u8 taskId)
+static void Task_SetBuriedTrainerMovement(u8 taskId)
{
struct Task *task = &gTasks[taskId];
struct ObjectEvent *objEvent;
@@ -647,10 +647,10 @@ static void Task_SetHiddenTrainerMovement(u8 taskId)
}
}
-// Called when a "buried" trainer has the reveal_trainer movement applied, from direct interaction
-void SetHiddenTrainerMovement(struct ObjectEvent *objEvent)
+// Called when a buried Trainer has the reveal_trainer movement applied, from direct interaction
+void SetBuriedTrainerMovement(struct ObjectEvent *objEvent)
{
- StoreWordInTwoHalfwords(&gTasks[CreateTask(Task_SetHiddenTrainerMovement, 0)].tObjEvent, (u32)objEvent);
+ StoreWordInTwoHalfwords(&gTasks[CreateTask(Task_SetBuriedTrainerMovement, 0)].tObjEvent, (u32)objEvent);
}
void DoTrainerApproach(void)
diff --git a/src/tv.c b/src/tv.c
index effd3e4b2..99bd609e4 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -1665,7 +1665,7 @@ void PutLilycoveContestLadyShowOnTheAir(void)
{
show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot];
BufferContestLadyLanguage(&show->contestLiveUpdates2.language);
- show->contestLiveUpdates2.pokemonNameLanguage = LANGUAGE_ENGLISH;
+ show->contestLiveUpdates2.pokemonNameLanguage = GAME_LANGUAGE;
show->contestLiveUpdates2.kind = TVSHOW_CONTEST_LIVE_UPDATES_2;
show->contestLiveUpdates2.active = TRUE;
BufferContestLadyPlayerName(show->contestLiveUpdates2.playerName);
@@ -2398,13 +2398,13 @@ u8 GetRibbonCount(struct Pokemon *pokemon)
nRibbons += GetMonData(pokemon, MON_DATA_VICTORY_RIBBON);
nRibbons += GetMonData(pokemon, MON_DATA_ARTIST_RIBBON);
nRibbons += GetMonData(pokemon, MON_DATA_EFFORT_RIBBON);
- nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_1);
- nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_2);
- nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_3);
- nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_4);
- nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_5);
- nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_6);
- nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_7);
+ nRibbons += GetMonData(pokemon, MON_DATA_MARINE_RIBBON);
+ nRibbons += GetMonData(pokemon, MON_DATA_LAND_RIBBON);
+ nRibbons += GetMonData(pokemon, MON_DATA_SKY_RIBBON);
+ nRibbons += GetMonData(pokemon, MON_DATA_COUNTRY_RIBBON);
+ nRibbons += GetMonData(pokemon, MON_DATA_NATIONAL_RIBBON);
+ nRibbons += GetMonData(pokemon, MON_DATA_EARTH_RIBBON);
+ nRibbons += GetMonData(pokemon, MON_DATA_WORLD_RIBBON);
return nRibbons;
}
@@ -2420,13 +2420,13 @@ u8 TV_MonDataIdxToRibbon(u8 monDataIdx)
if (monDataIdx == MON_DATA_VICTORY_RIBBON) return 22;
if (monDataIdx == MON_DATA_ARTIST_RIBBON) return 23;
if (monDataIdx == MON_DATA_EFFORT_RIBBON) return 24;
- if (monDataIdx == MON_DATA_GIFT_RIBBON_1) return 25;
- if (monDataIdx == MON_DATA_GIFT_RIBBON_2) return 26;
- if (monDataIdx == MON_DATA_GIFT_RIBBON_3) return 27;
- if (monDataIdx == MON_DATA_GIFT_RIBBON_4) return 28;
- if (monDataIdx == MON_DATA_GIFT_RIBBON_5) return 29;
- if (monDataIdx == MON_DATA_GIFT_RIBBON_6) return 30;
- if (monDataIdx == MON_DATA_GIFT_RIBBON_7) return 31;
+ if (monDataIdx == MON_DATA_MARINE_RIBBON) return 25;
+ if (monDataIdx == MON_DATA_LAND_RIBBON) return 26;
+ if (monDataIdx == MON_DATA_SKY_RIBBON) return 27;
+ if (monDataIdx == MON_DATA_COUNTRY_RIBBON) return 28;
+ if (monDataIdx == MON_DATA_NATIONAL_RIBBON) return 29;
+ if (monDataIdx == MON_DATA_EARTH_RIBBON) return 30;
+ if (monDataIdx == MON_DATA_WORLD_RIBBON) return 31;
return 0;
}
@@ -3144,7 +3144,7 @@ static bool8 IsPartyMonNicknamedOrNotEnglish(u8 monIdx)
pokemon = &gPlayerParty[monIdx];
GetMonData(pokemon, MON_DATA_NICKNAME, gStringVar1);
language = GetMonData(pokemon, MON_DATA_LANGUAGE, &language);
- if (language == LANGUAGE_ENGLISH && !StringCompare(gSpeciesNames[GetMonData(pokemon, MON_DATA_SPECIES, NULL)], gStringVar1))
+ if (language == GAME_LANGUAGE && !StringCompare(gSpeciesNames[GetMonData(pokemon, MON_DATA_SPECIES, NULL)], gStringVar1))
{
return FALSE;
}
@@ -4254,7 +4254,7 @@ static void sub_80F1254(TVShow *shows)
}
else
{
- curShow->bravoTrainerTower.pokemonNameLanguage = LANGUAGE_ENGLISH;
+ curShow->bravoTrainerTower.pokemonNameLanguage = GAME_LANGUAGE;
}
}
}
@@ -4262,7 +4262,7 @@ static void sub_80F1254(TVShow *shows)
u8 TV_GetStringLanguage(u8 *str)
{
- return IsStringJapanese(str) ? LANGUAGE_JAPANESE : LANGUAGE_ENGLISH;
+ return IsStringJapanese(str) ? LANGUAGE_JAPANESE : GAME_LANGUAGE;
}
static void sub_80F12A4(TVShow *shows)
diff --git a/src/util.c b/src/util.c
index 8aa54857a..a4e3fa4cf 100644
--- a/src/util.c
+++ b/src/util.c
@@ -2,6 +2,7 @@
#include "util.h"
#include "sprite.h"
#include "palette.h"
+#include "constants/rgb.h"
const u32 gBitTable[] =
{
@@ -271,8 +272,8 @@ void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor)
s8 g = data1->g;
s8 b = data1->b;
struct PlttData *data2 = (struct PlttData *)&blendColor;
- gPlttBufferFaded[index] = ((r + (((data2->r - r) * coeff) >> 4)) << 0)
- | ((g + (((data2->g - g) * coeff) >> 4)) << 5)
- | ((b + (((data2->b - b) * coeff) >> 4)) << 10);
+ gPlttBufferFaded[index] = RGB(r + (((data2->r - r) * coeff) >> 4),
+ g + (((data2->g - g) * coeff) >> 4),
+ b + (((data2->b - b) * coeff) >> 4));
}
}