#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"
#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)"
(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 : \
char *server_host;
int server_port;
+ SDL_Thread *server_thread;
+ boolean is_server_thread;
};
struct RuntimeInfo
char *execute_command;
char *special_flags;
+ char *debug_mode;
boolean mytapes;
boolean serveronly;
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
struct SetupSystemInfo
{
+ char *sdl_renderdriver;
char *sdl_videodriver;
char *sdl_audiodriver;
int audio_fragment_size;
boolean frame_delay_use_mod_key;
boolean frame_delay_game_only;
boolean show_frames_per_second;
+ int xsn_mode;
+ int xsn_percent;
};
struct SetupInfo
void InitGfxOtherSettings(void);
void InitTileCursorInfo(void);
void InitOverlayInfo(void);
+void SetOverlayGridSizeAndButtons(void);
void SetTileCursorEnabled(boolean);
void SetTileCursorActive(boolean);
void SetTileCursorTargetXY(int, int);