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