#define SCREEN_KEYBOARD_POS(h) ((h) / 2)
#endif
+// values for drag-and-drop support (some parts not added before SDL 2.0.5)
+#if !SDL_VERSION_ATLEAST(2,0,5)
+#define SDL_DROPTEXT (SDL_DROPFILE + 1)
+#define SDL_DROPBEGIN (SDL_DROPFILE + 2)
+#define SDL_DROPCOMPLETE (SDL_DROPFILE + 3)
+#endif
+
// default input keys
#define DEFAULT_KEY_LEFT KSYM_Left
#define DEFAULT_KEY_RIGHT KSYM_Right
#define STYLE_DEFAULT STYLE_NONE
// values for special global animation events
+#define ANIM_EVENT_UNDEFINED -1
#define ANIM_EVENT_NONE 0
#define ANIM_EVENT_SELF (1 << 16)
#define ANIM_EVENT_ANY (1 << 17)
+#define ANIM_EVENT_CLICK (1 << 18)
+// anim number: bits 0-7
+// part number: bits 8-15
#define ANIM_EVENT_ANIM_BIT 0
#define ANIM_EVENT_PART_BIT 8
getUserMusicDir() : \
NULL)
+#define TREE_FIRST_NODE_PTR(t) ((t) == TREE_TYPE_LEVEL_DIR ? \
+ &leveldir_first : \
+ (t) == TREE_TYPE_GRAPHICS_DIR ? \
+ &artwork.gfx_first : \
+ (t) == TREE_TYPE_SOUNDS_DIR ? \
+ &artwork.snd_first : \
+ (t) == TREE_TYPE_MUSIC_DIR ? \
+ &artwork.mus_first : \
+ NULL)
+
+#define TREE_FIRST_NODE(t) ((t) == TREE_TYPE_LEVEL_DIR ? \
+ leveldir_first : \
+ (t) == TREE_TYPE_GRAPHICS_DIR ? \
+ artwork.gfx_first : \
+ (t) == TREE_TYPE_SOUNDS_DIR ? \
+ artwork.snd_first : \
+ (t) == TREE_TYPE_MUSIC_DIR ? \
+ artwork.mus_first : \
+ NULL)
+
// values for artwork handling
#define LEVELDIR_ARTWORK_SET_PTR(leveldir, type) \
((type) == ARTWORK_TYPE_GRAPHICS ? \
(type) == ARTWORK_TYPE_MUSIC ? \
options.music_directory : "")
+#define USER_ARTWORK_DIRECTORY(type) \
+ ((type) == ARTWORK_TYPE_GRAPHICS ? \
+ getUserGraphicsDir() : \
+ (type) == ARTWORK_TYPE_SOUNDS ? \
+ getUserSoundsDir() : \
+ (type) == ARTWORK_TYPE_MUSIC ? \
+ getUserMusicDir() : "")
+
+#define ARTWORK_DEFAULT_SUBDIR(type) \
+ ((type) == ARTWORK_TYPE_GRAPHICS ? \
+ GFX_DEFAULT_SUBDIR : \
+ (type) == ARTWORK_TYPE_SOUNDS ? \
+ SND_DEFAULT_SUBDIR : \
+ MUS_DEFAULT_SUBDIR)
+
#define UPDATE_BUSY_STATE() \
{ \
if (gfx.draw_busy_anim_function != NULL) \
};
+struct RuntimeInfo
+{
+ boolean uses_touch_device;
+};
+
struct OptionInfo
{
char *server_host;
boolean choose_from_top_leveldir;
boolean show_scaling_in_title;
+
+ boolean menu_game;
+ boolean menu_editor;
+ boolean menu_graphics;
+ boolean menu_sound;
+ boolean menu_artwork;
+ boolean menu_input;
+ boolean menu_touch;
+ boolean menu_shortcuts;
+ boolean menu_exit;
+ boolean menu_save_and_exit;
};
struct SetupDebugInfo
int tile_size; // special case for list of network players
int border_size; // special case for list of preview players
int vertical; // special case for list of preview players
+
+ boolean redefined; // redefined by custom artwork
};
struct MouseActionInfo
extern struct ProgramInfo program;
extern struct NetworkInfo network;
+extern struct RuntimeInfo runtime;
extern struct OptionInfo options;
extern struct VideoSystemInfo video;
extern struct AudioSystemInfo audio;
void InitProgramInfo(char *, char *, char *, char *, char *, char *, char *,
char *, int);
void InitNetworkInfo(boolean, boolean, boolean, char *, int);
+void InitRuntimeInfo(void);
void InitScoresInfo(void);
void SetWindowTitle(void);