The Battle for Wesnoth  1.19.0-dev
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 (const arrow_path_t &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)
 
const arrow_path_tget_path () const
 
const arrow_path_tget_previous_path () const
 
bool path_contains (const map_location &hex) const
 
virtual void draw_hex (const map_location &hex)
 
virtual void notify_arrow_changed ()
 

Static Public Member Functions

static bool valid_path (const arrow_path_t &path)
 Checks that the path is not of length 0 or 1. More...
 
static void invalidate_arrow_path (const arrow_path_t &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::locatorarrow_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 30 of file arrow.hpp.

Member Typedef Documentation

◆ arrow_symbols_map_t

Definition at line 103 of file arrow.hpp.

Constructor & Destructor Documentation

◆ arrow() [1/2]

arrow::arrow ( const arrow )
delete

◆ arrow() [2/2]

arrow::arrow ( bool  hidden = false)
explicit

Definition at line 32 of file arrow.cpp.

References show().

◆ ~arrow()

arrow::~arrow ( )
virtual

Definition at line 45 of file arrow.cpp.

References hide().

Member Function Documentation

◆ draw_hex()

void arrow::draw_hex ( const map_location hex)
virtual

◆ get_color()

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

Definition at line 56 of file arrow.hpp.

References color_.

◆ get_path()

const arrow_path_t & 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().

◆ get_previous_path()

const arrow_path_t & arrow::get_previous_path ( ) const

Definition at line 128 of file arrow.cpp.

References previous_path_.

Referenced by display::update_arrow().

◆ get_style()

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 64 of file arrow.hpp.

References style_.

◆ hide()

void arrow::hide ( )

Sets the arrow's visibility.

Definition at line 50 of file arrow.cpp.

References display::get_singleton(), hidden_, invalidate_arrow_path(), and path_.

Referenced by ~arrow().

◆ invalidate_arrow_path()

void arrow::invalidate_arrow_path ( const arrow_path_t path)
static

Invalidates every hex along the given path.

Definition at line 283 of file arrow.cpp.

References display::get_singleton(), and game_config::path.

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

◆ notify_arrow_changed()

void arrow::notify_arrow_changed ( )
virtual

Definition at line 292 of file arrow.cpp.

References display::get_singleton().

Referenced by reset(), and set_path().

◆ operator=()

arrow& arrow::operator= ( const arrow )
delete

◆ path_contains()

bool arrow::path_contains ( const map_location hex) const

Definition at line 133 of file arrow.cpp.

References utils::contains(), and symbols_map_.

Referenced by draw_hex().

◆ reset()

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_.

◆ set_color()

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_t as a parameter instead.

Definition at line 100 of file arrow.cpp.

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

◆ set_path()

void arrow::set_path ( const arrow_path_t path)
virtual

◆ set_style()

void arrow::set_style ( const std::string &  style)

Definition at line 114 of file arrow.cpp.

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

◆ show()

void arrow::show ( )

Definition at line 63 of file arrow.cpp.

References display::get_singleton(), and hidden_.

Referenced by arrow().

◆ update_symbols()

void arrow::update_symbols ( )
protectedvirtual

Calculate the symbols to place along the arrow path.

Invalidates every hex along the path.

Definition at line 153 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().

◆ valid_path()

bool arrow::valid_path ( const arrow_path_t path)
static

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

Definition at line 148 of file arrow.cpp.

References game_config::path.

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

Member Data Documentation

◆ color_

std::string arrow::color_
protected

Definition at line 96 of file arrow.hpp.

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

◆ hidden_

bool arrow::hidden_
protected

Definition at line 106 of file arrow.hpp.

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

◆ layer_

display::drawing_layer arrow::layer_
protected

Definition at line 94 of file arrow.hpp.

Referenced by draw_hex().

◆ path_

arrow_path_t arrow::path_
protected

Definition at line 100 of file arrow.hpp.

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

◆ previous_path_

arrow_path_t arrow::previous_path_
protected

Definition at line 101 of file arrow.hpp.

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

◆ style_

std::string arrow::style_
protected

represents the subdirectory that holds images for this arrow style

Definition at line 98 of file arrow.hpp.

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

◆ STYLE_FOCUS

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

Definition at line 69 of file arrow.hpp.

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

◆ STYLE_FOCUS_INVALID

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

Definition at line 70 of file arrow.hpp.

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

◆ STYLE_HIGHLIGHTED

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

◆ STYLE_STANDARD

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

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

Definition at line 67 of file arrow.hpp.

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

◆ symbols_map_

arrow_symbols_map_t arrow::symbols_map_
protected

Definition at line 104 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: