X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.h;h=29f1c28ed708df72cee6c910c26f234762b67562;hb=9151b056647ea2d66aa9836ac8051f58fd43bc2c;hp=f498816e9c94351dfd8e2cbeafac022680f1df43;hpb=a8cbd6caea4467607417ffe93ca70122b6862ff2;p=rocksndiamonds.git diff --git a/src/libgame/system.h b/src/libgame/system.h index f498816e..29f1c28e 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 @@ -345,16 +347,36 @@ #define STYLE_REVERSE (1 << 2) // values for special event handling style (used for global animation) -#define STYLE_PASSTHROUGH (1 << 3) -#define STYLE_MULTIPLE_ACTIONS (1 << 4) +#define STYLE_BLOCK (1 << 3) +#define STYLE_PASSTHROUGH (1 << 4) +#define STYLE_MULTIPLE_ACTIONS (1 << 5) #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 @@ -389,6 +411,11 @@ #define FADE_MODE_DEFAULT FADE_MODE_FADE +#define AUTO_DELAY_UNIT_MS 0 +#define AUTO_DELAY_UNIT_FRAMES 1 + +#define AUTO_DELAY_UNIT_DEFAULT AUTO_DELAY_UNIT_MS + // values for toon positions #define POS_UNDEFINED -1 #define POS_LEFT 0 @@ -448,6 +475,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 +968,11 @@ struct NetworkInfo }; +struct RuntimeInfo +{ + boolean uses_touch_device; +}; + struct OptionInfo { char *server_host; @@ -984,6 +1017,7 @@ struct VideoSystemInfo int screen_rendering_mode; int vsync_mode; + unsigned int frame_counter; unsigned int frame_delay; unsigned int frame_delay_value; @@ -1095,6 +1129,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 +1327,19 @@ struct SetupInternalInfo boolean choose_from_top_leveldir; boolean show_scaling_in_title; + boolean create_user_levelset; + + boolean menu_game; + boolean menu_engines; + 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 @@ -1311,7 +1361,8 @@ struct SetupInfo boolean sound_simple; boolean toons; boolean scroll_delay; - boolean scroll_delay_value; + boolean forced_scroll_delay; + int scroll_delay_value; char *engine_snapshot_mode; int engine_snapshot_memory; boolean fade_screens; @@ -1336,6 +1387,7 @@ struct SetupInfo boolean quick_switch; boolean input_on_focus; boolean prefer_aga_graphics; + boolean prefer_lowpass_sounds; boolean game_speed_extended; int game_frame_delay; boolean sp_show_border_elements; @@ -1404,6 +1456,8 @@ struct TreeInfo char *graphics_set_ecs; // special EMC custom graphics set (ECS graphics) char *graphics_set_aga; // special EMC custom graphics set (AGA graphics) char *graphics_set; // optional custom graphics set (level tree only) + char *sounds_set_default; // default EMC custom sounds set + char *sounds_set_lowpass; // special EMC custom sounds set (lowpass filter) char *sounds_set; // optional custom sounds set (level tree only) char *music_set; // optional custom music set (level tree only) char *graphics_path; // path to optional custom graphics set (level only) @@ -1430,6 +1484,8 @@ struct TreeInfo boolean handicap; // level set has no handicap when set to "false" boolean skip_levels; // levels can be skipped when set to "true" + boolean use_emc_tiles;// use (swapped) V5/V6 EMC tiles when set to "true" + int color; // color to use on selection screen for this level char *class_desc; // description of level series class int handicap_level; // number of the lowest unsolved level @@ -1675,6 +1731,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; @@ -1713,6 +1770,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); @@ -1809,14 +1867,18 @@ void FreeBitmapTextures(Bitmap **); void ScaleBitmap(Bitmap **, int); void SetMouseCursor(int); +void UpdateRawMousePosition(int, int); +void UpdateMousePosition(void); void OpenAudio(void); void CloseAudio(void); void SetAudioMode(boolean); +void InitEventFilter(EventFilter); boolean PendingEvent(void); void WaitEvent(Event *event); void PeekEvent(Event *event); +void PumpEvents(void); void CheckQuitEvent(void); Key GetEventKey(KeyEvent *, boolean); KeyMod HandleKeyModState(Key, int); @@ -1824,7 +1886,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 *);