summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/travel.h
diff options
context:
space:
mode:
authorAdam Borowski <kilobyte@angband.pl>2010-06-26 22:24:27 +0200
committerAdam Borowski <kilobyte@angband.pl>2010-06-26 23:34:26 +0200
commit0485a567bd424ee678c25efe712e07d29f739b0d (patch)
tree7a9e864065a077a76c5a93da943e643a0b5b4c8a /crawl-ref/source/travel.h
parentb2d9aad9849b63eb9d711144d299d140ee8c668d (diff)
downloadcrawl-ref-0485a567bd424ee678c25efe712e07d29f739b0d.tar.gz
crawl-ref-0485a567bd424ee678c25efe712e07d29f739b0d.zip
Reimplement all monster-related actions as delayed ones. Remove apply_to_all_dungeons().
Functional changes: * Yred's penance won't insta-enslave mons you merely marked. * Xom-gifted pet perm daevas won't abandon you if you drop TSO. (I've actually had this happen to me in a real game!)
Diffstat (limited to 'crawl-ref/source/travel.h')
-rw-r--r--crawl-ref/source/travel.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/crawl-ref/source/travel.h b/crawl-ref/source/travel.h
index 000f197520..b970f88a0f 100644
--- a/crawl-ref/source/travel.h
+++ b/crawl-ref/source/travel.h
@@ -321,6 +321,7 @@ struct LevelInfo
{
LevelInfo() : stairs(), excludes(), stair_distances(), id()
{
+ da_counters.init(0);
}
void save(writer&) const;
@@ -363,6 +364,8 @@ struct LevelInfo
// current level.
bool is_known_branch(unsigned char branch) const;
+ FixedVector<int, NUM_DA_COUNTERS> da_counters;
+
private:
// Gets a list of coordinates of all player-known stairs on the current
// level.
@@ -421,6 +424,7 @@ public:
{
return levels.find(lev) != levels.end();
}
+ std::vector<level_id> known_levels() const;
const level_pos &get_waypoint(int number) const
{
@@ -445,6 +449,11 @@ public:
bool is_known_branch(unsigned char branch) const;
+ void update_da_counters(); // of the current level
+
+ unsigned int query_da_counter(daction_type c);
+ void clear_da_counter(daction_type c);
+
private:
void fixup_levels();