/////////////////////////////////////////////////////////// ///////////////// Have an itch? Scratch it! /////////////// ///////////////////////// SCRATCH ///////////////////////// ///////////////////// A MUD Server //////////////////// ///////////////////// By: Jared Devall //////////////////// ///////////////////// Thanks: //////////////////// ///////////////////// DIKU/Merc/ROM //////////////////// ///////////////////// Aetas/Deus Gang //////////////////// ///////////////////// Beej //////////////////// /////////////////////////////////////////////////////////// #include "colorTable.h" using namespace std; ColorTable ColorTable::_instance; const char ColorTable::COLOR_ESCAPE = '{'; const char ColorTable::COLOR_CLEAR = 'x'; ColorTable::ColorTable( ) { const char ESCAPE_STRING[] = {COLOR_ESCAPE, '\0'}; _colormap.insert( make_pair( COLOR_ESCAPE, string( ESCAPE_STRING ) ) ); // COLOR_ESCAPE _colormap.insert( make_pair( COLOR_CLEAR, string( "\033[0;0m" ) ) ); // Clear _colormap.insert( make_pair( '\n', string( "\n" ) ) ); // Newline -- no effect _colormap.insert( make_pair( 'W', string( "\033[1;37m" ) ) ); // Bright White _colormap.insert( make_pair( 'k', string( "\033[1;30m" ) ) ); // Gray _colormap.insert( make_pair( 'b', string( "\033[34m" ) ) ); // Blue _colormap.insert( make_pair( 'B', string( "\033[1;34m" ) ) ); // Bright Blue _colormap.insert( make_pair( 'A', string( "\033[44m" ) ) ); // Background Blue _colormap.insert( make_pair( 'g', string( "\033[32m" ) ) ); // Green _colormap.insert( make_pair( 'G', string( "\033[1;32m" ) ) ); // Bright Green _colormap.insert( make_pair( 'E', string( "\033[42m" ) ) ); // Background Green _colormap.insert( make_pair( 'c', string( "\033[36m" ) ) ); // Cyan _colormap.insert( make_pair( 'C', string( "\033[1;36m" ) ) ); // Bright Cyan _colormap.insert( make_pair( 'r', string( "\033[31m" ) ) ); // Red _colormap.insert( make_pair( 'R', string( "\033[1;31m" ) ) ); // Bright Red _colormap.insert( make_pair( 'D', string( "\033[41" ) ) ); // Background Red _colormap.insert( make_pair( 'p', string( "\033[35m" ) ) ); // Purple _colormap.insert( make_pair( 'P', string( "\033[1;35m" ) ) ); // Bright Purple _colormap.insert( make_pair( 'y', string( "\033[33m" ) ) ); // Orange _colormap.insert( make_pair( 'Y', string( "\033[1;33m" ) ) ); // Yellow _colormap.insert( make_pair( 'a', string( "\033[1;44m" ) ) ); // Bright Background Blue _colormap.insert( make_pair( 'd', string( "\033[1;41m" ) ) ); // Bright Background Red _colormap.insert( make_pair( '^', string( "\033[0;1m" ) ) ); // Bold } const string &ColorTable::Substitute( char key ) { static const string empty_string; ColorMap::iterator it( _instance._colormap.find( key ) ); return it == _instance._colormap.end() ? empty_string : it->second; }