mirror of
https://github.com/pkali/Avery_Breakout.git
synced 2026-05-20 22:33:55 +02:00
Get brick number from level data
This commit is contained in:
+38
-3
@@ -1140,18 +1140,46 @@ randomStart
|
|||||||
mwa #Menu_data inlevel
|
mwa #Menu_data inlevel
|
||||||
;mwa #Level000_data inlevel
|
;mwa #Level000_data inlevel
|
||||||
ldy #0
|
ldy #0
|
||||||
|
sty BricksInLevel
|
||||||
|
sty BricksInLevel+1
|
||||||
nextnumber
|
nextnumber
|
||||||
lda (inlevel),y
|
lda (inlevel),y
|
||||||
inw inlevel
|
inw inlevel
|
||||||
cmp #155
|
cmp #155
|
||||||
bne nextnumber
|
beq nextnumber2
|
||||||
|
; check valid characters
|
||||||
|
ldx #9
|
||||||
|
@ cmp Numbers,x
|
||||||
|
beq valid1
|
||||||
|
dex
|
||||||
|
bpl @-
|
||||||
|
jmp LevelDataError
|
||||||
|
valid1 ; value in X register
|
||||||
|
; now we must multiply BricksInLevel by 10
|
||||||
|
asl BricksInLevel
|
||||||
|
rol BricksInLevel+1
|
||||||
|
mwa BricksInLevel temp
|
||||||
|
asl BricksInLevel
|
||||||
|
rol BricksInLevel+1
|
||||||
|
asl BricksInLevel
|
||||||
|
rol BricksInLevel+1
|
||||||
|
adw temp BricksInLevel BricksInLevel
|
||||||
|
; and add value
|
||||||
|
clc
|
||||||
|
txa
|
||||||
|
adc BricksInLevel
|
||||||
|
sta BricksInLevel
|
||||||
|
bcc @+
|
||||||
|
inc BricksInLevel+1
|
||||||
|
@ jmp nextnumber
|
||||||
|
|
||||||
nextnumber2
|
nextnumber2
|
||||||
lda (inlevel),y
|
lda (inlevel),y
|
||||||
inw inlevel
|
inw inlevel
|
||||||
cmp #155
|
cmp #155
|
||||||
bne nextnumber2
|
bne nextnumber2
|
||||||
; make bricks
|
; make bricks
|
||||||
|
mwa #0 temp
|
||||||
mva #8 color
|
mva #8 color
|
||||||
mva #margin*2 ypos
|
mva #margin*2 ypos
|
||||||
drawBricksLoopY
|
drawBricksLoopY
|
||||||
@@ -1167,6 +1195,7 @@ drawBricksLoop
|
|||||||
cmp #' '
|
cmp #' '
|
||||||
beq NoBrick ; if no brick
|
beq NoBrick ; if no brick
|
||||||
jsr fatplot
|
jsr fatplot
|
||||||
|
inw temp ; real number of bricks
|
||||||
NoBrick
|
NoBrick
|
||||||
inc xpos
|
inc xpos
|
||||||
lda xpos
|
lda xpos
|
||||||
@@ -1178,6 +1207,12 @@ EndOfLine
|
|||||||
cmp #maxBrickLines+margin*2
|
cmp #maxBrickLines+margin*2
|
||||||
bne drawBricksLoopY
|
bne drawBricksLoopY
|
||||||
LevelDataEnd
|
LevelDataEnd
|
||||||
|
cpw BricksInLevel temp
|
||||||
|
bcc BricksOK ; if defined bricks number is bigger tan real
|
||||||
|
mwa temp BricksInLevel ; set to real brick number
|
||||||
|
BricksOK
|
||||||
|
rts
|
||||||
|
LevelDataError
|
||||||
rts
|
rts
|
||||||
.endp
|
.endp
|
||||||
;--------------------------------------------------
|
;--------------------------------------------------
|
||||||
@@ -1214,7 +1249,7 @@ LevelFileBuff
|
|||||||
BricksInLevel
|
BricksInLevel
|
||||||
.word 0
|
.word 0
|
||||||
Numbers
|
Numbers
|
||||||
.byte "0123456789"
|
.byte '0123456789'
|
||||||
lineAdrL
|
lineAdrL
|
||||||
:margin .byte <marginLine ;8 lines of margin space
|
:margin .byte <marginLine ;8 lines of margin space
|
||||||
:maxLines .byte <(display+40*#)
|
:maxLines .byte <(display+40*#)
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user