-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnet.h
82 lines (72 loc) · 2.23 KB
/
net.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/***************************************************************
* net.h ####### *
* chaos-eng(c) int13h 2005-2010 #.....# *
* #..@..# *
* Network headers #.....# *
* ####### *
* *
***************************************************************/
enum CE_NET_REQUEST {
CE_NET_BADCRC = -2,
CE_NET_INVALID,
CE_NET_PING,
/* Info */
CE_NET_GAMESTATE,
CE_NET_ARENALAYOUT,
CE_NET_PLAYERSTATE,
CE_NET_SPELLLIST,
CE_NET_SPELLDATA,
CE_NET_HISTORYLOG,
CE_NET_CHATLOG,
CE_NET_BEEPMSG,
/* Commands */
CE_NET_READY,
CE_NET_NEWPLAYER,
CE_NET_CHATMSG,
CE_NET_SELECTEDSPELL,
CE_NET_MOVE,
CE_NET_ACTION,
CE_NET_MOUNT,
CE_NET_ENDTURN
};
enum CE_NET_ACTION {
CE_NET_ACTION_FAIL_LOS = -4,
CE_NET_ACTION_FAIL_DIST,
CE_NET_ACTION_FAIL_ATTACKSELF,
CE_NET_ACTION_FAIL_OWNER,
CE_NET_ACTION_FAIL_OOT,
CE_NET_ACTION_FAIL_INVALID,
CE_NET_ACTION_OK,
CE_NET_ACTION_ATTACK_SUCCESS,
CE_NET_ACTION_ATTACK_FAILED,
CE_NET_ACTION_ENGAGED,
CE_NET_ACTION_CAST,
CE_NET_ACTION_SELECT,
CE_NET_ACTION_DESELECT
};
enum CE_NET_SPECIAL {
CE_NET_SOCKET_ALL = -1
};
typedef struct {
short int type;
short int len;
char data[NET_MAX_PACKET_SIZE];
char crc[256];
} ce_net_request;
typedef struct {
int len;
char data[MAX_SPELLS][NET_MAX_SERIAL_CHUNK];
} ce_net_serial_data;
//=========================================== Internals
int net_sockettopid(int socket);
char* net_gencrc(char data[256]);
bool valid_ipaddress (char address[255]);
void net_send(int socket, char data[NET_MAX_PACKET_SIZE]);
void net_send_all(char data[NET_MAX_PACKET_SIZE]);
ce_net_request net_get_request(char data[NET_MAX_PACKET_SIZE]);
ce_net_serial_data net_unserialise(char datastr[], char sep[2]);
//============================================= Returns
void net_invalid(int socket);
//========================================== Game Loops
void gameloop_net_server(void);
void gameloop_net_client(void);