up network version
[carveJwlIkooP6JGAAIwe30JlM.git] / gameserver.h
1 #ifndef GAMESERVER_H
2 #define GAMESERVER_H
3
4 #define VG_SERVER
5
6 #include "vg/vg.h"
7 #include "vg/vg_steam.h"
8 #include "vg/vg_steam_networking.h"
9 #include "vg/vg_steam_http.h"
10 #include "vg/vg_steam_auth.h"
11 #include "network_msg.h"
12 #include "network_common.h"
13 #include <sys/socket.h>
14
15 #define CLIENT_KNOWLEDGE_SAME_WORLD0 0x1
16 #define CLIENT_KNOWLEDGE_SAME_WORLD1 0x2
17 #define CLIENT_KNOWLEDGE_FRIENDS 0x4 /* TODO? */
18
19 struct {
20 HSteamNetPollGroup client_group;
21 EServerMode auth_mode;
22
23 struct gameserver_client {
24 int active;
25 u32 version;
26 int authenticated;
27 HSteamNetConnection connection;
28 char username[ NETWORK_USERNAME_MAX ];
29
30 u8 instance;
31
32 struct gameserver_item {
33 char uid[ADDON_UID_MAX];
34 u32 hash;
35 }
36 items[k_netmsg_playeritem_max];
37
38 char region[ NETWORK_REGION_MAX ];
39 u32 region_flags;
40
41 u64 steamid;
42 }
43 clients[ NETWORK_MAX_PLAYERS ];
44
45 u8 client_knowledge_mask[ (NETWORK_MAX_PLAYERS*(NETWORK_MAX_PLAYERS-1))/2 ];
46 u8 app_symmetric_key[ k_nSteamEncryptedAppTicketSymmetricKeyLen ];
47
48 /* TODO: Consider removing this */
49 int monitor_fd;
50 int monitor_clients[ 4 ];
51 }
52 static gameserver = {
53 .auth_mode = eServerModeAuthentication
54 };
55
56 static ISteamNetworkingSockets *hSteamNetworkingSockets = NULL;
57
58 #endif /* GAMESERVER_H */