summaryrefslogtreecommitdiff
path: root/src/net_multiplayer.c
diff options
context:
space:
mode:
authororoborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e>2008-03-14 19:31:47 +0000
committeroroborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e>2008-03-14 19:31:47 +0000
commit593ac1e25c2053f06cb1b7e29785a695d3c57ad3 (patch)
tree15f6bb50abedc884122d40b98349e35d702b7729 /src/net_multiplayer.c
parenta4e34c257a4f5966ce699f48d30b3528bdaa45e4 (diff)
- podpora UDP
git-svn-id: http://opensvn.csie.org/tuxanci_ng@15 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e
Diffstat (limited to 'src/net_multiplayer.c')
-rw-r--r--src/net_multiplayer.c90
1 files changed, 76 insertions, 14 deletions
diff --git a/src/net_multiplayer.c b/src/net_multiplayer.c
index 2cfc898..cbf9cb8 100644
--- a/src/net_multiplayer.c
+++ b/src/net_multiplayer.c
@@ -23,6 +23,7 @@
#include "udp.h"
static int netGameType;
+static int netProtoType = NET_PROTOCOL_TYPE_UDP;
int getNetTypeGame()
{
@@ -39,20 +40,47 @@ int initNetMuliplayer(int type, char *ip, int port)
break;
case NET_GAME_TYPE_SERVER :
- if( initTcpServer(port) != 0 )
+ switch( netProtoType )
{
- fprintf(stderr, "Neomzem inicalizovat sietovu hru pre server !\n");
- netGameType = NET_GAME_TYPE_NONE;
- return -1;
+ case NET_PROTOCOL_TYPE_TCP :
+ if( initTcpServer(port) != 0 )
+ {
+ fprintf(stderr, "Neomzem inicalizovat sietovu hru pre server !\n");
+ netGameType = NET_GAME_TYPE_NONE;
+ return -1;
+ }
+ break;
+ case NET_PROTOCOL_TYPE_UDP :
+ if( initUdpServer(port) != 0 )
+ {
+ fprintf(stderr, "Neomzem inicalizovat sietovu hru pre server !\n");
+ netGameType = NET_GAME_TYPE_NONE;
+ return -1;
+ }
+ break;
}
+
break;
case NET_GAME_TYPE_CLIENT :
- if( initTcpClient(ip, port) != 0 )
+ switch( netProtoType )
{
- fprintf(stderr, "Neomzem inicalizovat sietovu hru pre clienta !\n");
- netGameType = NET_GAME_TYPE_NONE;
- return -1;
+ case NET_PROTOCOL_TYPE_TCP :
+ if( initTcpClient(ip, port) != 0 )
+ {
+ fprintf(stderr, "Neomzem inicalizovat sietovu hru pre clienta !\n");
+ netGameType = NET_GAME_TYPE_NONE;
+ return -1;
+ }
+ break;
+ case NET_PROTOCOL_TYPE_UDP :
+ if( initUdpClient(ip, port) != 0 )
+ {
+ fprintf(stderr, "Neomzem inicalizovat sietovu hru pre clienta !\n");
+ netGameType = NET_GAME_TYPE_NONE;
+ return -1;
+ }
+ break;
}
break;
@@ -72,13 +100,31 @@ void eventNetMultiplayer()
break;
case NET_GAME_TYPE_SERVER :
- selectServerTcpSocket();
- eventClientListBuffer();
+ switch( netProtoType )
+ {
+ case NET_PROTOCOL_TYPE_TCP :
+ selectServerTcpSocket();
+ eventClientListBuffer();
+ break;
+ case NET_PROTOCOL_TYPE_UDP :
+ selectServerUdpSocket();
+ eventClientListBuffer();
+ break;
+ }
break;
case NET_GAME_TYPE_CLIENT :
- selectClientTcpSocket();
- eventServerBuffer();
+ switch( netProtoType )
+ {
+ case NET_PROTOCOL_TYPE_TCP :
+ selectClientTcpSocket();
+ eventServerBuffer();
+ break;
+ case NET_PROTOCOL_TYPE_UDP :
+ selectClientUdpSocket();
+ eventServerBuffer();
+ break;
+ }
break;
default :
@@ -95,11 +141,27 @@ void quitNetMultiplayer()
break;
case NET_GAME_TYPE_SERVER :
- quitTcpServer();
+ switch( netProtoType )
+ {
+ case NET_PROTOCOL_TYPE_TCP :
+ quitTcpServer();
+ break;
+ case NET_PROTOCOL_TYPE_UDP :
+ quitUdpServer();
+ break;
+ }
break;
case NET_GAME_TYPE_CLIENT :
- quitTcpClient();
+ switch( netProtoType )
+ {
+ case NET_PROTOCOL_TYPE_TCP :
+ quitTcpClient();
+ break;
+ case NET_PROTOCOL_TYPE_UDP :
+ quitUdpClient();
+ break;
+ }
break;
default :