summaryrefslogtreecommitdiff
path: root/data/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'data/scripts')
-rw-r--r--data/scripts/battle_pike.inc312
-rw-r--r--data/scripts/move_tutors.inc309
-rw-r--r--data/scripts/roulette.inc70
-rw-r--r--data/scripts/trainer_hill.inc85
4 files changed, 776 insertions, 0 deletions
diff --git a/data/scripts/battle_pike.inc b/data/scripts/battle_pike.inc
new file mode 100644
index 000000000..bb02a7d6c
--- /dev/null
+++ b/data/scripts/battle_pike.inc
@@ -0,0 +1,312 @@
+BattleFrontier_BattlePikeRandomRoom1_MapScripts_2C3E1B: @ 82C3E1B
+ map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattlePikeRandomRoom1_MapScript1_2C3E25
+ map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeRandomRoom1_MapScript2_2C3EDE
+
+BattleFrontier_BattlePikeRandomRoom1_MapScript1_2C3E25: @ 82C3E25
+ setvar VAR_0x8004, 4
+ special CallBattlePikeFunction
+ setvar VAR_0x8004, 5
+ special CallBattlePikeFunction
+ switch VAR_RESULT
+ case 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EB1
+ case 1, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EB1
+ case 2, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EC0
+ case 3, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EA2
+ case 4, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EB1
+ case 7, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3E93
+ case 6, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EA2
+ case 8, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3ECF
+ end
+
+BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3E93:: @ 82C3E93
+ setobjectxyperm 1, 2, 5
+ setobjectxyperm 2, 6, 5
+ end
+
+BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EA2:: @ 82C3EA2
+ setobjectxyperm 1, 4, 4
+ setobjectxyperm 2, 3, 4
+ end
+
+BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EB1:: @ 82C3EB1
+ setobjectxyperm 1, 4, 4
+ setobjectxyperm 2, 0, 0
+ end
+
+BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EC0:: @ 82C3EC0
+ setobjectxyperm 1, 5, 5
+ setobjectxyperm 2, 0, 0
+ end
+
+BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3ECF:: @ 82C3ECF
+ setobjectxyperm 1, 4, 3
+ setobjectxyperm 2, 4, 4
+ end
+
+BattleFrontier_BattlePikeRandomRoom1_MapScript2_2C3EDE: @ 82C3EDE
+ map_script_2 VAR_TEMP_4, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EE8
+ .2byte 0
+
+BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EE8:: @ 82C3EE8
+ setvar VAR_OBJ_GFX_ID_1, EVENT_OBJ_GFX_LINK_RECEPTIONIST
+ setvar VAR_OBJ_GFX_ID_0, EVENT_OBJ_GFX_LINK_RECEPTIONIST
+ setvar VAR_0x8004, 5
+ special CallBattlePikeFunction
+ compare VAR_RESULT, 3
+ goto_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3F35
+ compare VAR_RESULT, 6
+ goto_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3F35
+ compare VAR_RESULT, 7
+ goto_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3F35
+ compare VAR_RESULT, 8
+ goto_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3F3F
+ hideobjectat 2, MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1
+ setvar VAR_TEMP_4, 1
+ turnobject EVENT_OBJ_ID_PLAYER, DIR_NORTH
+ end
+
+BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3F35:: @ 82C3F35
+ setvar VAR_TEMP_4, 1
+ turnobject EVENT_OBJ_ID_PLAYER, DIR_NORTH
+ end
+
+BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3F3F:: @ 82C3F3F
+ setvar VAR_TEMP_4, 1
+ turnobject EVENT_OBJ_ID_PLAYER, DIR_NORTH
+ hideobjectat 1, MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1
+ end
+
+BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F4E:: @ 82C3F4E
+ setvar VAR_0x8007, 0
+ goto BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F6F
+ end
+
+BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F59:: @ 82C3F59
+ setvar VAR_0x8007, 1
+ goto BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F6F
+ end
+
+BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F64:: @ 82C3F64
+ setvar VAR_0x8007, 2
+ goto BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F6F
+ end
+
+BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F6F:: @ 82C3F6F
+ setvar VAR_0x8004, 1
+ setvar VAR_0x8005, 1
+ special CallBattlePikeFunction
+ addvar VAR_RESULT, 1
+ setvar VAR_0x8004, 2
+ setvar VAR_0x8005, 1
+ copyvar VAR_0x8006, VAR_RESULT
+ special CallBattlePikeFunction
+ setvar VAR_0x8004, 1
+ setvar VAR_0x8005, 2
+ special CallFrontierUtilFunc
+ addvar VAR_RESULT, 1
+ setvar VAR_0x8004, 2
+ setvar VAR_0x8005, 2
+ copyvar VAR_0x8006, VAR_RESULT
+ special CallFrontierUtilFunc
+ setvar VAR_0x8004, 0
+ special CallBattlePikeFunction
+ setvar VAR_0x8004, 5
+ special CallBattlePikeFunction
+ switch VAR_RESULT
+ case 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030
+ case 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030
+ case 2, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030
+ case 3, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030
+ case 4, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030
+ case 5, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4049
+ case 6, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030
+ case 7, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030
+ case 8, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030
+ end
+
+BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030:: @ 82C4030
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeThreePathRoom_Movement_2C427A
+ waitmovement 0
+ call BattleFrontier_BattlePikeThreePathRoom_EventScript_25BB49
+ warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1, 255, 4, 7
+ waitstate
+ end
+
+BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4049:: @ 82C4049
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeThreePathRoom_Movement_2C427A
+ waitmovement 0
+ call BattleFrontier_BattlePikeThreePathRoom_EventScript_25BB49
+ warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3, 255, 4, 19
+ waitstate
+ end
+
+BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4062:: @ 82C4062
+ setvar VAR_TEMP_3, 1
+ setvar VAR_TEMP_2, 1
+ end
+
+BattleFrontier_BattlePikeThreePathRoom_EventScript_2C406D:: @ 82C406D
+ setvar VAR_TEMP_3, 0
+ setvar VAR_TEMP_2, 0
+ lockall
+ msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CE36, MSGBOX_DEFAULT
+ closemessage
+ end
+
+BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4082:: @ 82C4082
+ setvar VAR_TEMP_3, 1
+ setvar VAR_TEMP_2, 1
+ end
+
+BattleFrontier_BattlePikeRandomRoom1_EventScript_2C408D:: @ 82C408D
+ setvar VAR_TEMP_3, 0
+ setvar VAR_TEMP_2, 0
+ lockall
+ msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25CE36, MSGBOX_DEFAULT
+ closemessage
+ end
+
+BattleFrontier_BattlePikeRandomRoom1_EventScript_2C40A2:: @ 82C40A2
+ setvar VAR_0x8004, 25
+ special CallBattlePikeFunction
+ compare VAR_RESULT, 1
+ call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4128
+ compare VAR_RESULT, 1
+ call_if_ne BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4136
+ setvar VAR_0x8004, 1
+ setvar VAR_0x8005, 1
+ special CallBattlePikeFunction
+ addvar VAR_RESULT, 1
+ setvar VAR_0x8004, 2
+ setvar VAR_0x8005, 1
+ copyvar VAR_0x8006, VAR_RESULT
+ special CallBattlePikeFunction
+ setvar VAR_0x8004, 1
+ setvar VAR_0x8005, 2
+ special CallFrontierUtilFunc
+ addvar VAR_RESULT, 1
+ setvar VAR_0x8004, 2
+ setvar VAR_0x8005, 2
+ copyvar VAR_0x8006, VAR_RESULT
+ special CallFrontierUtilFunc
+ setvar VAR_0x8004, 3
+ special CallBattlePikeFunction
+ compare VAR_RESULT, 1
+ call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4144
+ compare VAR_RESULT, 0
+ call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_2C415C
+ waitstate
+ end
+
+BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4128:: @ 82C4128
+BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4128:: @ 82C4128
+ setvar VAR_0x8004, 24
+ setvar VAR_0x8005, 1
+ special CallBattlePikeFunction
+ return
+
+BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4136:: @ 82C4136
+BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4136:: @ 82C4136
+ setvar VAR_0x8004, 24
+ setvar VAR_0x8005, 0
+ special CallBattlePikeFunction
+ return
+
+BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4144:: @ 82C4144
+BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4144:: @ 82C4144
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_2C427A
+ waitmovement 0
+ call BattleFrontier_BattlePikeRandomRoom1_EventScript_25BB49
+ warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2, 255, 2, 7
+ return
+
+BattleFrontier_BattlePikeRandomRoom1_EventScript_2C415C:: @ 82C415C
+BattleFrontier_BattlePikeRandomRoom3_EventScript_2C415C:: @ 82C415C
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_2C427A
+ waitmovement 0
+ call BattleFrontier_BattlePikeRandomRoom1_EventScript_25BB49
+ warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM, 255, 6, 10
+ return
+
+BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4174:: @ 82C4174
+ setvar VAR_0x8004, 7
+ special CallBattlePikeFunction
+ setvar VAR_0x8004, 25
+ special CallBattlePikeFunction
+ compare VAR_RESULT, 1
+ call_if_eq BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4128
+ compare VAR_RESULT, 1
+ call_if_ne BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4136
+ setvar VAR_0x8004, 1
+ setvar VAR_0x8005, 1
+ special CallBattlePikeFunction
+ addvar VAR_RESULT, 1
+ setvar VAR_0x8004, 2
+ setvar VAR_0x8005, 1
+ copyvar VAR_0x8006, VAR_RESULT
+ special CallBattlePikeFunction
+ setvar VAR_0x8004, 1
+ setvar VAR_0x8005, 2
+ special CallFrontierUtilFunc
+ addvar VAR_RESULT, 1
+ setvar VAR_0x8004, 2
+ setvar VAR_0x8005, 2
+ copyvar VAR_0x8006, VAR_RESULT
+ special CallFrontierUtilFunc
+ setvar VAR_0x8004, 3
+ special CallBattlePikeFunction
+ compare VAR_RESULT, 1
+ call_if_eq BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4144
+ compare VAR_RESULT, 0
+ call_if_eq BattleFrontier_BattlePikeRandomRoom3_EventScript_2C415C
+ waitstate
+ end
+
+BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4202:: @ 82C4202
+ setvar VAR_TEMP_3, 1
+ setvar VAR_TEMP_2, 1
+ end
+
+BattleFrontier_BattlePikeRandomRoom3_EventScript_2C420D:: @ 82C420D
+ setvar VAR_TEMP_3, 0
+ setvar VAR_TEMP_2, 0
+ lockall
+ msgbox BattleFrontier_BattlePikeRandomRoom3_Text_25CE36, MSGBOX_DEFAULT
+ closemessage
+ end
+
+BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4222:: @ 82C4222
+ setvar VAR_0x8004, 2
+ setvar VAR_0x8005, 0
+ setvar VAR_0x8006, 4
+ special CallFrontierUtilFunc
+ warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6
+ waitstate
+ end
+
+BattleFrontier_BattlePikeRandomRoom1_MapScript1_2C423E: @ 82C423E
+BattleFrontier_BattlePikeThreePathRoom_MapScript1_2C423E: @ 82C423E
+ setorcopyvar VAR_0x8006, VAR_RESULT
+ setvar VAR_0x8004, 1
+ setvar VAR_0x8005, 0
+ special CallFrontierUtilFunc
+ compare VAR_RESULT, 2
+ goto_if_eq BattleFrontier_BattlePikeThreePathRoom_EventScript_2C426B
+ compare VAR_RESULT, 1
+ goto_if_eq BattleFrontier_BattlePikeThreePathRoom_EventScript_2C426B
+ call BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4271
+
+BattleFrontier_BattlePikeThreePathRoom_EventScript_2C426B:: @ 82C426B
+ setorcopyvar VAR_RESULT, VAR_0x8006
+ end
+
+BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4271:: @ 82C4271
+BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4271:: @ 82C4271
+ setvar VAR_0x8004, 21
+ special CallFrontierUtilFunc
+ return
+
+BattleFrontier_BattlePikeRandomRoom1_Movement_2C427A: @ 82C427A
+BattleFrontier_BattlePikeThreePathRoom_Movement_2C427A: @ 82C427A
+ set_invisible
+ step_end
diff --git a/data/scripts/move_tutors.inc b/data/scripts/move_tutors.inc
new file mode 100644
index 000000000..e8eebade3
--- /dev/null
+++ b/data/scripts/move_tutors.inc
@@ -0,0 +1,309 @@
+SlateportCity_PokemonFanClub_EventScript_2C7F16:: @ 82C7F16
+ lock
+ faceplayer
+ goto_if_set FLAG_MOVE_TUTOR_TAUGHT_SWAGGER, SlateportCity_PokemonFanClub_EventScript_2C7F74
+ msgbox SlateportCity_PokemonFanClub_Text_2C6E37, MSGBOX_YESNO
+ compare VAR_RESULT, 0
+ goto_if_eq SlateportCity_PokemonFanClub_EventScript_2C7F6A
+ call SlateportCity_PokemonFanClub_EventScript_2C832D
+ compare VAR_RESULT, 0
+ goto_if_eq SlateportCity_PokemonFanClub_EventScript_2C7F6A
+ msgbox SlateportCity_PokemonFanClub_Text_2C6F66, MSGBOX_DEFAULT
+ setvar VAR_0x8005, 23
+ call EventScript_ShowPartyMenu
+ compare VAR_RESULT, 0
+ goto_if_eq SlateportCity_PokemonFanClub_EventScript_2C7F6A
+ setflag FLAG_MOVE_TUTOR_TAUGHT_SWAGGER
+ goto SlateportCity_PokemonFanClub_EventScript_2C7F74
+ end
+
+SlateportCity_PokemonFanClub_EventScript_2C7F6A:: @ 82C7F6A
+ msgbox SlateportCity_PokemonFanClub_Text_2C6F33, MSGBOX_DEFAULT
+ release
+ end
+
+SlateportCity_PokemonFanClub_EventScript_2C7F74:: @ 82C7F74
+ msgbox SlateportCity_PokemonFanClub_Text_2C6F9E, MSGBOX_DEFAULT
+ release
+ end
+
+MauvilleCity_EventScript_2C7F7E:: @ 82C7F7E
+ lock
+ faceplayer
+ goto_if_set FLAG_MOVE_TUTOR_TAUGHT_ROLLOUT, MauvilleCity_EventScript_2C7FDC
+ msgbox MauvilleCity_Text_2C6FDB, MSGBOX_YESNO
+ compare VAR_RESULT, 0
+ goto_if_eq MauvilleCity_EventScript_2C7FD2
+ call MauvilleCity_EventScript_2C832D
+ compare VAR_RESULT, 0
+ goto_if_eq MauvilleCity_EventScript_2C7FD2
+ msgbox MauvilleCity_Text_2C70F3, MSGBOX_DEFAULT
+ setvar VAR_0x8005, 16
+ call EventScript_ShowPartyMenu
+ compare VAR_RESULT, 0
+ goto_if_eq MauvilleCity_EventScript_2C7FD2
+ setflag FLAG_MOVE_TUTOR_TAUGHT_ROLLOUT
+ goto MauvilleCity_EventScript_2C7FDC
+ end
+
+MauvilleCity_EventScript_2C7FD2:: @ 82C7FD2
+ msgbox MauvilleCity_Text_2C70C4, MSGBOX_DEFAULT
+ release
+ end
+
+MauvilleCity_EventScript_2C7FDC:: @ 82C7FDC
+ msgbox MauvilleCity_Text_2C7133, MSGBOX_DEFAULT
+ release
+ end
+
+VerdanturfTown_PokemonCenter_1F_EventScript_2C7FE6:: @ 82C7FE6
+ lock
+ faceplayer
+ goto_if_set FLAG_MOVE_TUTOR_TAUGHT_FURY_CUTTER, VerdanturfTown_PokemonCenter_1F_EventScript_2C8044
+ msgbox VerdanturfTown_PokemonCenter_1F_Text_2C7174, MSGBOX_YESNO
+ compare VAR_RESULT, 0
+ goto_if_eq VerdanturfTown_PokemonCenter_1F_EventScript_2C803A
+ call VerdanturfTown_PokemonCenter_1F_EventScript_2C832D
+ compare VAR_RESULT, 0
+ goto_if_eq VerdanturfTown_PokemonCenter_1F_EventScript_2C803A
+ msgbox VerdanturfTown_PokemonCenter_1F_Text_2C7243, MSGBOX_DEFAULT
+ setvar VAR_0x8005, 29
+ call EventScript_ShowPartyMenu
+ compare VAR_RESULT, 0
+ goto_if_eq VerdanturfTown_PokemonCenter_1F_EventScript_2C803A
+ setflag FLAG_MOVE_TUTOR_TAUGHT_FURY_CUTTER
+ goto VerdanturfTown_PokemonCenter_1F_EventScript_2C8044
+ end
+
+VerdanturfTown_PokemonCenter_1F_EventScript_2C803A:: @ 82C803A
+ msgbox VerdanturfTown_PokemonCenter_1F_Text_2C7221, MSGBOX_DEFAULT
+ release
+ end
+
+VerdanturfTown_PokemonCenter_1F_EventScript_2C8044:: @ 82C8044
+ msgbox VerdanturfTown_PokemonCenter_1F_Text_2C726E, MSGBOX_DEFAULT
+ release
+ end
+
+LavaridgeTown_House_EventScript_2C804E:: @ 82C804E
+ lock
+ faceplayer
+ goto_if_set FLAG_MOVE_TUTOR_TAUGHT_MIMIC, LavaridgeTown_House_EventScript_2C80AC
+ msgbox LavaridgeTown_House_Text_2C72B6, MSGBOX_YESNO
+ compare VAR_RESULT, 0
+ goto_if_eq LavaridgeTown_House_EventScript_2C80A2
+ call LavaridgeTown_House_EventScript_2C832D
+ compare VAR_RESULT, 0
+ goto_if_eq LavaridgeTown_House_EventScript_2C80A2
+ msgbox LavaridgeTown_House_Text_2C73B1, MSGBOX_DEFAULT
+ setvar VAR_0x8005, 7
+ call EventScript_ShowPartyMenu
+ compare VAR_RESULT, 0
+ goto_if_eq LavaridgeTown_House_EventScript_2C80A2
+ setflag FLAG_MOVE_TUTOR_TAUGHT_MIMIC
+ goto LavaridgeTown_House_EventScript_2C80AC
+ end
+
+LavaridgeTown_House_EventScript_2C80A2:: @ 82C80A2
+ msgbox LavaridgeTown_House_Text_2C737F, MSGBOX_DEFAULT
+ release
+ end
+
+LavaridgeTown_House_EventScript_2C80AC:: @ 82C80AC
+ msgbox LavaridgeTown_House_Text_2C73F6, MSGBOX_DEFAULT
+ release
+ end
+
+FallarborTown_Mart_EventScript_2C80B6:: @ 82C80B6
+ lock
+ faceplayer
+ goto_if_set FLAG_MOVE_TUTOR_TAUGHT_METRONOME, FallarborTown_Mart_EventScript_2C8114
+ msgbox FallarborTown_Mart_Text_2C7449, MSGBOX_YESNO
+ compare VAR_RESULT, 0
+ goto_if_eq FallarborTown_Mart_EventScript_2C810A
+ call FallarborTown_Mart_EventScript_2C832D
+ compare VAR_RESULT, 0
+ goto_if_eq FallarborTown_Mart_EventScript_2C810A
+ msgbox FallarborTown_Mart_Text_2C7582, MSGBOX_DEFAULT
+ setvar VAR_0x8005, 8
+ call EventScript_ShowPartyMenu
+ compare VAR_RESULT, 0
+ goto_if_eq FallarborTown_Mart_EventScript_2C810A
+ setflag FLAG_MOVE_TUTOR_TAUGHT_METRONOME
+ goto FallarborTown_Mart_EventScript_2C8114
+ end
+
+FallarborTown_Mart_EventScript_2C810A:: @ 82C810A
+ msgbox FallarborTown_Mart_Text_2C7556, MSGBOX_DEFAULT
+ release
+ end
+
+FallarborTown_Mart_EventScript_2C8114:: @ 82C8114
+ msgbox FallarborTown_Mart_Text_2C75B5, MSGBOX_DEFAULT
+ release
+ end
+
+FortreeCity_House2_EventScript_2C811E:: @ 82C811E
+ lock
+ faceplayer
+ goto_if_set FLAG_MOVE_TUTOR_TAUGHT_SLEEP_TALK, FortreeCity_House2_EventScript_2C817C
+ msgbox FortreeCity_House2_Text_2C7637, MSGBOX_YESNO
+ compare VAR_RESULT, 0
+ goto_if_eq FortreeCity_House2_EventScript_2C8172
+ call FortreeCity_House2_EventScript_2C832D
+ compare VAR_RESULT, 0
+ goto_if_eq FortreeCity_House2_EventScript_2C8172
+ msgbox FortreeCity_House2_Text_2C7721, MSGBOX_DEFAULT
+ setvar VAR_0x8005, 24
+ call EventScript_ShowPartyMenu
+ compare VAR_RESULT, 0
+ goto_if_eq FortreeCity_House2_EventScript_2C8172
+ setflag FLAG_MOVE_TUTOR_TAUGHT_SLEEP_TALK
+ goto FortreeCity_House2_EventScript_2C817C
+ end
+
+FortreeCity_House2_EventScript_2C8172:: @ 82C8172
+ msgbox FortreeCity_House2_Text_2C76E2, MSGBOX_DEFAULT
+ release
+ end
+
+FortreeCity_House2_EventScript_2C817C:: @ 82C817C
+ msgbox FortreeCity_House2_Text_2C775A, MSGBOX_DEFAULT
+ release
+ end
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_2C8186:: @ 82C8186
+ lock
+ faceplayer
+ goto_if_set FLAG_MOVE_TUTOR_TAUGHT_SUBSTITUTE, LilycoveCity_DepartmentStoreRooftop_EventScript_2C81E4
+ msgbox LilycoveCity_DepartmentStoreRooftop_Text_2C77C6, MSGBOX_YESNO
+ compare VAR_RESULT, 0
+ goto_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_2C81DA
+ call LilycoveCity_DepartmentStoreRooftop_EventScript_2C832D
+ compare VAR_RESULT, 0
+ goto_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_2C81DA
+ msgbox LilycoveCity_DepartmentStoreRooftop_Text_2C7911, MSGBOX_DEFAULT
+ setvar VAR_0x8005, 14
+ call EventScript_ShowPartyMenu
+ compare VAR_RESULT, 0
+ goto_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_2C81DA
+ setflag FLAG_MOVE_TUTOR_TAUGHT_SUBSTITUTE
+ goto LilycoveCity_DepartmentStoreRooftop_EventScript_2C81E4
+ end
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_2C81DA:: @ 82C81DA
+ msgbox LilycoveCity_DepartmentStoreRooftop_Text_2C78D1, MSGBOX_DEFAULT
+ release
+ end
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_2C81E4:: @ 82C81E4
+ msgbox LilycoveCity_DepartmentStoreRooftop_Text_2C794B, MSGBOX_DEFAULT
+ release
+ end
+
+MossdeepCity_EventScript_2C81EE:: @ 82C81EE
+ lock
+ faceplayer
+ goto_if_set FLAG_MOVE_TUTOR_TAUGHT_DYNAMICPUNCH, MossdeepCity_EventScript_2C824C
+ msgbox MossdeepCity_Text_2C79A6, MSGBOX_YESNO
+ compare VAR_RESULT, 0
+ goto_if_eq MossdeepCity_EventScript_2C8242
+ call MossdeepCity_EventScript_2C832D
+ compare VAR_RESULT, 0
+ goto_if_eq MossdeepCity_EventScript_2C8242
+ msgbox MossdeepCity_Text_2C7B0D, MSGBOX_DEFAULT
+ setvar VAR_0x8005, 15
+ call EventScript_ShowPartyMenu
+ compare VAR_RESULT, 0
+ goto_if_eq MossdeepCity_EventScript_2C8242
+ setflag FLAG_MOVE_TUTOR_TAUGHT_DYNAMICPUNCH
+ goto MossdeepCity_EventScript_2C824C
+ end
+
+MossdeepCity_EventScript_2C8242:: @ 82C8242
+ msgbox MossdeepCity_Text_2C7AD4, MSGBOX_DEFAULT
+ release
+ end
+
+MossdeepCity_EventScript_2C824C:: @ 82C824C
+ msgbox MossdeepCity_Text_2C7B4F, MSGBOX_DEFAULT
+ release
+ end
+
+SootopolisCity_PokemonCenter_1F_EventScript_2C8256:: @ 82C8256
+ lock
+ faceplayer
+ goto_if_set FLAG_MOVE_TUTOR_TAUGHT_DOUBLE_EDGE, SootopolisCity_PokemonCenter_1F_EventScript_2C82B4
+ msgbox SootopolisCity_PokemonCenter_1F_Text_2C7B8E, MSGBOX_YESNO
+ compare VAR_RESULT, 0
+ goto_if_eq SootopolisCity_PokemonCenter_1F_EventScript_2C82AA
+ call SootopolisCity_PokemonCenter_1F_EventScript_2C832D
+ compare VAR_RESULT, 0
+ goto_if_eq SootopolisCity_PokemonCenter_1F_EventScript_2C82AA
+ msgbox SootopolisCity_PokemonCenter_1F_Text_2C7C98, MSGBOX_DEFAULT
+ setvar VAR_0x8005, 4
+ call EventScript_ShowPartyMenu
+ compare VAR_RESULT, 0
+ goto_if_eq SootopolisCity_PokemonCenter_1F_EventScript_2C82AA
+ setflag FLAG_MOVE_TUTOR_TAUGHT_DOUBLE_EDGE
+ goto SootopolisCity_PokemonCenter_1F_EventScript_2C82B4
+ end
+
+SootopolisCity_PokemonCenter_1F_EventScript_2C82AA:: @ 82C82AA
+ msgbox SootopolisCity_PokemonCenter_1F_Text_2C7C7E, MSGBOX_DEFAULT
+ release
+ end
+
+SootopolisCity_PokemonCenter_1F_EventScript_2C82B4:: @ 82C82B4
+ msgbox SootopolisCity_PokemonCenter_1F_Text_2C7CC8, MSGBOX_DEFAULT
+ release
+ end
+
+PacifidlogTown_PokemonCenter_1F_EventScript_2C82BE:: @ 82C82BE
+ lock
+ faceplayer
+ goto_if_set FLAG_MOVE_TUTOR_TAUGHT_EXPLOSION, PacifidlogTown_PokemonCenter_1F_EventScript_2C831C
+ msgbox PacifidlogTown_PokemonCenter_1F_Text_2C7CFA, MSGBOX_YESNO
+ compare VAR_RESULT, 0
+ goto_if_eq PacifidlogTown_PokemonCenter_1F_EventScript_2C8312
+ call PacifidlogTown_PokemonCenter_1F_EventScript_2C832D
+ compare VAR_RESULT, 0
+ goto_if_eq PacifidlogTown_PokemonCenter_1F_EventScript_2C8312
+ msgbox PacifidlogTown_PokemonCenter_1F_Text_2C7E40, MSGBOX_DEFAULT
+ setvar VAR_0x8005, 12
+ call EventScript_ShowPartyMenu
+ compare VAR_RESULT, 0
+ goto_if_eq PacifidlogTown_PokemonCenter_1F_EventScript_2C8312
+ setflag FLAG_MOVE_TUTOR_TAUGHT_EXPLOSION
+ goto PacifidlogTown_PokemonCenter_1F_EventScript_2C831C
+ end
+
+PacifidlogTown_PokemonCenter_1F_EventScript_2C8312:: @ 82C8312
+ msgbox PacifidlogTown_PokemonCenter_1F_Text_2C7E04, MSGBOX_DEFAULT
+ release
+ end
+
+PacifidlogTown_PokemonCenter_1F_EventScript_2C831C:: @ 82C831C
+ msgbox PacifidlogTown_PokemonCenter_1F_Text_2C7E7A, MSGBOX_DEFAULT
+ release
+ end
+
+EventScript_ShowPartyMenu:: @ 82C8326
+ special sub_81B892C
+ waitstate
+ lock
+ faceplayer
+ return
+
+FallarborTown_Mart_EventScript_2C832D:: @ 82C832D
+FortreeCity_House2_EventScript_2C832D:: @ 82C832D
+LavaridgeTown_House_EventScript_2C832D:: @ 82C832D
+LilycoveCity_DepartmentStoreRooftop_EventScript_2C832D:: @ 82C832D
+MauvilleCity_EventScript_2C832D:: @ 82C832D
+MossdeepCity_EventScript_2C832D:: @ 82C832D
+PacifidlogTown_PokemonCenter_1F_EventScript_2C832D:: @ 82C832D
+SlateportCity_PokemonFanClub_EventScript_2C832D:: @ 82C832D
+SootopolisCity_PokemonCenter_1F_EventScript_2C832D:: @ 82C832D
+VerdanturfTown_PokemonCenter_1F_EventScript_2C832D:: @ 82C832D
+ msgbox MauvilleCity_Text_2C6E05, MSGBOX_YESNO
+ return
diff --git a/data/scripts/roulette.inc b/data/scripts/roulette.inc
new file mode 100644
index 000000000..877308bc2
--- /dev/null
+++ b/data/scripts/roulette.inc
@@ -0,0 +1,70 @@
+MauvilleCity_GameCorner_EventScript_2A5AB1:: @ 82A5AB1
+ checkitem ITEM_COIN_CASE, 1
+ compare VAR_RESULT, 0
+ goto_if_eq MauvilleCity_GameCorner_EventScript_210456
+ setvar VAR_0x8004, 0
+ getpricereduction 2
+ compare VAR_RESULT, 0
+ goto_if_eq MauvilleCity_GameCorner_EventScript_2A5B0D
+ addvar VAR_0x8004, 128
+ goto MauvilleCity_GameCorner_EventScript_2A5B0D
+ end
+
+MauvilleCity_GameCorner_EventScript_2A5ADF:: @ 82A5ADF
+ checkitem ITEM_COIN_CASE, 1
+ compare VAR_RESULT, 0
+ goto_if_eq MauvilleCity_GameCorner_EventScript_210456
+ setvar VAR_0x8004, 1
+ getpricereduction 2
+ compare VAR_RESULT, 0
+ goto_if_eq MauvilleCity_GameCorner_EventScript_2A5B0D
+ addvar VAR_0x8004, 128
+ goto MauvilleCity_GameCorner_EventScript_2A5B0D
+ end
+
+MauvilleCity_GameCorner_EventScript_2A5B0D:: @ 82A5B0D
+ special PlayRoulette
+ waitstate
+ end
+
+gUnknown_082A5B12:: @ 82A5B12
+ .string "The minimum wager at this table\n"
+ .string "is {STR_VAR_1}. Do you want to play?$"
+
+gUnknown_082A5B4E:: @ 82A5B4E
+ .string "You don't have enough COINS.$"
+
+gUnknown_082A5B6B:: @ 82A5B6B
+ .string "Special rate table right now!$"
+
+gUnknown_082A5B89:: @ 82A5B89
+ .string "Place your wager with the + Control\n"
+ .string "Pad, then press the A Button.$"
+
+gUnknown_082A5BCB:: @ 82A5BCB
+ .string "It's a hit!$"
+
+gUnknown_082A5BD7:: @ 82A5BD7
+ .string "Jackpot!$"
+
+gUnknown_082A5BE0:: @ 82A5BE0
+ .string "Nothing doing!$"
+
+gUnknown_082A5BEF:: @ 82A5BEF
+ .string "You've won {STR_VAR_1} COINS!$"
+
+gUnknown_082A5C04:: @ 82A5C04
+ .string "No COINS left…$"
+
+gUnknown_082A5C13:: @ 82A5C13
+ .string "Keep playing?$"
+
+gUnknown_082A5C21:: @ 82A5C21
+ .string "The ROULETTE board will be cleared.$"
+
+gUnknown_082A5C45:: @ 82A5C45
+ .string "You don't have a COIN CASE.$"
+
+gUnknown_082A5C61:: @ 82A5C61
+ .string "Your COIN CASE is full!\n"
+ .string "Coins can be exchanged for prizes.$"
diff --git a/data/scripts/trainer_hill.inc b/data/scripts/trainer_hill.inc
new file mode 100644
index 000000000..dde971f9f
--- /dev/null
+++ b/data/scripts/trainer_hill.inc
@@ -0,0 +1,85 @@
+TrainerHill_1F_MapScript1_2C8336: @ 82C8336
+TrainerHill_2F_MapScript1_2C8336: @ 82C8336
+TrainerHill_3F_MapScript1_2C8336: @ 82C8336
+TrainerHill_4F_MapScript1_2C8336: @ 82C8336
+TrainerHill_Roof_MapScript1_2C8336: @ 82C8336
+ setvar VAR_TEMP_2, 0
+ setvar VAR_0x8004, TRAINER_HILL_FUNC_RESUME_TIMER
+ special CallTrainerHillFunction
+ setvar VAR_0x8004, 1
+ setvar VAR_0x8005, 5
+ special CallFrontierUtilFunc
+ compare VAR_RESULT, B_OUTCOME_LOST
+ goto_if_eq TrainerHill_1F_EventScript_2C83C9
+ compare VAR_RESULT, B_OUTCOME_DREW
+ goto_if_eq TrainerHill_1F_EventScript_2C83C9
+ compare VAR_RESULT, B_OUTCOME_FORFEITED
+ goto_if_eq TrainerHill_1F_EventScript_2C83C9
+ end
+
+TrainerHill_1F_MapScript2_2C8372: @ 82C8372
+TrainerHill_2F_MapScript2_2C8372: @ 82C8372
+ map_script_2 VAR_TEMP_3, 0, TrainerHill_1F_EventScript_2C837C
+ .2byte 0
+
+TrainerHill_1F_EventScript_2C837C:: @ 82C837C
+ setvar VAR_TEMP_3, 1
+@ forced stop
+
+TrainerHill_1F_MapScript2_2C8381: @ 82C8381
+TrainerHill_2F_MapScript2_2C8381: @ 82C8381
+TrainerHill_3F_MapScript2_2C8381: @ 82C8381
+TrainerHill_4F_MapScript2_2C8381: @ 82C8381
+TrainerHill_Roof_MapScript2_2C8381: @ 82C8381
+ map_script_2 VAR_TEMP_2, 0, TrainerHill_1F_EventScript_2C83A6
+ map_script_2 VAR_TEMP_1, 1, TrainerHill_1F_EventScript_2C83DF
+ .2byte 0
+
+EventScript_TrainerHillTimer:: @ 82C8393
+ lockall
+ setvar VAR_0x8004, TRAINER_HILL_FUNC_7
+ special CallTrainerHillFunction
+ msgbox TrainerHill_Entrance_Text_268D47, MSGBOX_DEFAULT
+ releaseall
+ end
+
+TrainerHill_1F_EventScript_2C83A6:: @ 82C83A6
+ setvar VAR_TEMP_2, 1
+ setvar VAR_0x8004, TRAINER_HILL_FUNC_9
+ special CallTrainerHillFunction
+ compare VAR_RESULT, 1
+ goto_if_eq TrainerHill_1F_EventScript_2C83BF
+ end
+
+TrainerHill_1F_EventScript_2C83BF:: @ 82C83BF
+ warpsilent MAP_TRAINER_HILL_ENTRANCE, 255, 9, 6
+ waitstate
+ end
+
+TrainerHill_1F_EventScript_2C83C9:: @ 82C83C9
+ setvar VAR_0x8004, TRAINER_HILL_FUNC_12
+ special CallTrainerHillFunction
+ setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_LOST
+ special CallTrainerHillFunction
+ setvar VAR_TEMP_1, 1
+ end
+
+TrainerHill_1F_EventScript_2C83DF:: @ 82C83DF
+TrainerHill_Entrance_EventScript_2C83DF:: @ 82C83DF
+ setvar VAR_TEMP_1, 0
+ warp MAP_TRAINER_HILL_ENTRANCE, 255, 9, 6
+ waitstate
+ end
+
+TrainerHill_1F_Movement_2C83EE:: @ 82C83EE
+ set_invisible
+ step_end
+
+EventScript_2C83F0:: @ 82C83F0
+ trainerbattle TRAINER_BATTLE_12, TRAINER_PHILLIP, 0, BattleFacility_TrainerBattle_PlaceholderText, BattleFacility_TrainerBattle_PlaceholderText
+ setvar VAR_0x8004, TRAINER_HILL_FUNC_11
+ special CallTrainerHillFunction
+ waitmessage
+ waitbuttonpress
+ closemessage
+ end