[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Stratagus-CVS] stratagus/src/ui menus.c
From: |
Mohydine |
Subject: |
[Stratagus-CVS] stratagus/src/ui menus.c |
Date: |
Fri, 17 Oct 2003 18:20:32 -0400 |
CVSROOT: /cvsroot/stratagus
Module name: stratagus
Branch:
Changes by: Mohydine <address@hidden> 03/10/17 18:20:32
Modified files:
src/ui : menus.c
Log message:
test commit
Patches:
Index: stratagus/src/ui/menus.c
diff -u stratagus/src/ui/menus.c:1.564 stratagus/src/ui/menus.c:1.565
--- stratagus/src/ui/menus.c:1.564 Tue Oct 14 23:04:05 2003
+++ stratagus/src/ui/menus.c Fri Oct 17 18:20:28 2003
@@ -26,7 +26,7 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
// 02111-1307, USA.
//
-// $Id: menus.c,v 1.564 2003/10/15 03:04:05 mr-russ Exp $
+// $Id: menus.c,v 1.565 2003/10/17 22:20:28 mohydine Exp $
//@{
@@ -391,8 +391,9 @@
local void MultiMetaServerGameSetupExit(Menuitem *mi); // exit callback
local void SelectGameServer(Menuitem *mi); // Game Server selection so that
client joins the game
local void AddGameServer(void); //Add Game Server on Meta server
+local void ChangeGameServer(void); //Change Game Parameters on Meta server
local int MetaServerConnectError(void); // Display error message
-
+local void MultiMetaServerClose(void);
//others
local void GameMenuReturn(void);
local void NetErrorMenu(char *error);
@@ -782,8 +783,9 @@
// Metaserver
HASHADD(ShowMetaServerList,"metaserver-list");
HASHADD(MultiMetaServerGameSetupInit,"metaserver-list-init");
- HASHADD(MultiMetaServerGameSetupExit,"menu-metaserver-exit");
+ HASHADD(MultiMetaServerGameSetupExit,"metaserver-list-exit");
HASHADD(SelectGameServer,"select-game-server");
+ HASHADD(MultiMetaServerClose,"menu-internet-end-menu");
}
/*----------------------------------------------------------------------------
@@ -3273,12 +3275,12 @@
*/
local void MultiPlayerInternetGame(void)
{
- // Connect to Meta Server
+ //Connect to Meta Server
if (MetaInit() == -1 ) {
MetaServerInUse = 0;
MetaServerConnectError();
return;
- }
+ }
MetaServerInUse = 1;
ProcessMenu("menu-internet-create-join-menu", 1);
if (GuiGameStarted) {
@@ -4425,6 +4427,7 @@
NetworkServerResyncClients();
}
}
+
}
/**
@@ -4678,6 +4681,10 @@
// disable start game button
menu->Items[3].flags = MenuButtonDisabled;
}
+
+ if (MetaServerInUse){
+ ChangeGameServer();
+ }
}
/**
@@ -4800,6 +4807,11 @@
}
MultiGamePlayerSelectorsUpdate(1);
DebugLevel3Fn("h = %d, NetPlayers = %d\n" _C_ h _C_ NetPlayers);
+
+ if (MetaServerInUse){
+ ChangeGameServer();
+ }
+
}
/**
@@ -7267,6 +7279,7 @@
*/
local void ShowMetaServerList(void)
{
+ EndMenu();
Invalidate();
VideoLockScreen();
MenusSetBackground();
@@ -7297,6 +7310,8 @@
char* parameter;
char* reply;
Menu* menu;
+ char* port;
+
SendMetaCommand("NumberOfGames","");
menu = FindMenu("metaserver-list");
@@ -7317,7 +7332,7 @@
i = 1;
k = 0;
- numparams = 4; //TODO: To be changed if more params are sent
+ numparams = 5; //TODO: To be changed if more params are sent
//Retrieve list of online game from the meta server
for (j = 4; j <= nummenus * (numparams + 1); j += numparams + 1) { // loop
over the number of items in the menu
@@ -7326,24 +7341,27 @@
SendMetaCommand("GameNumber","%d\n",k + 1);
i=RecvMetaReply(&reply);
-
-
if (i == 0) {
// fill the menus with the right info.
-
- menu->Items[j].d.text.text = "Nick";
- menu->Items[j + 1].d.text.text = "IP";
- menu->Items[j + 2].d.text.text = "OS";
- menu->Items[j + 3].d.text.text = "Engine Version";
+ menu->Items[j].d.text.text = NULL;
+ menu->Items[j + 1].d.text.text = NULL;
+ menu->Items[j + 2].d.text.text = NULL;
+ menu->Items[j + 3].d.text.text = NULL;
} else {
- GetMetaParameter(reply, 0, ¶meter); ////TODO: use this
function.
+ GetMetaParameter(reply, 0, ¶meter); // Player Name
menu->Items[j].d.text.text = parameter;
- GetMetaParameter(reply, 1, ¶meter);
+
+ GetMetaParameter(reply, 3, ¶meter); // IP
+ GetMetaParameter(reply, 4, &port); // port
+ sprintf(parameter, "%s:%s", parameter, port); // IP:Port
+ strcat(parameter, "~!_"); // ok
menu->Items[j + 1].d.text.text = parameter;
- GetMetaParameter(reply, 2, ¶meter);
+ GetMetaParameter(reply, 6, ¶meter);
menu->Items[j + 2].d.text.text = parameter;
- GetMetaParameter(reply, 3, ¶meter);
+ GetMetaParameter(reply, 7, ¶meter);
menu->Items[j + 3].d.text.text = parameter;
+ GetMetaParameter(reply, 8, ¶meter);
+ menu->Items[j + 4].d.text.text = parameter;
}
++k;
}
@@ -7355,12 +7373,12 @@
local void MultiMetaServerGameSetupExit(Menuitem *mi)
{
//TODO: how to free stuff?
-
+ //EndMenu();
VideoLockScreen();
MenusSetBackground();
VideoUnlockScreen();
Invalidate();
- EndMenu();
+ //EndMenu();
}
/**
@@ -7381,7 +7399,7 @@
Invalidate();
EndMenu();
- strcpy(server_host_buffer,mi->menu->Items[j-3].d.text.text);
+ strcpy(server_host_buffer,mi->menu->Items[j-4].d.text.text);
//Launch join directly
@@ -7432,7 +7450,31 @@
//send message to meta server. meta server will detect IP address.
//Meta-server will return "BUSY" if the list of online games is busy.
-
SendMetaCommand("AddGame","%s\n%s\n%s\n%s\n%s\n%s\n","IP","Port","Name","Map","Players","Free");
+
SendMetaCommand("AddGame","%s\n%d\n%s\n%s\n%s\n%s\n","IP",NetworkPort,"Name","Map","Players","Free");
+
+ // FIXME: Get Reply from Queue
+
+}
+
+/**
+** Action to add a game server on the meta-server.
+*/
+local void ChangeGameServer(void)
+{
+ //send message to meta server. meta server will detect IP address.
+ //Meta-server will return "ERR" if the list of online games is busy.
+ int i,freespots,players;
+ freespots=0;
+ players=0;
+ for (i = 0; i < PlayerMax - 1; ++i) {
+ if (MenuMapInfo->PlayerType[i] == PlayerPerson) {
+ ++players;
+ }
+ if (ServerSetupState.CompOpt[i] == 0) {
+ ++freespots;
+ }
+ }
+
SendMetaCommand("ChangeGame","%s\n%s\n%d\n%d\n","Name",ScenSelectFileName,players,freespots-1);
// FIXME: Get Reply from Queue
@@ -7448,5 +7490,16 @@
VideoUnlockScreen();
return 0;
+}
+/**
+** Close MetaServer connection
+*/
+
+local void MultiMetaServerClose(void)
+{
+
+ MetaClose();
+ MetaServerInUse=0;
+ EndMenu();
}
//@}
- [Stratagus-CVS] stratagus/src/ui menus.c,
Mohydine <=
- [Stratagus-CVS] stratagus/src/ui menus.c, Mohydine, 2003/10/17
- [Stratagus-CVS] stratagus/src/ui menus.c, Mohydine, 2003/10/17
- [Stratagus-CVS] stratagus/src/ui menus.c, Mohydine, 2003/10/17
- [Stratagus-CVS] stratagus/src/ui menus.c, Mohydine, 2003/10/20
- [Stratagus-CVS] stratagus/src/ui menus.c, Mohydine, 2003/10/25
- [Stratagus-CVS] stratagus/src/ui menus.c, Mohydine, 2003/10/25
- [Stratagus-CVS] stratagus/src/ui menus.c, Mohydine, 2003/10/25
- [Stratagus-CVS] stratagus/src/ui menus.c, Russell Smith, 2003/10/27
- [Stratagus-CVS] stratagus/src/ui menus.c, Mohydine, 2003/10/27
- [Stratagus-CVS] stratagus/src/ui menus.c, Mohydine, 2003/10/28