BVB Source Codes

CRYENGINE Show GameTokenSystem.h Source code

Return Download CRYENGINE: download GameTokenSystem.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:   GameTokenSystem.h
  5. //  Version:     v1.00
  6. //  Created:     20/10/2005 by Craig,Timur.
  7. //  Compilers:   Visual Studio.NET
  8. //  Description:
  9. // -------------------------------------------------------------------------
  10. //  History:
  11. //
  12. ////////////////////////////////////////////////////////////////////////////
  13.  
  14. #ifndef _GameTokenSystem_h_
  15. #define _GameTokenSystem_h_
  16. #pragma once
  17.  
  18. #include <CryGame/IGameTokens.h>
  19. #include <CryCore/StlUtils.h>
  20.  
  21. class CGameToken;
  22.  
  23. //////////////////////////////////////////////////////////////////////////
  24. // Game Token Manager implementation class.
  25. //////////////////////////////////////////////////////////////////////////
  26. class CGameTokenSystem : public IGameTokenSystem
  27. {
  28.         friend class CGameTokenIterator;
  29. public:
  30.         CGameTokenSystem();
  31.         ~CGameTokenSystem();
  32.  
  33.         //////////////////////////////////////////////////////////////////////////
  34.         // IGameTokenSystem
  35.         //////////////////////////////////////////////////////////////////////////
  36.         virtual IGameToken*   SetOrCreateToken(const char* sTokenName, const TFlowInputData& defaultValue);
  37.         virtual void          DeleteToken(IGameToken* pToken);
  38.         virtual IGameToken*   FindToken(const char* sTokenName);
  39.         virtual void          RenameToken(IGameToken* pToken, const char* sNewName);
  40.  
  41.         virtual IGameTokenIt* GetGameTokenIterator();
  42.  
  43.         virtual void          RegisterListener(const char* sGameToken, IGameTokenEventListener* pListener, bool bForceCreate, bool bImmediateCallback);
  44.         virtual void          UnregisterListener(const char* sGameToken, IGameTokenEventListener* pListener);
  45.  
  46.         virtual void          RegisterListener(IGameTokenEventListener* pListener);
  47.         virtual void          UnregisterListener(IGameTokenEventListener* pListener);
  48.  
  49.         virtual void          Reset();
  50.         virtual void          Unload();
  51.         virtual void          Serialize(TSerialize ser);
  52.  
  53.         virtual void          DebugDraw();
  54.  
  55.         virtual void          LoadLibs(const char* sFileSpec);
  56.         virtual void          RemoveLibrary(const char* sPrefix);
  57.  
  58.         virtual void          SerializeSaveLevelToLevel(const char** ppGameTokensList, uint32 numTokensToSave);
  59.         virtual void          SerializeReadLevelToLevel();
  60.  
  61.         virtual void          GetMemoryStatistics(ICrySizer* s);
  62.  
  63.         //////////////////////////////////////////////////////////////////////////
  64.  
  65.         CGameToken* GetToken(const char* sTokenName);
  66.         void        Notify(EGameTokenEvent event, CGameToken* pToken);
  67.         void        DumpAllTokens();
  68.  
  69. private:
  70.         bool _InternalLoadLibrary(const char* filename, const char* tag);
  71.  
  72.         // Use Hash map for speed.
  73.         typedef std::unordered_map<const char*, CGameToken*, stl::hash_stricmp<const char*>, stl::hash_stricmp<const char*>> GameTokensMap;
  74.  
  75.         typedef std::vector<IGameTokenEventListener*>                                                                        Listeners;
  76.         Listeners m_listeners;
  77.  
  78.         // Loaded libraries.
  79.         std::vector<string>          m_libraries;
  80.  
  81.         GameTokensMap*               m_pGameTokensMap; // A pointer so it can be fully unloaded on level unload
  82.         class CScriptBind_GameToken* m_pScriptBind;
  83.         XmlNodeRef                   m_levelToLevelSave;
  84.  
  85. #ifdef _GAMETOKENSDEBUGINFO
  86.         typedef std::set<string> TDebugListMap;
  87.         TDebugListMap m_debugList;
  88.         struct SDebugHistoryEntry
  89.         {
  90.                 string     tokenName;
  91.                 string     value;
  92.                 CTimeValue timeChanged;
  93.         };
  94.  
  95.         enum { DBG_HISTORYSIZE = 25 };
  96.         uint32                          m_historyStart; // start of the circular list in m_debugHistory.
  97.         uint32                          m_historyEnd;
  98.         uint32                          m_oldNumHistoryLines; // just to control dynamic changes without using a callback
  99.         std::vector<SDebugHistoryEntry> m_debugHistory;       // works like a circular list
  100.         static int                      m_CVarShowDebugInfo;
  101.         static int                      m_CVarPosX;
  102.         static int                      m_CVarPosY;
  103.         static int                      m_CVarNumHistoricLines;
  104.         static ICVar*                   m_pCVarFilter;
  105.  
  106.         void        DrawToken(const char* pTokenName, const char* pTokenValue, const CTimeValue& timeChanged, int line);
  107.         void        ClearDebugHistory();
  108.         int         GetHistoryBufferSize() { return min(int(DBG_HISTORYSIZE), m_CVarNumHistoricLines); }
  109.         const char* GetTokenDebugString(CGameToken* pToken);
  110.  
  111. public:
  112.         virtual void AddTokenToDebugList(const char* pToken);
  113.         virtual void RemoveTokenFromDebugList(const char* pToken);
  114.  
  115. #endif
  116.  
  117. };
  118.  
  119. #endif // _GameTokenSystem_h_
  120.  
downloadGameTokenSystem.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