home *** CD-ROM | disk | FTP | other *** search
/ Game.EXE 2002 May / Game.EXE_05_2002.iso / Alawar / Lib / Color.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2002-03-31  |  762 b   |  35 lines

  1. #include "Color.h"
  2. #include <stdio.h>
  3.  
  4. static char buffer[256];
  5.  
  6. const char * Converter::convert( const Color & val )
  7. {
  8.     unsigned r(val.r), g(val.g), b(val.b), a(val.a);
  9.     sprintf( buffer, "%d %d %d %d", r, g, b, a );
  10.     return buffer;
  11. }
  12.  
  13. bool Converter::convert( const char * stt, Color * val )
  14. {
  15.     unsigned r(255), g(255), b(255), a(255);
  16.     bool ok = sscanf( buffer, "%d %d %d %d", &r, &g, &b, &a ) == 4;
  17.     val->r = r;
  18.     val->g = g;
  19.     val->b = b;
  20.     val->a = a;
  21.     return ok;
  22. }
  23.  
  24. const Color::Table Color::alpha_table;
  25.  
  26. Color::Table::Table()
  27. {
  28.     for( int alp = 0; alp < 256; ++alp )
  29.         for( int val = 0; val < 256; ++val )
  30.         {
  31.             float result = 0.49f + val*alp/255.0f;
  32.             data[alp][val] = (result > 255) ? 255 : (unsigned char)result;
  33.         }
  34. }
  35.