1 // ============================================================================
2 // Rocks'n'Diamonds - McDuffin Strikes Back!
3 // ----------------------------------------------------------------------------
4 // (c) 1995-2014 by Artsoft Entertainment
7 // http://www.artsoft.org/
8 // ----------------------------------------------------------------------------
10 // ============================================================================
17 #define DEFAULT_SERVER_PORT 19504
19 #define PROTOCOL_VERSION_MAJOR 2
20 #define PROTOCOL_VERSION_MINOR 0
21 #define PROTOCOL_VERSION_PATCH 0
23 #define OP_PROTOCOL_VERSION 1
24 #define OP_BAD_PROTOCOL_VERSION 2
25 #define OP_YOUR_NUMBER 3
26 #define OP_NUMBER_WANTED 4
27 #define OP_PLAYER_NAME 5
28 #define OP_PLAYER_CONNECTED 6
29 #define OP_PLAYER_DISCONNECTED 7
30 #define OP_START_PLAYING 8
31 #define OP_PAUSE_PLAYING 9
32 #define OP_CONTINUE_PLAYING 10
33 #define OP_STOP_PLAYING 11
34 #define OP_MOVE_PLAYER 12
35 #define OP_BROADCAST_MESSAGE 13
36 #define OP_LEVEL_FILE 14
38 #define MAX_BUFFER_SIZE 4096
43 unsigned int max_size;
51 int getNetwork8BitInteger(byte *);
52 int putNetwork8BitInteger(byte *, int);
53 int getNetwork16BitInteger(byte *);
54 int putNetwork16BitInteger(byte *, int);
55 int getNetwork32BitInteger(byte *);
56 int putNetwork32BitInteger(byte *, int);
57 char *getNetworkString(byte *);
58 int putNetworkString(byte *, char *);
60 struct NetworkBuffer *newNetworkBuffer();
61 void initNetworkBufferForReceiving(struct NetworkBuffer *);
62 void initNetworkBufferForReading(struct NetworkBuffer *);
63 void initNetworkBufferForWriting(struct NetworkBuffer *, int, int);
65 int receiveNetworkBufferBytes(struct NetworkBuffer *, TCPsocket, int);
66 int receiveNetworkBufferPacket(struct NetworkBuffer *, TCPsocket);
68 int getNetworkBuffer8BitInteger(struct NetworkBuffer *);
69 void putNetworkBuffer8BitInteger(struct NetworkBuffer *, int);
70 int getNetworkBuffer16BitInteger(struct NetworkBuffer *);
71 void putNetworkBuffer16BitInteger(struct NetworkBuffer *, int);
72 int getNetworkBuffer32BitInteger(struct NetworkBuffer *);
73 void putNetworkBuffer32BitInteger(struct NetworkBuffer *, int);
74 char *getNetworkBufferString(struct NetworkBuffer *);
75 void putNetworkBufferString(struct NetworkBuffer *, char *);
76 int getNetworkBufferFile(struct NetworkBuffer *, char *);
77 int putNetworkBufferFile(struct NetworkBuffer *, char *);
79 void dumpNetworkBuffer(struct NetworkBuffer *);
81 int NetworkServerThread(void *);
82 void NetworkServer(int, int);