From aad41516e2895a328be17ecea2a1e9c4add416ee Mon Sep 17 00:00:00 2001 From: dshaligram Date: Sun, 1 Jul 2007 18:07:11 +0000 Subject: 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 --- crawl-ref/source/dat/float.des | 96 -------------------------------------- crawl-ref/source/dat/hells.des | 102 +++++++++++++++++++++++++++++++++++++++++ crawl-ref/source/dat/hive.des | 15 +++--- crawl-ref/source/dat/lab.des | 6 +-- crawl-ref/source/mapdef.cc | 25 +++++++--- crawl-ref/source/mapdef.h | 2 + 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 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 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 *); -- cgit v1.2.3-54-g00ecf