gameserver optimisations
[carveJwlIkooP6JGAAIwe30JlM.git] / gameserver.h
index fa856cee1785aed63b10e9112a84d411cd58dec2..ac1c4914201c5b8cca64e8ed825c36e9ba0f2164 100644 (file)
 #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;
@@ -23,13 +27,23 @@ struct {
       int authenticated;
       HSteamNetConnection connection;
       char username[ NETWORK_USERNAME_MAX ];
-      char items[k_netmsg_playeritem_max][ADDON_UID_MAX];
+
+      u8 instance;
+
+      struct gameserver_item {
+         char uid[ADDON_UID_MAX];
+         u32  hash;
+      }
+      items[k_netmsg_playeritem_max];
+
       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 ];
 }