void InitProgramInfo(char *argv0, char *config_filename, char *userdata_subdir,
char *program_title, char *icon_title,
char *icon_filename, char *cookie_prefix,
- int program_version)
+ char *program_version_string, int program_version)
{
program.command_basepath = getBasePath(argv0);
program.command_basename = getBaseName(argv0);
program.version_build = VERSION_BUILD(program_version);
program.version_ident = program_version;
+ program.version_string = program_version_string;
+
program.log_filename[LOG_OUT_ID] = getLogFilename(LOG_OUT_BASENAME);
program.log_filename[LOG_ERR_ID] = getLogFilename(LOG_ERR_BASENAME);
program.log_file[LOG_OUT_ID] = program.log_file_default[LOG_OUT_ID] = stdout;
void ReCreateBitmap(Bitmap **bitmap, int width, int height)
{
+ if (*bitmap != NULL)
+ {
+ /* if new bitmap size fits into old one, no need to re-create it */
+ if (width <= (*bitmap)->width &&
+ height <= (*bitmap)->height)
+ return;
+
+ /* else adjust size so that old and new bitmap size fit into it */
+ width = MAX(width, (*bitmap)->width);
+ height = MAX(height, (*bitmap)->height);
+ }
+
Bitmap *new_bitmap = CreateBitmap(width, height, DEFAULT_DEPTH);
if (*bitmap == NULL)
return FALSE;
}
+boolean DrawingDeactivatedField()
+{
+ if (program.headless)
+ return TRUE;
+
+ if (gfx.draw_deactivation_mask & REDRAW_FIELD)
+ return TRUE;
+
+ return FALSE;
+}
+
boolean DrawingDeactivated(int x, int y, int width, int height)
{
return CheckDrawingArea(x, y, width, height, gfx.draw_deactivation_mask);
return (SDL_PollEvent(NULL) ? TRUE : FALSE);
}
-void NextEvent(Event *event)
+void WaitEvent(Event *event)
{
- SDLNextEvent(event);
+ SDLWaitEvent(event);
}
void PeekEvent(Event *event)
#endif
}
+void CheckQuitEvent(void)
+{
+ if (SDL_QuitRequested())
+ program.exit_function(0);
+}
+
Key GetEventKey(KeyEvent *event, boolean with_modifiers)
{
#if defined(TARGET_SDL2)
void StartTextInput(int x, int y, int width, int height)
{
#if defined(TARGET_SDL2)
+#if defined(HAS_SCREEN_KEYBOARD)
SDL_StartTextInput();
-#if defined(HAS_SCREEN_KEYBOARD)
if (y + height > SCREEN_KEYBOARD_POS(video.height))
{
video.shifted_up_pos = y + height - SCREEN_KEYBOARD_POS(video.height);
void StopTextInput()
{
#if defined(TARGET_SDL2)
+#if defined(HAS_SCREEN_KEYBOARD)
SDL_StopTextInput();
-#if defined(HAS_SCREEN_KEYBOARD)
if (video.shifted_up)
{
video.shifted_up_pos = 0;