X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.c;h=5b7cede45da7a2932ca770d4bc9722b85eac13ed;hb=6cf6b75d5b9c84476a121cfd2ff11a0351ecba47;hp=139ee57a562d6c2a046d7397c9df6e4d6c445e0e;hpb=7d85a53b341ca7a3dca87b6f2ccebf45ddf96c92;p=rocksndiamonds.git diff --git a/src/libgame/system.c b/src/libgame/system.c index 139ee57a..5b7cede4 100644 --- a/src/libgame/system.c +++ b/src/libgame/system.c @@ -87,10 +87,10 @@ void InitProgramInfo(char *argv0, char *config_filename, char *userdata_subdir, program.cookie_prefix = cookie_prefix; + program.version_super = VERSION_SUPER(program_version); program.version_major = VERSION_MAJOR(program_version); program.version_minor = VERSION_MINOR(program_version); program.version_patch = VERSION_PATCH(program_version); - program.version_build = VERSION_BUILD(program_version); program.version_ident = program_version; program.version_string = program_version_string; @@ -325,9 +325,60 @@ void InitTileCursorInfo() void InitOverlayInfo() { + static char *default_grid_button[6][2] = + { + { " ", " ^^ " }, + { " ", " ^^ " }, + { " ", "<< >>" }, + { " ", "<< >>" }, + { "111222", " vv " }, + { "111222", " vv " } + }; + int nr = GRID_ACTIVE_NR(); + int i, x, y; + overlay.enabled = FALSE; overlay.active = FALSE; + overlay.show_grid = FALSE; + overlay.show_grid_buttons = FALSE; + + for (i = 0; i < 2; i++) + { + int grid_xsize = DEFAULT_GRID_XSIZE(i); + int grid_ysize = DEFAULT_GRID_YSIZE(i); + int min_xsize = MIN(6, grid_xsize); + int min_ysize = MIN(6, grid_ysize); + int startx = grid_xsize - min_xsize; + int starty = grid_ysize - min_ysize; + + overlay.grid_xsize_all[i] = grid_xsize; + overlay.grid_ysize_all[i] = grid_ysize; + + for (x = 0; x < MAX_GRID_XSIZE; x++) + for (y = 0; y < MAX_GRID_YSIZE; y++) + overlay.grid_button_all[i][x][y] = CHAR_GRID_BUTTON_NONE; + + for (x = 0; x < min_xsize; x++) + for (y = 0; y < min_ysize; y++) + overlay.grid_button_all[i][x][starty + y] = + default_grid_button[y][0][x]; + + for (x = 0; x < min_xsize; x++) + for (y = 0; y < min_ysize; y++) + overlay.grid_button_all[i][startx + x][starty + y] = + default_grid_button[y][1][x]; + } + + overlay.grid_xsize = overlay.grid_xsize_all[nr]; + overlay.grid_ysize = overlay.grid_ysize_all[nr]; + + for (x = 0; x < MAX_GRID_XSIZE; x++) + for (y = 0; y < MAX_GRID_YSIZE; y++) + overlay.grid_button[x][y] = overlay.grid_button_all[nr][x][y]; + + overlay.grid_button_highlight = CHAR_GRID_BUTTON_NONE; + #if defined(PLATFORM_ANDROID) if (strEqual(setup.touch.control_type, TOUCH_CONTROL_VIRTUAL_BUTTONS)) overlay.enabled = TRUE; @@ -385,6 +436,17 @@ void SetOverlayActive(boolean active) overlay.active = active; } +void SetOverlayShowGrid(boolean show_grid) +{ + overlay.show_grid = show_grid; + overlay.show_grid_buttons = show_grid; + + SetOverlayActive(show_grid); + + if (show_grid) + SetOverlayEnabled(TRUE); +} + boolean GetOverlayActive() { return overlay.active;