--- deliantra/server/common/los.C 2008/12/04 03:52:00 1.34 +++ deliantra/server/common/los.C 2008/12/04 22:32:41 1.35 @@ -317,14 +317,14 @@ } /* radius, distance => lightness adjust */ -static sint8 darkness[MAX_LIGHT_RADIUS * 2 + 1][MAX_LIGHT_RADIUS + 1]; +static sint8 darkness[MAX_LIGHT_RADIUS * 2 + 1][MAX_LIGHT_RADIUS * 3 / 2 + 1]; static struct darkness_init { darkness_init () { for (int radius = -MAX_LIGHT_RADIUS; radius <= MAX_LIGHT_RADIUS; ++radius) - for (int distance = 0; distance <= MAX_LIGHT_RADIUS; ++distance) + for (int distance = 0; distance <= MAX_LIGHT_RADIUS * 3 / 2; ++distance) { // max intensity int intensity = min (MAX_DARKNESS_LOS, abs (radius) + 1); @@ -333,7 +333,7 @@ intensity = max (0, lerp_rd (distance, 0, abs (radius) + 1, intensity, 0)); darkness [radius + MAX_LIGHT_RADIUS][distance] = radius < 0 - ? intensity + ? min (3, intensity) : MAX_DARKNESS_LOS - intensity; } }