[nexuiz-commits] r7347 - in trunk/data/qcsrc/menu: item nexuiz
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Wed Aug 5 09:29:56 EDT 2009
Author: div0
Date: 2009-08-05 09:29:56 -0400 (Wed, 05 Aug 2009)
New Revision: 7347
Modified:
trunk/data/qcsrc/menu/item/textslider.c
trunk/data/qcsrc/menu/nexuiz/slider_resolution.c
Log:
show only available resolutions
Modified: trunk/data/qcsrc/menu/item/textslider.c
===================================================================
--- trunk/data/qcsrc/menu/item/textslider.c 2009-08-05 11:40:03 UTC (rev 7346)
+++ trunk/data/qcsrc/menu/item/textslider.c 2009-08-05 13:29:56 UTC (rev 7347)
@@ -8,8 +8,8 @@
METHOD(TextSlider, getIdentifier, string(entity))
METHOD(TextSlider, addValue, void(entity, string, string))
METHOD(TextSlider, configureTextSliderValues, void(entity, string))
- ATTRIBARRAY(TextSlider, valueStrings, string, 16)
- ATTRIBARRAY(TextSlider, valueIdentifiers, string, 16)
+ ATTRIBARRAY(TextSlider, valueStrings, string, 256)
+ ATTRIBARRAY(TextSlider, valueIdentifiers, string, 256)
ATTRIB(TextSlider, nValues, float, 0)
ENDCLASS(TextSlider)
#endif
Modified: trunk/data/qcsrc/menu/nexuiz/slider_resolution.c
===================================================================
--- trunk/data/qcsrc/menu/nexuiz/slider_resolution.c 2009-08-05 11:40:03 UTC (rev 7346)
+++ trunk/data/qcsrc/menu/nexuiz/slider_resolution.c 2009-08-05 13:29:56 UTC (rev 7347)
@@ -18,28 +18,47 @@
}
void addResolutionNexuizResolutionSlider(entity me, float w, float h, float cw, float ch)
{
+ float f;
+ f = max(cw / w, ch / h);
+ if(f > 1)
+ {
+ cw = rint(cw / f);
+ ch = rint(ch / f);
+ }
me.addValue(me, strzone(strcat(ftos(w), "x", ftos(h))), strzone(strcat(ftos(w), " ", ftos(h), " ", ftos(cw), " ", ftos(ch))));
// FIXME (in case you ever want to dynamically instantiate this): THIS IS NEVER FREED
}
void configureNexuizResolutionSliderNexuizResolutionSlider(entity me)
{
+ float i;
+ vector r0, r, c;
+
me.configureNexuizTextSlider(me, "vid_width");
- me.addResolution(me, 640, 480, 640, 480);
- me.addResolution(me, 800, 480, 800, 480);
- me.addResolution(me, 800, 600, 800, 600);
- me.addResolution(me, 1024, 600, 1024, 600);
- me.addResolution(me, 1024, 768, 800, 600);
- me.addResolution(me, 1152, 864, 800, 600);
- me.addResolution(me, 1280, 800, 960, 600);
- me.addResolution(me, 1280, 960, 800, 600);
- me.addResolution(me, 1280, 1024, 800, 640);
- me.addResolution(me, 1440, 900, 960, 600);
- me.addResolution(me, 1600, 900, 960, 540);
- me.addResolution(me, 1600, 1200, 800, 600);
- me.addResolution(me, 1680, 1050, 960, 600);
- me.addResolution(me, 1920, 1080, 960, 540);
- me.addResolution(me, 1920, 1200, 960, 600);
- me.addResolution(me, 2048, 1536, 800, 600);
+
+ c = '0 0 0';
+ r0 = '0 0 0';
+ for(i = 0;; ++i)
+ {
+ r = getresolution(i);
+ if(r_x == 0 && r_y == 0)
+ break;
+ if(r == r0)
+ continue;
+ r0 = r;
+ if(r_x < 640 || r_y < 400)
+ continue;
+ c_x = 800;
+ c_y = rint(c_x * r_y / r_x);
+ if(c_y >= 600)
+ {
+ me.addResolution(me, r_x, r_y, c_x, c_y);
+ continue;
+ }
+ c_y = 600;
+ c_x = rint(c_y * r_x / r_y);
+ me.addResolution(me, r_x, r_y, c_x, c_y);
+ }
+
me.configureNexuizTextSliderValues(me);
}
void loadCvarsNexuizResolutionSlider(entity me)
More information about the nexuiz-commits
mailing list