diff options
author | U-Fish-PC\Daniel <corrnondacqb@yahoo.com> | 2014-05-22 18:13:20 -0400 |
---|---|---|
committer | U-Fish-PC\Daniel <corrnondacqb@yahoo.com> | 2014-05-22 18:13:20 -0400 |
commit | 15427f532085846ab6b51719be687951a094cb6c (patch) | |
tree | edea9b189e91641a12dd521756894df84aeeace7 /engine/overworld/elevator.asm | |
parent | ea3ba4cde3706b7c77efb705555ec0c86321cbe2 (diff) |
Pull a lot of engine out of main.asm
Diffstat (limited to 'engine/overworld/elevator.asm')
-rwxr-xr-x | engine/overworld/elevator.asm | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/engine/overworld/elevator.asm b/engine/overworld/elevator.asm new file mode 100755 index 00000000..e483e0c3 --- /dev/null +++ b/engine/overworld/elevator.asm @@ -0,0 +1,69 @@ +ShakeElevator: ; 7bf15 (1e:7f15) + ld de, $ffe0 + call Func_7bf64 + ld de, $240 + call Func_7bf64 + call Delay3 + ld a, $ff + call PlaySound + ld a, [$ffaf] + ld d, a + ld e, $1 + ; number of times to play collision sfx + ld b, $64 +.asm_7bf30 + ld a, e + xor $fe + ld e, a + add d + ld [$ffaf], a + push bc + ld c, BANK(SFX_02_5b) + ld a, (SFX_02_5b - SFX_Headers_02) / 3 + call PlayMusic + pop bc + ld c, $2 + call DelayFrames + dec b + jr nz, .asm_7bf30 + ld a, d + ld [$ffaf], a + ld a, $ff + call PlaySound + ld c, BANK(SFX_02_5f) + ld a, (SFX_02_5f - SFX_Headers_02) / 3 + call PlayMusic +.asm_7bf57 + ld a, [$c02a] + cp $b9 + jr z, .asm_7bf57 + call UpdateSprites + jp Func_2307 + +Func_7bf64: ; 7bf64 (1e:7f64) + ld hl, $d527 + ld a, [hld] + push af + ld a, [hl] + push af + push hl + push hl + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + ld a, h + and $3 + or $98 + ld d, a + ld a, l + pop hl + ld [hli], a + ld [hl], d + call ScheduleNorthRowRedraw + pop hl + pop af + ld [hli], a + pop af + ld [hl], a + jp Delay3 |