BVB Source Codes

CRYENGINE Show UnitImg.h Source code

Return Download CRYENGINE: download UnitImg.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:   LeaderAction.h
  6.  
  7.    Description: Header for CUnitImg class
  8.  
  9.    -------------------------------------------------------------------------
  10.    History:
  11.    - 22/05/2006 : Moved from LeaderAction by Mikko
  12.  
  13.  *********************************************************************/
  14.  
  15. #ifndef __UnitImg_H__
  16. #define __UnitImg_H__
  17.  
  18. #if _MSC_VER > 1000
  19.         #pragma once
  20. #endif
  21.  
  22. #include <CryAISystem/IAgent.h>
  23. #include "UnitAction.h"
  24. #include <list>
  25.  
  26. class CAIActor;
  27. //class CAIObject;
  28. class CUnitImg;
  29. typedef std::list<CUnitImg> TUnitList;
  30.  
  31. class CUnitImg
  32. {
  33. public:
  34.         typedef enum
  35.         {
  36.                 UF_FOLLOWING = 1 << 0,
  37.                   UF_HIDING  = 1 << 1,
  38.                   UF_BEHIND  = 1 << 2,
  39.                   UF_FAR     = 1 << 3,
  40.                   UF_MOVING  = 1 << 4,
  41.                   UF_SPECIAL = 1 << 5
  42.         } EUnitFlags;
  43.  
  44.         CUnitImg();
  45.         CUnitImg(CWeakRef<CAIActor> refUnit);
  46.         ~CUnitImg();
  47.  
  48.         inline bool operator==(const CAIActor* thing) const    { return m_refUnit.GetAIObject() == thing; }
  49.         inline bool operator==(const CUnitImg& otherImg) const { return m_refUnit == otherImg.m_refUnit; }
  50.         inline bool operator!=(const CUnitImg& otherImg) const { return m_refUnit != otherImg.m_refUnit; }
  51.         inline bool operator!=(const CAIActor* thing) const    { return m_refUnit.GetAIObject() != thing; }
  52.  
  53.         void        TaskExecuted();
  54.         void        ExecuteTask();
  55.         void        ClearPlanning(int priority = 0);
  56.         void        ClearUnitAction(EUnitAction action);
  57.         bool        IsPlanFinished() const;
  58.         void        SuspendTask();
  59.         void        ResumeTask();
  60.         inline bool IsTaskSuspended() const { return m_bTaskSuspended; };
  61.         bool        IsBlocked() const;
  62.         inline bool Idle() const            { return m_pCurrentAction == NULL; };
  63.  
  64.         inline void SetFollowing()
  65.         {
  66.                 m_flags |= UF_FOLLOWING;
  67.         }
  68.  
  69.         inline void ClearFollowing()
  70.         {
  71.                 m_flags &= ~UF_FOLLOWING;
  72.         }
  73.  
  74.         inline bool IsFollowing()
  75.         {
  76.                 return (m_flags & UF_FOLLOWING) != 0;
  77.         }
  78.  
  79.         inline bool IsSpecial()
  80.         {
  81.                 return (m_flags & UF_SPECIAL) != 0;
  82.         }
  83.  
  84.         inline void SetSpecial()
  85.         {
  86.                 m_flags |= UF_SPECIAL;
  87.         }
  88.  
  89.         inline void ClearSpecial()
  90.         {
  91.                 m_flags &= ~UF_SPECIAL;
  92.         }
  93.  
  94.         inline void SetHiding()
  95.         {
  96.                 m_flags |= UF_HIDING;
  97.         }
  98.  
  99.         inline void ClearHiding()
  100.         {
  101.                 m_flags &= ~UF_HIDING;
  102.         }
  103.  
  104.         inline bool IsHiding()
  105.         {
  106.                 return (m_flags & UF_HIDING) != 0;
  107.         }
  108.  
  109.         inline void SetBehind()
  110.         {
  111.                 m_flags |= UF_BEHIND;
  112.         }
  113.  
  114.         inline void ClearBehind()
  115.         {
  116.                 m_flags &= ~UF_BEHIND;
  117.         }
  118.  
  119.         inline bool IsBehind()
  120.         {
  121.                 return (m_flags & UF_BEHIND) != 0;
  122.         }
  123.  
  124.         inline void SetMoving()
  125.         {
  126.                 m_flags |= UF_MOVING;
  127.         }
  128.  
  129.         inline void ClearMoving()
  130.         {
  131.                 m_flags &= ~UF_MOVING;
  132.         }
  133.  
  134.         inline bool IsMoving()
  135.         {
  136.                 return (m_flags & UF_MOVING) != 0;
  137.         }
  138.  
  139.         inline void SetFar()
  140.         {
  141.                 m_flags |= UF_FAR;
  142.         }
  143.  
  144.         inline void ClearFar()
  145.         {
  146.                 m_flags &= ~UF_FAR;
  147.         }
  148.  
  149.         inline bool IsFar()
  150.         {
  151.                 return (m_flags & UF_FAR) != 0;
  152.         }
  153.  
  154.         inline void ClearFlags()
  155.         {
  156.                 m_flags = 0;
  157.         }
  158.  
  159.         inline void         SetProperties(unsigned int prop) { m_properties = prop; };
  160.         inline unsigned int GetProperties() const            { return m_properties; };
  161.         const CUnitAction*  GetCurrentAction() const         { return m_pCurrentAction; };
  162.         inline int          GetClass() const                 { return m_SoldierClass; };
  163.         inline void         SetClass(int soldierclass)       { m_SoldierClass = soldierclass; };
  164.         inline float        GetWidth()                       { return m_fWidth; }
  165.         inline float        GetHeight()                      { return m_fHeight; }
  166.         inline void         SetWidth(float w)                { m_fWidth = w; }
  167.         inline void         SetHeight(float h)               { m_fHeight = h; }
  168.  
  169.         void                Serialize(TSerialize ser);
  170.         void                Reset();
  171.  
  172.         CWeakRef<CAIActor> m_refUnit;
  173.         TActionList        m_Plan;
  174.         Vec3               m_TagPoint;
  175.         uint16             m_flags;
  176.         int                m_Group;   // used to split units in different groups
  177.         int                m_FormationPointIndex;
  178.         int                m_SoldierClass;
  179.         float              m_fDistance;
  180.         float              m_fDistance2;
  181.         CTimeValue         m_lastReinforcementTime;
  182.  
  183.         uint32             m_properties; // binary mask to set properties (UPR_*)
  184.         CTimeValue         m_lastMoveTime;
  185.  
  186. private:
  187.         CUnitAction* m_pCurrentAction;
  188.         bool         m_bTaskSuspended;
  189.         float        m_fWidth;
  190.         float        m_fHeight;
  191. };
  192.  
  193. #endif
  194.  
downloadUnitImg.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