| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
The remaining problem behind this longstanding bug was that the layout
overwrote the colour, height, tiles, etc. of all squares---even ones that
were already placed by the primary vault.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
There have been so many problems with minivaults not having exits that
this is an easier solution than the alternative.
You're still allowed to explicitly place exits, of course, in which case
floating exits go away.
There are a couple of other small tweaks to the level documentation here
as well.
|
|
|
|
| |
This should prevent this from cropping up as often as it does.
|
|
|
|
| |
This fixes all the instances caught by unbrace.
|
|
|
|
|
|
|
|
| |
[It had much the same problems as racial weapons, with only very slightly more
significant effects. Some of the old effects of racial armour could potentially
be rethought and made into a new armour ego. Beogh still gives a (slightly
smaller than before) bonus for armour use, without the orcish requirement.
-MarvinPA]
|
|
|
|
|
|
|
|
|
| |
Instead of using soh_flavour:, just specify the branch immediately after
"serpent of hell" either in full or abbreviation, e.g. "serpent of hell
tartarus" or "serpent of hell coc".
Mostly for use with the monster program, but vault makers needing a
specific Serpent (sprint, anyone?) can do so now.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
See:
https://crawl.develz.org/wiki/doku.php?id=user:hangedman#faceted_classed_demonspawn_for_pan
for explanations.
This includes a move of the demonspawn glyph to '6'; this is intended to
make the glyphs for each of the enemies unique, which wouldn't really be
possible with the overloaded '@' glyph.
A lot of the functionality that varies for base demonspawn is present,
including attack flavours and spininess; the base monsters differ
slightly to reflect this. The nonbase enemies are all currently
identical; further, nothing places anywhere yet.
Differentiation to come in following commits.
|
|
|
|
|
| |
Sometimes, they're there to emphasize a break between two sections of code,
which is good. In a majority of cases, though, they're just inconsistent.
|
| |
|
| |
|
|
|
|
|
| |
Seriously, even preparing this commit gave me a pain in the triangle between
the thumb and index finger's bases and the wrist.
|
|
|
|
|
|
|
|
|
|
|
| |
The first step towards fixing #7383. Defaults to INT_MAX, so things
that do not set it explicitly will be last. If two maps have the
same ORDER:, they will be sorted by description/name as before.
Also change the des cache index format to store ORDER (necessitating a
minor version bump). Rather than leaving ORDER at its default value
when loading an des cache index from earlier versions, we throw out
the entire index so that it can be regenerated.
|
|
|
|
|
|
|
|
| |
Currently the syntax as implemented is
chimera:foo,bar,baz
But this will most likely change.
|
|
|
|
| |
This gets ab2ad4d4 working properly.
|
|
|
|
|
|
|
|
|
| |
The syntax is as follows:
CLEAR: xyz
This will substitute the glyphs x, y and z for ' ' i.e.
the space character, becoming not part of the map.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This places the vault at the centre of the map, and tries to use a
layout that benefits from having a vault at the centre of the map
(indicated by using the tag "central" in the layout).
A few older vaults have been tagged with ORIENT: centre, and a handful
of layouts have been tagged with central; these are vaults and layouts
that have been observed to benefit from the interaction in the past for
the most part.
This may be the first step towards better specifying how primary vaults
interact with layouts (castle-like maps with layout_stronghold or
layout_gridville, for example, as suggested by mumra).
This also fixes a couple of bugs in the layout selector (in particular,
"no_primary_layout" being ignored outside of Pan).
|
|
|
|
|
| |
Especially, don't encode two distinct types in mspec.type, use enums like
draconians do.
|
|\
| |
| |
| | |
Sorry for merge commits, but rerere is pretty limited.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Save subvaults in vault_placement with their parent mapdefs, include subvault
names when generating logfile entries.
Tag monsters with the name of the map that placed them, and write a killermap
field to the logfile if the killer was placed by a map, and the player did not
die in that same map.
|
|\| |
|
| | |
|
| |
| |
| |
| | |
Draconians/etc do this; there's no need to keep remnants of level there.
|
|\|
| |
| |
| |
| | |
Merge commits instead of rerere suck, but not being able to comfortably use
the test rig sucks even more.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
This stops the tons of warnings, while allowing building for both old
and new C++ standards. And if we wanted to use shared_ptr or something,
now we can without being ambiguous.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/
|
|
| |
Also, remove the vault monster tag lev: which has never been used.
|
|
|
|
| |
For way too paranoid and underinclusive values of "simple".
|
| |
|
|
|
|
|
|
|
|
| |
For technical reasons (vault_placement), subvaults use renaming data of the
top-level vault, this might be changed one day; that'd require a bit more
writing but would allow different renames in different subvaults.
TODO: "line of fire blocked by XXX".
|
|
|
|
|
|
|
|
|
| |
The only use of something like this, in Pan unique levels, is done a
different way to reduce text duplication.
I guess the intent of such level messages was to announce the presence of
special rooms like in Nethack, but that would bring confusion for no gain.
And they are already possible via map epilogues.
|
|
|
|
|
|
| |
I can't even fathom how this could ever be useful: it'd add a constant based
on depth to all WEIGHT settings, resulting in vaults being more uniform
deeper on.
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
KMONS, KITEM, and KFEAT are intended to override the normal meaning of
the key glyph. For example, with:
MONS: kobold
KMONS: 1 = orc
the glyph '1' will produce an orc and not a kobold; and with:
KMONS: W = orc
the glyph 'W' will produce an orc on floor, not shallow water.
KMASK works differently: it keeps the underlying meaning of the glyph.
This is accomplished by keyed_mapspec::set_mask() setting the feature
to the original glyph (commit 3ba8bc8). So with:
KMASK: W = no_monster_gen
the glyph 'W' will produce shallow water with the no_monster_gen mask,
and with:
MONS: kobold
KMASK: 1 = no_trap_gen
the glyph '1' will produce a kobold on floor with the no_trap_gen mask.
This is all well and good. However, when both KMONS (or KITEM or KFEAT)
and KMASK are specified, the glyph should be overridden. However, since
set_mask() set the feature explicitly, this does not happen: both the
glyph and the KMONS have their effect. That is:
MONS: kobold
KMONS: 1 = orc
KMASK: 1 = no_item_gen
results in the glyph '1' producing both a kobold and an orc. The
difference in result from the first example is unacceptible.
Furthermore, a multi-glyph key in KMASK was applying the fix-up only for
the first glyph:
KMASK: wW = no_pool_fixup
caused the 'W' glyph to become floor rather than shallow water.
Fix all of this by removing the special-case code from set_mask(), and
instead having _vault_grid() treat a mask-only mapspec the same as no
mapspec, using _vault_grid_glyph() rather than _vault_grid_mapspec().
The mask itself is handled elsewhere, in dgn_register_place().
Fixes 5561.
This reverts commit 3ba8bc84d018da1452880ac897a433ca7752ebb5.
|
|\|
| |
| |
| |
| | |
This includes fixes for 64834896234968 places in master that add new uses of
LEVEL_FOO and so on.
|
| |
| |
| |
| |
| | |
Looks like get_XXX_path and the like in files.cc could use some drastic
simplification, or perhaps even a nuking and rewrite.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
An imperial buttload of places assumes these to be 8 bits, which makes it
impossible to add support for 256 (or more!) colours. This commit tries
to allow expanding it in the future; sadly, it is badly incomplete. At
least, new code can use the new type.
Also, beware of "branded" colours which use bits above 8 for inverse,
underline, etc.
|
| | |
|
| |
| |
| |
| |
| |
| | |
This usually makes little sense, but can be good for absdepth ones
(PLACE: Bedlam:1, !10-), and it removes the need to implement :$ support
for PLACE: in a different way.
|
| |
| |
| |
| |
| |
| | |
This means, a game started when Elf was 5 levels deep will get the end vault
on level 5 even if the game was transferred to a version where Elf has only
3 levels.
|
|\| |
|
| | |
|
| | |
|
|\| |
|
| |
| |
| |
| | |
The actual data isn't loaded or preserved yet.
|
|/ |
|
| |
|
| |
|