BVB Source Codes

CRYENGINE Show Environment.h Source code

Return Download CRYENGINE: download Environment.h Source code - Download CRYENGINE Source code - Type:.h
  1. // Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.
  2.  
  3. // -------------------------------------------------------------------------
  4. //  File name:   AIEnvironment.h
  5. //  Created:     29/02/2008 by Matthew
  6. //  Description: Simple global struct for accessing major module pointers
  7. //  Notes:       auto_ptrs to handle init/delete would be great,
  8. //               but exposing autoptrs to the rest of the code needs thought
  9. // -------------------------------------------------------------------------
  10. //  History:
  11. //
  12. ////////////////////////////////////////////////////////////////////////////
  13.  
  14. #ifndef __AIENVIRONMENT
  15. #define __AIENVIRONMENT
  16.  
  17. #pragma once
  18.  
  19. #include "Configuration.h"
  20. #include "AIConsoleVariables.h"
  21. #include "AISignalCRCs.h"
  22. #include <CryPhysics/RayCastQueue.h>
  23. #include <CryPhysics/IntersectionTestQueue.h>
  24.  
  25. //////////////////////////////////////////////////////////////////////////
  26. // AI system environment.
  27. // For internal use only!
  28. // Contain pointers to commonly needed modules for simple, efficient lookup
  29. // Need a clear point in execution when these will all be valid
  30. //////////////////////////////////////////////////////////////////////////
  31. class ActorLookUp;
  32. struct IGoalOpFactory;
  33. class CObjectContainer;
  34. class CCodeCoverageTracker;
  35. class CCodeCoverageManager;
  36. class CCodeCoverageGUI;
  37. class CStatsManager;
  38. class CTacticalPointSystem;
  39. class CTargetTrackManager;
  40. struct IAIDebugRenderer;
  41. class CPipeManager;
  42. class CGraph;
  43. namespace MNM
  44. {
  45. class PathfinderNavigationSystemUser;
  46. }
  47. class CMNMPathfinder;
  48. class CNavigation;
  49. class CAIActionManager;
  50. class CSmartObjectManager;
  51. class CPerceptionManager;
  52. class CCommunicationManager;
  53. class CCoverSystem;
  54. class CSelectionTreeManager;
  55. namespace BehaviorTree
  56. {
  57. class BehaviorTreeManager;
  58. class GraftManager;
  59. }
  60. class CVisionMap;
  61. class CFactionMap;
  62. class CGroupManager;
  63. class CollisionAvoidanceSystem;
  64. class CAIObjectManager;
  65. class WalkabilityCacheManager;
  66. class NavigationSystem;
  67. namespace AIActionSequence {
  68. class SequenceManager;
  69. }
  70. class ClusterDetector;
  71.  
  72. #ifdef CRYAISYSTEM_DEBUG
  73. class CAIRecorder;
  74. struct IAIBubblesSystem;
  75. #endif //CRYAISYSTEM_DEBUG
  76.  
  77. struct SAIEnvironment
  78. {
  79.         AIConsoleVars            CVars;
  80.         AISIGNALS_CRC            SignalCRCs;
  81.  
  82.         SConfiguration           configuration;
  83.  
  84.         ActorLookUp*             pActorLookUp;
  85.         WalkabilityCacheManager* pWalkabilityCacheManager;
  86.         IGoalOpFactory*          pGoalOpFactory;
  87.         CObjectContainer*        pObjectContainer;
  88.  
  89. #if !defined(_RELEASE)
  90.         CCodeCoverageTracker* pCodeCoverageTracker;
  91.         CCodeCoverageManager* pCodeCoverageManager;
  92.         CCodeCoverageGUI*     pCodeCoverageGUI;
  93. #endif
  94.  
  95.         CStatsManager*                       pStatsManager;
  96.         CTacticalPointSystem*                pTacticalPointSystem;
  97.         CTargetTrackManager*                 pTargetTrackManager;
  98.         CAIObjectManager*                    pAIObjectManager;
  99.         CPipeManager*                        pPipeManager;
  100.         CGraph*                              pGraph; // superseded by NavigationSystem - remove when all links are cut
  101.         MNM::PathfinderNavigationSystemUser* pPathfinderNavigationSystemUser;
  102.         CMNMPathfinder*                      pMNMPathfinder; // superseded by NavigationSystem - remove when all links are cut
  103.         CNavigation*                         pNavigation;    // superseded by NavigationSystem - remove when all links are cut
  104.         CAIActionManager*                    pAIActionManager;
  105.         CSmartObjectManager*                 pSmartObjectManager;
  106.  
  107.         CPerceptionManager*                  pPerceptionManager;
  108.  
  109.         CCommunicationManager*               pCommunicationManager;
  110.         CCoverSystem*                        pCoverSystem;
  111.         NavigationSystem*                    pNavigationSystem;
  112.         CSelectionTreeManager*               pSelectionTreeManager;
  113.         BehaviorTree::BehaviorTreeManager*   pBehaviorTreeManager;
  114.         BehaviorTree::GraftManager*          pGraftManager;
  115.         CVisionMap*                          pVisionMap;
  116.         CFactionMap*                         pFactionMap;
  117.         CGroupManager*                       pGroupManager;
  118.         CollisionAvoidanceSystem*            pCollisionAvoidanceSystem;
  119.         struct IMovementSystem*              pMovementSystem;
  120.         AIActionSequence::SequenceManager*   pSequenceManager;
  121.         ClusterDetector*                     pClusterDetector;
  122.  
  123. #ifdef CRYAISYSTEM_DEBUG
  124.         IAIBubblesSystem* pBubblesSystem;
  125. #endif
  126.  
  127.         typedef RayCastQueue<41> GlobalRayCaster;
  128.         GlobalRayCaster* pRayCaster;
  129.  
  130.         typedef IntersectionTestQueue<43> GlobalIntersectionTester;
  131.         GlobalIntersectionTester* pIntersectionTester;
  132.  
  133.         //more cache friendly
  134.         IPhysicalWorld* pWorld;//TODO use this more, or eliminate it.
  135.  
  136.         SAIEnvironment();
  137.         ~SAIEnvironment();
  138.  
  139.         IAIDebugRenderer* GetDebugRenderer();
  140.         IAIDebugRenderer* GetNetworkDebugRenderer();
  141.         void              SetDebugRenderer(IAIDebugRenderer* pAIDebugRenderer);
  142.         void              SetNetworkDebugRenderer(IAIDebugRenderer* pAIDebugRenderer);
  143.  
  144. #ifdef CRYAISYSTEM_DEBUG
  145.         CAIRecorder* GetAIRecorder();
  146.         void         SetAIRecorder(CAIRecorder* pAIRecorder);
  147. #endif //CRYAISYSTEM_DEBUG
  148.  
  149.         void ShutDown();
  150.  
  151.         void GetMemoryUsage(ICrySizer* pSizer) const {}
  152. private:
  153.         IAIDebugRenderer* pDebugRenderer;
  154.         IAIDebugRenderer* pNetworkDebugRenderer;
  155.  
  156. #ifdef CRYAISYSTEM_DEBUG
  157.         CAIRecorder* pRecorder;
  158. #endif //CRYAISYSTEM_DEBUG
  159. };
  160.  
  161. extern SAIEnvironment gAIEnv;
  162.  
  163. #endif // __AIENVIRONMENT
  164.  
downloadEnvironment.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