BVB Source Codes

CRYENGINE Show ActionMap.h Source code

Return Download CRYENGINE: download ActionMap.h Source code - Download CRYENGINE Source code - Type:.h
  1. // Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.
  2.  
  3. /*************************************************************************
  4.    -------------------------------------------------------------------------
  5.    $Id$
  6.    $DateTime$
  7.    Description: Action Map implementation. Maps Actions to Keys.
  8.  
  9.    -------------------------------------------------------------------------
  10.    History:
  11.    - 7:9:2004   17:47 : Created by M谩rcio Martins
  12.    - 15:9:2010  12:30 : Revised by Dean Claassen
  13.  
  14. *************************************************************************/
  15. #ifndef __ACTIONMAP_H__
  16. #define __ACTIONMAP_H__
  17.  
  18. #if _MSC_VER > 1000
  19.         #pragma once
  20. #endif
  21.  
  22. #include <CryCore/Containers/CryListenerSet.h>
  23.  
  24. #include "IActionMapManager.h"
  25.  
  26. class CActionMapManager;
  27. class CActionMap;
  28.  
  29. typedef std::vector<SActionInput*> TActionInputs;
  30.  
  31. class CActionMapAction : public IActionMapAction
  32. {
  33. public:
  34.         CActionMapAction();
  35.         virtual ~CActionMapAction();
  36.  
  37.         // IActionMapAction
  38.         virtual void                GetMemoryUsage(ICrySizer* pSizer) const;
  39.         virtual void                Release()                  { delete this; };
  40.         virtual int                 GetNumActionInputs() const { return m_actionInputs.size(); };
  41.         virtual const SActionInput* FindActionInput(const char* szInput) const;
  42.         virtual const SActionInput* GetActionInput(const int iIndex) const;
  43.         virtual const SActionInput* GetActionInput(const EActionInputDevice device, const int iIndexByDevice) const;
  44.         virtual const ActionId& GetActionId() const             { return m_actionId; }
  45.         virtual const char*     GetTriggeredActionInput() const { return m_triggeredInput; };
  46.         // IActionMapAction
  47.  
  48.         bool          AddActionInput(const SActionInput& actionInput, const int iByDeviceIndex = -1);
  49.         bool          RemoveActionInput(uint32 inputCRC);
  50.         void          RemoveAllActionInputs();
  51.         SActionInput* AddAndGetActionInput(const SActionInput& actionInput);
  52.         void          SetParentActionMap(CActionMap* pParentActionMap) { m_pParentActionMap = pParentActionMap; }
  53.         SActionInput* FindActionInput(uint32 inputCRC);
  54.         SActionInput* GetActionInput(const int iIndex);
  55.         SActionInput* GetActionInput(const EActionInputDevice device, const int iIndexByDevice);
  56.         void          SetActionId(const ActionId& actionId)              { m_actionId = actionId; }
  57.         void          SetNumRebindedInputs(const int iNumRebindedInputs) { m_iNumRebindedInputs = iNumRebindedInputs; }
  58.         int           GetNumRebindedInputs() const                       { return m_iNumRebindedInputs; }
  59.  
  60. private:
  61.         TActionInputString m_triggeredInput;
  62.         ActionId           m_actionId;
  63.         TActionInputs      m_actionInputs;
  64.         CActionMap*        m_pParentActionMap;
  65.         int                m_iNumRebindedInputs;
  66. };
  67.  
  68. class CActionMap :
  69.         public IActionMap
  70. {
  71. public:
  72.         CActionMap(CActionMapManager* pActionMapManager, const char* name);
  73.         virtual ~CActionMap();
  74.  
  75.         // IActionMap
  76.         virtual void                    GetMemoryUsage(ICrySizer* pSizer) const override;
  77.         virtual void                    Release() override;
  78.         virtual void                    Clear() override;
  79.         virtual const IActionMapAction* GetAction(const ActionId& actionId) const override;
  80.         virtual IActionMapAction*       GetAction(const ActionId& actionId) override;
  81.         virtual bool                    CreateAction(const ActionId& actionId) override;
  82.         virtual bool                    RemoveAction(const ActionId& actionId) override;
  83.         virtual int                     GetActionsCount() const override { return m_actions.size(); };
  84.         virtual bool                    AddActionInput(const ActionId& actionId, const SActionInput& actionInput, const int iByDeviceIndex = -1) override;
  85.         virtual bool                    AddAndBindActionInput(const ActionId& actionId, const SActionInput& actionInput) override;
  86.         virtual bool                    RemoveActionInput(const ActionId& actionId, const char* szInput) override;
  87.         virtual bool                    ReBindActionInput(const ActionId& actionId, const char* szCurrentInput, const char* szNewInput) override;
  88.         virtual bool                    ReBindActionInput(const ActionId& actionId,
  89.                                                           const char* szNewInput,
  90.                                                           const EActionInputDevice device,
  91.                                                           const int iByDeviceIndex) override;
  92.         virtual int                         GetNumRebindedInputs() override { return m_iNumRebindedInputs; }
  93.         virtual bool                        Reset() override;
  94.         virtual bool                        LoadFromXML(const XmlNodeRef& actionMapNode) override;
  95.         virtual bool                        LoadRebindingDataFromXML(const XmlNodeRef& actionMapNode) override;
  96.         virtual bool                        SaveRebindingDataToXML(XmlNodeRef& actionMapNode) const override;
  97.         virtual IActionMapActionIteratorPtr CreateActionIterator() override;
  98.         virtual void                        SetActionListener(EntityId id) override;
  99.         virtual EntityId                    GetActionListener() const override;
  100.         virtual const char*                 GetName() override       { return m_name.c_str(); }
  101.         virtual void                        Enable(bool enable) override;
  102.         virtual bool                        Enabled() const override { return m_enabled; };
  103.         // ~IActionMap
  104.  
  105.         void EnumerateActions(IActionMapPopulateCallBack* pCallBack) const;
  106.         bool CanProcessInput(const SInputEvent& inputEvent, CActionMap* pActionMap, CActionMapAction* pAction, SActionInput* pActionInput);
  107.         bool IsActionInputTriggered(const SInputEvent& inputEvent, CActionMap* pActionMap, CActionMapAction* pAction, SActionInput* pActionInput) const;
  108.         void InputProcessed();
  109.         void ReleaseActionsIfActive();
  110.         void ReleaseActionIfActive(const ActionId& actionId);
  111.         void ReleaseFilteredActions();
  112.         void AddExtraActionListener(IActionListener* pExtraActionListener);
  113.         void RemoveExtraActionListener(IActionListener* pExtraActionListener);
  114.         void NotifyExtraActionListeners(const ActionId& action, int currentState, float value);
  115.         void AddFlowNodeActionListener(IActionListener* pExtraActionListener);
  116.         void RemoveFlowNodeActionListener(IActionListener* pExtraActionListener);
  117.         void NotifyFlowNodeActionListeners(const ActionId& action, int currentState, float value);
  118.  
  119. private:
  120.         CActionMapAction* CreateAndGetAction(const ActionId& actionId);
  121.         bool              AddAndBindActionInput(CActionMapAction* pAction, const SActionInput& actionInput);
  122.         bool              ReBindActionInput(CActionMapAction* pAction, const char* szCurrentInput, const char* szNewInput);
  123.         bool              ReBindActionInput(CActionMapAction* pAction, SActionInput& actionInput, const char* szNewInput);
  124.         bool              ReBindActionInput(CActionMapAction* pAction,
  125.                                             const char* szNewInput,
  126.                                             const EActionInputDevice device,
  127.                                             const int iByDeviceIndex);
  128.         void                          ReleaseActionIfActiveInternal(CActionMapAction& action);
  129.         EActionAnalogCompareOperation GetAnalogCompareOpTypeFromStr(const char* szTypeStr);
  130.         const char*                   GetAnalogCompareOpStr(EActionAnalogCompareOperation compareOpType) const;
  131.         void                          SetNumRebindedInputs(const int iNumRebindedInputs) { m_iNumRebindedInputs = iNumRebindedInputs; }
  132.         bool                          LoadActionInputAttributesFromXML(const XmlNodeRef& actionInputNode, SActionInput& actionInput);
  133.         bool                          SaveActionInputAttributesToXML(XmlNodeRef& actionInputNode, const SActionInput& actionInput) const;
  134.         void                          LoadActivationModeBitAttributeFromXML(const XmlNodeRef& attributeNode, int& activationFlags, const char* szActivationModeName, EActionActivationMode activationMode);
  135.         void                          SaveActivationModeBitAttributeToXML(XmlNodeRef& attributeNode, const int activationFlags, const char* szActivationModeName, EActionActivationMode activationMode) const;
  136.  
  137.         typedef std::map<ActionId, CActionMapAction> TActionMap;
  138.         typedef CListenerSet<IActionListener*>       TActionMapListeners;
  139.  
  140.         bool                m_enabled;
  141.         CActionMapManager*  m_pActionMapManager;
  142.         TActionMap          m_actions;
  143.         EntityId            m_listenerId;
  144.         TActionMapListeners m_actionMapListeners;
  145.         TActionMapListeners m_flownodesListeners;
  146.         string              m_name;
  147.         int                 m_iNumRebindedInputs;
  148. };
  149.  
  150. #endif //__ACTIONMAP_H__
  151.  
downloadActionMap.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