rnd-20060407-1-src
[rocksndiamonds.git] / src / libgame / system.h
index 84f128770d8aeb10a5ca7bab31279d8b212d4163..4901a874c5d918e48224f0ed18a452730fbd96e4 100644 (file)
 #define BUTTON_1                       4
 #define BUTTON_2                       5
 
+/* values for special "focus player" bitmasks */
+#define BIT_SET_FOCUS                  6
+
 /* values for move directions and special "button" key bitmasks */
 #define MV_NONE                        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 KEY_SET_FOCUS          (1 << BIT_SET_FOCUS)
+
 #define MV_DIR_FROM_BIT(x)     ((x) < NUM_DIRECTIONS ? 1 << (x) :        \
                                 (x) == MV_BIT_UPLEFT    ? MV_UPLEFT    : \
                                 (x) == MV_BIT_UPRIGHT   ? MV_UPRIGHT   : \
 #define CURSOR_DEFAULT         0
 #define CURSOR_PLAYFIELD       1
 
+/* fundamental game speed values */
+#define ONE_SECOND_DELAY       1000    /* delay value for one second */
+#define GAME_FRAME_DELAY       20      /* frame delay in milliseconds */
+#define FFWD_FRAME_DELAY       10      /* 200% speed for fast forward */
+#define FRAMES_PER_SECOND      (ONE_SECOND_DELAY / GAME_FRAME_DELAY)
 
 /* maximum playfield size supported by libgame functions */
 #define MAX_PLAYFIELD_WIDTH    128
 #define RW_BASE_PATH           RW_GAME_DIR
 
 /* directory names */
+#define GRAPHICS_ECS_DIRECTORY "graphics.ecs"
+#define GRAPHICS_AGA_DIRECTORY "graphics.aga"
 #define GRAPHICS_DIRECTORY     "graphics"
 #define SOUNDS_DIRECTORY       "sounds"
 #define MUSIC_DIRECTORY                "music"
 
 #define ARTWORK_FIRST_NODE(artwork, type)                              \
                                ((type) == ARTWORK_TYPE_GRAPHICS ?      \
-                                (artwork).gfx_first :  \
+                                (artwork).gfx_first :                  \
                                 (type) == ARTWORK_TYPE_SOUNDS ?        \
-                                (artwork).snd_first :  \
+                                (artwork).snd_first :                  \
                                 (artwork).mus_first)
 
 #define ARTWORK_CURRENT_IDENTIFIER_PTR(artwork, type)                  \
@@ -694,6 +706,8 @@ struct SetupInfo
   boolean ask_on_escape;
   boolean ask_on_escape_editor;
   boolean quick_switch;
+  boolean input_on_focus;
+  boolean prefer_aga_graphics;
 
   char *graphics_set;
   char *sounds_set;
@@ -734,6 +748,8 @@ struct TreeInfo
   char *imported_from; /* optional comment for imported levels or artwork */
   char *imported_by;   /* optional comment for imported levels or artwork */
 
+  char *graphics_ecs_set; /* special EMC custom graphics set (ECS graphics) */
+  char *graphics_aga_set; /* special EMC custom graphics set (AGA graphics) */
   char *graphics_set;  /* optional custom graphics set (level tree only) */
   char *sounds_set;    /* optional custom sounds set (level tree only) */
   char *music_set;     /* optional custom music set (level tree only) */