| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
.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!
|
| |
|
|
|
|
|
|
| |
There's really no reason not to show the line; in other options, having
the default always be the case can be annoying, but if you don't want
to look at the gold/turns display, you can just not.
|
| |
|
|
|
|
|
|
|
|
|
| |
A good deal of functions move to the two new files, mon-poly and
mon-message. Of the others, some go to where they are used, some to
mon-util, and a few are made member methods of monster.
This probably breaks Xcode compilation, and I'm not able to test
the changes I made to MSVC that will (hopefully) keep it working.
|
|
|
|
|
|
|
| |
Touches a lot of files since their #includes have to be edited.
(Pushing now since it shouldn't break anything and keeping it updated
is nasty.)
|
|
|
|
|
|
|
|
|
|
| |
So, if you're running a bot or you're generally annoyed by
ranged/magical animations, you can set this to an appropriately low
value.
This also condenses a lot of code duplication related to arena_delay; a
new function called scaled_delay is used for functions that should be
impacted by this.
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
This commit converts ASSERT(a && b) to ASSERT(a); ASSERT(b);
Assertions of the form !(a && b) are left intact, since there isn't an
obvious readability gain over (!a || !b).
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
It degenerated to a simple loop over menv, hardly worth any syntactic sugar.
I kept it for now, though.
|
|
|
|
|
|
|
|
|
| |
When the last monster is being dismissed, almost surely its side has been
marked as a victor. We can mark it as a tie, but it's a debatable situation
so it doesn't really matter.
One typical scenario is when miscasts are on, and the last monster gets
banished.
|
| |
|
|
|
|
|
|
|
|
| |
Also, get rid of a number (but not all) literal values, replacing them with
defines.
No compensation is given for proportional costs (Zin's wrath, hungry ghost
melee).
|
|
|
|
| |
This requires working around a hack in mgen_data.
|
|
|
|
| |
Also, drop the caps.
|
|
|
|
|
|
|
|
|
|
| |
The name is somewhat problematic, as real tomahawks were fit for melee
(just like hand axes...). It's mostly because a few bailey_axe vaults
want something that resembles an axe, but I'd rather axe or redesign
those vaults than have them block better alternatives.
The balance purpose is to have something between darts (damage 2) and
javelins (damage 10), for use by orcs, orc warriors and merfolk.
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
The score and number of rounds, the "was cancelled" state, the unique
list, and various arena options were not being reset.
|
|
|
|
|
| |
These print the out-of-bounds coordinate as part of the assertion
message.
|
|
|
|
|
|
|
|
|
|
|
| |
mons_is_tentacle() now returns true only for actual tentacles, which
makes mons_is_tentacle_end() redundant.
mons_is_tentacle_or_tentacle_segment() does what mons_is_tentacle() used
to do, and is used properly on both sides of Mislead.
Handling of child tentacles (everything other than eldritch ones) is now
handled more generically, in case more types of them are added.
|
| |
|
|
|
|
|
| |
The only cost is having assignments be a function, as you can't overload
operator[] to have separate bits be lvalues.
|
|
|
|
|
|
|
| |
This commit causes problems with freestanding tentacles: if they're the only
members of a side, the fight ends -- but that's certainly better than a
crash. Such tentacles don't exist except for manual requests, being normally
ever spawned by the spell.
|
|
|
|
| |
(Committing separately, in case something was supposed to serve some purpose.)
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The behaviour should be preserved exactly or almost exactly, only the code
changes from totally, utterly unreadable to merely hard to read.
Actual differences:
* strong OODs in shallow branches would degenerate into picking a monster
randomly from the whole branch, now they pick from the bottom level (or
so-called OOD cap of Elf:7, Tomb:5, D:31 and Vaults:15).
* Zot no longer replaces requests for Zot:5 by Zot:4, and proper hells,
$(HELL):4-7 by $(HELL):3.
* this means hell monster sets need fixing!
* zombie size doesn't affect their spawning
* zombie selection obeys the depth passed
* which makes zombie sets pretty limited -- needs review/redesign?
The new format is:
{ 9, 19, 826, SEMI, MONS_YAK },
which means: yaks can spawn on D:9-19, with _linear_ rarity 826 in the
middle of the range. A "SEMI" distribution means that at the edges,
D:9 and D:19, the effective rarity is half that, 413.
Distributions:
FLAT 100% 100% 100%
SEMI 50% 100% 50%
PEAK 0% 100% 0%
UP 0% 50% 100%
DOWN 100% 50% 0%
That "0%" doesn't mean the monster won't spawn on the top/bottom level
(D:9 and D:19 for yaks), the range is fudged so D:8 receives 0% chance,
D:9 16.6%, linearly up to 100% on D:14.
Yes, this sounds and is complex, but at least the complexity is not strewn
around obscure code anymore, and a number of limitations have been lifted.
ZotDef still uses the old code via an emulation layer.
|
| |
| |
| |
| |
| | |
Probably would be good to handle skeletons/simulacra/spectrals here as well,
instead of relying on zombies.
|
| |\ |
|
| |\ \
| | | |
| | | |
| | | |
| | | | |
Merge commits instead of rerere suck, but not being able to comfortably use
the test rig sucks even more.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Also, get rid of one of three copies of '8'/'9' logic.
Also, fix the depth of place: not being heeded for some purposes.
Technically, there is one actual change: shallow items in Ziggurats had
a fixed level of 27, they now use 27 + depth in Zig. Not noticeable as
most nearby items use level 351 anyway.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
We'd want them to, but that code is getting overhauled anyway, so let's not
cloud things.
|
| |_|/
|/| |
| | |
| | |
| | | |
They're static strings, there's no point in having functions just to malloc
and pass them around.
|
| |/
|/|
| |
| |
| |
| |
| | |
They have I<->ı and İ<->i.
Fortunately, people are quite unlikely to type capital letters in response
to prompts, perhaps save for the stat gain one.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
that call it.
To make it consistent with the functions called by it.
|
|
|
|
|
|
|
|
|
| |
These accumulate but never get removed; no wonder compilation times keep
rising.
The includes.sh script has lots of false negatives (and positives...), and
can't check .h files which cause the biggest slowdown, it'd be nice to run
multidelta on those somehow.
|
|\ |
|
| |
| |
| |
| |
| | |
This also reveals how bad the beam blaming code is, need to rewrite that soon
-- mostly because of problems with reflection.
|