The 0x1000000 bit (NH_BASIC_COLOR bit) was used to mark CLR_BLACK when storing it in u->ucolor. Now, all of the basic CLR_* colors are stored that way. The NH_BASIC_COLOR bit indicates that the value in u->ucolor is not an rgb value, rather it is one of the 0-15 basic NetHack colors. The window-ports need to strip the NH_BASIC_COLOR bit off before using it for color changes.
77 lines
2.1 KiB
C
77 lines
2.1 KiB
C
/* NetHack 3.7 color.h $NHDT-Date: 1682205020 2023/04/22 23:10:20 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.18 $ */
|
|
/* Copyright (c) Steve Linhart, Eric Raymond, 1989. */
|
|
/* NetHack may be freely redistributed. See license for details. */
|
|
|
|
#ifndef COLOR_H
|
|
#define COLOR_H
|
|
|
|
/*
|
|
* The color scheme used is tailored for an IBM PC. It consists of the
|
|
* standard 8 colors, followed by their bright counterparts. There are
|
|
* exceptions, these are listed below. Bright black doesn't mean very
|
|
* much, so it is used as the "default" foreground color of the screen.
|
|
*/
|
|
#define CLR_BLACK 0
|
|
#define CLR_RED 1
|
|
#define CLR_GREEN 2
|
|
#define CLR_BROWN 3 /* on IBM, low-intensity yellow is brown */
|
|
#define CLR_BLUE 4
|
|
#define CLR_MAGENTA 5
|
|
#define CLR_CYAN 6
|
|
#define CLR_GRAY 7 /* low-intensity white */
|
|
#define NO_COLOR 8
|
|
#define CLR_ORANGE 9
|
|
#define CLR_BRIGHT_GREEN 10
|
|
#define CLR_YELLOW 11
|
|
#define CLR_BRIGHT_BLUE 12
|
|
#define CLR_BRIGHT_MAGENTA 13
|
|
#define CLR_BRIGHT_CYAN 14
|
|
#define CLR_WHITE 15
|
|
#define CLR_MAX 16
|
|
|
|
/* The "half-way" point for tty-based color systems. This is used in */
|
|
/* the tty color setup code. (IMHO, it should be removed - dean). */
|
|
#define BRIGHT 8
|
|
|
|
/* color aliases used in monsters.h and display.c */
|
|
#define HI_DOMESTIC CLR_WHITE /* for player + pets */
|
|
#define HI_LORD CLR_MAGENTA /* for high-end monsters */
|
|
#define HI_OVERLORD CLR_BRIGHT_MAGENTA /* for few uniques */
|
|
|
|
/* these can be configured */
|
|
#define HI_OBJ CLR_MAGENTA
|
|
#define HI_METAL CLR_CYAN
|
|
#define HI_COPPER CLR_YELLOW
|
|
#define HI_SILVER CLR_GRAY
|
|
#define HI_GOLD CLR_YELLOW
|
|
#define HI_LEATHER CLR_BROWN
|
|
#define HI_CLOTH CLR_BROWN
|
|
#define HI_ORGANIC CLR_BROWN
|
|
#define HI_WOOD CLR_BROWN
|
|
#define HI_PAPER CLR_WHITE
|
|
#define HI_GLASS CLR_BRIGHT_CYAN
|
|
#define HI_MINERAL CLR_GRAY
|
|
#define DRAGON_SILVER CLR_BRIGHT_CYAN
|
|
#define HI_ZAP CLR_BRIGHT_BLUE
|
|
|
|
#define NH_BASIC_COLOR 0x1000000
|
|
|
|
enum nhcolortype { no_color, nh_color, rgb_color };
|
|
|
|
struct nethack_color {
|
|
enum nhcolortype colortyp;
|
|
int tableindex;
|
|
int rgbindex;
|
|
const char *name;
|
|
const char *hexval;
|
|
long r, g, b;
|
|
};
|
|
|
|
typedef struct color_and_attr {
|
|
int color, attr;
|
|
} color_attr;
|
|
|
|
#endif /* COLOR_H */
|
|
|
|
/*color.h*/
|