X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fsdl.c;h=214859df78ef187e584ce4b42837b653a0f6e0f4;hp=8751f1b999dfa4de510e8eacf78aee61a9684e11;hb=b45533f737b46a9c490f79ca96a7ac994d55ca71;hpb=6746a99c1d7348748c06d457f8496b4253bb7c84 diff --git a/src/libgame/sdl.c b/src/libgame/sdl.c index 8751f1b9..214859df 100644 --- a/src/libgame/sdl.c +++ b/src/libgame/sdl.c @@ -532,11 +532,7 @@ inline static void SDLInitVideoBuffer_VideoBuffer(boolean fullscreen) SDLSetWindowIcon(program.icon_filename); /* set window and icon title */ -#if defined(TARGET_SDL2) - SDL_SetWindowTitle(sdl_window, program.window_title); -#else - SDL_WM_SetCaption(program.window_title, program.window_title); -#endif + SDLSetWindowTitle(); } inline static void SDLInitVideoBuffer_DrawBuffer() @@ -830,6 +826,9 @@ boolean SDLSetVideoMode(boolean fullscreen) void SDLSetWindowTitle() { #if defined(TARGET_SDL2) + if (sdl_window == NULL) + return; + SDL_SetWindowTitle(sdl_window, program.window_title); #else SDL_WM_SetCaption(program.window_title, program.window_title); @@ -2601,7 +2600,22 @@ static int sdl_js_axis[MAX_PLAYERS][2]; static int sdl_js_button[MAX_PLAYERS][2]; static boolean sdl_is_controller[MAX_PLAYERS]; -static boolean SDLOpenJoystick(int nr) +void SDLClearJoystickState() +{ + int i, j; + + for (i = 0; i < MAX_PLAYERS; i++) + { + for (j = 0; j < 2; j++) + { + sdl_js_axis_raw[i][j] = -1; + sdl_js_axis[i][j] = 0; + sdl_js_button[i][j] = 0; + } + } +} + +boolean SDLOpenJoystick(int nr) { if (nr < 0 || nr >= MAX_PLAYERS) return FALSE; @@ -2629,7 +2643,7 @@ static boolean SDLOpenJoystick(int nr) return (sdl_joystick[nr] != NULL); } -static void SDLCloseJoystick(int nr) +void SDLCloseJoystick(int nr) { if (nr < 0 || nr >= MAX_PLAYERS) return; @@ -2648,13 +2662,6 @@ static void SDLCloseJoystick(int nr) #endif sdl_joystick[nr] = NULL; - - sdl_js_axis_raw[nr][0] = -1; - sdl_js_axis_raw[nr][1] = -1; - sdl_js_axis[nr][0] = 0; - sdl_js_axis[nr][1] = 0; - sdl_js_button[nr][0] = 0; - sdl_js_button[nr][1] = 0; } boolean SDLCheckJoystickOpened(int nr) @@ -2839,7 +2846,7 @@ void SDLInitJoysticks() static boolean sdl_joystick_subsystem_initialized = FALSE; boolean print_warning = !sdl_joystick_subsystem_initialized; #if defined(TARGET_SDL2) - char *mappings_file_base = getPath2(options.ro_base_directory, + char *mappings_file_base = getPath2(options.conf_directory, GAMECONTROLLER_BASENAME); char *mappings_file_user = getPath2(getUserGameDataDir(), GAMECONTROLLER_BASENAME); @@ -2935,6 +2942,8 @@ void SDLInitJoysticks() else if (print_warning) Error(ERR_WARN, "cannot open joystick %d", i); } + + SDLClearJoystickState(); } boolean SDLReadJoystick(int nr, int *x, int *y, boolean *b1, boolean *b2) @@ -2955,6 +2964,11 @@ boolean SDLReadJoystick(int nr, int *x, int *y, boolean *b1, boolean *b2) return TRUE; } + +/* ========================================================================= */ +/* touch input overlay functions */ +/* ========================================================================= */ + #if defined(USE_TOUCH_INPUT_OVERLAY) static void DrawTouchInputOverlay() {