summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-07-19 10:59:26 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-07-19 10:59:26 +0000
commitfae235b09c5fc363f998571caad3c6944576915e (patch)
tree165449a8670a68e426154c13e9fa406857ebecba
parentbbb205e0b5f4c9a8ed70f842770e5ed46e7985c3 (diff)
downloadcrawl-ref-fae235b09c5fc363f998571caad3c6944576915e.tar.gz
crawl-ref-fae235b09c5fc363f998571caad3c6944576915e.zip
* Open Zot for good the first time you enter (with three runes or more).
* Add tiles for Zot entrance (both closed and open). * Apply zebez' patch 2823787 to make Magic Mapping show altars/gates. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10303 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r--crawl-ref/source/externs.h1
-rw-r--r--crawl-ref/source/misc.cc5
-rw-r--r--crawl-ref/source/player.cc1
-rw-r--r--crawl-ref/source/rltiles/dc-dngn.txt2
-rw-r--r--crawl-ref/source/rltiles/dc-dngn/dngn_enter_zot_closed.pngbin0 -> 1072 bytes
-rw-r--r--crawl-ref/source/rltiles/dc-dngn/dngn_enter_zot_open.pngbin0 -> 743 bytes
-rw-r--r--crawl-ref/source/tags.cc4
-rw-r--r--crawl-ref/source/tags.h5
-rw-r--r--crawl-ref/source/tilepick.cc8
9 files changed, 23 insertions, 3 deletions
diff --git a/crawl-ref/source/externs.h b/crawl-ref/source/externs.h
index e92533690a..79d9929901 100644
--- a/crawl-ref/source/externs.h
+++ b/crawl-ref/source/externs.h
@@ -836,6 +836,7 @@ public:
FixedVector<spell_type, 25> spells;
char spell_no;
game_direction_type char_direction;
+ bool opened_zot;
unsigned short pet_target;
diff --git a/crawl-ref/source/misc.cc b/crawl-ref/source/misc.cc
index d4e63f1186..c1ba8b9d93 100644
--- a/crawl-ref/source/misc.cc
+++ b/crawl-ref/source/misc.cc
@@ -2117,7 +2117,7 @@ void down_stairs( int old_level, dungeon_feature_type force_stair,
mpr("You fall through a shaft!");
}
- if (stair_find == DNGN_ENTER_ZOT)
+ if (stair_find == DNGN_ENTER_ZOT && !you.opened_zot)
{
const int num_runes = runes_in_pack();
@@ -2135,6 +2135,9 @@ void down_stairs( int old_level, dungeon_feature_type force_stair,
}
return;
}
+ // TODO: This needs a better message!
+ mpr("The gate opens wide!");
+ you.opened_zot = true;
}
// Bail if any markers veto the move.
diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc
index da6f72f4a6..088d71361d 100644
--- a/crawl-ref/source/player.cc
+++ b/crawl-ref/source/player.cc
@@ -6015,6 +6015,7 @@ void player::init()
entry_cause_god = GOD_NO_GOD;
where_are_you = BRANCH_MAIN_DUNGEON;
char_direction = GDT_DESCENDING;
+ opened_zot = false;
prev_targ = MHITNOT;
pet_target = MHITNOT;
diff --git a/crawl-ref/source/rltiles/dc-dngn.txt b/crawl-ref/source/rltiles/dc-dngn.txt
index 9ee9c62db5..2ca3801855 100644
--- a/crawl-ref/source/rltiles/dc-dngn.txt
+++ b/crawl-ref/source/rltiles/dc-dngn.txt
@@ -411,6 +411,8 @@ dngn_shallow_water_murky_disturbance2
%rim 1
dngn_enter_hell DNGN_ENTER_HELL
+dngn_enter_zot_closed DNGN_ENTER_ZOT_CLOSED
+dngn_enter_zot_open DNGN_ENTER_ZOT_OPEN
%rim 0
dngn_enter_labyrinth DNGN_ENTER_LABYRINTH
dngn_enter_dis DNGN_ENTER_DIS
diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_enter_zot_closed.png b/crawl-ref/source/rltiles/dc-dngn/dngn_enter_zot_closed.png
new file mode 100644
index 0000000000..3d163d39d5
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-dngn/dngn_enter_zot_closed.png
Binary files differ
diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_enter_zot_open.png b/crawl-ref/source/rltiles/dc-dngn/dngn_enter_zot_open.png
new file mode 100644
index 0000000000..f50faa176d
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-dngn/dngn_enter_zot_open.png
Binary files differ
diff --git a/crawl-ref/source/tags.cc b/crawl-ref/source/tags.cc
index 1ec80784d6..cb460903fb 100644
--- a/crawl-ref/source/tags.cc
+++ b/crawl-ref/source/tags.cc
@@ -836,6 +836,7 @@ static void tag_construct_you(writer &th)
marshallByte(th, you.max_level);
marshallByte(th, you.where_are_you);
marshallByte(th, you.char_direction);
+ marshallByte(th, you.opened_zot);
marshallByte(th, you.your_level);
marshallByte(th, you.is_undead);
marshallShort(th, you.unrand_reacts);
@@ -1251,6 +1252,9 @@ static void tag_read_you(reader &th, char minorVersion)
you.max_level = unmarshallByte(th);
you.where_are_you = static_cast<branch_type>( unmarshallByte(th) );
you.char_direction = static_cast<game_direction_type>(unmarshallByte(th));
+ if (minorVersion >= TAG_MINOR_ZOT_OPEN)
+ you.opened_zot = (bool) unmarshallByte(th);
+
you.your_level = unmarshallByte(th);
you.is_undead = static_cast<undead_state_type>(unmarshallByte(th));
you.unrand_reacts = unmarshallShort(th);
diff --git a/crawl-ref/source/tags.h b/crawl-ref/source/tags.h
index c9df422832..f07b3616b0 100644
--- a/crawl-ref/source/tags.h
+++ b/crawl-ref/source/tags.h
@@ -63,9 +63,12 @@ enum tag_minor_version
TAG_MINOR_SVNREV = 13, // Added SVN revision
TAG_MINOR_PORTEXT = 14, // Keep track of portal vault extensions.
TAG_MINOR_RELIGION = 15, // Keep track of ghosts' religions.
+ // XXX: Release 0.5 -> switch to major version 6
+ // Does that mean we can remove all the above minor version checks?
TAG_MINOR_ARTEFACT = 16, // Turned fixed arts into unrandarts.
TAG_MINOR_JIYVA = 17, // Added some player bits for Jiyva.
- TAG_MINOR_VERSION = 17 // Current version. (Keep equal to max.)
+ TAG_MINOR_ZOT_OPEN = 18, // Remember whether Zot was opened.
+ TAG_MINOR_VERSION = 18 // Current version. (Keep equal to max.)
};
diff --git a/crawl-ref/source/tilepick.cc b/crawl-ref/source/tilepick.cc
index f47f0a44de..800fb0f650 100644
--- a/crawl-ref/source/tilepick.cc
+++ b/crawl-ref/source/tilepick.cc
@@ -2448,7 +2448,6 @@ int tileidx_feature(int object, int gx, int gy)
case DNGN_ENTER_VAULTS:
case DNGN_ENTER_CRYPT:
case DNGN_ENTER_HALL_OF_BLADES:
- case DNGN_ENTER_ZOT:
case DNGN_ENTER_TEMPLE:
case DNGN_ENTER_SNAKE_PIT:
case DNGN_ENTER_ELVEN_HALLS:
@@ -2457,6 +2456,11 @@ int tileidx_feature(int object, int gx, int gy)
case DNGN_ENTER_SHOALS:
return TILE_DNGN_ENTER;
+ case DNGN_ENTER_ZOT:
+ if (you.opened_zot)
+ return TILE_DNGN_ENTER_ZOT_OPEN;
+ return TILE_DNGN_ENTER_ZOT_CLOSED;
+
case DNGN_RETURN_FROM_ORCISH_MINES:
case DNGN_RETURN_FROM_HIVE:
case DNGN_RETURN_FROM_LAIR:
@@ -2662,6 +2666,7 @@ void tileidx_unseen(unsigned int &fg, unsigned int &bg, int ch,
case '\\': fg = TILE_STAFF_OFFSET; break;
case '^': bg = TILE_DNGN_TRAP_ZOT; break;
case '_':
+ case 220:
case 131: fg = TILE_UNSEEN_ALTAR; break;
case '~': fg = TILE_UNSEEN_ITEM; break;
case '{':
@@ -2672,6 +2677,7 @@ void tileidx_unseen(unsigned int &fg, unsigned int &bg, int ch,
case 128: //old
case 254: bg = TILE_DNGN_CLOSED_DOOR; break;
case 129: bg = TILE_DNGN_RETURN; break;
+ case 239:
case 132: fg = TILE_UNSEEN_ENTRANCE; break;
case 136: bg = TILE_DNGN_ENTER; break;
case 141: bg = TILE_DNGN_LAVA; break;