summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-07-01 18:07:11 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-07-01 18:07:11 +0000
commitaad41516e2895a328be17ecea2a1e9c4add416ee (patch)
treee97718f51e0a0585d595c9a074d8a8a7867814d9
parentfc78d02aee0c39be4fb45b3b640a17f2af18cd45 (diff)
downloadcrawl-ref-aad41516e2895a328be17ecea2a1e9c4add416ee.tar.gz
crawl-ref-aad41516e2895a328be17ecea2a1e9c4add416ee.zip
Moved hellmouths back to hells.des after discussions with David.
Restored a couple of other maps. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1707 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r--crawl-ref/source/dat/float.des96
-rw-r--r--crawl-ref/source/dat/hells.des102
-rw-r--r--crawl-ref/source/dat/hive.des15
-rw-r--r--crawl-ref/source/dat/lab.des6
-rw-r--r--crawl-ref/source/mapdef.cc25
-rw-r--r--crawl-ref/source/mapdef.h2
6 files changed, 134 insertions, 112 deletions
diff --git a/crawl-ref/source/dat/float.des b/crawl-ref/source/dat/float.des
index 1488f664c2..0572783823 100644
--- a/crawl-ref/source/dat/float.des
+++ b/crawl-ref/source/dat/float.des
@@ -419,99 +419,3 @@ xxxx...1...xxxx
xxxxxxxxxxxxxxx
ENDMAP
-###################################
-# Hellmouth (Lemuel)
-# note that other than the imps, the demons here cannot fly
-NAME: hellmouth_1
-FLAGS: no_rotate
-MONS: imp / quasit / shadow imp, hellion / rotting devil / iron devil / hairy devil / hell hound
-ITEM: good_item demon blade / good_item demon whip / good_item demon trident / wand of draining
-ITEM: wand of fire / ring of fire / Necronomicon / book of demonology / scroll of torment
-ORIENT: float
-SUBST: d=de, ?:?.l, ?=l.
-
-MAP
-xxxxxxxxxxxxxxxxxxx
-xxxxxxxxlllxxxxxxxx
-xxxxxxlllAlllxxxxxx
-xxxlllll.d.llll?xxx
-xlllllll121lllll?.x
-x?lllllll1llll?...x
-x.??llllllll?.....x
-x...?llllll?......x
-x....?lllll.......x
-xxx...?lll?.....xxx
-xxxx...lll?....xxxx
-xxxxx.?ll?....xxxxx
-xxxxx?lll.....xxxxx
-xxxxxxlll?...xxxxxx
-xxxxxxxlll...xxxxxx
-xxxxxxxxll?.xxxxxxx
-xxxxxxxxll?.xxxxxxx
-xxxxxxxxl?@xxxxxxxx
-ENDMAP
-
-###################################
-# Hellmouth 2 (Lemuel)
-# note that other than the imps, the demons here cannot fly
-NAME: hellmouth_2
-TAGS: no_monster_gen
-FLAGS: no_rotate
-MONS: imp / quasit / shadow imp / manes / lemure
-MONS: hellion / rotting devil / iron devil / hairy devil / hell hound
-ITEM: good_item demon blade / good_item demon whip / good_item demon trident / wand of draining
-ITEM: wand of fire / ring of fire / Necronomicon / book of demonology / scroll of torment
-ITEM: good_item demon blade / good_item demon whip / good_item demon trident / w:30 nothing
-ORIENT: float
-SUBST: d=de, ?:?.l, ?=l.
-SUBST: b : b:30 c v .
-MAP
-..........................
-.......bbbbbbbbbbbb.......
-....bbbb..........bbbb....
-..bbb....llllllll....bbb..
-.bb....llllllllllll....bb.
-.b....llllllllllllll....b.
-.b....llllll??llllll....b.
-.b...?lll??.....?lll?...b.
-.b...?ll?...111...ll?...b.
-@+...?l?...11211d..l?...b.
-@+...?l?...12A21|f.l?...b.
-.b...?ll...11211d.ll?...b.
-.b...?lll?..111..lll?...b.
-.b....llll?.....llll....b.
-.b....llllll??llllll....b.
-.bb....llllllllllll....bb.
-..bbb....llllllll....bbb..
-....bbbb..........bbbb....
-.......bbbbbbbbbbbb.......
-..........................
-ENDMAP
-
-###################################
-# Hellmouth 3 (Lemuel)
-NAME: hellmouth_3
-MONS: weight:50 imp / quasit / shadow imp / manes / lemure, hell hound
-ITEM: good_item demon blade / good_item demon whip / good_item demon trident / nothing
-ORIENT: float
-SUBST: ? : . l ?:40, ?=l.
-MAP
-................??............
-...........................??.
-....??..........l?............
-...?ll?........?l?............
-..?lll?.........l.............
-...?l........??l?.............
-...........??lll?.............
-.........?lllllll?............
-.......?llllllllll??..........
-......?lll111111llll?.........
-......?llll12Ad1lll...........
-.......?lll11111ll?...........
-........?lllll1ll?............
-.........??llllll......?......
-...........?llll?.....ll?.....
-..?.........?ll?.......ll?....
-.?............................
-..................??..........
-ENDMAP
diff --git a/crawl-ref/source/dat/hells.des b/crawl-ref/source/dat/hells.des
index 82becf2098..81a0ae24c3 100644
--- a/crawl-ref/source/dat/hells.des
+++ b/crawl-ref/source/dat/hells.des
@@ -2,6 +2,108 @@
# hells.des: vestibule entries, vestibule, all hell end levels
##############################################################################
+##############################################################################
+# Hell-themed random maps
+##############################################################################
+
+default-depth: D:12-26
+
+###################################
+# Hellmouth (Lemuel)
+# note that other than the imps, the demons here cannot fly
+NAME: hellmouth_1
+FLAGS: no_rotate
+MONS: imp / quasit / shadow imp, hellion / rotting devil / iron devil / hairy devil / hell hound
+ITEM: good_item demon blade / good_item demon whip / good_item demon trident / wand of draining
+ITEM: wand of fire / ring of fire / Necronomicon / book of demonology / scroll of torment
+ORIENT: float
+SUBST: d=de, ?:?.l, ?=l.
+
+MAP
+xxxxxxxxxxxxxxxxxxx
+xxxxxxxxlllxxxxxxxx
+xxxxxxlllAlllxxxxxx
+xxxlllll.d.llll?xxx
+xlllllll121lllll?.x
+x?lllllll1llll?...x
+x.??llllllll?.....x
+x...?llllll?......x
+x....?lllll.......x
+xxx...?lll?.....xxx
+xxxx...lll?....xxxx
+xxxxx.?ll?....xxxxx
+xxxxx?lll.....xxxxx
+xxxxxxlll?...xxxxxx
+xxxxxxxlll...xxxxxx
+xxxxxxxxll?.xxxxxxx
+xxxxxxxxll?.xxxxxxx
+xxxxxxxxl?@xxxxxxxx
+ENDMAP
+
+###################################
+# Hellmouth 2 (Lemuel)
+# note that other than the imps, the demons here cannot fly
+NAME: hellmouth_2
+TAGS: no_monster_gen
+FLAGS: no_rotate
+MONS: imp / quasit / shadow imp / manes / lemure
+MONS: hellion / rotting devil / iron devil / hairy devil / hell hound
+ITEM: good_item demon blade / good_item demon whip / good_item demon trident / wand of draining
+ITEM: wand of fire / ring of fire / Necronomicon / book of demonology / scroll of torment
+ITEM: good_item demon blade / good_item demon whip / good_item demon trident / w:30 nothing
+ORIENT: float
+SUBST: d=de, ?:?.l, ?=l.
+SUBST: b : b:30 c v .
+MAP
+..........................
+.......bbbbbbbbbbbb.......
+....bbbb..........bbbb....
+..bbb....llllllll....bbb..
+.bb....llllllllllll....bb.
+.b....llllllllllllll....b.
+.b....llllll??llllll....b.
+.b...?lll??.....?lll?...b.
+.b...?ll?...111...ll?...b.
+@+...?l?...11211d..l?...b.
+@+...?l?...12A21|f.l?...b.
+.b...?ll...11211d.ll?...b.
+.b...?lll?..111..lll?...b.
+.b....llll?.....llll....b.
+.b....llllll??llllll....b.
+.bb....llllllllllll....bb.
+..bbb....llllllll....bbb..
+....bbbb..........bbbb....
+.......bbbbbbbbbbbb.......
+..........................
+ENDMAP
+
+###################################
+# Hellmouth 3 (Lemuel)
+NAME: hellmouth_3
+MONS: weight:50 imp / quasit / shadow imp / manes / lemure, hell hound
+ITEM: good_item demon blade / good_item demon whip / good_item demon trident / nothing
+ORIENT: float
+SUBST: ? : . l ?:40, ?=l.
+MAP
+................??............
+...........................??.
+....??..........l?............
+...?ll?........?l?............
+..?lll?.........l.............
+...?l........??l?.............
+...........??lll?.............
+.........?lllllll?............
+.......?llllllllll??..........
+......?lll111111llll?.........
+......?llll12Ad1lll...........
+.......?lll11111ll?...........
+........?lllll1ll?............
+.........??llllll......?......
+...........?llll?.....ll?.....
+..?.........?ll?.......ll?....
+.?............................
+..................??..........
+ENDMAP
#############################################################################
# Vestibule of Hell and Geryon
diff --git a/crawl-ref/source/dat/hive.des b/crawl-ref/source/dat/hive.des
index 6052c9ff70..3f833385e3 100644
--- a/crawl-ref/source/dat/hive.des
+++ b/crawl-ref/source/dat/hive.des
@@ -98,17 +98,18 @@ MONS: w:200 bear / polar bear / w:100 grizzly bear / w:100 black bear
MONS: killer bee, queen bee, killer bee larva
ITEM: honeycomb, royal jelly
SUBST: ? = a.
+SUBST: ; = 1:1 .
SHUFFLE: deO
ORIENT: float
MAP
...................
-.,,,,,...?aaa???...
-.,,,,,..aaa2aaaaa..
-.,,,,,.?a2e4d342a?.
-.,,,,,.?a4?2?4O4a?.
-.,,,,,..?a42?a2a...
-.,,,,,..?aaaaaa?...
-.,,,,,....????.....
+.;;;;;...?aaa???...
+.;;;;;..aaa2aaaaa..
+.;;;;;.?a2e4d342a?.
+.;;;;;.?a4?2?4O4a?.
+.;;;;;..?a42?a2a...
+.;;;;;..?aaaaaa?...
+.;;;;;....????.....
...................
ENDMAP
diff --git a/crawl-ref/source/dat/lab.des b/crawl-ref/source/dat/lab.des
index 076a36bc96..aa001f0c42 100644
--- a/crawl-ref/source/dat/lab.des
+++ b/crawl-ref/source/dat/lab.des
@@ -142,10 +142,10 @@ NAME: labyrinth_rows
TAGS: minotaur
SHUFFLE: def
MONS: minotaur
-KFEAT: d = .
+KFEAT: d = floor
KITEM: d = any good_item, any good_item, any good_item, any good_item, any good_item, any good_item, any good_item, any good_item, any good_item
-KMONS: d = minotaur
-SUBST: e = ., f = <
+KFEAT: e = floor
+KFEAT: f = <
MAP
..................
.cccccccccccccccc.
diff --git a/crawl-ref/source/mapdef.cc b/crawl-ref/source/mapdef.cc
index 0f8b161c2b..5e46f86774 100644
--- a/crawl-ref/source/mapdef.cc
+++ b/crawl-ref/source/mapdef.cc
@@ -1046,17 +1046,25 @@ coord_def map_lines::find_first_glyph(int gly) const
{
for (int y = 0, h = height(); y < h; ++y)
{
- for (int x = 0, w = width(); x < w; ++x)
- {
- const coord_def c(x, y);
- if ((*this)(c) == gly)
- return (c);
- }
+ std::string::size_type pos = lines[y].find(gly);
+ if (pos != std::string::npos)
+ return coord_def(pos, y);
}
return coord_def(-1, -1);
}
+coord_def map_lines::find_first_glyph(const std::string &glyphs) const
+{
+ for (int y = 0, h = height(); y < h; ++y)
+ {
+ std::string::size_type pos = lines[y].find_first_of(glyphs);
+ if (pos != std::string::npos)
+ return coord_def(pos, y);
+ }
+ return coord_def(-1, -1);
+}
+
///////////////////////////////////////////////
// dlua_set_map
@@ -1172,6 +1180,11 @@ coord_def map_def::find_first_glyph(int glyph) const
return map.find_first_glyph(glyph);
}
+coord_def map_def::find_first_glyph(const std::string &s) const
+{
+ return map.find_first_glyph(s);
+}
+
void map_def::write_index(FILE *outf) const
{
if (!cache_offset)
diff --git a/crawl-ref/source/mapdef.h b/crawl-ref/source/mapdef.h
index 4cc77e0af9..7cb4252197 100644
--- a/crawl-ref/source/mapdef.h
+++ b/crawl-ref/source/mapdef.h
@@ -188,6 +188,7 @@ public:
std::vector<coord_def> find_glyph(int glyph) const;
coord_def find_first_glyph(int glyph) const;
+ coord_def find_first_glyph(const std::string &glyphs) const;
void set_orientation(const std::string &s);
@@ -499,6 +500,7 @@ public:
std::vector<coord_def> find_glyph(int glyph) const;
coord_def find_first_glyph(int glyph) const;
+ coord_def find_first_glyph(const std::string &glyphs) const;
void write_index(FILE *) const;
void write_full(FILE *);