| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
This allows us to have a consistent and logical ordering of branches
without requiring the branch enum itself to be reordered (which could
have save compatibility implications). The new ordering of branches just
moves Depths to the place in the ordering that it already is planned to
go on the next major save compat bump, but other changes are possible,
if desired. All places in the code that iterate over branches have been
updated to use the new iterator except for code dealing with save files,
which still uses enum order, so that we can change the display ordering
without affecting saves.
|
|
|
|
|
|
|
| |
.cc, moving its contents into the new stepdown.cc and strings.cc.
(The latter also got many donations from libutil.h.)
Down with stuff! Up the new flesh!
|
| |
|
|
|
|
|
|
|
| |
If the player specified a minivault with &P, try to build a level
containing that minivault. If the level doesn't try to place minivaults
(encompass levels) there is no effect, but otherwise the level will be
vetoed if the requested vault did not place.
|
| |
|
|
|
|
| |
Just fail with a message like we were supposed to.
|
| |
|
| |
|
|
|
|
|
|
| |
They had minimal damage and mechanical traps hardly generate anywhere
anyway. In ossuaries (the only vaults with them, thank god), they've
been mostly replaced with arrow traps or the floor.
|
| |
|
| |
|
|
|
|
| |
Redundant with &G for most uses, and &( if you want the feature.
|
| |
|
|
|
|
|
|
|
|
|
| |
Also simplify quite a few cases.
It turns out in >90% cases of non-literals the argument had .c_str(),
which meant it was pointlessly malloc()ed and converted from and to
std::string. I believe a sprintf is faster, so even the argument of
miniscule speed-up doesn't apply.
|
|
|
|
| |
Scripted, then manually reviewed.
|
| |
|
| |
|
|
|
|
|
| |
Seriously, even preparing this commit gave me a pain in the triangle between
the thumb and index finger's bases and the wrist.
|
|
|
|
|
|
|
|
| |
This allows moving branches around without breaking save compat or at least
serious hacks.
The portal stack can be probably dropped now: two copies of the same level
can't exist anyway.
|
|
|
|
|
| |
It degenerated to a simple loop over menv, hardly worth any syntactic sugar.
I kept it for now, though.
|
|
|
|
|
|
| |
Looks like, unlike "target[t]ing" where a single t is used by many brits and
even some aussies, "cancel[l]ing" has double l even for a good deal of
americans.
|
|
|
|
|
|
|
|
| |
debug_make_trap now has a return value and pos argument to match other
debug_make_* utilities that also do not use it.
Support "any" and "random" as trap name.
This also fixes #4734 [moving after &( undiscovered_trap crashes].
|
|
|
|
|
|
|
| |
Instead of just listing all of the gods on the level in a
comma-separated list, comma-separated lists are printed for each temple,
and temples are separated with semicolons (so, "Elyvilon, Zin, and the
Shining One; Trog and Okawaru; Ashenzari").
|
|
|
|
|
| |
Also in a couple of cases add other messages. The goal here is to always
print something when a prompt is dealt with.
|
|
|
|
|
|
|
| |
Forest's entrance depth and absolute depth are now the same as Crypt's.
This also adds functionality to move Tomb's entrance to Forest if Crypt
isn't placed in the game, so Tomb always exists (at present).
|
|
|
|
|
| |
The only cost is having assignments be a function, as you can't overload
operator[] to have separate bits be lvalues.
|
|
|
|
|
| |
Since this did not free used vaults, despite essentially regenerating
the level (unlike ctrl+r), it was easy to run out of them.
|
|
|
|
|
|
|
| |
This could cause a crash if an arcane familiar was stranded on an old level
and you cast something which would trigger it to fire, but also it seems
sensible that other bits of normal level cleanup should be executed after
a wizmode level change.
|
| |
|
|
|
|
|
|
|
| |
Now, &d will move down one level in the Abyss when possible, and &u will
move up one level. Since the "abyssal stair" technically only goes
down, the latter command actually falls through to the "escape hatch"
case; while this does work, there may be a better way to do it.
|
|
|
|
| |
Thanks to HangedMan for finding the problem and how to reproduce it.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
For most header files, this only saves on having to recompile a
small number of source files, but there are also a few headers
where small changes would now take significantly less time.
This is most obvious for the Tiles build for which the dependencies
have been greatly reduced, so that the only additional includes
when compared to console are strictly library or tile related.
|
| |
|
|\
| |
| |
| | |
Yay for conflicts galore (wax removal, std:: purge, tileidx changes).
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
I had to rename distance() (in coord.h) to distance2() because it conflicts
with the STL function to compare 2 iterators. Not a bad change given how it
returns the square of the distance anyway.
I also had to rename the message global variable (in message.cc) to buffer.
I tried to fix and improve the coding style has much as I could, but I
probably missed a few given how huge and tedious it is.
I also didn't touch crawl-gdb.py, and the stuff in prebuilt, rltiles/tool
and util/levcomp.*, because I have no clue about those.
|
| |
| |
| |
| |
| |
| | |
This makes it consistent with the dungeon builder's replacement of
features, and prevents lovely issues like the hatched screenshot
associated with #6000 from occurring.
|
| |
| |
| |
| |
| |
| | |
They're meant to stop autoexplore, and maybe request a confirmation for
being opened. This is not yet implemented, but we can use them for
converting secret doors that were used for marking a place as interesting.
|
|/ |
|
| |
|
| |
|
|
|
|
|
|
| |
that call it.
To make it consistent with the functions called by it.
|
|
|
|
| |
There's nothing interesting on that display anymore.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Amnesia traps -- and thus, flat chance maprot -- is long since gone.
Of particular interest is the way old forget_map() was called from abyss.cc.
We had two functions:
forget_map(bool force)
forget_map(int chance = 100, bool = false)
Guess which one forget_map(true) called? Not that obvious that one prototype
was missing... No wonder no sane language has function overloading.
|
| | |
|
| |
| |
| |
| |
| |
| | |
This unbreaks subvaulted maps, which would typically run out of legal
subvaults. The only restriction is that a single map cannot use the same
subvault twice (with no allow_dup), as expected.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It was a mess: most portals were kept on the disk, deleted only when you
entered a new instance (ie, except for Pan, Abyss, Zigs and trowel cards,
never). Associated data was removed at arbitrary times, often prematurely
(like, when getting banished, even if you could come back).
Not handled yet:
* wizmode shenanigans
* travel cache
|
| |
| |
| |
| |
| | |
Having the prompt left over makes you wonder what's going on, made worse by
the fact that some portals ask further questions.
|
|\| |
|