sym-changes - add engravings to the map
1. Add "engraved room floor" pchar sym (S_engroom). The symbol that displays at the engraved part of a room (not a corridor though). The default symbol is '`' which is currently never shown if people have defined the boulder symbol to '0' and statues are displayed as monster symbols. It is bright blue. Add some stylized variations of the S_engroom symset to some of the symsets. 2. Add "engraved corridor" pchar sym (S_engrcorr). The symbol that displays at the engraved part of a corridor. The default symbol is '#', and it matches the symbol for corridor from for whatever the current symset uses. It is bright blue to match the color of the S_engroom symbol. Using the normal corridor symbol for display preserves the lines of the corridor so is not as visually-disruptive as a smaller symbol would be. Explicit entries that match the S_corr symbol have been added to the symset file. Magic mapping and clairvoyance impacts yet to be determined. The Guidebook updates will come later.
This commit is contained in:
@@ -60,7 +60,7 @@
|
||||
*
|
||||
* map_background
|
||||
* map_object
|
||||
* map_trap
|
||||
* map_trap or map_engraving
|
||||
* map_invisible
|
||||
* unmap_object
|
||||
*
|
||||
@@ -304,6 +304,23 @@ map_trap(register struct trap *trap, register int show)
|
||||
show_glyph(x, y, glyph);
|
||||
}
|
||||
|
||||
/*
|
||||
* map_engraving()
|
||||
*
|
||||
* Map the engraving and print it out if directed.
|
||||
*/
|
||||
void
|
||||
map_engraving(struct engr *ep, register int show)
|
||||
{
|
||||
coordxy x = ep->engr_x, y = ep->engr_y;
|
||||
int glyph = engraving_to_glyph(ep);
|
||||
|
||||
if (gl.level.flags.hero_memory)
|
||||
levl[x][y].glyph = glyph;
|
||||
if (show)
|
||||
show_glyph(x, y, glyph);
|
||||
}
|
||||
|
||||
/*
|
||||
* map_object()
|
||||
*
|
||||
@@ -392,12 +409,15 @@ void
|
||||
unmap_object(register coordxy x, register coordxy y)
|
||||
{
|
||||
register struct trap *trap;
|
||||
struct engr *ep;
|
||||
|
||||
if (!gl.level.flags.hero_memory)
|
||||
return;
|
||||
|
||||
if ((trap = t_at(x, y)) != 0 && trap->tseen && !covers_traps(x, y)) {
|
||||
map_trap(trap, 0);
|
||||
} else if ((ep = engr_at(x, y)) != 0 && !covers_traps(x, y)) {
|
||||
map_engraving(ep, 0);
|
||||
} else if (levl[x][y].seenv) {
|
||||
struct rm *lev = &levl[x][y];
|
||||
|
||||
@@ -424,11 +444,14 @@ unmap_object(register coordxy x, register coordxy y)
|
||||
{ \
|
||||
register struct obj *obj; \
|
||||
register struct trap *trap; \
|
||||
struct engr *ep; \
|
||||
\
|
||||
if ((obj = vobj_at(x, y)) && !covers_objects(x, y)) \
|
||||
map_object(obj, show); \
|
||||
else if ((trap = t_at(x, y)) && trap->tseen && !covers_traps(x, y)) \
|
||||
map_trap(trap, show); \
|
||||
else if ((ep = engr_at(x, y)) && !covers_traps(x, y)) \
|
||||
map_engraving(ep, show); \
|
||||
else \
|
||||
map_background(x, y, show); \
|
||||
\
|
||||
|
||||
Reference in New Issue
Block a user