From 8b15c4e20512aa14d408eeeafa06f625289bb32d Mon Sep 17 00:00:00 2001 From: Pecusx Date: Wed, 19 Mar 2025 20:44:44 +0100 Subject: [PATCH] Clouds positions randomize --- lumber.asm | 87 +++++++++++++++++++++++++++++++++++++++-------------- lumber.xex | Bin 25138 -> 25243 bytes 2 files changed, 64 insertions(+), 23 deletions(-) diff --git a/lumber.asm b/lumber.asm index 8a2cd4a..8d8e9d9 100644 --- a/lumber.asm +++ b/lumber.asm @@ -39,9 +39,9 @@ display = $a000 .zpvar LastKey .byte ; $ff if no key pressed or last key released .zpvar RMT_blocked noSfx SFX_EFFECT .byte .zpvar AutoPlay .byte ; Auto Play flag ($80 - auto) - .zpvar birdsHpos .byte ; 0 - no birds on screen + .zpvar birdsHpos .byte ; 0 - no birds on screen (from $13 to $de) .zpvar birdsOffset .byte - .zpvar clouds1Hpos,clouds2Hpos,clouds3Hpos .byte ; 0 - no cloud on screen + .zpvar clouds1Hpos,clouds2Hpos,clouds3Hpos .byte ; 0 - no cloud on screen (from $0e to $de) ; PMG registers for sprites over horizon .zpvar HPOSP0_u .byte .zpvar HPOSP1_u .byte @@ -200,11 +200,11 @@ no_birds bne cloud1_fly ; if no cloud 1 then randomize new cloud 2 start lda RANDOM - and #%11111100 ; 1:64 + and #%11111000 ; 1:32 bne no_new_cloud1 - ; then randomize new cloud 1 shape - lda RANDOM - ; + ; then create new cloud 1 shape + jsr PrepareCloudsPM.make_cloud1 + mva #$de clouds1Hpos cloud1_fly dec clouds1Hpos lda clouds1Hpos @@ -222,11 +222,11 @@ no_new_cloud1 bne cloud2_fly ; if no cloud 2 randomize new cloud 2 start lda RANDOM - and #%11111100 ; 1:64 + and #%11111000 ; 1:32 bne no_new_cloud2 - ; then randomize new cloud 2 shape - lda RANDOM - ; + ; then create new cloud 2 shape + jsr PrepareCloudsPM.make_cloud2 + mva #$de clouds2Hpos cloud2_fly dec clouds2Hpos no_new_cloud2 @@ -234,11 +234,11 @@ no_new_cloud2 bne cloud3_fly ; if no cloud 3 then randomize new cloud 3 start lda RANDOM - and #%11111100 ; 1:64 + and #%11111000 ; 1:32 bne no_new_cloud3 - ; then randomize new cloud 3 shape - lda RANDOM - ; + ; then create new cloud 3 shape + jsr PrepareCloudsPM.make_cloud3 + mva #$de clouds3Hpos cloud3_fly dec clouds3Hpos no_new_cloud3 @@ -1000,7 +1000,10 @@ datalines_bird=8 mva #$0c PCOLR2 sta PCOLR3 lda #36 + sta clouds2Hpos + lda #98 sta clouds1Hpos + clc sta HPOSM2_u adc #4 @@ -1011,33 +1014,71 @@ datalines_bird=8 sta HPOSM3_u rts make_cloud1 + ; clear cloud 1 PMG memory + ldx #(28-5) + lda #0 +@ sta PMmemory+$300+5,x + sta PMmemory+$380+5,x + sta PMmemory+$180+5,x + dex + bpl @- + randomize 0 (28-5-datalines_clouds) + adc #(datalines_clouds-1) + tay ldx #datalines_clouds-1 @ lda cloud2_P2,x - sta PMmemory+$300+Hoffset_cloud1,x + sta PMmemory+$300+5,y lda cloud2_P3,x - sta PMmemory+$380+Hoffset_cloud1,x + sta PMmemory+$380+5,y lda cloud2_M,x - sta PMmemory+$180+Hoffset_cloud1,x + sta PMmemory+$180+5,y + dey dex bpl @- + rts make_cloud2 + ; clear cloud 2 PMG memory + ldx #(52-29) + lda #0 +@ sta PMmemory+$300+29,x + sta PMmemory+$380+29,x + sta PMmemory+$180+29,x + dex + bpl @- + randomize 0 (52-29-datalines_clouds) + adc #(datalines_clouds-1) + tay ldx #datalines_clouds-1 @ lda cloud3_P2,x - sta PMmemory+$300+Hoffset_cloud2,x + sta PMmemory+$300+29,y lda cloud3_P3,x - sta PMmemory+$380+Hoffset_cloud2,x + sta PMmemory+$380+29,y lda cloud3_M,x - sta PMmemory+$180+Hoffset_cloud2,x + sta PMmemory+$180+29,y + dey dex bpl @- + rts make_cloud3 + ; clear cloud 3 PMG memory + ldx #(84-53) + lda #0 +@ sta PMmemory+$300+53,x + sta PMmemory+$380+53,x + sta PMmemory+$180+53,x + dex + bpl @- + randomize 0 (70-53-datalines_clouds) + adc #(datalines_clouds-1) + tay ldx #datalines_clouds-1 @ lda cloud4_P2,x - sta PMmemory+$300+Hoffset_cloud3,x + sta PMmemory+$300+53,y lda cloud4_P3,x - sta PMmemory+$380+Hoffset_cloud3,x + sta PMmemory+$380+53,y lda cloud4_M,x - sta PMmemory+$180+Hoffset_cloud3,x + sta PMmemory+$180+53,y + dey dex bpl @- rts diff --git a/lumber.xex b/lumber.xex index 459584876aa40322c7ccfe34082f294b42016b88..209417a01a0babe2ebcfd81c3a2c1117427e17a6 100644 GIT binary patch delta 3170 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 WVZh5*LxwTK*PF|4ZP;!&*7!I3I+IEO