int x;
int i;
int j;
+ int k;
switch (rad->order)
{
}
}
break;
+ case Reo_spiral_out:
+ for (i = 0, j = 0, k = 0; i >= -(rad->radius); )
+ {
+ if (rad->affected[MAX_FOV_RADIUS + i][MAX_FOV_RADIUS + j])
+ {
+ rad->effect_fun(rad->centre_y + i, rad->centre_x + j, rad->pvt);
+ }
+ if ((i == 0) && (j == 0))
+ {
+ i = j = -1;
+ k = 1;
+ }
+ else if (i == -k)
+ {
+ if (j == k)
+ {
+ ++i;
+ }
+ else
+ {
+ ++j;
+ }
+ }
+ else if (j == k)
+ {
+ if (i == k)
+ {
+ --j;
+ }
+ else
+ {
+ ++i;
+ }
+ }
+ else if (i == k)
+ {
+ if (j == -k)
+ {
+ --i;
+ }
+ else
+ {
+ --j;
+ }
+ }
+ else if (j == -k)
+ {
+ if (i == 1 - k)
+ {
+ ++k;
+ i = -k;
+ j = -k;
+ }
+ else
+ {
+ --i;
+ }
+ }
+ }
+ break;
default:
print_msg("FATAL: attempt to use unimplemented radiance evaluation order %d\n", rad->order);
abort();