ConnectX 3.0
ConnectX Game Suite
Loading...
Searching...
No Matches
game_session.hpp
Go to the documentation of this file.
1#pragma once
2
4#include <cstdint>
5#include <map>
6#include <string>
7#include <vector>
8
13public:
14 GameSession(uint32_t id, uint8_t rows, uint8_t cols,
15 uint8_t num_players, uint8_t connect_length, const std::string& name = "");
16
20 uint32_t getId() const { return id_; }
21
25 const std::string& getName() const { return name_; }
26
30 void setName(const std::string& name) { name_ = name; }
31
35 GameEngine& getEngine() { return engine_; }
36 const GameEngine& getEngine() const { return engine_; }
37
42 uint8_t addPlayer(uint32_t connection_id);
43
47 void removePlayer(uint32_t connection_id);
48
52 std::optional<uint8_t> getPlayerId(uint32_t connection_id) const;
53
57 const std::vector<uint32_t>& getConnections() const { return connections_; }
58
62 bool isFull() const { return connections_.size() >= max_players_; }
63
67 size_t getPlayerCount() const { return connections_.size(); }
68
72 uint8_t getMaxPlayers() const { return max_players_; }
73
74private:
75 uint32_t id_;
76 std::string name_;
77 GameEngine engine_;
78 std::vector<uint32_t> connections_; // connection_id for each player
79 std::map<uint32_t, uint8_t> connection_to_player_; // connection_id -> player_id
80 uint8_t max_players_;
81 uint8_t next_player_id_;
82};
Definition engine.hpp:14
Definition game_session.hpp:12
std::optional< uint8_t > getPlayerId(uint32_t connection_id) const
Definition game_session.cpp:36
const std::vector< uint32_t > & getConnections() const
Definition game_session.hpp:57
GameEngine & getEngine()
Definition game_session.hpp:35
size_t getPlayerCount() const
Definition game_session.hpp:67
uint32_t getId() const
Definition game_session.hpp:20
bool isFull() const
Definition game_session.hpp:62
void removePlayer(uint32_t connection_id)
Definition game_session.cpp:29
const GameEngine & getEngine() const
Definition game_session.hpp:36
uint8_t getMaxPlayers() const
Definition game_session.hpp:72
void setName(const std::string &name)
Definition game_session.hpp:30
uint8_t addPlayer(uint32_t connection_id)
Definition game_session.cpp:15
const std::string & getName() const
Definition game_session.hpp:25