diff --git a/wled00/FX.cpp b/wled00/FX.cpp index 30d1c6fa7..fbe72a89e 100644 --- a/wled00/FX.cpp +++ b/wled00/FX.cpp @@ -3581,10 +3581,13 @@ uint16_t mode_percent(void) { uint8_t size = (1 + ((SEGMENT.speed * SEGLEN) >> 11)); if (SEGMENT.speed == 255) size = 255; - if (percent < 100) { + if (percent <= 100) { for (int i = 0; i < SEGLEN; i++) { if (i < SEGENV.aux1) { - SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 0)); + if (SEGMENT.check1) + SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(map(percent,0,100,0,255), false, false, 0)); + else + SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 0)); } else { SEGMENT.setPixelColor(i, SEGCOLOR(1)); @@ -3596,7 +3599,10 @@ uint16_t mode_percent(void) { SEGMENT.setPixelColor(i, SEGCOLOR(1)); } else { - SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 0)); + if (SEGMENT.check1) + SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(map(percent,100,200,255,0), false, false, 0)); + else + SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 0)); } } } @@ -3611,7 +3617,7 @@ uint16_t mode_percent(void) { return FRAMETIME; } -static const char _data_FX_MODE_PERCENT[] PROGMEM = "Percent@,% of fill;!,!,;!;1d"; +static const char _data_FX_MODE_PERCENT[] PROGMEM = "Percent@,% of fill,,,,One color;!,!,;!;1d"; /* diff --git a/wled00/data/index.js b/wled00/data/index.js index c2a5ee1a2..bda92ee07 100644 --- a/wled00/data/index.js +++ b/wled00/data/index.js @@ -1395,7 +1395,7 @@ function setEffectParameters(idx) if (slOnOff.length>5) { gId('fxopt').classList.remove('fade'); for (let i = 0; i<3; i++) { - if (slOnOff[5+i]!=='') { + if (5+i