summaryrefslogtreecommitdiff
path: root/engine/overworld/elevator.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/overworld/elevator.asm')
-rwxr-xr-xengine/overworld/elevator.asm42
1 files changed, 22 insertions, 20 deletions
diff --git a/engine/overworld/elevator.asm b/engine/overworld/elevator.asm
index 3a23d410..7ff4ff71 100755
--- a/engine/overworld/elevator.asm
+++ b/engine/overworld/elevator.asm
@@ -1,46 +1,48 @@
-ShakeElevator: ; 7bf15 (1e:7f15)
- ld de, $ffe0
- call Func_7bf64
- ld de, $240
- call Func_7bf64
+ShakeElevator:
+ ld de, -$20
+ call ShakeElevatorRedrawRow
+ ld de, SCREEN_HEIGHT * $20
+ call ShakeElevatorRedrawRow
call Delay3
ld a, $ff
call PlaySound
ld a, [hSCY]
ld d, a
ld e, $1
- ; number of times to play collision sfx
- ld b, $64
-.asm_7bf30
+ ld b, 100
+.shakeLoop ; scroll the BG up and down and play a sound effect
ld a, e
xor $fe
ld e, a
add d
ld [hSCY], a
push bc
- ld c, BANK(SFX_02_5b)
- ld a, (SFX_02_5b - SFX_Headers_02) / 3
+ ld c, BANK(SFX_Collision_1)
+ ld a, SFX_COLLISION
call PlayMusic
pop bc
- ld c, $2
+ ld c, 2
call DelayFrames
dec b
- jr nz, .asm_7bf30
+ jr nz, .shakeLoop
ld a, d
ld [hSCY], a
ld a, $ff
call PlaySound
- ld c, BANK(SFX_02_5f)
- ld a, (SFX_02_5f - SFX_Headers_02) / 3
+ ld c, BANK(SFX_Safari_Zone_PA)
+ ld a, SFX_SAFARI_ZONE_PA
call PlayMusic
-.asm_7bf57
- ld a, [wc02a]
- cp $b9
- jr z, .asm_7bf57
+.musicLoop
+ ld a, [wChannelSoundIDs + Ch4]
+ cp SFX_SAFARI_ZONE_PA
+ jr z, .musicLoop
call UpdateSprites
jp PlayDefaultMusic
-Func_7bf64: ; 7bf64 (1e:7f64)
+ShakeElevatorRedrawRow:
+; This function is used to redraw certain portions of the screen, but it does
+; not appear to ever result in any visible effect, so this function seems to
+; be pointless.
ld hl, wMapViewVRAMPointer + 1
ld a, [hld]
push af
@@ -54,7 +56,7 @@ Func_7bf64: ; 7bf64 (1e:7f64)
add hl, de
ld a, h
and $3
- or $98
+ or vBGMap0 / $100
ld d, a
ld a, l
pop hl