fixes trail flickering randomly. thx @blazoncek for discovering
This commit is contained in:
@@ -2547,10 +2547,27 @@ uint16_t mode_meteor() {
|
|||||||
const int max = SEGMENT.palette==5 || !SEGMENT.check1 ? 240 : 255;
|
const int max = SEGMENT.palette==5 || !SEGMENT.check1 ? 240 : 255;
|
||||||
// fade all leds to colors[1] in LEDs one step
|
// fade all leds to colors[1] in LEDs one step
|
||||||
for (int i = 0; i < SEGLEN; i++) {
|
for (int i = 0; i < SEGLEN; i++) {
|
||||||
if (random8() <= 255 - SEGMENT.intensity) {
|
uint32_t col;
|
||||||
byte meteorTrailDecay = 162 + random8(92);
|
if (hw_random8() <= 255 - SEGMENT.intensity) {
|
||||||
trail[i] = scale8(trail[i], meteorTrailDecay);
|
if(meteorSmooth) {
|
||||||
uint32_t col = SEGMENT.check1 ? SEGMENT.color_from_palette(i, true, false, 0, trail[i]) : SEGMENT.color_from_palette(trail[i], false, true, 255);
|
if (trail[i] > 0) {
|
||||||
|
int change = trail[i] + 4 - hw_random8(24); //change each time between -20 and +4
|
||||||
|
trail[i] = constrain(change, 0, max);
|
||||||
|
}
|
||||||
|
col = SEGMENT.check1 ? SEGMENT.color_from_palette(i, true, false, 0, trail[i]) : SEGMENT.color_from_palette(trail[i], false, true, 255);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
trail[i] = scale8(trail[i], 128 + hw_random8(127));
|
||||||
|
int index = trail[i];
|
||||||
|
int idx = 255;
|
||||||
|
int bri = SEGMENT.palette==35 || SEGMENT.palette==36 ? 255 : trail[i];
|
||||||
|
if (!SEGMENT.check1) {
|
||||||
|
idx = 0;
|
||||||
|
index = map(i,0,SEGLEN,0,max);
|
||||||
|
bri = trail[i];
|
||||||
|
}
|
||||||
|
col = SEGMENT.color_from_palette(index, false, false, idx, bri); // full brightness for Fire
|
||||||
|
}
|
||||||
SEGMENT.setPixelColor(i, col);
|
SEGMENT.setPixelColor(i, col);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user