From: Martin Read Date: Mon, 23 Sep 2013 21:05:28 +0000 (+0100) Subject: Added outward-spiral tracer but did not test! X-Git-Tag: printmsg-purged~74 X-Git-Url: http://git.blackswordsonics.com/?a=commitdiff_plain;h=4d7513a76b537611f98797a471f07b88e5c3f77b;p=victrix-abyssi Added outward-spiral tracer but did not test! --- diff --git a/fov.c b/fov.c index dc10191..a204260 100644 --- a/fov.c +++ b/fov.c @@ -255,6 +255,7 @@ void resolve_radiance(Radiance *rad) int x; int i; int j; + int k; switch (rad->order) { @@ -270,6 +271,66 @@ void resolve_radiance(Radiance *rad) } } 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();