- red.increment = newr / fade_steps;
- red.remainder = newr - red.increment * fade_steps;
- grn.increment = newg / fade_steps;
- grn.remainder = newg - grn.increment * fade_steps;
- blu.increment = newb / fade_steps;
- blu.remainder = newb - blu.increment * fade_steps;
- wht.increment = neww / fade_steps;
- wht.remainder = neww - wht.increment * fade_steps;
+ red.increment = (newr - red.value) / fade_steps;
+ red.remainder = newr - (red.value + red.increment * fade_steps);
+ grn.increment = (newg - grn.value) / fade_steps;
+ grn.remainder = newg - (grn.value + grn.increment * fade_steps);
+ blu.increment = (newb - blu.value) / fade_steps;
+ blu.remainder = newb - (blu.value + blu.increment * fade_steps);
+ wht.increment = (neww - wht.value) / fade_steps;
+ wht.remainder = neww - (wht.value + wht.increment * fade_steps);