diff --git a/include/blind.h b/include/blind.h index 512237b..3c113cb 100644 --- a/include/blind.h +++ b/include/blind.h @@ -18,10 +18,9 @@ static const int ante_lut[MAX_ANTE + 1] = {100, 300, 800, 2000, 5000, 11000, 200 #define BIG_BLIND_PB 2 #define BOSS_BLIND_PB 3 -#define BLIND_SPRITE_OFFSET 16 -#define SMALL_BLIND_TID 960 -#define BIG_BLIND_TID (BLIND_SPRITE_OFFSET * BIG_BLIND) -#define BOSS_BLIND_TID (BLIND_SPRITE_OFFSET * BOSS_BLIND) +#define SMALL_BLIND_TID 832 +#define BIG_BLIND_TID (SMALL_BLIND_TID + 16) +#define BOSS_BLIND_TID (BIG_BLIND_TID + 16) #define BLIND_TEXT_COLOR_INDEX 1 #define BLIND_SHADOW_COLOR_INDEX 2 diff --git a/include/card.h b/include/card.h index eb9a447..33e052a 100644 --- a/include/card.h +++ b/include/card.h @@ -6,11 +6,6 @@ #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/include/joker.h b/include/joker.h index b29d0a2..63e251b 100644 --- a/include/joker.h +++ b/include/joker.h @@ -1,16 +1,15 @@ #ifndef JOKER_H #define JOKER_H +#define JOKER_TID 880 // Tile ID for the starting index in the tile memory +#define JOKER_SPRITE_OFFSET 16 // Offset for the joker sprites +#define JOKER_PB 4 // Palette bank for the default jokers +#define JOKER_STARTING_LAYER 27 + #include #include "sprite.h" #include "card.h" -#include "game.h" - -#define JOKER_TID (MAX_HAND_SIZE + MAX_SELECTION_SIZE) * JOKER_SPRITE_OFFSET // Tile ID for the starting index in the tile memory -#define JOKER_SPRITE_OFFSET 16 // Offset for the joker sprites -#define JOKER_PB 4 // Palette bank for the default jokers -#define JOKER_STARTING_LAYER 27 #define BASE_EDITION 0 #define FOIL_EDITION 1 diff --git a/source/card.c b/source/card.c index 0db4130..fe50fa2 100644 --- a/source/card.c +++ b/source/card.c @@ -4,7 +4,6 @@ #include #include "deck_gfx.h" -#include "graphic_utils.h" // Audio #include "soundbank.h" @@ -19,7 +18,8 @@ const static u16 card_sprite_lut[NUM_SUITS][NUM_RANKS] = { void card_init() { - GRIT_CPY(&pal_obj_mem[CARD_PB], deck_gfxPal); + GRIT_CPY(&tile_mem[4], deck_gfxTiles); + GRIT_CPY(pal_obj_mem, deck_gfxPal); } // Card methods @@ -149,10 +149,8 @@ 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); - memcpy32(&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); 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, tile_index, 0, layer + CARD_STARTING_LAYER); + 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); } void card_object_shake(CardObject *card_object, mm_word sound_id) diff --git a/source/joker.c b/source/joker.c index 767c969..f76f387 100644 --- a/source/joker.c +++ b/source/joker.c @@ -36,7 +36,8 @@ static bool used_layers[MAX_JOKER_OBJECTS] = {false}; // Track used layers for j void joker_init() { - GRIT_CPY(&pal_obj_mem[PAL_ROW_LEN * JOKER_PB], joker_gfxPal); + GRIT_CPY(&tile_mem[4][JOKER_TID], joker_gfxTiles); + memcpy16(&pal_obj_mem[PAL_ROW_LEN * JOKER_PB], joker_gfxPal, sizeof(joker_gfxPal) / 2); } Joker *joker_new(u8 id) @@ -99,18 +100,14 @@ JokerObject *joker_object_new(Joker *joker) } joker_object->joker = joker; - - int tile_index = JOKER_TID + (layer * JOKER_SPRITE_OFFSET); - memcpy32(&tile_mem[4][tile_index], &joker_gfxTiles[joker->id * TILE_SIZE * JOKER_SPRITE_OFFSET], TILE_SIZE * JOKER_SPRITE_OFFSET); joker_object->sprite = sprite_new ( ATTR0_SQUARE | ATTR0_4BPP | ATTR0_AFF, ATTR1_SIZE_32, - tile_index, + JOKER_TID + (JOKER_SPRITE_OFFSET * joker->id), JOKER_PB, JOKER_STARTING_LAYER + layer ); - joker_object->tx = 0; // Target position joker_object->ty = 0; joker_object->x = 0;