forked from 0ad/0ad
Changed the add_color GUI sprite effect to use alpha=0 by default
This was SVN commit r1625.
This commit is contained in:
parent
0a99e2a189
commit
31f0e62c83
@ -1548,16 +1548,17 @@ void CGUI::Xeromyces_ReadEffects(XMBElement Element, CXeromyces* pFile, SGUIImag
|
||||
CStr attr_name (pFile->getAttributeString(attr.Name));
|
||||
CStr attr_value (attr.Value);
|
||||
|
||||
#define COLOR(xml, mem) \
|
||||
#define COLOR(xml, mem, alpha) \
|
||||
if (attr_name == xml) \
|
||||
{ \
|
||||
CColor color; \
|
||||
if (!GUI<CColor>::ParseString(attr_value, color)) \
|
||||
if (!GUI<int>::ParseColor(attr_value, color, alpha)) \
|
||||
ReportParseError("Error parsing '%s' (\"%s\")", attr_name.c_str(), attr_value.c_str()); \
|
||||
else effects.m_##mem = color; \
|
||||
} \
|
||||
else
|
||||
|
||||
|
||||
#define BOOL(xml, mem) \
|
||||
if (attr_name == xml) \
|
||||
{ \
|
||||
@ -1565,8 +1566,8 @@ void CGUI::Xeromyces_ReadEffects(XMBElement Element, CXeromyces* pFile, SGUIImag
|
||||
} \
|
||||
else
|
||||
|
||||
COLOR("add_color", AddColor)
|
||||
COLOR("multiply_color", MultiplyColor)
|
||||
COLOR("add_color", AddColor, 0.f)
|
||||
COLOR("multiply_color", MultiplyColor, 255.f)
|
||||
BOOL("grayscale", Greyscale)
|
||||
|
||||
{
|
||||
|
@ -76,7 +76,7 @@ bool __ParseString<CClientArea>(const CStr& Value, CClientArea &Output)
|
||||
}
|
||||
|
||||
template <>
|
||||
bool __ParseString<CColor>(const CStr& Value, CColor &Output)
|
||||
bool GUI<int>::ParseColor(const CStr& Value, CColor &Output, float DefaultAlpha)
|
||||
{
|
||||
// Use the parser to parse the values
|
||||
CParser& parser (CParserCache::Get("_[-$arg(_minus)]$value_[-$arg(_minus)]$value_[-$arg(_minus)]$value_[[-$arg(_minus)]$value_]"));
|
||||
@ -91,7 +91,7 @@ bool __ParseString<CColor>(const CStr& Value, CColor &Output)
|
||||
return false;
|
||||
}
|
||||
float values[4];
|
||||
values[3] = 255.f; // default
|
||||
values[3] = DefaultAlpha;
|
||||
for (int i=0; i<(int)line.GetArgCount(); ++i)
|
||||
{
|
||||
if (!line.GetArgFloat(i, values[i]))
|
||||
@ -105,10 +105,17 @@ bool __ParseString<CColor>(const CStr& Value, CColor &Output)
|
||||
Output.g = values[1]/255.f;
|
||||
Output.b = values[2]/255.f;
|
||||
Output.a = values[3]/255.f;
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
template <>
|
||||
bool __ParseString<CColor>(const CStr& Value, CColor &Output)
|
||||
{
|
||||
return GUI<int>::ParseColor(Value, Output, 255.f);
|
||||
}
|
||||
|
||||
template <>
|
||||
bool __ParseString<CSize>(const CStr& Value, CSize &Output)
|
||||
{
|
||||
|
@ -303,6 +303,8 @@ public:
|
||||
return __ParseString<T>(Value, tOutput);
|
||||
}
|
||||
|
||||
static bool ParseColor(const CStr& Value, CColor &tOutput, float DefaultAlpha);
|
||||
|
||||
private:
|
||||
|
||||
// templated typedef of function pointer
|
||||
|
Loading…
Reference in New Issue
Block a user