| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
The Swamp now gets a border of trees and uses trees instead of walls. Swamp:5 vaults may need tweaking to fit in better.
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| |
| | |
Newly placed monsters during the mislead status are also given a
mislead_as monster type.
|
|\| |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Provides wrappers for non-player Toxic Radiance and Ozocubu's
Refrigeration. These are basically just an adjustment of kill categories
and messages to allow them to be used as background effects in WizLabs
(Ozocubu's and Olgreb's).
Hopefully a wrapper for monster (and possibly player)-cast bolt
structures can also be included, which could then be accessed with the
(planned) Lua traps functionality.
|
|/ |
|
|
|
|
|
|
|
|
| |
Vaults can now include other vaults as a part of their definition. These
subvaults are currently included by tag only and replace glyphs in their
parent vault. See documentation for more details.
Vault:8 has been modified to use subvaults.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Provides wrappers for all of the feat_is_XXX functions from terrain.cc,
as well as a few other functions. Also provides a macro which can wrap a
function to take:
* a set of co-ordinates (parsed with grd(coord_def(x, y)))
* a string (parsed with dungeon_feature_by_name)
* an integer (cast into dungeon_feature_type, can be fetched from
dgn.grid(x, y))
All of the feat library functions can be used in this manner. For
example:
* feat.is_wall(x, y)
* feat.is_wall(dgn.grid(x, y))
* feat.is_wall(7)
* feat.is_wall("rock_wall")
|
| |
|
|
|
|
|
| |
areas.cc is meant to collect all area effects like sanctuary,
silence, halo, pending future unification.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
I'm pretty sure I've managed to replace every instance of a reference to
these files, so I hopefully haven't missed anything.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
monster_iterator allows iterating over live monsters in
env.mgrid, possibly subject to some location/visibility
restrictions.
Possible restrictions:
- within some radius (circle_def::contains(mon->pos())
- position inside some LOS (los_def::see_cell(mon->pos())
- visible to some actor (actor::can_see(mon))
Sample use:
for (int i = 0; i < MAX_MONSTERS; ++i)
{
monsters* const monster = &menv[i];
if (!monster->alive())
continue;
// ...
// becomes
for (monster_iterator mi; mi; ++mi)
{
// ..., replacing monster-> by mi->
// and monster by *mi
If you were checking for mons_near(monster), use
monster_iterator mi(&you.get_los());
if you were checking for you.can_see(monster), use
monster_iterator mi(&you);
if you were checking for
(monster->pos()-you.pos()).abs() <= r*r+1, use
monster_iterator mi(circle_def(you.pos(), r, C_ROUND)).
This is not as general as one might hope, but it should
allow reducing the amount of code that knows how monsters
are stored.
|
| |
|
| |
|
|
|
|
| |
Also collect actor/player LOS code in actor-los.cc.
|
|
|
|
|
|
|
|
| |
map_cell no longer has the field "properties", which has been
replaced by the unsigned long array env.pgrid.
env.map has been renamed to env.map_knowledge. It should really
be moved into player.
|
|
|
|
|
| |
Also convert the TSO halo to use this. actor::haloed() is still
specific to the player TSO halo.
|
|
|
|
|
|
| |
circle_def unifies the shapes that a radius_iterator can iterate
over. It's meant to replace bounds_func in losparam.h and eventually
provide a base for radius_iterator.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
There were several places that had copies of the same code, checking
whether mesmerisation blocked movement to a given target.
The various mesmerisation functions have become methods of player
and were moved into behold.cc.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
env.show is now a class show_def that stores tagged
unions of type show_type. For the moment, there's also
env.show_los for use in LOS determination, but that
should become an array of boolean at some point.
This breaks save compatibility.
Tiles and console version build and appear to work
fine, but this kind of change is likely to have
some side-effects.
|
| |
|
|
|
|
|
|
|
| |
This lets regular vaults use the same Lua functions that layout vaults
do. Convert functions in l_dgnbld that acted on grd. Update layout
vaults to use these new functions. Also, remove l_dgn_bf, as all of
its functionality is now in l_dgnbld.
|
| |
|
|
|
|
|
| |
Its point is to allow intersecting rays with grid lines and
advancing rays from one cell to the next.
|
|
|
|
|
|
|
| |
A lot of monstuff.cc was moved into mon-abil.cc (monster abilities),
mon-act.cc (the main monster loop), mon-behv.cc (monster behaviour) and
mon-cast.cc (monster spells). mstuff2.cc was completely merged into
other files.
|
|
|
|
|
| |
First step in splitting up mon-util.cc: move monsters class methods out
into monster.cc
|
|
|
|
| |
New: colour.cc, coord.cc, coordit.cc, random.cc, rng.cc.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
I plan to use monster_info to get monster data out to
the player safely via Lua.
|
| |
|
| |
|