2015-02-11 22:01:04 +00:00
|
|
|
RunMapSetupScript:: ; 15363
|
2015-10-07 17:19:41 +00:00
|
|
|
ld a, [hMapEntryMethod]
|
2015-02-11 22:01:04 +00:00
|
|
|
and $f
|
|
|
|
dec a
|
|
|
|
ld c, a
|
|
|
|
ld b, 0
|
|
|
|
ld hl, MapSetupScripts
|
|
|
|
add hl, bc
|
2015-12-27 02:59:03 +00:00
|
|
|
add hl, bc
|
2015-02-11 22:01:04 +00:00
|
|
|
ld a, [hli]
|
|
|
|
ld h, [hl]
|
|
|
|
ld l, a
|
|
|
|
call ReadMapSetupScript
|
|
|
|
ret
|
|
|
|
; 15377
|
|
|
|
|
2017-12-27 06:29:15 +00:00
|
|
|
INCLUDE "data/maps/setup_scripts.asm"
|
2015-02-11 22:01:04 +00:00
|
|
|
|
|
|
|
ReadMapSetupScript: ; 1541d
|
|
|
|
.loop
|
|
|
|
ld a, [hli]
|
|
|
|
cp -1
|
|
|
|
ret z
|
|
|
|
|
|
|
|
push hl
|
|
|
|
|
|
|
|
ld c, a
|
|
|
|
ld b, 0
|
|
|
|
ld hl, MapSetupCommands
|
|
|
|
add hl, bc
|
2016-05-10 16:31:49 +00:00
|
|
|
add hl, bc
|
|
|
|
add hl, bc
|
2015-02-11 22:01:04 +00: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
|
2017-12-26 22:47:05 +00:00
|
|
|
; entries correspond to command indexes in constants/map_setup_constants.asm
|
2015-11-04 00:43:47 +00:00
|
|
|
dba EnableLCD ; 00
|
|
|
|
dba DisableLCD ; 01
|
2015-11-12 04:38:57 +00:00
|
|
|
dba MapSetup_Sound_Off ; 02
|
2015-11-04 00:43:47 +00:00
|
|
|
dba PlayMapMusic ; 03
|
|
|
|
dba RestartMapMusic ; 04
|
|
|
|
dba FadeToMapMusic ; 05
|
2015-11-20 16:47:52 +00:00
|
|
|
dba RotatePalettesRightMapAndMusic ; 06
|
2015-11-04 00:43:47 +00:00
|
|
|
dba EnterMapMusic ; 07
|
|
|
|
dba ForceMapMusic ; 08
|
2015-12-02 02:54:11 +00:00
|
|
|
dba FadeInMusic ; 09
|
2016-04-02 13:28:46 +00:00
|
|
|
dba LoadBlockData ; 0a (callback 1)
|
2015-11-04 00:43:47 +00:00
|
|
|
dba LoadNeighboringBlockData ; 0b
|
|
|
|
dba SaveScreen ; 0c
|
|
|
|
dba BufferScreen ; 0d
|
|
|
|
dba LoadGraphics ; 0e
|
2017-12-26 17:50:32 +00:00
|
|
|
dba LoadTileset ; 0f
|
2015-11-04 00:43:47 +00:00
|
|
|
dba LoadMapTimeOfDay ; 10
|
2018-01-02 16:47:58 +00:00
|
|
|
dba Special_LoadMapPalettes ; 11
|
2015-11-04 00:43:47 +00:00
|
|
|
dba LoadWildMonData ; 12
|
|
|
|
dba RefreshMapSprites ; 13
|
2016-05-17 12:40:42 +00:00
|
|
|
dba HandleNewMap ; 14
|
|
|
|
dba InitCommandQueue ; 15
|
2015-11-04 00:43:47 +00:00
|
|
|
dba LoadObjectsRunCallback_02 ; 16
|
|
|
|
dba LoadSpawnPoint ; 17
|
|
|
|
dba EnterMapConnection ; 18
|
|
|
|
dba LoadWarpData ; 19
|
|
|
|
dba LoadMapAttributes ; 1a
|
2015-11-12 16:10:19 +00:00
|
|
|
dba LoadMapAttributes_SkipPeople ; 1b
|
2015-11-12 04:38:57 +00:00
|
|
|
dba ClearBGPalettes ; 1c
|
2018-01-02 16:13:57 +00:00
|
|
|
dba Special_FadeOutPalettes ; 1d
|
|
|
|
dba Special_FadeInPalettes ; 1e
|
2015-11-04 00:43:47 +00:00
|
|
|
dba GetCoordOfUpperLeftCorner ; 1f
|
|
|
|
dba RestoreFacingAfterWarp ; 20
|
|
|
|
dba SpawnInFacingDown ; 21
|
2016-01-11 07:36:39 +00:00
|
|
|
dba SpawnPlayer ; 22
|
2015-11-04 00:43:47 +00:00
|
|
|
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 22:01:04 +00:00
|
|
|
; 154ca
|
|
|
|
|
|
|
|
|
2015-07-20 07:51:52 +00:00
|
|
|
DontScrollText: ; 154ca
|
2015-02-11 22:01:04 +00:00
|
|
|
xor a
|
2016-05-05 19:07:37 +00:00
|
|
|
ld [wDisableTextAcceleration], a
|
2015-02-11 22:01:04 +00:00
|
|
|
ret
|
|
|
|
; 154cf
|
|
|
|
|
2015-07-20 07:51:52 +00:00
|
|
|
ActivateMapAnims: ; 154cf
|
2015-02-11 22:01:04 +00:00
|
|
|
ld a, $1
|
2015-11-05 19:06:03 +00:00
|
|
|
ld [hMapAnims], a
|
2015-02-11 22:01:04 +00:00
|
|
|
ret
|
|
|
|
; 154d3
|
|
|
|
|
2015-07-20 07:51:52 +00:00
|
|
|
SuspendMapAnims: ; 154d3
|
2015-02-11 22:01:04 +00:00
|
|
|
xor a
|
2015-11-05 19:06:03 +00:00
|
|
|
ld [hMapAnims], a
|
2015-02-11 22:01:04 +00:00
|
|
|
ret
|
|
|
|
; 154d7
|
|
|
|
|
2015-07-20 07:51:52 +00:00
|
|
|
LoadObjectsRunCallback_02: ; 154d7
|
2016-01-06 12:44:50 +00:00
|
|
|
ld a, MAPCALLBACK_OBJECTS
|
2015-07-20 07:51:52 +00:00
|
|
|
call RunMapCallback
|
2017-12-24 17:47:30 +00:00
|
|
|
farcall LoadObjectMasks
|
|
|
|
farcall InitializeVisibleSprites
|
2015-02-11 22:01:04 +00:00
|
|
|
ret
|
|
|
|
; 154ea (5:54ea)
|
|
|
|
|
2018-01-02 15:04:21 +00:00
|
|
|
; unused
|
2015-02-11 22:01:04 +00:00
|
|
|
ret
|
|
|
|
; 154eb
|
|
|
|
|
2015-07-20 07:51:52 +00:00
|
|
|
DelayClearingOldSprites: ; 154eb
|
2015-10-24 14:34:19 +00:00
|
|
|
ld hl, wPlayerSpriteSetupFlags
|
2018-01-22 19:34:55 +00:00
|
|
|
set PLAYERSPRITESETUP_RESET_ACTION_F, [hl]
|
2015-02-11 22:01:04 +00:00
|
|
|
ret
|
|
|
|
; 154f1
|
|
|
|
|
2015-07-20 07:51:52 +00:00
|
|
|
DelayLoadingNewSprites: ; 154f1
|
2015-10-24 14:34:19 +00:00
|
|
|
ld hl, wPlayerSpriteSetupFlags
|
2018-01-22 19:34:55 +00:00
|
|
|
set PLAYERSPRITESETUP_SKIP_RELOAD_GFX_F, [hl]
|
2015-02-11 22:01:04 +00:00
|
|
|
ret
|
|
|
|
|
2015-11-12 16:10:19 +00:00
|
|
|
CheckReplaceKrisSprite: ; 154f7
|
2015-02-11 22:01:04 +00:00
|
|
|
nop
|
2015-11-12 16:10:19 +00:00
|
|
|
call .CheckBiking
|
2015-07-20 07:51:52 +00:00
|
|
|
jr c, .ok
|
2015-11-12 16:10:19 +00:00
|
|
|
call .CheckSurfing
|
2015-07-20 07:51:52 +00:00
|
|
|
jr c, .ok
|
2015-11-12 16:10:19 +00:00
|
|
|
call .CheckSurfing2
|
2015-07-20 07:51:52 +00:00
|
|
|
jr c, .ok
|
2015-02-11 22:01:04 +00:00
|
|
|
ret
|
2015-11-12 16:10:19 +00:00
|
|
|
|
2015-07-20 07:51:52 +00:00
|
|
|
.ok
|
2015-11-04 21:14:27 +00:00
|
|
|
call ReplaceKrisSprite
|
2015-02-11 22:01:04 +00:00
|
|
|
ret
|
|
|
|
|
2015-11-12 16:10:19 +00:00
|
|
|
.CheckBiking: ; 1550c (5:550c)
|
2015-02-11 22:01:04 +00:00
|
|
|
and a
|
2017-12-28 12:15:46 +00:00
|
|
|
ld hl, wBikeFlags
|
2018-01-22 18:57:44 +00:00
|
|
|
bit BIKEFLAGS_ALWAYS_ON_BIKE_F, [hl]
|
2015-02-11 22:01:04 +00:00
|
|
|
ret z
|
2015-07-20 07:51:52 +00:00
|
|
|
ld a, PLAYER_BIKE
|
2015-02-11 22:01:04 +00:00
|
|
|
ld [PlayerState], a
|
|
|
|
scf
|
|
|
|
ret
|
|
|
|
|
2015-11-12 16:10:19 +00:00
|
|
|
.CheckSurfing2: ; 1551a (5:551a)
|
2015-02-11 22:01:04 +00:00
|
|
|
ld a, [PlayerState]
|
2015-07-20 07:51:52 +00:00
|
|
|
cp PLAYER_NORMAL
|
|
|
|
jr z, .nope
|
2017-12-16 04:29:42 +00:00
|
|
|
cp PLAYER_SKATE
|
2015-07-20 07:51:52 +00:00
|
|
|
jr z, .nope
|
|
|
|
cp PLAYER_SURF
|
|
|
|
jr z, .surfing
|
|
|
|
cp PLAYER_SURF_PIKA
|
|
|
|
jr z, .surfing
|
2017-12-24 18:08:38 +00:00
|
|
|
call GetMapEnvironment
|
2015-11-12 16:10:19 +00:00
|
|
|
cp INDOOR
|
2015-07-20 07:51:52 +00:00
|
|
|
jr z, .checkbiking
|
2017-12-24 18:08:38 +00:00
|
|
|
cp ENVIRONMENT_5
|
2015-07-20 07:51:52 +00:00
|
|
|
jr z, .checkbiking
|
2015-11-12 16:10:19 +00:00
|
|
|
cp DUNGEON
|
2015-07-20 07:51:52 +00:00
|
|
|
jr z, .checkbiking
|
|
|
|
jr .nope
|
|
|
|
.checkbiking
|
2015-02-11 22:01:04 +00:00
|
|
|
ld a, [PlayerState]
|
2015-07-20 07:51:52 +00:00
|
|
|
cp PLAYER_BIKE
|
|
|
|
jr nz, .nope
|
|
|
|
.surfing
|
|
|
|
ld a, PLAYER_NORMAL
|
2015-02-11 22:01:04 +00:00
|
|
|
ld [PlayerState], a
|
|
|
|
scf
|
|
|
|
ret
|
2015-11-12 16:10:19 +00:00
|
|
|
|
2015-07-20 07:51:52 +00:00
|
|
|
.nope
|
2015-02-11 22:01:04 +00:00
|
|
|
and a
|
|
|
|
ret
|
|
|
|
|
2015-11-12 16:10:19 +00:00
|
|
|
.CheckSurfing: ; 1554e (5:554e)
|
2015-07-23 07:41:52 +00:00
|
|
|
call CheckOnWater
|
2015-07-20 07:51:52 +00:00
|
|
|
jr nz, .ret_nc
|
2015-02-11 22:01:04 +00:00
|
|
|
ld a, [PlayerState]
|
2015-07-20 07:51:52 +00:00
|
|
|
cp PLAYER_SURF
|
2015-11-12 16:10:19 +00:00
|
|
|
jr z, ._surfing
|
2015-07-20 07:51:52 +00:00
|
|
|
cp PLAYER_SURF_PIKA
|
2015-11-12 16:10:19 +00:00
|
|
|
jr z, ._surfing
|
2015-07-20 07:51:52 +00:00
|
|
|
ld a, PLAYER_SURF
|
2015-02-11 22:01:04 +00:00
|
|
|
ld [PlayerState], a
|
2015-11-12 16:10:19 +00:00
|
|
|
._surfing
|
2015-02-11 22:01:04 +00:00
|
|
|
scf
|
|
|
|
ret
|
2015-07-20 07:51:52 +00:00
|
|
|
.ret_nc
|
2015-02-11 22:01:04 +00:00
|
|
|
and a
|
|
|
|
ret
|
|
|
|
; 15567
|
|
|
|
|
2015-07-20 07:51:52 +00:00
|
|
|
FadeOldMapMusic: ; 15567
|
2015-02-11 22:01:04 +00:00
|
|
|
ld a, 6
|
|
|
|
call SkipMusic
|
|
|
|
ret
|
|
|
|
; 1556d
|
|
|
|
|
2015-07-20 07:51:52 +00:00
|
|
|
RetainOldPalettes: ; 1556d
|
2018-01-02 17:49:25 +00:00
|
|
|
farcall _UpdateTimePals
|
2015-02-11 22:01:04 +00:00
|
|
|
ret
|
|
|
|
|
2015-11-20 16:47:52 +00:00
|
|
|
RotatePalettesRightMapAndMusic: ; 15574
|
2015-02-11 22:01:04 +00:00
|
|
|
ld e, 0
|
2017-12-09 18:52:14 +00:00
|
|
|
ld a, [MusicFadeID]
|
2015-02-11 22:01:04 +00:00
|
|
|
ld d, 0
|
2017-12-09 18:52:14 +00:00
|
|
|
ld a, [MusicFadeID + 1]
|
2015-02-11 22:01:04 +00:00
|
|
|
ld a, $4
|
|
|
|
ld [MusicFade], a
|
2015-11-20 16:47:52 +00:00
|
|
|
call RotateThreePalettesRight
|
2015-02-11 22:01:04 +00:00
|
|
|
ret
|
|
|
|
; 15587
|
|
|
|
|
2015-07-20 07:51:52 +00:00
|
|
|
ForceMapMusic: ; 15587
|
2015-02-11 22:01:04 +00:00
|
|
|
ld a, [PlayerState]
|
2015-07-20 07:51:52 +00:00
|
|
|
cp PLAYER_BIKE
|
|
|
|
jr nz, .notbiking
|
2015-02-11 22:01:04 +00:00
|
|
|
call VolumeOff
|
|
|
|
ld a, $88
|
|
|
|
ld [MusicFade], a
|
2015-07-20 07:51:52 +00:00
|
|
|
.notbiking
|
2015-07-21 05:52:46 +00:00
|
|
|
call TryRestartMapMusic
|
2015-02-11 22:01:04 +00:00
|
|
|
ret
|
|
|
|
; 1559a
|