From f706f7f8fc9af742c273e75f771331fd5d10748b Mon Sep 17 00:00:00 2001 From: Pecusx Date: Tue, 3 Dec 2024 21:56:18 +0100 Subject: [PATCH] Levels OK --- averybreakout.asm | 50 +++++++++++++++++++++++++++++++++++++++------- averybreakout.xex | Bin 5567 -> 5653 bytes 2 files changed, 43 insertions(+), 7 deletions(-) diff --git a/averybreakout.asm b/averybreakout.asm index 210de85..c1f5e63 100644 --- a/averybreakout.asm +++ b/averybreakout.asm @@ -991,6 +991,7 @@ brickcolorTab mva #"9" Lives jsr clearscreen ;jsr drawBricks + mva #$ff LevelType jsr BuildLevelFromBuffer lda dmactls @@ -1151,8 +1152,17 @@ drawBricksLoop ;-------------------------------------------------- .proc BuildLevelFromBuffer ;-------------------------------------------------- + lda LevelType + beq level000 + bmi levelTitle + mwa #LevelFileBuff inlevel + jmp PrepareLevel +levelTitle mwa #Menu_data inlevel - ;mwa #Level000_data inlevel + jmp PrepareLevel +level000 + mwa #Level000_data inlevel +PrepareLevel ldy #0 sty BricksInLevel sty BricksInLevel+1 @@ -1188,13 +1198,22 @@ valid1 ; value in X register @ jmp nextnumber nextnumber2 + sty BigBrickFlag ; #0 + lda (inlevel),y + inw inlevel + cmp #'1' + beq singlepixel + cmp #'2' + bne LevelDataError +doublepixel + dec BigBrickFlag ; #$ff +singlepixel lda (inlevel),y inw inlevel cmp #155 - bne nextnumber2 + bne singlepixel ; make bricks mwa #0 temp - mva #8 color mva #margin*2 ypos drawBricksLoopY mva #0 xpos @@ -1208,17 +1227,28 @@ drawBricksLoop beq EndOfLine ; next line cmp #' ' beq NoBrick ; if no brick - jsr fatplot + ldy #8 inw temp ; real number of bricks + bit BigBrickFlag + bpl OnePixel + inw temp ; real number of bricks +OnePixel NoBrick + sty color + jsr fatplot inc xpos + bit BigBrickFlag + bpl SmallBrick + jsr fatplot ; second bixel of big brick + inc xpos +SmallBrick lda xpos cmp #screenWidth bne drawBricksLoop EndOfLine inc ypos lda ypos - cmp #maxBrickLines+margin*2 + cmp #maxlines bne drawBricksLoopY LevelDataEnd cpw BricksInLevel temp @@ -1227,7 +1257,9 @@ LevelDataEnd BricksOK rts LevelDataError - rts + ; errer in data - set level to o (internal) and draw level + mva #0 LevelType + jmp level000 .endp ;-------------------------------------------------- ;-------------------------------------------------- @@ -1251,7 +1283,7 @@ Menu_data .byte 155 .byte 0 Level000_data - .byte '952',155 ; number of bricks in ATASCII + .byte '952',155 ; number of bricks (pixes) in ATASCII .byte '2',155 ; brick size in pixels ; 0 1 2 3 ; 0123456789012345678901234567890123456789 @@ -1261,8 +1293,12 @@ Level000_data LevelFileBuff .ds (screenWidth*maxLines)+20 ; Buffer for data from the level file ;-------------------------------------------------- +BigBrickFlag + .byte 0 BricksInLevel .word 0 +LevelType + .byte 0 ; level type $00 - first level, $01 - level from buffer, $ff - title screen Numbers .byte '0123456789' lineAdrL diff --git a/averybreakout.xex b/averybreakout.xex index d033c98f433a5d3b79ea717e41383014d609ef2e..fc4a8adb9b67f7159117fedd6a55c15ad90a32a1 100644 GIT binary patch delta 1393 zcmc(dT}TvB6vt=U4{iH!qk`FoVug|&GgJH6dI+x0G;6X%MlTV;LJ6(mb4byCxL0j; zaCK(YumKgXG#eW%g5bjxeLakUOg-tt?ra2$5XA-&`LrE(ql9`4x(}ECJ~#2u$ks5yCUJ*Px^8I+wep6=zgVZua5${#9FAyTI2_enJnqwI z4i9K7hX=Jz4&T>$IULtafeF%jm9b5w6jMlPF9n>?mIXYjy%q47wklw0ZYVRB$|NxE zc%*$qSk^wa;v~T=oyy2(OKqbvL&9AHI7}j4gVH{0z|qaeMpEF{%1igG=Uu;Y=3^wn z(uOM|<6*Yuz&9yxW#~`RhV^+UhYZV#iB@tbokP1!c=;dIk(f>!!rVx)ZK<0d-1MZu zlZ2HSjzkolBT?lGNBR^OpLV=+R;eY0eOpS|Yp-k_B@ClDGVW> z|L>>*v-bYU`N=;pFC41spsrqn85?=}`FD?t}WAUw^o)cGvS&D(gphtNn zz>0#D@rv zT*k(hqBVM3oOcFb0 z0xYLPCc?=|pmH-r?#UrBhe)!=M9>)%ue=kM&nEKg>~QwCb91puZ!zw!Yza*nUsVdr zIH_836jXSc%8VD$uT~m$cX97@bwP&Kk`3AO$Z4BB!maNLasUyeLFT zRQDQ-X%oFp8aC+qwVZGex!hqH90d#YFR=?Z9UrXwvZ&oh!D(u4Iey~gDevhswYAc< h8gHof|DKM2Ro>^5t~tFS-~T=B|Em1L)jcF|9G-R8RhLRLh4o-;Shi~sYJW^fm}a&|sYFB_x@~_v>|r~oos9O6`_!3r zaMzjH6_$ZTe4Df4Vb}^fOi|)t6>P{;gy3lrgjk|O;$i!(h6#2Qe22&T{oeb1-}}B# zzWDJ%d9g@2+*+b?&herU@`f zKBvlk1Y=P$9Gg6d zP`|*EQ5Ya&FiSXiPk5zCylZ_>xy$V67cImfE1f1m4tu?9yk>m6QvUYqtYY) zx5_hZ9hpi`9k4ljw!&vBb0oy6%5(lM!G~10Fo@KL!Vpq#2_ZC1*8iB|U9c|I{O*0+a)P5T@ui5dG|$sm-mQ0cJCS@GEpRlEeY~Fray!4< zh?;-!bnk1|KUm|JN?{4hY9$V<794^qkfOAB;rt$Pea=y+a(rmcOYjppA0UC;J>z>m zL_)b*;|s7a%0@Z-WKoLRh_pjn((7q&ZB4c%v!88imRgSfi72YIt^M+qtJgZNcP=lB g+3F7e^3ksD!=gt>%+_@H(b2Bkhee;&PCm2z0Tro!>i_@%