rnd-20040820-1-src
[rocksndiamonds.git] / src / libgame / system.h
index 086f01c2aa11a5a73627878f7fca9f54c1831e82..ad9634a3b7bca5d9ba8d07e541b53b1e392366ea 100644 (file)
                                 (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
    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 */
@@ -647,6 +656,7 @@ struct TreeInfo
   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 */
@@ -681,6 +691,12 @@ struct ValueTextInfo
 };
 
 struct ConfigInfo
+{
+  char *token;
+  char *value;
+};
+
+struct ConfigTypeInfo
 {
   char *token;
   char *value;
@@ -740,7 +756,7 @@ struct ArtworkListInfo
   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;