summaryrefslogtreecommitdiff
path: root/src/base/net_multiplayer.c~
diff options
context:
space:
mode:
authorTomas Chvatal (scarabeus) <tomas.chvatal@gmail.com>2008-10-22 22:50:54 +0200
committerTomas Chvatal (scarabeus) <tomas.chvatal@gmail.com>2008-10-22 22:50:54 +0200
commite12753d2ec9db83ec08bb9db63902a82fb245cdd (patch)
tree6e4a63b790d6335f969f88b797a927e0fb25f37a /src/base/net_multiplayer.c~
parent0b4d9821c7333b8c4bdf7e0eeb750aef502a1137 (diff)
X
Diffstat (limited to 'src/base/net_multiplayer.c~')
-rw-r--r--src/base/net_multiplayer.c~139
1 files changed, 139 insertions, 0 deletions
diff --git a/src/base/net_multiplayer.c~ b/src/base/net_multiplayer.c~
new file mode 100644
index 0000000..f7d54eb
--- /dev/null
+++ b/src/base/net_multiplayer.c~
@@ -0,0 +1,139 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+#include <unistd.h>
+
+#include "main.h"
+#include "list.h"
+#include "tux.h"
+#include "item.h"
+#include "arenaFile.h"
+#include "net_multiplayer.h"
+#include "server.h"
+
+#include "udp.h"
+
+#ifndef PUBLIC_SERVER
+#include "screen_setting.h"
+#include "screen_choiceArena.h"
+
+#include "screen.h"
+#include "client.h"
+#endif
+
+static int netGameType;
+
+int getNetTypeGame()
+{
+ return netGameType;
+}
+
+int initNetMuliplayerForGameServer(char *ip4, int port4, char *ip6, int port6)
+{
+ int ret;
+
+ ret = initServer(ip4, port4, ip6, port6);
+
+ if( ret > 0 )
+ {
+ netGameType = NET_GAME_TYPE_SERVER;
+ }
+
+ return ret;
+}
+
+int initNetMuliplayer(int type, char *ip, int port, int proto)
+{
+ netGameType = type;
+
+ switch( netGameType )
+ {
+ case NET_GAME_TYPE_NONE :
+ break;
+
+ case NET_GAME_TYPE_SERVER :
+ switch( proto )
+ {
+ case PROTO_UDPv4 :
+ if( initServer(ip, port, NULL, 0) != 1 )
+ {
+ fprintf(stderr, _("Unable to inicialize network game as server!\n"));
+ netGameType = NET_GAME_TYPE_NONE;
+ return -1;
+ }
+ break;
+ case PROTO_UDPv6 :
+ if( initServer(NULL, 0, ip, port) != 1 )
+ {
+ fprintf(stderr, _("Unable to inicialize network game as server!\n"));
+ netGameType = NET_GAME_TYPE_NONE;
+ return -1;
+ }
+ break;
+ }
+ break;
+
+#ifndef PUBLIC_SERVER
+ case NET_GAME_TYPE_CLIENT :
+ if( initClient(ip, port, proto) != 0 )
+ {
+ fprintf(stderr, _("Unable to inicialize network game as client!\n"));
+ netGameType = NET_GAME_TYPE_NONE;
+ return -1;
+ }
+ break;
+#endif
+ default :
+ assert( ! _("Variable netGameType has a really wierd value!") );
+ break;
+ }
+
+ return 0;
+}
+
+void eventNetMultiplayer()
+{
+ switch( netGameType )
+ {
+ case NET_GAME_TYPE_NONE :
+ break;
+
+ case NET_GAME_TYPE_SERVER :
+ eventServer();
+ break;
+
+#ifndef PUBLIC_SERVER
+ case NET_GAME_TYPE_CLIENT :
+ eventClient();
+ break;
+#endif
+ default :
+ assert( ! _("Variable netGameType has a really wierd value!") );
+ break;
+ }
+}
+
+void quitNetMultiplayer()
+{
+ switch( netGameType )
+ {
+ case NET_GAME_TYPE_NONE :
+ break;
+
+ case NET_GAME_TYPE_SERVER :
+ quitServer();
+ break;
+
+#ifndef PUBLIC_SERVER
+ case NET_GAME_TYPE_CLIENT :
+ quitClient();
+ break;
+#endif
+ default :
+ assert( ! _("Variable netGameType has a really wierd value!") );
+ break;
+ }
+
+ netGameType = NET_GAME_TYPE_NONE;
+}