From 6bdaccfb8c194bfa0bb0b6769babc3710d570b45 Mon Sep 17 00:00:00 2001 From: Robert Vollmert Date: Sun, 8 Nov 2009 16:29:24 +0100 Subject: Move see_cell_no_trans into player. Also collect actor/player LOS code in actor-los.cc. --- crawl-ref/source/actor-los.cc | 49 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 crawl-ref/source/actor-los.cc (limited to 'crawl-ref/source/actor-los.cc') diff --git a/crawl-ref/source/actor-los.cc b/crawl-ref/source/actor-los.cc new file mode 100644 index 0000000000..85e66fd8ab --- /dev/null +++ b/crawl-ref/source/actor-los.cc @@ -0,0 +1,49 @@ +#include "AppHdr.h" + +#include "actor.h" +#include "player.h" +#include "monster.h" +#include "state.h" + +bool actor::observable() const +{ + return (crawl_state.arena || this == &you || you.can_see(this)); +} + +bool actor::see_cell(const coord_def &p) const +{ + return (los.see_cell(p)); +} + +void actor::update_los() +{ + los.update(); +} + +bool actor::can_see(const actor *target) const +{ + return (target->visible_to(this) && see_cell(target->pos())); +} + +bool player::see_cell_no_trans(const coord_def &p) const +{ + return (los_no_trans.see_cell(p)); +} + +const los_def& actor::get_los_no_trans() +{ + return (los_no_trans); +} + +const los_def& monsters::get_los_no_trans() +{ + los_no_trans.update(); + return (los_no_trans); +} + +void player::update_los() +{ + los_no_trans.update(); + actor::update_los(); +} + -- cgit v1.2.3-54-g00ecf