#if !defined(ANSI_H)
#define ANSI_H

#define	ANSI_KEY        '{'
#define	ANSI_CUSTOM     '\x11'
#define ANSI_END	    '\x12'

#define	C_BLANK         "\x01B[%d;%dm"
#define	C_REVERSE       "\x01B[7m"
#define	C_FLASH         "\x01B[5m"
#define	C_UNDERSCORE    "\x01B[4m"
#define	C_TILDE         '~'
#define	C_BEEP          '\a'

#define	C_BLACK         "\x01B[0;30m"
#define	C_RED           "\x01B[0;31m"
#define	C_GREEN         "\x01B[0;32m"
#define	C_YELLOW        "\x01B[0;33m"
#define	C_BLUE          "\x01B[0;34m"
#define	C_MAGENTA       "\x01B[0;35m"
#define	C_CYAN          "\x01B[0;36m"
#define	C_WHITE         "\x01B[0;37m"
#define	CB_BLACK        "\x01B[1;30m"
#define	CB_RED          "\x01B[1;31m"
#define	CB_GREEN        "\x01B[1;32m"
#define	CB_YELLOW       "\x01B[1;33m"
#define	CB_BLUE         "\x01B[1;34m"
#define	CB_MAGENTA      "\x01B[1;35m"
#define	CB_CYAN         "\x01B[1;36m"
#define	CB_WHITE        "\x01B[1;37m"
#define	C_CLEAR         "\x01B[0m"
#define C_RANDOM        "{`"

#define	RED_BG          "\x01B[0;41m"
#define	BLUE_BG         "\x01B[0;44m"
#define	GREEN_BG        "\x01B[0;42m"
#define	BLACK_BG        "\x01B[0;40m"
#define	WHITE_BG        "\x01B[0;47m"
#define	MAGENTA_BG      "\x01B[0;45m"
#define	YELLOW_BG       "\x01B[0;43m"
#define	CYAN_BG         "\x01B[0;46m"
#define	RED_BBG         "\x01B[1;41m"
#define	BLUE_BBG        "\x01B[1;44m"
#define	GREEN_BBG       "\x01B[1;42m"
#define	BLACK_BBG       "\x01B[1;40m"
#define	WHITE_BBG       "\x01B[1;47m"
#define	MAGENTA_BBG     "\x01B[1;45m"
#define	YELLOW_BBG      "\x01B[1;43m"
#define	CYAN_BBG        "\x01B[1;46m"
#define RANDOM_BG       "{="

#define	BAR_1 "-----------------------------------------------------------------------------{x\n\r"
#define	BAR_2 "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-{x\n\r"
#define	BAR_3 "oOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOo{x\n\r"
#define	BAR_4 "ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo{x\n\r"

#define ALIGN_NONE   0
#define ALIGN_LEFT   1
#define ALIGN_CENTER 2
#define ALIGN_RIGHT  3

#define _DEFAULT    0
#define	_GOSSIP1    1
#define	_GOSSIP2    2
#define	_GOSSIP3    3
#define	_MUSIC1     4
#define	_MUSIC2     5
#define	_MUSIC3     6
#define	_QA1        7
#define	_QA2        8
#define	_QA3        9
#define	_QUOTE1     10
#define	_QUOTE2     11
#define	_QUOTE3     12
#define	_GRATS1     13
#define	_GRATS2     14
#define	_GRATS3     15
#define	_SHOUT1     16
#define	_SHOUT2     17
#define	_IMMTALK1   18
#define	_IMMTALK2   19
#define	_IMMTALK3   20
#define	_TELLS1     21
#define	_TELLS2     22
#define	_SAY1       23
#define	_SAY2       24
#define	_SKILL      25
#define	_YHIT       26
#define	_OHIT       27
#define	_VHIT       28
#define	_WRACE      29
#define	_WCLASS     30
#define	_WLEVEL     31
#define	_RTITLE     32
#define	_SCORE1     33
#define	_SCORE2     34
#define	_SCORE3     35
#define	_SCOREB     36
#define	_WIZNET     37
#define _GTELL1     38
#define _GTELL2     39
#define _WHOIS1     40
#define _WHOIS2     41
#define _WHOISB     42
#define MAX_CUSTOM_COLOUR 43

/* ANSI_CUSTOM AND ANSI_END CHARACTERS IN STRING FORM */
#define C_START  "\x11"
#define C_END	 "\x12"

/* Convert slot numbers into strings with ANSI_CUSTOM codes */
#define cstr(s) C_START #s C_END
#define CTAG(s) cstr(s)

/* CTAG USAGE: 

    act("" CTAG(_SAY1) "$n says " CTAG(_SAY2) "' have a nice day!", ch, NULL, NULL, TO_ROOM);
    or
    sprintf(buf, "%s%s says %s' have a nice day!'\n\r", CTAG(_SAY1), ch->name, CTAG(_SAY2));
*/

#endif