1 /* SCCS Id: @(#)mapglyph.c 3.4 2003/01/08 */
2 /* Copyright (c) David Cohrs, 1991 */
3 /* NetHack may be freely redistributed. See license for details. */
6 #if defined(TTY_GRAPHICS)
7 #include "wintty.h" /* for prototype of has_color() only */
10 #define HI_DOMESTIC CLR_WHITE /* monst.c */
12 #include <ctype.h> /* metanite64: for toupper() prototype */
16 CLR_GREEN
, /* noxious */
17 CLR_BROWN
, /* muddy */
19 CLR_MAGENTA
, /* magical */
20 CLR_ORANGE
, /* fiery */
21 CLR_WHITE
, /* frosty */
24 #if !defined(TTY_GRAPHICS)
25 #define has_color(n) TRUE
30 STATIC_DCL
int zap_color(int);
31 STATIC_DCL
int cmap_color(int);
32 STATIC_DCL
int obj_color(int);
33 STATIC_DCL
int mon_color(int);
34 STATIC_DCL
int invis_color(int);
35 STATIC_DCL
int pet_color(int);
36 STATIC_DCL
int warn_color(int);
37 STATIC_DCL
int explode_color(int);
39 /* Yes kerio, I know that my code quality is shit and that you won't touch this file with a 20 foot pole. --Amy */
47 if (!iflags
.use_color
) {
52 if (ColorshiftEffect
|| u
.uprops
[COLORSHIFT_EFFECT
].extrinsic
|| have_colorshiftstone()) color
= colorshifting(color
);
53 if (MiscolorEffect
|| u
.uprops
[MISCOLOR_EFFECT
].extrinsic
|| have_miscolorstone()) color
= miscoloring(color
);
54 if (SpellColorGreen
) color
= CLR_GREEN
;
55 if (uamul
&& uamul
->oartifact
== ART_FLEECY_GREEN
) color
= CLR_GREEN
;
56 if (FemtrapActiveMarlena
&& !rn2(10) ) color
= rn2(2) ? CLR_GREEN
: CLR_BRIGHT_GREEN
;
57 if (BlackNgWalls
|| (uamul
&& uamul
->oartifact
== ART_BLACK_DARKNESS
) || have_blackystone() || u
.uprops
[BLACK_NG_WALLS
].extrinsic
) color
= CLR_BLACK
;
58 if (uarmh
&& uarmh
->oartifact
== ART_BLUE_SCREEN_OF_DEATH
) color
= CLR_BRIGHT_BLUE
;
59 if (everythingfleecy()) color
= rnd(15);
60 if (uarmg
&& uarmg
->oartifact
== ART_JONADAB_S_KEYCODE
&& !rn2(5)) color
= rnd(15);
61 if (uarmc
&& itemhasappearance(uarmc
, APP_FLEECELING_CLOAK
) && !rn2(5) ) color
= rnd(15);
62 if ((OneRainbowEffect
|| u
.uprops
[ONE_RAINBOW_EFFECT
].extrinsic
|| have_onerainbowstone() || (uarm
&& uarm
->oartifact
== ART_YOU_REALLY_HAVE_A_TOTAL_DA
) || autismweaponcheck(ART_TASTE_THE_RAINBOW
)) && (color
== u
.onerainbownumber
) ) color
= rnd(15);
63 if (uamul
&& uamul
->oartifact
== ART_SUPER_GRAPHICS_CARD_BUG
) {
64 if (color
> 0 && color
< 16) {
66 if (color
> 15) color
= 1;
79 if (!iflags
.use_color
) {
83 color
= defsyms
[n
].color
;
84 if (ColorshiftEffect
|| u
.uprops
[COLORSHIFT_EFFECT
].extrinsic
|| have_colorshiftstone()) color
= colorshifting(color
);
85 if (MiscolorEffect
|| u
.uprops
[MISCOLOR_EFFECT
].extrinsic
|| have_miscolorstone()) color
= miscoloring(color
);
86 if (SpellColorGreen
) color
= CLR_GREEN
;
87 if (uamul
&& uamul
->oartifact
== ART_FLEECY_GREEN
) color
= CLR_GREEN
;
88 if (FemtrapActiveMarlena
&& !rn2(10) ) color
= rn2(2) ? CLR_GREEN
: CLR_BRIGHT_GREEN
;
89 if (BlackNgWalls
|| (uamul
&& uamul
->oartifact
== ART_BLACK_DARKNESS
) || have_blackystone() || u
.uprops
[BLACK_NG_WALLS
].extrinsic
) color
= CLR_BLACK
;
90 if (uarmh
&& uarmh
->oartifact
== ART_BLUE_SCREEN_OF_DEATH
) color
= CLR_BRIGHT_BLUE
;
91 if (everythingfleecy()) color
= rnd(15);
92 if (uarmg
&& uarmg
->oartifact
== ART_JONADAB_S_KEYCODE
&& !rn2(5)) color
= rnd(15);
93 if (uarmc
&& itemhasappearance(uarmc
, APP_FLEECELING_CLOAK
) && !rn2(5) ) color
= rnd(15);
94 if ((OneRainbowEffect
|| u
.uprops
[ONE_RAINBOW_EFFECT
].extrinsic
|| have_onerainbowstone() || (uarm
&& uarm
->oartifact
== ART_YOU_REALLY_HAVE_A_TOTAL_DA
) || autismweaponcheck(ART_TASTE_THE_RAINBOW
)) && (color
== u
.onerainbownumber
) ) color
= rnd(15);
95 if (uamul
&& uamul
->oartifact
== ART_SUPER_GRAPHICS_CARD_BUG
) {
96 if (color
> 0 && color
< 16) {
98 if (color
> 15) color
= 1;
112 if (!iflags
.use_color
) {
116 color
= objects
[n
].oc_color
;
118 if (ShadesOfGrey
|| (uarm
&& uarm
->oartifact
== ART_GRAYSCALE_WANDERER
) || autismweaponcheck(ART____SHADES_OF_GRAYSWANDIR
) || (uarm
&& uarm
->oartifact
== ART_GREY_FUCKERY
) || (uamul
&& uamul
->oartifact
== ART_COLORLESS_VARIETY
) || u
.uprops
[SHADES_OF_GREY
].extrinsic
|| have_shadesofgreystone() || autismweaponcheck(ART_VINTAGE_MEMORY
) || isblait
) {
119 switch (objects
[n
].oc_color
) {
123 color
= CLR_BLACK
; break;
127 case CLR_BRIGHT_BLUE
:
128 color
= CLR_GRAY
; break;
131 case CLR_BRIGHT_GREEN
:
132 case CLR_BRIGHT_MAGENTA
:
133 case CLR_BRIGHT_CYAN
:
134 color
= CLR_WHITE
; break;
138 if (ColorshiftEffect
|| u
.uprops
[COLORSHIFT_EFFECT
].extrinsic
|| have_colorshiftstone()) color
= colorshifting(color
);
139 if (MiscolorEffect
|| u
.uprops
[MISCOLOR_EFFECT
].extrinsic
|| have_miscolorstone()) color
= miscoloring(color
);
140 if (SpellColorGreen
) color
= CLR_GREEN
;
141 if (uamul
&& uamul
->oartifact
== ART_FLEECY_GREEN
) color
= CLR_GREEN
;
142 if (FemtrapActiveMarlena
&& !rn2(10) ) color
= rn2(2) ? CLR_GREEN
: CLR_BRIGHT_GREEN
;
143 if (BlackNgWalls
|| (uamul
&& uamul
->oartifact
== ART_BLACK_DARKNESS
) || have_blackystone() || u
.uprops
[BLACK_NG_WALLS
].extrinsic
) color
= CLR_BLACK
;
144 if (uarmh
&& uarmh
->oartifact
== ART_BLUE_SCREEN_OF_DEATH
) color
= CLR_BRIGHT_BLUE
;
145 if (everythingfleecy()) color
= rnd(15);
146 if (uarmg
&& uarmg
->oartifact
== ART_JONADAB_S_KEYCODE
&& !rn2(5)) color
= rnd(15);
147 if (uarmc
&& itemhasappearance(uarmc
, APP_FLEECELING_CLOAK
) && !rn2(5) ) color
= rnd(15);
148 if ((OneRainbowEffect
|| u
.uprops
[ONE_RAINBOW_EFFECT
].extrinsic
|| have_onerainbowstone() || (uarm
&& uarm
->oartifact
== ART_YOU_REALLY_HAVE_A_TOTAL_DA
) || autismweaponcheck(ART_TASTE_THE_RAINBOW
)) && (color
== u
.onerainbownumber
) ) color
= rnd(15);
149 if (uamul
&& uamul
->oartifact
== ART_SUPER_GRAPHICS_CARD_BUG
) {
150 if (color
> 0 && color
< 16) {
152 if (color
> 15) color
= 1;
166 if (!iflags
.use_color
) {
170 boolean greyshades
= FALSE
;
171 if ((ShadesOfGrey
|| (uarm
&& uarm
->oartifact
== ART_GRAYSCALE_WANDERER
) || autismweaponcheck(ART____SHADES_OF_GRAYSWANDIR
) || (uarm
&& uarm
->oartifact
== ART_GREY_FUCKERY
) || u
.uprops
[SHADES_OF_GREY
].extrinsic
|| have_shadesofgreystone() || autismweaponcheck(ART_VINTAGE_MEMORY
) ) && Infravision
) greyshades
= TRUE
;
172 if ((uamul
&& uamul
->oartifact
== ART_COLORLESS_VARIETY
) || isblait
) greyshades
= TRUE
;
174 color
= mons
[n
].mcolor
;
176 if (mons
[n
].mflags4
& M4_MULTIHUED
) color
= rnd(15);
179 switch (mons
[n
].mcolor
) {
183 color
= CLR_BLACK
; break;
187 case CLR_BRIGHT_BLUE
:
188 color
= CLR_GRAY
; break;
191 case CLR_BRIGHT_GREEN
:
192 case CLR_BRIGHT_MAGENTA
:
193 case CLR_BRIGHT_CYAN
:
194 color
= CLR_WHITE
; break;
198 if (ColorshiftEffect
|| u
.uprops
[COLORSHIFT_EFFECT
].extrinsic
|| have_colorshiftstone()) color
= colorshifting(color
);
199 if (MiscolorEffect
|| u
.uprops
[MISCOLOR_EFFECT
].extrinsic
|| have_miscolorstone()) color
= miscoloring(color
);
200 if (SpellColorGreen
) color
= CLR_GREEN
;
201 if (uamul
&& uamul
->oartifact
== ART_FLEECY_GREEN
) color
= CLR_GREEN
;
202 if (FemtrapActiveMarlena
&& !rn2(10) ) color
= rn2(2) ? CLR_GREEN
: CLR_BRIGHT_GREEN
;
203 if (BlackNgWalls
|| (uamul
&& uamul
->oartifact
== ART_BLACK_DARKNESS
) || have_blackystone() || u
.uprops
[BLACK_NG_WALLS
].extrinsic
) color
= CLR_BLACK
;
204 if (uarmc
&& itemhasappearance(uarmc
, APP_COLORFADE_CLOAK
) ) color
= CLR_BLACK
;
205 if (uarmh
&& uarmh
->oartifact
== ART_BLUE_SCREEN_OF_DEATH
) color
= CLR_BRIGHT_BLUE
;
206 if (everythingfleecy()) color
= rnd(15);
207 if (uarmg
&& uarmg
->oartifact
== ART_JONADAB_S_KEYCODE
&& !rn2(5)) color
= rnd(15);
208 if (uarmc
&& itemhasappearance(uarmc
, APP_FLEECELING_CLOAK
) && !rn2(5) ) color
= rnd(15);
209 if ((OneRainbowEffect
|| u
.uprops
[ONE_RAINBOW_EFFECT
].extrinsic
|| have_onerainbowstone() || (uarm
&& uarm
->oartifact
== ART_YOU_REALLY_HAVE_A_TOTAL_DA
) || autismweaponcheck(ART_TASTE_THE_RAINBOW
)) && (color
== u
.onerainbownumber
) ) color
= rnd(15);
210 if (uamul
&& uamul
->oartifact
== ART_SUPER_GRAPHICS_CARD_BUG
) {
211 if (color
> 0 && color
< 16) {
213 if (color
> 15) color
= 1;
235 if (!iflags
.use_color
) {
239 boolean greyshades
= FALSE
;
240 if ((ShadesOfGrey
|| (uarm
&& uarm
->oartifact
== ART_GRAYSCALE_WANDERER
) || autismweaponcheck(ART____SHADES_OF_GRAYSWANDIR
) || (uarm
&& uarm
->oartifact
== ART_GREY_FUCKERY
) || u
.uprops
[SHADES_OF_GREY
].extrinsic
|| have_shadesofgreystone() || autismweaponcheck(ART_VINTAGE_MEMORY
) ) && Infravision
) greyshades
= TRUE
;
241 if ((uamul
&& uamul
->oartifact
== ART_COLORLESS_VARIETY
) || isblait
) greyshades
= TRUE
;
243 color
= mons
[n
].mcolor
;
245 if (mons
[n
].mflags4
& M4_MULTIHUED
) color
= rnd(15);
248 switch (mons
[n
].mcolor
) {
252 color
= CLR_BLACK
; break;
256 case CLR_BRIGHT_BLUE
:
257 color
= CLR_GRAY
; break;
260 case CLR_BRIGHT_GREEN
:
261 case CLR_BRIGHT_MAGENTA
:
262 case CLR_BRIGHT_CYAN
:
263 color
= CLR_WHITE
; break;
267 if (ColorshiftEffect
|| u
.uprops
[COLORSHIFT_EFFECT
].extrinsic
|| have_colorshiftstone()) color
= colorshifting(color
);
268 if (MiscolorEffect
|| u
.uprops
[MISCOLOR_EFFECT
].extrinsic
|| have_miscolorstone()) color
= miscoloring(color
);
269 if (SpellColorGreen
) color
= CLR_GREEN
;
270 if (uamul
&& uamul
->oartifact
== ART_FLEECY_GREEN
) color
= CLR_GREEN
;
271 if (FemtrapActiveMarlena
&& !rn2(10) ) color
= rn2(2) ? CLR_GREEN
: CLR_BRIGHT_GREEN
;
272 if (BlackNgWalls
|| (uamul
&& uamul
->oartifact
== ART_BLACK_DARKNESS
) || have_blackystone() || u
.uprops
[BLACK_NG_WALLS
].extrinsic
) color
= CLR_BLACK
;
273 if (uarmc
&& itemhasappearance(uarmc
, APP_COLORFADE_CLOAK
) ) color
= CLR_BLACK
;
274 if (uarmh
&& uarmh
->oartifact
== ART_BLUE_SCREEN_OF_DEATH
) color
= CLR_BRIGHT_BLUE
;
275 if (everythingfleecy()) color
= rnd(15);
276 if (uarmg
&& uarmg
->oartifact
== ART_JONADAB_S_KEYCODE
&& !rn2(5)) color
= rnd(15);
277 if (uarmc
&& itemhasappearance(uarmc
, APP_FLEECELING_CLOAK
) && !rn2(5) ) color
= rnd(15);
278 if ((OneRainbowEffect
|| u
.uprops
[ONE_RAINBOW_EFFECT
].extrinsic
|| have_onerainbowstone() || (uarm
&& uarm
->oartifact
== ART_YOU_REALLY_HAVE_A_TOTAL_DA
) || autismweaponcheck(ART_TASTE_THE_RAINBOW
)) && (color
== u
.onerainbownumber
) ) color
= rnd(15);
279 if (uamul
&& uamul
->oartifact
== ART_SUPER_GRAPHICS_CARD_BUG
) {
280 if (color
> 0 && color
< 16) {
282 if (color
> 15) color
= 1;
296 if (!iflags
.use_color
) {
300 color
= def_warnsyms
[n
].color
;
301 if (ColorshiftEffect
|| u
.uprops
[COLORSHIFT_EFFECT
].extrinsic
|| have_colorshiftstone()) color
= colorshifting(color
);
302 if (MiscolorEffect
|| u
.uprops
[MISCOLOR_EFFECT
].extrinsic
|| have_miscolorstone()) color
= miscoloring(color
);
303 if (SpellColorGreen
) color
= CLR_GREEN
;
304 if (uamul
&& uamul
->oartifact
== ART_FLEECY_GREEN
) color
= CLR_GREEN
;
305 if (FemtrapActiveMarlena
&& !rn2(10) ) color
= rn2(2) ? CLR_GREEN
: CLR_BRIGHT_GREEN
;
306 if (BlackNgWalls
|| (uamul
&& uamul
->oartifact
== ART_BLACK_DARKNESS
) || have_blackystone() || u
.uprops
[BLACK_NG_WALLS
].extrinsic
) color
= CLR_BLACK
;
307 if (uarmh
&& uarmh
->oartifact
== ART_BLUE_SCREEN_OF_DEATH
) color
= CLR_BRIGHT_BLUE
;
308 if (everythingfleecy()) color
= rnd(15);
309 if (uarmg
&& uarmg
->oartifact
== ART_JONADAB_S_KEYCODE
&& !rn2(5)) color
= rnd(15);
310 if (uarmc
&& itemhasappearance(uarmc
, APP_FLEECELING_CLOAK
) && !rn2(5) ) color
= rnd(15);
311 if ((OneRainbowEffect
|| u
.uprops
[ONE_RAINBOW_EFFECT
].extrinsic
|| have_onerainbowstone() || (uarm
&& uarm
->oartifact
== ART_YOU_REALLY_HAVE_A_TOTAL_DA
) || autismweaponcheck(ART_TASTE_THE_RAINBOW
)) && (color
== u
.onerainbownumber
) ) color
= rnd(15);
312 if (uamul
&& uamul
->oartifact
== ART_SUPER_GRAPHICS_CARD_BUG
) {
313 if (color
> 0 && color
< 16) {
315 if (color
> 15) color
= 1;
329 if (!iflags
.use_color
) {
333 color
= explcolors
[n
];
334 if (ColorshiftEffect
|| u
.uprops
[COLORSHIFT_EFFECT
].extrinsic
|| have_colorshiftstone()) color
= colorshifting(color
);
335 if (MiscolorEffect
|| u
.uprops
[MISCOLOR_EFFECT
].extrinsic
|| have_miscolorstone()) color
= miscoloring(color
);
336 if (SpellColorGreen
) color
= CLR_GREEN
;
337 if (uamul
&& uamul
->oartifact
== ART_FLEECY_GREEN
) color
= CLR_GREEN
;
338 if (FemtrapActiveMarlena
&& !rn2(10) ) color
= rn2(2) ? CLR_GREEN
: CLR_BRIGHT_GREEN
;
339 if (BlackNgWalls
|| (uamul
&& uamul
->oartifact
== ART_BLACK_DARKNESS
) || have_blackystone() || u
.uprops
[BLACK_NG_WALLS
].extrinsic
) color
= CLR_BLACK
;
340 if (uarmh
&& uarmh
->oartifact
== ART_BLUE_SCREEN_OF_DEATH
) color
= CLR_BRIGHT_BLUE
;
341 if (everythingfleecy()) color
= rnd(15);
342 if (uarmg
&& uarmg
->oartifact
== ART_JONADAB_S_KEYCODE
&& !rn2(5)) color
= rnd(15);
343 if (uarmc
&& itemhasappearance(uarmc
, APP_FLEECELING_CLOAK
) && !rn2(5) ) color
= rnd(15);
344 if ((OneRainbowEffect
|| u
.uprops
[ONE_RAINBOW_EFFECT
].extrinsic
|| have_onerainbowstone() || (uarm
&& uarm
->oartifact
== ART_YOU_REALLY_HAVE_A_TOTAL_DA
) || autismweaponcheck(ART_TASTE_THE_RAINBOW
)) && (color
== u
.onerainbownumber
) ) color
= rnd(15);
345 if (uamul
&& uamul
->oartifact
== ART_SUPER_GRAPHICS_CARD_BUG
) {
346 if (color
> 0 && color
< 16) {
348 if (color
> 15) color
= 1;
356 # if defined(REINCARNATION) && defined(ASCIIGRAPH)
360 #else /* no text color */
363 #define cmap_color(n)
366 #define invis_color(n)
368 #define warn_color(n)
369 #define explode_color(n)
373 # if defined(USE_TILES) && defined(MSDOS)
374 #define HAS_ROGUE_IBM_GRAPHICS (iflags.IBMgraphics && !iflags.grmode && \
375 Is_rogue_level(&u.uz))
377 #define HAS_ROGUE_IBM_GRAPHICS (iflags.IBMgraphics && Is_rogue_level(&u.uz))
383 mapglyph(glyph
, ochar
, ocolor
, ospecial
, x
, y
)
384 int glyph
, *ocolor
, x
, y
;
388 register struct engr
*ep
= engr_at(x
,y
);
390 #if defined(TEXTCOLOR) || defined(ROGUE_COLOR)
391 int color
= NO_COLOR
;
394 unsigned special
= 0;
395 register struct trap
*ttmp
;
397 register struct rm
*colorroom
;
398 colorroom
= &levl
[x
][y
];
401 * Map the glyph back to a character and color.
403 * Warning: For speed, this makes an assumption on the order of
404 * offsets. The order is set in display.h.
406 if ((offset
= (glyph
- GLYPH_WARNING_OFF
)) >= 0) { /* a warning flash */
407 if (On_stairs(x
,y
) && levl
[x
][y
].seenv
&& !ThereIsNoLite
) special
|= MG_STAIRS
;
408 if (flags
.graffitihilite
&& ep
&& ep
->engr_txt
[0] && !Blind
&& levl
[x
][y
].seenv
&& !ThereIsNoLite
) special
|= MG_ENGRAVING
;
409 ch
= warnsyms
[offset
];
411 if (HAS_ROGUE_IBM_GRAPHICS
)
415 color
= warn_color(offset
);
416 } else if ((offset
= (glyph
- GLYPH_SWALLOW_OFF
)) >= 0) { /* swallow */
417 /* see swallow_to_glyph() in display.c */
418 ch
= (uchar
) showsyms
[S_sw_tl
+ (offset
& 0x7)];
420 if (HAS_ROGUE_IBM_GRAPHICS
&& iflags
.use_color
)
424 color
= mon_color(offset
>> 3);
425 } else if ((offset
= (glyph
- GLYPH_ZAP_OFF
)) >= 0) { /* zap beam */
426 /* see zapdir_to_glyph() in display.c */
427 ch
= showsyms
[S_vbeam
+ (offset
& 0x3)];
429 if (HAS_ROGUE_IBM_GRAPHICS
&& iflags
.use_color
)
433 color
= zap_color((offset
>> 2));
434 } else if ((offset
= (glyph
- GLYPH_EXPLODE_OFF
)) >= 0) { /* explosion */
435 ch
= showsyms
[(offset
% MAXEXPCHARS
) + S_explode1
];
436 color
= explode_color(offset
/ MAXEXPCHARS
);
437 } else if ((offset
= (glyph
- GLYPH_CMAP_OFF
)) >= 0) { /* cmap */
438 if (On_stairs(x
,y
) && (ttmp
= t_at(x
,y
)) && offset
!= S_grayglyph
&& !ThereIsNoLite
&& (ttmp
&& ttmp
->tseen
) && levl
[x
][y
].seenv
) special
|= MG_STAIRS
;
439 if (flags
.graffitihilite
&& offset
!= S_grayglyph
&& ep
&& ep
->engr_txt
[0] && !Blind
&& levl
[x
][y
].seenv
&& !ThereIsNoLite
) special
|= MG_ENGRAVING
;
440 ch
= showsyms
[offset
];
442 if (HAS_ROGUE_IBM_GRAPHICS
&& iflags
.use_color
) {
443 if (offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
))
445 else if (offset
>= S_arrow_trap
&& offset
<= S_timerun_trap
)
447 else if (offset
== S_corr
|| offset
== S_litcorr
)
449 else if (offset
>= S_room
&& offset
<= S_water
&& offset
!= S_darkroom
)
456 /* provide a visible difference if normal and lit corridor
457 * use the same symbol */
458 if (iflags
.use_color
&&
459 offset
== S_litcorr
&& ch
== showsyms
[S_corr
])
461 else if (iflags
.use_color
&&
462 (offset
== S_upstair
|| offset
== S_dnstair
) &&
463 (x
== sstairs
.sx
&& y
== sstairs
.sy
))
464 color
= CLR_BRIGHT_MAGENTA
;
465 /* special level colors by Amy, code partly stolen from dnethack */
466 else if(Is_lawful_quest(&u
.uz
)) {
467 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
470 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
473 else color
= cmap_color(offset
);
474 } else if(Is_nymph_level(&u
.uz
)) {
475 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
478 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
479 color
= CLR_BRIGHT_GREEN
;
481 else color
= cmap_color(offset
);
482 } else if(In_spacebase(&u
.uz
)) {
483 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
484 color
= CLR_BRIGHT_BLUE
;
486 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
487 color
= CLR_BRIGHT_BLUE
;
489 else color
= cmap_color(offset
);
490 } else if(In_sewerplant(&u
.uz
)) {
491 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
494 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
497 else color
= cmap_color(offset
);
498 } else if(In_gammacaves(&u
.uz
)) {
499 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
500 color
= rn2(2) ? CLR_CYAN
: CLR_BRIGHT_CYAN
;
502 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
503 color
= rn2(10) ? CLR_BRIGHT_CYAN
: rn2(2) ? CLR_BRIGHT_GREEN
: CLR_ORANGE
;
505 else color
= cmap_color(offset
);
506 } else if(In_mainframe(&u
.uz
)) {
507 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
508 color
= CLR_BRIGHT_GREEN
;
510 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
511 color
= CLR_BRIGHT_GREEN
;
513 else color
= cmap_color(offset
);
514 } else if(Is_forge_level(&u
.uz
)) {
515 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
518 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
521 else color
= cmap_color(offset
);
522 } else if(Is_hitch_level(&u
.uz
)) {
523 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
524 color
= CLR_BRIGHT_CYAN
;
526 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
529 else color
= cmap_color(offset
);
530 } else if(Is_compu_level(&u
.uz
)) {
531 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
534 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
537 else color
= cmap_color(offset
);
538 } else if(Is_key_level(&u
.uz
)) {
539 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
542 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
545 else color
= cmap_color(offset
);
546 } else if(Is_mtemple_level(&u
.uz
)) {
547 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
550 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
553 else color
= cmap_color(offset
);
554 } else if(Is_stronghold(&u
.uz
)) {
555 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
558 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
561 else color
= cmap_color(offset
);
562 } else if(In_sheol(&u
.uz
)) {
563 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
564 color
= CLR_BRIGHT_CYAN
;
566 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
567 color
= CLR_BRIGHT_CYAN
;
569 else color
= cmap_color(offset
);
570 } else if(*in_rooms(x
,y
,BEEHIVE
)) {
571 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
574 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
577 else color
= cmap_color(offset
);
578 } else if(*in_rooms(x
,y
,COURT
)) {
579 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
582 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
585 else color
= cmap_color(offset
);
586 } else if(*in_rooms(x
,y
,SWAMP
)) {
587 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
590 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
593 else color
= cmap_color(offset
);
594 } else if(*in_rooms(x
,y
,VAULT
)) {
595 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
598 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
601 else color
= cmap_color(offset
);
602 } else if(*in_rooms(x
,y
,MORGUE
)) {
603 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
606 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
609 else color
= cmap_color(offset
);
610 } else if(*in_rooms(x
,y
,BARRACKS
)) {
611 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
614 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
617 else color
= cmap_color(offset
);
618 } else if(*in_rooms(x
,y
,ZOO
)) {
619 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
622 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
625 else color
= cmap_color(offset
);
626 } else if(*in_rooms(x
,y
,REALZOO
)) {
627 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
630 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
633 else color
= cmap_color(offset
);
634 } else if(*in_rooms(x
,y
,DELPHI
)) {
635 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
636 color
= CLR_BRIGHT_BLUE
;
638 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
639 color
= CLR_BRIGHT_BLUE
;
641 else color
= cmap_color(offset
);
642 } else if(*in_rooms(x
,y
,TEMPLE
)) {
643 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
646 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
649 else color
= cmap_color(offset
);
650 } else if(*in_rooms(x
,y
,GIANTCOURT
)) {
651 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
654 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
657 else color
= cmap_color(offset
);
658 } else if(*in_rooms(x
,y
,LEPREHALL
)) {
659 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
662 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
665 else color
= cmap_color(offset
);
666 } else if(*in_rooms(x
,y
,DRAGONLAIR
)) {
667 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
668 color
= CLR_BRIGHT_MAGENTA
;
670 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
671 color
= CLR_BRIGHT_MAGENTA
;
673 else color
= cmap_color(offset
);
674 } else if(*in_rooms(x
,y
,BADFOODSHOP
)) {
675 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
678 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
681 else color
= cmap_color(offset
);
682 } else if(*in_rooms(x
,y
,COCKNEST
)) {
683 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
686 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
689 else color
= cmap_color(offset
);
690 } else if(*in_rooms(x
,y
,ANTHOLE
)) {
691 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
694 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
697 else color
= cmap_color(offset
);
698 } else if(*in_rooms(x
,y
,LEMUREPIT
)) {
699 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
702 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
705 else color
= cmap_color(offset
);
706 } else if(*in_rooms(x
,y
,MIGOHIVE
)) {
707 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
708 color
= CLR_BRIGHT_GREEN
;
710 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
711 color
= CLR_BRIGHT_GREEN
;
713 else color
= cmap_color(offset
);
714 } else if(*in_rooms(x
,y
,FUNGUSFARM
)) {
715 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
716 color
= CLR_BRIGHT_GREEN
;
718 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
719 color
= CLR_BRIGHT_GREEN
;
721 else color
= cmap_color(offset
);
722 } else if(*in_rooms(x
,y
,CLINIC
)) {
723 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
726 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
729 else color
= cmap_color(offset
);
730 } else if(*in_rooms(x
,y
,TERRORHALL
)) {
731 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
732 color
= CLR_BRIGHT_CYAN
;
734 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
735 color
= CLR_BRIGHT_CYAN
;
737 else color
= cmap_color(offset
);
738 } else if(*in_rooms(x
,y
,RIVERROOM
)) {
739 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
740 color
= CLR_BRIGHT_BLUE
;
742 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
743 color
= CLR_BRIGHT_BLUE
;
745 else color
= cmap_color(offset
);
746 } else if(*in_rooms(x
,y
,ELEMHALL
)) {
747 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
750 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
753 else color
= cmap_color(offset
);
754 } else if(*in_rooms(x
,y
,ANGELHALL
)) {
755 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
758 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
761 else color
= cmap_color(offset
);
762 } else if(*in_rooms(x
,y
,NYMPHHALL
)) {
763 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
766 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
769 else color
= cmap_color(offset
);
770 } else if(*in_rooms(x
,y
,SPIDERHALL
)) {
771 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
774 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
777 else color
= cmap_color(offset
);
778 } else if(*in_rooms(x
,y
,TROLLHALL
)) {
779 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
782 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
785 else color
= cmap_color(offset
);
786 } else if(*in_rooms(x
,y
,HUMANHALL
)) {
787 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
788 color
= CLR_BRIGHT_BLUE
;
790 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
791 color
= CLR_BRIGHT_BLUE
;
793 else color
= cmap_color(offset
);
794 } else if(*in_rooms(x
,y
,GOLEMHALL
)) {
795 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
798 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
801 else color
= cmap_color(offset
);
802 } else if(*in_rooms(x
,y
,CRYPTROOM
)) {
803 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
804 color
= CLR_BRIGHT_BLUE
;
806 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
807 color
= CLR_BRIGHT_BLUE
;
809 else color
= cmap_color(offset
);
810 } else if(*in_rooms(x
,y
,TROUBLEZONE
)) {
811 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
814 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
817 else color
= cmap_color(offset
);
818 } else if(*in_rooms(x
,y
,WEAPONCHAMBER
)) {
819 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
822 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
825 else color
= cmap_color(offset
);
826 } else if(*in_rooms(x
,y
,HELLPIT
)) {
827 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
830 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
833 else color
= cmap_color(offset
);
834 } else if(*in_rooms(x
,y
,ROBBERCAVE
)) {
835 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
838 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
841 else color
= cmap_color(offset
);
842 } else if(*in_rooms(x
,y
,SANITATIONCENTRAL
)) {
843 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
846 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
849 else color
= cmap_color(offset
);
850 } else if(*in_rooms(x
,y
,FEMINISMROOM
)) {
851 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
852 color
= CLR_BRIGHT_MAGENTA
;
854 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
855 color
= CLR_BRIGHT_MAGENTA
;
857 else color
= cmap_color(offset
);
858 } else if(*in_rooms(x
,y
,MEADOWROOM
)) {
859 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
860 color
= CLR_BRIGHT_GREEN
;
862 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
863 color
= CLR_BRIGHT_GREEN
;
865 else color
= cmap_color(offset
);
866 } else if(*in_rooms(x
,y
,COOLINGCHAMBER
)) {
867 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
868 color
= CLR_BRIGHT_CYAN
;
870 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
871 color
= CLR_BRIGHT_CYAN
;
873 else color
= cmap_color(offset
);
874 } else if(*in_rooms(x
,y
,VOIDROOM
)) {
875 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
878 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
881 else color
= cmap_color(offset
);
882 } else if(*in_rooms(x
,y
,HAMLETROOM
)) {
883 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
886 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
889 else color
= cmap_color(offset
);
890 } else if(*in_rooms(x
,y
,KOPSTATION
)) {
891 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
894 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
897 else color
= cmap_color(offset
);
898 } else if(*in_rooms(x
,y
,BOSSROOM
)) {
899 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
902 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
905 else color
= cmap_color(offset
);
906 } else if(*in_rooms(x
,y
,RNGCENTER
)) {
907 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
910 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
913 else color
= cmap_color(offset
);
914 } else if(*in_rooms(x
,y
,VARIANTROOM
)) {
915 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
918 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
921 else color
= cmap_color(offset
);
922 } else if(*in_rooms(x
,y
,WIZARDSDORM
)) {
923 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
926 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
929 else color
= cmap_color(offset
);
930 } else if(*in_rooms(x
,y
,DOOMEDBARRACKS
)) {
931 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
934 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
937 else color
= cmap_color(offset
);
938 } else if(*in_rooms(x
,y
,SLEEPINGROOM
)) {
939 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
942 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
945 else color
= cmap_color(offset
);
946 } else if(*in_rooms(x
,y
,DIVERPARADISE
)) {
947 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
948 color
= CLR_BRIGHT_BLUE
;
950 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
951 color
= CLR_BRIGHT_BLUE
;
953 else color
= cmap_color(offset
);
954 } else if(*in_rooms(x
,y
,MENAGERIE
)) {
955 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
958 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
961 else color
= cmap_color(offset
);
962 } else if(*in_rooms(x
,y
,EMPTYDESERT
)) {
963 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
966 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
969 else color
= cmap_color(offset
);
970 } else if(*in_rooms(x
,y
,RARITYROOM
)) {
971 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
974 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
977 else color
= cmap_color(offset
);
978 } else if(*in_rooms(x
,y
,EXHIBITROOM
)) {
979 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
982 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
985 else color
= cmap_color(offset
);
986 } else if(*in_rooms(x
,y
,PRISONCHAMBER
)) {
987 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
990 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
993 else color
= cmap_color(offset
);
994 } else if(*in_rooms(x
,y
,NUCLEARCHAMBER
)) {
995 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
998 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1001 else color
= cmap_color(offset
);
1002 } else if(*in_rooms(x
,y
,LEVELSEVENTYROOM
)) {
1003 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1006 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1009 else color
= cmap_color(offset
);
1010 } else if(*in_rooms(x
,y
,PLAYERCENTRAL
)) {
1011 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1012 color
= CLR_MAGENTA
;
1014 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1015 color
= CLR_MAGENTA
;
1017 else color
= cmap_color(offset
);
1018 } else if(*in_rooms(x
,y
,COINHALL
)) {
1019 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1022 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1025 else color
= cmap_color(offset
);
1026 } else if(*in_rooms(x
,y
,DOUGROOM
)) {
1027 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1028 color
= CLR_BRIGHT_CYAN
;
1030 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1031 color
= CLR_BRIGHT_CYAN
;
1033 else color
= cmap_color(offset
);
1034 } else if(*in_rooms(x
,y
,ARMORY
)) {
1035 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1038 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1041 else color
= cmap_color(offset
);
1042 } else if(*in_rooms(x
,y
,TENSHALL
)) {
1043 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1046 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1049 else color
= cmap_color(offset
);
1050 } else if(*in_rooms(x
,y
,EVILROOM
)) {
1051 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1052 color
= rn2(2) ? CLR_MAGENTA
: CLR_BRIGHT_MAGENTA
;
1054 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1055 color
= rn2(2) ? CLR_MAGENTA
: CLR_BRIGHT_MAGENTA
;
1057 else color
= cmap_color(offset
);
1058 } else if(*in_rooms(x
,y
,RELIGIONCENTER
)) {
1059 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1062 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1065 else color
= cmap_color(offset
);
1066 } else if(*in_rooms(x
,y
,CHAOSROOM
)) {
1067 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1070 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1073 else color
= cmap_color(offset
);
1074 } else if(*in_rooms(x
,y
,CURSEDMUMMYROOM
)) {
1075 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1078 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1081 else color
= cmap_color(offset
);
1082 } else if(*in_rooms(x
,y
,MIXEDPOOL
)) {
1083 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1084 color
= rn2(2) ? CLR_BRIGHT_BLUE
: CLR_BRIGHT_CYAN
;
1086 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1087 color
= rn2(2) ? CLR_BRIGHT_BLUE
: CLR_BRIGHT_CYAN
;
1089 else color
= cmap_color(offset
);
1090 } else if(*in_rooms(x
,y
,ARDUOUSMOUNTAIN
)) {
1091 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1094 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1097 else color
= cmap_color(offset
);
1098 } else if(*in_rooms(x
,y
,CHANGINGROOM
)) {
1099 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1100 color
= CLR_BRIGHT_MAGENTA
;
1102 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1103 color
= CLR_BRIGHT_MAGENTA
;
1105 else color
= cmap_color(offset
);
1106 } else if(*in_rooms(x
,y
,QUESTORROOM
)) {
1107 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1108 color
= CLR_MAGENTA
;
1110 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1111 color
= CLR_MAGENTA
;
1113 else color
= cmap_color(offset
);
1114 } else if(*in_rooms(x
,y
,LEVELFFROOM
)) {
1115 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1118 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1121 else color
= cmap_color(offset
);
1122 } else if(*in_rooms(x
,y
,VERMINROOM
)) {
1123 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1126 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1129 else color
= cmap_color(offset
);
1130 } else if(*in_rooms(x
,y
,MIRASPA
)) {
1131 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1134 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1137 else color
= cmap_color(offset
);
1138 } else if(*in_rooms(x
,y
,MACHINEROOM
)) {
1139 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1142 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1145 else color
= cmap_color(offset
);
1146 } else if(*in_rooms(x
,y
,SHOWERROOM
)) {
1147 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1148 color
= CLR_BRIGHT_BLUE
;
1150 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1151 color
= CLR_BRIGHT_BLUE
;
1153 else color
= cmap_color(offset
);
1154 } else if(*in_rooms(x
,y
,GREENCROSSROOM
)) {
1155 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1156 color
= CLR_BRIGHT_GREEN
;
1158 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1159 color
= CLR_BRIGHT_GREEN
;
1161 else color
= cmap_color(offset
);
1162 } else if(*in_rooms(x
,y
,CENTRALTEDIUM
)) {
1163 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1166 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1169 else color
= cmap_color(offset
);
1170 } else if(*in_rooms(x
,y
,RUINEDCHURCH
)) {
1171 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1174 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1177 else color
= cmap_color(offset
);
1178 } else if(*in_rooms(x
,y
,RAMPAGEROOM
)) {
1179 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1182 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1185 else color
= cmap_color(offset
);
1186 } else if(*in_rooms(x
,y
,GAMECORNER
)) {
1187 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1188 color
= CLR_BRIGHT_BLUE
;
1190 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1191 color
= CLR_BRIGHT_BLUE
;
1193 else color
= cmap_color(offset
);
1194 } else if(*in_rooms(x
,y
,ILLUSIONROOM
)) {
1195 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1196 color
= !rn2(3) ? CLR_WHITE
: !rn2(2) ? CLR_GRAY
: CLR_CYAN
;
1198 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1199 color
= !rn2(3) ? CLR_WHITE
: !rn2(2) ? CLR_GRAY
: CLR_CYAN
;
1201 else color
= cmap_color(offset
);
1202 } else if(*in_rooms(x
,y
,INSIDEROOM
)) {
1203 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1206 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1209 else color
= cmap_color(offset
);
1210 } else if(*in_rooms(x
,y
,POOLROOM
)) {
1211 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1212 color
= CLR_BRIGHT_BLUE
;
1214 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1215 color
= CLR_BRIGHT_BLUE
;
1217 else color
= cmap_color(offset
);
1218 } else if(*in_roomscolouur(x
,y
,1) && *in_rooms(x
,y
,OROOM
)) {
1219 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1222 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1225 else color
= cmap_color(offset
);
1226 } else if(*in_roomscolouur(x
,y
,2) && *in_rooms(x
,y
,OROOM
)) {
1227 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1230 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1233 else color
= cmap_color(offset
);
1234 } else if(*in_roomscolouur(x
,y
,3) && *in_rooms(x
,y
,OROOM
)) {
1235 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1238 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1241 else color
= cmap_color(offset
);
1242 } else if(*in_roomscolouur(x
,y
,4) && *in_rooms(x
,y
,OROOM
)) {
1243 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1246 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1249 else color
= cmap_color(offset
);
1250 } else if(*in_roomscolouur(x
,y
,5) && *in_rooms(x
,y
,OROOM
)) {
1251 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1254 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1257 else color
= cmap_color(offset
);
1258 } else if(*in_roomscolouur(x
,y
,6) && *in_rooms(x
,y
,OROOM
)) {
1259 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1262 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1265 else color
= cmap_color(offset
);
1266 } else if(*in_roomscolouur(x
,y
,7) && *in_rooms(x
,y
,OROOM
)) {
1267 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1270 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1273 else color
= cmap_color(offset
);
1274 } else if(*in_roomscolouur(x
,y
,8) && *in_rooms(x
,y
,OROOM
)) {
1275 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1278 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1281 else color
= cmap_color(offset
);
1282 } else if(*in_roomscolouur(x
,y
,9) && *in_rooms(x
,y
,OROOM
)) {
1283 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1286 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1289 else color
= cmap_color(offset
);
1290 } else if(*in_roomscolouur(x
,y
,10) && *in_rooms(x
,y
,OROOM
)) {
1291 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1294 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1297 else color
= cmap_color(offset
);
1298 } else if(*in_roomscolouur(x
,y
,11) && *in_rooms(x
,y
,OROOM
)) {
1299 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1302 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1305 else color
= cmap_color(offset
);
1306 } else if(*in_roomscolouur(x
,y
,12) && *in_rooms(x
,y
,OROOM
)) {
1307 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1310 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1313 else color
= cmap_color(offset
);
1314 } else if(*in_roomscolouur(x
,y
,13) && *in_rooms(x
,y
,OROOM
)) {
1315 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1318 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1321 else color
= cmap_color(offset
);
1322 } else if(*in_roomscolouur(x
,y
,14) && *in_rooms(x
,y
,OROOM
)) {
1323 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1326 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1329 else color
= cmap_color(offset
);
1330 } else if(*in_roomscolouur(x
,y
,15) && *in_rooms(x
,y
,OROOM
)) {
1331 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1334 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1337 else color
= cmap_color(offset
);
1338 } else if(*in_roomscolouur(x
,y
,20) && *in_rooms(x
,y
,OROOM
)) {
1339 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1342 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1345 else color
= cmap_color(offset
);
1346 } else if(*in_roomscolouur(x
,y
,21) && *in_rooms(x
,y
,OROOM
)) {
1347 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1348 color
= rn2(2) ? CLR_MAGENTA
: CLR_BRIGHT_MAGENTA
;
1350 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1351 color
= rn2(2) ? CLR_MAGENTA
: CLR_BRIGHT_MAGENTA
;
1353 else color
= cmap_color(offset
);
1354 } else if(*in_roomscolouur(x
,y
,22) && *in_rooms(x
,y
,OROOM
)) {
1355 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1356 color
= rn2(2) ? CLR_BRIGHT_CYAN
: CLR_BRIGHT_BLUE
;
1358 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1359 color
= rn2(2) ? CLR_BRIGHT_CYAN
: CLR_BRIGHT_BLUE
;
1361 else color
= cmap_color(offset
);
1362 } else if(*in_roomscolouur(x
,y
,23) && *in_rooms(x
,y
,OROOM
)) {
1363 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1364 color
= !rn2(3) ? CLR_WHITE
: !rn2(2) ? CLR_GRAY
: CLR_CYAN
;
1366 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1367 color
= !rn2(3) ? CLR_WHITE
: !rn2(2) ? CLR_GRAY
: CLR_CYAN
;
1369 else color
= cmap_color(offset
);
1371 else if (colorroom
->fleecycolor
== 1) {
1372 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1375 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1378 else color
= cmap_color(offset
);
1380 else if (colorroom
->fleecycolor
== 2) {
1381 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1384 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1387 else color
= cmap_color(offset
);
1389 else if (colorroom
->fleecycolor
== 3) {
1390 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1393 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1396 else color
= cmap_color(offset
);
1398 else if (colorroom
->fleecycolor
== 4) {
1399 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1402 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1405 else color
= cmap_color(offset
);
1407 else if (colorroom
->fleecycolor
== 5) {
1408 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1411 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1414 else color
= cmap_color(offset
);
1416 else if (colorroom
->fleecycolor
== 6) {
1417 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1420 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1423 else color
= cmap_color(offset
);
1425 else if (colorroom
->fleecycolor
== 7) {
1426 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1429 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1432 else color
= cmap_color(offset
);
1434 else if (colorroom
->fleecycolor
== 8) {
1435 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1438 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1441 else color
= cmap_color(offset
);
1443 else if (colorroom
->fleecycolor
== 9) {
1444 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1447 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1450 else color
= cmap_color(offset
);
1452 else if (colorroom
->fleecycolor
== 10) {
1453 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1456 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1459 else color
= cmap_color(offset
);
1461 else if (colorroom
->fleecycolor
== 11) {
1462 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1465 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1468 else color
= cmap_color(offset
);
1470 else if (colorroom
->fleecycolor
== 12) {
1471 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1474 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1477 else color
= cmap_color(offset
);
1479 else if (colorroom
->fleecycolor
== 13) {
1480 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1483 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1486 else color
= cmap_color(offset
);
1488 else if (colorroom
->fleecycolor
== 14) {
1489 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1492 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1495 else color
= cmap_color(offset
);
1497 else if (colorroom
->fleecycolor
== 15) {
1498 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1501 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1504 else color
= cmap_color(offset
);
1506 else if (colorroom
->fleecycolor
== 16) {
1507 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1510 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1513 else color
= cmap_color(offset
);
1515 else if ((100 + u
.monstertimefinish
+ depth(&u
.uz
)) % 16 == 0) {
1516 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1519 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1522 else color
= cmap_color(offset
);
1523 } else if ((101 + u
.monstertimefinish
+ depth(&u
.uz
)) % 16 == 0) {
1524 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1527 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1530 else color
= cmap_color(offset
);
1531 } else if ((102 + u
.monstertimefinish
+ depth(&u
.uz
)) % 16 == 0) {
1532 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1535 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1538 else color
= cmap_color(offset
);
1539 } else if ((103 + u
.monstertimefinish
+ depth(&u
.uz
)) % 16 == 0) {
1540 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1543 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1546 else color
= cmap_color(offset
);
1547 } else if ((104 + u
.monstertimefinish
+ depth(&u
.uz
)) % 16 == 0) {
1548 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1551 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1554 else color
= cmap_color(offset
);
1555 } else if ((105 + u
.monstertimefinish
+ depth(&u
.uz
)) % 16 == 0) {
1556 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1559 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1562 else color
= cmap_color(offset
);
1563 } else if ((106 + u
.monstertimefinish
+ depth(&u
.uz
)) % 16 == 0) {
1564 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1567 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1570 else color
= cmap_color(offset
);
1571 } else if ((107 + u
.monstertimefinish
+ depth(&u
.uz
)) % 16 == 0) {
1572 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1575 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1578 else color
= cmap_color(offset
);
1579 } else if ((108 + u
.monstertimefinish
+ depth(&u
.uz
)) % 16 == 0) {
1580 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1583 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1586 else color
= cmap_color(offset
);
1587 } else if ((109 + u
.monstertimefinish
+ depth(&u
.uz
)) % 16 == 0) {
1588 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1591 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1594 else color
= cmap_color(offset
);
1595 } else if ((110 + u
.monstertimefinish
+ depth(&u
.uz
)) % 16 == 0) {
1596 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1599 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1602 else color
= cmap_color(offset
);
1603 } else if ((111 + u
.monstertimefinish
+ depth(&u
.uz
)) % 16 == 0) {
1604 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1607 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1610 else color
= cmap_color(offset
);
1611 } else if ((112 + u
.monstertimefinish
+ depth(&u
.uz
)) % 16 == 0) {
1612 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1615 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1618 else color
= cmap_color(offset
);
1619 } else if ((113 + u
.monstertimefinish
+ depth(&u
.uz
)) % 16 == 0) {
1620 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1623 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1626 else color
= cmap_color(offset
);
1627 } else if ((114 + u
.monstertimefinish
+ depth(&u
.uz
)) % 16 == 0) {
1628 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1631 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1634 else color
= cmap_color(offset
);
1635 } else if ((115 + u
.monstertimefinish
+ depth(&u
.uz
)) % 16 == 0) {
1636 if(offset
>= S_vwall
&& offset
<= S_hcdoor
&& !(offset
>= S_rockwall
&& offset
<= S_tunnelwall
)){
1639 else if(offset
>= S_corr
&& offset
<= S_litcorr
){
1642 else color
= cmap_color(offset
);
1645 if (color
== NO_COLOR
) color
= cmap_color(offset
);
1647 if (ColorshiftEffect
|| u
.uprops
[COLORSHIFT_EFFECT
].extrinsic
|| have_colorshiftstone()) color
= colorshifting(color
);
1648 if (MiscolorEffect
|| u
.uprops
[MISCOLOR_EFFECT
].extrinsic
|| have_miscolorstone()) color
= miscoloring(color
);
1650 if (uarmh
&& uarmh
->oartifact
== ART_BLUE_SCREEN_OF_DEATH
) color
= CLR_BRIGHT_BLUE
;
1651 else if (BlackNgWalls
|| (uamul
&& uamul
->oartifact
== ART_BLACK_DARKNESS
) || have_blackystone() || u
.uprops
[BLACK_NG_WALLS
].extrinsic
) color
= CLR_BLACK
;
1652 else if (FemtrapActiveMarlena
&& !rn2(10) ) color
= (rn2(2) ? CLR_GREEN
: CLR_BRIGHT_GREEN
);
1653 else if (uamul
&& uamul
->oartifact
== ART_FLEECY_GREEN
) color
= CLR_GREEN
;
1654 else if (SpellColorGreen
) color
= CLR_GREEN
;
1655 else if (ShadesOfGrey
|| (uarm
&& uarm
->oartifact
== ART_GRAYSCALE_WANDERER
) || autismweaponcheck(ART____SHADES_OF_GRAYSWANDIR
) || (uarm
&& uarm
->oartifact
== ART_GREY_FUCKERY
) || (uamul
&& uamul
->oartifact
== ART_COLORLESS_VARIETY
) || u
.uprops
[SHADES_OF_GREY
].extrinsic
|| have_shadesofgreystone() || autismweaponcheck(ART_VINTAGE_MEMORY
) || isblait
) {
1665 case CLR_BRIGHT_BLUE
:
1670 case CLR_BRIGHT_GREEN
:
1671 case CLR_BRIGHT_MAGENTA
:
1672 case CLR_BRIGHT_CYAN
:
1677 if (SpellColorMetal
&& (offset
>= S_vwall
&& offset
<= S_hcdoor
) && !(offset
> S_rockwall
&& offset
<= S_tunnelwall
)) color
= rn2(2) ? CLR_CYAN
: CLR_BRIGHT_CYAN
;
1678 if (SpellColorMetal
&& (offset
== S_dungwall
)) color
= rn2(2) ? CLR_CYAN
: CLR_BRIGHT_CYAN
;
1679 if (WallsAreHyperBlue
&& (offset
>= S_vwall
&& offset
<= S_hcdoor
) && !(offset
> S_rockwall
&& offset
<= S_tunnelwall
)) color
= CLR_BRIGHT_BLUE
;
1680 if (WallsAreHyperBlue
&& (offset
== S_dungwall
)) color
= CLR_BRIGHT_BLUE
;
1681 if (SpellColorOrange
&& offset
== S_grayglyph
) color
= CLR_ORANGE
;
1682 if (SpellColorBrightCyan
&& offset
== S_grayglyph
) color
= CLR_BRIGHT_CYAN
;
1683 if (Race_if(PM_RELEASIER
) && !rn2(3)) color
= !rn2(3) ? CLR_CYAN
: !rn2(2) ? CLR_WHITE
: CLR_RED
;
1684 if ((KnowledgeBug
|| u
.uprops
[KNOWLEDGE_BUG
].extrinsic
|| have_trapknowledgestone()) && (offset
== S_grayglyph
)) color
= rnd(15);
1685 if (Hallucination
) color
= rnd(15);
1686 if ((uarmc
&& itemhasappearance(uarmc
, APP_FLEECELING_CLOAK
)) && !rn2(5) ) color
= rnd(15);
1687 if (uarmg
&& uarmg
->oartifact
== ART_JONADAB_S_KEYCODE
&& !rn2(5)) color
= rnd(15);
1688 if (everythingfleecy()) color
= rnd(15);
1689 if ((OneRainbowEffect
|| u
.uprops
[ONE_RAINBOW_EFFECT
].extrinsic
|| have_onerainbowstone() || (uarm
&& uarm
->oartifact
== ART_YOU_REALLY_HAVE_A_TOTAL_DA
) || autismweaponcheck(ART_TASTE_THE_RAINBOW
)) && (color
== u
.onerainbownumber
) ) color
= rnd(15);
1690 if (uamul
&& uamul
->oartifact
== ART_SUPER_GRAPHICS_CARD_BUG
) {
1691 if (color
> 0 && color
< 16) {
1693 if (color
> 15) color
= 1;
1696 } else if ((offset
= (glyph
- GLYPH_OBJ_OFF
)) >= 0) { /* object */
1697 if (On_stairs(x
,y
) && !ThereIsNoLite
&& levl
[x
][y
].seenv
) special
|= MG_STAIRS
;
1698 if (flags
.graffitihilite
&& ep
&& ep
->engr_txt
[0] && !Blind
&& levl
[x
][y
].seenv
&& !ThereIsNoLite
) special
|= MG_ENGRAVING
;
1699 if (offset
== BOULDER
&& iflags
.bouldersym
) ch
= iflags
.bouldersym
;
1700 else ch
= oc_syms
[(int)objects
[offset
].oc_class
];
1702 if (HAS_ROGUE_IBM_GRAPHICS
&& iflags
.use_color
) {
1703 switch(objects
[offset
].oc_class
) {
1704 case COIN_CLASS
: color
= CLR_YELLOW
; break;
1705 case FOOD_CLASS
: color
= CLR_RED
; break;
1706 default: color
= CLR_BRIGHT_BLUE
; break;
1710 color
= obj_color(offset
);
1715 if (level
.objlist
) {
1717 for (ptr
= level
.objects
[x
][y
]; ptr
; ptr
= ptr
->nexthere
) {
1718 if (ptr
&& ptr
->otyp
== STATUE
) continue;
1719 if (ptr
&& ptr
->oinvis
) continue;
1720 if (ptr
&& ptr
->oinvisreal
) continue;
1722 if (hilitecnt
>= 2) break;
1726 if (offset
!= BOULDER
&& !ThereIsNoLite
&& hilitecnt
>= 2)
1727 special
|= MG_OBJPILE
;
1729 } else if ((offset
= (glyph
- GLYPH_RIDDEN_OFF
)) >= 0) { /* mon ridden */
1730 ch
= monsyms
[(int)mons
[offset
].mlet
];
1731 if (CapsBugEffect
|| u
.uprops
[CAPS_BUG_EFFECT
].extrinsic
|| have_capsstone()) ch
= toupper(ch
);
1733 if (HAS_ROGUE_IBM_GRAPHICS
)
1734 /* This currently implies that the hero is here -- monsters */
1735 /* don't ride (yet...). Should we set it to yellow like in */
1736 /* the monster case below? There is no equivalent in rogue. */
1737 color
= NO_COLOR
; /* no need to check iflags.use_color */
1740 color
= mon_color(offset
);
1741 special
|= MG_RIDDEN
;
1742 } else if ((offset
= (glyph
- GLYPH_BODY_OFF
)) >= 0) { /* a corpse */
1743 if (On_stairs(x
,y
) && !ThereIsNoLite
&& levl
[x
][y
].seenv
) special
|= MG_STAIRS
;
1744 if (flags
.graffitihilite
&& ep
&& ep
->engr_txt
[0] && !Blind
&& levl
[x
][y
].seenv
&& !ThereIsNoLite
) special
|= MG_ENGRAVING
;
1745 ch
= oc_syms
[(int)objects
[CORPSE
].oc_class
];
1747 if (HAS_ROGUE_IBM_GRAPHICS
&& iflags
.use_color
)
1751 color
= mon_color(offset
);
1752 special
|= MG_CORPSE
;
1757 if (level
.objlist
) {
1758 for (ptr
= level
.objects
[x
][y
]; ptr
; ptr
= ptr
->nexthere
) {
1759 if (ptr
->otyp
== STATUE
) continue;
1760 if (ptr
->oinvis
) continue;
1761 if (ptr
->oinvisreal
) continue;
1763 if (hilitecnt
>= 2) break;
1767 if (offset
!= BOULDER
&& !ThereIsNoLite
&& hilitecnt
>= 2)
1768 special
|= MG_OBJPILE
;
1770 } else if ((offset
= (glyph
- GLYPH_DETECT_OFF
)) >= 0) { /* mon detect */
1771 if (On_stairs(x
,y
) && !ThereIsNoLite
&& levl
[x
][y
].seenv
) special
|= MG_STAIRS
;
1772 /*if (flags.graffitihilite && ep && ep->engr_txt[0] && !Blind && levl[x][y].seenv && !ThereIsNoLite) special |= MG_ENGRAVING;*/
1773 ch
= monsyms
[(int)mons
[offset
].mlet
];
1774 if (CapsBugEffect
|| u
.uprops
[CAPS_BUG_EFFECT
].extrinsic
|| have_capsstone()) ch
= toupper(ch
);
1776 if (HAS_ROGUE_IBM_GRAPHICS
)
1777 color
= NO_COLOR
; /* no need to check iflags.use_color */
1780 color
= mon_color(offset
);
1781 /* Disabled for now; anyone want to get reverse video to work? */
1782 /* is_reverse = TRUE; */
1783 special
|= MG_DETECT
;
1784 } else if ((offset
= (glyph
- GLYPH_INVIS_OFF
)) >= 0) { /* invisible */
1785 if (On_stairs(x
,y
) && !ThereIsNoLite
&& levl
[x
][y
].seenv
) special
|= MG_STAIRS
;
1786 if (flags
.graffitihilite
&& ep
&& ep
->engr_txt
[0] && !Blind
&& levl
[x
][y
].seenv
&& !ThereIsNoLite
) special
|= MG_ENGRAVING
;
1789 if (HAS_ROGUE_IBM_GRAPHICS
)
1790 color
= NO_COLOR
; /* no need to check iflags.use_color */
1793 color
= invis_color(offset
);
1794 special
|= MG_INVIS
;
1795 } else if ((offset
= (glyph
- GLYPH_PET_OFF
)) >= 0) { /* a pet */
1796 if (On_stairs(x
,y
) && !ThereIsNoLite
&& levl
[x
][y
].seenv
) special
|= MG_STAIRS
;
1797 /*if (flags.graffitihilite && ep && ep->engr_txt[0] && !Blind && levl[x][y].seenv && !ThereIsNoLite) special |= MG_ENGRAVING;*/
1798 ch
= monsyms
[(int)mons
[offset
].mlet
];
1799 if (CapsBugEffect
|| u
.uprops
[CAPS_BUG_EFFECT
].extrinsic
|| have_capsstone()) ch
= toupper(ch
);
1801 if (HAS_ROGUE_IBM_GRAPHICS
)
1802 color
= NO_COLOR
; /* no need to check iflags.use_color */
1805 color
= pet_color(offset
);
1806 if (!ThereIsNoLite
) special
|= MG_PET
;
1807 } else { /* a monster */
1808 if (On_stairs(x
,y
) && !ThereIsNoLite
&& levl
[x
][y
].seenv
) special
|= MG_STAIRS
;
1809 /*if (flags.graffitihilite && ep && ep->engr_txt[0] && !Blind && levl[x][y].seenv && !ThereIsNoLite) special |= MG_ENGRAVING;*/
1813 ch
= monsyms
[(int)mons
[glyph
].mlet
];
1814 if (CapsBugEffect
|| u
.uprops
[CAPS_BUG_EFFECT
].extrinsic
|| have_capsstone()) ch
= toupper(ch
);
1817 if (mtmp
&& mtmp
->isegotype
&& !mtmp
->noegodisplay
&& !ThereIsNoLite
&& !PlayerUninformation
) special
|= MG_EGOTYPE
;
1819 if (mtmp
&& !ThereIsNoLite
&& mtmp
->mpeaceful
&& Peacevision
&& !Hallucination
) special
|= MG_PEACEFUL
;
1821 if (mtmp
&& mtmp
->mnum
== PM_ULTRAYOUSEE
) {
1822 if (!MessagesSuppressed
&& !Clairvoyant
&& !RightMouseButtonDoesNotGo
) {
1823 MessageSuppression
+= 1; /* ugly hack */
1824 badeffect(); /* something bad happens and we don't tell you what it is :-P --Amy */
1829 if (HAS_ROGUE_IBM_GRAPHICS
&& iflags
.use_color
) {
1830 if (x
== u
.ux
&& y
== u
.uy
)
1831 /* actually player should be yellow-on-gray if in a corridor */
1838 color
= mon_color(glyph
);
1839 if (mtmp
&& mtmp
->shinymonst
) color
= rnd(15);
1840 /* special case the hero for `showrace' option */
1842 if (iflags
.use_color
&& x
== u
.ux
&& y
== u
.uy
&&
1843 iflags
.showrace
&& !Upolyd
)
1844 color
= HI_DOMESTIC
;
1850 /* Turn off color if no color defined, or rogue level w/o PC graphics. */
1851 # ifdef REINCARNATION
1853 if (!has_color(color
) || (Is_rogue_level(&u
.uz
) && !HAS_ROGUE_IBM_GRAPHICS
))
1855 if (!has_color(color
) || Is_rogue_level(&u
.uz
))
1858 if (!has_color(color
))
1864 *ospecial
= special
;
1871 /* color shift trap: every color has a matching color that it turns into, 50% of the time --Amy */
1873 colorshifting(color
)
1876 if (color
== NO_COLOR
) return NO_COLOR
;
1878 int miscolor
= color
;
1881 miscolor
= CLR_ORANGE
; break;
1883 miscolor
= CLR_BRIGHT_BLUE
; break;
1885 miscolor
= CLR_BLACK
; break;
1887 miscolor
= CLR_BRIGHT_GREEN
; break;
1889 miscolor
= CLR_YELLOW
; break;
1891 miscolor
= CLR_BROWN
; break;
1893 miscolor
= CLR_WHITE
; break;
1895 miscolor
= CLR_GRAY
; break; /* none available */
1897 miscolor
= CLR_BRIGHT_CYAN
; break;
1899 miscolor
= CLR_BRIGHT_MAGENTA
; break;
1901 miscolor
= CLR_RED
; break;
1902 case CLR_BRIGHT_BLUE
:
1903 miscolor
= CLR_BLUE
; break;
1904 case CLR_BRIGHT_CYAN
:
1905 miscolor
= CLR_CYAN
; break;
1906 case CLR_BRIGHT_GREEN
:
1907 miscolor
= CLR_GREEN
; break;
1908 case CLR_BRIGHT_MAGENTA
:
1909 miscolor
= CLR_MAGENTA
; break;
1912 if (rn2(2)) color
= miscolor
;
1921 if (color
== NO_COLOR
) return NO_COLOR
;
1927 miscolor
= 1; break;
1929 miscolor
= 2; break;
1931 miscolor
= 3; break;
1933 miscolor
= 4; break;
1935 miscolor
= 5; break;
1937 miscolor
= 6; break;
1939 miscolor
= 7; break;
1941 miscolor
= 8; break;
1943 miscolor
= 9; break;
1945 miscolor
= 10; break;
1947 miscolor
= 11; break;
1948 case CLR_BRIGHT_BLUE
:
1949 miscolor
= 12; break;
1950 case CLR_BRIGHT_CYAN
:
1951 miscolor
= 13; break;
1952 case CLR_BRIGHT_GREEN
:
1953 miscolor
= 14; break;
1954 case CLR_BRIGHT_MAGENTA
:
1955 miscolor
= 15; break;
1957 miscolor
+= u
.miscolornumber
;
1958 if (miscolor
> 15) miscolor
-= 15;
1962 color
= CLR_RED
; break;
1964 color
= CLR_BLUE
; break;
1966 color
= CLR_WHITE
; break;
1968 color
= CLR_GREEN
; break;
1970 color
= CLR_BROWN
; break;
1972 color
= CLR_YELLOW
; break;
1974 color
= CLR_BLACK
; break;
1976 color
= CLR_GRAY
; break;
1978 color
= CLR_CYAN
; break;
1980 color
= CLR_MAGENTA
; break;
1982 color
= CLR_ORANGE
; break;
1984 color
= CLR_BRIGHT_BLUE
; break;
1986 color
= CLR_BRIGHT_CYAN
; break;
1988 color
= CLR_BRIGHT_GREEN
; break;
1990 color
= CLR_BRIGHT_MAGENTA
; break;