X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.c;h=a10016dc94f8e69967b0a950a536f3d217e76739;hb=b8f99b63bf8c0ba0fefe2889c85feb4d46646e88;hp=00e9c7295edde77c0f1f3fd117c39a29bb69c72a;hpb=803637f901b7b228091ac27c4b60ba753219d043;p=rocksndiamonds.git diff --git a/src/libgame/system.c b/src/libgame/system.c index 00e9c729..a10016dc 100644 --- a/src/libgame/system.c +++ b/src/libgame/system.c @@ -96,6 +96,8 @@ void InitProgramInfo(char *argv0, char *config_filename, char *userdata_subdir, program.log_filename[LOG_ERR_ID] = getLogFilename(LOG_ERR_BASENAME); program.log_file[LOG_OUT_ID] = program.log_file_default[LOG_OUT_ID] = stdout; program.log_file[LOG_ERR_ID] = program.log_file_default[LOG_ERR_ID] = stderr; + + program.headless = FALSE; } void InitScoresInfo() @@ -105,6 +107,21 @@ void InitScoresInfo() program.global_scores = directoryExists(global_scores_dir); program.many_scores_per_name = !program.global_scores; + if (options.debug) + { + if (program.global_scores) + { + Error(ERR_DEBUG, "Using global, multi-user scores directory '%s'.", + global_scores_dir); + Error(ERR_DEBUG, "Remove to enable single-user scores directory."); + Error(ERR_DEBUG, "(This enables multipe score entries per user.)"); + } + else + { + Error(ERR_DEBUG, "Using private, single-user scores directory."); + } + } + free(global_scores_dir); } @@ -283,7 +300,18 @@ void InitGfxOtherSettings() void InitOverlayInfo() { + overlay.enabled = FALSE; overlay.active = FALSE; + +#if defined(PLATFORM_ANDROID) + if (strEqual(setup.touch.control_type, TOUCH_CONTROL_VIRTUAL_BUTTONS)) + overlay.enabled = TRUE; +#endif +} + +void SetOverlayEnabled(boolean enabled) +{ + overlay.enabled = enabled; } void SetOverlayActive(boolean active) @@ -301,6 +329,11 @@ void SetDrawDeactivationMask(int draw_deactivation_mask) gfx.draw_deactivation_mask = draw_deactivation_mask; } +int GetDrawDeactivationMask() +{ + return gfx.draw_deactivation_mask; +} + void SetDrawBackgroundMask(int draw_background_mask) { gfx.draw_background_mask = draw_background_mask; @@ -388,6 +421,9 @@ void LimitScreenUpdates(boolean enable) void InitVideoDisplay(void) { + if (program.headless) + return; + SDLInitVideoDisplay(); #if defined(TARGET_SDL2) SDLSetDisplaySize(); @@ -621,6 +657,9 @@ void BlitBitmap(Bitmap *src_bitmap, Bitmap *dst_bitmap, int dst_x_unclipped = dst_x; int dst_y_unclipped = dst_y; + if (program.headless) + return; + if (src_bitmap == NULL || dst_bitmap == NULL) return; @@ -1597,7 +1636,7 @@ void InitJoysticks() /* always start with reliable default values */ joystick.status = JOYSTICK_NOT_AVAILABLE; for (i = 0; i < MAX_PLAYERS; i++) - joystick.fd[i] = -1; /* joystick device closed */ + joystick.nr[i] = -1; /* no joystick configured */ SDLInitJoysticks(); } @@ -1606,3 +1645,13 @@ boolean ReadJoystick(int nr, int *x, int *y, boolean *b1, boolean *b2) { return SDLReadJoystick(nr, x, y, b1, b2); } + +boolean CheckJoystickOpened(int nr) +{ + return SDLCheckJoystickOpened(nr); +} + +void ClearJoystickState() +{ + SDLClearJoystickState(); +}