#ifndef SERVER_SESSIONS_HH #define SERVER_SESSIONS_HH 1 #pragma once class Dimension; class ConfigUnsigned; struct Session final { std::uint16_t client_index; std::uint64_t client_identity; std::string client_username; entt::entity player_entity; Dimension* dimension; ENetPeer* peer; }; namespace sessions { extern ConfigUnsigned max_players; extern unsigned int num_players; } // namespace sessions namespace sessions { void init(void); void init_late(void); void init_post_universe(void); void shutdown(void); } // namespace sessions namespace sessions { Session* create(ENetPeer* peer, const char* client_username); Session* find(const char* client_username); Session* find(std::uint16_t client_index); Session* find(std::uint64_t client_identity); Session* find(ENetPeer* peer); void destroy(Session* session); } // namespace sessions namespace sessions { void broadcast(const Dimension* dimension, ENetPacket* packet); void broadcast(const Dimension* dimension, ENetPacket* packet, ENetPeer* except); } // namespace sessions namespace sessions { void refresh_scoreboard(void); } // namespace sessions #endif // SERVER_SESSIONS_HH