summaryrefslogtreecommitdiff
path: root/game.h
diff options
context:
space:
mode:
authorThomas Günther <tom@toms-cafe.de>2005-05-15 00:18:18 +0200
committerThomas Günther <tom@toms-cafe.de>2005-05-15 00:18:18 +0200
commit1b80a09e835a6cd68d4160f9799a7268e54a5b53 (patch)
treefa5f92848ed602216ed76ed84980921c9af95a07 /game.h
downloadvdr-plugin-spider-1b80a09e835a6cd68d4160f9799a7268e54a5b53.tar.gz
vdr-plugin-spider-1b80a09e835a6cd68d4160f9799a7268e54a5b53.tar.bz2
Initial versionv0.1.0
Diffstat (limited to 'game.h')
-rw-r--r--game.h89
1 files changed, 89 insertions, 0 deletions
diff --git a/game.h b/game.h
new file mode 100644
index 0000000..89137eb
--- /dev/null
+++ b/game.h
@@ -0,0 +1,89 @@
+/*
+ * Spider-Arachnid: A plugin for the Video Disk Recorder
+ *
+ * See the README file for copyright information and how to reach the author.
+ *
+ * $Id$
+ */
+
+#ifndef VDR_SPIDER_GAME_H
+#define VDR_SPIDER_GAME_H
+
+class SpiderSetup;
+class Deck;
+class Tableau;
+class Card;
+class Bitmap;
+#include <vdr/config.h>
+#include <vdr/osdbase.h>
+#include <vdr/osd.h>
+
+// Compatibility to older vdr versions
+#if VDRVERSNUM < 10307
+ #define cOsd_ cOsdBase
+#else
+ #define cOsd_ cOsd
+#endif
+
+
+/** --- class SpiderGame --------------------------------------------------- **/
+
+class SpiderGame : public cOsdObject
+{
+private:
+ const SpiderSetup& setup;
+ const char* confdir;
+ int width, height;
+ int xPos, yPos;
+ int xDist, yDist;
+ cOsd_* osd;
+ Bitmap* info;
+ const char* infoText;
+ Deck* deck;
+ Tableau* tableau;
+ unsigned int currentPile;
+ enum { cursorOnPile, selectedPile, cursorOnPack, gameOver } status;
+
+ /** Start a new game */
+ void start();
+
+ /** Paint all pieces of the game */
+ void paint();
+
+ /** Paint the cursor onto a card */
+ void paintCursor(int x, int y);
+
+ /** Paint the pack */
+ void paintPack();
+
+ /** Paint a final heap */
+ void paintFinal(unsigned int f);
+
+ /** Paint a pile */
+ void paintPile(unsigned int p);
+
+ /** Paint an empty card frame */
+ void paintFrame(int x, int y);
+
+ /** Paint a card back */
+ void paintBack(int x, int y);
+
+ /** Paint a card */
+ void paintCard(int x, int y, const Card& card);
+
+public:
+
+ /** Constructor */
+ SpiderGame(const SpiderSetup& setup, const char* confdir);
+
+ /** Destructor */
+ virtual ~SpiderGame();
+
+ /** Display the game on the OSD */
+ virtual void Show();
+
+ /** Process user events */
+ virtual eOSState ProcessKey(eKeys key);
+};
+
+#endif // VDR_SPIDER_GAME_H