The Battle for Wesnoth  1.15.0-dev
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
editor::editor_display Class Reference

#include <editor_display.hpp>

Inheritance diagram for editor::editor_display:
Inheritance graph

Public Member Functions

 editor_display (editor_controller &controller, const config &theme_cfg)
 
bool in_editor () const override
 
void add_brush_loc (const map_location &hex)
 
void set_brush_locs (const std::set< map_location > &hexes)
 
void clear_brush_locs ()
 
void remove_brush_loc (const map_location &hex)
 
const editor_mapmap () const
 
void rebuild_terrain (const map_location &loc)
 
virtual const time_of_dayget_time_of_day (const map_location &loc=map_location::null_location()) const override
 Inherited from display. More...
 
editor_controllerget_controller ()
 
- Public Member Functions inherited from display
 display (const display_context *dc, std::weak_ptr< wb::manager > wb, const config &theme_cfg, const config &level, bool auto_join=true)
 
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 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)
 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_contextcurrent_display_context () const
 
void reset_halo_manager ()
 
void reset_halo_manager (halo::manager &hm)
 
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...
 
CVideovideo ()
 Gets the underlying screen object. More...
 
virtual bool in_game () const
 
virtual const map_locationdisplayed_unit_hex () const
 Virtual functions shadowed in game_display. More...
 
virtual int playing_side () const
 In this case give an obviously wrong answer to fail fast, since this could actually cause a big bug. More...
 
virtual const std::set< std::string > & observers () const
 
const SDL_Rect & minimap_area () const
 mapx is the width of the portion of the display which shows the game area. More...
 
const SDL_Rect & palette_area () const
 
const SDL_Rect & unit_image_area () const
 
const SDL_Rect & max_map_area () const
 Returns the maximum area used for the map regardless to resolution and view size. More...
 
const SDL_Rect & map_area () const
 Returns the area used for the map. More...
 
const SDL_Rect map_outside_area () const
 Returns the available area for a map, this may differ from the above. More...
 
double get_zoom_factor () const
 Returns the current zoom factor. 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
 
virtual void select_hex (map_location hex)
 
virtual void highlight_hex (map_location hex)
 
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
 
SDL_Point get_loc_drawing_origin (const map_location &loc) const
 Wrapper to return the drawing origin for the specified location in screen coordinates. More...
 
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...
 
void set_grid (const bool grid)
 Determines whether a grid should be overlayed on the game board. More...
 
bool get_draw_coordinates () const
 Getter for the x,y debug overlay on tiles. More...
 
void set_draw_coordinates (bool value)
 Setter for the x,y debug overlay on tiles. More...
 
bool get_draw_terrain_codes () const
 Getter for the terrain code debug overlay on tiles. More...
 
void set_draw_terrain_codes (bool value)
 Setter for the terrain code debug overlay on tiles. More...
 
bool get_draw_num_of_bitmaps () const
 Getter for the number of bitmaps debug overlay on tiles. More...
 
void set_draw_num_of_bitmaps (bool value)
 Setter for the terrain code debug overlay on tiles. More...
 
surface screenshot (bool map_screenshot=false)
 Capture a (map-)screenshot into a surface. More...
 
themeget_theme ()
 
void set_theme (config theme_cfg)
 
void invalidate_animations ()
 Function to invalidate animated terrains and units which may have changed. More...
 
void reset_standing_animations ()
 
void set_mouseover_hex_overlay (const surface &image)
 mouseover_hex_overlay_ require a prerendered surface and is drawn underneath the mouse's location More...
 
void clear_mouseover_hex_overlay ()
 
terrain_builderget_builder ()
 
void rebuild_all ()
 Rebuild all dynamic terrain. More...
 
void set_diagnostic (const std::string &msg)
 
void set_turbo (const bool turbo)
 Set/Get whether 'turbo' mode is on. More...
 
double turbo_speed () const
 
void set_turbo_speed (const double speed)
 
void set_idle_anim (bool ison)
 control unit idle animations and their frequency More...
 
bool idle_anim () const
 
void set_idle_anim_rate (int rate)
 
double idle_anim_rate () 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 set_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...
 
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...
 
virtual bool has_time_area () const
 
void blindfold (bool flag)
 
bool is_blindfolded () const
 
void write (config &cfg) const
 
virtual void handle_event (const SDL_Event &) override
 
virtual void handle_window_event (const SDL_Event &event) override
 
void init_flags ()
 Initialize the flag list for all sides. More...
 
void init_flags (std::size_t side_index)
 Initialize the flag list for a single side. More...
 
void draw_debugging_aids ()
 
template<typename... T>
void render_scaled_to_zoom (const texture &tex, const int x_pos, const int y_pos, T &&... extra_args) const
 Renders a texture directly to the screen (or current rendering target) scaled to the current zoom factor. More...
 
template<typename... T>
void render_scaled_to_zoom (const texture &tex, const map_location &loc, T &&... extra_args) const
 Renders a texture directly to the screen (or current rendering target) scaled to the current zoom factor. More...
 
map_location get_middle_location () const
 
int draw_text_in_hex (const map_location &loc, const std::string &text, std::size_t font_size, color_t color, int fl_label_id=0, double x_in_hex=0.5, double y_in_hex=0.5)
 Adds a floating label with the specified text at the given location. More...
 
void add_arrow (arrow &)
 
void remove_arrow (arrow &)
 
void update_arrow (arrow &a)
 Called by arrow objects when they change. More...
 
- Public Member Functions inherited from events::sdl_handler
virtual void process_event ()
 
virtual bool requires_event_focus (const SDL_Event *=nullptr) const
 
virtual void join ()
 
virtual void join (context &c)
 
virtual void join_same (sdl_handler *parent)
 
virtual void leave ()
 
virtual void join_global ()
 
virtual void leave_global ()
 
virtual bool has_joined ()
 
virtual bool has_joined_global ()
 

Protected Member Functions

void pre_draw () override
 Called at the beginning of each draw cycle. More...
 
image::TYPE get_image_type (const map_location &loc) override
 The editor uses different rules for terrain highlighting (e.g. More...
 
virtual void draw_hex_cursor (const map_location &loc) override
 Draws the map's hex cursor. More...
 
virtual void draw_hex_overlays () override
 Draws various map overlays such as game reachmap. More...
 
virtual overlay_mapget_overlays () override
 Inherited from display. More...
 
const SDL_Rect get_clip_rect () override
 Get the clipping rectangle for drawing. More...
 
- Protected Member Functions inherited from display
virtual void draw () override final
 Main drawing function. More...
 
virtual void post_draw ()
 Called at the end of each draw cycle. More...
 
void draw_fog_shroud_transition_images (const map_location &loc, image::TYPE image_type)
 Draw the appropriate fog or shroud transition images for a specific hex. More...
 
void scroll_to_xy (int screenxpos, int screenypos, SCROLL_TYPE scroll_type, bool force=true)
 
const std::string & get_variant (const std::vector< std::string > &variants, const map_location &loc) const
 
- Protected Member Functions inherited from events::sdl_handler
 sdl_handler (const bool auto_join=true)
 
virtual ~sdl_handler ()
 
virtual std::vector< sdl_handler * > handler_members ()
 

Protected Attributes

std::set< map_locationbrush_locations_
 
editor_controllercontroller_
 
- Protected Attributes inherited from display
const display_contextdc_
 
std::unique_ptr< halo::managerhalo_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...
 
CVideovideo_
 
std::size_t currentTeam_
 
bool dont_show_all_
 
int xpos_
 
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_
 
SDL_Rect minimap_location_
 
bool grid_
 
int diagnostic_label_
 
double turbo_speed_
 
bool turbo_
 
const std::unique_ptr< map_labelsmap_labels_
 
events::generic_event scroll_event_
 Event raised when the map is being scrolled. More...
 
boost::circular_buffer< unsigned > frametimes_
 
unsigned int fps_counter_
 
std::chrono::seconds fps_start_
 
unsigned int fps_actual_
 
uint32_t last_frame_finished_ = 0u
 
surface mouseover_hex_overlay_
 
surface tod_hex_mask1
 
surface tod_hex_mask2
 
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_
 
bool map_screenshot_
 Used to indicate to drawing functions that we are doing a map screenshot. More...
 
reach_map reach_map_
 

Additional Inherited Members

- Public Types inherited from display
enum  SCROLL_TYPE { SCROLL, WARP, ONSCREEN, ONSCREEN_WARP }
 
- 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 void toggle_benchmark ()
 Toggle to continuously redraw the screen. More...
 
static void toggle_debug_foreground ()
 Toggle to debug foreground terrain. More...
 
static bool zoom_at_max ()
 
static bool zoom_at_min ()
 
- Protected Types inherited from display
using exclusive_unit_draw_requests_t = std::map< map_location, std::string >
 
typedef std::map< map_location, unsigned int > reach_map
 
typedef std::multimap< map_location, overlayoverlay_map
 
- Static Protected Member Functions inherited from display
static void fill_images_list (const std::string &prefix, std::vector< std::string > &images)
 
- Static Protected Attributes inherited from display
static unsigned int zoom_ = DefaultZoom
 
static unsigned int last_zoom_ = SmallZoom
 
static displaysingleton_ = nullptr
 

Detailed Description

Definition at line 22 of file editor_display.hpp.

Constructor & Destructor Documentation

◆ editor_display()

editor::editor_display::editor_display ( editor_controller controller,
const config theme_cfg 
)

Definition at line 33 of file editor_display.cpp.

References CVideo::clear_screen(), and display::video().

Member Function Documentation

◆ add_brush_loc()

void editor::editor_display::add_brush_loc ( const map_location hex)

Definition at line 45 of file editor_display.cpp.

References brush_locations_.

Referenced by in_editor().

◆ clear_brush_locs()

void editor::editor_display::clear_brush_locs ( )

Definition at line 55 of file editor_display.cpp.

References brush_locations_.

Referenced by in_editor().

◆ draw_hex_cursor()

void editor::editor_display::draw_hex_cursor ( const map_location )
overrideprotectedvirtual

Draws the map's hex cursor.

No action here by default.

Reimplemented from display.

Definition at line 81 of file editor_display.cpp.

References brush_locations_, game_config::images::editor_brush, image::get_texture(), map(), and display::render_scaled_to_zoom().

Referenced by get_controller().

◆ draw_hex_overlays()

void editor::editor_display::draw_hex_overlays ( )
overrideprotectedvirtual

Draws various map overlays such as game reachmap.

Reimplemented from display.

Definition at line 94 of file editor_display.cpp.

References image::get_texture(), map(), and display::render_scaled_to_zoom().

Referenced by get_controller().

◆ get_clip_rect()

const SDL_Rect editor::editor_display::get_clip_rect ( )
overrideprotectedvirtual

Get the clipping rectangle for drawing.

Virtual since the editor might use a slightly different approach.

Reimplemented from display.

Definition at line 103 of file editor_display.cpp.

References config::add_child(), display::dc_, display::get_map(), gamemap::get_terrain_editor_string(), lexical_cast(), display::map_outside_area(), display::mouseoverHex_, utf8::size(), and display_context::teams().

Referenced by get_controller().

◆ get_controller()

editor_controller& editor::editor_display::get_controller ( )
inline

◆ get_image_type()

image::TYPE editor::editor_display::get_image_type ( const map_location loc)
overrideprotectedvirtual

The editor uses different rules for terrain highlighting (e.g.

selections)

Reimplemented from display.

Definition at line 73 of file editor_display.cpp.

References image::BRIGHTENED, map(), and image::TOD_COLORED.

Referenced by get_controller().

◆ get_overlays()

display::overlay_map & editor::editor_display::get_overlays ( )
overrideprotectedvirtual

Inherited from display.

Implements display.

Definition at line 138 of file editor_display.cpp.

References controller_, editor::editor_controller::get_current_map_context(), and editor::map_context::get_overlays().

Referenced by get_controller().

◆ get_time_of_day()

const time_of_day & editor::editor_display::get_time_of_day ( const map_location loc = map_location::null_location()) const
overridevirtual

Inherited from display.

Reimplemented from display.

Definition at line 133 of file editor_display.cpp.

References controller_, editor::editor_controller::get_current_map_context(), editor::map_context::get_time_manager(), and tod_manager::get_time_of_day().

Referenced by map().

◆ in_editor()

bool editor::editor_display::in_editor ( ) const
inlineoverridevirtual

Reimplemented from display.

Definition at line 27 of file editor_display.hpp.

References add_brush_loc(), clear_brush_locs(), remove_brush_loc(), and set_brush_locs().

◆ map()

const editor_map& editor::editor_display::map ( ) const
inline

◆ pre_draw()

void editor::editor_display::pre_draw ( )
overrideprotectedvirtual

Called at the beginning of each draw cycle.

Derived classes can use this to add extra actions before any drawing takes place. No action here by default.

Reimplemented from display.

Definition at line 69 of file editor_display.cpp.

Referenced by get_controller().

◆ rebuild_terrain()

void editor::editor_display::rebuild_terrain ( const map_location loc)

Definition at line 65 of file editor_display.cpp.

References display::builder_.

Referenced by map(), and editor::context_manager::refresh_after_action().

◆ remove_brush_loc()

void editor::editor_display::remove_brush_loc ( const map_location hex)

Definition at line 60 of file editor_display.cpp.

References brush_locations_.

Referenced by in_editor().

◆ set_brush_locs()

void editor::editor_display::set_brush_locs ( const std::set< map_location > &  hexes)

Definition at line 50 of file editor_display.cpp.

References brush_locations_.

Referenced by in_editor(), and editor::mouse_action::update_brush_highlights().

Member Data Documentation

◆ brush_locations_

std::set<map_location> editor::editor_display::brush_locations_
protected

◆ controller_

editor_controller& editor::editor_display::controller_
protected

Definition at line 62 of file editor_display.hpp.

Referenced by get_controller(), get_overlays(), and get_time_of_day().


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