| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
This fixes all the instances caught by unbrace.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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).
|
|
|
|
|
| |
These weren't caught by util/unbrace because they weren't at the
beginning of the line.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
As part of the elemental evoker revamp, the stone of earth elementals is
renamed stone of tremors, and given a new effect on an xp-based recharge.
When evoked and pressed against an adjacent rock wall, a shockwave will
travel along the surface of this wall, curving as the rock does, and damaging
creatures standing next to it with falling rubble and (rarely) shafting them.
Some walls along the shockwave's path will also be destroyed and from these
up to 3 earth elementals will be summoned (dependent on evocations).
|
|
|
|
|
|
|
| |
Convert conjunctive assertions into separate assertions. This ought to be correctness preserving. I ran the stress tests and didn't notice anything unusual. While I have confidence in it, if you are the slightest bit suspicious of this, please roll it back.
Found instances with `ASSERT(\([^(|]*\) && \([^)|]*\))`
Manually inspected each instance.
|
|
|
|
|
| |
Via externs.h -> bitary.h, it was effectively included by everything anyway,
and this way simplifies include chains.
|
|
|
|
| |
This ensures that burning bushes and oklob saplings are handled consistently.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
For way too paranoid and underinclusive values of "simple".
|
| |
|
|
|
|
|
|
|
| |
Having both it and LOS_RADIUS is misleading, especially as they're
arbitrarily used. This distinction doesn't make sense anyway, as any
LOS changes need to be done at runtime, only the max matters during
compilation.
|
| |
|
|
|
|
| |
Could probably just make it !is_player() instead, too.
|
|
|
|
|
| |
Too bad, .bss is full of improperly initialized objects that should either
be shared or go away.
|
|
|
|
|
| |
All or almost all of .data segment that is not referenced externally should
be done.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Its name suggests it's about line of effect, while in fact it's both effect
and sight. Thus, I've split its uses into LOS_SOLID and LOS_SOLID_SEE -- the
former is what LOS_SOLID was usually understood to mean, the latter is what it
actually was (being targettable with an arrow/beam).
The difference is: LOS_SOLID_SEE obeys clouds.
The name of the latter is abysmal -- if you have a better idea, please sed.
|
| |
|
| |
|
| |
|
|
|
|
| |
It's now possible to create any kind of feature mimic using &M.
|
|
|
|
|
|
|
|
|
|
|
|
| |
There were two functions: one used no cache and ignored clouds, another one
has a cache and accepts different LOS models.
I added a new cached model: LOS_SOLID (using opc_solid). All but one uses
of opc_fullyopaque (two-argument cell_see_cell()) were bugs to me, so they
were moved to a different model.
This makes Refrigeration not work through glass walls anymore (it still
works though clouds).
|
|
|
|
|
| |
Most are annoying STL types (which can still cause crashes on exotic
platforms), but there's a number of actual bugs as well.
|
|
|
|
|
|
|
|
|
|
|
| |
Pre-increment looks worse than post-increment, but on a C++ object the
latter forces an allocation plus copy that is completely unnecessary but the
compiler doesn't know that yet.
Note that I did change some of our iterators to return void rather than the old
or new value for exactly this performance reason before, breaking the expected
behaviour. If that's an issue, tell me, we can use preincrements instead which
have very little penalty.
|
|
|
|
|
| |
On some STL structures size() is slow. I did not bother limitting sed,
so innocent bystanders got pulled into the machine, but there's no loss.
|
| |
|
|
|
|
|
|
|
|
|
| |
There's no cost for costly functions like name() anymore -- but remember,
if a dprf() had a side effect before, it did happen, but now it won't outside
of debug builds.
I skipped anything even remotely related to combat code, to avoid making
the combat overhaul merge any worse.
|
|
|
|
|
|
|
| |
"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.
|
| |
|
| |
|
|
|
|
|
|
| |
I did review it manually to find places where they made sense (like some
tables), but for a massive sed job like this there might be places that
I missed.
|
|
|
|
|
|
| |
A default: case was missing for object types that have no attached commands.
Clang complains loudly about unsigned>=0 (always true), and there's no obvious
way to disable this in asserts but not elsewhere.
|
|
|
|
|
|
|
| |
Smite-targetted spells shouldn't probably work through walls, they are not
blocked yet, though.
I dread the thousands places that assume vision to be reciprocal...
|
| |
|
| |
|
| |
|
|
|
|
|
| |
It would be nice to expose the whole viewed area, but
LOS code assumes circular bounds in a few places.
|
| |
|
| |
|