From 8aed04be8a7ad3b9f5e1b26c7f3a76007e39ad21 Mon Sep 17 00:00:00 2001 From: alpine9000 Date: Fri, 22 Apr 2016 15:24:59 +1000 Subject: [PATCH] getting closer to multiple items --- 028.game2/assets/items.png | Bin 0 -> 3742 bytes 028.game2/blit.s | 1 - 028.game2/constants.i | 5 +-- 028.game2/foreground.tmx | 2 +- 028.game2/items.s | 64 ++++++++++++++++++++++--------------- 028.game2/macros.i | 6 ++-- 6 files changed, 46 insertions(+), 32 deletions(-) create mode 100644 028.game2/assets/items.png diff --git a/028.game2/assets/items.png b/028.game2/assets/items.png new file mode 100644 index 0000000000000000000000000000000000000000..c164bb53932e55c45d2e028d82ce2d8163b27147 GIT binary patch literal 3742 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 YKdFG2e!E?J^mhWxjBXmfz3%qlU+p!TI{*Lx literal 0 HcmV?d00001 diff --git a/028.game2/blit.s b/028.game2/blit.s index 5254acc..59a0328 100644 --- a/028.game2/blit.s +++ b/028.game2/blit.s @@ -1,7 +1,6 @@ include "includes.i" xdef BlitFillColor - xdef BlitScroll xdef BlitTile xref BlueFill diff --git a/028.game2/constants.i b/028.game2/constants.i index bd46a9d..eacafce 100644 --- a/028.game2/constants.i +++ b/028.game2/constants.i @@ -19,13 +19,14 @@ FOREGROUND_PLAYAREA_HEIGHT_WORDS equ 8 ITEM_SPRITE_HEIGHT equ 15 ITEM_SPRITE_NUM_VERTICAL_SPRITES equ 6 -ITEM_SPRITE_BYTES equ (ITEM_SPRITE_NUM_VERTICAL_SPRITES*((ITEM_SPRITE_HEIGHT*4)+4))+4 +ITEM_SPRITE_VERTICAL_BYTES equ ((ITEM_SPRITE_HEIGHT*4)+4) +ITEM_SPRITE_BYTES equ (ITEM_SPRITE_NUM_VERTICAL_SPRITES*ITEM_SPRITE_VERTICAL_BYTES)+4 ITEM_SPRITE_VSTART equ 149 ITEM_X equ 0 ITEM_LAGX equ 2 ITEM_Y equ 4 -ITEM_LAGY equ 6 +ITEM_SPRITE equ 6 ITEM_YEND equ 8 ITEM_LAGYEND equ 10 ITEM_INDEX equ 12 diff --git a/028.game2/foreground.tmx b/028.game2/foreground.tmx index 6de7894..5e1133c 100644 --- a/028.game2/foreground.tmx +++ b/028.game2/foreground.tmx @@ -13,7 +13,7 @@ - eJxjYBgFIw04MQ60C0bBSAXUSHvoZjgSMJOQ/CigHwDFBXL8gfgDHT9DuTx0YkTFIxGQ4u+RGkbIYDQMRsFgAQAdzQRv + eJxjYBgFQx04MdJW/SggHjiOhi1eQI20h24GoTAfjZPBA0BxgRwf6PyBAEO5PAS5HRmTAwZDHFACSPH3UI5raoHRMBgFgwUAAJSiBXc= diff --git a/028.game2/items.s b/028.game2/items.s index ed7b602..9641712 100644 --- a/028.game2/items.s +++ b/028.game2/items.s @@ -5,22 +5,47 @@ xdef RenderItemSprite ScrollItemSprites: - move.l #1,d0 + move.w #1,d0 lsl.w #ITEM_STRUCT_MULU_SHIFT,d0 ; multiply by 16 (item control structure size) lea item1,a1 add.l d0,a1 move.l foregroundScrollPixels,d0 - sub.w d0,ITEM_X(a1) + sub.w d0,ITEM_X(a1) + rts + +ClearItemSpriteData: + move.w #ITEM_SPRITE_NUM_VERTICAL_SPRITES-1,d4 + sub.w d2,d4 ; this is because of the upside board at the moment + move.w d4,d2 + move.w #ITEM_NUM_COIN_ANIMS-1,d4 + move.l #spriteCoin1,a0 +.l2: + move.w #ITEM_SPRITE_NUM_VERTICAL_SPRITES-1,d3 +.l1: + cmp.w d3,d2 + beq .skip + move.b #0,3(a0) + move.b #0,1(a0) + +.skip: + add.l #ITEM_SPRITE_VERTICAL_BYTES,a0 + dbra.w d3,.l1 + add.l #4,a0 + dbra.w d4,.l2 rts SetupItemSpriteData: - ;; d0 - item slot - ;; d1 - sprite slot + ;; d0 - item slot move.l #1,d0 + lsl.w #ITEM_STRUCT_MULU_SHIFT,d0 ; multiply by 16 (item control structure size) lea item1,a1 add.l d0,a1 + + + move.w ITEM_Y(a1),d2 + ;; move.l #5,d2 move.l currentItemSprite,a0 @@ -39,7 +64,8 @@ SetupItemSpriteData: mulu.w #ITEM_SPRITE_BYTES,d0 add.l d0,a0 - add.l #1*((ITEM_SPRITE_HEIGHT*4)+4),a0 + mulu.w #ITEM_SPRITE_VERTICAL_BYTES,d2 + add.l d2,a0 move.w ITEM_LAGX(a1),d0 lsr.w #FOREGROUND_SCROLL_SHIFT_CONVERT,d0 ; convert to pixels @@ -51,18 +77,8 @@ SetupItemSpriteData: lsr.l #1,d0 move.b d0,1(a0) ;spriteHStart - if 0 - move.w ITEM_LAGY(a1),d0 - move.w ITEM_Y(a1),ITEM_LAGY(a1) - move.b d0,(a0) ;spriteVStart - move.w ITEM_LAGYEND(a1),d0 - move.w ITEM_YEND(a1),ITEM_LAGYEND(a1) - move.b d0,2(a0) ;spriteVStop - endif .c1: - - - sub.l #1*((ITEM_SPRITE_HEIGHT*4)+4),a0 + sub.l d2,a0 ;#1*ITEM_SPRITE_VERTICAL_BYTES,a0 move.l a0,SPR2PTH(a6) add.w #1,ITEM_INDEX(a1) @@ -76,7 +92,7 @@ RenderItemSprite: lsl.w #ITEM_STRUCT_MULU_SHIFT,d0 ; multiply by 16 (item control structure size) lea item1,a1 add.l d0,a1 - + move.l foregroundScrollX,d0 lsr.w #FOREGROUND_SCROLL_SHIFT_CONVERT,d0 ; convert to pixels andi.w #$f,d0 @@ -86,15 +102,13 @@ RenderItemSprite: add.l mapSize,a3 cmpi.w #0,(a3) beq .dontAddSprite - move.l #deadSprite,currentItemSprite + + move.l #deadSprite,currentItemSprite move.w #336<