diff options
Diffstat (limited to '')
-rw-r--r-- | cards/cards.h | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/cards/cards.h b/cards/cards.h new file mode 100644 index 0000000..9625cb8 --- /dev/null +++ b/cards/cards.h @@ -0,0 +1,80 @@ +/* Copyright (C) 2019 C. McEnroe <june@causal.agency> + * + * 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 <http://www.gnu.org/licenses/>. + */ + +#ifndef CARDS_H +#define CARDS_H + +#include <SDL_rwops.h> +#include <SDL_surface.h> +#include <stddef.h> + +enum { + Cards_CardWidth = 71, + Cards_CardHeight = 96, + Cards_KingWidth = 32, + Cards_KingHeight = 32, +}; + +enum Cards_Card { + Cards_Club, + Cards_Diamond = 13, + Cards_Heart = 26, + Cards_Spade = 39, + + // Add rank to suit to obtain card 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_CardCount, +}; + +enum Cards_FreeCell { + Cards_KingRight = 1, + Cards_KingLeft, + Cards_KingWin, + Cards_FreeCellCount, +}; + +enum Cards_Flag { + Cards_ColorKey = 1 << 0, + Cards_AlphaCorners = 1 << 1, + Cards_BlackBorders = 1 << 2, +}; + +int +Cards_LoadCards( + SDL_Surface *surfaces[], size_t count, + SDL_RWops *rw, enum Cards_Flag flags +); + +int +Cards_LoadFreeCell( + SDL_Surface *surfaces[], size_t count, + SDL_RWops *rw, enum Cards_Flag flags +); + +int Cards_InvertSurface(SDL_Surface *surface); + +#endif |