summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/map_knowledge.cc
diff options
context:
space:
mode:
authorRobert Burnham <burnhamrobertp@gmail.com>2011-04-26 08:47:05 -0500
committerRobert Burnham <burnhamrobertp@gmail.com>2011-04-26 08:47:05 -0500
commit809ea63fb87708fcb763492e2da99188679ed0f4 (patch)
treede25799e8538d30d4eb5dcfa37a7bc328ea491c3 /crawl-ref/source/map_knowledge.cc
parent77b621a0ace27951fc2f24ab357f69430bcbfd67 (diff)
parent96f00b85b9271dade59c577353651eca1e88e0cd (diff)
downloadcrawl-ref-809ea63fb87708fcb763492e2da99188679ed0f4.tar.gz
crawl-ref-809ea63fb87708fcb763492e2da99188679ed0f4.zip
Merge branch 'master' into unified_combat_control
Conflicts: crawl-ref/source/actor.cc crawl-ref/source/delay.cc crawl-ref/source/directn.cc crawl-ref/source/directn.h crawl-ref/source/fight.cc crawl-ref/source/files.cc crawl-ref/source/mon-act.cc crawl-ref/source/monster.cc crawl-ref/source/mpr.h crawl-ref/source/player.cc crawl-ref/source/shopping.cc
Diffstat (limited to 'crawl-ref/source/map_knowledge.cc')
-rw-r--r--crawl-ref/source/map_knowledge.cc24
1 files changed, 18 insertions, 6 deletions
diff --git a/crawl-ref/source/map_knowledge.cc b/crawl-ref/source/map_knowledge.cc
index 02f1dddc0f..3ed2a7e509 100644
--- a/crawl-ref/source/map_knowledge.cc
+++ b/crawl-ref/source/map_knowledge.cc
@@ -33,13 +33,16 @@ void map_knowledge_forget_mons(const coord_def& c)
// Used to mark dug out areas, unset when terrain is seen or mapped again.
void set_terrain_changed(int x, int y)
{
+ const coord_def p = coord_def(x, y);
env.map_knowledge[x][y].flags |= MAP_CHANGED_FLAG;
- dungeon_events.fire_position_event(DET_FEAT_CHANGE, coord_def(x, y));
+ dungeon_events.fire_position_event(DET_FEAT_CHANGE, p);
- los_terrain_changed(coord_def(x,y));
+ los_terrain_changed(p);
- check_clinging();
+ for (orth_adjacent_iterator ai(p); ai; ++ai)
+ if (actor *act = actor_at(*ai))
+ act->check_clinging(false, feat_is_door(grd(p)));
}
void set_terrain_mapped(int x, int y)
@@ -85,16 +88,25 @@ void clear_map(bool clear_detected_items, bool clear_detected_monsters)
cell.clear_item();
if ((!clear_detected_monsters || !cell.detected_monster())
- && !mons_class_is_stationary(cell.monster()))
+ && !mons_class_is_stationary(cell.monster()))
+ {
cell.clear_monster();
+#ifdef USE_TILE
+ tile_clear_monster(p);
+#endif
+ }
}
}
static void _automap_from(int x, int y, int mutated)
{
if (mutated)
- magic_mapping(8 * mutated, 25, true, you.religion == GOD_ASHENZARI,
- true, true, coord_def(x,y));
+ {
+ magic_mapping(8 * mutated,
+ you.religion == GOD_ASHENZARI ? 25 + you.piety / 8 : 25,
+ true, you.religion == GOD_ASHENZARI,
+ true, coord_def(x,y));
+ }
}
static int _map_quality()