diff options
Diffstat (limited to 'engine/overworld/elevator.asm')
-rwxr-xr-x | engine/overworld/elevator.asm | 42 |
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 |