summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/dungeon.h
diff options
context:
space:
mode:
authorAdam Borowski <kilobyte@angband.pl>2013-02-24 05:34:35 +0100
committerAdam Borowski <kilobyte@angband.pl>2013-02-24 05:34:35 +0100
commit65306b0f297ae9ce4a5b2a52f055a2f2482dbad2 (patch)
tree376bb1bec86026fdc5317a0299ade45d788f8ef7 /crawl-ref/source/dungeon.h
parentb957c737d34260acddc671a3c7bbe9cb810665c0 (diff)
parente8f008ab92473c7cc7a26b7a8504733b7c80a407 (diff)
downloadcrawl-ref-65306b0f297ae9ce4a5b2a52f055a2f2482dbad2.tar.gz
crawl-ref-65306b0f297ae9ce4a5b2a52f055a2f2482dbad2.zip
Merge branch 'master' into mon-pick
Sorry for merge commits, but rerere is pretty limited.
Diffstat (limited to 'crawl-ref/source/dungeon.h')
-rw-r--r--crawl-ref/source/dungeon.h43
1 files changed, 27 insertions, 16 deletions
diff --git a/crawl-ref/source/dungeon.h b/crawl-ref/source/dungeon.h
index e6dad2020e..ee2a2e96f4 100644
--- a/crawl-ref/source/dungeon.h
+++ b/crawl-ref/source/dungeon.h
@@ -134,16 +134,15 @@ public:
bool seen;
public:
- vault_placement()
- : pos(-1, -1), size(0, 0), orient(MAP_NONE), map(),
- exits(), seen(false)
- {
- }
-
+ vault_placement();
void reset();
void apply_grid();
void draw_at(const coord_def &c);
void connect(bool spotty = false) const;
+ string map_name_at(const coord_def &c) const;
+ dungeon_feature_type feature_at(const coord_def &c);
+ bool is_exit(const coord_def &c);
+ bool is_space(const coord_def &c);
};
class vault_place_iterator
@@ -201,15 +200,15 @@ void dgn_place_stone_stairs(bool maybe_place_hatches = false);
void dgn_set_colours_from_monsters();
void dgn_set_grid_colour_at(const coord_def &c, int colour);
-bool dgn_place_map(const map_def *map,
- bool check_collision,
- bool make_no_exits,
- const coord_def &pos = INVALID_COORD);
+const vault_placement *dgn_place_map(const map_def *map,
+ bool check_collision,
+ bool make_no_exits,
+ const coord_def &pos = INVALID_COORD);
-const map_def *dgn_safe_place_map(const map_def *map,
- bool check_collision,
- bool make_no_exits,
- const coord_def &pos = INVALID_COORD);
+const vault_placement *dgn_safe_place_map(const map_def *map,
+ bool check_collision,
+ bool make_no_exits,
+ const coord_def &pos = INVALID_COORD);
void level_clear_vault_memory();
void run_map_epilogues();
@@ -245,7 +244,8 @@ void dgn_set_branch_epilogue(branch_type br, string callback_name);
void dgn_reset_level(bool enable_random_maps = true);
-void dgn_register_place(const vault_placement &place, bool register_vault);
+const vault_placement *dgn_register_place(const vault_placement &place,
+ bool register_vault);
void dgn_seen_vault_at(coord_def p);
@@ -282,7 +282,18 @@ string dump_vault_maps();
bool dgn_square_travel_ok(const coord_def &c);
-bool join_the_dots(const coord_def &from, const coord_def &to, unsigned mmask);
+set<coord_def> dgn_spotty_connect_path(
+ const coord_def& from,
+ bool (*overwriteable)(dungeon_feature_type) = NULL);
+
+// Resets travel_point_distance!
+vector<coord_def> dgn_join_the_dots_pathfind(const coord_def &from,
+ const coord_def &to,
+ uint32_t mapmask);
+
+bool join_the_dots(const coord_def &from, const coord_def &to,
+ unsigned mmask,
+ bool (*overwriteable)(dungeon_feature_type) = NULL);
int count_feature_in_box(int x0, int y0, int x1, int y1,
dungeon_feature_type feat);
bool door_vetoed(const coord_def pos);