diff --git a/Meter.c b/Meter.c index f7ad61aa..ff0f7000 100644 --- a/Meter.c +++ b/Meter.c @@ -376,23 +376,17 @@ static void GraphMeterMode_draw(Meter* this, int x, int y, int w) { for (int i = nValues - (w*2) + 2, k = 0; i < nValues; i+=2, k++) { const double dot = (1.0 / (pixperrow * 4)); - int v1 = data->values[i] / dot; - int v2 = data->values[i+1] / dot; - - if (v1 == 0) v1 = 1; - if (v2 == 0) v2 = 1; - - int level = pixperrow * 3; + int v1 = MIN(pixperrow * 4, MAX(1, data->values[i] / dot)); + int v2 = MIN(pixperrow * 4, MAX(1, data->values[i+1] / dot)); + int colorIdx = GRAPH_1; for (int line = 0; line < 4; line++) { - - int line1 = MIN(pixperrow, MAX(0, v1 - level)); - int line2 = MIN(pixperrow, MAX(0, v2 - level)); - + int line1 = MIN(pixperrow, MAX(0, v1 - (pixperrow * (3 - line)))); + int line2 = MIN(pixperrow, MAX(0, v2 - (pixperrow * (3 - line)))); + attrset(CRT_colors[colorIdx]); mvaddstr(y+line, x+k, GraphMeterMode_dots[line1 * (pixperrow + 1) + line2]); colorIdx = GRAPH_2; - level -= pixperrow; } } attrset(CRT_colors[RESET_COLOR]);