[nexuiz-commits] r8401 - in trunk/data/qcsrc/menu: . nexuiz
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Fri Dec 18 04:20:59 EST 2009
Author: div0
Date: 2009-12-18 04:20:53 -0500 (Fri, 18 Dec 2009)
New Revision: 8401
Modified:
trunk/data/qcsrc/menu/draw.qc
trunk/data/qcsrc/menu/draw.qh
trunk/data/qcsrc/menu/menu.qc
trunk/data/qcsrc/menu/nexuiz/util.qc
Log:
menu now ALWAYS works in a subwindow of 5:4 aspect, scaled to just fit in. Should make it look better on widescreen.
Modified: trunk/data/qcsrc/menu/draw.qc
===================================================================
--- trunk/data/qcsrc/menu/draw.qc 2009-12-17 18:45:44 UTC (rev 8400)
+++ trunk/data/qcsrc/menu/draw.qc 2009-12-18 09:20:53 UTC (rev 8401)
@@ -22,11 +22,11 @@
drawpic(boxToGlobal(where, draw_shift, draw_scale) - draw_mousepointer_offset, draw_mousepointer, draw_mousepointer_size, '1 1 1', draw_alpha, 0);
}
-void draw_reset()
+void draw_reset(float cw, float ch, float ox, float oy)
{
drawfont = FONT_USER+0;
- draw_shift = '0 0 0';
- draw_scale = '1 0 0' * cvar("vid_conwidth") + '0 1 0' * cvar("vid_conheight");
+ draw_shift = '1 0 0' * ox + '0 1 0' * oy;
+ draw_scale = '1 0 0' * cw + '0 1 0' * ch;
draw_alpha = 1;
}
Modified: trunk/data/qcsrc/menu/draw.qh
===================================================================
--- trunk/data/qcsrc/menu/draw.qh 2009-12-17 18:45:44 UTC (rev 8400)
+++ trunk/data/qcsrc/menu/draw.qh 2009-12-18 09:20:53 UTC (rev 8401)
@@ -2,7 +2,7 @@
vector draw_scale;
float draw_alpha;
-void draw_reset();
+void draw_reset(float cw, float ch, float ox, float oy);
void draw_setMousePointer(string pic, vector theSize, vector theOffset);
void draw_drawMousePointer(vector where);
Modified: trunk/data/qcsrc/menu/menu.qc
===================================================================
--- trunk/data/qcsrc/menu/menu.qc 2009-12-17 18:45:44 UTC (rev 8400)
+++ trunk/data/qcsrc/menu/menu.qc 2009-12-18 09:20:53 UTC (rev 8401)
@@ -40,13 +40,36 @@
}
}
-float conwidth_s, conheight_s;
+float MENU_ASPECT = 1.2; // 1280x1024
+float conwidth_s, conheight_s, realconwidth, realconheight, screenconwidth, screenconheight;
+void draw_reset_cropped()
+{
+ draw_reset(screenconwidth, screenconheight, 0.5 * (realconwidth - screenconwidth), 0.5 * (realconheight - screenconheight));
+}
+void draw_reset_full()
+{
+ draw_reset(realconwidth, realconheight, 0, 0);
+}
void UpdateConWidthHeight()
{
conwidth_s = conwidth;
conheight_s = conheight;
- conwidth = cvar("vid_conwidth");
- conheight = cvar("vid_conheight");
+ realconwidth = cvar("vid_conwidth");
+ realconheight = cvar("vid_conheight");
+ if(realconwidth / realconheight > MENU_ASPECT)
+ {
+ // widescreen
+ conwidth = realconheight * MENU_ASPECT;
+ conheight = realconheight;
+ }
+ else
+ {
+ // squarescreen
+ conwidth = realconwidth;
+ conheight = realconwidth / MENU_ASPECT;
+ }
+ screenconwidth = conwidth;
+ screenconheight = conheight;
if(conwidth < 800)
{
conheight *= 800 / conwidth;
@@ -61,7 +84,7 @@
{
if(conwidth_s != conwidth || conheight_s != conheight)
{
- draw_reset();
+ draw_reset_cropped();
main.resizeNotify(main, '0 0 0', eX * conwidth + eY * conheight, '0 0 0', eX * conwidth + eY * conheight);
}
}
@@ -125,8 +148,8 @@
draw_setMousePointer(SKINGFX_CURSOR, SKINSIZE_CURSOR, SKINOFFSET_CURSOR);
conwidth = conheight = -1;
- draw_reset();
UpdateConWidthHeight();
+ draw_reset_cropped();
loadTooltips();
main = spawnMainWindow(); main.configureMainWindow(main);
@@ -147,7 +170,7 @@
return;
if(!Menu_Active)
return;
- draw_reset();
+ draw_reset_cropped();
main.keyUp(main, key, ascii, menuShiftState);
if(key >= K_MOUSE1 && key <= K_MOUSE3)
{
@@ -180,7 +203,7 @@
}
else
{
- draw_reset();
+ draw_reset_cropped();
if(key >= K_MOUSE1 && key <= K_MOUSE3)
if(!mouseButtonsPressed)
main.mousePress(main, menuMousePos);
@@ -564,13 +587,15 @@
menuLogoAlpha = 2;
}
- draw_reset();
+ draw_reset_cropped();
if(!(gamestatus & (GAME_CONNECTED | GAME_ISSERVER)))
{
if(menuLogoAlpha > 0)
{
+ draw_reset_full();
drawBackground(SKINGFX_BACKGROUND, bound(0, menuLogoAlpha, 1), SKINALIGN_BACKGROUND, TRUE);
+ draw_reset_cropped();
if(menuAlpha <= 0 && SKINALPHA_CURSOR_INTRO > 0)
{
draw_alpha = SKINALPHA_CURSOR_INTRO * bound(0, menuLogoAlpha, 1);
@@ -582,21 +607,25 @@
else if(SKINALPHA_BACKGROUND_INGAME)
{
if(menuAlpha > 0)
+ {
+ draw_reset_full();
drawBackground(SKINGFX_BACKGROUND_INGAME, menuAlpha * SKINALPHA_BACKGROUND_INGAME, SKINALIGN_BACKGROUND_INGAME, FALSE);
+ draw_reset_cropped();
+ }
}
if(menuAlpha != prevMenuAlpha)
cvar_set("_menu_alpha", ftos(menuAlpha));
- draw_reset();
+ draw_reset_cropped();
preMenuDraw();
- draw_reset();
+ draw_reset_cropped();
if(menuAlpha <= 0)
{
if(prevMenuAlpha > 0)
main.initializeDialog(main, main.firstChild);
- draw_reset();
+ draw_reset_cropped();
postMenuDraw();
return;
}
@@ -606,7 +635,7 @@
if(menuMouseMode)
{
vector newMouse;
- newMouse = globalToBoxSize(getmousepos(), draw_scale);
+ newMouse = globalToBox(getmousepos(), draw_shift, draw_scale);
if(newMouse != '0 0 0')
if(newMouse != menuMousePos)
{
@@ -644,7 +673,7 @@
draw_drawMousePointer(menuMousePos);
- draw_reset();
+ draw_reset_cropped();
postMenuDraw();
frametime = 0;
Modified: trunk/data/qcsrc/menu/nexuiz/util.qc
===================================================================
--- trunk/data/qcsrc/menu/nexuiz/util.qc 2009-12-17 18:45:44 UTC (rev 8400)
+++ trunk/data/qcsrc/menu/nexuiz/util.qc 2009-12-18 09:20:53 UTC (rev 8401)
@@ -299,7 +299,7 @@
MapInfo_Enumerate();
if(!MapInfo_FilterGametype(MAPINFO_TYPE_ALL, 0, 0, 0, 1))
{
- draw_reset();
+ draw_reset_cropped();
sz = eX * 0.025 + eY * 0.025 * (draw_scale_x / draw_scale_y);
draw_CenterText('0.5 0.5 0' - 1.25 * sz_y * eY, "Autogenerating mapinfo for newly added maps...", sz, '1 1 1', 1, 0);
More information about the nexuiz-commits
mailing list