r712 - in trunk: . game

painquin at icculus.org painquin at icculus.org
Mon May 8 19:19:48 EDT 2006


Author: painquin
Date: 2006-05-08 19:19:48 -0400 (Mon, 08 May 2006)
New Revision: 712

Modified:
   trunk/darkwar-net2003.vcproj
   trunk/game/m_menucore.c
   trunk/game/m_menucore.h
Log:
more work on the visual aspect of the menus, please give feedback
this update includes margins for padding menu size
this is useful mostly when creating background images
also m_menucore.h was missing from the vcproj


Modified: trunk/darkwar-net2003.vcproj
===================================================================
--- trunk/darkwar-net2003.vcproj	2006-05-08 17:47:12 UTC (rev 711)
+++ trunk/darkwar-net2003.vcproj	2006-05-08 23:19:48 UTC (rev 712)
@@ -286,6 +286,9 @@
 				RelativePath=".\game\m_menucore.c">
 			</File>
 			<File
+				RelativePath=".\game\m_menucore.h">
+			</File>
+			<File
 				RelativePath=".\game\particle.c">
 			</File>
 			<File

Modified: trunk/game/m_menucore.c
===================================================================
--- trunk/game/m_menucore.c	2006-05-08 17:47:12 UTC (rev 711)
+++ trunk/game/m_menucore.c	2006-05-08 23:19:48 UTC (rev 712)
@@ -230,8 +230,8 @@
 	 * if this is not right, we need an alternative way to track the scaling factor and size.
 	 */
 }
-	
 
+
 void Menu_Text_DefaultUse (struct Menu_TextItem *item, void *cookie)
 {
 	Shell_ExecuteScript("menu text use", cookie);
@@ -259,8 +259,8 @@
 		it->super.MouseMove = (MenuItemMouseMove_t)Menu_Generic_MouseMoveSelectable;
 		it->super.KeyEvent = (MenuItemKeyEvent_t)Menu_Text_KeyPress;
 	}
-	it->super.size[0] = 8*strlen(text);
-	it->super.size[1] = 8;
+	it->super.size[0] = 16*strlen(text);
+	it->super.size[1] = 16;
 
 	it->text = text;
 	it->cookie = cookie;
@@ -306,7 +306,14 @@
 	return it;
 }
 
+void Menu_CloseOnUse(struct Menu_TextItem *item, void *cookie)
+{
+	Shell_ExecuteScript("menu text use", cookie);
+	Menu_Item_RemoveFromParent(&item->super.parent->super);
+	item->super.parent->super.Destroy(item->super.parent);
+}
 
+
 //text-edit fields
 //fixme: only work with grabs?
 void Menu_Edit_Draw(Menu_EditItem *item, Menu_Inheritance *inh)
@@ -832,6 +839,8 @@
 
 	R_SetScissor(inh->window.pos[0], inh->window.pos[1], inh->window.size[0], inh->window.size[1]);
 }
+
+
 Nbool Menu_SubMenu_KeyEvent (Menu_SubMenu *item, NUint mod, NUint sym, NUint character, Nbool downevent)
 {
 	Menu_Item *subitem;
@@ -923,6 +932,8 @@
 	menu->allowclose = true;
 	menu->padding[1] = 2;
 	/* default spacing of 2 pixels - I think this helps readability significantly -quin */
+	menu->margin[0] = 4;
+	menu->margin[1] = 4;
 
 	return menu;
 }
@@ -954,11 +965,11 @@
 			minpos[1] = subitem->pos[1];
 	}
 
-	menu->super.size[0] = maxpos[0];
-	menu->super.size[1] = maxpos[1];
+	menu->super.size[0] = maxpos[0] + menu->margin[0];
+	menu->super.size[1] = maxpos[1] + menu->margin[1];
 
-	menu->subwindow.size[0] = maxpos[0] - minpos[0];
-	menu->subwindow.size[1] = maxpos[1] - minpos[1];
+	menu->subwindow.size[0] = maxpos[0] - minpos[0] + menu->margin[0] * 2;
+	menu->subwindow.size[1] = maxpos[1] - minpos[1] + menu->margin[1] * 2;
 }
 
 void Menu_SubMenu_Arrange(Menu_SubMenu *menu, Nbool horizontal, NSint pad, Menu_ArrangeStyle arrange)
@@ -966,18 +977,14 @@
 	Menu_Item *sitem;
 	NSint axis, otheraxis;
 	NSint val = 0;
-	NSint maxval = 0;
+	NSint maxval = menu->margin[horizontal];
 
 	//axis is usually the 'vertical' axis, where each field is spaced with padding
 	//otheraxis is the axis on which we align stuff (rather than just space it)
 
-	if (horizontal)
-		axis = 0;
-	else
-		axis = 1;
+	otheraxis = horizontal;
+	axis = !otheraxis;
 
-	otheraxis = !axis;
-
 	for (sitem = menu->subitems; sitem; sitem = sitem->next)
 	{
 		sitem->pos[axis] = maxval;
@@ -996,15 +1003,16 @@
 			break;
 
 		case MENU_ARRANGESTYLE_LEFT:
-			sitem->pos[otheraxis] = 0;
+			sitem->pos[otheraxis] = menu->margin[otheraxis];
 			break;
 
 		case MENU_ARRANGESTYLE_CENTER:
-			sitem->pos[otheraxis] = (menu->subwindow.size[otheraxis] - sitem->size[otheraxis])/2;
+			sitem->pos[otheraxis] = ((menu->subwindow.size[otheraxis] - menu->margin[otheraxis]*2)
+				- sitem->size[otheraxis])/2 + menu->margin[otheraxis];
 			break;
 
 		case MENU_ARRANGESTYLE_RIGHT:
-			sitem->pos[otheraxis] = (menu->subwindow.size[otheraxis] - sitem->size[otheraxis]);
+			sitem->pos[otheraxis] = (menu->subwindow.size[otheraxis] - (sitem->size[otheraxis] + menu->margin[otheraxis]));
 			break;
 
 		case MENU_ARRANGESTYLE_RESIZE:
@@ -1055,17 +1063,6 @@
 
 
 
-
-
-
-
-
-
-
-
-
-
-
 Nfloat sliderscale = 8;
 Nfloat imagesize = 512;
 Nfloat windowsize = 128;
@@ -1145,29 +1142,52 @@
 	Menu_Edit_Create(menu, 0, 56, "EditItem");
 	Menu_Combo_Create(menu, 0, 56, 21*8, "ComboItem", "Option 1|Option 2|Option 3|Fuzzy Little Bunnies|Big Rocket Launcher|Children|Lightning Gun|Newborn Chicks|Grenade Launcher|Rodents|Nukes");
 */
-#define IHEIGHT 160
+void Menu_Multiplayer(Menu_TextItem *item, void *cookie)
+{
+	Menu_SubMenu *menu = Menu_SubMenu_Create(&Menu.rootmenu);
+	Menu_SubMenu_Destroy(item->super.parent);
+	menu->padding[0] = menu->padding[1] = 4;
+	menu->margin[0] = menu->margin[1] = 15;
 
+	Menu_BigText_Create(menu, 0, 0, "Multiplayer", NULL, NULL);
+	Menu_Pad_Create(menu, 0, 6);
+
+	Menu_Text_Create(menu, 0, 0, "Join a Game", "map west", Menu_CloseOnUse); //Menu_ServerBrowser);
+	Menu_Text_Create(menu, 0, 0, "Start a Server", "map test", Menu_CloseOnUse);
+	Menu_Text_Create(menu, 0, 0, "Multiplayer Settings", NULL, NULL); //Menu_MPSettings);
+	Menu_Text_Create(menu, 0, 0, "Back", "menu_main", Menu_CloseOnUse);
+
+	Menu_SubMenu_Finish(menu);
+	Menu_SubMenu_Arrange(menu, false, 0, MENU_ARRANGESTYLE_CENTER);
+	Menu_SubMenu_Finish(menu);
+//	Menu_Picture_Create(menu, 0, 0, menu->super.size[0], menu->super.size[1], "maps/test/skybox_ny.tga", NULL, NULL);
+
+	Menu_MoveToCenter(menu);
+
+}
+
 void Menu_Main(void)
 {
 	Menu_SubMenu *menu = Menu_SubMenu_Create(&Menu.rootmenu);
-	menu->dragable = true;
-	
+	menu->padding[0] = menu->padding[1] = 4;
+	menu->margin[0] = menu->margin[1] = 15;
 
-	Menu_BigText_Create(menu, 0, 0, "DarkWar", NULL, NULL); // TODO: replace this with a graphic -quin
-	Menu_Pad_Create(menu, 0, 8);
+	Menu_Picture_Create(menu, 0, 0, 138, 81, "menu/main_logo.tga", NULL, NULL);
+	Menu_Pad_Create(menu, 0, 6);
 
 	Menu_Text_Create(menu, 0, 0, "Singleplayer", NULL, NULL);
 
-	Menu_Text_Create(menu, 0, 0, "Multiplayer", "menu_multiplayer", NULL);
+	Menu_Text_Create(menu, 0, 0, "Multiplayer", "", Menu_Multiplayer);
 
 	Menu_Text_Create(menu, 0, 0, "Options", NULL, NULL);
 	
+	Menu_Pad_Create(menu, 0, 8);
 	Menu_Text_Create(menu, 0, 0, "Exit DarkWar", "quit", NULL);
 	
 	Menu_SubMenu_Finish(menu);
 	Menu_SubMenu_Arrange(menu, false, 0, MENU_ARRANGESTYLE_CENTER);
 	Menu_SubMenu_Finish(menu);
-	Menu_Picture_Create(menu, 0, 0, menu->super.size[0], menu->super.size[1], "maps/test/skybox_ny.tga", NULL, NULL);
+//	Menu_Picture_Create(menu, 0, 0, menu->super.size[0], menu->super.size[1], "maps/test/skybox_ny.tga", NULL, NULL);
 
 	Menu_MoveToCenter(menu);
 }

Modified: trunk/game/m_menucore.h
===================================================================
--- trunk/game/m_menucore.h	2006-05-08 17:47:12 UTC (rev 711)
+++ trunk/game/m_menucore.h	2006-05-08 23:19:48 UTC (rev 712)
@@ -70,6 +70,7 @@
 	struct Menu_Item *selecteditem;
 	struct Menu_Item *subitems;
 	NSint padding[2];
+	NSint margin[2];
 }
 Menu_SubMenu;
 




More information about the neither-commits mailing list