summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-07-30 03:43:01 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-07-30 03:43:01 +0000
commit3c989a01d352922446048417952ef96f537863d9 (patch)
treed55ab99222472f8bc97633a00777a600b022faac
parente1eaf149bf86f69dbdc8afa9ef28e94640c2c124 (diff)
downloadcrawl-ref-3c989a01d352922446048417952ef96f537863d9.tar.gz
crawl-ref-3c989a01d352922446048417952ef96f537863d9.zip
Fixed feature timeout not working right for bazaars.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1949 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r--crawl-ref/source/defines.h2
-rw-r--r--crawl-ref/source/dungeon.cc6
-rw-r--r--crawl-ref/source/misc.cc9
-rw-r--r--crawl-ref/source/misc.h3
4 files changed, 11 insertions, 9 deletions
diff --git a/crawl-ref/source/defines.h b/crawl-ref/source/defines.h
index 2ad611e620..c71b24926b 100644
--- a/crawl-ref/source/defines.h
+++ b/crawl-ref/source/defines.h
@@ -55,7 +55,7 @@
// number of monster enchantments
#define NUM_MON_ENCHANTS 6
// non-monster for mgrd[][] -- (MNST + 1) {dlb}:
-#define NON_MONSTER 201
+#define NON_MONSTER (MAX_MONSTERS + 1)
#define MAX_SUBTYPES 50
diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc
index 937482cb7a..cb6391feb4 100644
--- a/crawl-ref/source/dungeon.cc
+++ b/crawl-ref/source/dungeon.cc
@@ -3034,7 +3034,8 @@ static bool build_minivaults(int level_number, int force_vault,
link_items();
const dungeon_feature_type newgrid = grd[vx][vy];
grd[vx][vy] = oldgrid;
- dungeon_terrain_changed(coord_def(vx, vy), newgrid);
+ dungeon_terrain_changed(coord_def(vx, vy), newgrid,
+ true, true);
env_remove_markers_at(coord_def(vx, vy), MAT_ANY);
}
}
@@ -3577,7 +3578,8 @@ static bool build_vaults(int level_number, int force_vault, int rune_subst,
link_items();
const dungeon_feature_type newgrid = grd[vx][vy];
grd[vx][vy] = oldgrid;
- dungeon_terrain_changed(coord_def(vx, vy), newgrid);
+ dungeon_terrain_changed(coord_def(vx, vy), newgrid,
+ true, true);
env_remove_markers_at(coord_def(vx, vy), MAT_ANY);
}
}
diff --git a/crawl-ref/source/misc.cc b/crawl-ref/source/misc.cc
index d929e2b449..345c2e41e5 100644
--- a/crawl-ref/source/misc.cc
+++ b/crawl-ref/source/misc.cc
@@ -551,9 +551,6 @@ static bool dgn_shift_feature(const coord_def &pos)
}
env_move_markers(pos, dest);
dungeon_events.move_listeners(pos, dest);
-
- if (see_grid(dest) && is_notable_terrain(dfeat))
- seen_notable_thing(dfeat, dest.x, dest.y);
}
return (true);
}
@@ -599,11 +596,13 @@ static void dgn_check_terrain_monsters(const coord_def &pos)
void dungeon_terrain_changed(const coord_def &pos,
dungeon_feature_type nfeat,
- bool affect_player)
+ bool affect_player,
+ bool preserve_features)
{
if (nfeat != DNGN_UNSEEN)
{
- dgn_shift_feature(pos);
+ if (preserve_features)
+ dgn_shift_feature(pos);
unnotice_feature(level_pos(level_id::current(), pos));
grd(pos) = nfeat;
if (is_notable_terrain(nfeat) && see_grid(pos))
diff --git a/crawl-ref/source/misc.h b/crawl-ref/source/misc.h
index 7bbfd4a602..bceb4692bb 100644
--- a/crawl-ref/source/misc.h
+++ b/crawl-ref/source/misc.h
@@ -173,7 +173,8 @@ void run_environment_effects();
// Terrain changed under 'pos', perform necessary effects.
void dungeon_terrain_changed(const coord_def &pos,
dungeon_feature_type feat = DNGN_UNSEEN,
- bool affect_player = true);
+ bool affect_player = true,
+ bool preserve_features = false);
//////////////////////////////////////////////////////////////////////
// Places and names