summaryrefslogtreecommitdiff
path: root/engine/map_setup.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/map_setup.asm')
-rw-r--r--engine/map_setup.asm489
1 files changed, 489 insertions, 0 deletions
diff --git a/engine/map_setup.asm b/engine/map_setup.asm
new file mode 100644
index 000000000..8c10954b3
--- /dev/null
+++ b/engine/map_setup.asm
@@ -0,0 +1,489 @@
+
+RunMapSetupScript:: ; 15363
+ ld a, [$ff9f]
+ and $f
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, MapSetupScripts
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call ReadMapSetupScript
+ ret
+; 15377
+
+MapSetupScripts: ; 15377
+ dw MapSetupScript1
+ dw MapSetupScript2
+ dw MapSetupScript3
+ dw MapSetupScript4
+ dw MapSetupScript5
+ dw MapSetupScript6
+ dw MapSetupScript7
+ dw MapSetupScript8
+ dw MapSetupScript9
+ dw MapSetupScript10
+ dw MapSetupScript11
+ dw MapSetupScript12
+; 1538f
+
+
+; Command descriptions from Condensation water's scripting compendium.
+ const_def
+ const map_lcd_on ; 00 = Turn LCD on
+ const map_lcd_off ; 01 = Turn LCD off
+ const map_sound_off ; 02 = Turn speakers off
+ const map_music ; 03 = Music check for current map/ special check for bug catcher contest
+ const map_start_music ; 04 = Start map music anew
+ const map_fade_music ; 05 = Music check for current map / special check for Bug Contest/ music with FadeOut (old) and FadeIn
+ const map_fade ; 06 = Fade out music + screen
+ const map_bike_music ; 07 = If HIRO is on bike = bike music, else play map music
+ const map_music_force ; 08 = Play map music
+ const map_max_volume ; 09 = Turn music to highest volume
+ const map_load_blocks ; 0A = Write map data to MapRAM
+ const map_connection_blocks ; 0B = Compute map’s connection pars and write into MapRAM
+ const map_save_screen ; 0C = Write current part of map into temporary memory
+ const map_buffer_screen ; 0D = Write current part of map into read-from memory
+ const map_load_graphics ; 0E = Write tileset header to ram/ load tileset/ load sprite tiles/ load special tiles
+ const map_load_tileset_header ; 0F = Write tileset header to ram
+ const map_time_of_day ; 10 = Compute time of day/ Update screen
+ const map_palettes ; 11 = Load map palettes
+ const map_wildmons ; 12 = Load probabilities for wild Pokémon battles
+ const map_sprites ; 13 = Delete sprite data and draw new sprites
+ const map_change_callback ; 14 = Check 2nd script header for 05 and 03 callbacks
+ const map_start_callback ; 15 = Check 2nd script header for 03 callbacks
+ const map_load_objects ; 16 = Analyze people data anew and check 2nd script header for 02 callbacks
+ const map_load_spawn ; 17 = Writes arrival data for arrival by flying/Blackout from table 05:5319 to ram
+ const map_load_connection ; 18 = Writes arrival data for entering a map by connection to ram
+ const map_load_warp ; 19 = Write warp data to ram when entering warp
+ const map_attributes ; 1A = Load complete map data (primary, secondary, event, script headers)
+ const map_attributes_2 ; 1B = Same as 1A, but some settings aren’t loaded new from the rom, such as hide function of the people events
+ const map_clear_bg_palettes ; 1C = Fill palette data with FFFF (=white)
+ const map_fade_out_palettes ; 1D = All BG pallet color are converted to 0|0 (Pal0, Col0), all sprite colors to x|0 (FadeOut)
+ const map_fade_in_palettes ; 1E = Palette FadeIn
+ const map_anchor_screen ; 1F = Compute position of upper left-most block visible on screen
+ const map_warp_face ; 20 = Position computation when HIRO leaves a warp
+ const map_face_down ; 21 = Set HIRO’s facing to “down”
+ const map_spawn_coord ; 22 = Prepare HIRO data for arrival by flight
+ const map_player_coord ; 23 = Compute HIRO x/y data anew
+ const map_prolong_sprites ; 24 = Prolong old sprites before removing them
+ const map_delay_sprites ; 25 = Delay rendering new sprites
+ const map_update_roam ; 26 = Compute chances to meet Raikou, Entei or Suicune
+ const map_keep_roam ; 27 = Recover chances to meet Raikou, Entei or Suicune
+ const map_fade_out_music ; 28 = Temporarily stop music playing
+ const map_animations_on ; 29 = Activate animations
+ const map_animations_off ; 2A = Deactivate animations
+ const map_keep_palettes ; 2B = Recover all palettes
+ const map_text_scroll_off ; 2C = Turn off text scroll (for town name overlays)
+ const map_stop_script ; 2D = Deactivate code prolonging
+
+
+MapSetupScript4: ; 1538f
+ db map_prolong_sprites
+
+MapSetupScript12: ; 15390
+ db map_fade_out_palettes
+ db map_keep_roam
+
+MapSetupScript1: ; 15392
+ 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 -1
+
+MapSetupScript11: ; 153a9
+ 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 -1
+
+MapSetupScript7: ; 153bf
+ 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 -1
+
+MapSetupScript6: ; 153d0
+ db map_prolong_sprites
+
+MapSetupScript5: ; 153d1
+ db map_fade_out_palettes
+
+MapSetupScript9: ; 153d2
+ 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 -1
+
+MapSetupScript3: ; 153e7
+ 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 -1
+
+MapSetupScript8: ; 153f7
+ 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 -1
+
+MapSetupScript2: ; 15408
+ 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 -1
+
+MapSetupScript10: ; 1541a
+ db map_load_blocks
+ db map_connection_blocks
+ db -1
+
+
+ReadMapSetupScript: ; 1541d
+.loop
+ ld a, [hli]
+ cp -1
+ ret z
+
+ push hl
+
+ ld c, a
+ ld b, 0
+ ld hl, MapSetupCommands
+ add hl, bc
+ add hl, bc
+ add hl, bc
+
+ ; 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
+ dbw BANK(EnableLCD), EnableLCD
+ dbw BANK(DisableLCD), DisableLCD
+ dbw BANK(SoundRestart), SoundRestart
+ dbw BANK(PlayMapMusic), PlayMapMusic
+ dbw BANK(RestartMapMusic), RestartMapMusic
+ dbw BANK(FadeToMapMusic), FadeToMapMusic
+ dbw BANK(Function15574), Function15574
+ dbw BANK(EnterMapMusic), EnterMapMusic
+ dbw BANK(Function15587), Function15587
+ dbw BANK(Function3cae), Function3cae
+ dbw BANK(Function24cd), Function24cd
+ dbw BANK(Function28e3), Function28e3
+ dbw BANK(Function289d), Function289d
+ dbw BANK(Function2879), Function2879
+ dbw BANK(Function1047cf), Function1047cf
+ dbw BANK(LoadTilesetHeader), LoadTilesetHeader
+ dbw BANK(Function104750), Function104750
+ dbw BANK(Function1047eb), Function1047eb
+ dbw BANK(Function29ff8), Function29ff8
+ dbw BANK(Function1047f0), Function1047f0
+ dbw BANK(Function1045b0), Function1045b0
+ dbw BANK(Function1045c4), Function1045c4
+ dbw BANK(Function154d7), Function154d7
+ dbw BANK(LoadSpawnPoint), LoadSpawnPoint
+ dbw BANK(EnterMapConnection), EnterMapConnection
+ dbw BANK(Function1046c6), Function1046c6
+ dbw BANK(Function2309), Function2309
+ dbw BANK(Function2317), Function2317
+ dbw BANK(WhiteBGMap), WhiteBGMap
+ dbw BANK(Function8c084), Function8c084
+ dbw BANK(Function8c079), Function8c079
+ dbw BANK(Function10486d), Function10486d
+ dbw BANK(Function248a), Function248a
+ dbw BANK(Function57d9), Function57d9
+ dbw BANK(Function8029), Function8029
+ dbw BANK(Function80b8), Function80b8
+ dbw BANK(Function154eb), Function154eb
+ dbw BANK(Function154f1), Function154f1
+ dbw BANK(Function2a30d), Function2a30d
+ dbw BANK(Function2a394), Function2a394
+ dbw BANK(Function15567), Function15567
+ dbw BANK(Function154cf), Function154cf
+ dbw BANK(Function154d3), Function154d3
+ dbw BANK(Function1556d), Function1556d
+ dbw BANK(Function154ca), Function154ca
+ dbw BANK(Functionb8000), Functionb8000
+; 154ca
+
+
+Function154ca: ; 154ca
+ xor a
+ ld [wc2d7], a
+ ret
+; 154cf
+
+Function154cf: ; 154cf
+ ld a, $1
+ ld [$ffde], a
+ ret
+; 154d3
+
+Function154d3: ; 154d3
+ xor a
+ ld [$ffde], a
+ ret
+; 154d7
+
+Function154d7: ; 154d7
+ ld a, $2
+ call Function263b
+ callba Function2454f
+ callba Function8177
+ ret
+; 154ea (5:54ea)
+
+Function154ea: ; 154ea
+ ret
+; 154eb
+
+Function154eb: ; 154eb
+ ld hl, wd45b
+ set 7, [hl]
+ ret
+; 154f1
+
+Function154f1: ; 154f1
+ ld hl, wd45b
+ set 6, [hl]
+ ret
+
+Function154f7: ; 154f7
+ nop
+ call Function1550c
+ jr c, .asm_15508
+ call Function1554e
+ jr c, .asm_15508
+ call Function1551a
+ jr c, .asm_15508
+ ret
+.asm_15508
+ call Functione4a
+ ret
+
+Function1550c: ; 1550c (5:550c)
+ and a
+ ld hl, BikeFlags
+ bit 1, [hl]
+ ret z
+ ld a, $1
+ ld [PlayerState], a
+ scf
+ ret
+
+Function1551a: ; 1551a (5:551a)
+ ld a, [PlayerState]
+ cp $0
+ jr z, .asm_1554c
+ cp $2
+ jr z, .asm_1554c
+ cp $4
+ jr z, .asm_15545
+ cp $8
+ jr z, .asm_15545
+ call GetMapPermission
+ cp $3
+ jr z, .asm_1553e
+ cp $5
+ jr z, .asm_1553e
+ cp $7
+ jr z, .asm_1553e
+ jr .asm_1554c
+.asm_1553e
+ ld a, [PlayerState]
+ cp $1
+ jr nz, .asm_1554c
+.asm_15545
+ ld a, $0
+ ld [PlayerState], a
+ scf
+ ret
+.asm_1554c
+ and a
+ ret
+
+Function1554e: ; 1554e (5:554e)
+ call Function1852
+ jr nz, .asm_15565
+ ld a, [PlayerState]
+ cp $4
+ jr z, .asm_15563
+ cp $8
+ jr z, .asm_15563
+ ld a, $4
+ ld [PlayerState], a
+.asm_15563
+ scf
+ ret
+.asm_15565
+ and a
+ ret
+; 15567
+
+Function15567: ; 15567
+ ld a, 6
+ call SkipMusic
+ ret
+; 1556d
+
+Function1556d: ; 1556d
+ callba _UpdateTimePals
+ ret
+
+Function15574: ; 15574
+ ld e, 0
+ ld a, [MusicFadeIDLo]
+ ld d, 0
+ ld a, [MusicFadeIDHi]
+ ld a, $4
+ ld [MusicFade], a
+ call Function4b6
+ ret
+; 15587
+
+Function15587: ; 15587
+ ld a, [PlayerState]
+ cp $1
+ jr nz, .asm_15596
+ call VolumeOff
+ ld a, $88
+ ld [MusicFade], a
+.asm_15596
+ call Function3d2f
+ ret
+; 1559a