summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/abyss.cc
diff options
context:
space:
mode:
authorzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2008-07-02 22:37:48 +0000
committerzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2008-07-02 22:37:48 +0000
commitbe1fd6b9eef41731976b64af9ba27e377fab5a3b (patch)
treec48c300bd8e7780f965c9151f6a5dd2224f32855 /crawl-ref/source/abyss.cc
parenta3a8c0f837972ec556dc6a89b411603953344da0 (diff)
downloadcrawl-ref-be1fd6b9eef41731976b64af9ba27e377fab5a3b.tar.gz
crawl-ref-be1fd6b9eef41731976b64af9ba27e377fab5a3b.zip
Oops, wasn't properly shifting sanctuary center when doing an Abyss
area shift. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6355 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/abyss.cc')
-rw-r--r--crawl-ref/source/abyss.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/crawl-ref/source/abyss.cc b/crawl-ref/source/abyss.cc
index 28897a7fe9..d3c23c8243 100644
--- a/crawl-ref/source/abyss.cc
+++ b/crawl-ref/source/abyss.cc
@@ -411,6 +411,7 @@ void area_shift(void)
// area shift.
//
// Also shift sanctuary center if it's close.
+ bool sanct_shifted = false;
coord_def sanct_pos(0, 0);
FixedArray<unsigned short, LOS_DIAMETER, LOS_DIAMETER> fprops;
const coord_def los_delta(LOS_RADIUS, LOS_RADIUS);
@@ -419,12 +420,15 @@ void area_shift(void)
{
fprops(you.pos() - *ri + los_delta) = env.map(*ri).property;
if (env.sanctuary_pos == *ri && env.sanctuary_time > 0)
- sanct_pos = *ri;
+ {
+ sanct_pos = *ri - you.pos();
+ sanct_shifted = true;
+ }
}
// If sanctuary center is outside of preserved area then just get
// rid of it.
- if (env.sanctuary_time > 0 && sanct_pos == coord_def(0, 0))
+ if (env.sanctuary_time > 0 && !sanct_shifted)
{
remove_sanctuary(false);
@@ -531,9 +535,9 @@ void area_shift(void)
for ( ; ri2; ++ri2 )
env.map(*ri2).property = fprops(you.pos() - *ri2 + los_delta);
- if (sanct_pos != coord_def(0, 0))
+ if (sanct_shifted)
{
- env.sanctuary_pos = sanct_pos;
+ env.sanctuary_pos = sanct_pos + you.pos();
}
mgen_data mons;