The Battle for Wesnoth  1.17.10+dev
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
game_display Class Reference

#include <game_display.hpp>

Inheritance diagram for game_display:

Public Types

enum  game_mode { RUNNING, LINGER }
 Sets the linger mode for the display. More...
 
- Public Types inherited from display
enum  SCROLL_TYPE { SCROLL, WARP, ONSCREEN, ONSCREEN_WARP }
 
enum  drawing_layer {
  LAYER_TERRAIN_BG, LAYER_GRID_TOP, LAYER_MOUSEOVER_OVERLAY, LAYER_FOOTSTEPS,
  LAYER_MOUSEOVER_TOP, LAYER_UNIT_FIRST, LAYER_UNIT_BG = LAYER_UNIT_FIRST+10, LAYER_UNIT_DEFAULT =LAYER_UNIT_FIRST+40,
  LAYER_TERRAIN_FG = LAYER_UNIT_FIRST+50, LAYER_GRID_BOTTOM, LAYER_UNIT_MOVE_DEFAULT =LAYER_UNIT_FIRST+60, LAYER_UNIT_FG = LAYER_UNIT_FIRST+80,
  LAYER_UNIT_MISSILE_DEFAULT = LAYER_UNIT_FIRST+90, LAYER_UNIT_LAST =LAYER_UNIT_FIRST+100, LAYER_REACHMAP, LAYER_MOUSEOVER_BOTTOM,
  LAYER_FOG_SHROUD, LAYER_ARROWS, LAYER_ACTIONS_NUMBERING, LAYER_SELECTED_HEX,
  LAYER_ATTACK_INDICATOR, LAYER_UNIT_BAR, LAYER_MOVE_INFO, LAYER_LINGER_OVERLAY,
  LAYER_BORDER
}
 The layers to render something on. More...
 
enum  DEBUG_FLAG {
  DEBUG_COORDINATES, DEBUG_TERRAIN_CODES, DEBUG_NUM_BITMAPS, DEBUG_FOREGROUND,
  DEBUG_BENCHMARK, __NUM_DEBUG_FLAGS
}
 

Public Member Functions

 game_display (game_board &board, std::weak_ptr< wb::manager > wb, reports &reports_object, const std::string &theme_id, const config &level)
 
 ~game_display ()
 
void new_turn ()
 Update lighting settings. More...
 
virtual const std::set< std::string > & observers () const override
 
void scroll_to_leader (int side, SCROLL_TYPE scroll_type=ONSCREEN, bool force=true)
 Scrolls to the leader of a certain side. More...
 
virtual void select_hex (map_location hex) override
 Function to display a location as selected. More...
 
virtual void highlight_hex (map_location hex) override
 Function to highlight a location. More...
 
void display_unit_hex (map_location hex)
 Change the unit to be displayed in the sidebar. More...
 
void highlight_reach (const pathfind::paths &paths_list)
 Sets the paths that are currently displayed as available for the unit to move along. More...
 
void highlight_another_reach (const pathfind::paths &paths_list, const map_location &goal=map_location::null_location())
 Add more paths to highlight. More...
 
const std::set< map_location > & units_that_can_reach_goal () const
 Return the locations of units that can reach goal (. More...
 
bool unhighlight_reach ()
 Reset highlighting of paths. More...
 
void set_route (const pathfind::marked_route *route)
 Sets the route along which footsteps are drawn to show movement of a unit. More...
 
const pathfind::marked_routeget_route ()
 Gets the route along which footsteps are drawn to show movement of a unit. More...
 
void float_label (const map_location &loc, const std::string &text, const color_t &color)
 Function to float a label above a tile. More...
 
void draw_movement_info (const map_location &loc)
 Draws the movement info (turns available) for a given location. More...
 
void invalidate_unit ()
 Function to invalidate that unit status displayed on the sidebar. More...
 
void invalidate_unit_after_move (const map_location &src, const map_location &dst)
 Same as invalidate_unit() if moving the displayed unit. More...
 
virtual const time_of_dayget_time_of_day (const map_location &loc) const override
 
virtual bool has_time_area () const override
 
virtual void update () override
 TLD update() override. More...
 
virtual void layout () override
 TLD layout() override. More...
 
virtual void render () override
 TLD render() override. More...
 
void set_attack_indicator (const map_location &src, const map_location &dst)
 Set the attack direction indicator. More...
 
void clear_attack_indicator ()
 
const map_locationget_attack_indicator_src ()
 
std::string attack_indicator_direction () const
 Function to get attack direction suffix. More...
 
t_translation::terrain_code get_terrain_on (int palx, int paly, int x, int y)
 
virtual const map_locationdisplayed_unit_hex () const override
 Virtual functions shadowed in game_display. More...
 
virtual int playing_side () const override
 The playing team is the team whose turn it is. More...
 
std::string current_team_name () const
 
display_chat_managerget_chat_manager ()
 
void begin_game ()
 
virtual bool in_game () const override
 
void set_game_mode (const game_mode mode)
 
void needs_rebuild (bool b)
 Sets whether the screen (map visuals) needs to be rebuilt. More...
 
bool maybe_rebuild ()
 Rebuilds the screen if needs_rebuild(true) was previously called, and resets the flag. More...
 
- Public Member Functions inherited from display
 display (const display_context *dc, std::weak_ptr< wb::manager > wb, reports &reports_object, const std::string &theme_id, const config &level)
 
virtual ~display ()
 
bool show_everything () const
 
const gamemapget_map () const
 
const std::vector< team > & get_teams () const
 
std::size_t playing_team () const
 The playing team is the team whose turn it is. More...
 
bool team_valid () const
 
std::size_t viewing_team () const
 The viewing team is the team currently viewing the game. More...
 
int viewing_side () const
 
void set_team (std::size_t team, bool observe=false)
 Sets the team controlled by the player using the computer. More...
 
void set_playing_team (std::size_t team)
 set_playing_team sets the team whose turn it currently is More...
 
void clear_exclusive_draws ()
 Cancels all the exclusive draw requests. More...
 
const unit_mapget_units () const
 
bool add_exclusive_draw (const map_location &loc, unit &unit)
 Allows a unit to request to be the only one drawn in its hex. More...
 
std::string remove_exclusive_draw (const map_location &loc)
 Cancels an exclusive draw request. More...
 
void parse_team_overlays ()
 Check the overlay_map for proper team-specific overlays to be displayed/hidden. More...
 
void add_overlay (const map_location &loc, const std::string &image, const std::string &halo="", const std::string &team_name="", const std::string &item_id="", bool visible_under_fog=true, float submerge=0.0f, float z_order=0)
 Functions to add and remove overlays from locations. More...
 
void remove_overlay (const map_location &loc)
 remove_overlay will remove all overlays on a tile. More...
 
void remove_single_overlay (const map_location &loc, const std::string &toDelete)
 remove_single_overlay will remove a single overlay from a tile More...
 
void reload_map ()
 Updates internals that cache map size. More...
 
void change_display_context (const display_context *dc)
 
const display_contextget_disp_context () const
 
halo::managerget_halo_manager ()
 
void update_tod (const time_of_day *tod_override=nullptr)
 Applies r,g,b coloring to the map. More...
 
void adjust_color_overlay (int r, int g, int b)
 Add r,g,b to the colors for all images displayed on the map. More...
 
tod_color get_color_overlay () const
 
virtual bool in_editor () const
 
const rectminimap_area () const
 mapx is the width of the portion of the display which shows the game area. More...
 
const rectpalette_area () const
 
const rectunit_image_area () const
 
rect max_map_area () const
 Returns the maximum area used for the map regardless to resolution and view size. More...
 
rect map_area () const
 Returns the area used for the map. More...
 
rect map_outside_area () const
 Returns the available area for a map, this may differ from the above. More...
 
const map_location hex_clicked_on (int x, int y) const
 given x,y co-ordinates of an onscreen pixel, will return the location of the hex that this pixel corresponds to. More...
 
const map_location pixel_position_to_hex (int x, int y) const
 given x,y co-ordinates of a pixel on the map, will return the location of the hex that this pixel corresponds to. More...
 
map_location minimap_location_on (int x, int y)
 given x,y co-ordinates of the mouse, will return the location of the hex in the minimap that the mouse is currently over, or an invalid location if the mouse isn't over the minimap. More...
 
const map_locationselected_hex () const
 
const map_locationmouseover_hex () const
 
void invalidate_game_status ()
 Function to invalidate the game status displayed on the sidebar. More...
 
int get_location_x (const map_location &loc) const
 Functions to get the on-screen positions of hexes. More...
 
int get_location_y (const map_location &loc) const
 
point get_location (const map_location &loc) const
 
const rect_of_hexes hexes_under_rect (const SDL_Rect &r) const
 Return the rectangular area of hexes overlapped by r (r is in screen coordinates) More...
 
const rect_of_hexes get_visible_hexes () const
 Returns the rectangular area of visible hexes. More...
 
bool shrouded (const map_location &loc) const
 Returns true if location (x,y) is covered in shroud. More...
 
bool fogged (const map_location &loc) const
 Returns true if location (x,y) is covered in fog. More...
 
surface screenshot (bool map_screenshot=false)
 Capture a (map-)screenshot into a surface. More...
 
void queue_rerender ()
 Marks everything for rendering including all tiles and sidebar. More...
 
void queue_repaint ()
 Queues repainting to the screen, but doesn't rerender. More...
 
void add_redraw_observer (std::function< void(display &)> f)
 Adds a redraw observer, a function object to be called when a full rerender is queued. More...
 
void clear_redraw_observers ()
 Clear the redraw observers. More...
 
themeget_theme ()
 
void set_theme (const std::string &new_theme)
 
std::shared_ptr< gui::buttonfind_action_button (const std::string &id)
 Retrieves a pointer to a theme UI button. More...
 
std::shared_ptr< gui::buttonfind_menu_button (const std::string &id)
 
void create_buttons ()
 
void layout_buttons ()
 
void draw_buttons ()
 
void refresh_report (const std::string &report_name, const config *new_cfg=nullptr)
 Update the given report. More...
 
void draw_report (const std::string &report_name, bool test_run=false)
 Draw the specified report. More...
 
bool draw_reports (const rect &region)
 Draw all reports in the given region. More...
 
void draw_minimap_units ()
 
void invalidate_all ()
 Function to invalidate all tiles. More...
 
bool invalidate (const map_location &loc)
 Function to invalidate a specific tile for redrawing. More...
 
bool invalidate (const std::set< map_location > &locs)
 
bool propagate_invalidation (const std::set< map_location > &locs)
 If this set is partially invalidated, invalidate all its hexes. More...
 
bool invalidate_locations_in_rect (const SDL_Rect &rect)
 invalidate all hexes under the rectangle rect (in screen coordinates) More...
 
bool invalidate_visible_locations_in_rect (const SDL_Rect &rect)
 
void invalidate_animations ()
 Function to invalidate animated terrains and units which may have changed. More...
 
void invalidate_animations_location (const map_location &loc)
 Per-location invalidation called by invalidate_animations() Extra game per-location invalidation (village ownership) More...
 
void reset_standing_animations ()
 
terrain_builderget_builder ()
 
void update_fps_label ()
 
void clear_fps_label ()
 
void update_fps_count ()
 
void rebuild_all ()
 Rebuild all dynamic terrain. More...
 
const theme::actionaction_pressed ()
 
const theme::menumenu_pressed ()
 
void set_diagnostic (const std::string &msg)
 
double turbo_speed () const
 
void bounds_check_position ()
 
void bounds_check_position (int &xpos, int &ypos) const
 
bool scroll (int xmov, int ymov, bool force=false)
 Scrolls the display by xmov,ymov pixels. More...
 
bool set_zoom (bool increase)
 Zooms the display in (true) or out (false). More...
 
bool set_zoom (unsigned int amount, const bool validate_value_and_set_index=true)
 Sets the display zoom to the specified amount. More...
 
void toggle_default_zoom ()
 Sets the zoom amount to the default. More...
 
bool view_locked () const
 
void set_view_locked (bool value)
 Sets whether the map view is locked (e.g. More...
 
void scroll_to_tile (const map_location &loc, SCROLL_TYPE scroll_type=ONSCREEN, bool check_fogged=true, bool force=true)
 Scroll such that location loc is on-screen. More...
 
void scroll_to_tiles (map_location loc1, map_location loc2, SCROLL_TYPE scroll_type=ONSCREEN, bool check_fogged=true, double add_spacing=0.0, bool force=true)
 Scroll such that location loc1 is on-screen. More...
 
void scroll_to_tiles (const std::vector< map_location >::const_iterator &begin, const std::vector< map_location >::const_iterator &end, SCROLL_TYPE scroll_type=ONSCREEN, bool check_fogged=true, bool only_if_possible=false, double add_spacing=0.0, bool force=true)
 Scroll to fit as many locations on-screen as possible, starting with the first. More...
 
void scroll_to_tiles (const std::vector< map_location > &locs, SCROLL_TYPE scroll_type=ONSCREEN, bool check_fogged=true, bool only_if_possible=false, double add_spacing=0.0, bool force=true)
 Scroll to fit as many locations on-screen as possible, starting with the first. More...
 
events::generic_eventscroll_event () const
 Expose the event, so observers can be notified about map scrolling. More...
 
bool tile_fully_on_screen (const map_location &loc) const
 Check if a tile is fully visible on screen. More...
 
bool tile_nearly_on_screen (const map_location &loc) const
 Checks if location loc or one of the adjacent tiles is visible on screen. More...
 
void set_prevent_draw (bool pd)
 Prevent the game display from drawing. More...
 
bool get_prevent_draw ()
 
void fade_tod_mask (const std::string &old, const std::string &new_)
 ToD mask smooth fade. More...
 
void fade_to (const color_t &color, int duration)
 Screen fade. More...
 
void set_fade (const color_t &color)
 
virtual bool expose (const rect &region) override
 Paint the indicated region to the screen. More...
 
virtual rect screen_location () override
 Return the current draw location of the display, on the screen. More...
 
map_labelslabels ()
 
const map_labelslabels () const
 
void announce (const std::string &msg, const color_t &color=font::GOOD_COLOR, const announce_options &options=announce_options())
 Announce a message prominently. More...
 
void recalculate_minimap ()
 Schedule the minimap for recalculation. More...
 
void redraw_minimap ()
 Schedule the minimap to be redrawn. More...
 
void blindfold (bool flag)
 
bool is_blindfolded () const
 
void write (config &cfg) const
 
void init_flags ()
 Init the flag list and the team colors used by ~TC. More...
 
void reinit_flags_for_team (const team &)
 Rebuild the flag list (not team colors) for a single side. More...
 
void reset_reports (reports &reports_object)
 
void draw_text_in_hex (const map_location &loc, const drawing_layer layer, const std::string &text, std::size_t font_size, color_t color, double x_in_hex=0.5, double y_in_hex=0.5)
 Draw text on a hex. More...
 
void drawing_buffer_add (const drawing_layer layer, const map_location &loc, decltype(draw_helper::do_draw) draw_func)
 Add an item to the drawing buffer. More...
 
void add_arrow (arrow &)
 
void remove_arrow (arrow &)
 
void update_arrow (arrow &a)
 Called by arrow objects when they change. More...
 
bool debug_flag_set (DEBUG_FLAG flag) const
 
void set_debug_flag (DEBUG_FLAG flag, bool value)
 
void toggle_debug_flag (DEBUG_FLAG flag)
 

Static Public Member Functions

static game_displayget_singleton ()
 
static int & debug_highlight (const map_location &loc)
 annotate hex with number, useful for debugging or UI prototype More...
 
static void clear_debug_highlights ()
 
- Static Public Member Functions inherited from display
static displayget_singleton ()
 Returns the display object if a display object exists. More...
 
static bool outside_area (const SDL_Rect &area, const int x, const int y)
 Check if the bbox of the hex at x,y has pixels outside the area rectangle. More...
 
static int hex_width ()
 Function which returns the width of a hex in pixels, up to where the next hex starts. More...
 
static int hex_size ()
 Function which returns the size of a hex in pixels (from top tip to bottom tip or left edge to right edge). More...
 
static double get_zoom_factor ()
 Returns the current zoom factor. More...
 
static rect scaled_to_zoom (const SDL_Rect &r)
 Scale the width and height of a rect by the current zoom factor. More...
 
static point scaled_to_zoom (const point &p)
 
static bool zoom_at_max ()
 
static bool zoom_at_min ()
 
static void add_submerge_ipf_mod (std::string &image_path, int image_height, double submersion_amount, int shift=0)
 

Protected Member Functions

virtual void draw_invalidated () override
 Only called when there's actual redrawing to do. More...
 
virtual void draw_hex (const map_location &loc) override
 Redraws a single gamemap location. More...
 
virtual overlay_mapget_overlays () override
 Inherited from display. More...
 
- Protected Member Functions inherited from display
map_location get_middle_location () const
 
virtual rect get_clip_rect () const
 Get the clipping rectangle for drawing. More...
 
void get_terrain_images (const map_location &loc, const std::string &timeid, TERRAIN_TYPE terrain_type)
 
std::vector< textureget_fog_shroud_images (const map_location &loc, image::TYPE image_type)
 
void scroll_to_xy (int screenxpos, int screenypos, SCROLL_TYPE scroll_type, bool force=true)
 
void drawing_buffer_commit ()
 Draws the drawing_buffer_ and clears it. More...
 
bool draw_all_panels (const rect &region)
 Redraws all panels intersecting the given region. More...
 
void draw_init ()
 Initiate a redraw. More...
 
void draw_wrap (bool update, bool force)
 
void process_reachmap_changes ()
 
- Protected Member Functions inherited from gui2::top_level_drawable
 top_level_drawable ()
 
virtual ~top_level_drawable ()
 
 top_level_drawable (const top_level_drawable &)
 
top_level_drawableoperator= (const top_level_drawable &)
 
 top_level_drawable (top_level_drawable &&)
 
top_level_drawableoperator= (top_level_drawable &&)
 

Protected Attributes

std::set< map_locationunits_that_can_reach_goal_
 
- Protected Attributes inherited from display
const display_contextdc_
 
halo::manager halo_man_
 
std::weak_ptr< wb::managerwb_
 
exclusive_unit_draw_requests_t exclusive_unit_draw_requests_
 map of hexes where only one unit should be drawn, the one identified by the associated id string More...
 
std::size_t currentTeam_
 
bool dont_show_all_
 
int xpos_
 Position of the top-left corner of the viewport, in pixels. More...
 
int ypos_
 
bool view_locked_
 
theme theme_
 
int zoom_index_
 
const std::unique_ptr< fake_unit_managerfake_unit_man_
 
const std::unique_ptr< terrain_builderbuilder_
 
texture minimap_
 
SDL_Rect minimap_location_
 
bool redraw_background_
 
bool invalidateAll_
 
int diagnostic_label_
 
bool invalidateGameStatus_
 
const std::unique_ptr< map_labelsmap_labels_
 
reportsreports_object_
 
events::generic_event scroll_event_
 Event raised when the map is being scrolled. More...
 
boost::circular_buffer< unsigned > frametimes_
 
int current_frame_sample_ = 0
 
unsigned int fps_counter_
 
std::chrono::seconds fps_start_
 
unsigned int fps_actual_
 
uint32_t last_frame_finished_ = 0u
 
std::map< std::string, rectreportLocations_
 
std::map< std::string, texturereportSurfaces_
 
std::map< std::string, configreports_
 
std::vector< std::shared_ptr< gui::button > > menu_buttons_
 
std::vector< std::shared_ptr< gui::button > > action_buttons_
 
std::set< map_locationinvalidated_
 
texture tod_hex_mask1 = {}
 
texture tod_hex_mask2 = {}
 
uint8_t tod_hex_alpha1 = 0
 
uint8_t tod_hex_alpha2 = 0
 
std::vector< std::string > fog_images_
 
std::vector< std::string > shroud_images_
 
map_location selectedHex_
 
map_location mouseoverHex_
 
CKey keys_
 
bool animate_map_
 Local cache for preferences::animate_map, since it is constantly queried. More...
 
bool animate_water_
 Local version of preferences::animate_water, used to detect when it's changed. More...
 
std::size_t activeTeam_
 
std::list< draw_helperdrawing_buffer_
 
bool map_screenshot_
 Used to indicate to drawing functions that we are doing a map screenshot. More...
 
reach_map reach_map_
 
reach_map reach_map_old_
 
bool reach_map_changed_
 

Private Member Functions

 game_display (const game_display &)
 
void operator= (const game_display &)
 
void invalidate_route ()
 

Private Attributes

overlay_map overlay_map_
 
map_location attack_indicator_src_
 
map_location attack_indicator_dst_
 
pathfind::marked_route route_
 
map_location displayedUnitHex_
 
bool in_game_
 
const std::unique_ptr< display_chat_managerchat_man_
 
game_mode mode_
 
bool needs_rebuild_
 

Static Private Attributes

static std::map< map_location, int > debugHighlights_
 

Additional Inherited Members

- Protected Types inherited from display
enum  TERRAIN_TYPE { BACKGROUND, FOREGROUND }
 
typedef std::map< map_location, std::string > exclusive_unit_draw_requests_t
 
typedef std::map< map_location, unsigned int > reach_map
 
typedef std::map< map_location, std::vector< overlay > > overlay_map
 
- Static Protected Member Functions inherited from display
static void fill_images_list (const std::string &prefix, std::vector< std::string > &images)
 
static const std::string & get_variant (const std::vector< std::string > &variants, const map_location &loc)
 
- Static Protected Attributes inherited from display
static unsigned int zoom_ = DefaultZoom
 The current zoom, in pixels (on screen) per 72 pixels (in the graphic assets), i.e., 72 means 100%. More...
 
static unsigned int last_zoom_ = SmallZoom
 The previous value of zoom_. More...
 
static displaysingleton_ = nullptr
 

Detailed Description

Definition at line 33 of file game_display.hpp.

Member Enumeration Documentation

◆ game_mode

Sets the linger mode for the display.

There have been some discussions on what to do with fog and shroud the extra variables make it easier to modify the behavior. There might even be a split between victory and defeat.

Todo:
if the current implementation is wanted we can change the stuff back to a boolean
Enumerator
RUNNING 

no linger overlay, show fog and shroud.

LINGER 

Definition at line 220 of file game_display.hpp.

Constructor & Destructor Documentation

◆ game_display() [1/2]

game_display::game_display ( game_board board,
std::weak_ptr< wb::manager wb,
reports reports_object,
const std::string &  theme_id,
const config level 
)

Definition at line 69 of file game_display.cpp.

◆ ~game_display()

game_display::~game_display ( )

Definition at line 87 of file game_display.cpp.

References chat_man_, DBG_DP, and utils::get_unknown_exception_type().

◆ game_display() [2/2]

game_display::game_display ( const game_display )
private

Member Function Documentation

◆ attack_indicator_direction()

std::string game_display::attack_indicator_direction ( ) const
inline

Function to get attack direction suffix.

Definition at line 182 of file game_display.hpp.

References attack_indicator_dst_, attack_indicator_src_, map_location::get_relative_dir(), get_terrain_on(), and map_location::write_direction().

Referenced by draw_hex().

◆ begin_game()

void game_display::begin_game ( )

Definition at line 647 of file game_display.cpp.

References display::create_buttons(), in_game_, and display::invalidate_all().

Referenced by get_chat_manager().

◆ clear_attack_indicator()

void game_display::clear_attack_indicator ( )

◆ clear_debug_highlights()

static void game_display::clear_debug_highlights ( )
inlinestatic

Definition at line 198 of file game_display.hpp.

References debugHighlights_.

◆ current_team_name()

std::string game_display::current_team_name ( ) const

◆ debug_highlight()

int & game_display::debug_highlight ( const map_location loc)
static

annotate hex with number, useful for debugging or UI prototype

Definition at line 613 of file game_display.cpp.

References game_config::debug, and debugHighlights_.

Referenced by displayed_unit_hex().

◆ display_unit_hex()

void game_display::display_unit_hex ( map_location  hex)

Change the unit to be displayed in the sidebar.

This is used when selecting or highlighting is not wanted.

< Lasts for whole method.

Definition at line 149 of file game_display.cpp.

References display::dc_, displayedUnitHex_, display::dont_show_all_, resources::gameboard, game_board::get_visible_unit(), invalidate_unit(), synced_context::is_synced(), display_context::teams(), map_location::valid(), and display::viewing_team().

Referenced by events::mouse_handler::attack_enemy_(), observers(), select_hex(), and unit_display::unit_healing().

◆ displayed_unit_hex()

virtual const map_location& game_display::displayed_unit_hex ( ) const
inlineoverridevirtual

Virtual functions shadowed in game_display.

These are needed to generate reports easily, without dynamic casting. Hope to factor out eventually.

Reimplemented from display.

Definition at line 192 of file game_display.hpp.

References debug_highlight(), and displayedUnitHex_.

◆ draw_hex()

void game_display::draw_hex ( const map_location loc)
overrideprotectedvirtual

◆ draw_invalidated()

void game_display::draw_invalidated ( )
overrideprotectedvirtual

Only called when there's actual redrawing to do.

Loops through invalidated locations and redraws them. Derived classes can override this, possibly to insert pre- or post-processing around a call to the base class's function.

Reimplemented from display.

Definition at line 205 of file game_display.cpp.

References display::draw_invalidated(), display::exclusive_unit_draw_requests_, display::fake_unit_man_, display::invalidated_, and unit_drawer::redraw_unit().

Referenced by invalidate_unit().

◆ draw_movement_info()

void game_display::draw_movement_info ( const map_location loc)

◆ float_label()

void game_display::float_label ( const map_location loc,
const std::string &  text,
const color_t color 
)

◆ get_attack_indicator_src()

const map_location& game_display::get_attack_indicator_src ( )
inline

Definition at line 179 of file game_display.hpp.

References attack_indicator_src_.

Referenced by REPORT_GENERATOR().

◆ get_chat_manager()

display_chat_manager& game_display::get_chat_manager ( )
inline

◆ get_overlays()

display::overlay_map & game_display::get_overlays ( )
overrideprotectedvirtual

Inherited from display.

Implements display.

Definition at line 671 of file game_display.cpp.

References overlay_map_.

Referenced by invalidate_unit().

◆ get_route()

const pathfind::marked_route& game_display::get_route ( )
inline

Gets the route along which footsteps are drawn to show movement of a unit.

If no route is currently being shown, the array get_route().steps will be empty.

Definition at line 120 of file game_display.hpp.

References draw_movement_info(), float_label(), and route_.

Referenced by unit_moves().

◆ get_singleton()

static game_display* game_display::get_singleton ( )
inlinestatic

◆ get_terrain_on()

t_translation::terrain_code game_display::get_terrain_on ( int  palx,
int  paly,
int  x,
int  y 
)

◆ get_time_of_day()

const time_of_day & game_display::get_time_of_day ( const map_location loc) const
overridevirtual

Reimplemented from display.

Definition at line 344 of file game_display.cpp.

References tod_manager::get_time_of_day(), and resources::tod_manager.

Referenced by invalidate_unit().

◆ has_time_area()

bool game_display::has_time_area ( ) const
overridevirtual

Reimplemented from display.

Definition at line 349 of file game_display.cpp.

References tod_manager::has_time_area(), and resources::tod_manager.

Referenced by invalidate_unit().

◆ highlight_another_reach()

void game_display::highlight_another_reach ( const pathfind::paths paths_list,
const map_location goal = map_location::null_location() 
)

◆ highlight_hex()

void game_display::highlight_hex ( map_location  hex)
overridevirtual

Function to highlight a location.

If a unit is in the location, it will be displayed in the sidebar. Selection is used when a unit has been clicked on, while highlighting is used when a location has been moused over.

< Lasts for whole method.

Reimplemented from display.

Definition at line 125 of file game_display.cpp.

References unit_map::count(), display::dc_, displayedUnitHex_, display::dont_show_all_, resources::gameboard, game_board::get_visible_unit(), display::highlight_hex(), display::invalidate_game_status(), invalidate_unit(), synced_context::is_synced(), display::mouseoverHex_, display::selectedHex_, display_context::teams(), display_context::units(), and display::viewing_team().

Referenced by events::mouse_handler::attack_enemy_(), events::menu_handler::do_search(), events::mouse_handler::mouse_motion(), observers(), and events::mouse_handler::touch_motion().

◆ highlight_reach()

void game_display::highlight_reach ( const pathfind::paths paths_list)

Sets the paths that are currently displayed as available for the unit to move along.

All other paths will be grayed out.

Definition at line 540 of file game_display.cpp.

References highlight_another_reach(), and unhighlight_reach().

Referenced by observers(), events::mouse_handler::select_hex(), and events::mouse_handler::show_reach_for_unit().

◆ in_game()

virtual bool game_display::in_game ( ) const
inlineoverridevirtual

Reimplemented from display.

Definition at line 209 of file game_display.hpp.

References in_game_.

◆ invalidate_route()

void game_display::invalidate_route ( )
private

Definition at line 574 of file game_display.cpp.

References i, display::invalidate(), route_, and pathfind::marked_route::steps.

Referenced by set_route().

◆ invalidate_unit()

void game_display::invalidate_unit ( )
inline

◆ invalidate_unit_after_move()

void game_display::invalidate_unit_after_move ( const map_location src,
const map_location dst 
)

Same as invalidate_unit() if moving the displayed unit.

Definition at line 163 of file game_display.cpp.

References displayedUnitHex_, and invalidate_unit().

Referenced by invalidate_unit(), and actions::undo::move_action::undo().

◆ layout()

void game_display::layout ( )
overridevirtual

TLD layout() override.

Replaces old refresh_reports(). Be sure to call the base class method as well.

This updates some reports, like clock, that need to be refreshed every frame.

Reimplemented from display.

Definition at line 354 of file game_display.cpp.

References display::invalidateGameStatus_, display::layout(), display::refresh_report(), reports::report_list(), display::reports_object_, and display::team_valid().

Referenced by invalidate_unit().

◆ maybe_rebuild()

bool game_display::maybe_rebuild ( )

Rebuilds the screen if needs_rebuild(true) was previously called, and resets the flag.

Definition at line 660 of file game_display.cpp.

References display::invalidate_all(), needs_rebuild_, display::rebuild_all(), and display::recalculate_minimap().

Referenced by game_lua_kernel::intf_redraw(), game_events::wml_event_pump::process_event(), and SYNCED_COMMAND_HANDLER_FUNCTION().

◆ needs_rebuild()

void game_display::needs_rebuild ( bool  b)

Sets whether the screen (map visuals) needs to be rebuilt.

This is typically after the map has been changed by wml.

Definition at line 654 of file game_display.cpp.

References needs_rebuild_.

Referenced by impl_merge_terrain(), intf_terrain_mask(), SYNCED_COMMAND_HANDLER_FUNCTION(), and game_events::WML_HANDLER_FUNCTION().

◆ new_turn()

void game_display::new_turn ( )

◆ observers()

virtual const std::set<std::string>& game_display::observers ( ) const
inlineoverridevirtual

◆ operator=()

void game_display::operator= ( const game_display )
private

◆ playing_side()

virtual int game_display::playing_side ( ) const
inlineoverridevirtual

The playing team is the team whose turn it is.

Reimplemented from display.

Definition at line 201 of file game_display.hpp.

References display::activeTeam_, and current_team_name().

Referenced by turn_info::process_network_data().

◆ render()

void game_display::render ( )
overridevirtual

TLD render() override.

Replaces old post_draw(). Be sure to call the base class method as well.

This calls the whiteboard's post-draw method after rendering.

Reimplemented from display.

Definition at line 196 of file game_display.cpp.

References display::render(), w, and display::wb_.

Referenced by invalidate_unit().

◆ scroll_to_leader()

void game_display::scroll_to_leader ( int  side,
SCROLL_TYPE  scroll_type = ONSCREEN,
bool  force = true 
)

◆ select_hex()

void game_display::select_hex ( map_location  hex)
overridevirtual

Function to display a location as selected.

If a unit is in the location, and there is no unit in the currently highlighted hex, the unit will be displayed in the sidebar.

Reimplemented from display.

Definition at line 115 of file game_display.cpp.

References display_unit_hex(), display::fogged(), display::select_hex(), and map_location::valid().

Referenced by events::mouse_handler::attack_enemy_(), events::mouse_handler::move_action(), events::mouse_handler::move_unit_along_current_route(), observers(), events::mouse_handler::save_whiteboard_attack(), and events::mouse_handler::select_hex().

◆ set_attack_indicator()

void game_display::set_attack_indicator ( const map_location src,
const map_location dst 
)

◆ set_game_mode()

void game_display::set_game_mode ( const game_mode  mode)

Definition at line 379 of file game_display.cpp.

References display::invalidate_all(), and mode_.

◆ set_route()

void game_display::set_route ( const pathfind::marked_route route)

◆ unhighlight_reach()

bool game_display::unhighlight_reach ( )

◆ units_that_can_reach_goal()

const std::set<map_location>& game_display::units_that_can_reach_goal ( ) const
inline

Return the locations of units that can reach goal (.

See also
highlight_another_reach()).

Definition at line 104 of file game_display.hpp.

References set_route(), unhighlight_reach(), and units_that_can_reach_goal_.

Referenced by unit_drawer::unit_drawer().

◆ update()

void game_display::update ( )
overridevirtual

TLD update() override.

Replaces old pre_draw(). Be sure to call the base class method as well.

game_display does specific things related e.g. to unit rendering and calls the whiteboard pre-draw method here.

Todo:
FIXME: must modify changed, but best to do it at the floating_label level

Reimplemented from display.

Definition at line 180 of file game_display.cpp.

References chat_man_, display::process_reachmap_changes(), display::update(), w, and display::wb_.

Referenced by invalidate_unit().

Member Data Documentation

◆ attack_indicator_dst_

map_location game_display::attack_indicator_dst_
private

Definition at line 240 of file game_display.hpp.

Referenced by attack_indicator_direction(), draw_hex(), and set_attack_indicator().

◆ attack_indicator_src_

map_location game_display::attack_indicator_src_
private

◆ chat_man_

const std::unique_ptr<display_chat_manager> game_display::chat_man_
private

Definition at line 250 of file game_display.hpp.

Referenced by get_chat_manager(), observers(), update(), and ~game_display().

◆ debugHighlights_

std::map< map_location, int > game_display::debugHighlights_
staticprivate

Definition at line 255 of file game_display.hpp.

Referenced by clear_debug_highlights(), debug_highlight(), and draw_hex().

◆ displayedUnitHex_

map_location game_display::displayedUnitHex_
private

◆ in_game_

bool game_display::in_game_
private

Definition at line 248 of file game_display.hpp.

Referenced by begin_game(), and in_game().

◆ mode_

game_mode game_display::mode_
private

Definition at line 252 of file game_display.hpp.

Referenced by draw_hex(), and set_game_mode().

◆ needs_rebuild_

bool game_display::needs_rebuild_
private

Definition at line 257 of file game_display.hpp.

Referenced by maybe_rebuild(), and needs_rebuild().

◆ overlay_map_

overlay_map game_display::overlay_map_
private

Definition at line 236 of file game_display.hpp.

Referenced by get_overlays().

◆ route_

pathfind::marked_route game_display::route_
private

◆ units_that_can_reach_goal_

std::set<map_location> game_display::units_that_can_reach_goal_
protected

The documentation for this class was generated from the following files: