Conquer Chess
Chess and Starcraft combined
Loading...
Searching...
No Matches
physical_controllers.h
Go to the documentation of this file.
1#ifndef PHYSICAL_CONTROLLERS_H
2#define PHYSICAL_CONTROLLERS_H
3
4#include "ccfwd.h"
6
7#include <vector>
8#include <map>
9
12{
13public:
15 const std::vector<physical_controller> controllers = {
18 }
19 );
20
22 [[nodiscard]] const physical_controller& get_controller(const side player_side) const noexcept;
23
25 [[nodiscard]] physical_controller& get_controller(const side player_side) noexcept;
26
28 [[nodiscard]] const auto& get_controllers() const noexcept { return m_physical_controllers; }
29
31 void set(const side player_side, const physical_controller& controller);
32
33private:
34
35 std::map<side, physical_controller> m_physical_controllers;
36};
37
39[[nodiscard]] int count_keyboard_controllers(const physical_controllers& controllers) noexcept;
40
42[[nodiscard]] int count_mouse_controllers(const physical_controllers& controllers) noexcept;
43
45[[nodiscard]] int count_n_controllers(const physical_controllers& controllers) noexcept;
46
56
66
76
78[[nodiscard]] bool has_keyboard_controller(const physical_controllers& controllers) noexcept;
79
81[[nodiscard]] bool has_mouse_controller(const physical_controllers& controllers) noexcept;
82
85
86#endif // PHYSICAL_CONTROLLERS_H
A physical controller.
Definition physical_controller.h:19
The physical controllers used by all players.
Definition physical_controllers.h:12
void set(const side player_side, const physical_controller &controller)
Set a controller.
Definition physical_controllers.cpp:87
const physical_controller & get_controller(const side player_side) const noexcept
Get the controller of a player.
Definition physical_controllers.cpp:67
const auto & get_controllers() const noexcept
Get the physical controllers.
Definition physical_controllers.h:28
physical_controller create_default_mouse_controller() noexcept
Create a mouse controller.
Definition physical_controller.cpp:28
physical_controller create_left_keyboard_controller() noexcept
Create a keyboard controller for a user at the left side of the keyboard.
Definition physical_controller.cpp:45
physical_controllers create_mouse_keyboard_controllers() noexcept
Get two controllers, where LHS player uses mouse, and RHS player uses keyboard.
Definition physical_controllers.cpp:53
physical_controllers create_two_keyboard_controllers() noexcept
Get two keyboard controllers.
Definition physical_controllers.cpp:60
physical_controllers create_keyboard_mouse_controllers() noexcept
Get two controllers, where LHS player uses keyboard, and RHS player uses mouse.
Definition physical_controllers.cpp:46
int count_keyboard_controllers(const physical_controllers &controllers) noexcept
Count the number of controllers that use the keyboard.
Definition physical_controllers.cpp:15
bool has_mouse_controller(const physical_controllers &controllers) noexcept
Determine if there is at least one controller that use the mouse.
Definition physical_controllers.cpp:82
void test_physical_controllers()
Test this class and its free functions.
Definition physical_controllers.cpp:92
bool has_keyboard_controller(const physical_controllers &controllers) noexcept
Determine if there is at least one controller that use the keyboard.
Definition physical_controllers.cpp:77
int count_mouse_controllers(const physical_controllers &controllers) noexcept
Count the number of controllers that use the keyboard.
Definition physical_controllers.cpp:28
int count_n_controllers(const physical_controllers &controllers) noexcept
Count the number of controllers.
Definition physical_controllers.cpp:41
side
The side the player/piece is on.
Definition side.h:11