#include <cavegen.hpp>
Public Member Functions | |
cave_map_generator (const config *game_config) | |
bool | allow_user_config () const |
Returns true iff the map generator has an interactive screen, which allows the user to modify how the generator behaves. | |
void | user_config (display &) |
Display the interactive screen, which allows the user to modify how the generator behaves. | |
std::string | name () const |
Returns a string identifying the generator by name. | |
std::string | create_map (const std::vector< std::string > &args) |
Creates a new map and returns it. | |
config | create_scenario (const std::vector< std::string > &args) |
Private Member Functions | |
void | generate_chambers () |
void | build_chamber (gamemap::location loc, std::set< gamemap::location > &locs, size_t size, size_t jagged) |
void | place_chamber (const chamber &c) |
void | place_items (const chamber &c, config::all_children_iterator i1, config::all_children_iterator i2) |
void | place_passage (const passage &p) |
bool | on_board (const gamemap::location &loc) const |
void | set_terrain (gamemap::location loc, t_translation::t_terrain t) |
void | place_castle (const std::string &side, gamemap::location loc) |
size_t | translate_x (size_t x) const |
size_t | translate_y (size_t y) const |
Private Attributes | |
t_translation::t_terrain | wall_ |
t_translation::t_terrain | clear_ |
t_translation::t_terrain | village_ |
t_translation::t_terrain | castle_ |
t_translation::t_terrain | keep_ |
t_translation::t_map | map_ |
std::map< int, t_translation::coordinate > | starting_positions_ |
std::map< std::string, size_t > | chamber_ids_ |
std::vector< chamber > | chambers_ |
std::vector< passage > | passages_ |
config | res_ |
const config * | cfg_ |
size_t | width_ |
size_t | height_ |
size_t | village_density_ |
bool | flipx_ |
bool | flipy_ |
Classes | |
struct | chamber |
struct | passage |
Definition at line 26 of file cavegen.hpp.
cave_map_generator::cave_map_generator | ( | const config * | game_config | ) |
Definition at line 30 of file cavegen.cpp.
References cfg_, gamemap::default_border, flipx_, flipy_, height_, LOG_NG, r, village_density_, and width_.
bool cave_map_generator::allow_user_config | ( | ) | const [inline, virtual] |
Returns true iff the map generator has an interactive screen, which allows the user to modify how the generator behaves.
Implements map_generator.
Definition at line 31 of file cavegen.hpp.
void cave_map_generator::user_config | ( | display & | disp | ) | [inline, virtual] |
Display the interactive screen, which allows the user to modify how the generator behaves.
(This function will not be called if allow_user_config() returns false).
Implements map_generator.
Definition at line 33 of file cavegen.hpp.
std::string cave_map_generator::name | ( | ) | const [inline, virtual] |
Returns a string identifying the generator by name.
The name should not contain spaces.
Implements map_generator.
Definition at line 35 of file cavegen.hpp.
std::string cave_map_generator::create_map | ( | const std::vector< std::string > & | args | ) | [virtual] |
Creates a new map and returns it.
args may contain arguments to the map generator.
Implements map_generator.
Definition at line 76 of file cavegen.cpp.
References create_scenario().
config cave_map_generator::create_scenario | ( | const std::vector< std::string > & | args | ) | [virtual] |
Reimplemented from map_generator.
Definition at line 82 of file cavegen.cpp.
References cfg_, chambers_, config::child(), config::clear(), gamemap::default_map_header, generate_chambers(), height_, LOG_NG, map_, passages_, place_chamber(), place_passage(), res_, starting_positions_, wall_, width_, and t_translation::write_game_map().
Referenced by create_map().
void cave_map_generator::generate_chambers | ( | ) | [private] |
Definition at line 134 of file cavegen.cpp.
References build_chamber(), cave_map_generator::chamber::center, cfg_, chamber_ids_, chambers_, config::child(), config::get_children(), height_, cave_map_generator::chamber::items, cave_map_generator::chamber::locs, passages_, size, utils::split(), translate_x(), translate_y(), and width_.
Referenced by create_scenario().
void cave_map_generator::build_chamber | ( | gamemap::location | loc, | |
std::set< gamemap::location > & | locs, | |||
size_t | size, | |||
size_t | jagged | |||
) | [private] |
Definition at line 118 of file cavegen.cpp.
References get_adjacent_tiles(), and on_board().
Referenced by generate_chambers(), and place_passage().
void cave_map_generator::place_chamber | ( | const chamber & | c | ) | [private] |
Definition at line 209 of file cavegen.cpp.
References clear_, cave_map_generator::chamber::items, cave_map_generator::chamber::locs, config::ordered_begin(), config::ordered_end(), place_items(), and set_terrain().
Referenced by create_scenario().
void cave_map_generator::place_items | ( | const chamber & | c, | |
config::all_children_iterator | i1, | |||
config::all_children_iterator | i2 | |||
) | [private] |
Definition at line 220 of file cavegen.cpp.
References config::add_child(), cfg, config::child(), loc, cave_map_generator::chamber::locs, place_castle(), res_, utils::string_bool(), and config::values.
Referenced by place_chamber().
void cave_map_generator::place_passage | ( | const passage & | p | ) | [private] |
Definition at line 321 of file cavegen.cpp.
References a_star_search(), build_chamber(), cave_map_generator::passage::cfg, clear_, cave_map_generator::passage::dst, height_, map_, set_terrain(), cave_map_generator::passage::src, paths::route::steps, wall_, and width_.
Referenced by create_scenario().
bool cave_map_generator::on_board | ( | const gamemap::location & | loc | ) | const [inline, private] |
Definition at line 65 of file cavegen.hpp.
References height_, width_, gamemap::location::x, and gamemap::location::y.
Referenced by build_chamber(), and set_terrain().
void cave_map_generator::set_terrain | ( | gamemap::location | loc, | |
t_translation::t_terrain | t | |||
) | [private] |
Definition at line 349 of file cavegen.cpp.
References clear_, map_, on_board(), village_, village_density_, wall_, gamemap::location::x, and gamemap::location::y.
Referenced by place_castle(), place_chamber(), and place_passage().
void cave_map_generator::place_castle | ( | const std::string & | side, | |
gamemap::location | loc | |||
) | [private] |
Definition at line 365 of file cavegen.cpp.
References castle_, get_adjacent_tiles(), keep_, set_terrain(), starting_positions_, gamemap::location::x, and gamemap::location::y.
Referenced by place_items().
size_t cave_map_generator::translate_x | ( | size_t | x | ) | const [private] |
Definition at line 58 of file cavegen.cpp.
References flipx_, and width_.
Referenced by generate_chambers().
size_t cave_map_generator::translate_y | ( | size_t | y | ) | const [private] |
Definition at line 67 of file cavegen.cpp.
References flipy_, and height_.
Referenced by generate_chambers().
Definition at line 75 of file cavegen.hpp.
Referenced by create_scenario(), place_passage(), and set_terrain().
Definition at line 75 of file cavegen.hpp.
Referenced by place_chamber(), place_passage(), and set_terrain().
t_translation::t_map cave_map_generator::map_ [private] |
Definition at line 76 of file cavegen.hpp.
Referenced by create_scenario(), place_passage(), and set_terrain().
std::map<int, t_translation::coordinate> cave_map_generator::starting_positions_ [private] |
std::map<std::string,size_t> cave_map_generator::chamber_ids_ [private] |
std::vector<chamber> cave_map_generator::chambers_ [private] |
Definition at line 80 of file cavegen.hpp.
Referenced by create_scenario(), and generate_chambers().
std::vector<passage> cave_map_generator::passages_ [private] |
Definition at line 81 of file cavegen.hpp.
Referenced by create_scenario(), and generate_chambers().
config cave_map_generator::res_ [private] |
const config* cave_map_generator::cfg_ [private] |
Definition at line 84 of file cavegen.hpp.
Referenced by cave_map_generator(), create_scenario(), and generate_chambers().
size_t cave_map_generator::width_ [private] |
Definition at line 85 of file cavegen.hpp.
Referenced by cave_map_generator(), create_scenario(), generate_chambers(), on_board(), place_passage(), and translate_x().
size_t cave_map_generator::height_ [private] |
Definition at line 85 of file cavegen.hpp.
Referenced by cave_map_generator(), create_scenario(), generate_chambers(), on_board(), place_passage(), and translate_y().
size_t cave_map_generator::village_density_ [private] |
bool cave_map_generator::flipx_ [private] |
bool cave_map_generator::flipy_ [private] |
Generated by doxygen 1.5.5 on 23 May 2008 for The Battle for Wesnoth | Gna! | Forum | Wiki | CIA | devdocs |