The Battle for Wesnoth 1.21.0-dev
 
Loading...
Searching...
No Matches
drawer.hpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2014 - 2025
3 by Chris Beck <render787@gmail.com>
4 Part of the Battle for Wesnoth Project https://www.wesnoth.org/
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY.
12
13 See the COPYING file for more details.
14*/
15
16/**
17 *
18 * This wrapper class should be held by the display object when it needs to draw a unit.
19 * The purpose of this is to improve encapsulation -- other parts of the engine like AI
20 * don't need to be exposed to the unit drawing code, and encapsulation like this will
21 * help us to reduce unnecessary includes.
22 *
23 **/
24
25#pragma once
26
27#include "map/location.hpp"
28
29#include <vector>
30
31class display;
32class display_context;
33struct frame_parameters;
34class gamemap;
35namespace halo { class manager; }
36class team;
37class unit;
38
39
41{
42public:
43 explicit unit_drawer(display & thedisp);
44
45private:
48 const gamemap & map;
57 std::set<map_location> units_that_can_reach_goal;
58
61
62 /** @todo: better name... unclear what the reachable part actually means */
63 bool selected_or_reachable(const map_location& loc) const;
64
65 void draw_ellipses(const unit& u, const frame_parameters& params) const;
66
67public:
68 /** draw a unit. */
69 void redraw_unit(const unit & u) const;
70};
map_location loc
Definition move.cpp:172
Abstract class for exposing game data that doesn't depend on the GUI, however which for historical re...
Sort-of-Singleton that many classes, both GUI and non-GUI, use to access the game data.
Definition display.hpp:88
Encapsulates the map of the game.
Definition map.hpp:176
This class stores all the data for a single 'side' (in game nomenclature).
Definition team.hpp:74
bool selected_or_reachable(const map_location &loc) const
Definition drawer.cpp:196
const team & viewing_team_ref
Definition drawer.hpp:50
const gamemap & map
Definition drawer.hpp:48
double zoom_factor
Definition drawer.hpp:56
void redraw_unit(const unit &u) const
draw a unit.
Definition drawer.cpp:202
const display_context & dc
Definition drawer.hpp:47
bool show_everything
Definition drawer.hpp:53
const team & playing_team_ref
Definition drawer.hpp:51
halo::manager & halo_man
Definition drawer.hpp:49
void draw_ellipses(const unit &u, const frame_parameters &params) const
Definition drawer.cpp:491
display & disp
Definition drawer.hpp:46
std::set< map_location > units_that_can_reach_goal
Definition drawer.hpp:57
int hex_size
Definition drawer.hpp:59
map_location sel_hex
Definition drawer.hpp:54
int hex_size_by_2
Definition drawer.hpp:60
map_location mouse_hex
Definition drawer.hpp:55
bool is_blindfolded
Definition drawer.hpp:52
This class represents a single unit of a specific type.
Definition unit.hpp:39
Definition halo.cpp:41
All parameters from a frame at a given instant.
Definition frame.hpp:44
Encapsulates the map of the game.
Definition location.hpp:46