From 1b80a09e835a6cd68d4160f9799a7268e54a5b53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=BCnther?= Date: Sun, 15 May 2005 00:18:18 +0200 Subject: Initial version --- game.h | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 game.h (limited to 'game.h') 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 +#include +#include + +// 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 -- cgit v1.2.3