From 4f3b7a8fca4a1df112aa352a24695e0cbe5d47a4 Mon Sep 17 00:00:00 2001
From: mr-russ <>
Date: Wed, 15 Oct 2003 02:04:05 +0000
Subject: [PATCH] Updated Protcol, game list now shown correctly. parameters
 still need work

---
 src/network/master.cpp | 15 ++++++++++++---
 src/ui/menus.cpp       | 22 ++++++++++------------
 2 files changed, 22 insertions(+), 15 deletions(-)

diff --git a/src/network/master.cpp b/src/network/master.cpp
index 12ddcbef1..85b0b3e69 100644
--- a/src/network/master.cpp
+++ b/src/network/master.cpp
@@ -157,10 +157,15 @@ global int GetMetaParameter(char* reply, int pos, char** value)
 {
     char* endline;
 
-    *value = reply;
+    // Take Care for OK/ERR
+    *value = strchr(reply, '\n');
+    (*value)++;
 
     while (pos-- && *value) {
-	*value = strstr(*value,"\n");
+	(*value) = strchr((*value), '\n');
+	if (*value) {
+	    (*value)++;
+	}
     }
 
     if (!*value) {
@@ -168,7 +173,11 @@ global int GetMetaParameter(char* reply, int pos, char** value)
 	return -1;
     }
 
-    endline = strstr(*value,"\n");
+    if (*value[0] == '\n') {
+	(*value)++;
+    }
+
+    endline = strchr(*value, '\n');
 
     if (!endline) {
 	return -1;
diff --git a/src/ui/menus.cpp b/src/ui/menus.cpp
index 1cce004c1..65370f7e3 100644
--- a/src/ui/menus.cpp
+++ b/src/ui/menus.cpp
@@ -780,8 +780,8 @@ global void InitMenuFuncHash(void) {
     HASHADD(ReplayGameCancel,"replay-game-cancel");
 
 // Metaserver
-    HASHADD(ShowMetaServerList,"menu-metaserver-list");
-    HASHADD(MultiMetaServerGameSetupInit,"menu-metaserver-init");
+    HASHADD(ShowMetaServerList,"metaserver-list");
+    HASHADD(MultiMetaServerGameSetupInit,"metaserver-list-init");
     HASHADD(MultiMetaServerGameSetupExit,"menu-metaserver-exit");
     HASHADD(SelectGameServer,"select-game-server");
 }
@@ -7255,7 +7255,7 @@ local void MultiGameMasterReport(void)
     VideoUnlockScreen();
     Invalidate();
 
-    ProcessMenu("menu-metaserver-list", 1);
+    ProcessMenu("metaserver-list", 1);
     if (GuiGameStarted) {
 	GameMenuReturn();
     }
@@ -7274,7 +7274,7 @@ local void ShowMetaServerList(void)
 
     DestroyCursorBackground();
     GuiGameStarted = 0;
-    ProcessMenu("menu-metaserver-list", 1);
+    ProcessMenu("metaserver-list", 1);
     if (GuiGameStarted) {
 	GameMenuReturn();
     }
@@ -7296,21 +7296,19 @@ local void MultiMetaServerGameSetupInit(Menuitem* mi)
     int nummenus;
     char* parameter;
     char* reply;
-    Menu *menu;
+    Menu* menu;
 
     SendMetaCommand("NumberOfGames","");
-    menu = FindMenu("menu-metaserver-list");
+    menu = FindMenu("metaserver-list");
 
     reply = NULL;
     //receive
     //check okay
-    if (1 || RecvMetaReply(&reply) == -1) {
+    if (RecvMetaReply(&reply) == -1) {
 	//TODO: Notify player that connection was aborted...
-	nummenus = 1;
-
-	
+	nummenus = 0;
     } else {
-	GetMetaParameter(reply, 1, &parameter);
+	GetMetaParameter(reply, 0, &parameter);
 	nummenus = atoi(parameter);
     }
     // Meta server only sends matching version
@@ -7399,7 +7397,7 @@ local void SelectGameServer(Menuitem *mi)
 	VideoLockScreen();
 	MenusSetBackground();
 	VideoUnlockScreen();
-	ProcessMenu("menu-metaserver-list",1);
+	ProcessMenu("metaserver-list",1);
 	return;
     }
     NetworkInitClientConnect();