X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.h;h=68a94cec543e27646cbc54344c64edcd974f1d49;hb=512f7bbfa113ed92bebc8a3a7d436b38c0227d59;hp=185fdc5a1376c289d6eb3a2e4efe57fe05d1bd44;hpb=b2fbe97bd09c91e5efb580b35b910a3709015421;p=rocksndiamonds.git diff --git a/src/libgame/system.h b/src/libgame/system.h index 185fdc5a..68a94cec 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -4,7 +4,7 @@ // (c) 1995-2014 by Artsoft Entertainment // Holger Schemel // info@artsoft.org -// http://www.artsoft.org/ +// https://www.artsoft.org/ // ---------------------------------------------------------------------------- // system.h // ============================================================================ @@ -65,15 +65,17 @@ #define STR_SPECIAL_RENDERING_TARGET "target_texture_only" #define STR_SPECIAL_RENDERING_DOUBLE "stream_and_target_texture" +#if defined(PLATFORM_EMSCRIPTEN) +#define STR_SPECIAL_RENDERING_DEFAULT STR_SPECIAL_RENDERING_BITMAP +#else #define STR_SPECIAL_RENDERING_DEFAULT STR_SPECIAL_RENDERING_DOUBLE +#endif #define SPECIAL_RENDERING_OFF 0 #define SPECIAL_RENDERING_BITMAP 1 #define SPECIAL_RENDERING_TARGET 2 #define SPECIAL_RENDERING_DOUBLE 3 -#define SPECIAL_RENDERING_DEFAULT SPECIAL_RENDERING_DOUBLE - // values for vertical screen retrace synchronization (vsync) #define STR_VSYNC_MODE_OFF "off" #define STR_VSYNC_MODE_NORMAL "normal" @@ -87,6 +89,16 @@ #define VSYNC_MODE_DEFAULT VSYNC_MODE_OFF +#define VSYNC_MODE_STR_TO_INT(s) \ + (strEqual((s), STR_VSYNC_MODE_NORMAL) ? VSYNC_MODE_NORMAL : \ + strEqual((s), STR_VSYNC_MODE_ADAPTIVE) ? VSYNC_MODE_ADAPTIVE : \ + VSYNC_MODE_OFF) + +#define VSYNC_MODE_INT_TO_STR(i) \ + ((i) == VSYNC_MODE_NORMAL ? STR_VSYNC_MODE_NORMAL : \ + (i) == VSYNC_MODE_ADAPTIVE ? STR_VSYNC_MODE_ADAPTIVE : \ + STR_VSYNC_MODE_OFF) + // values for network server settings #define STR_NETWORK_AUTO_DETECT "auto_detect_network_server" #define STR_NETWORK_AUTO_DETECT_SETUP "(auto detect network server)" @@ -112,6 +124,7 @@ // values for special settings for mobile devices #if defined(PLATFORM_ANDROID) +#define HAS_TOUCH_DEVICE #define USE_TOUCH_INPUT_OVERLAY #define USE_COMPLETE_DISPLAY #define HAS_SCREEN_KEYBOARD @@ -347,8 +360,9 @@ #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 @@ -852,6 +866,20 @@ (artwork).snd_first : \ (artwork).mus_first) +#define ARTWORK_CURRENT_PTR(artwork, type) \ + ((type) == ARTWORK_TYPE_GRAPHICS ? \ + &(artwork).gfx_current : \ + (type) == ARTWORK_TYPE_SOUNDS ? \ + &(artwork).snd_current : \ + &(artwork).mus_current) + +#define ARTWORK_CURRENT(artwork, type) \ + ((type) == ARTWORK_TYPE_GRAPHICS ? \ + (artwork).gfx_current : \ + (type) == ARTWORK_TYPE_SOUNDS ? \ + (artwork).snd_current : \ + (artwork).mus_current) + #define ARTWORK_CURRENT_IDENTIFIER_PTR(artwork, type) \ ((type) == ARTWORK_TYPE_GRAPHICS ? \ &(artwork).gfx_current_identifier : \ @@ -965,6 +993,8 @@ struct NetworkInfo char *server_host; int server_port; + SDL_Thread *server_thread; + boolean is_server_thread; }; struct RuntimeInfo @@ -989,6 +1019,7 @@ struct OptionInfo char *execute_command; char *special_flags; + char *debug_mode; boolean mytapes; boolean serveronly; @@ -1144,6 +1175,8 @@ struct TileCursorInfo int target_x, target_y; // tile cursor target screen position int sx, sy; // tile cursor screen start position + + boolean xsn_debug; // enable or disable XSN debugging }; struct OverlayInfo @@ -1294,6 +1327,7 @@ struct SetupShortcutInfo struct SetupSystemInfo { + char *sdl_renderdriver; char *sdl_videodriver; char *sdl_audiodriver; int audio_fragment_size; @@ -1329,6 +1363,7 @@ struct SetupInternalInfo boolean create_user_levelset; boolean menu_game; + boolean menu_engines; boolean menu_editor; boolean menu_graphics; boolean menu_sound; @@ -1347,6 +1382,8 @@ struct SetupDebugInfo boolean frame_delay_use_mod_key; boolean frame_delay_game_only; boolean show_frames_per_second; + int xsn_mode; + int xsn_percent; }; struct SetupInfo @@ -1359,7 +1396,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; @@ -1384,6 +1422,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; @@ -1452,6 +1491,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) @@ -1478,6 +1519,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 @@ -1751,6 +1794,7 @@ extern int button_status; extern boolean motion_status; extern int wheel_steps; extern boolean keyrepeat_status; +extern boolean textinput_status; extern int redraw_mask; @@ -1789,6 +1833,7 @@ void InitGfxCustomArtworkInfo(void); void InitGfxOtherSettings(void); void InitTileCursorInfo(void); void InitOverlayInfo(void); +void SetOverlayGridSizeAndButtons(void); void SetTileCursorEnabled(boolean); void SetTileCursorActive(boolean); void SetTileCursorTargetXY(int, int);