#include <editor_display.hpp>
Public Member Functions | |
editor_display (editor_controller &controller, reports &reports_object) | |
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_map & | map () const |
void | rebuild_terrain (const map_location &loc) |
virtual const time_of_day & | get_time_of_day (const map_location &loc=map_location::null_location()) const override |
Inherited from display. More... | |
editor_controller & | get_controller () |
![]() | |
display (const display_context *dc, std::weak_ptr< wb::manager > wb, reports &reports_object, const std::string &theme_id, const config &level, bool auto_join=true) | |
virtual | ~display () |
bool | show_everything () const |
const gamemap & | get_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_map & | get_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 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_context & | get_disp_context () const |
void | reset_halo_manager () |
void | reset_halo_manager (halo::manager &hm) |
halo::manager & | get_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 |
CVideo & | video () |
Gets the underlying screen object. More... | |
surface & | get_screen_surface () |
return the screen surface or the surface used for map_screenshot. More... | |
virtual bool | in_game () const |
virtual const map_location & | displayed_unit_hex () const |
Virtual functions shadowed in game_display. More... | |
virtual int | playing_side () const |
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... | |
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_location & | selected_hex () const |
const map_location & | mouseover_hex () const |
virtual void | select_hex (map_location hex) |
virtual void | highlight_hex (map_location hex) |
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 |
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... | |
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... | |
void | redraw_everything () |
Invalidates entire screen, including all tiles and sidebar. More... | |
void | add_redraw_observer (std::function< void(display &)> f) |
Adds a redraw observer, a function object to be called when redraw_everything is used. More... | |
void | clear_redraw_observers () |
Clear the redraw observers. More... | |
theme & | get_theme () |
void | set_theme (const std::string &new_theme) |
std::shared_ptr< gui::button > | find_action_button (const std::string &id) |
Retrieves a pointer to a theme UI button. More... | |
std::shared_ptr< gui::button > | find_menu_button (const std::string &id) |
void | create_buttons () |
void | layout_buttons () |
void | render_buttons () |
void | invalidate_theme () |
void | refresh_report (const std::string &report_name, const config *new_cfg=nullptr) |
Redraws the specified report (if anything has changed). 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 () |
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_builder & | get_builder () |
void | flip () |
void | update_display () |
Copy the backbuffer to the framebuffer. More... | |
void | rebuild_all () |
Rebuild all dynamic terrain. More... | |
const theme::action * | action_pressed () |
const theme::menu * | menu_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_event & | scroll_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... | |
virtual void | draw () |
Draws invalidated items. More... | |
void | draw (bool update) |
void | draw (bool update, bool force) |
map_labels & | labels () |
const map_labels & | labels () 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... | |
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 &) |
virtual void | handle_window_event (const SDL_Event &event) |
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 | render_image (int x, int y, const display::drawing_layer drawing_layer, const map_location &loc, surface image, bool hreverse=false, bool greyscale=false, int32_t alpha=floating_to_fixed_point(1.0), color_t blendto={0, 0, 0}, double blend_ratio=0, double submerged=0.0, bool vreverse=false) |
Draw an image at a certain location. More... | |
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, int x, int y, const surface &surf, const SDL_Rect &clip=SDL_Rect()) |
Add an item to the drawing buffer. More... | |
void | drawing_buffer_add (const drawing_layer layer, const map_location &loc, int x, int y, const std::vector< surface > &surf, const SDL_Rect &clip=SDL_Rect()) |
void | add_arrow (arrow &) |
void | remove_arrow (arrow &) |
void | update_arrow (arrow &a) |
Called by arrow objects when they change. More... | |
![]() | |
virtual void | process_event () |
virtual void | volatile_draw () |
virtual void | volatile_undraw () |
virtual bool | requires_event_focus (const SDL_Event *=nullptr) const |
virtual void | process_help_string (int, int) |
virtual void | process_tooltip_string (int, int) |
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 () |
sdl_handler & | operator= (sdl_handler &&)=delete |
Moving would require two instances' context membership to be handled, it's simpler to delete these and require the two instances to be separately constructed / destructed. More... | |
sdl_handler (sdl_handler &&)=delete | |
Protected Member Functions | |
void | pre_draw () override |
Called near the beginning of each draw() call. More... | |
image::TYPE | get_image_type (const map_location &loc) override |
The editor uses different rules for terrain highlighting (e.g. More... | |
void | draw_hex (const map_location &loc) override |
Redraws a single gamemap location. More... | |
virtual overlay_map & | get_overlays () override |
Inherited from display. More... | |
const SDL_Rect & | get_clip_rect () override |
Get the clipping rectangle for drawing. More... | |
void | draw_sidebar () override |
Called near the end of a draw operation, derived classes can use this to render a specific sidebar. More... | |
![]() | |
map_location | get_middle_location () const |
virtual void | post_draw () |
Called at the very end of each draw() call. More... | |
virtual void | draw_invalidated () |
Only called when there's actual redrawing to do. More... | |
virtual void | post_commit () |
Hook for actions to take right after draw() calls drawing_buffer_commit No action here by default. More... | |
void | draw_minimap () |
void | get_terrain_images (const map_location &loc, const std::string &timeid, TERRAIN_TYPE terrain_type) |
std::vector< surface > | get_fog_shroud_images (const map_location &loc, image::TYPE image_type) |
void | draw_image_for_report (surface &img, SDL_Rect &rect) |
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... | |
void | drawing_buffer_clear () |
Clears the drawing buffer. More... | |
void | draw_all_panels () |
redraw all panels associated with the map display More... | |
void | draw_init () |
Initiate a redraw. More... | |
void | draw_wrap (bool update, bool force) |
void | process_reachmap_changes () |
![]() | |
draw_layering (const bool auto_join=true) | |
virtual | ~draw_layering () |
![]() | |
sdl_handler (const bool auto_join=true) | |
sdl_handler (const sdl_handler &) | |
sdl_handler & | operator= (const sdl_handler &) |
virtual | ~sdl_handler () |
virtual std::vector< sdl_handler * > | handler_members () |
Additional Inherited Members | |
![]() | |
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... | |
![]() | |
static display * | get_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 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 () |
![]() | |
enum | TERRAIN_TYPE { BACKGROUND, FOREGROUND } |
typedef std::map< map_location, std::string > | exclusive_unit_draw_requests_t |
typedef std::list< blit_helper > | drawing_buffer |
typedef std::map< map_location, unsigned int > | reach_map |
typedef std::map< map_location, std::vector< overlay > > | overlay_map |
![]() | |
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 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 display * | singleton_ = nullptr |
Definition at line 23 of file editor_display.hpp.
editor::editor_display::editor_display | ( | editor_controller & | controller, |
reports & | reports_object | ||
) |
Definition at line 33 of file editor_display.cpp.
References CVideo::clear_screen(), and display::video().
void editor::editor_display::add_brush_loc | ( | const map_location & | hex | ) |
Definition at line 41 of file editor_display.cpp.
References brush_locations_, and display::invalidate().
Referenced by in_editor().
void editor::editor_display::clear_brush_locs | ( | ) |
Definition at line 54 of file editor_display.cpp.
References brush_locations_, and display::invalidate().
Referenced by in_editor().
|
overrideprotectedvirtual |
Redraws a single gamemap location.
Reimplemented from display.
Definition at line 82 of file editor_display.cpp.
References brush_locations_, display::draw_hex(), display::drawing_buffer_add(), game_config::images::editor_brush, image::get_image(), display::get_location_x(), display::get_location_y(), display::LAYER_FOG_SHROUD, display::LAYER_SELECTED_HEX, map(), image::SCALED_TO_HEX, and image::TOD_COLORED.
Referenced by get_controller().
|
overrideprotectedvirtual |
Called near the end of a draw operation, derived classes can use this to render a specific sidebar.
Very similar to post_commit.
Reimplemented from display.
Definition at line 106 of file editor_display.cpp.
References config::add_child(), display::dc_, display::get_map(), gamemap::get_terrain_editor_string(), lexical_cast(), display::mouseoverHex_, display::refresh_report(), utf8::size(), and display_context::teams().
Referenced by get_controller().
|
overrideprotectedvirtual |
Get the clipping rectangle for drawing.
Virtual since the editor might use a slightly different approach.
Reimplemented from display.
Definition at line 101 of file editor_display.cpp.
References display::map_outside_area().
Referenced by get_controller().
|
inline |
Definition at line 40 of file editor_display.hpp.
References controller_, draw_hex(), draw_sidebar(), get_clip_rect(), get_image_type(), get_overlays(), and pre_draw().
Referenced by editor::mouse_action_map_label::drag_end_left(), and editor::mouse_action_map_label::up_left().
|
overrideprotectedvirtual |
The editor uses different rules for terrain highlighting (e.g.
selections)
Reimplemented from display.
Definition at line 74 of file editor_display.cpp.
References image::BRIGHTENED, map(), and image::TOD_COLORED.
Referenced by get_controller().
|
overrideprotectedvirtual |
Inherited from display.
Implements display.
Definition at line 133 of file editor_display.cpp.
References controller_, editor::editor_controller::get_current_map_context(), and editor::map_context::get_overlays().
Referenced by get_controller().
|
overridevirtual |
Inherited from display.
Reimplemented from display.
Definition at line 128 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().
|
inlineoverridevirtual |
Reimplemented from display.
Definition at line 28 of file editor_display.hpp.
References add_brush_loc(), clear_brush_locs(), remove_brush_loc(), and set_brush_locs().
|
inline |
Definition at line 34 of file editor_display.hpp.
References display::get_map(), get_time_of_day(), map_location::null_location(), and rebuild_terrain().
Referenced by editor::mouse_action_select::affected_hexes(), editor::mouse_action_fill::affected_hexes(), editor::mouse_action_paint::click_left(), editor::mouse_action_fill::click_left(), editor::mouse_action_paint::click_right(), editor::mouse_action_fill::click_right(), draw_hex(), get_image_type(), editor::mouse_action::key_event(), editor::mouse_action_starting_position::up_left(), and editor::mouse_action_starting_position::up_right().
|
overrideprotectedvirtual |
Called near the beginning of each draw() call.
Derived classes can use this to add extra actions before redrawing invalidated hexes takes place. No action here by default.
Reimplemented from display.
Definition at line 70 of file editor_display.cpp.
Referenced by get_controller().
void editor::editor_display::rebuild_terrain | ( | const map_location & | loc | ) |
Definition at line 66 of file editor_display.cpp.
References display::builder_.
Referenced by map(), and editor::context_manager::refresh_after_action().
void editor::editor_display::remove_brush_loc | ( | const map_location & | hex | ) |
Definition at line 60 of file editor_display.cpp.
References brush_locations_, and display::invalidate().
Referenced by in_editor().
void editor::editor_display::set_brush_locs | ( | const std::set< map_location > & | hexes | ) |
Definition at line 47 of file editor_display.cpp.
References brush_locations_, and display::invalidate().
Referenced by in_editor(), and editor::mouse_action::update_brush_highlights().
|
protected |
Definition at line 60 of file editor_display.hpp.
Referenced by add_brush_loc(), clear_brush_locs(), draw_hex(), remove_brush_loc(), and set_brush_locs().
|
protected |
Definition at line 63 of file editor_display.hpp.
Referenced by get_controller(), get_overlays(), and get_time_of_day().