summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--constants/map_setup_constants.asm49
-rw-r--r--data/maps/setup_script_pointers.asm47
-rw-r--r--data/maps/setup_scripts.asm282
-rw-r--r--engine/overworld/map_setup.asm50
-rw-r--r--macros.asm1
-rw-r--r--macros/scripts/map_setup.asm55
6 files changed, 246 insertions, 238 deletions
diff --git a/constants/map_setup_constants.asm b/constants/map_setup_constants.asm
index fa3d3596..ae587e55 100644
--- a/constants/map_setup_constants.asm
+++ b/constants/map_setup_constants.asm
@@ -13,55 +13,6 @@
const MAPSETUP_SUBMENU ; fa
const MAPSETUP_BADWARP ; fb
-; MapSetupCommands indexes (see engine/overworld/map_setup.asm)
- const_def
- const map_enable_lcd ; 00
- const map_disable_lcd ; 01
- const map_init_sound ; 02
- const map_play_music ; 03
- const map_restart_music ; 04
- const map_fade_to_music ; 05
- const map_fade_music_and_palettes ; 06
- const map_play_music_bike ; 07
- const map_force_music ; 08
- const map_fade_in_to_music ; 09
- const map_load_block_data ; 0a
- const map_load_connection_block_data ; 0b
- const map_save_screen ; 0c
- const map_buffer_screen ; 0d
- const map_load_graphics ; 0e
- const map_load_tileset ; 0f
- const map_load_time_of_day ; 10
- const map_load_palettes ; 11
- const map_load_wild_mon_data ; 12
- const map_refresh_sprites ; 13
- const map_handle_new ; 14
- const map_handle_continue ; 15
- const map_load_objects ; 16
- const map_enter_spawn_point ; 17
- const map_enter_connection ; 18
- const map_enter_warp ; 19
- const map_load_attributes ; 1a
- const map_load_attributes_no_objects ; 1b
- const map_clear_bg_palettes ; 1c
- const map_fade_out_palettes ; 1d
- const map_fade_in_palettes ; 1e
- const map_get_screen_coords ; 1f
- const map_get_warp_dest_coords ; 20
- const map_spawn_in_facing_down ; 21
- const map_spawn_player ; 22
- const map_refresh_player_coords ; 23
- const map_reset_player_object_action ; 24
- const map_skip_update_sprites ; 25
- const map_update_roam_mons ; 26
- const map_jump_roam_mons ; 27
- const map_fade_out_music ; 28
- const map_activate_anims ; 29
- const map_suspend_anims ; 2a
- const map_apply_palettes ; 2b
- const map_enable_text_acceleration ; 2c
-map_end EQU -1
-
; callback types
const_def 1
const MAPCALLBACK_TILES
diff --git a/data/maps/setup_script_pointers.asm b/data/maps/setup_script_pointers.asm
new file mode 100644
index 00000000..32748b0a
--- /dev/null
+++ b/data/maps/setup_script_pointers.asm
@@ -0,0 +1,47 @@
+MapSetupCommands:
+; entries correspond to map_*_command constants (see macros/scripts/map_setup.asm)
+ dba EnableLCD ; 00
+ dba DisableLCD ; 01
+ dba InitSound ; 02
+ dba PlayMapMusic ; 03
+ dba RestartMapMusic ; 04
+ dba FadeToMapMusic ; 05
+ dba FadeMapMusicAndPalettes ; 06
+ dba PlayMapMusicBike ; 07
+ dba ForceMapMusic ; 08
+ dba FadeInToMusic ; 09
+ dba LoadBlockData ; 0a (callback 1)
+ dba LoadConnectionBlockData ; 0b
+ dba SaveScreen ; 0c
+ dba BufferScreen ; 0d
+ dba LoadMapGraphics ; 0e
+ dba LoadMapTileset ; 0f
+ dba LoadMapTimeOfDay ; 10
+ dba LoadMapPalettes ; 11
+ dba LoadWildMonData ; 12
+ dba RefreshMapSprites ; 13
+ dba HandleNewMap ; 14
+ dba HandleContinueMap ; 15
+ dba LoadMapObjects ; 16
+ dba EnterMapSpawnPoint ; 17
+ dba EnterMapConnection ; 18
+ dba EnterMapWarp ; 19
+ dba LoadMapAttributes ; 1a
+ dba LoadMapAttributes_SkipObjects ; 1b
+ dba ClearBGPalettes ; 1c
+ dba FadeOutPalettes ; 1d
+ dba FadeInPalettes ; 1e
+ dba GetMapScreenCoords ; 1f
+ dba GetWarpDestCoords ; 20
+ dba SpawnInFacingDown ; 21
+ dba SpawnPlayer ; 22
+ dba RefreshPlayerCoords ; 23
+ dba ResetPlayerObjectAction ; 24
+ dba SkipUpdateMapSprites ; 25
+ dba UpdateRoamMons ; 26
+ dba JumpRoamMons ; 27
+ dba FadeOutMapMusic ; 28
+ dba ActivateMapAnims ; 29
+ dba SuspendMapAnims ; 2a
+ dba ApplyMapPalettes ; 2b
+ dba EnableTextAcceleration ; 2c
diff --git a/data/maps/setup_scripts.asm b/data/maps/setup_scripts.asm
index 114d809b..cf9b757b 100644
--- a/data/maps/setup_scripts.asm
+++ b/data/maps/setup_scripts.asm
@@ -13,161 +13,161 @@ MapSetupScripts:
dw MapSetupScript_BadWarp
MapSetupScript_Teleport:
- db map_fade_out_palettes
- db map_reset_player_object_action
- db map_jump_roam_mons
+ map_fade_out_palettes
+ map_reset_player_object_action
+ map_jump_roam_mons
MapSetupScript_Warp:
- db map_disable_lcd
- db map_init_sound
- db map_enter_spawn_point
- db map_load_attributes
- db map_handle_new
- db map_spawn_player
- db map_refresh_player_coords
- db map_get_screen_coords
- db map_load_block_data
- db map_buffer_screen
- db map_load_graphics
- db map_load_time_of_day
- db map_load_objects
- db map_enable_lcd
- db map_load_palettes
- db map_spawn_in_facing_down
- db map_refresh_sprites
- db map_play_music_bike
- db map_fade_in_to_music
- db map_fade_in_palettes
- db map_activate_anims
- db map_load_wild_mon_data
- db map_end
+ map_disable_lcd
+ map_init_sound
+ map_enter_spawn_point
+ map_load_attributes
+ map_handle_new
+ map_spawn_player
+ map_refresh_player_coords
+ map_get_screen_coords
+ map_load_block_data
+ map_buffer_screen
+ map_load_graphics
+ map_load_time_of_day
+ map_load_objects
+ map_enable_lcd
+ map_load_palettes
+ map_spawn_in_facing_down
+ map_refresh_sprites
+ map_play_music_bike
+ map_fade_in_to_music
+ map_fade_in_palettes
+ map_activate_anims
+ map_load_wild_mon_data
+ map_end
MapSetupScript_BadWarp:
- db map_enter_spawn_point
- db map_load_attributes
- db map_handle_new
- db map_spawn_player
- db map_refresh_player_coords
- db map_get_screen_coords
- db map_load_block_data
- db map_buffer_screen
- db map_disable_lcd
- db map_load_graphics
- db map_load_time_of_day
- db map_fade_out_music
- db map_enable_lcd
- db map_load_objects
- db map_load_palettes
- db map_spawn_in_facing_down
- db map_refresh_sprites
- db map_fade_to_music
- db map_fade_in_palettes
- db map_activate_anims
- db map_load_wild_mon_data
- db map_end
+ map_enter_spawn_point
+ map_load_attributes
+ map_handle_new
+ map_spawn_player
+ map_refresh_player_coords
+ map_get_screen_coords
+ map_load_block_data
+ map_buffer_screen
+ map_disable_lcd
+ map_load_graphics
+ map_load_time_of_day
+ map_fade_out_music
+ map_enable_lcd
+ map_load_objects
+ map_load_palettes
+ map_spawn_in_facing_down
+ map_refresh_sprites
+ map_fade_to_music
+ map_fade_in_palettes
+ map_activate_anims
+ map_load_wild_mon_data
+ map_end
MapSetupScript_Connection:
- db map_suspend_anims
- db map_enter_connection
- db map_load_attributes
- db map_handle_new
- db map_refresh_player_coords
- db map_load_block_data
- db map_load_tileset
- db map_save_screen
- db map_load_objects
- db map_fade_to_music
- db map_load_palettes
- db map_apply_palettes
- db map_load_wild_mon_data
- db map_update_roam_mons
- db map_activate_anims
- db map_end
+ map_suspend_anims
+ map_enter_connection
+ map_load_attributes
+ map_handle_new
+ map_refresh_player_coords
+ map_load_block_data
+ map_load_tileset
+ map_save_screen
+ map_load_objects
+ map_fade_to_music
+ map_load_palettes
+ map_apply_palettes
+ map_load_wild_mon_data
+ map_update_roam_mons
+ map_activate_anims
+ map_end
MapSetupScript_Fall:
- db map_reset_player_object_action
+ map_reset_player_object_action
MapSetupScript_Door:
- db map_fade_out_palettes
+ map_fade_out_palettes
MapSetupScript_Train:
- db map_enter_warp
- db map_load_attributes
- db map_get_warp_dest_coords
- db map_handle_new
- db map_refresh_player_coords
- db map_load_block_data
- db map_buffer_screen
- db map_disable_lcd
- db map_load_graphics
- db map_load_time_of_day
- db map_fade_out_music
- db map_enable_lcd
- db map_load_objects
- db map_load_palettes
- db map_refresh_sprites
- db map_fade_to_music
- db map_fade_in_palettes
- db map_activate_anims
- db map_load_wild_mon_data
- db map_update_roam_mons
- db map_end
+ map_enter_warp
+ map_load_attributes
+ map_get_warp_dest_coords
+ map_handle_new
+ map_refresh_player_coords
+ map_load_block_data
+ map_buffer_screen
+ map_disable_lcd
+ map_load_graphics
+ map_load_time_of_day
+ map_fade_out_music
+ map_enable_lcd
+ map_load_objects
+ map_load_palettes
+ map_refresh_sprites
+ map_fade_to_music
+ map_fade_in_palettes
+ map_activate_anims
+ map_load_wild_mon_data
+ map_update_roam_mons
+ map_end
MapSetupScript_ReloadMap:
- db map_fade_music_and_palettes
- db map_clear_bg_palettes
- db map_disable_lcd
- db map_init_sound
- db map_load_block_data
- db map_load_connection_block_data
- db map_load_graphics
- db map_load_time_of_day
- db map_enable_lcd
- db map_load_palettes
- db map_refresh_sprites
- db map_force_music
- db map_fade_in_palettes
- db map_activate_anims
- db map_load_wild_mon_data
- db map_end
+ map_fade_music_and_palettes
+ map_clear_bg_palettes
+ map_disable_lcd
+ map_init_sound
+ map_load_block_data
+ map_load_connection_block_data
+ map_load_graphics
+ map_load_time_of_day
+ map_enable_lcd
+ map_load_palettes
+ map_refresh_sprites
+ map_force_music
+ map_fade_in_palettes
+ map_activate_anims
+ map_load_wild_mon_data
+ map_end
MapSetupScript_LinkReturn:
- db map_fade_music_and_palettes
- db map_disable_lcd
- db map_init_sound
- db map_handle_new
- db map_load_block_data
- db map_buffer_screen
- db map_load_graphics
- db map_load_time_of_day
- db map_enable_lcd
- db map_load_palettes
- db map_refresh_sprites
- db map_play_music_bike
- db map_fade_in_palettes
- db map_activate_anims
- db map_load_wild_mon_data
- db map_enable_text_acceleration
- db map_end
+ map_fade_music_and_palettes
+ map_disable_lcd
+ map_init_sound
+ map_handle_new
+ map_load_block_data
+ map_buffer_screen
+ map_load_graphics
+ map_load_time_of_day
+ map_enable_lcd
+ map_load_palettes
+ map_refresh_sprites
+ map_play_music_bike
+ map_fade_in_palettes
+ map_activate_anims
+ map_load_wild_mon_data
+ map_enable_text_acceleration
+ map_end
MapSetupScript_Continue:
- db map_disable_lcd
- db map_init_sound
- db map_load_attributes_no_objects
- db map_get_screen_coords
- db map_handle_continue
- db map_load_block_data
- db map_load_connection_block_data
- db map_buffer_screen
- db map_load_graphics
- db map_load_time_of_day
- db map_enable_lcd
- db map_load_palettes
- db map_refresh_sprites
- db map_play_music_bike
- db map_fade_in_palettes
- db map_activate_anims
- db map_load_wild_mon_data
- db map_end
+ map_disable_lcd
+ map_init_sound
+ map_load_attributes_no_objects
+ map_get_screen_coords
+ map_handle_continue
+ map_load_block_data
+ map_load_connection_block_data
+ map_buffer_screen
+ map_load_graphics
+ map_load_time_of_day
+ map_enable_lcd
+ map_load_palettes
+ map_refresh_sprites
+ map_play_music_bike
+ map_fade_in_palettes
+ map_activate_anims
+ map_load_wild_mon_data
+ map_end
MapSetupScript_Submenu:
- db map_load_block_data
- db map_load_connection_block_data
- db map_end
+ map_load_block_data
+ map_load_connection_block_data
+ map_end
diff --git a/engine/overworld/map_setup.asm b/engine/overworld/map_setup.asm
index e5800ba8..e2d954d4 100644
--- a/engine/overworld/map_setup.asm
+++ b/engine/overworld/map_setup.asm
@@ -18,7 +18,7 @@ INCLUDE "data/maps/setup_scripts.asm"
ReadMapSetupScript:
.loop
ld a, [hli]
- cp map_end
+ cp map_end_command
ret z
push hl
@@ -58,53 +58,7 @@ ReadMapSetupScript:
pop hl
jr .loop
-MapSetupCommands:
-; entries correspond to command indexes in constants/map_setup_constants.asm
- dba EnableLCD ; 00
- dba DisableLCD ; 01
- dba InitSound ; 02
- dba PlayMapMusic ; 03
- dba RestartMapMusic ; 04
- dba FadeToMapMusic ; 05
- dba FadeMapMusicAndPalettes ; 06
- dba PlayMapMusicBike ; 07
- dba ForceMapMusic ; 08
- dba FadeInToMusic ; 09
- dba LoadBlockData ; 0a (callback 1)
- dba LoadConnectionBlockData ; 0b
- dba SaveScreen ; 0c
- dba BufferScreen ; 0d
- dba LoadMapGraphics ; 0e
- dba LoadMapTileset ; 0f
- dba LoadMapTimeOfDay ; 10
- dba LoadMapPalettes ; 11
- dba LoadWildMonData ; 12
- dba RefreshMapSprites ; 13
- dba HandleNewMap ; 14
- dba HandleContinueMap ; 15
- dba LoadMapObjects ; 16
- dba EnterMapSpawnPoint ; 17
- dba EnterMapConnection ; 18
- dba EnterMapWarp ; 19
- dba LoadMapAttributes ; 1a
- dba LoadMapAttributes_SkipObjects ; 1b
- dba ClearBGPalettes ; 1c
- dba FadeOutPalettes ; 1d
- dba FadeInPalettes ; 1e
- dba GetMapScreenCoords ; 1f
- dba GetWarpDestCoords ; 20
- dba SpawnInFacingDown ; 21
- dba SpawnPlayer ; 22
- dba RefreshPlayerCoords ; 23
- dba ResetPlayerObjectAction ; 24
- dba SkipUpdateMapSprites ; 25
- dba UpdateRoamMons ; 26
- dba JumpRoamMons ; 27
- dba FadeOutMapMusic ; 28
- dba ActivateMapAnims ; 29
- dba SuspendMapAnims ; 2a
- dba ApplyMapPalettes ; 2b
- dba EnableTextAcceleration ; 2c
+INCLUDE "data/maps/setup_script_pointers.asm"
EnableTextAcceleration:
xor a
diff --git a/macros.asm b/macros.asm
index 95238ac1..4c9b6b48 100644
--- a/macros.asm
+++ b/macros.asm
@@ -11,6 +11,7 @@ INCLUDE "macros/scripts/maps.asm"
INCLUDE "macros/scripts/events.asm"
INCLUDE "macros/scripts/text.asm"
INCLUDE "macros/scripts/movement.asm"
+INCLUDE "macros/scripts/map_setup.asm"
INCLUDE "macros/scripts/battle_commands.asm"
INCLUDE "macros/scripts/battle_anims.asm"
INCLUDE "macros/scripts/trade_anims.asm"
diff --git a/macros/scripts/map_setup.asm b/macros/scripts/map_setup.asm
new file mode 100644
index 00000000..3789419b
--- /dev/null
+++ b/macros/scripts/map_setup.asm
@@ -0,0 +1,55 @@
+setup_command: MACRO
+ const \1_command
+\1 EQUS "db \1_command"
+ENDM
+
+; MapSetupCommands indexes (see data/maps/setup_script_pointers.asm)
+ const_def
+ setup_command map_enable_lcd ; 00
+ setup_command map_disable_lcd ; 01
+ setup_command map_init_sound ; 02
+ setup_command map_play_music ; 03
+ setup_command map_restart_music ; 04
+ setup_command map_fade_to_music ; 05
+ setup_command map_fade_music_and_palettes ; 06
+ setup_command map_play_music_bike ; 07
+ setup_command map_force_music ; 08
+ setup_command map_fade_in_to_music ; 09
+ setup_command map_load_block_data ; 0a
+ setup_command map_load_connection_block_data ; 0b
+ setup_command map_save_screen ; 0c
+ setup_command map_buffer_screen ; 0d
+ setup_command map_load_graphics ; 0e
+ setup_command map_load_tileset ; 0f
+ setup_command map_load_time_of_day ; 10
+ setup_command map_load_palettes ; 11
+ setup_command map_load_wild_mon_data ; 12
+ setup_command map_refresh_sprites ; 13
+ setup_command map_handle_new ; 14
+ setup_command map_handle_continue ; 15
+ setup_command map_load_objects ; 16
+ setup_command map_enter_spawn_point ; 17
+ setup_command map_enter_connection ; 18
+ setup_command map_enter_warp ; 19
+ setup_command map_load_attributes ; 1a
+ setup_command map_load_attributes_no_objects ; 1b
+ setup_command map_clear_bg_palettes ; 1c
+ setup_command map_fade_out_palettes ; 1d
+ setup_command map_fade_in_palettes ; 1e
+ setup_command map_get_screen_coords ; 1f
+ setup_command map_get_warp_dest_coords ; 20
+ setup_command map_spawn_in_facing_down ; 21
+ setup_command map_spawn_player ; 22
+ setup_command map_refresh_player_coords ; 23
+ setup_command map_reset_player_object_action ; 24
+ setup_command map_skip_update_sprites ; 25
+ setup_command map_update_roam_mons ; 26
+ setup_command map_jump_roam_mons ; 27
+ setup_command map_fade_out_music ; 28
+ setup_command map_activate_anims ; 29
+ setup_command map_suspend_anims ; 2a
+ setup_command map_apply_palettes ; 2b
+ setup_command map_enable_text_acceleration ; 2c
+
+ const_def -1, -1
+ setup_command map_end ; ff