diff options
author | Robert Vollmert <rvollmert@gmx.net> | 2009-10-30 13:00:00 +0100 |
---|---|---|
committer | Robert Vollmert <rvollmert@gmx.net> | 2009-11-01 21:45:23 +0100 |
commit | 81392eb43b111bc23b2a7950c240494b9cf3d15d (patch) | |
tree | 214e14f3af5fb41943f1171f857c4dda2d4cd5be /crawl-ref/source/beam.cc | |
parent | 972124395af10024e5abc17878f92fde999e4c64 (diff) | |
download | crawl-ref-81392eb43b111bc23b2a7950c240494b9cf3d15d.tar.gz crawl-ref-81392eb43b111bc23b2a7950c240494b9cf3d15d.zip |
Remove ray antialiasing.
Previously, rays were always cut short at corners: If a ray really
went like
.....
@**..
..***
.....
it was cut short (for find_ray/targetting/shooting purposes) to
.....
@*...
..***
.....
Note that a wall at the removed cell would still block the given
ray!
This makes ray footprint length matter, so rays are sorted to
prefer those that pass through fewer cells.
However, this gives quite a few ugly beams, in particular around
corners.
Diffstat (limited to 'crawl-ref/source/beam.cc')
-rw-r--r-- | crawl-ref/source/beam.cc | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc index 3a8acbd9ac..96f3f09649 100644 --- a/crawl-ref/source/beam.cc +++ b/crawl-ref/source/beam.cc @@ -1408,7 +1408,7 @@ static void _munge_bounced_bolt(bolt &old_bolt, bolt &new_bolt, // Don't bounce straight into another wall. Can happen if the beam // is shot into an inside corner. ray_def test_ray = temp_ray; - test_ray.advance(true); + test_ray.advance(); if (in_bounds(test_ray.pos()) && !cell_is_solid(test_ray.pos())) break; @@ -2112,11 +2112,7 @@ void bolt::do_fire() // the cell. draw(pos()); - // A bounce takes away the meaning from the target. - if (bounces == 0) - ray.advance_through(target); - else - ray.advance(true); + ray.advance(); avoid_self = false; } |