The Battle for Wesnoth  1.13.10+dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
arrow Class Reference

Arrows destined to be drawn on the map. More...

#include <arrow.hpp>

Public Member Functions

 arrow (const arrow &)=delete
 
arrowoperator= (const arrow &)=delete
 
 arrow (bool hidden=false)
 
virtual ~arrow ()
 
void hide ()
 Sets the arrow's visibility. More...
 
void show ()
 
virtual void set_path (arrow_path_t const &path)
 
virtual void reset ()
 invalidates and clears the present path, forgets the previous path, clears the symbols map More...
 
virtual void set_color (const std::string &color)
 The string color parameter is in the same format expected by the image::locator modifiers parameter. More...
 
virtual std::string get_color () const
 
std::string get_style () const
 The style is simply the name of a subdirectory under images/arrows, that holds an alternate copy of the arrow graphics. More...
 
void set_style (const std::string &style)
 
arrow_path_t const & get_path () const
 
arrow_path_t const & get_previous_path () const
 
bool path_contains (map_location const &hex) const
 
virtual void draw_hex (map_location const &hex)
 
virtual void notify_arrow_changed ()
 

Static Public Member Functions

static bool valid_path (arrow_path_t const &path)
 Checks that the path is not of length 0 or 1. More...
 
static void invalidate_arrow_path (arrow_path_t const &path)
 Invalidates every hex along the given path. More...
 

Static Public Attributes

static const std::string STYLE_STANDARD = "standard"
 If you add more styles, you should look at move::update_arrow_style() More...
 
static const std::string STYLE_HIGHLIGHTED = "highlighted"
 
static const std::string STYLE_FOCUS = "focus"
 
static const std::string STYLE_FOCUS_INVALID = "focus_invalid"
 

Protected Types

typedef std::map< map_location,
image::locator
arrow_symbols_map_t
 

Protected Member Functions

virtual void update_symbols ()
 Calculate the symbols to place along the arrow path. More...
 

Protected Attributes

display::drawing_layer layer_
 
std::string color_
 
std::string style_
 represents the subdirectory that holds images for this arrow style More...
 
arrow_path_t path_
 
arrow_path_t previous_path_
 
arrow_symbols_map_t symbols_map_
 
bool hidden_
 

Detailed Description

Arrows destined to be drawn on the map.

Created for the whiteboard system.

Definition at line 29 of file arrow.hpp.

Member Typedef Documentation

Definition at line 102 of file arrow.hpp.

Constructor & Destructor Documentation

arrow::arrow ( const arrow )
delete
arrow::arrow ( bool  hidden = false)

Definition at line 34 of file arrow.cpp.

References show().

arrow::~arrow ( )
virtual

Definition at line 47 of file arrow.cpp.

References hide().

Member Function Documentation

void arrow::draw_hex ( map_location const &  hex)
virtual

Definition at line 139 of file arrow.cpp.

References image::get_image(), layer_, path_contains(), image::SCALED_TO_ZOOM, SCREEN, and symbols_map_.

Referenced by display::draw_hex().

virtual std::string arrow::get_color ( ) const
inlinevirtual

Definition at line 55 of file arrow.hpp.

References color_.

arrow_path_t const & arrow::get_path ( ) const

Definition at line 123 of file arrow.cpp.

References path_.

Referenced by display::add_arrow(), display::remove_arrow(), and display::update_arrow().

arrow_path_t const & arrow::get_previous_path ( ) const

Definition at line 128 of file arrow.cpp.

References previous_path_.

Referenced by display::update_arrow().

std::string arrow::get_style ( ) const
inline

The style is simply the name of a subdirectory under images/arrows, that holds an alternate copy of the arrow graphics.

If it doesn't exist or has missing images, you'll get "under construction" symbols instead of arrow graphics.

Definition at line 63 of file arrow.hpp.

References style_.

void arrow::hide ( )

Sets the arrow's visibility.

Definition at line 52 of file arrow.cpp.

References hidden_, invalidate_arrow_path(), path_, and SCREEN.

Referenced by ~arrow().

void arrow::invalidate_arrow_path ( arrow_path_t const &  path)
static

Invalidates every hex along the given path.

Definition at line 286 of file arrow.cpp.

References SCREEN.

Referenced by hide(), reset(), set_path(), and update_symbols().

void arrow::notify_arrow_changed ( )
virtual

Definition at line 296 of file arrow.cpp.

References SCREEN.

Referenced by reset(), and set_path().

arrow& arrow::operator= ( const arrow )
delete
bool arrow::path_contains ( map_location const &  hex) const

Definition at line 133 of file arrow.cpp.

References gui2::contains(), and symbols_map_.

Referenced by draw_hex().

void arrow::reset ( )
virtual

invalidates and clears the present path, forgets the previous path, clears the symbols map

Definition at line 90 of file arrow.cpp.

References invalidate_arrow_path(), notify_arrow_changed(), path_, previous_path_, and symbols_map_.

void arrow::set_color ( const std::string &  color)
virtual

The string color parameter is in the same format expected by the image::locator modifiers parameter.

Examples: red is "red" or "FF0000" or "255,0,0". Feel free to add another method that accepts an Uint32 as a parameter instead.

Definition at line 100 of file arrow.cpp.

References color_, path_, update_symbols(), and valid_path().

void arrow::set_path ( arrow_path_t const &  path)
virtual
void arrow::set_style ( const std::string &  style)

Definition at line 114 of file arrow.cpp.

References path_, style_, update_symbols(), and valid_path().

void arrow::show ( )

Definition at line 65 of file arrow.cpp.

References hidden_, and SCREEN.

Referenced by arrow().

void arrow::update_symbols ( )
protectedvirtual

Calculate the symbols to place along the arrow path.

Invalidates every hex along the path.

Definition at line 156 of file arrow.cpp.

References color_, ERR_ARR, invalidate_arrow_path(), game_config::images::missing, map_location::NDIRECTIONS, path_, editor::start(), style_, symbols_map_, tiles_adjacent(), valid_path(), map_location::write_direction(), and WRN_ARR.

Referenced by set_color(), set_path(), and set_style().

bool arrow::valid_path ( arrow_path_t const &  path)
static

Checks that the path is not of length 0 or 1.

Definition at line 148 of file arrow.cpp.

Referenced by wb::manager::save_temp_move(), set_color(), set_path(), set_style(), and update_symbols().

Member Data Documentation

std::string arrow::color_
protected

Definition at line 95 of file arrow.hpp.

Referenced by get_color(), set_color(), and update_symbols().

bool arrow::hidden_
protected

Definition at line 105 of file arrow.hpp.

Referenced by hide(), set_path(), and show().

display::drawing_layer arrow::layer_
protected

Definition at line 93 of file arrow.hpp.

Referenced by draw_hex().

arrow_path_t arrow::path_
protected

Definition at line 99 of file arrow.hpp.

Referenced by get_path(), hide(), reset(), set_color(), set_path(), set_style(), and update_symbols().

arrow_path_t arrow::previous_path_
protected

Definition at line 100 of file arrow.hpp.

Referenced by get_previous_path(), reset(), and set_path().

std::string arrow::style_
protected

represents the subdirectory that holds images for this arrow style

Definition at line 97 of file arrow.hpp.

Referenced by get_style(), set_style(), and update_symbols().

const std::string arrow::STYLE_FOCUS = "focus"
static

Definition at line 68 of file arrow.hpp.

Referenced by wb::move::init(), and wb::move::update_arrow_style().

const std::string arrow::STYLE_FOCUS_INVALID = "focus_invalid"
static

Definition at line 69 of file arrow.hpp.

Referenced by wb::move::init(), and wb::move::update_arrow_style().

const std::string arrow::STYLE_HIGHLIGHTED = "highlighted"
static
const std::string arrow::STYLE_STANDARD = "standard"
static

If you add more styles, you should look at move::update_arrow_style()

Definition at line 66 of file arrow.hpp.

Referenced by wb::move::init(), wb::move::move(), and wb::move::update_arrow_style().

arrow_symbols_map_t arrow::symbols_map_
protected

Definition at line 103 of file arrow.hpp.

Referenced by draw_hex(), path_contains(), reset(), and update_symbols().


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