summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mon-project.cc
diff options
context:
space:
mode:
authorAdam Borowski <kilobyte@angband.pl>2010-01-03 20:56:16 +0100
committerAdam Borowski <kilobyte@angband.pl>2010-01-03 21:03:04 +0100
commitb8fc8202e00969a7585767100bee87a4def13fa5 (patch)
tree564408ec0e3077344c3d3ef7b55b5a6ca327f7bf /crawl-ref/source/mon-project.cc
parentda5a6f678e819f92d5d3dc2f26e62de2006eadaf (diff)
downloadcrawl-ref-b8fc8202e00969a7585767100bee87a4def13fa5.tar.gz
crawl-ref-b8fc8202e00969a7585767100bee87a4def13fa5.zip
IOOD: use the actual (floating point) ray traced.
Diffstat (limited to 'crawl-ref/source/mon-project.cc')
-rw-r--r--crawl-ref/source/mon-project.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/crawl-ref/source/mon-project.cc b/crawl-ref/source/mon-project.cc
index aa2b29f22e..6e00408a54 100644
--- a/crawl-ref/source/mon-project.cc
+++ b/crawl-ref/source/mon-project.cc
@@ -52,10 +52,15 @@ bool cast_iood(actor *caster, int pow, bolt *beam)
monsters &mon = menv[mind];
const coord_def pos = caster->pos();
- mon.props["iood_x"] = (float)pos.x;
- mon.props["iood_y"] = (float)pos.y;
- mon.props["iood_vx"] = (float)(beam->target.x - pos.x);
- mon.props["iood_vy"] = (float)(beam->target.y - pos.y);
+ beam->choose_ray();
+ dprf("beam (%d,%d)+t*(%d,%d) ray (%f,%f)+t*(%f,%f)",
+ pos.x, pos.y, beam->target.x - pos.x, beam->target.y - pos.y,
+ beam->ray.r.start.x - 0.5, beam->ray.r.start.y - 0.5,
+ beam->ray.r.dir.x, beam->ray.r.dir.y);
+ mon.props["iood_x"].get_float() = beam->ray.r.start.x - 0.5;
+ mon.props["iood_y"].get_float() = beam->ray.r.start.y - 0.5;
+ mon.props["iood_vx"].get_float() = beam->ray.r.dir.x;
+ mon.props["iood_vy"].get_float() = beam->ray.r.dir.y;
mon.props["iood_kc"].get_byte() = (caster->atype() == ACT_PLAYER) ? KC_YOU :
((monsters*)caster)->friendly() ? KC_FRIENDLY : KC_OTHER;
mon.props["iood_pow"].get_short() = pow;