rocksndiamonds-3.1.2
[rocksndiamonds.git] / src / libgame / system.h
index 903c982ca238b49f6cf10a2f86f2b1649450c743..0b210ed01f0584645db71364b390fbfa5700432a 100644 (file)
 #define MV_VERTICAL            (MV_UP   | MV_DOWN)
 #define MV_ALL_DIRECTIONS      (MV_LEFT | MV_RIGHT | MV_UP | MV_DOWN)
 #define MV_ANY_DIRECTION       (MV_ALL_DIRECTIONS)
+#define MV_NO_DIRECTIONS       (MV_NO_MOVING)
 
 #define KEY_BUTTON_1           (1 << BUTTON_1)
 #define KEY_BUTTON_2           (1 << BUTTON_2)
 
 
 /* values for artwork handling */
+#define LEVELDIR_ARTWORK_SET_PTR(leveldir, type)                       \
+                               ((type) == ARTWORK_TYPE_GRAPHICS ?      \
+                                &(leveldir)->graphics_set :            \
+                                (type) == ARTWORK_TYPE_SOUNDS ?        \
+                                &(leveldir)->sounds_set :              \
+                                &(leveldir)->music_set)
+
 #define LEVELDIR_ARTWORK_SET(leveldir, type)                           \
                                ((type) == ARTWORK_TYPE_GRAPHICS ?      \
                                 (leveldir)->graphics_set :             \
                                 (leveldir)->sounds_set :               \
                                 (leveldir)->music_set)
 
+#define LEVELDIR_ARTWORK_PATH_PTR(leveldir, type)                      \
+                               ((type) == ARTWORK_TYPE_GRAPHICS ?      \
+                                &(leveldir)->graphics_path :           \
+                                (type) == ARTWORK_TYPE_SOUNDS ?        \
+                                &(leveldir)->sounds_path :             \
+                                &(leveldir)->music_path)
+
 #define LEVELDIR_ARTWORK_PATH(leveldir, type)                          \
                                ((type) == ARTWORK_TYPE_GRAPHICS ?      \
                                 (leveldir)->graphics_path :            \
                                 (artwork).snd_first :  \
                                 (artwork).mus_first)
 
+#define ARTWORK_CURRENT_IDENTIFIER_PTR(artwork, type)                  \
+                               ((type) == ARTWORK_TYPE_GRAPHICS ?      \
+                                &(artwork).gfx_current_identifier :    \
+                                (type) == ARTWORK_TYPE_SOUNDS ?        \
+                                &(artwork).snd_current_identifier :    \
+                                &(artwork).mus_current_identifier)
+
 #define ARTWORK_CURRENT_IDENTIFIER(artwork, type)                      \
                                ((type) == ARTWORK_TYPE_GRAPHICS ?      \
                                 (artwork).gfx_current_identifier :     \
@@ -411,8 +433,9 @@ typedef int (*EventFilter)(const Event *);
 
 struct ProgramInfo
 {
-  char *command_basename;
-  char *userdata_directory;
+  char *command_basepath;      /* directory that contains the program */
+  char *command_basename;      /* base filename of the program binary */
+  char *userdata_directory;    /* personal user data directory */
 
   char *program_title;
   char *window_title;