X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=gameserver.h;h=07ba7a0d62d3df8e8cf20078517202e74fb485e9;hb=859178c6d4b2a9b9a95f8b01b113f589ce0f197f;hp=26099a612dfd74b046f530d96573b438ce3a133e;hpb=730f202673d6ceb2a5199cf244d5c0bddc064fcf;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/gameserver.h b/gameserver.h index 26099a6..07ba7a0 100644 --- a/gameserver.h +++ b/gameserver.h @@ -2,6 +2,7 @@ #define GAMESERVER_H #define VG_SERVER + #include "vg/vg.h" #include "vg/vg_steam.h" #include "vg/vg_steam_networking.h" @@ -12,22 +13,40 @@ #include "highscores.h" #include +#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 ]; - char item_board[ ADDON_UID_MAX ], item_player[ ADDON_UID_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 ]; }