summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/dungeon.h
Commit message (Collapse)AuthorAgeFilesLines
* FR 1837856: note vaults generated in dumpMatthew Cline2009-10-261-0/+4
| | | | | | | | | | Include new dump section "vaults", which for game-end dumps (or any wizard-mode dumps) will include a list (by place) of all the vaults generated in the game. The savefile now includes a player-associated CrawlHashTable (you.props), which can be used for storing player information which doesn't need to be accessed efficiently.
* More renaming and reorganization of feature checks.Robert Vollmert2009-10-171-1/+1
| | | | | | | | | There were a couple of functions is_something(dgn_feature_type feat) defined in travel.cc that were otherwise independent of travel. For consistency, move these to terrain.cc and rename to feat_is_something. One might also consider renaming the various feat_is_whatever functions to just is_whatever.
* Naming consistency.Robert Vollmert2009-10-171-6/+6
| | | | | Mostly rename functions from terrain.h that accept features of typ dgn_feature_type from grid_is_* to feat_is_*.
* Drop obsolete CVS last-committed headers ($Author$).Adam Borowski2009-10-061-2/+0
|
* Move 'FixAry.h' -> 'fixary.h', 'FixVec.h' -> 'fixvec.h' for file naming ↵Steven Noonan2009-09-291-2/+2
| | | | | | consistency Signed-off-by: Steven Noonan <steven@uplinklabs.net>
* Set up a basic testing framework for LOS. ./crawl -test with a full debug ↵Darshan Shaligram2009-09-241-0/+2
| | | | build will run the test.
* Various cleanups, mostly having to do with coord_def().haranp2009-02-151-0/+4
| | | | git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9086 c06c8d41-db1a-0410-9941-cceddc491573
* Store level generation information in env.properties, so that it can bezelgadis2009-01-301-1/+8
| | | | | | | | included in a crash dump even if the crash happens after level generation is complete. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8849 c06c8d41-db1a-0410-9941-cceddc491573
* Bug #2025033: To prevent a vault's rock walls from being changed to match thezelgadis2009-01-011-1/+2
| | | | | | | | walls of the rest of the level in the Vaults, the Crypt and in Dis you can use the tag no_wall_fixup git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8073 c06c8d41-db1a-0410-9941-cceddc491573
* Add arena mode, activated on the command-line by 'crawl -arena "monster v ↵dshaligram2008-12-311-4/+8
| | | | | | monster"' (eg: crawl -arena "Sigmund v Jessica") to let monsters fight each other undisturbed by the player. Good to examine monster AI and monster behaviour when the player is AWOL. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8059 c06c8d41-db1a-0410-9941-cceddc491573
* Start of moving special room definitions (monster lairs and monster pits)zelgadis2008-11-261-11/+0
| | | | | | | | | | | | | | | | | to lua. As of now all special rooms are filled with rats. Introduces two new members to map_def, weight_depth_mult and weight_depth_div, which change a map's weight based on the absolute dungeon depth (not yet accesible via lua or vault definitions). This needs to be done in C++ rather than in lua since a map's lua isn't re-invoked every time a random map is chosen, but only when the map is placed. NOTE: When I first made this change crawl started crashing until I manually forced the recompilation of util/levcomp.lex.o and util/levcomp.tab.o; if crawl starts crashing after this change, try doing that. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7629 c06c8d41-db1a-0410-9941-cceddc491573
* Add pillars to ziggurat, more utility functions for Lua to handle maps.dshaligram2008-11-241-7/+12
| | | | git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7591 c06c8d41-db1a-0410-9941-cceddc491573
* Use map_def* instead of map indices.dshaligram2008-11-231-1/+1
| | | | git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7562 c06c8d41-db1a-0410-9941-cceddc491573
* Removed redundant buffer used to go from map_def to env.grid and all the ↵dshaligram2008-11-231-4/+31
| | | | | | tedious code used to mess with this pointless buffer. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7560 c06c8d41-db1a-0410-9941-cceddc491573
* Discard more junk parameters from vault building routines.dshaligram2008-11-231-2/+1
| | | | git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7558 c06c8d41-db1a-0410-9941-cceddc491573
* More steps toward ziggurats.dshaligram2008-11-231-0/+5
| | | | git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7553 c06c8d41-db1a-0410-9941-cceddc491573
* Remove labyrinth entry placement from dungeon.cc, added support for "luniq" ↵dshaligram2008-11-191-0/+4
| | | | | | and "extra" tags. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7511 c06c8d41-db1a-0410-9941-cceddc491573
* [2154738] Addressing some dungeon continuity problems (i.e. Orc bubble ↵ennewalker2008-10-191-0/+3
| | | | | | | | | problem). Regions of the map without a down staircase of any sort get an escape hatch down. Bottoms of branches must contain a path back to a branch exit via stone stairs. Finally, the bottom levels of spotty branches (Orc, Lair) are now slightly bigger. They aren't always fully connected, but it's now more likely that this is the case. Also, fixing a terrible typo bug that I introduced that silently eliminated the check for missing staircases. (!!!) git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7275 c06c8d41-db1a-0410-9941-cceddc491573
* Add whitespace fixes.dolorous2008-09-281-1/+1
| | | | git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7054 c06c8d41-db1a-0410-9941-cceddc491573
* Remove pre-Stone Soup change history from source files, and push it allj-p-e-g2008-09-141-4/+0
| | | | | | | | | | into a file crawlhistory.txt in docs/obsolete. I used a perl script to do this under the assumption that all these change logs used the same system following the keyword "Change History". git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6930 c06c8d41-db1a-0410-9941-cceddc491573
* Massive overhaul to move towards coord_def().haranp2008-07-301-8/+14
| | | | | | | | | | This might have introduced some bugs: I now get intermittent crashes on startup (this might have to do with the changes to special_room.) Sorry about that - committing before I need to do any more big conflict resolutions. Fixes coming later. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6732 c06c8d41-db1a-0410-9941-cceddc491573
* Adding lua function to fill in disconnected zones.ennewalker2008-07-261-0/+3
| | | | git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6689 c06c8d41-db1a-0410-9941-cceddc491573
* Remove unneeded methods (including the old resistance screen), renamej-p-e-g2008-06-121-2/+1
| | | | | | | debugging functions, and some other clean-up. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5757 c06c8d41-db1a-0410-9941-cceddc491573
* Fix wizard mode being unable to create monsters of nonfloor habitat.j-p-e-g2008-06-011-1/+2
| | | | | | | | | | | | | | | | Changed labyrinth handling for minotaurs: Instead of being magic mappable, labyrinths are plain mappable. Yes, that makes everything much easier, but allowing magic mapping and yet you still have to trudge along by hand (rather than use autotravel) is worse. To make up for it, we might want to boost the monster minotaur (trying to defend its home against a rival?) Or we could just remove the difference altogether... Cleaned up debug.cc a bit. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5401 c06c8d41-db1a-0410-9941-cceddc491573
* Add a "patrolling" flag to monster creation in mapdef and dungeon.cc, j-p-e-g2008-05-261-6/+6
| | | | | | | | | | | | | | | | | and add it to Orb Guardians in Zot:5. At least in theory, they should now be returning to their starting points if you flee and stay away for long enough. "In theory" because the bad monster pathfinding prevents them from actually finding their way back. We've got the same problem with minotaurs in labyrinths, who've also got this flag set. Because of these restrictions it's almost impossible to test whether it would work without such problems. In any case, it's there for later. Also: spacing and commenting fixes in dungeon.cc. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5253 c06c8d41-db1a-0410-9941-cceddc491573
* FR 1822931: Vaults can now include tags of the form "layout_foo" tozelgadis2008-05-261-0/+1
| | | | | | | | | | | | | | | | indicate which level layout types it's compatible with, where "foo" can be: rooms, caves, open, city, or cross (plus swamp, shoals and labyrinth, even though random vaults aren't used in those places). Having no "layout_foo" tag means that the vault is compatible with all layout types, which is the current behavior. Also, fixed bug where layouts plan_1 (donut levels), plan_2 (cross levels) and plan_6 (octagon with circle of pillars) were choosing randomly from the three Lua defined layouts in dat/layout.des, rather than choosing exactly the chosen layout. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5251 c06c8d41-db1a-0410-9941-cceddc491573
* Pushing some dungeon-related lua functions back into C++.ennewalker2008-05-221-0/+29
| | | | git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5176 c06c8d41-db1a-0410-9941-cceddc491573
* Cleaned up monster generation functions, separate monster zombie type from ↵dshaligram2008-05-051-1/+0
| | | | | | | | | monster number. May be buggy. Allow hydra zombies (they currently do not get the right number of heads). git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4872 c06c8d41-db1a-0410-9941-cceddc491573
* The level-builder now enforces the constraint that every contiguous region ↵dshaligram2008-04-101-1/+8
| | | | | | on a level must include at least one stair (ekiM). This guarantee does not apply to areas inside vaults (the builder assumes vault-designers are sane) and does not apply to certain branches (Swamp, Shoals, the branches of Hell), or the non-Dungeon areas (Abyss, Pan, Bazaars). git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4169 c06c8d41-db1a-0410-9941-cceddc491573
* Added Water card. Might need some rebalancing.haranp2008-04-081-0/+1
| | | | git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4127 c06c8d41-db1a-0410-9941-cceddc491573
* Ha, I knew there was a reason to cleaning up dungeon.cc - learning by j-p-e-g2008-03-311-0/+2
| | | | | | | | | | | | | | | | | | | | | | osmosis... :p Anyway, killing the royal jelly now turns all stone walls on the level into clear rock, together with a cute message. This currently only works if you actually kill it on the bottom level - other than the lua magic, which sets a marker to work no matter where you kill the jelly (I think). Still, it's better than nothing. Instead of introducing a wrapper function I probably should have made replace_area non-static, but I wasn't sure if there might be a better way to do this, and wanted to avoid having to change (and then possibly change back) all calls and their indenting. I would have changed the rune probability as well, but I wasn't entirely sure, how. If I had to guess, I'd say that changing P -> O on the branch map is the way to go. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3986 c06c8d41-db1a-0410-9941-cceddc491573
* Batch of tiny changes for MSVC compiles.pauldubois2008-03-101-1/+3
| | | | | | | | | | | | | | | Most of these fall into the category: - don't use struct to refer to a class, and vice versa - msvc doesn't like unistd.h or dirent.h Doesn't fix all the struct/class problems; I think I'll silence those for now and move on because it's not all that important. Tested on OS X. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3571 c06c8d41-db1a-0410-9941-cceddc491573
* [Bug 1907221] Add "Modified for Crawl Reference" statement and author to aj-p-e-g2008-03-081-1/+1
| | | | | | | | huge number of files. Also correct file name comments. No coding changes. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3539 c06c8d41-db1a-0410-9941-cceddc491573
* mapdef/vault items can now have their race type and ego explicitly set.zelgadis2007-12-131-1/+1
| | | | | | | mapdef/vault monsters can now be given an explicit list of items. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3055 c06c8d41-db1a-0410-9941-cceddc491573
* Items can now fall through shaft traps (trap doors). The code is ratherzelgadis2007-12-031-1/+1
| | | | | | | | | | | | | | simplistic, and it's not currently possible to make a "baited" shaft; also, there is no threshold weight, so even a single dart will open up (and thus reveal) a shaft trap. Breaks savefile compatibility. Monsters which fall through a shaft now show up 100% of the time on the player's next visit to the shaft's destination level. Also, the monster is placed close to the spot where the player would end up if s/he went through the same shaft. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2988 c06c8d41-db1a-0410-9941-cceddc491573
* Incorporate patches 1825023 (typos) and 1824868 (bug in fully_contains().)haranp2007-11-051-1/+1
| | | | git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2765 c06c8d41-db1a-0410-9941-cceddc491573
* [1804809] Fixed buggy handling of colour overlays.dshaligram2007-10-251-0/+1
| | | | git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2570 c06c8d41-db1a-0410-9941-cceddc491573
* Added a flag to disable generation of exits from a vault. Need to clean up ↵dshaligram2007-10-251-0/+1
| | | | | | vault placement to make it easier to parameterise it. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2567 c06c8d41-db1a-0410-9941-cceddc491573
* dgn_place_map takes a coord_def to specify the centre of the map for ↵dshaligram2007-10-251-1/+7
| | | | | | minivaults and floating vaults. This placement can be activated using an asterisk (mapname*) when entering the name of the map in the &L command. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2559 c06c8d41-db1a-0410-9941-cceddc491573
* Moved all of the bazaar specific logic/code to dat/bazaar (or turned thezelgadis2007-10-041-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | code into Lua utility functions which can be reused by things other than bazaars). Related changes: * Portal vault entrances now work if they have destinations ("dst" property) besides "bazaar" (though it still causes an assert if no matchng maps for the destination can be found). * The floor and rock colour for a level are generated once and then stored in the save file, rather than being constantly regenerated (which means that bazaar floor colours are now truly random, rather than being tied to the depth of the bazaar entrance). * The floor and rock colour for a portal vault (or for any level containing any vault) can be set with ROCKCOL and FLOORCOL (which currently only accepts a single colour, unlike COLOUR); there are also Lua functions for querying and setting the colours. * Each portal vault level_type_name can have an associated Lua callback which is called when level generation is complete; it can be used for things like stair fixup. I also moved the Halls of Zot rock/floor colour special casing to the dat/zot.des file, since it was easy once ROCKCOL and FLOORCOL had been implemented. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2314 c06c8d41-db1a-0410-9941-cceddc491573
* This change moves the logic for when a level or branch prohibitszelgadis2007-09-191-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | teleport control from the C++ code into the vault .des files. This is done with the additions of two things: * Changeable, persistent per-level and per-branch flags which affect game play. * Dungeon events for the killing of monsters, picking up of objects and changing of features. The current level and branch flags are for teleport control prevention, making a level unmappable (like the Abyss or a Labyrinth), and preventing magic mapping from working (like the Abyss or a Labyrinth). Some related changes: * The new .des header KMASK allows for dungeon grid masks like no_monster_gen to be applied to specific symbols rather than the entire vault. * If the wizard mapping command (&{) is used in a place which is unmappable, it will ask if you wish to force the area to be mappable (so you can see what an entire Labyrinth or Abyss level looks like without having to hack the source). * A new wizard-mode level-map command, 'T', will teleport the player to wherever the cursor is pointing. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2146 c06c8d41-db1a-0410-9941-cceddc491573
* Split off portions of externs.h and enum.h into other files. Thezelgadis2007-09-151-1/+22
| | | | | | | | | | | | | crawl_environment, player and monsters classes have been left in externs.h, which necessitates that all of the enums references by those classes stay in enums.h, since you can't forward declare an enum. However, it's a start. Also, portions of misc.{cc,h} have been split off into traps.{cc,h}, place.{cc,h} and terrain.{cc,h} git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2095 c06c8d41-db1a-0410-9941-cceddc491573
* Another change to how bazaars look.j-p-e-g2007-09-121-0/+1
| | | | | | | | | | All floor squares around shops (in bazaars) get coloured yellow. (David likened this to light flooding the street.) Lava on red floor get converted to water, and deep water on blue floor is substituted by lava or shallow water. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2074 c06c8d41-db1a-0410-9941-cceddc491573
* Give Lugonu Banishment and Corruption. I've left the old Bend Space in, becausedshaligram2007-08-111-0/+6
| | | | | | | | | | | | | | | | | | | | there needs to be an invocation that can train Invocations, and Banishment is too costly to use for everyday training. Corruption is still a first-cut, needs more work and playtesting: - Terrain modification is one-time only. Creeping modification requires too much savegame magic. - The monsters gated in during the corruption effect are occasionally hostile, but mostly neutral. Neutrals will attack hostile monsters and also pets, but will leave other neutrals and the player alone (in general). A neutral that wants to go somewhere, but finds the player in the way will still take a swing at the player. - Beams are still not fixed to handle neutrals correctly (so neutrals do not target and shoot right yet), will fix soon. Breaks save compatibility. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1990 c06c8d41-db1a-0410-9941-cceddc491573
* [1770625] Allow generated monster names in &M.dshaligram2007-08-091-0/+5
| | | | | | Removed sealed entry vaults. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1982 c06c8d41-db1a-0410-9941-cceddc491573
* Labyrinth entry points are now a guaranteed minimum distance away from thedshaligram2007-08-011-1/+2
| | | | | | | | exit. Exits from bazaars are treated as rock stairs instead of stone stairs. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1952 c06c8d41-db1a-0410-9941-cceddc491573
* Added wizmode &L command to place a map on the current level by name. Thisdshaligram2007-07-281-10/+14
| | | | | | | | only really works for non-encompass vaults, and dungeon fixups are not applied (so random deep water -> shallow water conversion, auto-placement of water creatures, etc. will not happen). git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1942 c06c8d41-db1a-0410-9941-cceddc491573
* Reworked Bazaars as a special case of portal vaults. The level-type is nowdshaligram2007-07-271-0/+1
| | | | | | | | | | | | | called portal vault. The dungeon builder bases its behaviour on the level_type_name, which must be set as the "dst" property on the portal leading to the bazaar/portal vault. Added WELCOME: directive to .des files to allow maps to specify a welcome message when the player enters the level (only relevant to encompass maps). Readjusted kenku flight speed. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1941 c06c8d41-db1a-0410-9941-cceddc491573
* Updated level-design.txt.dshaligram2007-07-211-45/+2
| | | | | | | | | | | Moved map markers to mapmark.cc. Added support for timer markers that remove a feature after a certain timeout. Need to hook up messaging to Lua. Added bazaars (need more bazaar layouts). git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1899 c06c8d41-db1a-0410-9941-cceddc491573
* [1754412] New rock stair behaviour: rock stairs take you to the nearest dshaligram2007-07-181-0/+1
| | | | | | point on the target level that is connected to at least one stone stair. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1893 c06c8d41-db1a-0410-9941-cceddc491573