From b33014e5510ddaf3a5088c934bbb53aa406b451c Mon Sep 17 00:00:00 2001 From: Robert Vollmert Date: Sun, 8 Nov 2009 01:25:43 +0100 Subject: Replace bounds_func with circle_def. The various LOS objects and functions now accept a circle_def instead of a bounds_func. This is a little less generic, but should eventually help with iterating over coordinates in any los_def. --- crawl-ref/source/los_def.cc | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'crawl-ref/source/los_def.cc') diff --git a/crawl-ref/source/los_def.cc b/crawl-ref/source/los_def.cc index 08144fe23b..b01938cf6f 100644 --- a/crawl-ref/source/los_def.cc +++ b/crawl-ref/source/los_def.cc @@ -5,34 +5,36 @@ #include "AppHdr.h" -#include "los.h" +#include "los_def.h" + +#include "coord-circle.h" los_def::los_def() - : show(0), opc(opc_default.clone()), bds(bds_default.clone()) + : show(0), opc(opc_default.clone()), bds(BDS_DEFAULT) { } los_def::los_def(const coord_def& c, const opacity_func &o, - const bounds_func &b) - : show(0), center(c), opc(o.clone()), bds(b.clone()) + const circle_def &b) + : show(0), center(c), opc(o.clone()), bds(b) { } los_def::los_def(const los_def& los) : show(los.show), center(los.center), - opc(los.opc->clone()), bds(los.bds->clone()) + opc(los.opc->clone()), bds(los.bds) { } los_def& los_def::operator=(const los_def& los) { - init(los.center, *los.opc, *los.bds); + init(los.center, *los.opc, los.bds); show = los.show; return (*this); } void los_def::init(const coord_def &c, const opacity_func &o, - const bounds_func &b) + const circle_def &b) { show.init(0); set_center(c); @@ -43,12 +45,11 @@ void los_def::init(const coord_def &c, const opacity_func &o, los_def::~los_def() { delete opc; - delete bds; } void los_def::update() { - losight(show, center, *opc, *bds); + losight(show, center, *opc, bds); } void los_def::set_center(const coord_def& c) @@ -62,15 +63,14 @@ void los_def::set_opacity(const opacity_func &o) opc = o.clone(); } -void los_def::set_bounds(const bounds_func &b) +void los_def::set_bounds(const circle_def &b) { - delete bds; - bds = b.clone(); + bds = b; } bool los_def::in_bounds(const coord_def& p) const { - return ((*bds)(p)); + return (bds.contains(p)); } bool los_def::see_cell(const coord_def& p) const -- cgit v1.2.3-54-g00ecf