make a distinction between rock and unexplored area
This adds a pair of new glyphs: GLYPH_UNEXPLORED and GLYPH_NOTHING GLYPH_UNEXPLORED is meant to be the glyph for areas of the map that haven't been explored yet. GLYPH_NOTHING is a glyph that represents that which cannot be seen, for instance the dark part of a room when the dark_room option is not set. Since the symbol for stone can now be overridden to a players choice, it no longer made sense using S_stone for the dark areas of the room with dark_room off. This allows the same intended result even if S_stone symbol is mapped to something visible. GLYPH_UNEXPLORED is what areas of the map get initialized to now instead of STONE. This adds a pair of new symbols: S_unexplored and S_nothing. S_nothing is meant to be left as an unseen character (space) in order to achieve the intended effect on the display. S_unexplored is the symbol that is mapped to GLYPH_UNEXPLORED, and is a distinct symbol from S_stone, even if they are set to the same character. They don't have to be set to the same character. Hopefully there are minimal bugs, but it is a deviation from a fairly long-standing approach so there could be some unintended glitches that will need repair.
This commit is contained in:
@@ -207,6 +207,24 @@ int set, entry;
|
||||
}
|
||||
tilenum += WARNCOUNT;
|
||||
|
||||
i = entry - tilenum;
|
||||
if (i < 1) {
|
||||
if (set == OTH_GLYPH) {
|
||||
Sprintf(buf, "unexplored");
|
||||
return buf;
|
||||
}
|
||||
}
|
||||
tilenum += 1;
|
||||
|
||||
i = entry - tilenum;
|
||||
if (i < 1) {
|
||||
if (set == OTH_GLYPH) {
|
||||
Sprintf(buf, "nothing");
|
||||
return buf;
|
||||
}
|
||||
}
|
||||
tilenum += 1;
|
||||
|
||||
for (i = 0; i < SIZE(substitutes); i++) {
|
||||
j = entry - tilenum;
|
||||
if (j <= substitutes[i].last_glyph - substitutes[i].first_glyph) {
|
||||
@@ -361,6 +379,16 @@ init_tilemap()
|
||||
tilenum++;
|
||||
}
|
||||
|
||||
for (i = 0; i < 1; i++) {
|
||||
tilemap[GLYPH_UNEXPLORED_OFF + i] = tilenum;
|
||||
tilenum++;
|
||||
}
|
||||
|
||||
for (i = 0; i < 1; i++) {
|
||||
tilemap[GLYPH_NOTHING + i] = tilenum;
|
||||
tilenum++;
|
||||
}
|
||||
|
||||
#ifndef STATUES_LOOK_LIKE_MONSTERS
|
||||
/* statue patch: statues still use the same glyph as in vanilla */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user