summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-10-29 15:20:44 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-10-29 15:20:44 +0000
commit95e9d87a073c5870d56cb869b30ae316d89ca158 (patch)
tree9a4a087b925f8308c3bd9ecbaefb4a4a194e21b6
parentc5dad3f54e790dd270fed42f99fa22031bd1f34e (diff)
downloadcrawl-ref-95e9d87a073c5870d56cb869b30ae316d89ca158.tar.gz
crawl-ref-95e9d87a073c5870d56cb869b30ae316d89ca158.zip
Trunk->0.3 merge (2663-2666): Removed "levels" option, fixed maps, mapgen stats.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/branches/stone_soup-0.3@2667 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r--crawl-ref/docs/level-design.txt23
-rw-r--r--crawl-ref/source/dat/crypt.des2
-rw-r--r--crawl-ref/source/dat/float.des33
-rw-r--r--crawl-ref/source/dat/lab.des4
-rw-r--r--crawl-ref/source/dat/levdes.vim8
-rw-r--r--crawl-ref/source/dat/mini.des2
-rw-r--r--crawl-ref/source/externs.h2
-rw-r--r--crawl-ref/source/initfile.cc6
-rw-r--r--crawl-ref/source/maps.cc19
9 files changed, 42 insertions, 57 deletions
diff --git a/crawl-ref/docs/level-design.txt b/crawl-ref/docs/level-design.txt
index 1c894dfc6e..4914025362 100644
--- a/crawl-ref/docs/level-design.txt
+++ b/crawl-ref/docs/level-design.txt
@@ -10,6 +10,7 @@ Contents: A. Introduction
G. Hints for level makers
H. Lua reference
I. Feature names
+ J. Map statistics
A. Introduction
-----------------
@@ -1172,3 +1173,25 @@ altar_elyvilon, altar_lugonu, altar_beogh, blue_fountain,
dry_fountain_i, sparkling_fountain, dry_fountain_ii, dry_fountain_iii,
dry_fountain_iv, dry_fountain_v, dry_fountain_vi, dry_fountain_vii,
dry_fountain_viii, permadry_fountain
+
+
+J. Map Statistics
+-------------------
+
+Full-debug Crawl builds (this does not include normal Crawl builds
+that have wizard-mode) can produce map generation statistics. To
+generate statistics, run crawl from the command-line as:
+
+crawl -mapstat
+
+This will generate 100 Crawl dungeons and report on the maps used in a
+file named "mapgen.log" in the working directory.
+
+You can change the number of dungeons to generate:
+
+crawl -mapstat 10
+
+Will generate 10 dungeons. If you merely want statistics on the
+probabilities of the levels, use:
+
+crawl -mapstat 1
diff --git a/crawl-ref/source/dat/crypt.des b/crawl-ref/source/dat/crypt.des
index 04336e7f93..e56cb741fb 100644
--- a/crawl-ref/source/dat/crypt.des
+++ b/crawl-ref/source/dat/crypt.des
@@ -333,7 +333,7 @@ vwwwwwwwwwwwwwwwwwwwwwwwwwww..wwwwwwwwwwwwwwwwwwwwwwwwwwwv
vwwwwwwwwwwwwwwwwwwwwwwwwwww..wwwwwwwwwwwwwwwwwwwwwwwwwwwv
vwwwwwwwwwwwwwwwwwwwwwwwAww....wwAwwwwwwwwwwwwwwwwwwwwwwwv
vwwwwwwwwwwwwwwwwwwwwwwwwww....wwwwwwwwwwwwwwwwwwwwwwwwwwv
-vwwwwwwwwwwwwwwwwwwwwwwwww...(..wwwwwwwwwwwwwwwwwwwwwwwwwv
+vwwwwwwwwwwwwwwwwwwwwwwwww......wwwwwwwwwwwwwwwwwwwwwwwwwv
vwwwwwwwwwwwwwwwwwwwwwAwww.[..{.wwwAwwwwwwwwwwwwwwwwwwwwwv
vwwwwwwwwwwwwwwwwwwwwwwwwww....wwwwwwwwwwwwwwwwwwwwwwwwwwv
vwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwv
diff --git a/crawl-ref/source/dat/float.des b/crawl-ref/source/dat/float.des
index df8093df41..8fc02bda98 100644
--- a/crawl-ref/source/dat/float.des
+++ b/crawl-ref/source/dat/float.des
@@ -144,38 +144,6 @@ xxxx111xxx
xxxxxxxxxx
ENDMAP
-####################################
-# shoot the duckies, win a prize!
-#(warning: some duckies may shoot back)
-#
-NAME: shooting_gallery_Lemuel
-ORIENT: float
-TAGS: no_pool_fixup no_monster_gen
-ITEM: potion of levitation q:2
-: if you.absdepth() <= 16 then
-MONS: orc wizard/centaur/jackal/killer bee larva/giant lizard/kobold/giant mite/grey rat/green rat/orange rat
-MONS: deep elf priest/orc high priest/cyclops/orc priest/jelly/ogre/troll/yak/orc warrior/sheep/hog
-: elseif you.absdepth() >= 17 then
-MONS: deep elf priest/orc high priest/cyclops/yaktaur/slime creature/yak/wyvern/big kobold/toenail golem
-MONS: yaktaur captain/manticore/deep elf high priest/orc sorcerer/ogre-mage/ugly thing/unseen horror
-: end
-KFEAT: $ = >
-KFEAT: * = <
-MAP
-ccccccccccccccccccccccccccccccccccccccccccccc
-ccxc$cxc*cxc$cxc*cxc$cxc*cxc$cxc*cxc$cxc*cxcc
-cxwwxwwwxwwwxwwwxwwwxwwwxwwwxwwwxwwwxwwwxwwxc
-ccwwww2www2www2www2www2www2www2www2www2wwwwcc
-cxwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxc
-ccww1www1www1www1www1www1www1www1www1www1wwcc
-cxwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxc
-cc.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.cc
-cx.........................................xc
-cc.........................................cc
-cx.........d..........d..........d.........xc
-cc.........................................cc
-ENDMAP
-
##############################################################################
# Beware the mummy's curse (Lemuel)
#
@@ -403,6 +371,7 @@ NAME: onia_ninara_012_swampy_vault
TAGS: no_pool_fixup no_monster_gen uniq_swamp_vault
ORIENT: float
SHUFFLE: AB@
+SUBST: x = .:30 W x:4
SUBST: A : x, B : x
SUBST: D = .:30 W
KFEAT: E = w:20 . / x / w:50 W / w:30 w / ~
diff --git a/crawl-ref/source/dat/lab.des b/crawl-ref/source/dat/lab.des
index 6500618317..350cf59a50 100644
--- a/crawl-ref/source/dat/lab.des
+++ b/crawl-ref/source/dat/lab.des
@@ -190,12 +190,12 @@ KFEAT: N = teleport trap
SUBST: g=., h=., i=., j=., k=., l=., n=.
SUBST: G=., H=., I=., J=., K=., L=., N=.
SUBST: Y=*, Z=*
-KFEAT: X = exit_portal_vault
+KFEAT: X = <
KMONS: X = minotaur
KFEAT: S = granite_statue
CHANCE: 2
MAP
-............
+.............
.vvvvvvvvvvv.
.vvXvvYvvZvv.
.vv+vv+vv+vv.
diff --git a/crawl-ref/source/dat/levdes.vim b/crawl-ref/source/dat/levdes.vim
index c3e608b734..181ba61ffa 100644
--- a/crawl-ref/source/dat/levdes.vim
+++ b/crawl-ref/source/dat/levdes.vim
@@ -67,7 +67,8 @@ syn match desMapWaxWall /a/ contained
syn match desMapMonst /[0-9]/ contained
syn match desMapGold /\$/ contained
syn match desMapLava /l/ contained
-syn match desMapWater /[wW]/ contained
+syn match desMapWater /w/ contained
+syn match desMapShallow /W/ contained
syn match desMapEntry /@/ contained
syn match desMapTrap /\^/ contained
@@ -78,8 +79,8 @@ syn match desMapOrb /Z/ contained
syn cluster desMapElements contains=desMapBookend,desMapWall,desMapFloor
syn cluster desMapElements add=desMapMonst,desMapCrystalWall,desMapGold
syn cluster desMapElements add=desMapLava,desMapMetalWall,desMapDoor
-syn cluster desMapElements add=desMapStoneWall,desMapWater,desMapTrap
-syn cluster desMapElements add=desMapEntry,desMapWaxWall
+syn cluster desMapElements add=desMapStoneWall,desMapWater,desMapShallow
+syn cluster desMapElements add=desMapTrap,desMapEntry,desMapWaxWall
syn cluster desMapElements add=desMapRune,desMapOrb,desMapValuable
@@ -114,6 +115,7 @@ hi desMapMonst guifg=red ctermfg=darkred
hi desMapLava guifg=red gui=bold ctermfg=red
hi desMapTrap guifg=red gui=bold ctermfg=red
hi desMapWater guifg=lightblue ctermfg=darkblue
+hi desMapShallow guifg=lightcyan ctermfg=darkcyan
hi desMapGold guifg=#c09000 ctermfg=yellow
hi desMapDoor guifg=brown gui=bold ctermfg=black ctermbg=brown
hi desMapEntry guifg=black guibg=white gui=bold ctermfg=white ctermbg=black
diff --git a/crawl-ref/source/dat/mini.des b/crawl-ref/source/dat/mini.des
index 059c374d00..de55dba25c 100644
--- a/crawl-ref/source/dat/mini.des
+++ b/crawl-ref/source/dat/mini.des
@@ -74,7 +74,7 @@ ENDMAP
# No loot but the elves' gear, but at the depth this appears that may be good
#
NAME: elves_outpost_lemuel
-DEPTH: D:8-20, Orc:*
+DEPTH: D:14-20, Orc:2-
MONS: deep elf soldier/w:4 deep elf fighter
MONS: w:20 deep elf mage/deep elf conjurer/deep elf summoner
SHUFFLE: ?:/bb, :;/ww
diff --git a/crawl-ref/source/externs.h b/crawl-ref/source/externs.h
index 854de14dfa..4bdb77cae9 100644
--- a/crawl-ref/source/externs.h
+++ b/crawl-ref/source/externs.h
@@ -1392,8 +1392,6 @@ public:
std::string morgue_dir; // Directory where character dumps and morgue
// dumps are saved. Overrides crawl_dir.
- std::vector<std::string> extra_levels;
-
std::string player_name;
#ifdef DGL_SIMPLE_MESSAGING
diff --git a/crawl-ref/source/initfile.cc b/crawl-ref/source/initfile.cc
index aed876f778..e07ce2b9d6 100644
--- a/crawl-ref/source/initfile.cc
+++ b/crawl-ref/source/initfile.cc
@@ -754,8 +754,6 @@ void game_options::reset_options()
channels[i] = MSGCOL_DEFAULT;
// Clear vector options.
- extra_levels.clear();
-
dump_order.clear();
new_dump_fields("header,hiscore,stats,misc,inventory,"
"skills,spells,overview,mutations,messages,screenshot,"
@@ -1786,10 +1784,6 @@ void game_options::read_option_line(const std::string &str, bool runscript)
// As a suggestion, try "rxvt -rv -fn 10x20" under Un*xes
friend_brand = curses_attribute(field);
}
- else if (key == "levels" || key == "level" || key == "entries")
- {
- extra_levels.push_back(field);
- }
else if (key == "stab_brand")
{
stab_brand = curses_attribute(field);
diff --git a/crawl-ref/source/maps.cc b/crawl-ref/source/maps.cc
index 02b45e4744..e4f598dff6 100644
--- a/crawl-ref/source/maps.cc
+++ b/crawl-ref/source/maps.cc
@@ -671,15 +671,6 @@ void read_maps()
{
if (dlua.execfile("clua/loadmaps.lua", true, true))
end(1, false, "Lua error: %s", dlua.error.c_str());
-
- for (int i = 0, size = Options.extra_levels.size(); i < size; ++i)
- {
- lc_desfile = datafile_path( Options.extra_levels[i] + ".des", false );
- if (lc_desfile.empty())
- continue;
-
- parse_maps( lc_desfile );
- }
// Clean up cached environments.
dlua.callfn("dgn_flush_map_environments", 0, 0);
@@ -751,13 +742,21 @@ static weighted_map_names mg_find_random_vaults(
}
}
- return (wms);
+ return (wms);
+}
+
+static bool weighted_map_more_likely(
+ const weighted_map_name &a,
+ const weighted_map_name &b)
+{
+ return (a.second > b.second);
}
static void mg_report_random_vaults(
FILE *outf, const level_id &place, bool wantmini)
{
weighted_map_names wms = mg_find_random_vaults(place, wantmini);
+ std::sort(wms.begin(), wms.end(), weighted_map_more_likely);
int weightsum = 0;
for (int i = 0, size = wms.size(); i < size; ++i)
weightsum += wms[i].second;