The Battle for Wesnoth  1.19.0-dev
Classes | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
terrain_filter Class Reference

#include <filter.hpp>

Inheritance diagram for terrain_filter:

Classes

struct  terrain_filter_cache
 

Public Member Functions

 terrain_filter (const vconfig &cfg, const filter_context *fc, const bool flat_tod)
 
 terrain_filter (const vconfig &cfg, const terrain_filter &original)
 
 ~terrain_filter ()
 Default implementation, but defined out-of-line for efficiency reasons. More...
 
 terrain_filter (const terrain_filter &other)
 
terrain_filteroperator= (const terrain_filter &other)
 
bool match (const map_location &loc) const
 
bool match (const map_location &loc, const unit &ref_unit) const
 
virtual bool operator() (const map_location &loc) const
 
void get_locations (std::set< map_location > &locs, bool with_border=false) const
 gets all locations on the map that match this filter More...
 
void get_locations (std::set< map_location > &locs, const unit &ref_unit, bool with_border=false) const
 gets all locations on the map that match this filter More...
 
void flatten (const bool flat_tod=true)
 
config to_config () const
 
- Public Member Functions inherited from filter_impl
 filter_impl ()
 
virtual bool matches (const gamemap_base &m, map_location l)=0
 
virtual ~filter_impl ()
 

Private Member Functions

bool match_impl (const map_location &loc, const unit *ref_unit) const
 
void get_locs_impl (std::set< map_location > &locs, const unit *ref_unit, bool with_border) const
 
bool match_internal (const map_location &loc, const unit *ref_unit, const bool ignore_xy) const
 

Private Attributes

const vconfig cfg_
 
const filter_contextfc_
 
terrain_filter_cache cache_
 
const std::size_t max_loop_
 
bool flat_
 

Friends

class terrain_filterimpl
 

Additional Inherited Members

- Protected Member Functions inherited from xy_pred
virtual ~xy_pred ()
 

Detailed Description

Definition at line 28 of file filter.hpp.

Constructor & Destructor Documentation

◆ terrain_filter() [1/3]

terrain_filter::terrain_filter ( const vconfig cfg,
const filter_context fc,
const bool  flat_tod 
)

Definition at line 50 of file filter.cpp.

References terrain_filter().

Referenced by get_locs_impl(), match_impl(), match_internal(), and terrain_filter().

◆ terrain_filter() [2/3]

terrain_filter::terrain_filter ( const vconfig cfg,
const terrain_filter original 
)

Definition at line 59 of file filter.cpp.

References terrain_filter().

◆ ~terrain_filter()

terrain_filter::~terrain_filter ( )

Default implementation, but defined out-of-line for efficiency reasons.

Definition at line 46 of file filter.cpp.

References ~terrain_filter().

Referenced by ~terrain_filter().

◆ terrain_filter() [3/3]

terrain_filter::terrain_filter ( const terrain_filter other)

Definition at line 68 of file filter.cpp.

References terrain_filter().

Member Function Documentation

◆ flatten()

void terrain_filter::flatten ( const bool  flat_tod = true)
inline

Definition at line 78 of file filter.hpp.

References flat_.

◆ get_locations() [1/2]

void terrain_filter::get_locations ( std::set< map_location > &  locs,
bool  with_border = false 
) const
inline

gets all locations on the map that match this filter

Parameters
[out]locsset to store the results in
[in]with_borderwhether to include the borders

Definition at line 63 of file filter.hpp.

References get_locs_impl().

Referenced by ai::formula_ai::get_value().

◆ get_locations() [2/2]

void terrain_filter::get_locations ( std::set< map_location > &  locs,
const unit ref_unit,
bool  with_border = false 
) const
inline

gets all locations on the map that match this filter

Parameters
[out]locsset to store the results in
[in]with_borderwhether to include the borders
[in]ref_unitA reference unit for the $teleport_unit auto-stored variable

Definition at line 73 of file filter.hpp.

References get_locs_impl().

◆ get_locs_impl()

void terrain_filter::get_locs_impl ( std::set< map_location > &  locs,
const unit ref_unit,
bool  with_border 
) const
private

◆ match() [1/2]

bool terrain_filter::match ( const map_location loc) const
inline
Parameters
locThe location to test
Returns
true if and only if the given location matches this filter

Definition at line 43 of file filter.hpp.

References match_impl().

Referenced by operator()().

◆ match() [2/2]

bool terrain_filter::match ( const map_location loc,
const unit ref_unit 
) const
inline
Parameters
locThe location to test
ref_unitA reference unit for the $teleport_unit auto-stored variable
Returns
true if and only if the given location matches this filter

Definition at line 52 of file filter.hpp.

References match_impl().

◆ match_impl()

bool terrain_filter::match_impl ( const map_location loc,
const unit ref_unit 
) const
private

◆ match_internal()

bool terrain_filter::match_internal ( const map_location loc,
const unit ref_unit,
const bool  ignore_xy 
) const
private

Definition at line 96 of file filter.cpp.

References wfl::map_formula_callable::add(), terrain_filter::terrain_filter_cache::adjacent_match_cache, terrain_filter::terrain_filter_cache::adjacent_matches, variable_info< V >::as_array(), wfl::variant::as_bool(), cache_, cfg_, vconfig::child(), game_events::builtin_conditions::default_counts, map_location::default_dirs(), e, config_attribute_value::empty(), ERR_WML, wfl::formula::evaluate(), fc_, unit_map::find(), flat_, team::fogged(), get_adjacent_tiles(), tod_manager::get_area_by_id(), vconfig::get_children(), filter_context::get_disp_context(), filter_context::get_game_data(), tod_manager::get_illuminated_time_of_day(), filter_context::get_lua_kernel(), display_context::get_team(), side_filter::get_teams(), gamemap::get_terrain_info(), tod_manager::get_time_of_day(), filter_context::get_tod_man(), vconfig::has_attribute(), vconfig::has_child(), i, time_of_day::id, in_ranges(), utf8::index(), gamemap::is_village(), time_of_day::lawful_bonus, lg::log_to_chat(), main(), vconfig::make_safe(), display_context::map(), match_internal(), map_location::matches_range(), vconfig::null(), terrain_type::number(), gamemap_base::on_board(), gamemap_base::on_board_with_border(), team::owns_village(), map_location::parse_directions(), utils::parse_ranges_unsigned(), terrain_filter::terrain_filter_cache::parsed_terrain, game_lua_kernel::run_filter(), team::shrouded(), gamemap_base::special_location(), utils::split(), terrain_filter(), t_translation::terrain_matches(), config_attribute_value::to_int(), terrain_filter::terrain_filter_cache::ufilter_, display_context::units(), map_location::valid(), unit_map::iterator_base< iter_types >::valid(), display_context::village_owner(), and WRN_NG.

Referenced by get_locs_impl(), match_impl(), and match_internal().

◆ operator()()

virtual bool terrain_filter::operator() ( const map_location loc) const
inlinevirtual

Implements xy_pred.

Definition at line 56 of file filter.hpp.

References match().

◆ operator=()

terrain_filter & terrain_filter::operator= ( const terrain_filter other)

Definition at line 79 of file filter.cpp.

References operator=().

Referenced by operator=().

◆ to_config()

config terrain_filter::to_config ( ) const

Definition at line 669 of file filter.cpp.

References cfg_, vconfig::get_config(), and to_config().

Referenced by to_config().

Friends And Related Function Documentation

◆ terrain_filterimpl

friend class terrain_filterimpl
friend

Definition at line 81 of file filter.hpp.

Member Data Documentation

◆ cache_

terrain_filter_cache terrain_filter::cache_
mutableprivate

Definition at line 105 of file filter.hpp.

Referenced by get_locs_impl(), and match_internal().

◆ cfg_

const vconfig terrain_filter::cfg_
private

Definition at line 87 of file filter.hpp.

Referenced by get_locs_impl(), match_impl(), match_internal(), and to_config().

◆ fc_

const filter_context* terrain_filter::fc_
private

Definition at line 88 of file filter.hpp.

Referenced by get_locs_impl(), match_impl(), and match_internal().

◆ flat_

bool terrain_filter::flat_
private

Definition at line 107 of file filter.hpp.

Referenced by flatten(), and match_internal().

◆ max_loop_

const std::size_t terrain_filter::max_loop_
private

Definition at line 106 of file filter.hpp.

Referenced by get_locs_impl(), and match_impl().


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