diff options
author | Andrei Karas <akaras@inbox.ru> | 2016-01-13 17:35:36 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2016-01-13 17:35:36 +0300 |
commit | 22d13b5dab4984d260991fde4e727b1abc8d9b3d (patch) | |
tree | 96d2b3375df888709c7fd01a3e28f98d0ab105a4 /src/resources/dye/dyepalette.cpp | |
parent | b842de88ed73ef8df2615014ad2984b136fa4238 (diff) | |
download | mv-22d13b5dab4984d260991fde4e727b1abc8d9b3d.tar.gz mv-22d13b5dab4984d260991fde4e727b1abc8d9b3d.tar.bz2 mv-22d13b5dab4984d260991fde4e727b1abc8d9b3d.tar.xz mv-22d13b5dab4984d260991fde4e727b1abc8d9b3d.zip |
In dye palette aAdd support for setting alpha color with colors from GIMP palette.
Example: @color1,+25,color2,color3
color1 using alpha channel 0xff
color2 and color3 using alpha channel 0x25
Diffstat (limited to 'src/resources/dye/dyepalette.cpp')
-rw-r--r-- | src/resources/dye/dyepalette.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/resources/dye/dyepalette.cpp b/src/resources/dye/dyepalette.cpp index e3b3964ff..19ded4295 100644 --- a/src/resources/dye/dyepalette.cpp +++ b/src/resources/dye/dyepalette.cpp @@ -59,13 +59,25 @@ DyePalette::DyePalette(const std::string &restrict description, #ifndef DYECMD else if (description[0] == '@') { + uint8_t alpha = 255; FOR_EACH (StringVectCIter, it, parts) { const std::string str = *it; + if (str.empty()) + continue; + if (str[0] == '+') + { + if (str.size() != 3) + continue; + alpha = (hexDecode(str[1]) << 4) + hexDecode(str[2]); + continue; + } const DyeColor *const color = PaletteDB::getColor(str); if (color) { - mColors.push_back(*color); + DyeColor color2 = *color; + color2.value[3] = alpha; + mColors.push_back(color2); } else { |