rnd-20001202-1-src
[rocksndiamonds.git] / src / main.h
index 15c21e81fb11a3327d0d5f3ad29f93f71fcd56c1..9eb316c2e5635706f9489b41faae740af75d3100 100644 (file)
 #define DEBUG_TIMING   0
 #endif
 
-typedef unsigned char boolean;
-typedef unsigned char byte;
-
-#include "system.h"
+#if 0
+#include "libgame/libgame.h"
+#endif
 
 #ifndef FALSE
 #define FALSE          0
@@ -41,13 +40,15 @@ typedef unsigned char byte;
 #define WIN_XSIZE      672
 #define WIN_YSIZE      560
 #define WIN_SDL_DEPTH  16      /* !!! change this !!! */
-#ifndef MSDOS
+
+#if !defined(PLATFORM_MSDOS)
 #define WIN_XPOS       0
 #define WIN_YPOS       0
-#else  /* MSDOS */
+#else
 #define WIN_XPOS       ((XRES - WIN_XSIZE) / 2)
 #define WIN_YPOS       ((YRES - WIN_YSIZE) / 2)
-#endif /* MSDOS */
+#endif
+
 #define SCR_FIELDX     17
 #define SCR_FIELDY     17
 #define MAX_BUF_XSIZE  (SCR_FIELDX + 2)
@@ -199,12 +200,11 @@ typedef unsigned char byte;
 #define PIX_SMALLFONT          8
 #define PIX_MEDIUMFONT         9
 /* Bitmaps without graphic file */
-#define PIX_DB_BACK            10
-#define PIX_DB_DOOR            11
-#define PIX_DB_FIELD           12
+#define PIX_DB_DOOR            10
+#define PIX_DB_FIELD           11
 
 #define NUM_PICTURES           10
-#define NUM_BITMAPS            13
+#define NUM_BITMAPS            12
 
 /* boundaries of arrays etc. */
 #define MAX_PLAYER_NAME_LEN    10
@@ -236,19 +236,6 @@ struct HiScore
   int Score;
 };
 
-struct OptionInfo
-{
-  char *display_name;
-  char *server_host;
-  int server_port;
-  char *ro_base_directory;
-  char *rw_base_directory;
-  char *level_directory;
-  boolean serveronly;
-  boolean network;
-  boolean verbose;
-};
-
 struct SetupJoystickInfo
 {
   char *device_name;
@@ -294,6 +281,7 @@ struct SetupInfo
   boolean team_mode;
   boolean handicap;
   boolean time_limit;
+  boolean fullscreen;
 
   struct SetupInputInfo input[MAX_PLAYERS];
 };
@@ -442,28 +430,30 @@ struct GameInfo
 
 struct GlobalInfo
 {
-  int dummy;
+  float frames_per_second;
+  boolean fps_slowdown;
+  int fps_slowdown_factor;
 };
 
-extern Display        *display;
-extern Visual         *visual;
-extern int             screen;
+#if 0
 extern DrawWindow      window;
-extern GC              gc, clip_gc[], tile_clip_gc;
+extern GC              gc;
+#endif
+
+extern GC              clip_gc[], tile_clip_gc;
 extern Bitmap          pix[];
 extern Bitmap          pix_masked[], tile_masked[];
 extern Pixmap          clipmask[], tile_clipmask[];
 
-#ifdef USE_XPM_LIBRARY
-extern XpmAttributes   xpm_att[];
-#endif
-
 extern DrawBuffer      drawto, drawto_field, backbuffer, fieldbuffer;
+#if 0
 extern Colormap                cmap;
+#endif
 
-extern int             sound_pipe[2];
-extern int             sound_device;
+#if 0
 extern char           *sound_device_name;
+#endif
+
 extern int             joystick_device;
 extern char           *joystick_device_name[];
 
@@ -476,8 +466,11 @@ extern int         button_status;
 extern boolean         motion_status;
 extern int             key_joystick_mapping;
 extern int             global_joystick_status, joystick_status;
-extern int             sound_status;
-extern boolean         sound_loops_allowed;
+
+#if 0
+extern boolean         fullscreen_available;
+extern boolean         fullscreen_enabled;
+#endif
 
 extern boolean         redraw[MAX_BUF_XSIZE][MAX_BUF_YSIZE];
 extern int             redraw_x1, redraw_y1;
@@ -513,7 +506,12 @@ extern int         SBX_Left, SBX_Right;
 extern int             SBY_Upper, SBY_Lower;
 extern int             ZX,ZY, ExitX,ExitY;
 extern int             AllPlayersGone;
-extern int             FrameCounter, TimeFrames, TimePlayed, TimeLeft;
+
+#if 0
+extern int             FrameCounter;
+#endif
+
+extern int             TimeFrames, TimePlayed, TimeLeft;
 extern boolean         SiebAktiv;
 extern int             SiebCount;
 
@@ -524,18 +522,28 @@ extern struct LevelInfo           level;
 extern struct PlayerInfo       stored_player[], *local_player;
 extern struct HiScore          highscore[];
 extern struct TapeInfo         tape;
-extern struct SoundInfo                Sound[];
+extern struct SampleInfo       Sound[];
 extern struct JoystickInfo     joystick[];
+
+#if 0
 extern struct OptionInfo       options;
+#endif
+
 extern struct SetupInfo                setup;
 extern struct GameInfo         game;
+
+#if 0
+extern struct VideoSystemInfo  video;
+extern struct AudioSystemInfo  audio;
+#endif
+
 extern struct GlobalInfo       global;
 
 extern char            *sound_name[];
 extern int             background_loop[];
 extern int             num_bg_loops;
 extern char            *element_info[];
-
+extern int             num_element_info;
 
 /* often used screen positions */
 #define SX                     8
@@ -1590,14 +1598,14 @@ extern char             *element_info[];
 #define NUM_SOUNDS             62
 
 /* default input keys */
-#define DEFAULT_KEY_LEFT       KEY_Left
-#define DEFAULT_KEY_RIGHT      KEY_Right
-#define DEFAULT_KEY_UP         KEY_Up
-#define DEFAULT_KEY_DOWN       KEY_Down
-#define DEFAULT_KEY_SNAP       KEY_Shift_L
-#define DEFAULT_KEY_BOMB       KEY_Shift_R
-#define DEFAULT_KEY_OKAY       KEY_Return
-#define DEFAULT_KEY_CANCEL     KEY_Escape
+#define DEFAULT_KEY_LEFT       KSYM_Left
+#define DEFAULT_KEY_RIGHT      KSYM_Right
+#define DEFAULT_KEY_UP         KSYM_Up
+#define DEFAULT_KEY_DOWN       KSYM_Down
+#define DEFAULT_KEY_SNAP       KSYM_Shift_L
+#define DEFAULT_KEY_BOMB       KSYM_Shift_R
+#define DEFAULT_KEY_OKAY       KSYM_Return
+#define DEFAULT_KEY_CANCEL     KSYM_Escape
 
 /* directions for moving */
 #define MV_NO_MOVING           0
@@ -1649,15 +1657,15 @@ extern char             *element_info[];
 #define TAPES_DIRECTORY                "tapes"
 #define SCORES_DIRECTORY       "scores"
 
-#ifdef USE_SDL_LIBRARY
-#define PROGRAM_VERSION_STRING "1.4.0 SDL"
-#else
-#define PROGRAM_VERSION_STRING "1.4.0"
-#endif
+#define PROGRAM_VERSION_STRING "1.5.0"
 #define PROGRAM_TITLE_STRING   "Rocks'n'Diamonds"
 #define PROGRAM_AUTHOR_STRING  "Holger Schemel"
-#define WINDOW_TITLE_STRING    PROGRAM_TITLE_STRING " " PROGRAM_VERSION_STRING
-#define COPYRIGHT_STRING       "Copyright ^1995-2000 by " PROGRAM_AUTHOR_STRING
+#define PROGRAM_RIGHTS_STRING  "Copyright ^1995-2000 by"
+#define PROGRAM_DOS_PORT_STRING        "DOS port done by Guido Schulz"
+#define PROGRAM_IDENT_STRING   PROGRAM_VERSION_STRING " " TARGET_STRING
+#define WINDOW_TITLE_STRING    PROGRAM_TITLE_STRING " " PROGRAM_IDENT_STRING
+#define WINDOW_SUBTITLE_STRING PROGRAM_RIGHTS_STRING " " PROGRAM_AUTHOR_STRING
+#define ICON_TITLE_STRING      PROGRAM_TITLE_STRING
 
 /* default name for empty highscore entry */
 #define EMPTY_PLAYER_NAME      "no name"
@@ -1675,9 +1683,9 @@ extern char               *element_info[];
 #define MB_MENU_CHOICE         FALSE
 #define MB_MENU_MARK           TRUE
 #define MB_MENU_INITIALIZE     (-1)
-#define MB_LEFT                        1
-#define MB_MIDDLE              2
-#define MB_RIGHT               3
+#define MB_LEFTBUTTON          1
+#define MB_MIDDLEBUTTON                2
+#define MB_RIGHTBUTTON         3
 
 /* values for redraw_mask */
 #define REDRAW_ALL             (1 << 0)
@@ -1699,6 +1707,7 @@ extern char               *element_info[];
 #define REDRAW_MAIN            (REDRAW_FIELD | \
                                 REDRAW_TILES | \
                                 REDRAW_MICROLEVEL)
+#define REDRAW_FPS             (1 << 10)
 #define REDRAWTILES_THRESHOLD  (SCR_FIELDX * SCR_FIELDY / 2)
 
 /* areas in bitmap PIX_DOOR */