BVB Source Codes

CRYENGINE Show MissLocationSensor.h Source code

Return Download CRYENGINE: download MissLocationSensor.h Source code - Download CRYENGINE Source code - Type:.h
  1. // Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.
  2.  
  3. /********************************************************************
  4.    -------------------------------------------------------------------------
  5.    File name:   MissLocationSensor.h
  6.    $Id$
  7.    Description:
  8.  
  9.    -------------------------------------------------------------------------
  10.    History:
  11.    - 29 Mar 2010                         : Alex McCarthy: extracted from AIPlayer.h/cpp
  12.  
  13.  *********************************************************************/
  14. #ifndef __MISS_LOCATION_SENSOR__
  15. #define __MISS_LOCATION_SENSOR__
  16.  
  17. class CMissLocationSensor
  18. {
  19.         struct MissLocation
  20.         {
  21.                 enum EType
  22.                 {
  23.                         Destroyable,
  24.                         Lightweight,
  25.                         Rope,
  26.                         ManuallyBreakable,
  27.                         JointStructure,
  28.                         Deformable,
  29.                         MatBreakable,
  30.                         Unbreakable,
  31.                         Undefined,
  32.                 };
  33.  
  34.                 MissLocation()
  35.                         : position(ZERO)
  36.                         , type(Undefined)
  37.                         , score(0.0f)
  38.                 {
  39.                 }
  40.  
  41.                 MissLocation(const Vec3& pos, EType typ)
  42.                         : position(pos)
  43.                         , type(typ)
  44.                         , score(0.0f)
  45.                 {
  46.                 }
  47.  
  48.                 bool operator<(const MissLocation& rhs) const
  49.                 {
  50.                         return score < rhs.score;
  51.                 };
  52.  
  53.                 Vec3  position;
  54.                 float score;
  55.                 EType type;
  56.         };
  57.  
  58.         enum EState
  59.         {
  60.                 Starting = 0,
  61.                 Collecting,
  62.                 Filtering,
  63.                 Finishing,
  64.         };
  65.  
  66.         enum
  67.         {
  68.                 MaxCollectedCount  = 384,
  69.                 MaxConsiderCount   = 32,
  70.                 MaxRopeVertexCount = 4,
  71.                 MaxRandomPool      = 6,
  72.         };
  73.  
  74. public:
  75.         CMissLocationSensor(const CAIActor* owner);
  76.         virtual ~CMissLocationSensor();
  77.  
  78.         void Reset();
  79.         void Update(float timeLimit);
  80.         void Collect(int objTypes);
  81.         bool Filter(float timeLimit);
  82.         bool GetLocation(CAIObject* target, const Vec3& shootPos, const Vec3& shootDir, float maxAngle, Vec3& pos);
  83.  
  84.         void DebugDraw();
  85.  
  86.         void AddDestroyableClass(const char* className);
  87.         void ResetDestroyableClasses();
  88.  
  89. public:
  90.         void ClearEntities();
  91.  
  92.         typedef std::vector<IPhysicalEntity*> MissEntities;
  93.         MissEntities m_entities;
  94.  
  95.         typedef std::vector<MissLocation> MissLocations;
  96.         MissLocations m_locations;
  97.         MissLocations m_working;
  98.  
  99.         MissLocations m_goodies;
  100.  
  101.         typedef std::vector<IEntityClass*> DestroyableClasses;
  102.         DestroyableClasses m_destroyableEntityClasses;
  103.  
  104.         uint32             m_updateCount;
  105.         Vec3               m_lastCollectionLocation;
  106.  
  107.         EState             m_state;
  108.         const CAIActor*    m_owner;
  109. };
  110.  
  111. #endif // __MISS_LOCATION_SENSOR__
  112.  
downloadMissLocationSensor.h Source code - Download CRYENGINE Source code
Related Source Codes/Software:
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top