Add colored branch stairs
Different color for stairs that go to another dungeon branch.
Adds four new glyphs, S_br{up,dn}{stair,ladder}, which use the
same character as normal stairs/ladders, but yellow color.
In tiles, the up/down arrow is yellow-green instead of while-blue.
This feature has been around a lot and is in several different
variants, but this is implemented from scratch so tiles work too.
This commit is contained in:
@@ -5274,6 +5274,10 @@ b S_blob (blob)
|
||||
( S_boomright (boomerang open right)
|
||||
\` S_boulder (boulder)
|
||||
\- S_brcorn (bottom right corner)
|
||||
> S_brdnladder (branch ladder down)
|
||||
> S_brdnstair (branch staircase down)
|
||||
< S_brupladder (branch ladder up)
|
||||
< S_brupstair (branch staircase up)
|
||||
C S_centaur (centaur)
|
||||
\&_ S_chain (iron chain)
|
||||
# S_cloud (cloud)
|
||||
|
||||
@@ -5775,6 +5775,10 @@ Default & Symbol Name & Description\\
|
||||
\verb@(@ & S\verb+_+boomright & (boomerang open right)\\
|
||||
\verb@`@ & S\verb+_+boulder & (boulder)\\
|
||||
\verb@-@ & S\verb+_+brcorn & (bottom right corner)\\
|
||||
\verb@>@ & S\verb+_+brdnladder & (branch ladder down)\\
|
||||
\verb@>@ & S\verb+_+brdnstair & (branch staircase down)\\
|
||||
\verb@<@ & S\verb+_+brupladder & (branch ladder up)\\
|
||||
\verb@<@ & S\verb+_+brupstair & (branch staircase up)\\
|
||||
\verb@C@ & S\verb+_+centaur & (centaur)\\
|
||||
\verb@_@ & S\verb+_+chain & (iron chain)\\
|
||||
\# & S\verb+_+cloud & (cloud)\\
|
||||
|
||||
@@ -1092,6 +1092,7 @@ spiders will occasionally spin webs when moving around
|
||||
drinking a burning potion of oil will cure being turned into slime
|
||||
new bigroom variant, a boulder maze
|
||||
vomiting on an altar provokes the deities wrath
|
||||
branch stairs have a different glyph, show up in yellow color in tty
|
||||
|
||||
|
||||
Platform- and/or Interface-Specific New Features
|
||||
|
||||
144
include/rm.h
144
include/rm.h
@@ -142,89 +142,93 @@ enum screen_symbols {
|
||||
S_dnstair = 24,
|
||||
S_upladder = 25,
|
||||
S_dnladder = 26,
|
||||
S_altar = 27,
|
||||
S_grave = 28,
|
||||
S_throne = 29,
|
||||
S_sink = 30,
|
||||
S_fountain = 31,
|
||||
S_pool = 32,
|
||||
S_ice = 33,
|
||||
S_lava = 34,
|
||||
S_vodbridge = 35,
|
||||
S_hodbridge = 36,
|
||||
S_vcdbridge = 37, /* closed drawbridge, vertical wall */
|
||||
S_hcdbridge = 38, /* closed drawbridge, horizontal wall */
|
||||
S_air = 39,
|
||||
S_cloud = 40,
|
||||
S_water = 41,
|
||||
S_brupstair = 27,
|
||||
S_brdnstair = 28,
|
||||
S_brupladder= 29,
|
||||
S_brdnladder= 30,
|
||||
S_altar = 31,
|
||||
S_grave = 32,
|
||||
S_throne = 33,
|
||||
S_sink = 34,
|
||||
S_fountain = 35,
|
||||
S_pool = 36,
|
||||
S_ice = 37,
|
||||
S_lava = 38,
|
||||
S_vodbridge = 39,
|
||||
S_hodbridge = 40,
|
||||
S_vcdbridge = 41, /* closed drawbridge, vertical wall */
|
||||
S_hcdbridge = 42, /* closed drawbridge, horizontal wall */
|
||||
S_air = 43,
|
||||
S_cloud = 44,
|
||||
S_water = 45,
|
||||
|
||||
/* end dungeon characters, begin traps */
|
||||
|
||||
S_arrow_trap = 42,
|
||||
S_dart_trap = 43,
|
||||
S_falling_rock_trap = 44,
|
||||
S_squeaky_board = 45,
|
||||
S_bear_trap = 46,
|
||||
S_land_mine = 47,
|
||||
S_rolling_boulder_trap = 48,
|
||||
S_sleeping_gas_trap = 49,
|
||||
S_rust_trap = 50,
|
||||
S_fire_trap = 51,
|
||||
S_pit = 52,
|
||||
S_spiked_pit = 53,
|
||||
S_hole = 54,
|
||||
S_trap_door = 55,
|
||||
S_teleportation_trap = 56,
|
||||
S_level_teleporter = 57,
|
||||
S_magic_portal = 58,
|
||||
S_web = 59,
|
||||
S_statue_trap = 60,
|
||||
S_magic_trap = 61,
|
||||
S_anti_magic_trap = 62,
|
||||
S_polymorph_trap = 63,
|
||||
S_vibrating_square = 64, /* for display rather than any trap effect */
|
||||
S_arrow_trap = 46,
|
||||
S_dart_trap = 47,
|
||||
S_falling_rock_trap = 48,
|
||||
S_squeaky_board = 49,
|
||||
S_bear_trap = 50,
|
||||
S_land_mine = 51,
|
||||
S_rolling_boulder_trap = 52,
|
||||
S_sleeping_gas_trap = 53,
|
||||
S_rust_trap = 54,
|
||||
S_fire_trap = 55,
|
||||
S_pit = 56,
|
||||
S_spiked_pit = 57,
|
||||
S_hole = 58,
|
||||
S_trap_door = 59,
|
||||
S_teleportation_trap = 60,
|
||||
S_level_teleporter = 61,
|
||||
S_magic_portal = 62,
|
||||
S_web = 63,
|
||||
S_statue_trap = 64,
|
||||
S_magic_trap = 65,
|
||||
S_anti_magic_trap = 66,
|
||||
S_polymorph_trap = 67,
|
||||
S_vibrating_square = 68, /* for display rather than any trap effect */
|
||||
|
||||
/* end traps, begin special effects */
|
||||
|
||||
S_vbeam = 65, /* The 4 zap beam symbols. Do NOT separate. */
|
||||
S_hbeam = 66, /* To change order or add, see function */
|
||||
S_lslant = 67, /* zapdir_to_glyph() in display.c. */
|
||||
S_rslant = 68,
|
||||
S_digbeam = 69, /* dig beam symbol */
|
||||
S_flashbeam = 70, /* camera flash symbol */
|
||||
S_boomleft = 71, /* thrown boomerang, open left, e.g ')' */
|
||||
S_boomright = 72, /* thrown boomerang, open right, e.g. '(' */
|
||||
S_ss1 = 73, /* 4 magic shield ("resistance sparkle") glyphs */
|
||||
S_ss2 = 74,
|
||||
S_ss3 = 75,
|
||||
S_ss4 = 76,
|
||||
S_poisoncloud = 77,
|
||||
S_goodpos = 78, /* valid position for targeting via getpos() */
|
||||
S_vbeam = 69, /* The 4 zap beam symbols. Do NOT separate. */
|
||||
S_hbeam = 70, /* To change order or add, see function */
|
||||
S_lslant = 71, /* zapdir_to_glyph() in display.c. */
|
||||
S_rslant = 72,
|
||||
S_digbeam = 73, /* dig beam symbol */
|
||||
S_flashbeam = 74, /* camera flash symbol */
|
||||
S_boomleft = 75, /* thrown boomerang, open left, e.g ')' */
|
||||
S_boomright = 76, /* thrown boomerang, open right, e.g. '(' */
|
||||
S_ss1 = 77, /* 4 magic shield ("resistance sparkle") glyphs */
|
||||
S_ss2 = 78,
|
||||
S_ss3 = 79,
|
||||
S_ss4 = 80,
|
||||
S_poisoncloud = 81,
|
||||
S_goodpos = 82, /* valid position for targeting via getpos() */
|
||||
|
||||
/* The 8 swallow symbols. Do NOT separate. To change order or add, */
|
||||
/* see the function swallow_to_glyph() in display.c. */
|
||||
S_sw_tl = 79, /* swallow top left [1] */
|
||||
S_sw_tc = 80, /* swallow top center [2] Order: */
|
||||
S_sw_tr = 81, /* swallow top right [3] */
|
||||
S_sw_ml = 82, /* swallow middle left [4] 1 2 3 */
|
||||
S_sw_mr = 83, /* swallow middle right [6] 4 5 6 */
|
||||
S_sw_bl = 84, /* swallow bottom left [7] 7 8 9 */
|
||||
S_sw_bc = 85, /* swallow bottom center [8] */
|
||||
S_sw_br = 86, /* swallow bottom right [9] */
|
||||
S_sw_tl = 83, /* swallow top left [1] */
|
||||
S_sw_tc = 84, /* swallow top center [2] Order: */
|
||||
S_sw_tr = 85, /* swallow top right [3] */
|
||||
S_sw_ml = 86, /* swallow middle left [4] 1 2 3 */
|
||||
S_sw_mr = 87, /* swallow middle right [6] 4 5 6 */
|
||||
S_sw_bl = 88, /* swallow bottom left [7] 7 8 9 */
|
||||
S_sw_bc = 89, /* swallow bottom center [8] */
|
||||
S_sw_br = 90, /* swallow bottom right [9] */
|
||||
|
||||
S_explode1 = 87, /* explosion top left */
|
||||
S_explode2 = 88, /* explosion top center */
|
||||
S_explode3 = 89, /* explosion top right Ex. */
|
||||
S_explode4 = 90, /* explosion middle left */
|
||||
S_explode5 = 91, /* explosion middle center /-\ */
|
||||
S_explode6 = 92, /* explosion middle right |@| */
|
||||
S_explode7 = 93, /* explosion bottom left \-/ */
|
||||
S_explode8 = 94, /* explosion bottom center */
|
||||
S_explode9 = 95, /* explosion bottom right */
|
||||
S_explode1 = 91, /* explosion top left */
|
||||
S_explode2 = 92, /* explosion top center */
|
||||
S_explode3 = 93, /* explosion top right Ex. */
|
||||
S_explode4 = 94, /* explosion middle left */
|
||||
S_explode5 = 95, /* explosion middle center /-\ */
|
||||
S_explode6 = 96, /* explosion middle right |@| */
|
||||
S_explode7 = 97, /* explosion bottom left \-/ */
|
||||
S_explode8 = 98, /* explosion bottom center */
|
||||
S_explode9 = 99, /* explosion bottom right */
|
||||
|
||||
/* end effects */
|
||||
|
||||
MAXPCHARS = 96 /* maximum number of mapped characters */
|
||||
MAXPCHARS = 100 /* maximum number of mapped characters */
|
||||
};
|
||||
|
||||
#define MAXDCHARS (S_water - S_stone + 1) /* mapped dungeon characters */
|
||||
|
||||
@@ -1806,6 +1806,7 @@ back_to_glyph(xchar x, xchar y)
|
||||
{
|
||||
int idx;
|
||||
struct rm *ptr = &(levl[x][y]);
|
||||
struct stairway *sway;
|
||||
|
||||
switch (ptr->typ) {
|
||||
case SCORR:
|
||||
@@ -1854,10 +1855,18 @@ back_to_glyph(xchar x, xchar y)
|
||||
idx = S_pool;
|
||||
break;
|
||||
case STAIRS:
|
||||
idx = (ptr->ladder & LA_DOWN) ? S_dnstair : S_upstair;
|
||||
sway = stairway_at(x, y);
|
||||
if (sway && (sway->tolev.dnum != u.uz.dnum))
|
||||
idx = (ptr->ladder & LA_DOWN) ? S_brdnstair : S_brupstair;
|
||||
else
|
||||
idx = (ptr->ladder & LA_DOWN) ? S_dnstair : S_upstair;
|
||||
break;
|
||||
case LADDER:
|
||||
idx = (ptr->ladder & LA_DOWN) ? S_dnladder : S_upladder;
|
||||
sway = stairway_at(x, y);
|
||||
if (sway && (sway->tolev.dnum != u.uz.dnum))
|
||||
idx = (ptr->ladder & LA_DOWN) ? S_brdnladder : S_brupladder;
|
||||
else
|
||||
idx = (ptr->ladder & LA_DOWN) ? S_dnladder : S_upladder;
|
||||
break;
|
||||
case FOUNTAIN:
|
||||
idx = S_fountain;
|
||||
|
||||
@@ -157,6 +157,10 @@ const struct symdef defsyms[MAXPCHARS] = {
|
||||
{ '>', "staircase down", C(CLR_GRAY) }, /* dnstair */
|
||||
{ '<', "ladder up", C(CLR_BROWN) }, /* upladder */
|
||||
{ '>', "ladder down", C(CLR_BROWN) }, /* dnladder */
|
||||
{ '<', "branch staircase up", C(CLR_YELLOW) }, /* brupstair */
|
||||
{ '>', "branch staircase down", C(CLR_YELLOW) }, /* brdnstair */
|
||||
{ '<', "branch ladder up", C(CLR_YELLOW) }, /* brupladder */
|
||||
{ '>', "branch ladder down", C(CLR_YELLOW) }, /* brdnladder */
|
||||
{ '_', "altar", C(CLR_GRAY) }, /* altar */
|
||||
{ '|', "grave", C(CLR_WHITE) }, /* grave */
|
||||
{ '\\', "opulent throne", C(HI_GOLD) }, /* throne */
|
||||
|
||||
@@ -383,6 +383,10 @@ const struct symparse loadsyms[] = {
|
||||
{ SYM_PCHAR, S_dnstair, "S_dnstair" },
|
||||
{ SYM_PCHAR, S_upladder, "S_upladder" },
|
||||
{ SYM_PCHAR, S_dnladder, "S_dnladder" },
|
||||
{ SYM_PCHAR, S_brupstair, "S_brupstair" },
|
||||
{ SYM_PCHAR, S_brdnstair, "S_brdnstair" },
|
||||
{ SYM_PCHAR, S_brupladder, "S_brupladder" },
|
||||
{ SYM_PCHAR, S_brdnladder, "S_brdnladder" },
|
||||
{ SYM_PCHAR, S_altar, "S_altar" },
|
||||
{ SYM_PCHAR, S_grave, "S_grave" },
|
||||
{ SYM_PCHAR, S_throne, "S_throne" },
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user