#define GAMESERVER_H
#define VG_SERVER
+
#include "vg/vg.h"
#include "vg/vg_steam.h"
#include "vg/vg_steam_networking.h"
#include "vg/vg_steam_http.h"
#include "vg/vg_steam_auth.h"
#include "network_msg.h"
+#include "network_common.h"
#include "highscores.h"
#include <sys/socket.h>
+#define CLIENT_KNOWLEDGE_SAME_WORLD0 0x1
+#define CLIENT_KNOWLEDGE_SAME_WORLD1 0x2
+#define CLIENT_KNOWLEDGE_FRIENDS 0x4 /* TODO? */
+
struct {
HSteamNetPollGroup client_group;
EServerMode auth_mode;
struct gameserver_client {
int active;
+ u32 version;
int authenticated;
HSteamNetConnection connection;
+ char username[ NETWORK_USERNAME_MAX ];
+
+ u8 instance;
+
+ struct gameserver_item {
+ char uid[ADDON_UID_MAX];
+ u32 hash;
+ }
+ items[k_netmsg_playeritem_max];
+
+ char region[ NETWORK_REGION_MAX ];
+ u32 region_flags;
+
+ u64 steamid;
}
- clients[ 32 ];
+ clients[ NETWORK_MAX_PLAYERS ];
+ u8 client_knowledge_mask[ (NETWORK_MAX_PLAYERS*(NETWORK_MAX_PLAYERS-1))/2 ];
u8 app_symmetric_key[ k_nSteamEncryptedAppTicketSymmetricKeyLen ];
+ /* TODO: Consider removing this */
int monitor_fd;
int monitor_clients[ 4 ];
}