// This may look like C code, but it is really -*- C++ -*- /////////////////////////////////////////////////////////////////////////// // // AMIGA Minesweeper - Global definitions // // (c) 1992 Hubert Feyrer (c9020@rrzc1.rz.uni-regensburg.de) // /////////////////////////////////////////////////////////////////////////// #ifndef _MINE_H #define _MINE_H #define WIN_T "AMIGA Minesweeper V0.98" enum GameStat { GAME_WON, GAME_LOST, GAME_QUIT, GAME_RESTART, GAME_CONT }; class Field; struct Offset { int dx; int dy; }; extern "C" { struct VisualInfo *vinfo; struct IntuiBase *IntuitionBase; struct GraphBase *GfxBase; struct Library *GadToolsBase; struct Window *win; struct Gadget *glist; struct Screen *scr; struct timerequest treq; // Für Spielzeit-Anfrage struct MsgPort *tport; // -"- ----"---- ---"--- }; extern int fxs; // field x size extern int fys; // field y size extern Field ***minefield; // Das Minenfeld! extern int X0; // X-Offset extern int Y0; // Y-Offset extern int win_w; // Fensterhöhe extern int win_h; // Fensterbreite extern int lenx; // Feldgröße extern int leny; // Feldgröße extern int playtime; // Verspielte Zeit in Sekunden extern int minesleft; // Anzahl unentdeckter Minen extern Gadget *numgad; // Textgadget, um Restminen anzuzeigen extern char tnumgad[5]; // minesleft extern Gadget *timegad; // Um Spielzeit anzuzeigen extern char ttimegad[5]; // playtime extern Gadget *gogad; // Restart-Button extern char *argv0; // Programmname extern Offset validfields[8]; // Mögliche Nachbarfelder extern int countdown; // Nach zu markieren/aufdeckende Felder /* ** in init.cc */ void init(int p); void shutdown(int rc, char *msg=NULL); void showmines(void); void calc_cnt(void); int rnd(int high); void hidemines(int p); void removemines(void); /* ** in mine.cc */ void game_won(void); void game_lost(void); inline int inminefield(int i, int j){ return (i>=0 && j>=0 && i