pokecrystal-board/engine/map_setup.asm

440 lines
7.3 KiB
NASM
Raw Normal View History

2015-02-11 14:01:04 -08:00
RunMapSetupScript:: ; 15363
ld a, [hMapEntryMethod]
2015-02-11 14:01:04 -08:00
and $f
dec a
ld c, a
ld b, 0
ld hl, MapSetupScripts
2015-07-20 19:18:18 -07:00
rept 2
2015-02-11 14:01:04 -08:00
add hl, bc
2015-07-20 19:18:18 -07:00
endr
2015-02-11 14:01:04 -08:00
ld a, [hli]
ld h, [hl]
ld l, a
call ReadMapSetupScript
ret
; 15377
MapSetupScripts: ; 15377
2015-11-11 20:38:57 -08:00
dw MapSetupScript_Warp
dw MapSetupScript_Continue
dw MapSetupScript_ReloadMap
dw MapSetupScript_Teleport
dw MapSetupScript_Door
dw MapSetupScript_Fall
dw MapSetupScript_Connection
dw MapSetupScript_LinkReturn
dw MapSetupScript_Train
dw MapSetupScript_Submenu
dw MapSetupScript_BadWarp
dw MapSetupScript_Fly
2015-02-11 14:01:04 -08:00
; 1538f
2015-11-11 20:38:57 -08:00
MapSetupScript_Teleport: ; 1538f
2015-10-24 16:49:19 -07:00
db map_prolong_sprites
2015-02-11 14:01:04 -08:00
2015-11-11 20:38:57 -08:00
MapSetupScript_Fly: ; 15390
2015-10-24 16:49:19 -07:00
db map_fade_out_palettes
db map_keep_roam
2015-02-11 14:01:04 -08:00
2015-11-11 20:38:57 -08:00
MapSetupScript_Warp: ; 15392
2015-10-24 16:49:19 -07:00
db map_lcd_off
db map_sound_off
db map_load_spawn
db map_attributes
db map_change_callback
db map_spawn_coord
db map_player_coord
db map_anchor_screen
db map_load_blocks
db map_buffer_screen
db map_load_graphics
db map_time_of_day
db map_load_objects
db map_lcd_on
db map_palettes
db map_face_down
db map_sprites
db map_bike_music
db map_max_volume
db map_fade_in_palettes
db map_animations_on
db map_wildmons
db map_end_setup_script
2015-02-11 14:01:04 -08:00
2015-11-11 20:38:57 -08:00
MapSetupScript_BadWarp: ; 153a9
2015-10-24 16:49:19 -07:00
db map_load_spawn
db map_attributes
db map_change_callback
db map_spawn_coord
db map_player_coord
db map_anchor_screen
db map_load_blocks
db map_buffer_screen
db map_lcd_off
db map_load_graphics
db map_time_of_day
db map_fade_out_music
db map_lcd_on
db map_load_objects
db map_palettes
db map_face_down
db map_sprites
db map_fade_music
db map_fade_in_palettes
db map_animations_on
db map_wildmons
db map_end_setup_script
2015-02-11 14:01:04 -08:00
2015-11-11 20:38:57 -08:00
MapSetupScript_Connection: ; 153bf
2015-10-24 16:49:19 -07:00
db map_animations_off
db map_load_connection
db map_attributes
db map_change_callback
db map_player_coord
db map_load_blocks
db map_load_tileset_header
db map_save_screen
db map_load_objects
db map_fade_music
db map_palettes
db map_stop_script
db map_keep_palettes
db map_wildmons
db map_update_roam
db map_animations_on
db map_end_setup_script
2015-02-11 14:01:04 -08:00
2015-11-11 20:38:57 -08:00
MapSetupScript_Fall: ; 153d0
2015-10-24 16:49:19 -07:00
db map_prolong_sprites
2015-02-11 14:01:04 -08:00
2015-11-11 20:38:57 -08:00
MapSetupScript_Door: ; 153d1
2015-10-24 16:49:19 -07:00
db map_fade_out_palettes
2015-02-11 14:01:04 -08:00
2015-11-11 20:38:57 -08:00
MapSetupScript_Train: ; 153d2
2015-10-24 16:49:19 -07:00
db map_load_warp
db map_attributes
db map_warp_face
db map_change_callback
db map_player_coord
db map_load_blocks
db map_buffer_screen
db map_lcd_off
db map_load_graphics
db map_time_of_day
db map_fade_out_music
db map_lcd_on
db map_load_objects
db map_palettes
db map_sprites
db map_fade_music
db map_fade_in_palettes
db map_animations_on
db map_wildmons
db map_update_roam
db map_end_setup_script
2015-02-11 14:01:04 -08:00
2015-11-11 20:38:57 -08:00
MapSetupScript_ReloadMap: ; 153e7
2015-10-24 16:49:19 -07:00
db map_fade
db map_clear_bg_palettes
db map_lcd_off
db map_sound_off
db map_load_blocks
db map_connection_blocks
db map_load_graphics
db map_time_of_day
db map_lcd_on
db map_palettes
db map_sprites
db map_music_force
db map_fade_in_palettes
db map_animations_on
db map_wildmons
db map_end_setup_script
2015-02-11 14:01:04 -08:00
2015-11-11 20:38:57 -08:00
MapSetupScript_LinkReturn: ; 153f7
2015-10-24 16:49:19 -07:00
db map_fade
db map_lcd_off
db map_sound_off
db map_change_callback
db map_load_blocks
db map_buffer_screen
db map_load_graphics
db map_time_of_day
db map_lcd_on
db map_palettes
db map_sprites
db map_bike_music
db map_fade_in_palettes
db map_animations_on
db map_wildmons
db map_text_scroll_off
db map_end_setup_script
2015-02-11 14:01:04 -08:00
2015-11-11 20:38:57 -08:00
MapSetupScript_Continue: ; 15408
2015-10-24 16:49:19 -07:00
db map_lcd_off
db map_sound_off
db map_attributes_2
db map_anchor_screen
db map_start_callback
db map_load_blocks
db map_connection_blocks
db map_buffer_screen
db map_load_graphics
db map_time_of_day
db map_lcd_on
db map_palettes
db map_sprites
db map_bike_music
db map_fade_in_palettes
db map_animations_on
db map_wildmons
db map_end_setup_script
2015-02-11 14:01:04 -08:00
2015-11-11 20:38:57 -08:00
MapSetupScript_Submenu: ; 1541a
2015-10-24 16:49:19 -07:00
db map_load_blocks
db map_connection_blocks
db map_end_setup_script
2015-02-11 14:01:04 -08:00
ReadMapSetupScript: ; 1541d
.loop
ld a, [hli]
cp -1
ret z
push hl
ld c, a
ld b, 0
ld hl, MapSetupCommands
2015-07-20 19:18:18 -07:00
rept 3
2015-02-11 14:01:04 -08:00
add hl, bc
2015-07-20 19:18:18 -07:00
endr
2015-02-11 14:01:04 -08:00
; bank
ld b, [hl]
inc hl
; address
ld a, [hli]
ld h, [hl]
ld l, a
; Bit 7 of the bank indicates a parameter.
; This is left unused.
bit 7, b
jr z, .go
pop de
ld a, [de]
ld c, a
inc de
push de
.go
ld a, b
and $7f
rst FarCall
pop hl
jr .loop
; 15440
MapSetupCommands: ; 15440
2015-11-03 16:43:47 -08:00
dba EnableLCD ; 00
dba DisableLCD ; 01
2015-11-11 20:38:57 -08:00
dba MapSetup_Sound_Off ; 02
2015-11-03 16:43:47 -08:00
dba PlayMapMusic ; 03
dba RestartMapMusic ; 04
dba FadeToMapMusic ; 05
dba FadeOutMapAndMusic ; 06
dba EnterMapMusic ; 07
dba ForceMapMusic ; 08
2015-11-05 11:06:03 -08:00
dba FadeInMusic ; 09
2015-11-03 16:43:47 -08:00
dba LoadBlockData ; 0a
dba LoadNeighboringBlockData ; 0b
dba SaveScreen ; 0c
dba BufferScreen ; 0d
dba LoadGraphics ; 0e
dba LoadTilesetHeader ; 0f
dba LoadMapTimeOfDay ; 10
dba LoadMapPalettes ; 11
dba LoadWildMonData ; 12
dba RefreshMapSprites ; 13
dba RunCallback_05_03 ; 14
dba RunCallback_03 ; 15
dba LoadObjectsRunCallback_02 ; 16
dba LoadSpawnPoint ; 17
dba EnterMapConnection ; 18
dba LoadWarpData ; 19
dba LoadMapAttributes ; 1a
dba LoadMapAttributes_IgnoreHidden ; 1b
2015-11-11 20:38:57 -08:00
dba ClearBGPalettes ; 1c
dba FadeOutPalettes ; 1d
dba FadeInPalettes ; 1e
2015-11-03 16:43:47 -08:00
dba GetCoordOfUpperLeftCorner ; 1f
dba RestoreFacingAfterWarp ; 20
dba SpawnInFacingDown ; 21
dba GetSpawnCoord ; 22
dba RefreshPlayerCoords ; 23
dba DelayClearingOldSprites ; 24
dba DelayLoadingNewSprites ; 25
dba UpdateRoamMons ; 26
dba JumpRoamMons ; 27
dba FadeOldMapMusic ; 28
dba ActivateMapAnims ; 29
dba SuspendMapAnims ; 2a
dba RetainOldPalettes ; 2b
dba DontScrollText ; 2c
dba ReturnFromMapSetupScript ; 2d
2015-02-11 14:01:04 -08:00
; 154ca
DontScrollText: ; 154ca
2015-02-11 14:01:04 -08:00
xor a
ld [wc2d7], a
ret
; 154cf
ActivateMapAnims: ; 154cf
2015-02-11 14:01:04 -08:00
ld a, $1
2015-11-05 11:06:03 -08:00
ld [hMapAnims], a
2015-02-11 14:01:04 -08:00
ret
; 154d3
SuspendMapAnims: ; 154d3
2015-02-11 14:01:04 -08:00
xor a
2015-11-05 11:06:03 -08:00
ld [hMapAnims], a
2015-02-11 14:01:04 -08:00
ret
; 154d7
LoadObjectsRunCallback_02: ; 154d7
2015-02-11 14:01:04 -08:00
ld a, $2
call RunMapCallback
2015-11-01 18:17:46 -08:00
callba LoadObjectMasks
2015-02-11 14:01:04 -08:00
callba Function8177
ret
; 154ea (5:54ea)
Function154ea: ; 154ea
ret
; 154eb
DelayClearingOldSprites: ; 154eb
2015-10-24 07:34:19 -07:00
ld hl, wPlayerSpriteSetupFlags
2015-02-11 14:01:04 -08:00
set 7, [hl]
ret
; 154f1
DelayLoadingNewSprites: ; 154f1
2015-10-24 07:34:19 -07:00
ld hl, wPlayerSpriteSetupFlags
2015-02-11 14:01:04 -08:00
set 6, [hl]
ret
Function154f7: ; 154f7
nop
call Function1550c
jr c, .ok
2015-02-11 14:01:04 -08:00
call Function1554e
jr c, .ok
2015-02-11 14:01:04 -08:00
call Function1551a
jr c, .ok
2015-02-11 14:01:04 -08:00
ret
.ok
2015-11-04 13:14:27 -08:00
call ReplaceKrisSprite
2015-02-11 14:01:04 -08:00
ret
Function1550c: ; 1550c (5:550c)
and a
ld hl, BikeFlags
bit 1, [hl]
ret z
ld a, PLAYER_BIKE
2015-02-11 14:01:04 -08:00
ld [PlayerState], a
scf
ret
Function1551a: ; 1551a (5:551a)
ld a, [PlayerState]
cp PLAYER_NORMAL
jr z, .nope
cp PLAYER_SLIP
jr z, .nope
cp PLAYER_SURF
jr z, .surfing
cp PLAYER_SURF_PIKA
jr z, .surfing
2015-02-11 14:01:04 -08:00
call GetMapPermission
cp $3
jr z, .checkbiking
2015-02-11 14:01:04 -08:00
cp $5
jr z, .checkbiking
2015-02-11 14:01:04 -08:00
cp $7
jr z, .checkbiking
jr .nope
.checkbiking
2015-02-11 14:01:04 -08:00
ld a, [PlayerState]
cp PLAYER_BIKE
jr nz, .nope
.surfing
ld a, PLAYER_NORMAL
2015-02-11 14:01:04 -08:00
ld [PlayerState], a
scf
ret
.nope
2015-02-11 14:01:04 -08:00
and a
ret
Function1554e: ; 1554e (5:554e)
call CheckOnWater
jr nz, .ret_nc
2015-02-11 14:01:04 -08:00
ld a, [PlayerState]
cp PLAYER_SURF
jr z, .surfing
cp PLAYER_SURF_PIKA
jr z, .surfing
ld a, PLAYER_SURF
2015-02-11 14:01:04 -08:00
ld [PlayerState], a
.surfing
2015-02-11 14:01:04 -08:00
scf
ret
.ret_nc
2015-02-11 14:01:04 -08:00
and a
ret
; 15567
FadeOldMapMusic: ; 15567
2015-02-11 14:01:04 -08:00
ld a, 6
call SkipMusic
ret
; 1556d
RetainOldPalettes: ; 1556d
2015-02-11 14:01:04 -08:00
callba _UpdateTimePals
ret
FadeOutMapAndMusic: ; 15574
2015-02-11 14:01:04 -08:00
ld e, 0
ld a, [MusicFadeIDLo]
ld d, 0
ld a, [MusicFadeIDHi]
ld a, $4
ld [MusicFade], a
call FadeToWhite
2015-02-11 14:01:04 -08:00
ret
; 15587
ForceMapMusic: ; 15587
2015-02-11 14:01:04 -08:00
ld a, [PlayerState]
cp PLAYER_BIKE
jr nz, .notbiking
2015-02-11 14:01:04 -08:00
call VolumeOff
ld a, $88
ld [MusicFade], a
.notbiking
2015-07-20 22:52:46 -07:00
call TryRestartMapMusic
2015-02-11 14:01:04 -08:00
ret
; 1559a