diff options
author | Robert Vollmert <rvollmert@gmx.net> | 2009-11-08 09:15:26 +0100 |
---|---|---|
committer | Robert Vollmert <rvollmert@gmx.net> | 2009-11-08 09:15:47 +0100 |
commit | af639057a600e90cd5bde60e6ced076d47fc1310 (patch) | |
tree | 82a154dc457fbd28d7d82a076f9b4f201202c312 /crawl-ref/source/ray.cc | |
parent | 037aedaee6f7422881b77ee2939e7ede27555377 (diff) | |
download | crawl-ref-af639057a600e90cd5bde60e6ced076d47fc1310.tar.gz crawl-ref-af639057a600e90cd5bde60e6ced076d47fc1310.zip |
Convert reflect_grid to SquareArray.
Diffstat (limited to 'crawl-ref/source/ray.cc')
-rw-r--r-- | crawl-ref/source/ray.cc | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/crawl-ref/source/ray.cc b/crawl-ref/source/ray.cc index f2b8c067ef..e4d8e465ff 100644 --- a/crawl-ref/source/ray.cc +++ b/crawl-ref/source/ray.cc @@ -315,17 +315,17 @@ geom::vector _fudge_corner(const geom::vector &w, const reflect_grid &rg) { // just try both sides v.x += 10 * EPSILON_VALUE; - if (rg(floor_vec(v) + rg_o)) + if (rg(floor_vec(v))) v.x -= 20 * EPSILON_VALUE; - ASSERT(!rg(floor_vec(v) + rg_o)); + ASSERT(!rg(floor_vec(v))); } else { ASSERT(double_is_integral(v.y)); v.y += 10 * EPSILON_VALUE; - if (rg(floor_vec(v) + rg_o)) + if (rg(floor_vec(v))) v.y -= 20 * EPSILON_VALUE; - ASSERT(!rg(floor_vec(v) + rg_o)); + ASSERT(!rg(floor_vec(v))); } return (v); } @@ -365,9 +365,9 @@ geom::ray _bounce_noncorner(const geom::ray &r, const coord_def &side, // Determine which of the three relevant cells are bouncy. const coord_def dx = coord_def(side.x, 0); const coord_def dy = coord_def(0, side.y); - bool rx = rg(rg_o + dx); - bool ry = rg(rg_o + dy); - bool rxy = rg(rg_o + dx + dy); + bool rx = rg(dx); + bool ry = rg(dy); + bool rxy = rg(dx + dy); // One of the three neighbours on this side must be bouncy. ASSERT(rx || ry || rxy); @@ -415,18 +415,18 @@ geom::form _corner_wall(const coord_def &side, const reflect_grid &rg) e = coord_def(1, 0); else e = coord_def(0, 1); - ASSERT(!rg(rg_o) && rg(rg_o+side)); + ASSERT(!rg(coord_def(0,0)) && rg(side)); // Reflect back by an orthogonal wall... coord_def wall = e; // unless the wall is clearly diagonal: // ##. // #*. (with side.y == -1) - if (rg(rg_o+e) && rg(rg_o+side+e) && !rg(rg_o-e) && !rg(rg_o+side-e)) + if (rg(e) && rg(side+e) && !rg(-e) && !rg(side-e)) { // diagonal wall through side and e wall = side - e; } - else if (rg(rg_o-e) && rg(rg_o+side-e) && !rg(rg_o+e) && !rg(rg_o+side+e)) + else if (rg(-e) && rg(side-e) && !rg(e) && !rg(side+e)) { // diagonal wall through side and -e wall = side + e; @@ -473,7 +473,7 @@ geom::ray _bounce_corner(const geom::ray &rorig, const coord_def &side, void ray_def::bounce(const reflect_grid &rg) { ASSERT(_valid()); - ASSERT(!rg(rg_o)); // The cell we bounce from is not solid. + ASSERT(!rg(coord_def(0,0))); // The cell we bounce from is not solid. #ifdef DEBUG const coord_def old_pos = pos(); #endif @@ -523,7 +523,7 @@ void ray_def::bounce(const reflect_grid &rg) on_corner = is_corner(r.start); ASSERT(_valid()); - ASSERT(!rg(pos() - old_pos + rg_o)); + ASSERT(!rg(pos() - old_pos)); } double ray_def::get_degrees() const |