dos33fsprogs/ootw/ootw_c1.s

175 lines
3.2 KiB
ArmAsm
Raw Normal View History

; Ootw Level 1 for Apple II Lores
2019-01-17 16:58:19 -05:00
; by Vince "Deater" Weaver <vince@deater.net>
2019-01-13 01:10:44 -05:00
.include "zp.inc"
.include "hardware.inc"
2019-01-15 22:44:57 -05:00
ootw:
2019-01-17 17:14:19 -05:00
; Initialize some variables
2019-01-15 22:44:57 -05:00
lda #0
2019-01-17 16:58:19 -05:00
sta GAME_OVER
2019-01-18 00:18:06 -05:00
sta EQUAKE_PROGRESS
sta EARTH_OFFSET
sta PHYSICIST_STATE
sta WHICH_CAVE
2019-01-24 21:41:01 -05:00
sta BEAST_OUT
sta ON_ELEVATOR
sta HAVE_GUN
2019-07-25 17:09:44 -04:00
2019-07-29 15:02:58 -04:00
;==========================
; Handle Underwater Arrival
;==========================
2019-07-25 17:09:44 -04:00
2019-08-20 00:28:47 -04:00
jsr ootw_c1_arrival
2019-07-25 17:09:44 -04:00
2019-07-28 00:09:30 -04:00
lda GAME_OVER
bmi end_c1
2019-07-25 17:09:44 -04:00
2019-07-29 15:02:58 -04:00
;==========================
; Exit the Pool
;==========================
2019-08-20 00:28:47 -04:00
jsr exit_pool
2019-07-29 15:02:58 -04:00
2019-07-25 17:09:44 -04:00
; Initialize some variables
lda #0
sta GAME_OVER
sta EQUAKE_PROGRESS
sta EARTH_OFFSET
sta PHYSICIST_STATE
sta WHICH_CAVE
sta BEAST_OUT
sta ON_ELEVATOR
lda #1
sta BEFORE_SWING
2019-01-17 17:14:19 -05:00
lda #22
sta PHYSICIST_Y
lda #20
sta PHYSICIST_X
lda #1
sta DIRECTION
2019-01-18 00:27:32 -05:00
lda #40
sta BOULDER_Y
2019-01-18 15:16:37 -05:00
;=======================
; Initialize the slugs
;=======================
2019-01-20 23:46:05 -05:00
jsr init_slugs
2019-01-18 16:04:52 -05:00
2019-01-20 23:46:05 -05:00
;=======================
; Enter the game
;=======================
2019-01-18 16:04:52 -05:00
jsr ootw_pool
2019-01-15 22:44:57 -05:00
;===========================
; quit_level
;===========================
2019-07-28 00:09:30 -04:00
end_c1:
lda GAME_OVER ; see why we quit
cmp #$ff
beq l1_quit_or_died
;====================
; go to next level
l1_defeated:
lda #2 ; go to next level
sta WHICH_LOAD
rts
;========================
; print death message
; then restart
l1_quit_or_died:
2019-01-15 22:44:57 -05:00
jsr TEXT
jsr HOME
lda KEYRESET ; clear strobe
2019-01-16 00:28:23 -05:00
lda #0
sta DRAW_PAGE
lda #<end_message
sta OUTL
lda #>end_message
sta OUTH
jsr move_and_print
jsr move_and_print
2019-01-15 22:44:57 -05:00
wait_loop:
lda KEYPRESS
bpl wait_loop
lda KEYRESET ; clear strobe
jmp ootw
; hack, we don't have doors in l1
recalc_walk_collision:
rts
2019-01-16 00:28:23 -05:00
end_message:
.byte 8,10,"PRESS RETURN TO CONTINUE",0
.byte 11,20,"ACCESS CODE: IH8S",0
2019-01-15 22:44:57 -05:00
2019-07-25 17:09:44 -04:00
; rooms
.include "ootw_c1_arrival.s"
.include "ootw_c1_rope.s"
.include "ootw_c1_pool.s"
.include "ootw_c1_cavern.s"
.include "ootw_c1_mesa.s"
2019-07-25 17:09:44 -04:00
; movement
2019-01-17 16:58:19 -05:00
.include "physicist.s"
.include "ootw_c1_sluggy.s"
.include "ootw_c1_beast.s"
2019-01-20 01:05:52 -05:00
.include "earthquake.s"
2019-01-16 00:28:23 -05:00
.include "text_print.s"
2019-01-13 01:10:44 -05:00
.include "gr_pageflip.s"
.include "gr_unrle.s"
.include "gr_fast_clear.s"
.include "gr_copy.s"
.include "gr_make_quake.s"
2019-01-13 23:37:49 -05:00
.include "gr_putsprite.s"
.include "gr_putsprite_flipped.s"
2019-01-13 23:37:49 -05:00
.include "gr_offsets.s"
.include "gr_hlin.s"
2019-01-18 00:18:06 -05:00
.include "random16.s"
.include "keyboard.s"
2019-03-19 00:31:18 -04:00
.include "gr_overlay.s"
2019-03-22 01:14:33 -04:00
.include "gr_putsprite_crop.s"
2019-03-19 00:31:18 -04:00
2019-01-22 23:00:59 -05:00
; room backgrounds
2019-07-24 15:51:19 -04:00
.include "ootw_graphics/l1pool/ootw_pool.inc"
.include "ootw_graphics/l1caves/ootw_cavern.inc"
.include "ootw_graphics/l1caves/ootw_cavern2.inc"
.include "ootw_graphics/l1caves/ootw_cavern3.inc"
.include "ootw_graphics/l1rope/ootw_rope.inc"
.include "ootw_graphics/l1rope/ootw_swing.inc"
.include "ootw_graphics/l1underwater/ootw_underwater.inc"
2019-01-22 23:00:59 -05:00
; sprites
2019-07-29 14:05:53 -04:00
.include "ootw_graphics/sprites/l1_background.inc"
.include "ootw_graphics/sprites/physicist.inc"
.include "ootw_graphics/sprites/physicist_l1_swim.inc"
.include "ootw_graphics/sprites/slugs.inc"
.include "ootw_graphics/sprites/beast.inc"
; cutscene data
2019-07-24 15:51:19 -04:00
.include "ootw_graphics/l1end/ootw_l1end.inc"
.include "ootw_graphics/l1end_scenes/ootw_beast_end.inc"
.include "ootw_graphics/l1end_scenes/ootw_slug_end.inc"
.include "ootw_graphics/l1end_scenes/ootw_beast_intro.inc"