(x) == MV_RIGHT ? MV_BIT_RIGHT : \
(x) == MV_UP ? MV_BIT_UP : MV_BIT_DOWN)
+#define MV_DIR_OPPOSITE(x) ((x) == MV_LEFT ? MV_RIGHT : \
+ (x) == MV_RIGHT ? MV_LEFT : \
+ (x) == MV_UP ? MV_DOWN : \
+ (x) == MV_DOWN ? MV_UP : MV_NO_MOVING)
+
/* values for animation mode (frame order and direction) */
#define ANIM_NONE 0
#define SETUP_FILENAME "setup.cnf"
#define LEVELSETUP_FILENAME "lvlsetup.cnf"
#define EDITORSETUP_FILENAME "edsetup.cnf"
-#define HELPANIM_FILENAME "helpanim.conf"
-#define HELPTEXT_FILENAME "helptext.conf"
+#define HELPANIM_FILENAME "helpanim.cnf"
+#define HELPTEXT_FILENAME "helptext.cnf"
#define LEVELINFO_FILENAME "lvlinfo.cnf"
#define GRAPHICSINFO_FILENAME "gfxinfo.cnf"
#define SOUNDSINFO_FILENAME "sndinfo.cnf"
PAGEX3: buffer for animations
*/
-#define DOOR_GFX_PAGESIZE (gfx.dxsize)
+/* these values are hard-coded to be able to use them in initialization */
+#define DOOR_GFX_PAGE_WIDTH 100 /* should be set to "gfx.dxsize" */
+#define DOOR_GFX_PAGE_HEIGHT 280 /* should be set to "gfx.dysize" */
+
+#define DOOR_GFX_PAGESIZE (DOOR_GFX_PAGE_WIDTH)
#define DOOR_GFX_PAGEX1 (0 * DOOR_GFX_PAGESIZE)
#define DOOR_GFX_PAGEX2 (1 * DOOR_GFX_PAGESIZE)
#define DOOR_GFX_PAGEX3 (2 * DOOR_GFX_PAGESIZE)
#define DOOR_GFX_PAGEX7 (6 * DOOR_GFX_PAGESIZE)
#define DOOR_GFX_PAGEX8 (7 * DOOR_GFX_PAGESIZE)
#define DOOR_GFX_PAGEY1 (0)
-#define DOOR_GFX_PAGEY2 (gfx.dysize)
+#define DOOR_GFX_PAGEY2 (DOOR_GFX_PAGE_HEIGHT)
/* macros for version handling */
/* fields for "type == TREE_TYPE_LEVEL_DIR" */
- char *filename; /* tree info sub-directory basename (may be ".") */
+ char *subdir; /* tree info sub-directory basename (may be ".") */
char *fullpath; /* complete path relative to tree base directory */
char *basepath; /* absolute base path of tree base directory */
char *identifier; /* identifier string for configuration files */
char *sounds_path; /* path to optional custom sounds set (level only) */
char *music_path; /* path to optional custom music set (level only) */
+ char *level_filename; /* filename of level file (for packed level file) */
+ char *level_filetype; /* type of levels in level directory or level file */
+
int levels; /* number of levels in level series */
int first_level; /* first level number (to allow start with 0 or 1) */
int last_level; /* last level number (automatically calculated) */
boolean parent_link; /* entry links back to parent directory */
boolean user_defined; /* user defined levels are stored in home directory */
boolean readonly; /* readonly levels can not be changed with editor */
+ boolean handicap; /* level set has no handicap when set to "false" */
int color; /* color to use on selection screen for this level */
char *class_desc; /* description of level series class */
};
struct ConfigInfo
+{
+ char *token;
+ char *value;
+};
+
+struct ConfigTypeInfo
{
char *token;
char *value;
struct FileInfo *dynamic_file_list; /* dynamic artwrk file array */
int num_suffix_list_entries;
- struct ConfigInfo *suffix_list; /* parameter suffixes array */
+ struct ConfigTypeInfo *suffix_list; /* parameter suffixes array */
int num_base_prefixes;
int num_ext1_suffixes;
void ReloadCustomImage(Bitmap *, char *);
Bitmap *ZoomBitmap(Bitmap *, int, int);
-void CreateBitmapWithSmallBitmaps(Bitmap *);
+void CreateBitmapWithSmallBitmaps(Bitmap *, int);
void SetMouseCursor(int);