| 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!
|
| |
|
| |
|
| |
|
|
|
|
|
| |
For the basic counting field of each item and monster type, find the
minimum, maximum, and sample standard deviation over the iterations.
|
|
|
|
|
| |
Since contaminated chunks are gone, chunk nutrition is the same for
everyone.
|
|
|
|
| |
As part of a wider scheme to make draining temporary.
|
|
|
|
| |
Also clean up some newlines in the output.
|
|
|
|
| |
For the relevant item types, how many were held by a monster.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
"This chunk gives you less nutrition" is not a very interesting effects,
and most of the time the only real effect is that you have to press 'e' a
few more times. If chunks on the whole are too common (which in the
current food environment is very hard to define) monsters in general can
give fewer chunks, or chunks can be less nutritious; no reason to make
some monsters special.
A good deal of code is still around because of the other less-nutrition
case, non-ghoul saprovores eating rotten chunks.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make SET_FIELDS safer by using a do { } while(0) block, which also gives
us a scope, so we don't have to take the name of the intermediate array
variable as a parameter. Rename it to INIT_VEC (it only works on
vectors of strings, but whatever). While we're at it, also make sure
we evaluate the argument only once. Also, use an array of const char *s
instead of strings, make that array static and const, and use the
ARRAYSZ macro.
Then, replace most of the uses of INIT_VEC née SET_FIELDS with a wrapper
macro ITEM_FILEDS that shortens things a bit.
Finally, move the macro definiton outside the function, and reformat.
|
|
|
|
|
| |
Use a fixed decimal point istead of scientific notation, and reduce
precision to 2.
|
|
|
|
|
|
|
|
|
| |
We now consistently use objstat_ as a prefix for non-static functions
and don't use prefixes for static functions and variables. Various
enums, classes, and defines have also been renamed to more clearly
reflect their function.
I also added command-line help documentation for mapstat and objstat
|
|
|
|
|
|
|
| |
Display the correct properties for the first two, and report 0
chunks/nutrition for monsters that don't leave a corpse. Mimics are
now revealed after the level is generated so that the mimic monster is
created, and we don't count the mimic items towards item statistics.
|
|
|
|
|
|
| |
All output in a single file was difficult to view and work with. Each
file uses a common prefix of "objstat_", and the file names are printed
to stdout.
|
|
|
|
|
|
|
|
| |
The -objstat command-line option will generate iterations of the given
levels, compiling stats on every item and monster generated, and
average the results over the iterations. It's only available in debug
builds and uses the same map specification format as -mapstat. The
default number of iterations is 100.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Players have been picking up the Orb and entering a Zig only to
discover that Orb spawns don't generate, thus depriving them of HUGE
GUTS to RIP AND TEAR. Their complaints have been overwhelming, so now
Orb run spawns generate in Pan and all portals. We don't generate the
spawns in the Abyss, since the player can be banished there on the
ascension, whereas entering other places with the Orb is voluntary.
This commit also fixes the monster spawn rate when starting in the
abyss with Lucy, which was being set to the orb run spawn rate instead
of once per five turns as intended, and cleans up and documents some
functions.
|
|
|
|
|
| |
See !lm EightySix fofi crash -log for an example. Now we also check
the terrain change markers for the desired feature.
|
| |
|
|
|
|
|
|
|
| |
A good part of bogosity comes from invalid monsters, so we do want to assert
on them.
This reverts commit b80bb099385e7d0e70b058492140caa7afc4abbc.
|
|
|
|
|
| |
During a level excursion, the player's position isn't correct, so they
might appear to be standing on top of a monster.
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
It trades readability and consistency for an utterly negligible bit of
speed. With the amount of further processing mpr() does, a single sprintf
is nothing.
This reverts commit d9dfa8fc9755fb0a4e8954c7eb94f32fe97b82e0.
|
|
|
|
| |
Scripted, then manually reviewed.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Seriously, even preparing this commit gave me a pain in the triangle between
the thumb and index finger's bases and the wrist.
|
|
|
|
| |
Although the "highlight" consisting of a mere '?' is hard to find.
|
|
|
|
| |
Also, drop the caps.
|
| |
|
|
|
|
|
| |
This doesn't check habitability, because being in deep water is somewhat
more complex.
|
|
|
|
| |
It still fails just the same...
|
| |
|
|
|
|
| |
Too bad, the save I got has it already corrupted.
|
|
|
|
| |
Should probably assert-out immediately, it often leads to crashes.
|
| |
|
| |
|
|
|
|
| |
Oops. I still need to find out what causes disappearing constrictors, though.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
The perl regexp to do so is:
s&ASSERT\(([^\n]+) >= ([^\n]+)\);\s*ASSERT\(\1 < ([^\n]+)\);&ASSERT_RANGE($1, $2, $3);&sg;
|
| |
|
|
|
|
| |
It was 30 for weapons, 25 for armour, which caused spam with Lear's.
|