remove references to glide in master
[carveJwlIkooP6JGAAIwe30JlM.git] / gameserver.h
index 670a9ba089be4debe5a46160d33b0ee6875b934f..07ba7a0d62d3df8e8cf20078517202e74fb485e9 100644 (file)
@@ -2,21 +2,51 @@
 #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[ 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 ];
 }