Define map setup commands as macros like other script commands

This commit is contained in:
Rangi 2020-07-13 20:44:16 -04:00
parent d626a0dc3b
commit eca33ef190
8 changed files with 394 additions and 241 deletions

View File

@ -14,56 +14,6 @@
const MAPSETUP_BADWARP ; fb const MAPSETUP_BADWARP ; fb
const MAPSETUP_FLY ; fc const MAPSETUP_FLY ; fc
; 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
const map_init_name_sign ; 2d
map_end EQU -1
; callback types ; callback types
const_def 1 const_def 1
const MAPCALLBACK_TILES const MAPCALLBACK_TILES

View File

@ -0,0 +1,48 @@
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
dba InitMapNameSign ; 2d

View File

@ -14,163 +14,163 @@ MapSetupScripts:
dw MapSetupScript_Fly dw MapSetupScript_Fly
MapSetupScript_Teleport: MapSetupScript_Teleport:
db map_reset_player_object_action map_reset_player_object_action
MapSetupScript_Fly: MapSetupScript_Fly:
db map_fade_out_palettes map_fade_out_palettes
db map_jump_roam_mons map_jump_roam_mons
MapSetupScript_Warp: MapSetupScript_Warp:
db map_disable_lcd map_disable_lcd
db map_init_sound map_init_sound
db map_enter_spawn_point map_enter_spawn_point
db map_load_attributes map_load_attributes
db map_handle_new map_handle_new
db map_spawn_player map_spawn_player
db map_refresh_player_coords map_refresh_player_coords
db map_get_screen_coords map_get_screen_coords
db map_load_block_data map_load_block_data
db map_buffer_screen map_buffer_screen
db map_load_graphics map_load_graphics
db map_load_time_of_day map_load_time_of_day
db map_load_objects map_load_objects
db map_enable_lcd map_enable_lcd
db map_load_palettes map_load_palettes
db map_spawn_in_facing_down map_spawn_in_facing_down
db map_refresh_sprites map_refresh_sprites
db map_play_music_bike map_play_music_bike
db map_fade_in_to_music map_fade_in_to_music
db map_fade_in_palettes map_fade_in_palettes
db map_activate_anims map_activate_anims
db map_load_wild_mon_data map_load_wild_mon_data
db map_end map_end
MapSetupScript_BadWarp: MapSetupScript_BadWarp:
db map_enter_spawn_point map_enter_spawn_point
db map_load_attributes map_load_attributes
db map_handle_new map_handle_new
db map_spawn_player map_spawn_player
db map_refresh_player_coords map_refresh_player_coords
db map_get_screen_coords map_get_screen_coords
db map_load_block_data map_load_block_data
db map_buffer_screen map_buffer_screen
db map_disable_lcd map_disable_lcd
db map_load_graphics map_load_graphics
db map_load_time_of_day map_load_time_of_day
db map_fade_out_music map_fade_out_music
db map_enable_lcd map_enable_lcd
db map_load_objects map_load_objects
db map_load_palettes map_load_palettes
db map_spawn_in_facing_down map_spawn_in_facing_down
db map_refresh_sprites map_refresh_sprites
db map_fade_to_music map_fade_to_music
db map_fade_in_palettes map_fade_in_palettes
db map_activate_anims map_activate_anims
db map_load_wild_mon_data map_load_wild_mon_data
db map_end map_end
MapSetupScript_Connection: MapSetupScript_Connection:
db map_suspend_anims map_suspend_anims
db map_enter_connection map_enter_connection
db map_load_attributes map_load_attributes
db map_handle_new map_handle_new
db map_refresh_player_coords map_refresh_player_coords
db map_load_block_data map_load_block_data
db map_load_tileset map_load_tileset
db map_save_screen map_save_screen
db map_load_objects map_load_objects
db map_fade_to_music map_fade_to_music
db map_load_palettes map_load_palettes
db map_init_name_sign map_init_name_sign
db map_apply_palettes map_apply_palettes
db map_load_wild_mon_data map_load_wild_mon_data
db map_update_roam_mons map_update_roam_mons
db map_activate_anims map_activate_anims
db map_end map_end
MapSetupScript_Fall: MapSetupScript_Fall:
db map_reset_player_object_action map_reset_player_object_action
MapSetupScript_Door: MapSetupScript_Door:
db map_fade_out_palettes map_fade_out_palettes
MapSetupScript_Train: MapSetupScript_Train:
db map_enter_warp map_enter_warp
db map_load_attributes map_load_attributes
db map_get_warp_dest_coords map_get_warp_dest_coords
db map_handle_new map_handle_new
db map_refresh_player_coords map_refresh_player_coords
db map_load_block_data map_load_block_data
db map_buffer_screen map_buffer_screen
db map_disable_lcd map_disable_lcd
db map_load_graphics map_load_graphics
db map_load_time_of_day map_load_time_of_day
db map_fade_out_music map_fade_out_music
db map_enable_lcd map_enable_lcd
db map_load_objects map_load_objects
db map_load_palettes map_load_palettes
db map_refresh_sprites map_refresh_sprites
db map_fade_to_music map_fade_to_music
db map_fade_in_palettes map_fade_in_palettes
db map_activate_anims map_activate_anims
db map_load_wild_mon_data map_load_wild_mon_data
db map_update_roam_mons map_update_roam_mons
db map_end map_end
MapSetupScript_ReloadMap: MapSetupScript_ReloadMap:
db map_fade_music_and_palettes map_fade_music_and_palettes
db map_clear_bg_palettes map_clear_bg_palettes
db map_disable_lcd map_disable_lcd
db map_init_sound map_init_sound
db map_load_block_data map_load_block_data
db map_load_connection_block_data map_load_connection_block_data
db map_load_graphics map_load_graphics
db map_load_time_of_day map_load_time_of_day
db map_enable_lcd map_enable_lcd
db map_load_palettes map_load_palettes
db map_refresh_sprites map_refresh_sprites
db map_force_music map_force_music
db map_fade_in_palettes map_fade_in_palettes
db map_activate_anims map_activate_anims
db map_load_wild_mon_data map_load_wild_mon_data
db map_end map_end
MapSetupScript_LinkReturn: MapSetupScript_LinkReturn:
db map_fade_music_and_palettes map_fade_music_and_palettes
db map_disable_lcd map_disable_lcd
db map_init_sound map_init_sound
db map_handle_new map_handle_new
db map_load_block_data map_load_block_data
db map_buffer_screen map_buffer_screen
db map_load_graphics map_load_graphics
db map_load_time_of_day map_load_time_of_day
db map_enable_lcd map_enable_lcd
db map_load_palettes map_load_palettes
db map_refresh_sprites map_refresh_sprites
db map_play_music_bike map_play_music_bike
db map_fade_in_palettes map_fade_in_palettes
db map_activate_anims map_activate_anims
db map_load_wild_mon_data map_load_wild_mon_data
db map_enable_text_acceleration map_enable_text_acceleration
db map_end map_end
MapSetupScript_Continue: MapSetupScript_Continue:
db map_disable_lcd map_disable_lcd
db map_init_sound map_init_sound
db map_load_attributes_no_objects map_load_attributes_no_objects
db map_get_screen_coords map_get_screen_coords
db map_handle_continue map_handle_continue
db map_load_block_data map_load_block_data
db map_load_connection_block_data map_load_connection_block_data
db map_buffer_screen map_buffer_screen
db map_load_graphics map_load_graphics
db map_load_time_of_day map_load_time_of_day
db map_enable_lcd map_enable_lcd
db map_load_palettes map_load_palettes
db map_refresh_sprites map_refresh_sprites
db map_play_music_bike map_play_music_bike
db map_fade_in_palettes map_fade_in_palettes
db map_activate_anims map_activate_anims
db map_load_wild_mon_data map_load_wild_mon_data
db map_end map_end
MapSetupScript_Submenu: MapSetupScript_Submenu:
db map_load_block_data map_load_block_data
db map_load_connection_block_data map_load_connection_block_data
db map_end map_end

View File

@ -13,6 +13,7 @@ These pages are for documenting pieces of the [pokecrystal](https://github.com/p
- [event_commands.md](event_commands.md) - [event_commands.md](event_commands.md)
- [movement_commands.md](movement_commands.md) - [movement_commands.md](movement_commands.md)
- [text_commands.md](text_commands.md) - [text_commands.md](text_commands.md)
- [map_setup_scripts.md](map_setup_scripts.md)
## Other types of scripts ## Other types of scripts

144
docs/map_setup_scripts.md Normal file
View File

@ -0,0 +1,144 @@
# Map Setup Commands
Defined in [macros/scripts/map_setup.asm](https://github.com/pret/pokecrystal/blob/master/macros/scripts/map_setup.asm) and [data/maps/setup_script_pointers.asm:MapSetupCommands](https://github.com/pret/pokecrystal/blob/master/data/maps/setup_script_pointers.asm).
## `$00`: `map_enable_lcd`
## `$01`: `map_disable_lcd`
## `$02`: `map_init_sound`
## `$03`: `map_play_music`
## `$04`: `map_restart_music`
## `$05`: `map_fade_to_music`
## `$06`: `map_fade_music_and_palettes`
## `$07`: `map_play_music_bike`
## `$08`: `map_force_music`
## `$09`: `map_fade_in_to_music`
## `$0A`: `map_load_block_data`
## `$0B`: `map_load_connection_block_data`
## `$0C`: `map_save_screen`
## `$0D`: `map_buffer_screen`
## `$0E`: `map_load_graphics`
## `$0F`: `map_load_tileset`
## `$10`: `map_load_time_of_day`
## `$11`: `map_load_palettes`
## `$12`: `map_load_wild_mon_data`
## `$13`: `map_refresh_sprites`
## `$14`: `map_handle_new`
## `$15`: `map_handle_continue`
## `$16`: `map_load_objects`
## `$17`: `map_enter_spawn_point`
## `$18`: `map_enter_connection`
## `$19`: `map_enter_warp`
## `$1A`: `map_load_attributes`
## `$1B`: `map_load_attributes_no_objects`
## `$1C`: `map_clear_bg_palettes`
## `$1D`: `map_fade_out_palettes`
## `$1E`: `map_fade_in_palettes`
## `$1F`: `map_get_screen_coords`
## `$20`: `map_get_warp_dest_coords`
## `$21`: `map_spawn_in_facing_down`
## `$22`: `map_spawn_player`
## `$23`: `map_refresh_player_coords`
## `$24`: `map_reset_player_object_action`
## `$25`: `map_skip_update_sprites`
## `$26`: `map_update_roam_mons`
## `$27`: `map_jump_roam_mons`
## `$28`: `map_fade_out_music`
## `$29`: `map_activate_anims`
## `$2A`: `map_suspend_anims`
## `$2B`: `map_apply_palettes`
## `$2C`: `map_enable_text_acceleration`
## `$2D`: `map_init_name_sign`
## `$FF`: `map_end`

View File

@ -18,7 +18,7 @@ INCLUDE "data/maps/setup_scripts.asm"
ReadMapSetupScript: ReadMapSetupScript:
.loop .loop
ld a, [hli] ld a, [hli]
cp map_end cp map_end_command
ret z ret z
push hl push hl
@ -58,54 +58,7 @@ ReadMapSetupScript:
pop hl pop hl
jr .loop jr .loop
MapSetupCommands: INCLUDE "data/maps/setup_script_pointers.asm"
; 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
dba InitMapNameSign ; 2d
EnableTextAcceleration: EnableTextAcceleration:
xor a xor a

View File

@ -11,6 +11,7 @@ INCLUDE "macros/scripts/maps.asm"
INCLUDE "macros/scripts/events.asm" INCLUDE "macros/scripts/events.asm"
INCLUDE "macros/scripts/text.asm" INCLUDE "macros/scripts/text.asm"
INCLUDE "macros/scripts/movement.asm" INCLUDE "macros/scripts/movement.asm"
INCLUDE "macros/scripts/map_setup.asm"
INCLUDE "macros/scripts/battle_commands.asm" INCLUDE "macros/scripts/battle_commands.asm"
INCLUDE "macros/scripts/battle_anims.asm" INCLUDE "macros/scripts/battle_anims.asm"
INCLUDE "macros/scripts/trade_anims.asm" INCLUDE "macros/scripts/trade_anims.asm"

View File

@ -0,0 +1,56 @@
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
setup_command map_init_name_sign ; 2d
const_def -1, -1
setup_command map_end ; ff