diff options
author | Robert Burnham <burnhamrobertp@gmail.com> | 2011-04-26 08:47:05 -0500 |
---|---|---|
committer | Robert Burnham <burnhamrobertp@gmail.com> | 2011-04-26 08:47:05 -0500 |
commit | 809ea63fb87708fcb763492e2da99188679ed0f4 (patch) | |
tree | de25799e8538d30d4eb5dcfa37a7bc328ea491c3 /crawl-ref/source/map_knowledge.cc | |
parent | 77b621a0ace27951fc2f24ab357f69430bcbfd67 (diff) | |
parent | 96f00b85b9271dade59c577353651eca1e88e0cd (diff) | |
download | crawl-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.cc | 24 |
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() |