| 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!
|
| |
|
|
|
|
|
|
| |
...by moving bloodspatter functions into their own file.
Death to misc.cc! Long live the new file hierarchy!
|
|
|
|
| |
Including the default_friendly_pickup option.
|
|
|
|
|
| |
and use it to speed up counting runes in a few places.
Vaults and Zot entrances report activated runes by name, so weren't updated.
|
| |
|
|
|
|
| |
Or when Xom reverts your banishment.
|
|
|
|
| |
This was never intentional, by all indications.
|
| |
|
| |
|
|
|
|
|
| |
I left them only where the contents is not indented, like in a namespace
or a template.
|
|
|
|
|
|
|
|
|
| |
The code checked this before the level stack, thus if you returned from Pan,
a trovel or (in transferred saves) D, you got placed in Depths instead.
For extra fun, try this in a pre-Depths save! :รพ
We could just check the stack first, but the current code allows for a
regular subbranch of the Abyss, etc.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This way you need a good deal less scumming if you want to try multiple
Ziggurats -- completely or not. The number of runes required comes from
historic data of people who left Ziggurats at particular urune count:
0: 7
1: 7
2: 19
3: 117 (earliest completion)
4: 175
5: 224
6: 164
7: 134
8: 112
9: 162
10: 177
11: 164
12: 106
13: 56
14: 100
15: 329
|
| |
|
|
|
|
|
| |
Overloading made it impossible to redefine them, assign colours, made it
hard to do stuff on C++ side, and stank of elderberries.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Copying the whole map_knowledge every turn was really costly. We don't care
about any fields of the map other than the "seen" flag, too. Thus, we can
move it into a bitmap and update only changes rather than everything.
This means we need to update the entire bitmap once exploration starts, but
that's a small fraction of the cost:
qw profiles:
before:
9.55% check_for_interesting_features()
0.18% start_explore(bool)
after:
0.29% start_explore(bool)
0.10% check_for_interesting_features()
|
| |
|
|
|
|
| |
A whole file for four lines of code.
|
|
|
|
|
| |
The translation project is stalled, but this makes all of such static strings
trivially gatherable without any extra work.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
I can't quite fathom the reason to not moving it to /dev/null instead, but
here you go.
|
|
|
|
|
| |
This affects the distance they fall; known shafts fall less floors than
unknown ones.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
If we don't per-game brentry data, make parent_branch return what would
be the parent, rather than NUM_BRANCHES. Among other things, this
avoids leaking random branch choices in the ctrl-o screen (branches not
in the current game were never listed).
Also revert two piecemeal fixes that are now handled by the more general
code:
This reverts commit 259fcac8a0cba227ee4dc49cf5a7d5d2718cdc9c.
This reverts commit 81f5e101725dc1c0d5e96fc068a7b2b8d72b12ba.
|
|
|
|
| |
Minor at this point, and may become irrelevant in the future.
|
|
|
|
|
|
|
|
|
|
|
|
| |
D is now 16 levels (the unsealed part was 14 levels previously), and the
Depths are six levels. Vaults is enterable from Depths:2-5; Abyss, Hell,
and Pan portals are available for the entire length of the branch.
Right now the monster set is identical to Vaults except for the absence
of Vaults-specific humans. D's monster set has also been truncated,
mainly on the out-of-depth front. It's my intent that this serve as a
starting point for figuring out what monsters we want to split between
the two branches.
|
| |
|
|
|
|
| |
Shafting only 1 floor wasn't being considered a milestone.
|
| |
|
| |
|
|
|
|
|
|
|
| |
This reverts commit 3c177f47aa1bbf47db5dea54bdaa4f770a0220b4.
This reverts commit e1004a1d0131a735b2b9be1c87b1fd27e09bf81f.
This reverts commit 930d8ed00efae890e3899670ae87cfdc07eda236.
This reverts commit 637089748731402da6c33483b30118d2eebdcc73.
|
|
|
|
|
| |
Can't test Android, MSVC or Mac, but a very brief glance at the diff suggests
it's unlikely they're affected.
|
|
|
|
|
| |
Seriously, even preparing this commit gave me a pain in the triangle between
the thumb and index finger's bases and the wrist.
|
|
|
|
|
|
|
| |
This will also prompt for unknown shafts, such as from chaos weapons.
Obviously these shouldn't even be possible, but in the meantime having the
incorrect prompt is better than forcing people past the runelock
accidentally.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
In case you somehow ended up there (for example early portal to Hell).
|
|
|
|
| |
In case a branch entry or similar were to be added to D:14, for example.
|
| |
|
|
|
|
|
| |
You need a rune to go to D:15. Downstairs of D:14 could be recoloured or
replaced by a portal (maybe more consistent with D:27 zot portal).
|
|
|
|
|
| |
It degenerated to a simple loop over menv, hardly worth any syntactic sugar.
I kept it for now, though.
|
|
|
|
|
| |
It still, however, costs 60 aum to carry, and has all of its other
effects.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This should hopefully make games from the same seed proceed the same on all
architectures[1], as I can't think of anything else that behaves differently
based on pointer size, endianness or exact pointer values.
I used a NIH implementation instead of passing a third argument to
random_shuffle, as the interface is so much nicer.
[1]. This will be affected by terminal size (elemental colours are not
resolved outside the screen), tile windows size (random animations),
tiles/non-tiles and possibly others.
Also, I don't think we use STL hashes anywhere, but if we'd do, the STL
implementation will matter. Please don't make this stop you: this commit
is only to make test cases from my stress tests portable which is a small
benefit, perhaps even smaller than the nicer call interface.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
First, the down_stairs function called handle_items_on_shaft,
but it called it after changing you.depth.
This meant it shafted the items you LANDED on, rather than the items you
were standing on at the time of shafting.
Second, the stash and map knowledge weren't being cleared despite the
items being obviously moved.
Third, place_transiting_items wasn't handling stacks properly.
If you shafted a stack of ammo, only 1 ammo would exist afterwards.
This also fixes also applies to any other usage of place_transiting_items.
|
|
|
|
|
|
|
| |
A bug in down_stairs was preventing players from getting shafted when
not standing over a shaft trap (such as from chaos brand). This function had an
option for players to get shafted this way, but it wasn't being properly
checked in the function body.
|
|
|
|
|
| |
Pull 'you.religion [!=]= FOO' checks into a function: you_worship(FOO).
This change is part of a large plan to clean up religion.
|