summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/abyss.h
Commit message (Collapse)AuthorAgeFilesLines
* Remove unused variable.Mikko Vepsalainen2014-07-101-1/+1
|
* Don't use nuke to describe the abyss destorying all terrain.reaverb2014-06-051-1/+1
|
* Make all abyss teleports shift the Abyss (minmay).Shmuale Mark2014-03-081-1/+1
| | | | | | | | | | | | | | | | Partly this is to (somewhat) make the Abyss a little easier. Teleports still take longer than orbrun teleports to kick in on average, and in general letting the player know what an action will do is a good thing. But the main reason is that, due to maprot, same-area abyss teleports are a pretty awful interface screw. You are prevented from remembering what monsters were around (this was quite annoying when being marked was more common in the abyss), and though you can see for one second what direction you came from, immediately after the screen refreshes and you can't anymore. Possibly this could lead to improving/removing altogether maprot.
* Drop double newlines where they seem to serve no purpose.Adam Borowski2013-12-211-1/+0
| | | | | Sometimes, they're there to emphasize a break between two sections of code, which is good. In a majority of cases, though, they're just inconsistent.
* Have the one-in-three out-of-Abyss mons chance always apply (bh).Steve Melenchuk2013-10-301-0/+2
| | | | | | That is, there's a one in three chance that any given Abyss spawn is from somewhere else in the dungeon - the rest of the implementation of what ba20e99 was meant to do.
* Add a branch to the abyss.Brendan Hickey2013-10-301-0/+3
| | | | This adds branches to the abyss. These will be used for monster generation.
* Shorten the abyssal generator depth to 32 bits (fixes an infinite loop).Adam Borowski2013-09-221-1/+1
| | | | | | | | A good enough fix would be to re-cast the depth to unsigned during unmarshalling so it doesn't get sign-extended before putting into an uint64_t variable. Bits above 32 can't be ever used, though -- even bits over 31 hardly ever do (initial value is < 0x80000000 but increases with time).
* Free the cached abyss grid in some cases.Adam Borowski2013-03-041-0/+1
| | | | | | | | | | | | | | | | * game exit: placates valgrind * leaving the Abyss: saves some memory * game load: could corrupt the Abyss with restart_after_game The last case is quite convoluted (you'd need to restore a game that was saved in the Abyss, and previous one had to visit it this session), and corrupting the Abyss is like trolling /b/, but let's keep saving have strictly no effect on the game. Someone could scum AKs until getting a layout they want. Note that there's an unbounded memory leak as well, in WorleyLayout: it doesn't free source layouts passed to it. These are sometimes malloced, sometimes references to static objects, so it's not as simple a matter.
* Restore Abyss SeedBrendan Hickey2013-03-021-0/+1
| | | | | Mistakes were made. We need per-abyss excursion state.
* Cleanup Abyssal StateBrendan Hickey2012-12-301-2/+2
| | | | | | * Remove seed. It's unnecessary, the abyss is huge enough. * Add a wizmode command to set your location in the abyss. * Fix an overflow bug with abyss depth.
* Ease the Newabyss to Inception upgrade path.Brendan Hickey2012-12-301-0/+1
| | | | | | If a player is in the abyss when their game moves from newabyss to inception, mark the dungeon as nuked. This will cause it to decay over a number of rounds rather than jumping in one turn. Vaults won't be disrupted.
* Abyss ShiftingBrendan Hickey2012-12-301-1/+1
| | | | Restore abyss shifting.
* MMT_NUKEDBrendan Hickey2012-12-301-1/+0
| | | | | Mask features that have been dug, deconstructed or otherwise nuked as MMT_NUKED. This is used in the abyss to facilitate Abyss self-healing.
* Bound Abyss shiftsBrendan Hickey2012-12-301-2/+3
| | | | | | | | Convert abyss depth into an int, rip up all the phase logic (sorry). Each procedural generator declares a changepoint, a lower bound estimate on where the terrain type can change. This way, we can partially recompute the abyss without experiencing aliasing.
* Mixed Column AbyssBrendan Hickey2012-12-301-0/+1
| | | | | Procedural layout for the abyss using a mixture of sparse and dense columns!
* Abilities tab for local tiles, using the fancy new abilities tiles.Steve Melenchuk2012-08-111-1/+1
| | | | | This works like the spell tab, but with intrinsic/evocable abilities, invocations, and ZotDef abilities.
* Cut abyss CPU usage greatly.Neil Moore2012-07-041-0/+1
| | | | | | | | | | | | | | Memoize the feature computed for a cell in the previous turn, rather than computing it twice per turn. This allows us to preserve digging etc. in the abyss without the doubled CPU usage introduced by 0.10-a0-3040-ga00d525. On my (somewhat slow) machine, the time for a 1000-turn run of the abyss stress test is reduced from ~85 s to ~55 s. Currently we recompute the cache (i.e., run the worley routines on each map cell) when loading a saved game and when the abyss shifts as a result of hitting the map edge. The last case could be avoided by shifting around features in the cached array, but abyss shifts are infrequent enough that this is probably not necessary.
* Abyssal punctuated equilibrium.Neil Moore2012-01-011-0/+1
| | | | | | | | | | | Morphing now happens in "jerks". During a jerk, the morphing rate is about three times what it used to be; between jerks, it is nearly zero. Jerks are around 100--300 turns apart, depending on abyss speed (200--600 for Cheibriadites), and last for about 1/3 of that time. For some reason, loading old saves causes some major jerking for a few turns before reaching the slow initial speed. I'm not clear why this is happening.
* Eliminate duplicated symbols.Neil Moore2011-12-271-1/+1
| | | | | | | | | Objects, even const ones, should not be defined in header files, or there will be one copy for each source file that included that header. Move the offending definitions into source files, and replace them with extern declarations in the headers. Also, make the opc_* instances const and not static.
* Move the call to abyss_morph into run_environment_effectsRaphael Langella2011-09-141-1/+1
|
* Clean up all the old abyss code.Raphael Langella2011-09-141-2/+0
|
* Make some functions static.Adam Borowski2011-08-171-1/+0
|
* Smoother abyss morphing.Raphael Langella2011-07-271-1/+0
| | | | | | | | | | Also, some clean up and simplification, especially with the handling of vaults. No longer protects player dropped items from being eaten by the abyss. Vaults are more resilient to morphing and don't decay until the player is close by to avoid having them all messed up before the player has a chance to see them. The morphing speed is a bit fast for now. It will start slower when we make it variable.
* Encase new Abyss code in #ifdefs.Adam Borowski2011-07-061-4/+7
|
* Fixed up map rot.Brendan Hickey2011-07-061-2/+1
|
* First pass at abyss morphingBrendan Hickey2011-07-051-0/+8
|
* A worley-noise abyssBrendan Hickey2011-07-051-0/+1
|
* Fix wizmode-blinking (xm, &b) asserting in the Abyss.Johanna Ploog2011-03-311-0/+1
| | | | | | | | | | | | | | Suppress the assertion checks of player position vs. map border in wizard mode to allow wizmode-movement commands in the Abyss. This may result in incomplete Abyss shifts, so it's not a reliable means to actually testing the shifts themselves. However, this does allow to use the wizmode-movement as a tool in exploring the Abyss to test other things. This also means that the assertions won't be triggered in debug mode, though there _is_ a message in this case. Ideally, the asserts should only be suppressed if the wizmode movement was the *cause* of the shift.
* Make file headers doxygen-friendly, drop useless fields.Adam Borowski2011-03-281-5/+4
| | | | | | | "File:" is shown in your editor's status bar. "Written by:" was used only for the first person who changed a file. We got git for that now, and pre-DCSS history is so woefully inaccurate it doesn't really matter.
* [1745] Fix PC not starting at abyss centre when visiting the abyss.Darshan Shaligram2010-06-131-0/+1
|
* Set abyss center to the actual center of the level, peg the abyss shift ↵Darshan Shaligram2010-06-051-1/+4
| | | | radius to the LOS radius.
* Abyss code cleanup.Darshan Shaligram2010-06-051-1/+3
| | | | | | | | Clean up the code involved in generating and shifting the abyss. This is spadework in preparation for abyss vaults. Fixes abyss shifts copying the area around the player to the centre of the abyss and not clearing the old area (irc conversation between Linley and dpeg confirms that the old behaviour of not clearing the duplicate shifted terrain is a bug). Fixes abyssal runes being more likely to appear at the NW of the abyss level, particularly as time spent in the abyss increases.
* Drop obsolete CVS last-committed headers ($Author$).Adam Borowski2009-10-061-2/+0
|
* Fix 2822832: temporary brands not being removed when thrown with LRET_FUMBLEDj-p-e-g2009-07-201-0/+1
| | | | | | | | | | | | | | plus: thrown weapon permabrand being removed when DUR_WEAPON_BRAND is active plus: double messaging of "You are now empty-handed." Fix 2810517: Added a pre-ability requirements check that handles Lugonu's enter/exit abyss, berserking, recite, breath attacks and some more. If the requirements aren't met, the check fails before the success check, thus no turn is wasted. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10360 c06c8d41-db1a-0410-9941-cceddc491573
* Very minor cleanup.haranp2009-02-031-23/+3
| | | | | | | (OK, so I wanted r8888. Sue me.) git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8888 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
* Disallow vampires from draining summoned creatures to be consistent withj-p-e-g2008-07-041-1/+1
| | | | | | | | | | | | | summoned creatures being incapable of bleeding on the floor. This makes things more difficult for Vampires; on the other hand there was a (more or less) recent change that lets them regain 1 hp *per turn* when draining corpses. We might also increase the duration of blood potions... Apart from that, various clean-ups. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6393 c06c8d41-db1a-0410-9941-cceddc491573
* Enable pathfinding for patrolling monsters who lost their patrol point.j-p-e-g2008-06-071-1/+1
| | | | | | | | | | | | | | | | | | | | | Fixed patrol definitions in maps not actually working. Tested both by teleporting the minotaur in a labyrinth. About 50 turns later it arrived back in its lair. :) Since the minotaur proved to have a high magic resistance, it had plenty of time to loot the stash at the labyrinth entrance once I'd woken it before I finally managed to teleport it away (in wizmode you can force monsters not noticing you). This resulted in "A minotaur, wielding the demon trident "Suyn Oma", and wearing a heavily runed ring mail." o_O It had also picked up a scroll and a wand. Ouch... (but cool!) git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5536 c06c8d41-db1a-0410-9941-cceddc491573
* Create random blood spatter in the Abyss and Pandemonium (FR 1986241).j-p-e-g2008-06-071-1/+1
| | | | | | | | | | | | | How it works: * Pick 12 random grids on the map and make them bloody. * Recursively and with decreasing chances, allow their neighbours to get spattered as well. I think the effect is rather nice but the numbers might need to be tweaked anyway. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5533 c06c8d41-db1a-0410-9941-cceddc491573
* [Bug 1907221] Add "Modified for Crawl Reference" statement and author to aj-p-e-g2008-03-081-0/+2
| | | | | | | | 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
* Give Lugonu Banishment and Corruption. I've left the old Bend Space in, becausedshaligram2007-08-111-0/+4
| | | | | | | | | | | | | | | | | | | | 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
* Banished uniques (including ghosts) will now be sent to the Abyss. Banisheddshaligram2007-03-181-0/+1
| | | | | | | | | | | | | | | | | non-uniques may also get the Abyss treatment if they clear a HD roll. Crawl tries very hard not to lose banished monsters, preserving them across Abyss shifts and teleports, and saving them on the transit list when the player escapes the Abyss. Breaks savefile compatibility. Toned down Vehumet and wizardry boosts a touch. Fixed bugginess where player could get aux unarmed attacks on a monster that just teleported away (by weapon of distortion). git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1052 c06c8d41-db1a-0410-9941-cceddc491573
* Clean up a mistake in the SVN import.nlanza2006-08-131-0/+37
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10 c06c8d41-db1a-0410-9941-cceddc491573