diff --git a/028.bs/assets/items.png b/028.bs/assets/items.png index cbf1f42..6120ce2 100644 Binary files a/028.bs/assets/items.png and b/028.bs/assets/items.png differ diff --git a/028.bs/assets/palette.pal b/028.bs/assets/palette.pal deleted file mode 100644 index a1cacfb..0000000 --- a/028.bs/assets/palette.pal +++ /dev/null @@ -1,25 +0,0 @@ -000 000 000 255 -082 000 015 255 -133 000 026 255 -210 063 006 255 -211 116 039 255 -253 174 017 255 -233 216 100 255 -016 132 233 255 -000 000 014 255 -029 192 255 255 -121 235 255 255 -071 174 192 255 -213 213 213 255 -210 000 039 255 -154 154 154 255 -000 000 000 000 -232 174 100 255 -252 114 100 255 -171 049 027 255 -004 050 117 255 -020 155 173 255 -030 236 255 255 -252 115 009 255 -255 255 011 255 -255 255 255 255 diff --git a/028.bs/constants.i b/028.bs/constants.i index 5297cfd..7317c80 100644 --- a/028.bs/constants.i +++ b/028.bs/constants.i @@ -34,9 +34,11 @@ ITEM_SPRITE_NUM_VERTICAL_SPRITES equ 6 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_NUM_SLOTS equ 16 +ITEM_NUM_SLOTS equ (8*3) ITEM_SPRITE_HORIZONTAL_START_PIXELS equ 32 ITEM_SPRITE_Y_COLLISION_OFFSET equ 1 +ITEM_SPRITE_ARROW_INDEX equ 16 +ITEM_SPRITE_COINB_INDEX equ 8 ;item control struct offsets ITEM_X equ 0 @@ -44,6 +46,7 @@ ITEM_LAGX equ 2 ITEM_Y equ 4 ITEM_SPRITE equ 6 ITEM_INDEX equ 8 +ITEM_SPRITE_ENABLED equ 10 ITEM_SPRITE_ADDRESS equ 12 ITEM_STRUCT_SIZE equ 16 ITEM_STRUCT_MULU_SHIFT equ 4 diff --git a/028.bs/foreground.tmx b/028.bs/foreground.tmx index bdf38bb..f3c7220 100644 --- a/028.bs/foreground.tmx +++ b/028.bs/foreground.tmx @@ -18,7 +18,7 @@ - eJxjYBgFgxk4MRJW40iEGlLNRFbnRaL5ww2AwhdfGDszoqolx3xnEvR5D+H4IDbt4QOwMCYmrJHjzgWHeh8c4rjUE6t/pAFXaFj74skv2PISKXnGlQi1vjQqDwcjALkdGYMAqWUQcpy4kREWhPT40Th8SYm/wRLXpMaROxXV+w+SMBgFowAAAWIMrg== + eJxjYBgFgxk4MRJW40iEGlLNRFbnRaL5ww2AwhdfGDszoqolx3xnEvR5D+H4IDbt4QOwMCYmrJHjzgWHeh8c4rjUE6t/pAFXaFj7AnEojjDBlpdIyTOuRKj1pVF5OBgByO3IGARILYOQ48SNjLAgpMePxuFLSvwNlrgmNY7cqajef5CEwSgYBQB8ggzC diff --git a/028.bs/items.s b/028.bs/items.s index 118dfde..edbb5fd 100644 --- a/028.bs/items.s +++ b/028.bs/items.s @@ -104,7 +104,24 @@ SwitchItemSpriteBuffers: dbra d1,.loop rts -SetupItemSpriteData: + +SetupItemSpriteData: + cmp.l #0,itemSpritesEnabled + bne .enableSprites + move.l #deadSprite,SPR2PTH(a6) + move.l #deadSprite,SPR3PTH(a6) + move.l #deadSprite,SPR4PTH(a6) + rts + +.enableSprites: + move.l #ITEM_NUM_SLOTS,d0 +.loop: + bsr _SetupItemSpriteData + dbra d0,.loop + rts + + +_SetupItemSpriteData: ;; d0 - item slot move.l d0,-(sp) move.l d0,d4 ; save item slot @@ -113,15 +130,15 @@ SetupItemSpriteData: lea item1,a1 add.l d0,a1 + cmpi.w #0,ITEM_SPRITE_ENABLED(a1) + beq .spriteIsNotEnabled - move.w ITEM_Y(a1),d2 - ;; move.l #5,d2 - + move.w ITEM_Y(a1),d2 move.l ITEM_SPRITE_ADDRESS(a1),a0 - + cmp.w #(ITEM_NUM_COIN_ANIMS-1)<<3,ITEM_INDEX(a1) ble .dontResetIndex - move.l #0,ITEM_INDEX(a1) + move.w #0,ITEM_INDEX(a1) .dontResetIndex: cmp.l #deadSprite,a0 bne .setupSprite @@ -137,12 +154,11 @@ SetupItemSpriteData: mulu.w #ITEM_SPRITE_VERTICAL_BYTES,d2 add.l d2,a0 - move.w ITEM_LAGX(a1),d0 + move.w ITEM_X(a1),d0 + ;; move.w ITEM_LAGX(a1),d0 lsr.w #FOREGROUND_SCROLL_SHIFT_CONVERT,d0 ; convert to pixels ;; move.w ITEM_X(a1),ITEM_LAGX(a1) - cmp.l #0,itemSpritesEnabled - beq .dontEnable add.w #ITEM_SPRITE_HORIZONTAL_START_PIXELS,d0 move.w d0,d1 @@ -153,23 +169,23 @@ SetupItemSpriteData: .c1: sub.l d2,a0 ;#1*ITEM_SPRITE_VERTICAL_BYTES,a0 - cmp.b #8,d4 + cmp.b #ITEM_SPRITE_ARROW_INDEX,d4 bge .arrowSprite + cmp.b #ITEM_SPRITE_COINB_INDEX,d4 + bge .coinBSprite +.coinASprite: move.l a0,SPR2PTH(a6) bra .done +.coinBSprite: + move.l a0,SPR3PTH(a6) + bra .done .arrowSprite: move.l a0,SPR4PTH(a6) bra .done -.dontEnable: - cmp.b #8,d4 - bge .dontEnableArrowSprite - move.l #deadSprite,SPR2PTH(a6) - bra .done -.dontEnableArrowSprite: - move.l #deadSprite,SPR4PTH(a6) .done: add.w #1,ITEM_INDEX(a1) +.spriteIsNotEnabled: move.l (sp)+,d0 rts @@ -196,7 +212,6 @@ GetSpriteSlot: lea item1,a1 add.l d0,a1 - ;; move.l #deadSprite,ITEM_SPRITE_ADDRESS(a1) move.w #336<