foxygit / doom Log in
commit e6028047cd51a6d14d4e30b0aae733f51a810f86
Author:     Simon Howard <fraggle@gmail.com>
AuthorDate: Tue Sep 26 23:50:06 2006 +0000
Commit:     Simon Howard <fraggle@gmail.com>
CommitDate: Tue Sep 26 23:50:06 2006 +0000

    Add "join game" dialog.

    Subversion-branch: /trunk/chocolate-doom
    Subversion-revision: 675
---
 setup/mainmenu.c    |  5 ++++-
 setup/multiplayer.c | 26 ++++++++++++++++++++++++++
 2 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/setup/mainmenu.c b/setup/mainmenu.c
index 853bba56..f5351214 100644
--- a/setup/mainmenu.c
+++ b/setup/mainmenu.c
@@ -71,6 +71,7 @@ extern void ConfigMouse();
 extern void ConfigSound();
 extern void CompatibilitySettings();
 extern void StartMultiGame();
+extern void JoinMultiGame();
 extern void MultiplayerConfig();

 void MainMenu(void)
@@ -108,7 +109,9 @@ void MainMenu(void)
     TXT_SignalConnect(button, "pressed", StartMultiGame, NULL);
     TXT_AddWidget(window, button);

-    TXT_AddWidget(window, TXT_NewButton("Join a Network game"));
+    button = TXT_NewButton("Join a Network game");
+    TXT_SignalConnect(button, "pressed", JoinMultiGame, NULL);
+    TXT_AddWidget(window, button);

     button = TXT_NewButton("Multiplayer configuration");
     TXT_SignalConnect(button, "pressed", MultiplayerConfig, NULL);
diff --git a/setup/multiplayer.c b/setup/multiplayer.c
index 08098125..60f2bb3d 100644
--- a/setup/multiplayer.c
+++ b/setup/multiplayer.c
@@ -68,6 +68,10 @@ warptype_t warptype = WARP_DOOM2;
 int warpepisode = 1;
 int warpmap = 1;

+// Address to connect to when joining a game
+
+char *connect_address = NULL;
+
 static void StartGame(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(user_data))
 {
     printf("Now we start the game.\n");
@@ -293,6 +297,28 @@ void StartMultiGame(void)

 }

+void JoinMultiGame(void)
+{
+    txt_window_t *window;
+    txt_button_t *button;
+
+    window = TXT_NewWindow("Join multiplayer game");
+
+    TXT_AddWidget(window, TXT_NewLabel("Connect to address: "));
+    TXT_AddWidget(window, TXT_NewInputBox(&connect_address, 40));
+    TXT_AddWidget(window, TXT_NewStrut(0, 1));
+
+    button = TXT_NewButton("Add extra parameters...");
+    TXT_SignalConnect(button, "pressed", OpenExtraParamsWindow, NULL);
+    TXT_AddWidget(window, button);
+
+    button = TXT_NewButton("Add WADs...");
+    TXT_SignalConnect(button, "pressed", OpenWadsWindow, NULL);
+    TXT_AddWidget(window, button);
+
+    TXT_SetWindowAction(window, TXT_HORIZ_RIGHT, StartGameAction());
+}
+
 static void SetChatMacroDefaults(void)
 {
     int i;