summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--constants/misc_constants.inc11
-rw-r--r--data-de/event_scripts.s112
-rw-r--r--data-de/text/surf.inc4
-rw-r--r--data/event_scripts.s112
-rw-r--r--data/maps/AquaHideout_1F/scripts.inc2
-rw-r--r--data/maps/AquaHideout_B1F/scripts.inc2
-rw-r--r--data/maps/AquaHideout_B2F/scripts.inc2
-rw-r--r--data/maps/CaveOfOrigin_B4F/scripts.inc2
-rw-r--r--data/maps/EverGrandeCity_ChampionsRoom/scripts.inc2
-rw-r--r--data/maps/LavaridgeTown/scripts.inc4
-rw-r--r--data/maps/LilycoveCity/scripts.inc4
-rw-r--r--data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc2
-rw-r--r--data/maps/MeteorFalls_1F_1R/scripts.inc2
-rw-r--r--data/maps/MtChimney/scripts.inc2
-rw-r--r--data/maps/MtPyre_Summit/scripts.inc2
-rw-r--r--data/maps/OldaleTown/scripts.inc2
-rw-r--r--data/maps/PetalburgWoods/scripts.inc2
-rw-r--r--data/maps/Route103/scripts.inc2
-rw-r--r--data/maps/Route110/scripts.inc6
-rw-r--r--data/maps/Route112/scripts.inc2
-rw-r--r--data/maps/Route113/scripts.inc2
-rw-r--r--data/maps/Route119/scripts.inc6
-rw-r--r--data/maps/Route119_WeatherInstitute_1F/scripts.inc2
-rw-r--r--data/maps/Route119_WeatherInstitute_2F/scripts.inc2
-rw-r--r--data/maps/Route121/scripts.inc2
-rw-r--r--data/maps/Route128/scripts.inc2
-rw-r--r--data/maps/RustboroCity/scripts.inc4
-rw-r--r--data/maps/RusturfTunnel/scripts.inc2
-rw-r--r--data/maps/SeafloorCavern_Room1/scripts.inc2
-rw-r--r--data/maps/SeafloorCavern_Room3/scripts.inc2
-rw-r--r--data/maps/SeafloorCavern_Room4/scripts.inc2
-rw-r--r--data/maps/SeafloorCavern_Room9/scripts.inc4
-rw-r--r--data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc2
-rw-r--r--data/scripts/dynamic_npc_graphics.inc59
-rw-r--r--data/scripts/surf.inc16
-rw-r--r--data/text/surf.inc4
-rw-r--r--include/constants/global.h92
-rw-r--r--include/global.h105
-rw-r--r--src/field_control_avatar.c4
-rw-r--r--src/main.c7
40 files changed, 229 insertions, 371 deletions
diff --git a/constants/misc_constants.inc b/constants/misc_constants.inc
index bf90fcd1e..9e27e83c5 100644
--- a/constants/misc_constants.inc
+++ b/constants/misc_constants.inc
@@ -29,17 +29,6 @@
.equiv DIR_WEST, 3
.equiv DIR_EAST, 4
- .equiv MALE, 0
- .equiv FEMALE, 1
-
- .ifdef ENGLISH
- .equiv GAME_LANGUAGE, 2
- .else
- .ifdef GERMAN
- .equiv GAME_LANGUAGE, 5
- .endif
- .endif
-
.equiv ENEMY_TYPE1, 0
.equiv ENEMY_TYPE2, 1
.equiv PLAYER_TYPE1, 2
diff --git a/data-de/event_scripts.s b/data-de/event_scripts.s
index 48eb569ad..973619895 100644
--- a/data-de/event_scripts.s
+++ b/data-de/event_scripts.s
@@ -1,3 +1,4 @@
+#include "constants/global.h"
#include "constants/decorations.h"
#include "constants/field_effects.h"
#include "constants/flags.h"
@@ -836,115 +837,8 @@ EventScript_BackupMrBrineyLocation:: @ 81A010C
setvar VAR_BRINEY_LOCATION, 0
return
-UseSurfScript:: @ 81A0117
- checkpartymove MOVE_SURF
- compare VAR_RESULT, 6
- goto_if_eq UseSurfScript_NoMon
- bufferpartymonnick 0, VAR_RESULT
- setfieldeffectargument 0, VAR_RESULT
- lockall
- msgbox UseSurfPromptText, MSGBOX_YESNO
- compare VAR_RESULT, NO
- goto_if_eq UseSurfScript_No
- msgbox UsedSurfText, MSGBOX_DEFAULT
- dofieldeffect FLDEFF_USE_SURF
-UseSurfScript_No: @ 81A014C
- releaseall
-UseSurfScript_NoMon: @ 81A014D
- end
-
-EverGrandeCity_ChampionsRoom_EventScript_1A014E:: @ 81A014E
-LavaridgeTown_EventScript_1A014E:: @ 81A014E
-LilycoveCity_EventScript_1A014E:: @ 81A014E
-LittlerootTown_ProfessorBirchsLab_EventScript_1A014E:: @ 81A014E
-OldaleTown_EventScript_1A014E:: @ 81A014E
-Route103_EventScript_1A014E:: @ 81A014E
-Route110_EventScript_1A014E:: @ 81A014E
-Route119_EventScript_1A014E:: @ 81A014E
-RustboroCity_EventScript_1A014E:: @ 81A014E
- checkplayergender
- compare VAR_RESULT, 0
- goto_if_eq RustboroCity_EventScript_1A0166
- compare VAR_RESULT, 1
- goto_if_eq RustboroCity_EventScript_1A016C
- end
-
-RustboroCity_EventScript_1A0166:: @ 81A0166
- setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_RIVAL_MAY_NORMAL
- return
-
-RustboroCity_EventScript_1A016C:: @ 81A016C
- setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL
- return
-
-LavaridgeTown_EventScript_1A0172:: @ 81A0172
-Route110_EventScript_1A0172:: @ 81A0172
-Route119_EventScript_1A0172:: @ 81A0172
- checkplayergender
- compare VAR_RESULT, 0
- goto_if_eq LavaridgeTown_EventScript_1A018A
- compare VAR_RESULT, 1
- goto_if_eq LavaridgeTown_EventScript_1A0190
- end
-
-LavaridgeTown_EventScript_1A018A:: @ 81A018A
- setvar VAR_OBJ_GFX_ID_3, OBJ_EVENT_GFX_RIVAL_MAY_MACH_BIKE
- return
-
-LavaridgeTown_EventScript_1A0190:: @ 81A0190
- setvar VAR_OBJ_GFX_ID_3, OBJ_EVENT_GFX_RIVAL_BRENDAN_MACH_BIKE
- return
-
-AquaHideout_1F_EventScript_1A0196:: @ 81A0196
-AquaHideout_B1F_EventScript_1A0196:: @ 81A0196
-AquaHideout_B2F_EventScript_1A0196:: @ 81A0196
-LilycoveCity_EventScript_1A0196:: @ 81A0196
-MeteorFalls_1F_1R_EventScript_1A0196:: @ 81A0196
-MtChimney_EventScript_1A0196:: @ 81A0196
-MtPyre_Summit_EventScript_1A0196:: @ 81A0196
-PetalburgWoods_EventScript_1A0196:: @ 81A0196
-Route110_EventScript_1A0196:: @ 81A0196
-Route112_EventScript_1A0196:: @ 81A0196
-Route113_EventScript_1A0196:: @ 81A0196
-Route119_EventScript_1A0196:: @ 81A0196
-Route119_WeatherInstitute_1F_EventScript_1A0196:: @ 81A0196
-Route119_WeatherInstitute_2F_EventScript_1A0196:: @ 81A0196
-Route121_EventScript_1A0196:: @ 81A0196
-Route128_EventScript_1A0196:: @ 81A0196
-RustboroCity_EventScript_1A0196:: @ 81A0196
-RusturfTunnel_EventScript_1A0196:: @ 81A0196
-SeafloorCavern_Room1_EventScript_1A0196:: @ 81A0196
-SeafloorCavern_Room3_EventScript_1A0196:: @ 81A0196
-SeafloorCavern_Room4_EventScript_1A0196:: @ 81A0196
-SeafloorCavern_Room9_EventScript_1A0196:: @ 81A0196
-SlateportCity_OceanicMuseum_2F_EventScript_1A0196:: @ 81A0196
- .ifdef SAPPHIRE
- setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_AQUA_MEMBER_M
- setvar VAR_OBJ_GFX_ID_2, OBJ_EVENT_GFX_AQUA_MEMBER_F
- setvar VAR_OBJ_GFX_ID_4, OBJ_EVENT_GFX_MAGMA_MEMBER_M
- setvar VAR_OBJ_GFX_ID_5, OBJ_EVENT_GFX_MAGMA_MEMBER_F
- setvar VAR_OBJ_GFX_ID_6, OBJ_EVENT_GFX_ARCHIE
- setvar VAR_OBJ_GFX_ID_7, OBJ_EVENT_GFX_MAXIE
- .else
- setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_MAGMA_MEMBER_M
- setvar VAR_OBJ_GFX_ID_2, OBJ_EVENT_GFX_MAGMA_MEMBER_F
- setvar VAR_OBJ_GFX_ID_4, OBJ_EVENT_GFX_AQUA_MEMBER_M
- setvar VAR_OBJ_GFX_ID_5, OBJ_EVENT_GFX_AQUA_MEMBER_F
- setvar VAR_OBJ_GFX_ID_6, OBJ_EVENT_GFX_MAXIE
- setvar VAR_OBJ_GFX_ID_7, OBJ_EVENT_GFX_ARCHIE
- .endif
- return
-
-CaveOfOrigin_B4F_EventScript_1A01B5:: @ 81A01B5
-SeafloorCavern_Room9_EventScript_1A01B5:: @ 81A01B5
- .ifdef SAPPHIRE
- setvar VAR_OBJ_GFX_ID_8, OBJ_EVENT_GFX_KYOGRE_1
- setvar VAR_OBJ_GFX_ID_9, OBJ_EVENT_GFX_KYOGRE_2
- .else
- setvar VAR_OBJ_GFX_ID_8, OBJ_EVENT_GFX_GROUDON_1
- setvar VAR_OBJ_GFX_ID_9, OBJ_EVENT_GFX_GROUDON_2
- .endif
- return
+ .include "data/scripts/surf.inc"
+ .include "data/scripts/dynamic_npc_graphics.inc"
DewfordTown_Gym_EventScript_1A01C0:: @ 81A01C0
FortreeCity_Gym_EventScript_1A01C0:: @ 81A01C0
diff --git a/data-de/text/surf.inc b/data-de/text/surf.inc
index 161923726..817095de0 100644
--- a/data-de/text/surf.inc
+++ b/data-de/text/surf.inc
@@ -1,6 +1,6 @@
-UseSurfPromptText: @ 81A1344
+gText_WantToUseSurf: @ 81A1344
.string "Das Wasser ist tiefblau.\n"
.string "Möchtest du SURFER einsetzen?$"
-UsedSurfText: @ 81A137D
+gText_PlayerUsedSurf: @ 81A137D
.string "{STR_VAR_1} setzt SURFER ein.$"
diff --git a/data/event_scripts.s b/data/event_scripts.s
index ead3f2d25..a089cae39 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -1,3 +1,4 @@
+#include "constants/global.h"
#include "constants/decorations.h"
#include "constants/field_effects.h"
#include "constants/flags.h"
@@ -835,115 +836,8 @@ EventScript_BackupMrBrineyLocation:: @ 81A010C
setvar VAR_BRINEY_LOCATION, 0
return
-UseSurfScript:: @ 81A0117
- checkpartymove MOVE_SURF
- compare VAR_RESULT, 6
- goto_if_eq UseSurfScript_NoMon
- bufferpartymonnick 0, VAR_RESULT
- setfieldeffectargument 0, VAR_RESULT
- lockall
- msgbox UseSurfPromptText, MSGBOX_YESNO
- compare VAR_RESULT, NO
- goto_if_eq UseSurfScript_No
- msgbox UsedSurfText, MSGBOX_DEFAULT
- dofieldeffect FLDEFF_USE_SURF
-UseSurfScript_No: @ 81A014C
- releaseall
-UseSurfScript_NoMon: @ 81A014D
- end
-
-EverGrandeCity_ChampionsRoom_EventScript_1A014E:: @ 81A014E
-LavaridgeTown_EventScript_1A014E:: @ 81A014E
-LilycoveCity_EventScript_1A014E:: @ 81A014E
-LittlerootTown_ProfessorBirchsLab_EventScript_1A014E:: @ 81A014E
-OldaleTown_EventScript_1A014E:: @ 81A014E
-Route103_EventScript_1A014E:: @ 81A014E
-Route110_EventScript_1A014E:: @ 81A014E
-Route119_EventScript_1A014E:: @ 81A014E
-RustboroCity_EventScript_1A014E:: @ 81A014E
- checkplayergender
- compare VAR_RESULT, 0
- goto_if_eq RustboroCity_EventScript_1A0166
- compare VAR_RESULT, 1
- goto_if_eq RustboroCity_EventScript_1A016C
- end
-
-RustboroCity_EventScript_1A0166:: @ 81A0166
- setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_RIVAL_MAY_NORMAL
- return
-
-RustboroCity_EventScript_1A016C:: @ 81A016C
- setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL
- return
-
-LavaridgeTown_EventScript_1A0172:: @ 81A0172
-Route110_EventScript_1A0172:: @ 81A0172
-Route119_EventScript_1A0172:: @ 81A0172
- checkplayergender
- compare VAR_RESULT, 0
- goto_if_eq LavaridgeTown_EventScript_1A018A
- compare VAR_RESULT, 1
- goto_if_eq LavaridgeTown_EventScript_1A0190
- end
-
-LavaridgeTown_EventScript_1A018A:: @ 81A018A
- setvar VAR_OBJ_GFX_ID_3, OBJ_EVENT_GFX_RIVAL_MAY_MACH_BIKE
- return
-
-LavaridgeTown_EventScript_1A0190:: @ 81A0190
- setvar VAR_OBJ_GFX_ID_3, OBJ_EVENT_GFX_RIVAL_BRENDAN_MACH_BIKE
- return
-
-AquaHideout_1F_EventScript_1A0196:: @ 81A0196
-AquaHideout_B1F_EventScript_1A0196:: @ 81A0196
-AquaHideout_B2F_EventScript_1A0196:: @ 81A0196
-LilycoveCity_EventScript_1A0196:: @ 81A0196
-MeteorFalls_1F_1R_EventScript_1A0196:: @ 81A0196
-MtChimney_EventScript_1A0196:: @ 81A0196
-MtPyre_Summit_EventScript_1A0196:: @ 81A0196
-PetalburgWoods_EventScript_1A0196:: @ 81A0196
-Route110_EventScript_1A0196:: @ 81A0196
-Route112_EventScript_1A0196:: @ 81A0196
-Route113_EventScript_1A0196:: @ 81A0196
-Route119_EventScript_1A0196:: @ 81A0196
-Route119_WeatherInstitute_1F_EventScript_1A0196:: @ 81A0196
-Route119_WeatherInstitute_2F_EventScript_1A0196:: @ 81A0196
-Route121_EventScript_1A0196:: @ 81A0196
-Route128_EventScript_1A0196:: @ 81A0196
-RustboroCity_EventScript_1A0196:: @ 81A0196
-RusturfTunnel_EventScript_1A0196:: @ 81A0196
-SeafloorCavern_Room1_EventScript_1A0196:: @ 81A0196
-SeafloorCavern_Room3_EventScript_1A0196:: @ 81A0196
-SeafloorCavern_Room4_EventScript_1A0196:: @ 81A0196
-SeafloorCavern_Room9_EventScript_1A0196:: @ 81A0196
-SlateportCity_OceanicMuseum_2F_EventScript_1A0196:: @ 81A0196
- .ifdef SAPPHIRE
- setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_AQUA_MEMBER_M
- setvar VAR_OBJ_GFX_ID_2, OBJ_EVENT_GFX_AQUA_MEMBER_F
- setvar VAR_OBJ_GFX_ID_4, OBJ_EVENT_GFX_MAGMA_MEMBER_M
- setvar VAR_OBJ_GFX_ID_5, OBJ_EVENT_GFX_MAGMA_MEMBER_F
- setvar VAR_OBJ_GFX_ID_6, OBJ_EVENT_GFX_ARCHIE
- setvar VAR_OBJ_GFX_ID_7, OBJ_EVENT_GFX_MAXIE
- .else
- setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_MAGMA_MEMBER_M
- setvar VAR_OBJ_GFX_ID_2, OBJ_EVENT_GFX_MAGMA_MEMBER_F
- setvar VAR_OBJ_GFX_ID_4, OBJ_EVENT_GFX_AQUA_MEMBER_M
- setvar VAR_OBJ_GFX_ID_5, OBJ_EVENT_GFX_AQUA_MEMBER_F
- setvar VAR_OBJ_GFX_ID_6, OBJ_EVENT_GFX_MAXIE
- setvar VAR_OBJ_GFX_ID_7, OBJ_EVENT_GFX_ARCHIE
- .endif
- return
-
-CaveOfOrigin_B4F_EventScript_1A01B5:: @ 81A01B5
-SeafloorCavern_Room9_EventScript_1A01B5:: @ 81A01B5
- .ifdef SAPPHIRE
- setvar VAR_OBJ_GFX_ID_8, OBJ_EVENT_GFX_KYOGRE_1
- setvar VAR_OBJ_GFX_ID_9, OBJ_EVENT_GFX_KYOGRE_2
- .else
- setvar VAR_OBJ_GFX_ID_8, OBJ_EVENT_GFX_GROUDON_1
- setvar VAR_OBJ_GFX_ID_9, OBJ_EVENT_GFX_GROUDON_2
- .endif
- return
+ .include "data/scripts/surf.inc"
+ .include "data/scripts/dynamic_npc_graphics.inc"
DewfordTown_Gym_EventScript_1A01C0:: @ 81A01C0
FortreeCity_Gym_EventScript_1A01C0:: @ 81A01C0
diff --git a/data/maps/AquaHideout_1F/scripts.inc b/data/maps/AquaHideout_1F/scripts.inc
index 09c381df2..768d7e28d 100644
--- a/data/maps/AquaHideout_1F/scripts.inc
+++ b/data/maps/AquaHideout_1F/scripts.inc
@@ -3,7 +3,7 @@ AquaHideout_1F_MapScripts:: @ 815D7C2
.byte 0
AquaHideout_1F_MapScript1_15D7C8:: @ 815D7C8
- call AquaHideout_1F_EventScript_1A0196
+ call Common_EventScript_SetupEvilTeamGfxIds
end
AquaHideout_1F_EventScript_15D7CE:: @ 815D7CE
diff --git a/data/maps/AquaHideout_B1F/scripts.inc b/data/maps/AquaHideout_B1F/scripts.inc
index 58334912c..52fb300d8 100644
--- a/data/maps/AquaHideout_B1F/scripts.inc
+++ b/data/maps/AquaHideout_B1F/scripts.inc
@@ -12,7 +12,7 @@ AquaHideout_B1F_EventScript_15D846:: @ 815D846
return
AquaHideout_B1F_MapScript1_15D84A:: @ 815D84A
- call AquaHideout_B1F_EventScript_1A0196
+ call Common_EventScript_SetupEvilTeamGfxIds
end
AquaHideout_B1F_EventScript_15D850:: @ 815D850
diff --git a/data/maps/AquaHideout_B2F/scripts.inc b/data/maps/AquaHideout_B2F/scripts.inc
index 24984d455..2ec8d5176 100644
--- a/data/maps/AquaHideout_B2F/scripts.inc
+++ b/data/maps/AquaHideout_B2F/scripts.inc
@@ -3,7 +3,7 @@ AquaHideout_B2F_MapScripts:: @ 815D8B1
.byte 0
AquaHideout_B2F_MapScript1_15D8B7:: @ 815D8B7
- call AquaHideout_B2F_EventScript_1A0196
+ call Common_EventScript_SetupEvilTeamGfxIds
end
AquaHideout_B2F_EventScript_15D8BD:: @ 815D8BD
diff --git a/data/maps/CaveOfOrigin_B4F/scripts.inc b/data/maps/CaveOfOrigin_B4F/scripts.inc
index 66eeb9fa5..366a63450 100644
--- a/data/maps/CaveOfOrigin_B4F/scripts.inc
+++ b/data/maps/CaveOfOrigin_B4F/scripts.inc
@@ -17,7 +17,7 @@ CaveOfOrigin_B4F_MapScript1_15DDC5:: @ 815DDC5
.else
setmaplayoutindex 313
.endif
- call CaveOfOrigin_B4F_EventScript_1A01B5
+ call Common_EventScript_SetupLegendaryGfxIds
call_if_set FLAG_LEGENDARY_BATTLE_COMPLETED, CaveOfOrigin_B4F_EventScript_1A04E3
end
diff --git a/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc b/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc
index 29ba3f2b6..92ba90cb8 100644
--- a/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc
+++ b/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc
@@ -5,7 +5,7 @@ EverGrandeCity_ChampionsRoom_MapScripts:: @ 815B7AF
.byte 0
EverGrandeCity_ChampionsRoom_MapScript1_15B7BF:: @ 815B7BF
- call EverGrandeCity_ChampionsRoom_EventScript_1A014E
+ call Common_EventScript_SetupRivalGfxId
end
EverGrandeCity_ChampionsRoom_MapScript2_15B7C5:: @ 815B7C5
diff --git a/data/maps/LavaridgeTown/scripts.inc b/data/maps/LavaridgeTown/scripts.inc
index 0c119f230..7a868e72e 100644
--- a/data/maps/LavaridgeTown/scripts.inc
+++ b/data/maps/LavaridgeTown/scripts.inc
@@ -6,8 +6,8 @@ LavaridgeTown_MapScripts:: @ 814E4A3
LavaridgeTown_MapScript1_14E4AE:: @ 814E4AE
setflag FLAG_VISITED_LAVARIDGE_TOWN
call_if_set FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY, LavaridgeTown_EventScript_14E4DF
- call LavaridgeTown_EventScript_1A014E
- call LavaridgeTown_EventScript_1A0172
+ call Common_EventScript_SetupRivalGfxId
+ call Common_EventScript_SetupRivalOnBikeGfxId
compare VAR_LAVARIDGE_RIVAL_STATE, 2
call_if_eq LavaridgeTown_EventScript_14E4D0
end
diff --git a/data/maps/LilycoveCity/scripts.inc b/data/maps/LilycoveCity/scripts.inc
index 4d7b7be26..6667ecd5f 100644
--- a/data/maps/LilycoveCity/scripts.inc
+++ b/data/maps/LilycoveCity/scripts.inc
@@ -8,8 +8,8 @@ LilycoveCity_MapScript1_14CA20:: @ 814CA20
setvar VAR_LINK_CONTEST_ROOM_STATE, 0
setflag FLAG_HIDE_CONTEST_REPORTER_LILYCOVE
call_if_set FLAG_SYS_WEATHER_CTRL, LilycoveCity_EventScript_1A02C1
- call LilycoveCity_EventScript_1A0196
- call LilycoveCity_EventScript_1A014E
+ call Common_EventScript_SetupEvilTeamGfxIds
+ call Common_EventScript_SetupRivalGfxId
end
LilycoveCity_MapScript1_14CA3F:: @ 814CA3F
diff --git a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc
index a70ca7e49..5465da371 100644
--- a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc
+++ b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc
@@ -5,7 +5,7 @@ LittlerootTown_ProfessorBirchsLab_MapScripts:: @ 8152C82
.byte 0
LittlerootTown_ProfessorBirchsLab_MapScript1_152C92:: @ 8152C92
- call LittlerootTown_ProfessorBirchsLab_EventScript_1A014E
+ call Common_EventScript_SetupRivalGfxId
call LittlerootTown_ProfessorBirchsLab_EventScript_1A02F4
end
diff --git a/data/maps/MeteorFalls_1F_1R/scripts.inc b/data/maps/MeteorFalls_1F_1R/scripts.inc
index a77ee6067..83d8bbf30 100644
--- a/data/maps/MeteorFalls_1F_1R/scripts.inc
+++ b/data/maps/MeteorFalls_1F_1R/scripts.inc
@@ -3,7 +3,7 @@ MeteorFalls_1F_1R_MapScripts:: @ 815C490
.byte 0
MeteorFalls_1F_1R_MapScript1_15C496:: @ 815C496
- call MeteorFalls_1F_1R_EventScript_1A0196
+ call Common_EventScript_SetupEvilTeamGfxIds
end
MeteorFalls_1F_1R_EventScript_15C49C:: @ 815C49C
diff --git a/data/maps/MtChimney/scripts.inc b/data/maps/MtChimney/scripts.inc
index 8384ac537..e360c6cd2 100644
--- a/data/maps/MtChimney/scripts.inc
+++ b/data/maps/MtChimney/scripts.inc
@@ -5,7 +5,7 @@ MtChimney_MapScripts:: @ 815CF7C
MtChimney_MapScript1_15CF87:: @ 815CF87
setvar VAR_JAGGED_PASS_ASH_WEATHER, 1
- call MtChimney_EventScript_1A0196
+ call Common_EventScript_SetupEvilTeamGfxIds
end
MtChimney_MapScript1_15CF92:: @ 815CF92
diff --git a/data/maps/MtPyre_Summit/scripts.inc b/data/maps/MtPyre_Summit/scripts.inc
index 74fac73d6..a55ae8800 100644
--- a/data/maps/MtPyre_Summit/scripts.inc
+++ b/data/maps/MtPyre_Summit/scripts.inc
@@ -3,7 +3,7 @@ MtPyre_Summit_MapScripts:: @ 815D4B1
.byte 0
MtPyre_Summit_MapScript1_15D4B7:: @ 815D4B7
- call MtPyre_Summit_EventScript_1A0196
+ call Common_EventScript_SetupEvilTeamGfxIds
end
MtPyre_Summit_EventScript_15D4BD:: @ 815D4BD
diff --git a/data/maps/OldaleTown/scripts.inc b/data/maps/OldaleTown/scripts.inc
index ab4ba4920..d8643b228 100644
--- a/data/maps/OldaleTown/scripts.inc
+++ b/data/maps/OldaleTown/scripts.inc
@@ -3,7 +3,7 @@ OldaleTown_MapScripts:: @ 814DD62
.byte 0
OldaleTown_MapScript1_14DD68:: @ 814DD68
- call OldaleTown_EventScript_1A014E
+ call Common_EventScript_SetupRivalGfxId
setflag FLAG_VISITED_OLDALE_TOWN
call_if_unset FLAG_ADVENTURE_STARTED, OldaleTown_EventScript_14DD92
call_if_unset FLAG_RECEIVED_POTION_OLDALE, OldaleTown_EventScript_14DD9E
diff --git a/data/maps/PetalburgWoods/scripts.inc b/data/maps/PetalburgWoods/scripts.inc
index 84110b859..1d984675c 100644
--- a/data/maps/PetalburgWoods/scripts.inc
+++ b/data/maps/PetalburgWoods/scripts.inc
@@ -3,7 +3,7 @@ PetalburgWoods_MapScripts:: @ 815CC9C
.byte 0
PetalburgWoods_MapScript1_15CCA2:: @ 815CCA2
- call PetalburgWoods_EventScript_1A0196
+ call Common_EventScript_SetupEvilTeamGfxIds
end
PetalburgWoods_EventScript_15CCA8:: @ 815CCA8
diff --git a/data/maps/Route103/scripts.inc b/data/maps/Route103/scripts.inc
index 44d245370..6747c140c 100644
--- a/data/maps/Route103/scripts.inc
+++ b/data/maps/Route103/scripts.inc
@@ -3,7 +3,7 @@ Route103_MapScripts:: @ 814EB81
.byte 0
Route103_MapScript1_14EB87:: @ 814EB87
- call Route103_EventScript_1A014E
+ call Common_EventScript_SetupRivalGfxId
call Route103_EventScript_1A02F4
end
diff --git a/data/maps/Route110/scripts.inc b/data/maps/Route110/scripts.inc
index ee8a4117c..80605c132 100644
--- a/data/maps/Route110/scripts.inc
+++ b/data/maps/Route110/scripts.inc
@@ -9,9 +9,9 @@ Route110_MapScript1_14F910:: @ 814F910
end
Route110_MapScript1_14F914:: @ 814F914
- call Route110_EventScript_1A0196
- call Route110_EventScript_1A014E
- call Route110_EventScript_1A0172
+ call Common_EventScript_SetupEvilTeamGfxIds
+ call Common_EventScript_SetupRivalGfxId
+ call Common_EventScript_SetupRivalOnBikeGfxId
compare VAR_CYCLING_CHALLENGE_STATE, 1
call_if_eq Route110_EventScript_14F92F
end
diff --git a/data/maps/Route112/scripts.inc b/data/maps/Route112/scripts.inc
index 6d531b4c8..9bf458099 100644
--- a/data/maps/Route112/scripts.inc
+++ b/data/maps/Route112/scripts.inc
@@ -3,7 +3,7 @@ Route112_MapScripts:: @ 8150502
.byte 0
Route112_MapScript1_150508:: @ 8150508
- call Route112_EventScript_1A0196
+ call Common_EventScript_SetupEvilTeamGfxIds
setvar VAR_JAGGED_PASS_ASH_WEATHER, 0
end
diff --git a/data/maps/Route113/scripts.inc b/data/maps/Route113/scripts.inc
index 33393f8aa..721fab1fb 100644
--- a/data/maps/Route113/scripts.inc
+++ b/data/maps/Route113/scripts.inc
@@ -9,7 +9,7 @@ Route113_MapScript1_1505D7:: @ 81505D7
Route113_MapScript1_1505DA:: @ 81505DA
call Route113_EventScript_1505E5
- call Route113_EventScript_1A0196
+ call Common_EventScript_SetupEvilTeamGfxIds
end
Route113_EventScript_1505E5:: @ 81505E5
diff --git a/data/maps/Route119/scripts.inc b/data/maps/Route119/scripts.inc
index d5b376d49..3b4e9c51f 100644
--- a/data/maps/Route119/scripts.inc
+++ b/data/maps/Route119/scripts.inc
@@ -23,9 +23,9 @@ Route119_EventScript_151197:: @ 8151197
return
Route119_MapScript1_15119B:: @ 815119B
- call Route119_EventScript_1A014E
- call Route119_EventScript_1A0172
- call Route119_EventScript_1A0196
+ call Common_EventScript_SetupRivalGfxId
+ call Common_EventScript_SetupRivalOnBikeGfxId
+ call Common_EventScript_SetupEvilTeamGfxIds
compare VAR_WEATHER_INSTITUTE_STATE, 1
call_if_eq Route119_EventScript_1511B9
special SetRoute119Weather
diff --git a/data/maps/Route119_WeatherInstitute_1F/scripts.inc b/data/maps/Route119_WeatherInstitute_1F/scripts.inc
index 8061daafb..894f05286 100644
--- a/data/maps/Route119_WeatherInstitute_1F/scripts.inc
+++ b/data/maps/Route119_WeatherInstitute_1F/scripts.inc
@@ -3,7 +3,7 @@ Route119_WeatherInstitute_1F_MapScripts:: @ 8163C2A
.byte 0
Route119_WeatherInstitute_1F_MapScript1_163C30:: @ 8163C30
- call Route119_WeatherInstitute_1F_EventScript_1A0196
+ call Common_EventScript_SetupEvilTeamGfxIds
compare VAR_WEATHER_INSTITUTE_STATE, 0
call_if_eq Route119_WeatherInstitute_1F_EventScript_163C41
end
diff --git a/data/maps/Route119_WeatherInstitute_2F/scripts.inc b/data/maps/Route119_WeatherInstitute_2F/scripts.inc
index 5ed894433..18aba2003 100644
--- a/data/maps/Route119_WeatherInstitute_2F/scripts.inc
+++ b/data/maps/Route119_WeatherInstitute_2F/scripts.inc
@@ -3,7 +3,7 @@ Route119_WeatherInstitute_2F_MapScripts:: @ 8163CC2
.byte 0
Route119_WeatherInstitute_2F_MapScript1_163CC8:: @ 8163CC8
- call Route119_WeatherInstitute_2F_EventScript_1A0196
+ call Common_EventScript_SetupEvilTeamGfxIds
compare VAR_WEATHER_INSTITUTE_STATE, 0
call_if_eq Route119_WeatherInstitute_2F_EventScript_163CE4
compare VAR_WEATHER_INSTITUTE_STATE, 1
diff --git a/data/maps/Route121/scripts.inc b/data/maps/Route121/scripts.inc
index 9cb0124fe..d95581a3d 100644
--- a/data/maps/Route121/scripts.inc
+++ b/data/maps/Route121/scripts.inc
@@ -3,7 +3,7 @@ Route121_MapScripts:: @ 8151AFE
.byte 0
Route121_MapScript1_151B04:: @ 8151B04
- call Route121_EventScript_1A0196
+ call Common_EventScript_SetupEvilTeamGfxIds
end
Route121_EventScript_151B0A:: @ 8151B0A
diff --git a/data/maps/Route128/scripts.inc b/data/maps/Route128/scripts.inc
index d4b661891..8a8e18747 100644
--- a/data/maps/Route128/scripts.inc
+++ b/data/maps/Route128/scripts.inc
@@ -5,7 +5,7 @@ Route128_MapScripts:: @ 815211B
Route128_MapScript1_152126:: @ 8152126
call_if_set FLAG_SYS_WEATHER_CTRL, Route128_EventScript_1A02C1
- call Route128_EventScript_1A0196
+ call Common_EventScript_SetupEvilTeamGfxIds
end
Route128_MapScript2_152135:: @ 8152135
diff --git a/data/maps/RustboroCity/scripts.inc b/data/maps/RustboroCity/scripts.inc
index 0dcd74170..a2c231fde 100644
--- a/data/maps/RustboroCity/scripts.inc
+++ b/data/maps/RustboroCity/scripts.inc
@@ -4,8 +4,8 @@ RustboroCity_MapScripts:: @ 814C372
RustboroCity_MapScript1_14C378:: @ 814C378
setflag FLAG_VISITED_RUSTBORO_CITY
- call RustboroCity_EventScript_1A0196
- call RustboroCity_EventScript_1A014E
+ call Common_EventScript_SetupEvilTeamGfxIds
+ call Common_EventScript_SetupRivalGfxId
end
RustboroCity_EventScript_14C386:: @ 814C386
diff --git a/data/maps/RusturfTunnel/scripts.inc b/data/maps/RusturfTunnel/scripts.inc
index 7fd75bcd5..a48b1a1c1 100644
--- a/data/maps/RusturfTunnel/scripts.inc
+++ b/data/maps/RusturfTunnel/scripts.inc
@@ -9,7 +9,7 @@ RusturfTunnel_MapScript2_15C750:: @ 815C750
.2byte 0
RusturfTunnel_MapScript1_15C762:: @ 815C762
- call RusturfTunnel_EventScript_1A0196
+ call Common_EventScript_SetupEvilTeamGfxIds
compare VAR_RUSTURF_TUNNEL_STATE, 2
call_if_eq RusturfTunnel_EventScript_15C773
end
diff --git a/data/maps/SeafloorCavern_Room1/scripts.inc b/data/maps/SeafloorCavern_Room1/scripts.inc
index dbbcc2f4b..b04930ee6 100644
--- a/data/maps/SeafloorCavern_Room1/scripts.inc
+++ b/data/maps/SeafloorCavern_Room1/scripts.inc
@@ -3,7 +3,7 @@ SeafloorCavern_Room1_MapScripts:: @ 815DA61
.byte 0
SeafloorCavern_Room1_MapScript1_15DA67:: @ 815DA67
- call SeafloorCavern_Room1_EventScript_1A0196
+ call Common_EventScript_SetupEvilTeamGfxIds
end
SeafloorCavern_Room1_EventScript_15DA6D:: @ 815DA6D
diff --git a/data/maps/SeafloorCavern_Room3/scripts.inc b/data/maps/SeafloorCavern_Room3/scripts.inc
index d532d6a1f..286487d73 100644
--- a/data/maps/SeafloorCavern_Room3/scripts.inc
+++ b/data/maps/SeafloorCavern_Room3/scripts.inc
@@ -3,7 +3,7 @@ SeafloorCavern_Room3_MapScripts:: @ 815DA9C
.byte 0
SeafloorCavern_Room3_MapScript1_15DAA2:: @ 815DAA2
- call SeafloorCavern_Room3_EventScript_1A0196
+ call Common_EventScript_SetupEvilTeamGfxIds
end
SeafloorCavern_Room3_EventScript_15DAA8:: @ 815DAA8
diff --git a/data/maps/SeafloorCavern_Room4/scripts.inc b/data/maps/SeafloorCavern_Room4/scripts.inc
index da4841070..dd7abf361 100644
--- a/data/maps/SeafloorCavern_Room4/scripts.inc
+++ b/data/maps/SeafloorCavern_Room4/scripts.inc
@@ -3,7 +3,7 @@ SeafloorCavern_Room4_MapScripts:: @ 815DABF
.byte 0
SeafloorCavern_Room4_MapScript1_15DAC5:: @ 815DAC5
- call SeafloorCavern_Room4_EventScript_1A0196
+ call Common_EventScript_SetupEvilTeamGfxIds
end
SeafloorCavern_Room4_EventScript_15DACB:: @ 815DACB
diff --git a/data/maps/SeafloorCavern_Room9/scripts.inc b/data/maps/SeafloorCavern_Room9/scripts.inc
index e48980e7f..bef07204b 100644
--- a/data/maps/SeafloorCavern_Room9/scripts.inc
+++ b/data/maps/SeafloorCavern_Room9/scripts.inc
@@ -3,8 +3,8 @@ SeafloorCavern_Room9_MapScripts:: @ 815DAE6
.byte 0
SeafloorCavern_Room9_MapScript1_15DAEC:: @ 815DAEC
- call SeafloorCavern_Room9_EventScript_1A0196
- call SeafloorCavern_Room9_EventScript_1A01B5
+ call Common_EventScript_SetupEvilTeamGfxIds
+ call Common_EventScript_SetupLegendaryGfxIds
.ifdef SAPPHIRE
setmaplayoutindex 157
.else
diff --git a/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc b/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc
index 7d918f540..47d49639e 100644
--- a/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc
+++ b/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc
@@ -3,7 +3,7 @@ SlateportCity_OceanicMuseum_2F_MapScripts:: @ 8155CDA
.byte 0
SlateportCity_OceanicMuseum_2F_MapScript1_155CE0:: @ 8155CE0
- call SlateportCity_OceanicMuseum_2F_EventScript_1A0196
+ call Common_EventScript_SetupEvilTeamGfxIds
end
SlateportCity_OceanicMuseum_2F_EventScript_155CE6:: @ 8155CE6
diff --git a/data/scripts/dynamic_npc_graphics.inc b/data/scripts/dynamic_npc_graphics.inc
new file mode 100644
index 000000000..2af18fbcd
--- /dev/null
+++ b/data/scripts/dynamic_npc_graphics.inc
@@ -0,0 +1,59 @@
+Common_EventScript_SetupRivalGfxId:: @ 81A014E
+ checkplayergender
+ compare VAR_RESULT, MALE
+ goto_if_eq EventScript_SetupRivalGfxIdFemale
+ compare VAR_RESULT, FEMALE
+ goto_if_eq EventScript_SetupRivalGfxIdMale
+ end
+
+EventScript_SetupRivalGfxIdFemale:: @ 81A0166
+ setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_RIVAL_MAY_NORMAL
+ return
+
+EventScript_SetupRivalGfxIdMale:: @ 81A016C
+ setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL
+ return
+
+Common_EventScript_SetupRivalOnBikeGfxId:: @ 81A0172
+ checkplayergender
+ compare VAR_RESULT, MALE
+ goto_if_eq EventScript_SetupRivalOnBikeGfxIdFemale
+ compare VAR_RESULT, FEMALE
+ goto_if_eq EventScript_SetupRivalOnBikeGfxIdMale
+ end
+
+EventScript_SetupRivalOnBikeGfxIdFemale:: @ 81A018A
+ setvar VAR_OBJ_GFX_ID_3, OBJ_EVENT_GFX_RIVAL_MAY_MACH_BIKE
+ return
+
+EventScript_SetupRivalOnBikeGfxIdMale:: @ 81A0190
+ setvar VAR_OBJ_GFX_ID_3, OBJ_EVENT_GFX_RIVAL_BRENDAN_MACH_BIKE
+ return
+
+Common_EventScript_SetupEvilTeamGfxIds:: @ 81A0196
+ .ifdef SAPPHIRE
+ setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_AQUA_MEMBER_M
+ setvar VAR_OBJ_GFX_ID_2, OBJ_EVENT_GFX_AQUA_MEMBER_F
+ setvar VAR_OBJ_GFX_ID_4, OBJ_EVENT_GFX_MAGMA_MEMBER_M
+ setvar VAR_OBJ_GFX_ID_5, OBJ_EVENT_GFX_MAGMA_MEMBER_F
+ setvar VAR_OBJ_GFX_ID_6, OBJ_EVENT_GFX_ARCHIE
+ setvar VAR_OBJ_GFX_ID_7, OBJ_EVENT_GFX_MAXIE
+ .else
+ setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_MAGMA_MEMBER_M
+ setvar VAR_OBJ_GFX_ID_2, OBJ_EVENT_GFX_MAGMA_MEMBER_F
+ setvar VAR_OBJ_GFX_ID_4, OBJ_EVENT_GFX_AQUA_MEMBER_M
+ setvar VAR_OBJ_GFX_ID_5, OBJ_EVENT_GFX_AQUA_MEMBER_F
+ setvar VAR_OBJ_GFX_ID_6, OBJ_EVENT_GFX_MAXIE
+ setvar VAR_OBJ_GFX_ID_7, OBJ_EVENT_GFX_ARCHIE
+ .endif
+ return
+
+Common_EventScript_SetupLegendaryGfxIds:: @ 81A01B5
+ .ifdef SAPPHIRE
+ setvar VAR_OBJ_GFX_ID_8, OBJ_EVENT_GFX_KYOGRE_1
+ setvar VAR_OBJ_GFX_ID_9, OBJ_EVENT_GFX_KYOGRE_2
+ .else
+ setvar VAR_OBJ_GFX_ID_8, OBJ_EVENT_GFX_GROUDON_1
+ setvar VAR_OBJ_GFX_ID_9, OBJ_EVENT_GFX_GROUDON_2
+ .endif
+ return
diff --git a/data/scripts/surf.inc b/data/scripts/surf.inc
new file mode 100644
index 000000000..49b7a1162
--- /dev/null
+++ b/data/scripts/surf.inc
@@ -0,0 +1,16 @@
+EventScript_UseSurf:: @ 81A0117
+ checkpartymove MOVE_SURF
+ compare VAR_RESULT, PARTY_SIZE
+ goto_if_eq EventScript_EndUseSurf
+ bufferpartymonnick 0, VAR_RESULT
+ setfieldeffectargument 0, VAR_RESULT
+ lockall
+ msgbox gText_WantToUseSurf, MSGBOX_YESNO
+ compare VAR_RESULT, NO
+ goto_if_eq EventScript_ReleaseUseSurf
+ msgbox gText_PlayerUsedSurf, MSGBOX_DEFAULT
+ dofieldeffect FLDEFF_USE_SURF
+EventScript_ReleaseUseSurf: @ 81A014C
+ releaseall
+EventScript_EndUseSurf: @ 81A014D
+ end
diff --git a/data/text/surf.inc b/data/text/surf.inc
index e9e3e9026..d78c80a42 100644
--- a/data/text/surf.inc
+++ b/data/text/surf.inc
@@ -1,6 +1,6 @@
-UseSurfPromptText: @ 81A1344
+gText_WantToUseSurf: @ 81A1344
.string "The water is dyed a deep blue...\n"
.string "Would you like to SURF?$"
-UsedSurfText: @ 81A137D
+gText_PlayerUsedSurf: @ 81A137D
.string "{STR_VAR_1} used SURF!$"
diff --git a/include/constants/global.h b/include/constants/global.h
new file mode 100644
index 000000000..cd60f0be4
--- /dev/null
+++ b/include/constants/global.h
@@ -0,0 +1,92 @@
+#ifndef GUARD_CONSTANTS_GLOBAL_H
+#define GUARD_CONSTANTS_GLOBAL_H
+// Invalid Versions show as "----------" in Gen 4 and Gen 5's summary screen.
+// In Gens 6 and 7, invalid versions instead show "a distant land" in the summary screen.
+// In Gen 4 only, migrated Pokemon with Diamond, Pearl, or Platinum's ID show as "----------".
+// Gen 5 and up read Diamond, Pearl, or Platinum's ID as "Sinnoh".
+// In Gen 4 and up, migrated Pokemon with HeartGold or SoulSilver's ID show the otherwise unused "Johto" string.
+#define VERSION_SAPPHIRE 1
+#define VERSION_RUBY 2
+#define VERSION_EMERALD 3
+#define VERSION_FIRE_RED 4
+#define VERSION_LEAF_GREEN 5
+#define VERSION_HEART_GOLD 7
+#define VERSION_SOUL_SILVER 8
+#define VERSION_DIAMOND 10
+#define VERSION_PEARL 11
+#define VERSION_PLATINUM 12
+#define VERSION_GAMECUBE 15
+
+#define LANGUAGE_JAPANESE 1
+#define LANGUAGE_ENGLISH 2
+#define LANGUAGE_FRENCH 3
+#define LANGUAGE_ITALIAN 4
+#define LANGUAGE_GERMAN 5
+#define LANGUAGE_KOREAN 6 // 6 goes unused but the theory is it was meant to be Korean
+#define LANGUAGE_SPANISH 7
+#define NUM_LANGUAGES 7
+
+#if defined(ENGLISH)
+#define GAME_LANGUAGE (LANGUAGE_ENGLISH)
+#elif defined(GERMAN)
+#define GAME_LANGUAGE (LANGUAGE_GERMAN)
+#endif
+
+#if defined(SAPPHIRE)
+#define GAME_VERSION (VERSION_SAPPHIRE)
+#elif defined(RUBY)
+#define GAME_VERSION (VERSION_RUBY)
+#endif
+
+// capacities of various saveblock objects
+#define DAYCARE_MON_COUNT 2
+#define POKEBLOCKS_COUNT 40
+#define OBJECT_EVENTS_COUNT 16
+#define BERRY_TREES_COUNT 128
+#define FLAGS_COUNT 288
+#define VARS_COUNT 256
+#define MAIL_COUNT 16
+#define SECRET_BASES_COUNT 20
+#define TV_SHOWS_COUNT 25
+#define POKE_NEWS_COUNT 16
+#define PC_ITEMS_COUNT 50
+#define BAG_ITEMS_COUNT 20
+#define BAG_KEYITEMS_COUNT 20
+#define BAG_POKEBALLS_COUNT 16
+#define BAG_TMHM_COUNT 64
+#define BAG_BERRIES_COUNT 46
+#define OBJECT_EVENT_TEMPLATES_COUNT 64
+#define DECOR_MAX_SECRET_BASE 16
+#define DECOR_MAX_PLAYERS_HOUSE 12
+#define MAX_REMATCH_ENTRIES 100
+
+#define TRAINER_ID_LENGTH 4
+#define MAX_MON_MOVES 4
+#define NUM_STATS 6
+#define PARTY_SIZE 6
+
+#define MALE 0
+#define FEMALE 1
+#define GENDER_COUNT 2
+
+#define OPTIONS_BUTTON_MODE_NORMAL 0
+#define OPTIONS_BUTTON_MODE_LR 1
+#define OPTIONS_BUTTON_MODE_L_EQUALS_A 2
+
+#define OPTIONS_TEXT_SPEED_SLOW 0
+#define OPTIONS_TEXT_SPEED_MID 1
+#define OPTIONS_TEXT_SPEED_FAST 2
+
+#define OPTIONS_SOUND_MONO 0
+#define OPTIONS_SOUND_STEREO 1
+
+#define OPTIONS_BATTLE_STYLE_SHIFT 0
+#define OPTIONS_BATTLE_STYLE_SET 1
+
+#define BAG_ITEMS 1
+#define BAG_POKEBALLS 2
+#define BAG_TMsHMs 3
+#define BAG_BERRIES 4
+#define BAG_KEYITEMS 5
+
+#endif // GUARD_CONSTANTS_GLOBAL_H
diff --git a/include/global.h b/include/global.h
index 0ddc2d7bb..5c1369feb 100644
--- a/include/global.h
+++ b/include/global.h
@@ -6,6 +6,7 @@
#include <limits.h>
#include "config.h" // we need to define config before gba headers as print stuff needs the functions nulled before defines.
#include "gba/gba.h"
+#include "constants/global.h"
// IDE support
#if defined(__APPLE__) || defined(__CYGWIN__)
@@ -96,91 +97,11 @@ enum
f; \
})
-enum
-{
- VERSION_SAPPHIRE = 1,
- VERSION_RUBY = 2,
- VERSION_EMERALD = 3,
-};
-
-enum LanguageId
-{
- LANGUAGE_JAPANESE = 1,
- LANGUAGE_ENGLISH = 2,
- LANGUAGE_GERMAN = 5,
-};
-
-#if defined(ENGLISH)
-#define GAME_LANGUAGE (LANGUAGE_ENGLISH)
-#elif defined(GERMAN)
-#define GAME_LANGUAGE (LANGUAGE_GERMAN)
-#endif
-
-// capacities of various saveblock objects
-#define DAYCARE_MON_COUNT 2
-#define POKEBLOCKS_COUNT 40
-#define PARTY_SIZE 6
-#define OBJECT_EVENTS_COUNT 16
-#define BERRY_TREES_COUNT 128
-#define FLAGS_COUNT 288
-#define VARS_COUNT 256
-#define MAIL_COUNT 16
-#define SECRET_BASES_COUNT 20
-#define TV_SHOWS_COUNT 25
-#define POKE_NEWS_COUNT 16
-#define PC_ITEMS_COUNT 50
-#define BAG_ITEMS_COUNT 20
-#define BAG_KEYITEMS_COUNT 20
-#define BAG_POKEBALLS_COUNT 16
-#define BAG_TMHM_COUNT 64
-#define BAG_BERRIES_COUNT 46
-
#define TEST_BUTTON(value, button) ({(value) & (button);})
#define JOY_NEW(button) (TEST_BUTTON(gMain.newKeys, button))
#define JOY_HELD(button) (TEST_BUTTON(gMain.heldKeys, button))
#define JOY_REPT(button) (TEST_BUTTON(gMain.newAndRepeatedKeys, button))
-enum
-{
- MALE,
- FEMALE
-};
-
-enum
-{
- OPTIONS_BUTTON_MODE_NORMAL,
- OPTIONS_BUTTON_MODE_LR,
- OPTIONS_BUTTON_MODE_L_EQUALS_A
-};
-
-enum
-{
- OPTIONS_TEXT_SPEED_SLOW,
- OPTIONS_TEXT_SPEED_MID,
- OPTIONS_TEXT_SPEED_FAST
-};
-
-enum
-{
- OPTIONS_SOUND_MONO,
- OPTIONS_SOUND_STEREO
-};
-
-enum
-{
- OPTIONS_BATTLE_STYLE_SHIFT,
- OPTIONS_BATTLE_STYLE_SET
-};
-
-enum
-{
- BAG_ITEMS = 1,
- BAG_POKEBALLS,
- BAG_TMsHMs,
- BAG_BERRIES,
- BAG_KEYITEMS
-};
-
struct Coords16
{
s16 x;
@@ -205,14 +126,14 @@ struct SecretBaseRecord
/*0x1A16*/ u16 sbr_field_e;
/*0x1A18*/ u8 sbr_field_10;
/*0x1A19*/ u8 sbr_field_11;
- /*0x1A1A*/ u8 decorations[16];
- /*0x1A2A*/ u8 decorationPos[16];
- /*0x1A3C*/ u32 partyPersonality[6];
- /*0x1A54*/ u16 partyMoves[6 * 4];
- /*0x1A84*/ u16 partySpecies[6];
- /*0x1A90*/ u16 partyHeldItems[6];
- /*0x1A9C*/ u8 partyLevels[6];
- /*0x1AA2*/ u8 partyEVs[6];
+ /*0x1A1A*/ u8 decorations[DECOR_MAX_SECRET_BASE];
+ /*0x1A2A*/ u8 decorationPos[DECOR_MAX_SECRET_BASE];
+ /*0x1A3C*/ u32 partyPersonality[PARTY_SIZE];
+ /*0x1A54*/ u16 partyMoves[PARTY_SIZE * 4];
+ /*0x1A84*/ u16 partySpecies[PARTY_SIZE];
+ /*0x1A90*/ u16 partyHeldItems[PARTY_SIZE];
+ /*0x1A9C*/ u8 partyLevels[PARTY_SIZE];
+ /*0x1AA2*/ u8 partyEVs[PARTY_SIZE];
};
#include "constants/game_stat.h"
@@ -698,16 +619,16 @@ struct SaveBlock1 /* 0x02025734 */
/*0x96C*/ u16 berryBlenderRecords[3];
/*0x972*/ u8 filler_972[0x6];
/*0x978*/ u16 trainerRematchStepCounter;
- /*0x97A*/ u8 trainerRematches[100];
+ /*0x97A*/ u8 trainerRematches[MAX_REMATCH_ENTRIES];
/*0x9E0*/ struct ObjectEvent objectEvents[OBJECT_EVENTS_COUNT];
- /*0xC20*/ struct ObjectEventTemplate objectEventTemplates[64];
+ /*0xC20*/ struct ObjectEventTemplate objectEventTemplates[OBJECT_EVENT_TEMPLATES_COUNT];
/*0x1220*/ u8 flags[FLAGS_COUNT];
/*0x1340*/ u16 vars[VARS_COUNT];
/*0x1540*/ u32 gameStats[NUM_GAME_STATS];
/*0x1608*/ struct BerryTree berryTrees[BERRY_TREES_COUNT];
/*0x1A08*/ struct SecretBaseRecord secretBases[SECRET_BASES_COUNT];
- /*0x2688*/ u8 playerRoomDecor[12];
- /*0x2694*/ u8 playerRoomDecorPos[12];
+ /*0x2688*/ u8 playerRoomDecor[DECOR_MAX_PLAYERS_HOUSE];
+ /*0x2694*/ u8 playerRoomDecorPos[DECOR_MAX_PLAYERS_HOUSE];
/*0x26A0*/ u8 decorDesk[10];
/*0x26AA*/ u8 decorChair[10];
/*0x26B4*/ u8 decorPlant[10];
diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c
index e237904fb..081d506ab 100644
--- a/src/field_control_avatar.c
+++ b/src/field_control_avatar.c
@@ -70,7 +70,7 @@ extern u8 ShopShelfScript[];
extern u8 BlueprintScript[];
extern u8 SecretBase_EventScript_SandOrnament[];
extern u8 SecretBase_EventScript_ShieldOrToyTV[];
-extern u8 UseSurfScript[];
+extern u8 EventScript_UseSurf[];
extern u8 S_UseWaterfall[];
extern u8 S_CannotUseWaterfall[];
extern u8 UseDiveScript[];
@@ -502,7 +502,7 @@ static u8 *GetInteractedMetatileScript(struct MapPosition *position, u8 metatile
static u8 *GetInteractedWaterScript(struct MapPosition *unused1, u8 metatileBehavior, u8 direction)
{
if (FlagGet(FLAG_BADGE05_GET) == TRUE && PartyHasMonWithSurf() == TRUE && IsPlayerFacingSurfableFishableWater() == TRUE)
- return UseSurfScript;
+ return EventScript_UseSurf;
if (MetatileBehavior_IsWaterfall(metatileBehavior) == TRUE)
{
diff --git a/src/main.c b/src/main.c
index b778631f3..433143b38 100644
--- a/src/main.c
+++ b/src/main.c
@@ -24,14 +24,7 @@ static void VCountIntr(void);
static void SerialIntr(void);
static void IntrDummy(void);
-#ifdef SAPPHIRE
-#define GAME_VERSION VERSION_SAPPHIRE
-#else
-#define GAME_VERSION VERSION_RUBY
-#endif
-
const u8 gGameVersion = GAME_VERSION;
-
const u8 gGameLanguage = GAME_LANGUAGE;
// The debug menu expects this exact format. With the English build string, it