From d15c5257fbe4fc12651fa1b59745550d87f4df8d Mon Sep 17 00:00:00 2001 From: Robert Vollmert Date: Fri, 13 Nov 2009 21:57:30 +0100 Subject: Make circle_def aware of map bounds. circle_def now has two modes, depending on whether origin is set. This is a little ugly. --- crawl-ref/source/coord-circle.cc | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'crawl-ref/source/coord-circle.cc') diff --git a/crawl-ref/source/coord-circle.cc b/crawl-ref/source/coord-circle.cc index 135924e33f..a4d98ad505 100644 --- a/crawl-ref/source/coord-circle.cc +++ b/crawl-ref/source/coord-circle.cc @@ -71,6 +71,8 @@ void circle_def::init(int param, circle_type ctype) } bbox = rect_def(origin - coord_def(radius, radius), origin + coord_def(radius, radius)); + if (!origin.origin()) + bbox = bbox.intersect(RECT_MAP_BOUNDS); } const rect_def& circle_def::get_bbox() const @@ -90,6 +92,8 @@ circle_iterator circle_def::iter() const bool circle_def::contains(const coord_def &p) const { + if (!bbox.contains(p)) + return (false); switch (shape) { case SH_SQUARE: -- cgit v1.2.3-54-g00ecf