fix deco colors being 1 R/G/B value less than they should be

The proper way would be to divide by 255, but that is slower than >>8. This is a better approximation (or perhaps equivalent?)
This commit is contained in:
jacob1
2017-06-17 21:02:31 -04:00
parent 42b8f52611
commit c1e91260eb

View File

@@ -1399,18 +1399,19 @@ void Renderer::render_parts()
//Apply decoration colour //Apply decoration colour
if(!(colour_mode & ~COLOUR_GRAD) && decorations_enable && deca) if(!(colour_mode & ~COLOUR_GRAD) && decorations_enable && deca)
{ {
deca++;
if(!(pixel_mode & NO_DECO)) if(!(pixel_mode & NO_DECO))
{ {
colr = (deca*decr + (255-deca)*colr) >> 8; colr = (deca*decr + (256-deca)*colr) >> 8;
colg = (deca*decg + (255-deca)*colg) >> 8; colg = (deca*decg + (256-deca)*colg) >> 8;
colb = (deca*decb + (255-deca)*colb) >> 8; colb = (deca*decb + (256-deca)*colb) >> 8;
} }
if(pixel_mode & DECO_FIRE) if(pixel_mode & DECO_FIRE)
{ {
firer = (deca*decr + (255-deca)*firer) >> 8; firer = (deca*decr + (256-deca)*firer) >> 8;
fireg = (deca*decg + (255-deca)*fireg) >> 8; fireg = (deca*decg + (256-deca)*fireg) >> 8;
fireb = (deca*decb + (255-deca)*fireb) >> 8; fireb = (deca*decb + (256-deca)*fireb) >> 8;
} }
} }