diff --git a/Sprites/Objects/collectible.asm b/Sprites/Objects/collectible.asm index 786cf81..1a6e139 100644 --- a/Sprites/Objects/collectible.asm +++ b/Sprites/Objects/collectible.asm @@ -177,4 +177,77 @@ Sprite_Pineapple_Draw: db $33 .sizes db $02 +} + +Sprite_SwordShield_Draw: +{ + JSL Sprite_PrepOamCoord + JSL Sprite_OAM_AllocateDeferToPlayer + + LDA $0DC0, X : CLC : ADC $0D90, X : TAY;Animation Frame + LDA .start_index, Y : STA $06 + + + PHX + LDX .nbr_of_tiles, Y ;amount of tiles -1 + LDY.b #$00 + .nextTile + + PHX ; Save current Tile Index? + + TXA : CLC : ADC $06 ; Add Animation Index Offset + + PHA ; Keep the value with animation index offset? + + ASL A : TAX + + REP #$20 + + LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y + AND.w #$0100 : STA $0E + INY + LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y + CLC : ADC #$0010 : CMP.w #$0100 + SEP #$20 + BCC .on_screen_y + + LDA.b #$F0 : STA ($90), Y ;Put the sprite out of the way + STA $0E + .on_screen_y + + PLX ; Pullback Animation Index Offset (without the *2 not 16bit anymore) + INY + LDA .chr, X : STA ($90), Y + INY + LDA .properties, X : STA ($90), Y + + PHY + + TYA : LSR #2 : TAY + + LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer + + PLY : INY + + PLX : DEX : BPL .nextTile + + PLX + + RTS + + + .start_index + db $00 + .nbr_of_tiles + db 2 + .x_offsets + dw 8, 8, 0 + .y_offsets + dw 0, 8, 0 + .chr + db $EC, $FC, $C0 + .properties + db $33, $33, $B3 + .sizes + db $00, $00, $02 } \ No newline at end of file