lemm: don't re-load level if already in RAM

This commit is contained in:
Vince Weaver 2022-03-20 22:50:26 -04:00
parent 8824603ec2
commit 4b714999a6

View File

@ -245,6 +245,9 @@ zurg:
oof: oof:
lda #$0
sta $9000 ; make sure we load first level
;======================= ;=======================
; do level ; do level
;======================= ;=======================
@ -252,29 +255,32 @@ oof:
play_level: play_level:
; load level from disk ; load level from disk
lda WHICH_LEVEL ; FIXME: don't reload if already right lda WHICH_LEVEL ; see if level is same as current
; maybe put level# at $a000? cmp $9000
beq level_already_resident
sta WHICH_LOAD sta WHICH_LOAD
jsr load_file jsr load_file
level_already_resident:
jsr start_level jsr start_level
lda LEVEL_OVER lda LEVEL_OVER
cmp #LEVEL_WIN cmp #LEVEL_WIN
beq level_won beq level_won
bne level_lost bne level_continue
level_won: level_won:
inc WHICH_LEVEL inc WHICH_LEVEL
lda WHICH_LEVEL lda WHICH_LEVEL
cmp #3 cmp #6
bcc level_lost bcc level_continue
lda #5 lda #1 ; wrap to level1?
sta WHICH_LEVEL sta WHICH_LEVEL
level_lost: level_continue:
jmp play_level jmp play_level