From 95e9d87a073c5870d56cb869b30ae316d89ca158 Mon Sep 17 00:00:00 2001 From: dshaligram Date: Mon, 29 Oct 2007 15:20:44 +0000 Subject: 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 --- crawl-ref/docs/level-design.txt | 23 +++++++++++++++++++++++ crawl-ref/source/dat/crypt.des | 2 +- crawl-ref/source/dat/float.des | 33 +-------------------------------- crawl-ref/source/dat/lab.des | 4 ++-- crawl-ref/source/dat/levdes.vim | 8 +++++--- crawl-ref/source/dat/mini.des | 2 +- crawl-ref/source/externs.h | 2 -- crawl-ref/source/initfile.cc | 6 ------ crawl-ref/source/maps.cc | 19 +++++++++---------- 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 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; -- cgit v1.2.3-54-g00ecf