From f086273d2b0ff4b0245055706a51733958862786 Mon Sep 17 00:00:00 2001 From: Scott Ehlert Date: Fri, 22 Sep 2006 15:11:51 +0000 Subject: [PATCH] Attempt at accuracy improvement for is_in_viewcone with 3D calculation (am44838) --- dlls/engine/engine.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/dlls/engine/engine.cpp b/dlls/engine/engine.cpp index 0e2fa601..3e1d119e 100755 --- a/dlls/engine/engine.cpp +++ b/dlls/engine/engine.cpp @@ -798,7 +798,7 @@ static cell AMX_NATIVE_CALL in_view_cone(AMX *amx, cell *params) CHECK_ENTITY(src); - Vector2D vec2LOS; + Vector vecLOS; float flDot; edict_t *pEdictSrc = INDEXENT(src); @@ -811,12 +811,12 @@ static cell AMX_NATIVE_CALL in_view_cone(AMX *amx, cell *params) Vector origin(vecOrigin[0], vecOrigin[1], vecOrigin[2]); - MAKE_VECTORS(pEdictSrc->v.angles); + MAKE_VECTORS(pEdictSrc->v.v_angle); - vec2LOS = (origin - pEdictSrc->v.origin).Make2D(); - vec2LOS = vec2LOS.Normalize(); + vecLOS = origin - (pEdictSrc->v.origin + pEdictSrc->v.view_ofs); + vecLOS = vecLOS.Normalize(); - flDot = DotProduct(vec2LOS, gpGlobals->v_forward.Make2D()); + flDot = DotProduct(vecLOS, gpGlobals->v_forward); if (flDot >= cos(pEdictSrc->v.fov * (M_PI / 360))) return 1;