rnd-20030413-1-src
[rocksndiamonds.git] / src / libgame / system.h
index af31de3f1b7dc3516ab3fdb18cd223a30c63469a..930cc113f0ac38d3015eca1d7d6145dc1b3dc786 100644 (file)
@@ -42,6 +42,8 @@
 
 #define BLIT_OPAQUE            0
 #define BLIT_MASKED            1
+#define BLIT_INVERSE           2
+#define BLIT_ON_BACKGROUND     3
 
 #define FULLSCREEN_NOT_AVAILABLE FALSE
 #define FULLSCREEN_AVAILABLE    TRUE
@@ -66,6 +68,7 @@
 #define DEFAULT_KEY_LOAD_GAME  KSYM_F2
 #define DEFAULT_KEY_TOGGLE_PAUSE KSYM_space
 
+
 /* values for move directions and special "button" keys */
 #define MV_BIT_LEFT            0
 #define MV_BIT_RIGHT           1
@@ -88,6 +91,7 @@
                                 (x) == MV_RIGHT ? MV_BIT_RIGHT :       \
                                 (x) == MV_UP    ? MV_BIT_UP    : MV_BIT_DOWN)
 
+
 /* values for button status */
 #define MB_NOT_PRESSED         FALSE
 #define MB_NOT_RELEASED                TRUE
 #define MB_MIDDLEBUTTON                2
 #define MB_RIGHTBUTTON         3
 
+
 /* values for animation mode (frame order and direction) */
 #define ANIM_NONE              0
 #define ANIM_LOOP              (1 << 0)
 #define ANIM_RANDOM            (1 << 4)
 #define ANIM_REVERSE           (1 << 5)
 
+
 /* values for redraw_mask */
 #define REDRAW_NONE            (0)
 #define REDRAW_ALL             (1 << 0)
 #define REDRAW_FPS             (1 << 11)
 #define REDRAWTILES_THRESHOLD  (SCR_FIELDX * SCR_FIELDY / 2)
 
+
+/* values for mouse cursor */
+#define CURSOR_DEFAULT         0
+#define CURSOR_PLAYFIELD       1
+
+
 /* maximum number of parallel players supported by libgame functions */
 #define MAX_PLAYERS            4
 
 #define LEVELS_DIRECTORY       "levels"
 #define TAPES_DIRECTORY                "tapes"
 #define SCORES_DIRECTORY       "scores"
+#define DOCS_DIRECTORY         "docs"
 
 #if !defined(PLATFORM_MSDOS)
 #define GRAPHICS_SUBDIR                "gfx_classic"
@@ -243,7 +256,7 @@ struct ProgramInfo
 
   char *x11_icon_filename;
   char *x11_iconmask_filename;
-  char *msdos_pointer_filename;
+  char *msdos_cursor_filename;
 
   char *cookie_prefix;
   char *filename_prefix;       /* prefix to cut off from DOS filenames */
@@ -267,6 +280,7 @@ struct OptionInfo
   char *graphics_directory;
   char *sounds_directory;
   char *music_directory;
+  char *docs_directory;
   char *execute_command;
 
   boolean serveronly;
@@ -308,9 +322,12 @@ struct FontBitmapInfo
   int src_x, src_y;            /* start position of animation frames */
   int width, height;           /* width/height of each animation frame */
   int draw_x, draw_y;          /* offset for drawing font characters */
+  int num_chars;
+  int num_chars_per_line;
 
 #if defined(TARGET_X11_NATIVE_PERFORMANCE_WORKAROUND)
   Pixmap *clip_mask;           /* single-char-only clip mask array for X11 */
+  int last_num_chars;          /* to free last font clip masks */
 #endif
 };
 
@@ -339,7 +356,6 @@ struct GfxInfo
   int num_fonts;
   struct FontBitmapInfo *font_bitmap_info;
   int (*select_font_function)(int);
-  Pixel inverse_text_color;
 
   int anim_random_frame;
 };
@@ -515,6 +531,12 @@ struct ArtworkInfo
   char *mus_current_identifier;
 };
 
+struct ValueTextInfo
+{
+  int value;
+  char *text;
+};
+
 struct ConfigInfo
 {
   char *token;
@@ -688,6 +710,8 @@ void ReloadCustomImage(Bitmap *, char *);
 Bitmap *ZoomBitmap(Bitmap *, int, int);
 void CreateBitmapWithSmallBitmaps(Bitmap *);
 
+void SetMouseCursor(int);
+
 inline void OpenAudio(void);
 inline void CloseAudio(void);
 inline void SetAudioMode(boolean);