Browse Source

logical inversion to stock functionality as requested. Now assumes if it has a target and does not hit anything Static by the time the ray terminates, then it must be the right target.

Azaezel 11 years ago
parent
commit
9bed39b7d0
1 changed files with 2 additions and 9 deletions
  1. 2 9
      Engine/source/T3D/aiPlayer.cpp

+ 2 - 9
Engine/source/T3D/aiPlayer.cpp

@@ -28,8 +28,7 @@
 #include "T3D/gameBase/moveManager.h"
 #include "T3D/gameBase/moveManager.h"
 #include "console/engineAPI.h"
 #include "console/engineAPI.h"
 
 
-static U32 sAIPlayerLoSMask = TerrainObjectType | WaterObjectType |
-                              ShapeBaseObjectType | StaticShapeObjectType;
+static U32 sAIPlayerLoSMask = TerrainObjectType | StaticShapeObjectType | StaticObjectType;
 
 
 IMPLEMENT_CO_NETOBJECT_V1(AIPlayer);
 IMPLEMENT_CO_NETOBJECT_V1(AIPlayer);
 
 
@@ -643,19 +642,13 @@ bool AIPlayer::checkInLos(GameBase* target, bool _useMuzzle, bool _checkEnabled)
       eyeMat.getColumn(3, &checkPoint );
       eyeMat.getColumn(3, &checkPoint );
    }
    }
 
 
-   bool hit = gServerContainer.castRay(checkPoint , target->getBoxCenter(), sAIPlayerLoSMask, &ri);
+   bool hit = !gServerContainer.castRay(checkPoint, target->getBoxCenter(), sAIPlayerLoSMask, &ri);
    enableCollision();
    enableCollision();
 
 
    for (S32 i = 0; i < mountCount; i++)
    for (S32 i = 0; i < mountCount; i++)
    {
    {
       target->getMountedObject(i)->enableCollision();
       target->getMountedObject(i)->enableCollision();
    }
    }
-
-   if (hit)
-   {
-      if (target != dynamic_cast<GameBase*>(ri.object)) hit = false;
-   }
-
    return hit;
    return hit;
 }
 }