pokecrystal/engine/overworld/map_setup.asm

201 lines
2.6 KiB
NASM
Raw Normal View History

2018-06-24 14:09:41 +00:00
RunMapSetupScript::
ldh 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
INCLUDE "data/maps/setup_scripts.asm"
2015-02-11 22:01:04 +00:00
2018-06-24 14:09:41 +00:00
ReadMapSetupScript:
2015-02-11 22:01:04 +00:00
.loop
ld a, [hli]
cp map_end_command
2015-02-11 22:01:04 +00:00
ret z
push hl
ld c, a
ld b, 0
ld hl, MapSetupCommands
add hl, bc
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
INCLUDE "data/maps/setup_script_pointers.asm"
2015-02-11 22:01:04 +00:00
EnableTextAcceleration:
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
2018-06-24 14:09:41 +00:00
ActivateMapAnims:
ld a, TRUE
ldh [hMapAnims], a
2015-02-11 22:01:04 +00:00
ret
2018-06-24 14:09:41 +00:00
SuspendMapAnims:
xor a ; FALSE
ldh [hMapAnims], a
2015-02-11 22:01:04 +00:00
ret
LoadMapObjects:
2016-01-06 12:44:50 +00:00
ld a, MAPCALLBACK_OBJECTS
call RunMapCallback
2017-12-24 17:47:30 +00:00
farcall LoadObjectMasks
farcall InitializeVisibleSprites
2015-02-11 22:01:04 +00:00
ret
2018-01-02 15:04:21 +00:00
; unused
2015-02-11 22:01:04 +00:00
ret
ResetPlayerObjectAction:
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
SkipUpdateMapSprites:
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
CheckUpdatePlayerSprite:
2015-02-11 22:01:04 +00:00
nop
2015-11-12 16:10:19 +00:00
call .CheckBiking
jr c, .ok
2015-11-12 16:10:19 +00:00
call .CheckSurfing
jr c, .ok
2015-11-12 16:10:19 +00:00
call .CheckSurfing2
jr c, .ok
2015-02-11 22:01:04 +00:00
ret
2015-11-12 16:10:19 +00:00
.ok
call UpdatePlayerSprite
2015-02-11 22:01:04 +00:00
ret
2018-06-24 14:09:41 +00:00
.CheckBiking:
2015-02-11 22:01:04 +00:00
and a
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
ld a, PLAYER_BIKE
2018-01-23 22:39:09 +00:00
ld [wPlayerState], a
2015-02-11 22:01:04 +00:00
scf
ret
2018-06-24 14:09:41 +00:00
.CheckSurfing2:
2018-01-23 22:39:09 +00:00
ld a, [wPlayerState]
cp PLAYER_NORMAL
jr z, .nope
cp PLAYER_SKATE
jr z, .nope
cp PLAYER_SURF
jr z, .surfing
cp PLAYER_SURF_PIKA
jr z, .surfing
call GetMapEnvironment
2015-11-12 16:10:19 +00:00
cp INDOOR
2019-12-03 14:17:21 +00:00
jr z, .no_biking
cp ENVIRONMENT_5
2019-12-03 14:17:21 +00:00
jr z, .no_biking
2015-11-12 16:10:19 +00:00
cp DUNGEON
2019-12-03 14:17:21 +00:00
jr z, .no_biking
jr .nope
2019-12-03 14:17:21 +00:00
.no_biking
2018-01-23 22:39:09 +00:00
ld a, [wPlayerState]
cp PLAYER_BIKE
jr nz, .nope
.surfing
ld a, PLAYER_NORMAL
2018-01-23 22:39:09 +00:00
ld [wPlayerState], a
2015-02-11 22:01:04 +00:00
scf
ret
2015-11-12 16:10:19 +00:00
.nope
2015-02-11 22:01:04 +00:00
and a
ret
2018-06-24 14:09:41 +00:00
.CheckSurfing:
call CheckOnWater
2019-12-03 14:17:21 +00:00
jr nz, .nope2
2018-01-23 22:39:09 +00:00
ld a, [wPlayerState]
cp PLAYER_SURF
2019-12-03 14:17:21 +00:00
jr z, .is_surfing
cp PLAYER_SURF_PIKA
2019-12-03 14:17:21 +00:00
jr z, .is_surfing
ld a, PLAYER_SURF
2018-01-23 22:39:09 +00:00
ld [wPlayerState], a
2019-12-03 14:17:21 +00:00
.is_surfing
2015-02-11 22:01:04 +00:00
scf
ret
2019-12-03 14:17:21 +00:00
.nope2
2015-02-11 22:01:04 +00:00
and a
ret
FadeOutMapMusic:
2015-02-11 22:01:04 +00:00
ld a, 6
call SkipMusic
ret
ApplyMapPalettes:
2018-01-02 17:49:25 +00:00
farcall _UpdateTimePals
2015-02-11 22:01:04 +00:00
ret
FadeMapMusicAndPalettes:
2020-04-17 14:52:59 +00:00
ld e, LOW(MUSIC_NONE)
2018-01-23 22:39:09 +00:00
ld a, [wMusicFadeID]
2020-04-17 14:52:59 +00:00
ld d, HIGH(MUSIC_NONE)
2018-01-23 22:39:09 +00:00
ld a, [wMusicFadeID + 1]
2015-02-11 22:01:04 +00:00
ld a, $4
2018-01-23 22:39:09 +00:00
ld [wMusicFade], a
2015-11-20 16:47:52 +00:00
call RotateThreePalettesRight
2015-02-11 22:01:04 +00:00
ret
2018-06-24 14:09:41 +00:00
ForceMapMusic:
2018-01-23 22:39:09 +00:00
ld a, [wPlayerState]
cp PLAYER_BIKE
jr nz, .notbiking
call MinVolume
2015-02-11 22:01:04 +00:00
ld a, $88
2018-01-23 22:39:09 +00:00
ld [wMusicFade], a
.notbiking
2015-07-21 05:52:46 +00:00
call TryRestartMapMusic
2015-02-11 22:01:04 +00:00
ret