/* Copyright (C) 2019 C. McEnroe * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ #ifndef CARDS_H #define CARDS_H #include #include enum { Cards_Width = 71, Cards_Height = 96, }; enum { Cards_Club, Cards_Diamond = 13, Cards_Heart = 26, Cards_Spade = 39, // Add rank to suit to obtain card face index. Cards_A = 1, Cards_2, Cards_3, Cards_4, Cards_5, Cards_6, Cards_7, Cards_8, Cards_9, Cards_10, Cards_J, Cards_Q, Cards_K, Cards_Empty = 53, Cards_Back1, Cards_Back2, Cards_Back3, Cards_Back4, Cards_Back5, Cards_Back6, Cards_Back7, Cards_Back8, Cards_Back9, Cards_Back10, Cards_Back11, Cards_Back12, Cards_X = 67, Cards_O, Cards_Count, }; // Some pointers will be NULL since there are gaps in the indices. struct Cards { SDL_Surface *surfaces[Cards_Count]; }; enum Cards_Flags { // Set color key for Cards_Empty, Cards_X, Cards_O. Cards_ColorKey = 1 << 0, // Set alpha in card corners. Cards_AlphaCorners = 1 << 1, // Set red card borders to black. Cards_BlackBorders = 1 << 2, }; struct Cards *Cards_Load(SDL_RWops *rw, enum Cards_Flags flags); void Cards_Free(struct Cards *cards); #endif