The Battle for Wesnoth  1.15.12+dev
Go to the documentation of this file.
1 /*
2  Copyright (C) 2008 - 2018 by Tomasz Sniatowski <>
3  Part of the Battle for Wesnoth Project
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; either version 2 of the License, or
8  (at your option) any later version.
9  This program is distributed in the hope that it will be useful,
12  See the COPYING file for more details.
13 */
15 #pragma once
17 #include "map/editor_map.hpp"
18 #include "display.hpp"
20 namespace editor {
22 class editor_display : public display
23 {
24 public:
25  editor_display(editor_controller& controller, reports& reports_object, const config& theme_cfg);
27  bool in_editor() const override { return true; }
29  void add_brush_loc(const map_location& hex);
30  void set_brush_locs(const std::set<map_location>& hexes);
31  void clear_brush_locs();
32  void remove_brush_loc(const map_location& hex);
33  const editor_map& map() const { return static_cast<const editor_map&>(get_map()); }
34  void rebuild_terrain(const map_location &loc);
36  /** Inherited from display. */
37  virtual const time_of_day& get_time_of_day(const map_location& loc = map_location::null_location()) const override;
40  {
41  return controller_;
42  }
44 protected:
45  void pre_draw() override;
46  /**
47  * The editor uses different rules for terrain highlighting (e.g. selections)
48  */
49  image::TYPE get_image_type(const map_location& loc) override;
51  void draw_hex(const map_location& loc) override;
53  /** Inherited from display. */
54  virtual overlay_map& get_overlays() override;
56  const SDL_Rect& get_clip_rect() override;
57  void draw_sidebar() override;
59  std::set<map_location> brush_locations_;
61  /* The controller that owns this display. */
63 };
65 } //end namespace editor
editor_display(editor_controller &controller, reports &reports_object, const config &theme_cfg)
Used to specify the rendering format of images.
Definition: picture.hpp:228
const editor_map & map() const
image::TYPE get_image_type(const map_location &loc) override
The editor uses different rules for terrain highlighting (e.g.
editor_controller & controller_
virtual overlay_map & get_overlays() override
Inherited from display.
void set_brush_locs(const std::set< map_location > &hexes)
bool in_editor() const override
The editor_controller class contains the mouse and keyboard event handling routines for the editor...
Unit and team statistics.
Object which defines a time of day with associated bonuses, image, sounds etc.
Definition: time_of_day.hpp:55
void draw_sidebar() override
Called near the end of a draw operation, derived classes can use this to render a specific sidebar...
void remove_brush_loc(const map_location &hex)
void pre_draw() override
Called near the beginning of each draw() call.
std::map< map_location, std::vector< overlay > > overlay_map
Definition: display.hpp:1041
virtual const time_of_day & get_time_of_day(const map_location &loc=map_location::null_location()) const override
Inherited from display.
map_display and display: classes which take care of displaying the map and game-data on the screen...
Manage the empty-palette in the editor.
Definition: action.cpp:29
Encapsulates the map of the game.
Definition: location.hpp:37
This class adds extra editor-specific functionality to a normal gamemap.
Definition: editor_map.hpp:69
void rebuild_terrain(const map_location &loc)
const SDL_Rect & get_clip_rect() override
Get the clipping rectangle for drawing.
std::set< map_location > brush_locations_
const gamemap & get_map() const
Definition: display.hpp:95
editor_controller & get_controller()
void add_brush_loc(const map_location &hex)
static const map_location & null_location()
Definition: location.hpp:80
void draw_hex(const map_location &loc) override
Redraws a single gamemap location.
A config object defines a single node in a WML file, with access to child nodes.
Definition: config.hpp:59