diff options
author | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-07-02 22:37:48 +0000 |
---|---|---|
committer | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-07-02 22:37:48 +0000 |
commit | be1fd6b9eef41731976b64af9ba27e377fab5a3b (patch) | |
tree | c48c300bd8e7780f965c9151f6a5dd2224f32855 /crawl-ref/source/abyss.cc | |
parent | a3a8c0f837972ec556dc6a89b411603953344da0 (diff) | |
download | crawl-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.cc | 12 |
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; |