Conquer Chess
Chess and Starcraft combined
Loading...
Searching...
No Matches
lobby_view.h
Go to the documentation of this file.
1#ifndef LOBBY_VIEW_H
2#define LOBBY_VIEW_H
3
4#ifndef LOGIC_ONLY
5
6#include "controls_bar.h"
7//#include "program_state.h"
8#include "game_options.h"
9#include "lobby_options.h"
10#include "lobby_view_layout.h"
11#include "lobby_view_item.h"
12#include "view.h"
13
14#include <SFML/Graphics.hpp>
15#include <optional>
16
18class lobby_view : public view
19{
20public:
21 lobby_view();
22
23
24
26 void draw_impl() override;
27
28 bool get_dog_mode() const noexcept { return m_dog_mode; }
29
30 const auto& get_lobby_options() const noexcept { return m_lobby_options; }
31
33 lobby_view_item get_selected(const side player_side) const noexcept;
34
36 bool get_start(const side player_side) const noexcept;
37
38 const auto& get_layout() const noexcept { return m_layout; }
39
40 bool has_accepted() const noexcept { return m_has_accepted; }
41
44 bool process_event_impl(sf::Event& event) override;
45
46 void process_resize_event_impl(sf::Event& event) override;
47
51
52 void stop_impl() override;
53
54 void start_impl() override;
55
57 void tick_impl(const delta_t dt) override;
58
59private:
60
63 std::optional<sf::Clock> m_clock;
64
65 controls_bar m_controls_bar;
66
68 const int m_countdown_secs{3};
69
71 bool m_dog_mode{false};
72
74 game_options m_game_options;
75
76 bool m_has_accepted{false};
77
79 lobby_view_layout m_layout;
80
82 lobby_view_item m_lhs_cursor;
83
85 bool m_lhs_start;
86
88 lobby_view_item m_rhs_cursor;
89
91 lobby_options m_lobby_options;
92
94 bool m_rhs_start;
95};
96
99
101void draw_color_panel(lobby_view& v, const side player_side);
102
104void draw_countdown(lobby_view& v, const int n_left_secs);
105
107void draw_king_portrait(lobby_view& v, const side player_side);
108
111
113void draw_race_panel(lobby_view& v, const side player_side);
114
116void draw_ready_panel(lobby_view& v, const side player_side);
117
119void draw_selected_panel(lobby_view& v, const side player_side);
120
123
124
125#endif // LOGIC_ONLY
126
127#endif // LOBBY_VIEW_H
Definition controls_bar.h:12
A change of in_game_time}.
Definition delta_t.h:12
Options for the game.
Definition game_options.h:18
The options that are set in the lobby.
Definition lobby_options.h:16
The layout of the Lobby dialog.
Definition lobby_view_layout.h:53
The lobby screen.
Definition lobby_view.h:19
void set_selected(const lobby_view_item i)
Sets the selected item.
bool get_dog_mode() const noexcept
Definition lobby_view.h:28
bool has_accepted() const noexcept
Definition lobby_view.h:40
const auto & get_layout() const noexcept
Definition lobby_view.h:38
void stop_impl() override
Clean up after this window has been shown.
Definition lobby_view.cpp:394
bool process_event_impl(sf::Event &event) override
Process all events.
Definition lobby_view.cpp:67
bool get_start(const side player_side) const noexcept
Is the player ready?
Definition lobby_view.cpp:57
void draw_impl() override
Show the menu on-screen.
Definition lobby_view.cpp:194
void start_impl() override
Prepare this window for being shown.
Definition lobby_view.cpp:371
void process_resize_event_impl(sf::Event &event) override
Process a resize event.
Definition lobby_view.cpp:180
void tick_impl(const delta_t dt) override
Does the countdown.
Definition lobby_view.cpp:31
const auto & get_lobby_options() const noexcept
Definition lobby_view.h:30
lobby_view()
Definition lobby_view.cpp:21
lobby_view_item get_selected(const side player_side) const noexcept
Get the selected item of a player.
Definition lobby_view.cpp:47
The abstract base class of all other views.
Definition view.h:26
void draw_selected_panel(lobby_view &v, const side player_side)
Draw the cursor on the selected panel.
Definition lobby_view.cpp:328
void draw_color_panel(lobby_view &v, const side player_side)
Show the side/color the players have picked.
Definition lobby_view.cpp:225
void draw_countdown(lobby_view &v, const int n_left_secs)
Show the countdown.
Definition lobby_view.cpp:240
void draw_ready_panel(lobby_view &v, const side player_side)
Show if the players are ready.
Definition lobby_view.cpp:346
void draw_lobby_title(lobby_view &v)
The image at the top.
Definition lobby_view.cpp:363
void draw_race_panel(lobby_view &v, const side player_side)
Show the races the players have picked.
Definition lobby_view.cpp:248
void draw_king_portrait(lobby_view &v, const side player_side)
Show the portraits of the kings of the race the players use.
Definition lobby_view.cpp:279
void draw_background(lobby_view &v)
The background image.
Definition lobby_view.cpp:269
void draw_layout_panels(lobby_view &v)
Show where the panels will be drawn.
Definition lobby_view.cpp:317
lobby_view_item
The items in the Lobby.
Definition lobby_view_item.h:10
side
The side the player/piece is on.
Definition side.h:11