X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fsystem.h;h=68e5a33e31d6b1923cd4f85b9febacd106ed363b;hp=aaf4604ec0c1a431a7e1303835135ec9adce029c;hb=eb201ff71896cf5291e3ad61ccc663d9cec1b825;hpb=34df5c161045d8dddfd1c24d7fb1cfa29e0a9746 diff --git a/src/libgame/system.h b/src/libgame/system.h index aaf4604e..68e5a33e 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -118,6 +118,13 @@ #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 @@ -346,10 +353,19 @@ #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) +#define ANIM_EVENT_INIT (1 << 19) +#define ANIM_EVENT_START (1 << 20) +#define ANIM_EVENT_END (1 << 21) +#define ANIM_EVENT_POST (1 << 22) +#define ANIM_EVENT_UNCLICK_ANY (1 << 23) + +// anim number: bits 0-7 +// part number: bits 8-15 #define ANIM_EVENT_ANIM_BIT 0 #define ANIM_EVENT_PART_BIT 8 @@ -743,6 +759,26 @@ 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 ? \ @@ -846,6 +882,13 @@ (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) \ @@ -908,6 +951,11 @@ struct NetworkInfo }; +struct RuntimeInfo +{ + boolean uses_touch_device; +}; + struct OptionInfo { char *server_host; @@ -1063,6 +1111,7 @@ struct GfxInfo void (*draw_tile_cursor_function)(int); int cursor_mode; + int mouse_x, mouse_y; }; struct TileCursorInfo @@ -1258,6 +1307,17 @@ struct SetupInternalInfo 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 @@ -1611,6 +1671,8 @@ struct TextPosInfo 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 @@ -1641,6 +1703,7 @@ struct LevelStats extern struct ProgramInfo program; extern struct NetworkInfo network; +extern struct RuntimeInfo runtime; extern struct OptionInfo options; extern struct VideoSystemInfo video; extern struct AudioSystemInfo audio; @@ -1679,6 +1742,7 @@ extern int FrameCounter; 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); @@ -1790,7 +1854,6 @@ KeyMod GetKeyModState(void); KeyMod GetKeyModStateFromEvents(void); void StartTextInput(int, int, int, int); void StopTextInput(void); -boolean CheckCloseWindowEvent(ClientMessageEvent *); void InitJoysticks(void); boolean ReadJoystick(int, int *, int *, boolean *, boolean *);