ootw: possible to end level1 and progress to level2

This commit is contained in:
Vince Weaver 2019-03-20 11:53:13 -04:00
parent b4621120c1
commit 99867d968c
6 changed files with 59 additions and 13 deletions

View File

@ -6,6 +6,10 @@ KNOWN BUGS:
TODO:
+ sprites that don't draw off edge of screen
+ Revamp movement
movement -- note these are hard due to limitations of the Apple II keyboard
+ running: Missing one running frame
+ ability to jump
@ -44,10 +48,9 @@ rope_room:
cutscenes:
+ death by beast
+ aliens shooting beast
+ aliens shooting physicist
Level/Checkpoint #2:
+ Intro movie
+ Swing in the cage
+ Ability to pick up gun, with all that entails
+ Elevator ride, view of city?

View File

@ -1,4 +1,4 @@
; Ootw for Apple II Lores
; Ootw Level 1 for Apple II Lores
; by Vince "Deater" Weaver <vince@deater.net>
@ -47,8 +47,21 @@ ootw:
;===========================
; quit_level
;===========================
lda GAME_OVER ; see why we quit
cmp #$ff
beq l1_quit_or_died
quit_level:
;====================
; 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:
jsr TEXT
jsr HOME
lda KEYRESET ; clear strobe

View File

@ -23,9 +23,6 @@ ootw_c2:
lda #1
sta DIRECTION
lda #40
sta BOULDER_Y
;=======================
; Enter the game
;=======================

View File

@ -0,0 +1,18 @@
include ../../../Makefile.inc
PNG2RLE = ../../../gr-utils/png2rle
PNG2LZ4 = ../../../gr-utils/png2lz4
all: ootw_l2intro.inc
#####
ootw_l2intro.inc: $(PNG2RLE) \
ootw2_cage.png
$(PNG2RLE) asm ootw2_cage.png intro_cage_rle > ootw_l2intro.inc
#####
clean:
rm -f *~ *.o *.lst *.lzz *.inc

View File

Before

Width:  |  Height:  |  Size: 386 B

After

Width:  |  Height:  |  Size: 386 B

View File

@ -102,6 +102,14 @@ levelend_not_first:
dec LEVELEND_PROGRESS
dec LEVELEND_PROGRESS
bne not_beginning_of_end
beginning_of_end:
lda #5
sta GAME_OVER
jmp l1_game_over_check
not_beginning_of_end:
ldx LEVELEND_PROGRESS
lda endl1_progression,X
sta GBASL
@ -168,12 +176,19 @@ level1_ending:
mesa_frame_no_oflo:
; check if done this level
lda GAME_OVER
;========================================
;========================================
; check if at edge of screen or game over
;========================================
;========================================
l1_game_over_check:
lda GAME_OVER ; if not game over, skip ahead
beq not_done_mesa
cmp #$ff ; check if dead
cmp #$ff ; check if died, if so exit
beq done_mesa
cmp #$5 ; check if defeated, if so exit
beq done_mesa
;====================
@ -244,11 +259,11 @@ done_mesa:
;=====================
; long(er) wait
; waits approximately ?? ms
; waits approximately 10ms * X
long_wait:
lda #64
jsr WAIT ; delay
jsr WAIT ; delay 1/2(26+27A+5A^2) us, 11,117
dex
bne long_wait
rts