summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/ray.cc
diff options
context:
space:
mode:
authorRobert Vollmert <rvollmert@gmx.net>2009-10-11 18:04:28 +0200
committerRobert Vollmert <rvollmert@gmx.net>2009-10-11 18:05:01 +0200
commitf2b5ebc9cb95f340ac80e751cdc434553d6b77f3 (patch)
tree3a9a80181e4e07f3a50afa1d531f72db954f33f1 /crawl-ref/source/ray.cc
parent76155fcf6ab0806582f42694e42f87dcb57938fd (diff)
downloadcrawl-ref-f2b5ebc9cb95f340ac80e751cdc434553d6b77f3.tar.gz
crawl-ref-f2b5ebc9cb95f340ac80e751cdc434553d6b77f3.zip
Some more ray_def cleanup.
Diffstat (limited to 'crawl-ref/source/ray.cc')
-rw-r--r--crawl-ref/source/ray.cc37
1 files changed, 18 insertions, 19 deletions
diff --git a/crawl-ref/source/ray.cc b/crawl-ref/source/ray.cc
index ca7ac771c2..0ce4daa57e 100644
--- a/crawl-ref/source/ray.cc
+++ b/crawl-ref/source/ray.cc
@@ -38,7 +38,7 @@ coord_def ray_def::pos() const
return coord_def(x(), y());
}
-double ray_def::reflect(double p, double c) const
+double _reflect(double p, double c)
{
return (c + c - p);
}
@@ -46,39 +46,38 @@ double ray_def::reflect(double p, double c) const
double ray_def::reflect(bool rx, double oldx, double newx) const
{
if (rx ? fabs(slope) > 1.0 : fabs(slope) < 1.0)
- return (reflect(oldx, floor(oldx) + 0.5));
+ return (_reflect(oldx, floor(oldx) + 0.5));
const double flnew = floor(newx);
const double flold = floor(oldx);
- return (reflect(oldx,
- flnew > flold? flnew :
- flold > flnew? flold :
- (newx + oldx) / 2));
+ return (_reflect(oldx,
+ flnew > flold ? flnew :
+ flold > flnew ? flold :
+ (newx + oldx) / 2));
}
void ray_def::set_reflect_point(const double oldx, const double oldy,
- double *newx, double *newy,
bool blocked_x, bool blocked_y)
{
if (blocked_x == blocked_y)
{
// What to do?
- *newx = oldx;
- *newy = oldy;
+ accx = oldx;
+ accy = oldy;
return;
}
if (blocked_x)
{
- ASSERT(int(oldy) != int(*newy));
- *newy = oldy;
- *newx = reflect(true, oldx, *newx);
+ ASSERT(int(oldy) != int(accy));
+ accy = oldy;
+ accx = reflect(true, oldx, accx);
}
else
{
- ASSERT(int(oldx) != int(*newx));
- *newx = oldx;
- *newy = reflect(false, oldy, *newy);
+ ASSERT(int(oldx) != int(accx));
+ accx = oldx;
+ accy = reflect(false, oldy, accy);
}
}
@@ -93,18 +92,18 @@ void ray_def::advance_and_bounce()
const double oldaccx = accx, oldaccy = accy;
int rc = advance(false);
int newx = x(), newy = y();
- ASSERT( grid_is_solid(grd[newx][newy]) );
+ ASSERT(grid_is_solid(grd[newx][newy]));
const bool blocked_x = grid_is_solid(grd[oldx][newy]);
const bool blocked_y = grid_is_solid(grd[newx][oldy]);
- if ( double_is_zero(slope) || slope > 100.0 )
+ if (double_is_zero(slope) || slope > 100.0)
quadrant = bouncequad[quadrant][2];
else if ( rc != 2 )
quadrant = bouncequad[quadrant][rc];
else
{
- ASSERT( (oldx != newx) && (oldy != newy) );
+ ASSERT((oldx != newx) && (oldy != newy));
if ( blocked_x && blocked_y )
quadrant = bouncequad[quadrant][rc];
else if ( blocked_x )
@@ -113,7 +112,7 @@ void ray_def::advance_and_bounce()
quadrant = bouncequad[quadrant][0];
}
- set_reflect_point(oldaccx, oldaccy, &accx, &accy, blocked_x, blocked_y);
+ set_reflect_point(oldaccx, oldaccy, blocked_x, blocked_y);
}
double ray_def::get_degrees() const