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: 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 movement -- note these are hard due to limitations of the Apple II keyboard
+ running: Missing one running frame + running: Missing one running frame
+ ability to jump + ability to jump
@ -44,10 +48,9 @@ rope_room:
cutscenes: cutscenes:
+ death by beast + death by beast
+ aliens shooting beast
+ aliens shooting physicist
Level/Checkpoint #2: Level/Checkpoint #2:
+ Intro movie + Intro movie
+ Swing in the cage + Swing in the cage
+ Ability to pick up gun, with all that entails + 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> ; by Vince "Deater" Weaver <vince@deater.net>
@ -47,8 +47,21 @@ ootw:
;=========================== ;===========================
; quit_level ; 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 TEXT
jsr HOME jsr HOME
lda KEYRESET ; clear strobe lda KEYRESET ; clear strobe

View File

@ -23,9 +23,6 @@ ootw_c2:
lda #1 lda #1
sta DIRECTION sta DIRECTION
lda #40
sta BOULDER_Y
;======================= ;=======================
; Enter the game ; 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
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 ldx LEVELEND_PROGRESS
lda endl1_progression,X lda endl1_progression,X
sta GBASL sta GBASL
@ -168,12 +176,19 @@ level1_ending:
mesa_frame_no_oflo: 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 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 beq done_mesa
;==================== ;====================
@ -244,11 +259,11 @@ done_mesa:
;===================== ;=====================
; long(er) wait ; long(er) wait
; waits approximately ?? ms ; waits approximately 10ms * X
long_wait: long_wait:
lda #64 lda #64
jsr WAIT ; delay jsr WAIT ; delay 1/2(26+27A+5A^2) us, 11,117
dex dex
bne long_wait bne long_wait
rts rts