/* _______ __ __ __ ______ __ __ _______ __ __
* / _____/\ / /\ / /\ / /\ / ____/\ / /\ / /\ / ___ /\ / |\/ /\
* / /\____\// / // / // / // /\___\// /_// / // /\_/ / // , |/ / /
* / / /__ / / // / // / // / / / ___ / // ___ / // /| ' / /
* / /_// /\ / /_// / // / // /_/_ / / // / // /\_/ / // / | / /
* /______/ //______/ //_/ //_____/\ /_/ //_/ //_/ //_/ //_/ /|_/ /
* \______\/ \______\/ \_\/ \_____\/ \_\/ \_\/ \_\/ \_\/ \_\/ \_\/
*
* Copyright (c) 2004, 2005, 2006, 2007 Olof Naessén and Per Larsson
*
* Js_./
* Per Larsson a.k.a finalman _RqZ{a<^_aa
* Olof Naessén a.k.a jansem/yakslem _asww7!uY`> )\a//
* _Qhm`] _f "'c 1!5m
* Visit: http://guichan.darkbits.org )Qk
ws?a-?' ._/L #'
* binary forms, with or without )4d[#7r, . ' )d`)[
* modification, are permitted provided _Q-5'5W..j/?' -?!\)cam'
* that the following conditions are met: j<. a J@\
* this list of conditions and the j(]1u> 16) & 0xFF;
g = (color >> 8) & 0xFF;
b = color & 0xFF;
}
Color::Color(int r, int g, int b, int a)
{
this->r = r;
this->g = g;
this->b = b;
this->a = a;
}
Color Color::operator+(const Color& color) const
{
Color result;
result.r = r + color.r;
result.g = g + color.g;
result.b = b + color.b;
result.a = 255;
result.r = (result.r>255?255:(result.r<0?0:result.r));
result.g = (result.g>255?255:(result.g<0?0:result.g));
result.b = (result.b>255?255:(result.b<0?0:result.b));
return result;
}
Color Color::operator-(const Color& color) const
{
Color result;
result.r = r - color.r;
result.g = g - color.g;
result.b = b - color.b;
result.a = 255;
result.r = (result.r>255?255:(result.r<0?0:result.r));
result.g = (result.g>255?255:(result.g<0?0:result.g));
result.b = (result.b>255?255:(result.b<0?0:result.b));
return result;
}
Color Color::operator*(float value) const
{
Color result;
result.r = (int)(r * value);
result.g = (int)(g * value);
result.b = (int)(b * value);
result.a = a;
result.r = (result.r>255?255:(result.r<0?0:result.r));
result.g = (result.g>255?255:(result.g<0?0:result.g));
result.b = (result.b>255?255:(result.b<0?0:result.b));
return result;
}
bool Color::operator==(const Color& color) const
{
return r == color.r && g == color.g && b == color.b && a == color.a;
}
bool Color::operator!=(const Color& color) const
{
return !(r == color.r && g == color.g && b == color.b && a == color.a);
}
}