diff --git a/include/card.h b/include/card.h index 33e052a..eb9a447 100644 --- a/include/card.h +++ b/include/card.h @@ -6,6 +6,11 @@ #include "sprite.h" +#define CARD_TID 0 +#define CARD_SPRITE_OFFSET 16 +#define CARD_PB 0 +#define CARD_STARTING_LAYER 0 + // Card suits #define HEARTS 0 #define CLUBS 1 diff --git a/source/card.c b/source/card.c index fe50fa2..1eaf115 100644 --- a/source/card.c +++ b/source/card.c @@ -4,6 +4,7 @@ #include #include "deck_gfx.h" +#include "graphic_utils.h" // Audio #include "soundbank.h" @@ -18,7 +19,7 @@ const static u16 card_sprite_lut[NUM_SUITS][NUM_RANKS] = { void card_init() { - GRIT_CPY(&tile_mem[4], deck_gfxTiles); + //GRIT_CPY(&tile_mem[4], deck_gfxTiles); GRIT_CPY(pal_obj_mem, deck_gfxPal); } @@ -149,8 +150,10 @@ void card_object_update(CardObject *card_object) void card_object_set_sprite(CardObject *card_object, int layer) { + int tile_index = CARD_TID + (layer * CARD_SPRITE_OFFSET); + memcpy16(&tile_mem[4][tile_index], &deck_gfxTiles[card_sprite_lut[card_object->card->suit][card_object->card->rank] * TILE_SIZE], TILE_SIZE * CARD_SPRITE_OFFSET * 2); sprite_destroy(&card_object->sprite); // Destroy the old sprite if it exists - card_object->sprite = sprite_new(ATTR0_SQUARE | ATTR0_4BPP | ATTR0_AFF, ATTR1_SIZE_32, card_sprite_lut[card_object->card->suit][card_object->card->rank], 0, layer); + card_object->sprite = sprite_new(ATTR0_SQUARE | ATTR0_4BPP | ATTR0_AFF, ATTR1_SIZE_32, tile_index, 0, layer); } void card_object_shake(CardObject *card_object, mm_word sound_id)