From ad651e768e71785f70f76fdb28a5e184cfd37c69 Mon Sep 17 00:00:00 2001 From: alpine9000 Date: Fri, 27 May 2016 15:10:15 +1000 Subject: [PATCH] removed some end of level glitches --- 028.bs/game1.s | 14 +++++++++++--- 028.bs/items.s | 2 ++ 028.bs/level.i | 4 ++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/028.bs/game1.s b/028.bs/game1.s index 5055572..0ca31f1 100644 --- a/028.bs/game1.s +++ b/028.bs/game1.s @@ -26,6 +26,7 @@ xdef moving xdef itemsMapOffset + xdef itemsMapEndPtr xdef livesCounterText xdef livesCounterShortText xdef panel @@ -480,7 +481,7 @@ RenderForegroundTile: add.w (a2),a1 ; source tile add.l #(BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH*(256-(16*8)+32)/4)+BITPLANE_WIDTH_BYTES-FOREGROUND_PLAYAREA_RIGHT_MARGIN_BYTES,a0 cmp.w #$ffff,d0 - beq stopScrolling + ;; beq stopScrolling lea animIndex,a4 move.l d2,d1 @@ -491,7 +492,10 @@ RenderForegroundTile: cmp.l #10,d1 bge .s1 add.l d1,a1 + cmp.l endForegroundMapPtr,a2 + bge .dontBlit jsr BlitTile +.dontBlit: cmp.l #2,(a4) blt .s2 .s1: @@ -565,10 +569,10 @@ ClearForegroundTile3: ;; a4 - pointed to animation offset for tile lea foregroundTilemap,a1 sub.l d0,d0 + cmp.l endForegroundMapPtr,a2 + bge .s1 move.w (a2),d0 add.l d0,a1 - move.l foregroundMapPtr,a3 - add.l #FOREGROUND_PLAYAREA_WIDTH_WORDS*FOREGROUND_PLAYAREA_HEIGHT_WORDS,a3 move.l (a4),d1 cmp.l #10,d1 bge .s1 @@ -906,6 +910,8 @@ countdownImages: incbin "out/countdown.bin" itemsMapOffset: dc.l level1ItemsMap-level1ForegroundMap +itemsMapEndPtr: + dc.l 0 foregroundScrollPixels: dc.l FOREGROUND_SCROLL_PIXELS bigBangIndex: @@ -1055,6 +1061,8 @@ pathwayMapPtr: dc.l 0 startForegroundMapPtr: dc.l 0 +endForegroundMapPtr: + dc.l 0 startPathwayMapPtr: dc.l 0 foregroundPlayerTileAddress: diff --git a/028.bs/items.s b/028.bs/items.s index 79a7be9..3459160 100644 --- a/028.bs/items.s +++ b/028.bs/items.s @@ -334,6 +334,8 @@ RenderItemSprite: bne .dontAddSprite move.l a2,a3 add.l itemsMapOffset,a3 + cmp.l itemsMapEndPtr,a3 + bge .dontAddSprite cmpi.w #0,(a3) beq .dontAddSprite diff --git a/028.bs/level.i b/028.bs/level.i index 0a9c97e..80d7c7a 100644 --- a/028.bs/level.i +++ b/028.bs/level.i @@ -17,12 +17,15 @@ InstallLevel\1: move.l #\9,playerXColumnLastSafe move.l #\9,playerXColumn move.w #\a,d0 + move.l #level\1ForegroundMapEnd,endForegroundMapPtr + move.l #level\1ItemsMapEnd,itemsMapEndPtr jsr StartMusic rts align 4 level\1ForegroundMap: include "out/level\1_foreground-map.s" +level\1ForegroundMapEnd: dc.w $FFFF dc.w $FFFF dc.w $FFFF @@ -35,6 +38,7 @@ level\1PathwayMap: include "out/level\1_pathway-map.s" level\1ItemsMap: include "out/level\1_items-indexes.s" +level\1ItemsMapEnd: level\1StartMessage: dc.b \2