diff options
author | Jude Brown <bookofjude@users.sourceforge.net> | 2009-10-24 12:25:46 +1000 |
---|---|---|
committer | Robert Vollmert <rvollmert@gmx.net> | 2009-10-24 14:37:58 +0200 |
commit | e4d195a439f1cbcd6a4302a3fd7d7454cfb04d42 (patch) | |
tree | 4f8e1c5dcfbe42561fa28d5918b2778b8345fb5e /crawl-ref/source/travel.h | |
parent | 394fb595f6d03fa9d266ed28726975e0b59bc798 (diff) | |
download | crawl-ref-e4d195a439f1cbcd6a4302a3fd7d7454cfb04d42.tar.gz crawl-ref-e4d195a439f1cbcd6a4302a3fd7d7454cfb04d42.zip |
Make FPROP_FORCE_EXCLUDE set an actual travel exclusion.
FPROP_FORCE_EXCLUDE now sets an actual travel exclusion rather than
bypassing the travel exclusion system. Exclusions are single
squares.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>
Diffstat (limited to 'crawl-ref/source/travel.h')
-rw-r--r-- | crawl-ref/source/travel.h | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/crawl-ref/source/travel.h b/crawl-ref/source/travel.h index 42232088f2..51b5cfdf4d 100644 --- a/crawl-ref/source/travel.h +++ b/crawl-ref/source/travel.h @@ -63,7 +63,7 @@ void travel_init_new_level(); void cycle_exclude_radius(const coord_def &p); void del_exclude(const coord_def &p); void set_exclude(const coord_def &p, int radius = LOS_RADIUS, - bool autoexcl = false); + bool autoexcl = false, bool vaultexcl = false); void maybe_remove_autoexclusion(const coord_def &p); std::string get_exclusion_desc(); void clear_excludes(); @@ -352,20 +352,22 @@ void update_exclusion_los(std::vector<coord_def> changed); struct travel_exclude { - coord_def pos; // exclusion centre - int radius; // exclusion radius - bool autoexclude; // Was set automatically. - int mon; // Monster around which exclusion is centered. - los_def los; // los from exclusion centre - bool uptodate; // Is los up to date? + coord_def pos; // exclusion centre + int radius; // exclusion radius + bool autoexclude; // Was set automatically. + int mon; // Monster around which exclusion is centered. + los_def los; // los from exclusion centre + bool uptodate; // Is los up to date? + bool vaultexclude; // Is this exclusion set by a vault? int radius_sq() const; void set_los(); bool affects(const coord_def& p) const; travel_exclude(const coord_def &p, int r = LOS_RADIUS, - bool autoexcl = false, int mons = NON_MONSTER) - : pos(p), radius(r), autoexclude(autoexcl), mon(mons) + bool autoexcl = false, int mons = NON_MONSTER, + bool vaultexcl = false) + : pos(p), radius(r), autoexclude(autoexcl), mon(mons), vaultexclude(vaultexcl) { set_los(); } |