X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fnetserv.h;h=3eee34e69260a36294e358e591174ab686a7f9e0;hp=537b30029ff7861dcfd1af4bf6eaf1ff4ff451ae;hb=6229b51a03a4113fa799587e0f58fcea0f634d41;hpb=1cacebfb41c20889c904155001a5b88ace962348 diff --git a/src/netserv.h b/src/netserv.h index 537b3002..3eee34e6 100644 --- a/src/netserv.h +++ b/src/netserv.h @@ -1,55 +1,85 @@ -/*********************************************************** -* Rocks'n'Diamonds -- McDuffin Strikes Back! * -*----------------------------------------------------------* -* (c) 1995-98 Artsoft Entertainment * -* Holger Schemel * -* Oststrasse 11a * -* 33604 Bielefeld * -* phone: ++49 +521 290471 * -* email: aeglos@valinor.owl.de * -*----------------------------------------------------------* -* netserv.h * -***********************************************************/ +// ============================================================================ +// Rocks'n'Diamonds - McDuffin Strikes Back! +// ---------------------------------------------------------------------------- +// (c) 1995-2014 by Artsoft Entertainment +// Holger Schemel +// info@artsoft.org +// http://www.artsoft.org/ +// ---------------------------------------------------------------------------- +// netserv.h +// ============================================================================ #ifndef NETSERV_H #define NETSERV_H -#define DEFAULTPORT 19504 +#include "main.h" -#define PROT_VERS_1 1 -#define PROT_VERS_2 2 -#define PROT_VERS_3 0 +#define DEFAULT_SERVER_PORT 19504 + +#define PROTOCOL_VERSION_MAJOR 2 +#define PROTOCOL_VERSION_MINOR 0 +#define PROTOCOL_VERSION_PATCH 0 #define OP_PROTOCOL_VERSION 1 #define OP_BAD_PROTOCOL_VERSION 2 -#define OP_PLAYER_CONNECTED 3 -#define OP_PLAYER_DISCONNECTED 4 -#define OP_YOUR_NUMBER 5 -#define OP_NUMBER_WANTED 6 -#define OP_NICKNAME 7 +#define OP_YOUR_NUMBER 3 +#define OP_NUMBER_WANTED 4 +#define OP_PLAYER_NAME 5 +#define OP_PLAYER_CONNECTED 6 +#define OP_PLAYER_DISCONNECTED 7 #define OP_START_PLAYING 8 -#define OP_MOVE_FIGURE 9 - -#define OP_LOST 10 -#define OP_GONE 11 -#define OP_CLEAR 12 -#define OP_LINES 13 -#define OP_GROW 14 -#define OP_MODE 15 -#define OP_LEVEL 16 -#define OP_BOT 17 -#define OP_KILL 18 -#define OP_PAUSE 19 -#define OP_CONT 20 -#define OP_BADVERS 21 -#define OP_MSG 22 -#define OP_YOUARE 23 -#define OP_LINESTO 24 -#define OP_WON 25 -#define OP_ZERO 26 +#define OP_PAUSE_PLAYING 9 +#define OP_CONTINUE_PLAYING 10 +#define OP_STOP_PLAYING 11 +#define OP_MOVE_PLAYER 12 +#define OP_BROADCAST_MESSAGE 13 +#define OP_LEVEL_FILE 14 #define MAX_BUFFER_SIZE 4096 +#define MAX_PACKET_SIZE 1048576 + + +struct NetworkBuffer +{ + unsigned int max_size; + unsigned int size; + unsigned int pos; + + byte *buffer; +}; + + +int getNetwork8BitInteger(byte *); +int putNetwork8BitInteger(byte *, int); +int getNetwork16BitInteger(byte *); +int putNetwork16BitInteger(byte *, int); +int getNetwork32BitInteger(byte *); +int putNetwork32BitInteger(byte *, int); +char *getNetworkString(byte *); +int putNetworkString(byte *, char *); + +struct NetworkBuffer *newNetworkBuffer(void); +void initNetworkBufferForReceiving(struct NetworkBuffer *); +void initNetworkBufferForReading(struct NetworkBuffer *); +void initNetworkBufferForWriting(struct NetworkBuffer *, int, int); + +int receiveNetworkBufferBytes(struct NetworkBuffer *, TCPsocket, int); +int receiveNetworkBufferPacket(struct NetworkBuffer *, TCPsocket); + +int getNetworkBuffer8BitInteger(struct NetworkBuffer *); +void putNetworkBuffer8BitInteger(struct NetworkBuffer *, int); +int getNetworkBuffer16BitInteger(struct NetworkBuffer *); +void putNetworkBuffer16BitInteger(struct NetworkBuffer *, int); +int getNetworkBuffer32BitInteger(struct NetworkBuffer *); +void putNetworkBuffer32BitInteger(struct NetworkBuffer *, int); +char *getNetworkBufferString(struct NetworkBuffer *); +void putNetworkBufferString(struct NetworkBuffer *, char *); +int getNetworkBufferFile(struct NetworkBuffer *, char *); +int putNetworkBufferFile(struct NetworkBuffer *, char *); + +void dumpNetworkBuffer(struct NetworkBuffer *); +int NetworkServerThread(void *); void NetworkServer(int, int); #endif