From 8e2cb151ba5ee963c9a9761ab07eb9480b78e8bd Mon Sep 17 00:00:00 2001 From: Lee Salzman Date: Sun, 30 May 2010 06:18:15 +0000 Subject: [PATCH] check if line starts inside cylinder git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@5111 e016b1c5-ed68-44aa-a2f7-31cac88cffde --- source/src/weapon.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/source/src/weapon.cpp b/source/src/weapon.cpp index 8ddc3563..74764321 100644 --- a/source/src/weapon.cpp +++ b/source/src/weapon.cpp @@ -233,7 +233,7 @@ static inline bool intersectcylinder(const vec &from, const vec &to, const vec & float offset = md + dist*nd; if(offset < 0) { - if(nd < 0) return false; + if(nd <= 0) return false; dist = -md / nd; if(k + dist*(2*mn + dist*nn) > 0) return false; } @@ -243,6 +243,11 @@ static inline bool intersectcylinder(const vec &from, const vec &to, const vec & dist = (dd - md) / nd; if(k + dd - 2*md + dist*(2*(mn-nd) + dist*nn) > 0) return false; } + else if(c <= 0) + { + dist = 0; + return true; + } return dist >= 0 && dist <= 1; }