mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-08-15 08:27:41 +00:00
ootw: spin off earthquake code
This commit is contained in:
@@ -18,7 +18,7 @@ OOTW: ootw.o
|
|||||||
ootw.o: ootw.s \
|
ootw.o: ootw.s \
|
||||||
gr_copy.s gr_fast_clear.s gr_pageflip.s gr_unrle.s gr_putsprite.s \
|
gr_copy.s gr_fast_clear.s gr_pageflip.s gr_unrle.s gr_putsprite.s \
|
||||||
keyboard.s sluggy.s \
|
keyboard.s sluggy.s \
|
||||||
ootw_rope.s \
|
ootw_rope.s earthquake.s \
|
||||||
ootw_pool.s ootw_cavern.s physicist.s random16.s slug_cutscene.s \
|
ootw_pool.s ootw_cavern.s physicist.s random16.s slug_cutscene.s \
|
||||||
ootw_pool.inc \
|
ootw_pool.inc \
|
||||||
ootw_cavern.inc ootw_cavern2.inc ootw_cavern3.inc \
|
ootw_cavern.inc ootw_cavern2.inc ootw_cavern3.inc \
|
||||||
|
62
ootw/earthquake.s
Normal file
62
ootw/earthquake.s
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
;==========================
|
||||||
|
; check for earthquake
|
||||||
|
|
||||||
|
earthquake_handler:
|
||||||
|
lda FRAMEH
|
||||||
|
and #3
|
||||||
|
bne earth_mover
|
||||||
|
lda FRAMEL
|
||||||
|
cmp #$ff
|
||||||
|
bne earth_mover
|
||||||
|
earthquake_init:
|
||||||
|
lda #200
|
||||||
|
sta EQUAKE_PROGRESS
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta BOULDER_Y
|
||||||
|
jsr random16
|
||||||
|
lda SEEDL
|
||||||
|
and #$1f
|
||||||
|
clc
|
||||||
|
adc #4
|
||||||
|
sta BOULDER_X
|
||||||
|
|
||||||
|
|
||||||
|
earth_mover:
|
||||||
|
lda EQUAKE_PROGRESS
|
||||||
|
beq earth_still
|
||||||
|
|
||||||
|
and #$8
|
||||||
|
bne earth_calm
|
||||||
|
|
||||||
|
lda #2
|
||||||
|
bne earth_decrement
|
||||||
|
|
||||||
|
earth_calm:
|
||||||
|
lda #0
|
||||||
|
earth_decrement:
|
||||||
|
sta EARTH_OFFSET
|
||||||
|
dec EQUAKE_PROGRESS
|
||||||
|
jmp earth_done
|
||||||
|
|
||||||
|
|
||||||
|
earth_still:
|
||||||
|
lda #0
|
||||||
|
sta EARTH_OFFSET
|
||||||
|
|
||||||
|
earth_done:
|
||||||
|
|
||||||
|
;================================
|
||||||
|
; copy background to current page
|
||||||
|
|
||||||
|
lda EARTH_OFFSET
|
||||||
|
bne shake_shake
|
||||||
|
no_shake:
|
||||||
|
jsr gr_copy_to_current
|
||||||
|
jmp done_shake
|
||||||
|
shake_shake:
|
||||||
|
jsr gr_copy_to_current_1000
|
||||||
|
done_shake:
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
@@ -121,6 +121,7 @@ end_message:
|
|||||||
.include "ootw_cavern.s"
|
.include "ootw_cavern.s"
|
||||||
.include "physicist.s"
|
.include "physicist.s"
|
||||||
.include "sluggy.s"
|
.include "sluggy.s"
|
||||||
|
.include "earthquake.s"
|
||||||
.include "text_print.s"
|
.include "text_print.s"
|
||||||
.include "gr_pageflip.s"
|
.include "gr_pageflip.s"
|
||||||
.include "gr_unrle.s"
|
.include "gr_unrle.s"
|
||||||
|
@@ -78,65 +78,9 @@ cave_bg_done:
|
|||||||
cavern_loop:
|
cavern_loop:
|
||||||
|
|
||||||
;==========================
|
;==========================
|
||||||
; check for earthquake
|
; handle earthquake
|
||||||
|
|
||||||
earthquake_handler:
|
|
||||||
lda FRAMEH
|
|
||||||
and #3
|
|
||||||
bne earth_mover
|
|
||||||
lda FRAMEL
|
|
||||||
cmp #$ff
|
|
||||||
bne earth_mover
|
|
||||||
earthquake_init:
|
|
||||||
lda #200
|
|
||||||
sta EQUAKE_PROGRESS
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
sta BOULDER_Y
|
|
||||||
jsr random16
|
|
||||||
lda SEEDL
|
|
||||||
and #$1f
|
|
||||||
clc
|
|
||||||
adc #4
|
|
||||||
sta BOULDER_X
|
|
||||||
|
|
||||||
|
|
||||||
earth_mover:
|
|
||||||
lda EQUAKE_PROGRESS
|
|
||||||
beq earth_still
|
|
||||||
|
|
||||||
and #$8
|
|
||||||
bne earth_calm
|
|
||||||
|
|
||||||
lda #2
|
|
||||||
bne earth_decrement
|
|
||||||
|
|
||||||
earth_calm:
|
|
||||||
lda #0
|
|
||||||
earth_decrement:
|
|
||||||
sta EARTH_OFFSET
|
|
||||||
dec EQUAKE_PROGRESS
|
|
||||||
jmp earth_done
|
|
||||||
|
|
||||||
|
|
||||||
earth_still:
|
|
||||||
lda #0
|
|
||||||
sta EARTH_OFFSET
|
|
||||||
|
|
||||||
earth_done:
|
|
||||||
|
|
||||||
;================================
|
|
||||||
; copy background to current page
|
|
||||||
|
|
||||||
lda EARTH_OFFSET
|
|
||||||
bne shake_shake
|
|
||||||
no_shake:
|
|
||||||
jsr gr_copy_to_current
|
|
||||||
jmp done_shake
|
|
||||||
shake_shake:
|
|
||||||
jsr gr_copy_to_current_1000
|
|
||||||
done_shake:
|
|
||||||
|
|
||||||
|
jsr earthquake_handler
|
||||||
|
|
||||||
;===============
|
;===============
|
||||||
; handle slug death
|
; handle slug death
|
||||||
|
Reference in New Issue
Block a user