#define MV_BIT_RIGHT 1
#define MV_BIT_UP 2
#define MV_BIT_DOWN 3
-#define NUM_MV_DIRECTIONS 4
+#define NUM_DIRECTIONS 4
#define MV_NO_MOVING 0
#define MV_LEFT (1 << MV_BIT_LEFT)
char *graphics_directory;
char *sounds_directory;
char *music_directory;
- char *autoplay_leveldir;
+ char *execute_command;
boolean serveronly;
boolean network;
boolean verbose;
boolean debug;
-
- char *debug_command;
};
struct VideoSystemInfo
int vx, vy;
int vxsize, vysize;
- boolean draw_deactivation_mask;
+ int draw_deactivation_mask;
+ int draw_background_mask;
+
+ Bitmap *background_bitmap;
+ int background_bitmap_mask;
+};
+
+struct FontInfo
+{
+ Bitmap *bitmap_initial;
+ Bitmap *bitmap_big;
+ Bitmap *bitmap_medium;
+ Bitmap *bitmap_small;
+ Bitmap *bitmap_tile;
};
struct JoystickInfo
struct SetupKeyboardInfo key;
};
+struct SetupEditorInfo
+{
+ boolean el_boulderdash;
+ boolean el_emerald_mine;
+ boolean el_more;
+ boolean el_sokoban;
+ boolean el_supaplex;
+ boolean el_diamond_caves;
+ boolean el_dx_boulderdash;
+ boolean el_chars;
+ boolean el_custom;
+};
+
struct SetupShortcutInfo
{
Key save_game;
boolean override_level_sounds;
boolean override_level_music;
+ struct SetupEditorInfo editor;
struct SetupShortcutInfo shortcut;
struct SetupInputInfo input[MAX_PLAYERS];
};
{
char *token;
char *value;
+ int type;
};
struct FileInfo
int *parameter; /* array of file parameters */
};
+struct SetupFileList
+{
+ char *token;
+ char *value;
+
+ struct SetupFileList *next;
+};
+
struct ListNodeInfo
{
char *source_filename; /* primary key for node list */
struct FileInfo *file_list; /* static artwork file array */
struct ConfigInfo *suffix_list; /* parameter suffixes array */
+ struct SetupFileList *custom_setup_list; /* additional definitions */
struct ListNodeInfo **artwork_list; /* static artwork node array */
extern struct VideoSystemInfo video;
extern struct AudioSystemInfo audio;
extern struct GfxInfo gfx;
+extern struct FontInfo font;
extern struct ArtworkInfo artwork;
extern struct JoystickInfo joystick;
extern struct SetupInfo setup;
void InitGfxDoor1Info(int, int, int, int);
void InitGfxDoor2Info(int, int, int, int);
void InitGfxScrollbufferInfo(int, int);
-void SetDrawDeactivationMask(int );
+void SetDrawDeactivationMask(int);
+void SetDrawBackgroundMask(int);
+void SetMainBackgroundBitmap(Bitmap *);
+void SetDoorBackgroundBitmap(Bitmap *);
inline void InitVideoDisplay(void);
inline void CloseVideoDisplay(void);
inline void FreeBitmap(Bitmap *);
inline void BlitBitmap(Bitmap *, Bitmap *, int, int, int, int, int, int);
inline void ClearRectangle(Bitmap *, int, int, int, int);
+inline void ClearRectangleOnBackground(Bitmap *, int, int, int, int);
inline void SetClipMask(Bitmap *, GC, Pixmap);
inline void SetClipOrigin(Bitmap *, GC, int, int);
inline void BlitBitmapMasked(Bitmap *, Bitmap *, int, int, int, int, int, int);
+inline boolean DrawingOnBackground(int, int);
+inline void BlitBitmapOnBackground(Bitmap *, Bitmap *, int, int, int, int, int,
+ int);
inline void DrawSimpleWhiteLine(Bitmap *, int, int, int, int);
inline void DrawLines(Bitmap *, struct XY *, int, Pixel);
inline Pixel GetPixel(Bitmap *, int, int);