summary refs log tree commit diff
path: root/cards/cards.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cards/cards.h80
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