white space changes
[rocksndiamonds.git] / src / libgame / system.h
index 4b57594d55409699b9feb4287369bd2cc79ee180..02e58143fbb6668351aa67cc480da745574f1a45 100644 (file)
 #define VALIGN_MIDDLE          (1 << 2)
 #define VALIGN_DEFAULT         VALIGN_TOP
 
-#define ALIGNED_XPOS(x,w,a)    ((a) == ALIGN_CENTER  ? (x) - (w) / 2 : \
+#define ALIGNED_XPOS(x, w, a)  ((a) == ALIGN_CENTER  ? (x) - (w) / 2 : \
                                 (a) == ALIGN_RIGHT   ? (x) - (w) : (x))
-#define ALIGNED_YPOS(y,h,v)    ((v) == VALIGN_MIDDLE ? (y) - (h) / 2 : \
+#define ALIGNED_YPOS(y, h, v)  ((v) == VALIGN_MIDDLE ? (y) - (h) / 2 : \
                                 (v) == VALIGN_BOTTOM ? (y) - (h) : (y))
 #define ALIGNED_TEXT_XPOS(p)   ALIGNED_XPOS((p)->x, (p)->width,  (p)->align)
 #define ALIGNED_TEXT_YPOS(p)   ALIGNED_YPOS((p)->y, (p)->height, (p)->valign)
                                         JOY_NO_ACTION)
 
 // maximum number of level sets in the level set history
-#define MAX_LEVELDIR_HISTORY   12
+#define MAX_LEVELDIR_HISTORY   100
 
 // default name for empty highscore entry
 #define EMPTY_PLAYER_NAME      "no name"
 // default value for undefined password
 #define UNDEFINED_PASSWORD     "[undefined]"
 
-// default value for undefined parameter
+// default value for undefined string parameter
+#define ARG_UNDEFINED_STRING   "[undefined]"
+
+// default value for default string parameter
 #define ARG_DEFAULT            "[DEFAULT]"
 
-// default values for undefined configuration file parameters
+// default values for undefined numerical parameter (as string and integer)
 #define ARG_UNDEFINED          "-1000000"
 #define ARG_UNDEFINED_VALUE    (-1000000)
 
 #define ELEMENTS_DIRECTORY     "elements"
 #define CREDITS_DIRECTORY      "credits"
 #define PROGRAM_INFO_DIRECTORY "program"
+#define LEVELSET_INFO_DIRECTORY        "levelset"
 #define CACHE_DIRECTORY                "cache"
 #define CONF_DIRECTORY         "conf"
 #define NETWORK_DIRECTORY      "network"
 
 #define GAMECONTROLLER_BASENAME        "gamecontrollerdb.txt"
 
-#define LOG_OUT_BASENAME       "stdout.txt"
-#define LOG_ERR_BASENAME       "stderr.txt"
-
-#define LOG_OUT_ID             0
-#define LOG_ERR_ID             1
-#define NUM_LOGS               2
+#define FALLBACK_TEXT_FILENAME "fallback.txt"
 
 #define STRING_PARENT_DIRECTORY                ".."
 #define STRING_TOP_DIRECTORY           "/"
@@ -1024,17 +1023,17 @@ struct ProgramInfo
   char *userdata_subdir;       // personal user game data directory
   char *userdata_path;         // resulting full path to game data directory
 
+  char *program_basename;
   char *program_title;
   char *window_title;
-  char *icon_title;
 
   char *icon_filename;
 
   char *cookie_prefix;
 
-  char *log_filename[NUM_LOGS];                // log filenames for out/err messages
-  FILE *log_file[NUM_LOGS];            // log file handles for out/err files
-  FILE *log_file_default[NUM_LOGS];    // default log file handles (out/err)
+  char *log_filename;                  // filename for log messages
+  FILE *log_file;                      // file handle for log files
+  FILE *log_file_default;              // default log file handle
 
   int version_super;
   int version_major;
@@ -1096,6 +1095,8 @@ struct OptionInfo
   char *identifier;
   char *level_nr;
 
+  int display_nr;
+
   boolean mytapes;
   boolean serveronly;
   boolean network;
@@ -1123,14 +1124,12 @@ struct VideoSystemInfo
   int vsync_mode;
 
   unsigned int frame_counter;
-  unsigned int frame_delay;
-  unsigned int frame_delay_value;
+  DelayCounter frame_delay;
 
   boolean shifted_up;
   int shifted_up_pos;
   int shifted_up_pos_last;
-  unsigned int shifted_up_delay;
-  unsigned int shifted_up_delay_value;
+  DelayCounter shifted_up_delay;
 
   boolean initialized;
 };
@@ -1225,6 +1224,7 @@ struct GfxInfo
   struct FontBitmapInfo *font_bitmap_info;
   int (*select_font_function)(int);
   int (*get_font_from_token_function)(char *);
+  char * (*get_token_from_font_function)(int);
 
   int anim_random_frame;
 
@@ -1307,6 +1307,8 @@ struct SetupTouchInfo
   boolean draw_pressed;
 
   boolean grid_initialized;
+
+  boolean overlay_buttons;
 };
 
 struct SetupInputInfo
@@ -1446,6 +1448,7 @@ struct SetupInternalInfo
   boolean choose_from_top_leveldir;
   boolean show_scaling_in_title;
   boolean create_user_levelset;
+  boolean info_screens_from_main;
 
   boolean menu_game;
   boolean menu_engines;
@@ -1459,6 +1462,12 @@ struct SetupInternalInfo
   boolean menu_exit;
   boolean menu_save_and_exit;
 
+  boolean menu_shortcuts_various;
+  boolean menu_shortcuts_focus;
+  boolean menu_shortcuts_tape;
+  boolean menu_shortcuts_sound;
+  boolean menu_shortcuts_snap;
+
   boolean info_title;
   boolean info_elements;
   boolean info_music;
@@ -1500,6 +1509,7 @@ struct SetupInfo
   int engine_snapshot_memory;
   boolean fade_screens;
   boolean autorecord;
+  boolean autorecord_after_replay;
   boolean auto_pause_on_start;
   boolean show_titlescreen;
   boolean quick_doors;
@@ -1643,9 +1653,11 @@ struct TreeInfo
   boolean user_defined;        // levels in user directory and marked as "private"
   boolean readonly;    // readonly levels can not be changed with editor
   boolean handicap;    // level set has no handicap when set to "false"
+  boolean time_limit;  // level set has no time limit when set to "false"
   boolean skip_levels; // levels can be skipped when set to "true"
 
   boolean use_emc_tiles;// use (swapped) V5/V6 EMC tiles when set to "true"
+  boolean info_screens_from_main; // can invoke info screens from main menu
 
   int color;           // color to use on selection screen for this level
   char *class_desc;    // description of level series class
@@ -1899,7 +1911,6 @@ extern struct AudioSystemInfo     audio;
 extern struct GfxInfo          gfx;
 extern struct TileCursorInfo   tile_cursor;
 extern struct OverlayInfo      overlay;
-extern struct AnimInfo         anim;
 extern struct ArtworkInfo      artwork;
 extern struct JoystickInfo     joystick;
 extern struct SetupInfo                setup;
@@ -1973,9 +1984,7 @@ boolean GetOverlayActive(void);
 void SetDrawDeactivationMask(int);
 int GetDrawDeactivationMask(void);
 void SetDrawBackgroundMask(int);
-void SetWindowBackgroundBitmap(Bitmap *);
-void SetMainBackgroundBitmap(Bitmap *);
-void SetDoorBackgroundBitmap(Bitmap *);
+void SetBackgroundBitmap(Bitmap *, int, int, int, int, int);
 void SetRedrawMaskFromArea(int, int, int, int);
 
 void LimitScreenUpdates(boolean);
@@ -1989,7 +1998,7 @@ Bitmap *CreateBitmap(int, int, int);
 void ReCreateBitmap(Bitmap **, int, int);
 void FreeBitmap(Bitmap *);
 void BlitBitmap(Bitmap *, Bitmap *, int, int, int, int, int, int);
-void BlitBitmapTiled(Bitmap *, Bitmap *, int, int, int, int, int, int, int,int);
+void BlitBitmapTiled(Bitmap *, Bitmap *, int, int, int, int, int, int, int, int);
 void FadeRectangle(int, int, int, int, int, int, int,
                   void (*draw_border_function)(void));
 void FillRectangle(Bitmap *, int, int, int, int, Pixel);
@@ -1997,7 +2006,7 @@ void ClearRectangle(Bitmap *, int, int, int, int);
 void ClearRectangleOnBackground(Bitmap *, int, int, int, int);
 void BlitBitmapMasked(Bitmap *, Bitmap *, int, int, int, int, int, int);
 boolean DrawingDeactivatedField(void);
-boolean DrawingDeactivated(int, int, int, int);
+boolean DrawingDeactivated(int, int);
 boolean DrawingOnBackground(int, int);
 boolean DrawingAreaChanged(void);
 void BlitBitmapOnBackground(Bitmap *, Bitmap *, int, int, int, int, int, int);
@@ -2005,12 +2014,10 @@ void BlitTexture(Bitmap *, int, int, int, int, int, int);
 void BlitTextureMasked(Bitmap *, int, int, int, int, int, int);
 void BlitToScreen(Bitmap *, int, int, int, int, int, int);
 void BlitToScreenMasked(Bitmap *, int, int, int, int, int, int);
-void DrawSimpleBlackLine(Bitmap *, int, int, int, int);
 void DrawSimpleWhiteLine(Bitmap *, int, int, int, int);
 void DrawLines(Bitmap *, struct XY *, int, Pixel);
 Pixel GetPixel(Bitmap *, int, int);
-Pixel GetPixelFromRGB(Bitmap *, unsigned int,unsigned int,unsigned int);
-Pixel GetPixelFromRGBcompact(Bitmap *, unsigned int);
+Pixel GetPixelFromRGB(Bitmap *, unsigned int, unsigned int, unsigned int);
 
 void KeyboardAutoRepeatOn(void);
 void KeyboardAutoRepeatOff(void);
@@ -2044,7 +2051,7 @@ void WaitEvent(Event *event);
 void PeekEvent(Event *event);
 void PumpEvents(void);
 void CheckQuitEvent(void);
-Key GetEventKey(KeyEvent *, boolean);
+Key GetEventKey(KeyEvent *);
 KeyMod HandleKeyModState(Key, int);
 KeyMod GetKeyModState(void);
 KeyMod GetKeyModStateFromEvents(void);