diff --git a/config/menus_settings.cfg b/config/menus_settings.cfg index 706131e9..2f992d79 100644 --- a/config/menus_settings.cfg +++ b/config/menus_settings.cfg @@ -49,8 +49,9 @@ menuitem [Police] [ skin_rvsf 5 ] [ chmenumdl RVSF playermodels/RVSF/06 all 50 4 newmenu [QUICK setup] menuitemtextinput [Nickname:] [] [ name $arg1 ] -menuitemtextinput [Resolution (Width): ] "$scr_w" [ scr_w $arg1 ] -menuitemtextinput [Resolution (Height): ] "$scr_h" [ scr_h $arg1 ] +menuitemtextinput [Resolution (width): ] "$scr_w" [ scr_w $arg1 ] +menuitemtextinput [Resolution (height): ] "$scr_h" [ scr_h $arg1 ] +menuitem "\f2Set\f5 resolution as in desktop" [ setdesktopres; refreshcurmenudelayed ] menuitemcheckbox [Fullscreen: ] "$fullscreen" [ fullscreen $arg1 ] menuitemtextinput [Mouse sensitivity: ] "$sensitivity" [ sensitivity $arg1 ] menuitemcheckbox [Reduced violence mode: ] "$poniesmodeon" [ reducedviolencemode $arg1 ] @@ -322,7 +323,8 @@ newmenu video menuitemtextinput [Screen width: ] "$scr_w" [ scr_w $arg1 ] [] 11 menuitemtextinput [Screen height: ] "$scr_h" [ scr_h $arg1 ] [] 11 -menuitem [Choose resolution from list...] [ showmenu [Display resolutions] ] +menuitem "\f2Set\f5 resolution as in desktop" [ setdesktopres; refreshcurmenudelayed ] +menuitem [Choose resolution from list...] [ showmenu [Display resolutions] ] menuitem [] -1 menuitemslider [Graphics detail: ] 1 6 "$gfxqualityalias" 1 [Horrible Low Medium Good High "INSANE! (May perform slowly on older gfx)"] [ new_gfx_quality $arg1 ] menuitem [] -1 @@ -340,18 +342,19 @@ menuitem "\f2\t\t\t [ Apply now! ]" [ resetgl ] newmenu [Display resolutions] -menuitem [800x600 (4:3)] [ scr_w 800; scr_h 600; closecurmenu; showmenu video ] -menuitem [1024x768 (4:3)] [ scr_w 1024; scr_h 768; closecurmenu; showmenu video ] -menuitem [1280x720 (16:9)] [ scr_w 1280; scr_h 720; closecurmenu; showmenu video ] -menuitem [1280x800 (16:10)] [ scr_w 1280; scr_h 800; closecurmenu; showmenu video ] -menuitem [1280x1024 (5:4)] [ scr_w 1280; scr_h 1024; closecurmenu; showmenu video ] -menuitem [1360x768 (~16:9)] [ scr_w 1360; scr_h 768; closecurmenu; showmenu video ] -menuitem [1366x768 (~16:9)] [ scr_w 1366; scr_h 768; closecurmenu; showmenu video ] -menuitem [1440x900 (16:10)] [ scr_w 1440; scr_h 900; closecurmenu; showmenu video ] -menuitem [1600x900 (16:9)] [ scr_w 1600; scr_h 900; closecurmenu; showmenu video ] -menuitem [1680x1050 (16:10)] [ scr_w 1680; scr_h 1050; closecurmenu; showmenu video ] -menuitem [1920x1080 (16:9)] [ scr_w 1920; scr_h 1080; closecurmenu; showmenu video ] -menuitem [1920x1200 (16:10)] [ scr_w 1920; scr_h 1200; closecurmenu; showmenu video ] +menuitem " 640x480\t(4:3)" [ scr_w 640; scr_h 480; closecurmenu ] +menuitem " 800x600\t(4:3)" [ scr_w 800; scr_h 600; closecurmenu ] +menuitem "1024x768\t(4:3)" [ scr_w 1024; scr_h 768; closecurmenu ] +menuitem "1280x720\t(16:9)" [ scr_w 1280; scr_h 720; closecurmenu ] +menuitem "1280x800\t(16:10)" [ scr_w 1280; scr_h 800; closecurmenu ] +menuitem "1280x1024\t(5:4)" [ scr_w 1280; scr_h 1024; closecurmenu ] +menuitem "1360x768\t(~16:9)" [ scr_w 1360; scr_h 768; closecurmenu ] +menuitem "1366x768\t(~16:9)" [ scr_w 1366; scr_h 768; closecurmenu ] +menuitem "1440x900\t(16:10)" [ scr_w 1440; scr_h 900; closecurmenu ] +menuitem "1600x900\t(16:9)" [ scr_w 1600; scr_h 900; closecurmenu ] +menuitem "1680x1050\t(16:10)" [ scr_w 1680; scr_h 1050; closecurmenu ] +menuitem "1920x1080\t(16:9)" [ scr_w 1920; scr_h 1080; closecurmenu ] +menuitem "1920x1200\t(16:10)" [ scr_w 1920; scr_h 1200; closecurmenu ] const fsaa_valuemap [-1 0 2 4 8 16] const aniso_valuemap [0 2 4 8 16] diff --git a/source/src/main.cpp b/source/src/main.cpp index d2a50c6f..7439856d 100644 --- a/source/src/main.cpp +++ b/source/src/main.cpp @@ -414,6 +414,20 @@ void setresdata(char *s, enet_uint32 c) COMMANDF(screenres, "ii", (int *w, int *h) { screenres(*w, *h); }); +int desktopw = 0, desktoph = 0; + +void setdesktopres() +{ + if(desktopw && desktoph) + { + scr_w = desktopw; + scr_h = desktoph; + } + else conoutf("Could not set resolution as in desktop"); +} + +COMMAND(setdesktopres, ""); + static int curgamma = 100; VARNFP(gamma, vgamma, 30, 100, 300, { @@ -1103,6 +1117,12 @@ int main(int argc, char **argv) if(SDL_InitSubSystem(SDL_INIT_VIDEO)<0) fatal("Unable to initialize SDL Video"); initlog("video: mode"); + const SDL_VideoInfo *video = SDL_GetVideoInfo(); + if(video) + { + desktopw = video->current_w; + desktoph = video->current_h; + } int usedcolorbits = 0, useddepthbits = 0, usedfsaa = 0; setupscreen(usedcolorbits, useddepthbits, usedfsaa);