/** * Copyright (c) 2022 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #pragma once #include "../../libs.h" #include "CARDS_TILES.h" #include "../../poker/card.h" #include "../spritetileset.h" #include "../sprites.h" #define SPRITE_CARD_VRAM_START SPRITE_TILESET_VRAM_END_LOW #define SPRITE_CARD_VRAM_END SPRITE_CARD_VRAM_START + CARDS_TILES_IMAGE_TILES #define SPRITE_CARD_BLANK SPRITE_TILESET_WHITE_LOW // Information about the card as a tilemap #define SPRITE_CARD_WIDTH 4 #define SPRITE_CARD_HEIGHT 6 #define SPRITE_CARD_TILE_COUNT (SPRITE_CARD_WIDTH * SPRITE_CARD_HEIGHT) // Edges #define SPRITE_CARD_TOP SPRITE_CARD_VRAM_START + 10 #define SPRITE_CARD_BOTTOM SPRITE_CARD_TOP + 1 #define SPRITE_CARD_RIGHT SPRITE_CARD_BOTTOM + 1 #define SPRITE_CARD_LEFT SPRITE_CARD_RIGHT + 1 // Corners (no numbers) #define SPRITE_CARD_TOP_RIGHT SPRITE_CARD_VRAM_START + 14 #define SPRITE_CARD_BOTTOM_LEFT SPRITE_CARD_TOP_RIGHT + 1 #define SPRITE_CARD_PICTURE_TOP_RIGHT SPRITE_CARD_VRAM_START + 115 #define SPRITE_CARD_PICTURE_BOTTOM_LEFT SPRITE_CARD_VRAM_START + 152 // Numbers (normal) #define SPRITE_CARD_ACE_TOP SPRITE_CARD_VRAM_START + 0 #define SPRITE_CARD_TWO_TOP SPRITE_CARD_ACE_TOP + 1 #define SPRITE_CARD_THREE_TOP SPRITE_CARD_ACE_TOP + 2 #define SPRITE_CARD_FOUR_TOP SPRITE_CARD_ACE_TOP + 3 #define SPRITE_CARD_FIVE_TOP SPRITE_CARD_ACE_TOP + 4 #define SPRITE_CARD_SIX_TOP SPRITE_CARD_ACE_TOP + 5 #define SPRITE_CARD_SEVEN_TOP SPRITE_CARD_ACE_TOP + 6 #define SPRITE_CARD_EIGHT_TOP SPRITE_CARD_ACE_TOP + 7 #define SPRITE_CARD_NINE_TOP SPRITE_CARD_ACE_TOP + 8 #define SPRITE_CARD_TEN_TOP SPRITE_CARD_ACE_TOP + 9 // Numbers (flipped) #define SPRITE_CARD_ACE_BOTTOM SPRITE_CARD_VRAM_START + 16 #define SPRITE_CARD_TWO_BOTTOM SPRITE_CARD_ACE_BOTTOM + 1 #define SPRITE_CARD_THREE_BOTTOM SPRITE_CARD_ACE_BOTTOM + 2 #define SPRITE_CARD_FOUR_BOTTOM SPRITE_CARD_ACE_BOTTOM + 3 #define SPRITE_CARD_FIVE_BOTTOM SPRITE_CARD_ACE_BOTTOM + 4 #define SPRITE_CARD_SIX_BOTTOM SPRITE_CARD_ACE_BOTTOM + 5 #define SPRITE_CARD_SEVEN_BOTTOM SPRITE_CARD_ACE_BOTTOM + 6 #define SPRITE_CARD_EIGHT_BOTTOM SPRITE_CARD_ACE_BOTTOM + 7 #define SPRITE_CARD_NINE_BOTTOM SPRITE_CARD_ACE_BOTTOM + 8 #define SPRITE_CARD_TEN_BOTTOM SPRITE_CARD_ACE_BOTTOM + 9 // Jack #define SPRITE_CARD_JACK_0 SPRITE_CARD_VRAM_START + 112 #define SPRITE_CARD_JACK_1 SPRITE_CARD_JACK_0 + 1 #define SPRITE_CARD_JACK_2 SPRITE_CARD_JACK_1 + 1 //#define SPRITE_CARD_JACK_3 NULL #define SPRITE_CARD_JACK_4 SPRITE_CARD_JACK_0 + CARDS_TILES_IMAGE_COLUMNS //#define SPRITE_CARD_JACK_5 NULL #define SPRITE_CARD_JACK_6 SPRITE_CARD_JACK_4 + 2 #define SPRITE_CARD_JACK_7 SPRITE_CARD_JACK_6 + 1 #define SPRITE_CARD_JACK_8 SPRITE_CARD_JACK_4 + CARDS_TILES_IMAGE_COLUMNS #define SPRITE_CARD_JACK_9 SPRITE_CARD_JACK_8 + 1 #define SPRITE_CARD_JACK_10 SPRITE_CARD_JACK_9 + 1 #define SPRITE_CARD_JACK_11 SPRITE_CARD_JACK_10 + 1 #define SPRITE_CARD_JACK_12 SPRITE_CARD_JACK_8 + CARDS_TILES_IMAGE_COLUMNS #define SPRITE_CARD_JACK_13 SPRITE_CARD_JACK_12 + 1 #define SPRITE_CARD_JACK_14 SPRITE_CARD_JACK_13 + 1 #define SPRITE_CARD_JACK_15 SPRITE_CARD_JACK_14 + 1 #define SPRITE_CARD_JACK_16 SPRITE_CARD_JACK_12 + CARDS_TILES_IMAGE_COLUMNS #define SPRITE_CARD_JACK_17 SPRITE_CARD_JACK_16 + 1 //#define SPRITE_CARD_JACK_18 NULL #define SPRITE_CARD_JACK_19 SPRITE_CARD_JACK_17 + 2 //#define SPRITE_CARD_JACK_20 NULL #define SPRITE_CARD_JACK_21 SPRITE_CARD_JACK_16 + CARDS_TILES_IMAGE_COLUMNS + 1 #define SPRITE_CARD_JACK_22 SPRITE_CARD_JACK_21 + 1 #define SPRITE_CARD_JACK_23 SPRITE_CARD_JACK_22 + 1 #define SPRITE_CARD_JACK_DIAMONDS_TOP SPRITE_CARD_VRAM_START + 88 #define SPRITE_CARD_JACK_DIAMONDS_BOTTOM SPRITE_CARD_JACK_DIAMONDS_TOP + 1 #define SPRITE_CARD_JACK_HEARTS_TOP SPRITE_CARD_JACK_DIAMONDS_BOTTOM + 1 #define SPRITE_CARD_JACK_HEARTS_BOTTOM SPRITE_CARD_JACK_HEARTS_TOP + 1 #define SPRITE_CARD_JACK_SPADES_TOP SPRITE_CARD_JACK_HEARTS_BOTTOM + 1 #define SPRITE_CARD_JACK_SPADES_BOTTOM SPRITE_CARD_JACK_SPADES_TOP + 1 #define SPRITE_CARD_JACK_CLUBS_TOP SPRITE_CARD_JACK_SPADES_BOTTOM + 1 #define SPRITE_CARD_JACK_CLUBS_BOTTOM SPRITE_CARD_JACK_CLUBS_TOP + 1 // Queen #define SPRITE_CARD_QUEEN_0 SPRITE_CARD_VRAM_START + 116 #define SPRITE_CARD_QUEEN_1 SPRITE_CARD_QUEEN_0 + 1 #define SPRITE_CARD_QUEEN_2 SPRITE_CARD_QUEEN_1 + 1 //#define SPRITE_CARD_QUEEN_3 NULL #define SPRITE_CARD_QUEEN_4 SPRITE_CARD_QUEEN_0 + CARDS_TILES_IMAGE_COLUMNS //#define SPRITE_CARD_QUEEN_5 NULL #define SPRITE_CARD_QUEEN_6 SPRITE_CARD_QUEEN_4 + 2 #define SPRITE_CARD_QUEEN_7 SPRITE_CARD_QUEEN_6 + 1 #define SPRITE_CARD_QUEEN_8 SPRITE_CARD_QUEEN_4 + CARDS_TILES_IMAGE_COLUMNS #define SPRITE_CARD_QUEEN_9 SPRITE_CARD_QUEEN_8 + 1 #define SPRITE_CARD_QUEEN_10 SPRITE_CARD_QUEEN_9 + 1 #define SPRITE_CARD_QUEEN_11 SPRITE_CARD_QUEEN_10 + 1 #define SPRITE_CARD_QUEEN_12 SPRITE_CARD_QUEEN_8 + CARDS_TILES_IMAGE_COLUMNS #define SPRITE_CARD_QUEEN_13 SPRITE_CARD_QUEEN_12 + 1 #define SPRITE_CARD_QUEEN_14 SPRITE_CARD_QUEEN_13 + 1 #define SPRITE_CARD_QUEEN_15 SPRITE_CARD_QUEEN_14 + 1 #define SPRITE_CARD_QUEEN_16 SPRITE_CARD_QUEEN_12 + CARDS_TILES_IMAGE_COLUMNS #define SPRITE_CARD_QUEEN_17 SPRITE_CARD_QUEEN_16 + 1 //#define SPRITE_CARD_QUEEN_18 NULL #define SPRITE_CARD_QUEEN_19 SPRITE_CARD_QUEEN_17 + 2 //#define SPRITE_CARD_QUEEN_20 NULL #define SPRITE_CARD_QUEEN_21 SPRITE_CARD_QUEEN_16 + CARDS_TILES_IMAGE_COLUMNS + 1 #define SPRITE_CARD_QUEEN_22 SPRITE_CARD_QUEEN_21 + 1 #define SPRITE_CARD_QUEEN_23 SPRITE_CARD_QUEEN_22 + 1 #define SPRITE_CARD_QUEEN_DIAMONDS_TOP SPRITE_CARD_VRAM_START + 96 #define SPRITE_CARD_QUEEN_DIAMONDS_BOTTOM SPRITE_CARD_QUEEN_DIAMONDS_TOP + 1 #define SPRITE_CARD_QUEEN_HEARTS_TOP SPRITE_CARD_QUEEN_DIAMONDS_BOTTOM + 1 #define SPRITE_CARD_QUEEN_HEARTS_BOTTOM SPRITE_CARD_QUEEN_HEARTS_TOP + 1 #define SPRITE_CARD_QUEEN_SPADES_TOP SPRITE_CARD_QUEEN_HEARTS_BOTTOM + 1 #define SPRITE_CARD_QUEEN_SPADES_BOTTOM SPRITE_CARD_QUEEN_SPADES_TOP + 1 #define SPRITE_CARD_QUEEN_CLUBS_TOP SPRITE_CARD_QUEEN_SPADES_BOTTOM + 1 #define SPRITE_CARD_QUEEN_CLUBS_BOTTOM SPRITE_CARD_QUEEN_CLUBS_TOP + 1 // King #define SPRITE_CARD_KING_0 SPRITE_CARD_VRAM_START + 160 #define SPRITE_CARD_KING_1 SPRITE_CARD_KING_0 + 1 #define SPRITE_CARD_KING_2 SPRITE_CARD_KING_1 + 1 //#define SPRITE_CARD_KING_3 NULL #define SPRITE_CARD_KING_4 SPRITE_CARD_KING_0 + CARDS_TILES_IMAGE_COLUMNS //#define SPRITE_CARD_KING_5 NULL #define SPRITE_CARD_KING_6 SPRITE_CARD_KING_4 + 2 #define SPRITE_CARD_KING_7 SPRITE_CARD_KING_6 + 1 #define SPRITE_CARD_KING_8 SPRITE_CARD_KING_4 + CARDS_TILES_IMAGE_COLUMNS #define SPRITE_CARD_KING_9 SPRITE_CARD_KING_8 + 1 #define SPRITE_CARD_KING_10 SPRITE_CARD_KING_9 + 1 #define SPRITE_CARD_KING_11 SPRITE_CARD_KING_10 + 1 #define SPRITE_CARD_KING_12 SPRITE_CARD_KING_8 + CARDS_TILES_IMAGE_COLUMNS #define SPRITE_CARD_KING_13 SPRITE_CARD_KING_12 + 1 #define SPRITE_CARD_KING_14 SPRITE_CARD_KING_13 + 1 #define SPRITE_CARD_KING_15 SPRITE_CARD_KING_14 + 1 #define SPRITE_CARD_KING_16 SPRITE_CARD_KING_12 + CARDS_TILES_IMAGE_COLUMNS #define SPRITE_CARD_KING_17 SPRITE_CARD_KING_16 + 1 //#define SPRITE_CARD_KING_18 NULL #define SPRITE_CARD_KING_19 SPRITE_CARD_KING_17 + 2 //#define SPRITE_CARD_KING_20 NULL #define SPRITE_CARD_KING_21 SPRITE_CARD_KING_16 + CARDS_TILES_IMAGE_COLUMNS + 1 #define SPRITE_CARD_KING_22 SPRITE_CARD_KING_21 + 1 #define SPRITE_CARD_KING_23 SPRITE_CARD_KING_22 + 1 #define SPRITE_CARD_KING_DIAMONDS_TOP SPRITE_CARD_VRAM_START + 104 #define SPRITE_CARD_KING_DIAMONDS_BOTTOM SPRITE_CARD_KING_DIAMONDS_TOP + 1 #define SPRITE_CARD_KING_HEARTS_TOP SPRITE_CARD_KING_DIAMONDS_BOTTOM + 1 #define SPRITE_CARD_KING_HEARTS_BOTTOM SPRITE_CARD_KING_HEARTS_TOP + 1 #define SPRITE_CARD_KING_SPADES_TOP SPRITE_CARD_KING_HEARTS_BOTTOM + 1 #define SPRITE_CARD_KING_SPADES_BOTTOM SPRITE_CARD_KING_SPADES_TOP + 1 #define SPRITE_CARD_KING_CLUBS_TOP SPRITE_CARD_KING_SPADES_BOTTOM + 1 #define SPRITE_CARD_KING_CLUBS_BOTTOM SPRITE_CARD_KING_CLUBS_TOP + 1