X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fsystem.h;h=d4e732e9fb22a535c1329dcb652ff80aafc9db6a;hp=c7df978523968fd7427ad9f16aa6060cf687272c;hb=3cc2ee99e57014c6962d26365e92bd3eac36a492;hpb=81978d087d71b598d29647a007ae9f90077cab87 diff --git a/src/libgame/system.h b/src/libgame/system.h index c7df9785..d4e732e9 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -119,8 +119,10 @@ #endif // values for drag-and-drop support (some parts not added before SDL 2.0.5) -#if SDL_VERSION_ATLEAST(2,0,5) -#define USE_DRAG_AND_DROP +#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 @@ -350,11 +352,30 @@ #define STYLE_DEFAULT STYLE_NONE +// values for special global animation delay types +#define ANIM_DELAY_UNDEFINED -1 +#define ANIM_DELAY_NONE 0 +#define ANIM_DELAY_INIT 1 +#define ANIM_DELAY_ANIM 2 +#define ANIM_DELAY_POST 3 + +// values for special global animation delay actions +#define ANIM_DELAY_ACTION_NONE -1 + // 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 @@ -448,6 +469,7 @@ y >= gfx.ey && y < gfx.ey + gfx.eysize) // values for mouse cursor +#define CURSOR_UNDEFINED -1 #define CURSOR_DEFAULT 0 #define CURSOR_NONE 1 #define CURSOR_PLAYFIELD 2 @@ -940,6 +962,11 @@ struct NetworkInfo }; +struct RuntimeInfo +{ + boolean uses_touch_device; +}; + struct OptionInfo { char *server_host; @@ -1095,6 +1122,9 @@ struct GfxInfo void (*draw_tile_cursor_function)(int); int cursor_mode; + int cursor_mode_override; + int cursor_mode_final; + int mouse_x, mouse_y; }; struct TileCursorInfo @@ -1290,6 +1320,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 @@ -1643,6 +1684,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 @@ -1673,6 +1716,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; @@ -1711,6 +1755,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); @@ -1822,7 +1867,7 @@ KeyMod GetKeyModState(void); KeyMod GetKeyModStateFromEvents(void); void StartTextInput(int, int, int, int); void StopTextInput(void); -boolean CheckCloseWindowEvent(ClientMessageEvent *); +void PushUserEvent(int, int, int); void InitJoysticks(void); boolean ReadJoystick(int, int *, int *, boolean *, boolean *);