[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