-#ifndef GAMESERVER_H
-#define GAMESERVER_H
-
+#pragma once
#define VG_SERVER
-#include "vg/vg.h"
+
+#include "vg/vg_platform.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 "highscores.h"
+#include "network_common.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 ];
}
};
static ISteamNetworkingSockets *hSteamNetworkingSockets = NULL;
-
-#endif /* GAMESERVER_H */