#define MV_BIT_RIGHT 1
#define MV_BIT_UP 2
#define MV_BIT_DOWN 3
+#define NUM_DIRECTIONS 4
#define MV_NO_MOVING 0
#define MV_LEFT (1 << MV_BIT_LEFT)
#define KEY_BUTTON (KEY_BUTTON_1 | KEY_BUTTON_2)
#define KEY_ACTION (KEY_MOTION | KEY_BUTTON)
-#define LOG_MV_DIR(x) ((x) == MV_LEFT ? MV_BIT_LEFT : \
+#define MV_DIR_BIT(x) ((x) == MV_LEFT ? MV_BIT_LEFT : \
(x) == MV_RIGHT ? MV_BIT_RIGHT : \
(x) == MV_UP ? MV_BIT_UP : MV_BIT_DOWN)
char *display_name;
char *server_host;
int server_port;
+
char *ro_base_directory;
char *rw_base_directory;
char *level_directory;
char *graphics_directory;
char *sounds_directory;
char *music_directory;
+ 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);