BVB Source Codes

CRYENGINE Show ILevelSystem.h Source code

Return Download CRYENGINE: download ILevelSystem.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: Gathers level information. Loads a level.
  8.  
  9.    -------------------------------------------------------------------------
  10.    History:
  11.    - 18:8:2004   11:22 : Created by M谩rcio Martins
  12.  
  13. *************************************************************************/
  14.  
  15. #ifndef __ILEVELSYSTEM_H__
  16. #define __ILEVELSYSTEM_H__
  17.  
  18. #if _MSC_VER > 1000
  19.         #pragma once
  20. #endif
  21.  
  22. #include <CryMemory/CrySizer.h>
  23. #include <CryFlowGraph/IFlowSystem.h>
  24.  
  25. struct ILevelRotationFile;
  26. struct IConsoleCmdArgs;
  27.  
  28. struct ILevelRotation
  29. {
  30.         virtual ~ILevelRotation(){}
  31.         typedef uint32 TExtInfoId;
  32.  
  33.         struct IExtendedInfo
  34.         {
  35.         };
  36.  
  37.         typedef uint8 TRandomisationFlags;
  38.  
  39.         enum EPlaylistRandomisationFlags
  40.         {
  41.                 ePRF_None          = 0,
  42.                 ePRF_Shuffle       = 1 << 0,
  43.                 ePRF_MaintainPairs = 1 << 1,
  44.         };
  45.  
  46.         virtual bool Load(ILevelRotationFile* file) = 0;
  47.         virtual bool LoadFromXmlRootNode(const XmlNodeRef rootNode, const char* altRootTag) = 0;
  48.  
  49.         virtual void Reset() = 0;
  50.         virtual int  AddLevel(const char* level) = 0;
  51.         virtual void AddGameMode(int level, const char* gameMode) = 0;
  52.  
  53.         virtual int  AddLevel(const char* level, const char* gameMode) = 0;
  54.  
  55.         //call to set the playlist ready for a new session
  56.         virtual void                                Initialise(int nSeed) = 0;
  57.  
  58.         virtual bool                                First() = 0;
  59.         virtual bool                                Advance() = 0;
  60.         virtual bool                                AdvanceAndLoopIfNeeded() = 0;
  61.  
  62.         virtual const char*                         GetNextLevel() const = 0;
  63.         virtual const char*                         GetNextGameRules() const = 0;
  64.         virtual int                                 GetLength() const = 0;
  65.         virtual int                                 GetTotalGameModeEntries() const = 0;
  66.         virtual int                                 GetNext() const = 0;
  67.  
  68.         virtual const char*                         GetLevel(uint32 idx, bool accessShuffled = true) const = 0;
  69.         virtual int                                 GetNGameRulesForEntry(uint32 idx, bool accessShuffled = true) const = 0;
  70.         virtual const char*                         GetGameRules(uint32 idx, uint32 iMode, bool accessShuffled = true) const = 0;
  71.  
  72.         virtual const char*                         GetNextGameRulesForEntry(int idx) const = 0;
  73.  
  74.         virtual const int                           NumAdvancesTaken() const = 0;
  75.         virtual void                                ResetAdvancement() = 0;
  76.  
  77.         virtual bool                                IsRandom() const = 0;
  78.  
  79.         virtual ILevelRotation::TRandomisationFlags GetRandomisationFlags() const = 0;
  80.         virtual void                                SetRandomisationFlags(TRandomisationFlags flags) = 0;
  81.  
  82.         virtual void                                ChangeLevel(IConsoleCmdArgs* pArgs = NULL) = 0;
  83.  
  84.         virtual bool                                NextPairMatch() const = 0;
  85.  
  86. };
  87.  
  88. struct ILevelInfo
  89. {
  90.         virtual ~ILevelInfo(){}
  91.         typedef std::vector<string> TStringVec;
  92.  
  93.         typedef struct
  94.         {
  95.                 string name;
  96.                 string xmlFile;
  97.                 int    cgfCount;
  98.                 void   GetMemoryUsage(ICrySizer* pSizer) const
  99.                 {
  100.                         pSizer->AddObject(name);
  101.                         pSizer->AddObject(xmlFile);
  102.                 }
  103.         } TGameTypeInfo;
  104.  
  105.         struct SMinimapInfo
  106.         {
  107.                 SMinimapInfo() : fStartX(0), fStartY(0), fEndX(1), fEndY(1), fDimX(1), fDimY(1), iWidth(1024), iHeight(1024) {}
  108.  
  109.                 string sMinimapName;
  110.                 int    iWidth;
  111.                 int    iHeight;
  112.                 float  fStartX;
  113.                 float  fStartY;
  114.                 float  fEndX;
  115.                 float  fEndY;
  116.                 float  fDimX;
  117.                 float  fDimY;
  118.         };
  119.  
  120.         virtual const char*                      GetName() const = 0;
  121.         virtual const bool                       IsOfType(const char* sType) const = 0;
  122.         virtual const char*                      GetPath() const = 0;
  123.         virtual const char*                      GetPaks() const = 0;
  124.         virtual const char*                      GetDisplayName() const = 0;
  125.         virtual const char*                      GetPreviewImagePath() const = 0;
  126.         virtual const char*                      GetBackgroundImagePath() const = 0;
  127.         virtual const char*                      GetMinimapImagePath() const = 0;
  128.         virtual int                              GetHeightmapSize() const = 0;
  129.         virtual const bool                       MetadataLoaded() const = 0;
  130.         virtual bool                             GetIsModLevel() const = 0;
  131.         virtual const uint32                     GetScanTag() const = 0;
  132.         virtual const uint32                     GetLevelTag() const = 0;
  133.  
  134.         virtual int                              GetGameTypeCount() const = 0;
  135.         virtual const ILevelInfo::TGameTypeInfo* GetGameType(int gameType) const = 0;
  136.         virtual bool                             SupportsGameType(const char* gameTypeName) const = 0;
  137.         virtual const ILevelInfo::TGameTypeInfo* GetDefaultGameType() const = 0;
  138.         virtual ILevelInfo::TStringVec           GetGameRules() const = 0;
  139.         virtual bool                             HasGameRules() const = 0;
  140.  
  141.         virtual const ILevelInfo::SMinimapInfo&  GetMinimapInfo() const = 0;
  142.  
  143.         virtual const char*                      GetDefaultGameRules() const = 0;
  144.  
  145.         virtual bool                             GetAttribute(const char* name, TFlowInputData& val) const = 0;
  146.  
  147.         template<typename T> bool                GetAttribute(const char* name, T& outVal) const
  148.         {
  149.                 TFlowInputData val;
  150.                 if (GetAttribute(name, val) == false)
  151.                         return false;
  152.                 return val.GetValueWithConversion(outVal);
  153.         }
  154. };
  155.  
  156. struct ILevelSystemListener
  157. {
  158.         virtual ~ILevelSystemListener(){}
  159.         virtual void OnLevelNotFound(const char* levelName) = 0;
  160.         virtual void OnLoadingStart(ILevelInfo* pLevel) = 0;
  161.         virtual void OnLoadingLevelEntitiesStart(ILevelInfo* pLevel) = 0;
  162.         virtual void OnLoadingComplete(ILevelInfo* pLevel) = 0;
  163.         virtual void OnLoadingError(ILevelInfo* pLevel, const char* error) = 0;
  164.         virtual void OnLoadingProgress(ILevelInfo* pLevel, int progressAmount) = 0;
  165.         virtual void OnUnloadComplete(ILevelInfo* pLevel) = 0;
  166.  
  167.         void         GetMemoryUsage(ICrySizer* pSizer) const { /*nothing*/ }
  168. };
  169.  
  170. struct ILevelSystem :
  171.         public ILevelSystemListener
  172. {
  173.         enum
  174.         {
  175.                 TAG_MAIN    = 'MAIN',
  176.                 TAG_UNKNOWN = 'ZZZZ'
  177.         };
  178.  
  179.         virtual void              Rescan(const char* levelsFolder, const uint32 tag) = 0;
  180.         virtual void              LoadRotation() = 0;
  181.         virtual int               GetLevelCount() = 0;
  182.         virtual DynArray<string>* GetLevelTypeList() = 0;
  183.         virtual ILevelInfo*       GetLevelInfo(int level) = 0;
  184.         virtual ILevelInfo*       GetLevelInfo(const char* levelName) = 0;
  185.  
  186.         virtual void              AddListener(ILevelSystemListener* pListener) = 0;
  187.         virtual void              RemoveListener(ILevelSystemListener* pListener) = 0;
  188.  
  189.         virtual ILevelInfo*       GetCurrentLevel() const = 0;
  190.         virtual ILevelInfo*       LoadLevel(const char* levelName) = 0;
  191.         virtual void              UnLoadLevel() = 0;
  192.         virtual ILevelInfo*       SetEditorLoadedLevel(const char* levelName, bool bReadLevelInfoMetaData = false) = 0;
  193.         virtual bool              IsLevelLoaded() = 0;
  194.         virtual void              PrepareNextLevel(const char* levelName) = 0;
  195.  
  196.         virtual ILevelRotation*   GetLevelRotation() = 0;
  197.  
  198.         virtual ILevelRotation*   FindLevelRotationForExtInfoId(const ILevelRotation::TExtInfoId findId) = 0;
  199.  
  200.         virtual bool              AddExtendedLevelRotationFromXmlRootNode(const XmlNodeRef rootNode, const char* altRootTag, const ILevelRotation::TExtInfoId extInfoId) = 0;
  201.         virtual void              ClearExtendedLevelRotations() = 0;
  202.         virtual ILevelRotation*   CreateNewRotation(const ILevelRotation::TExtInfoId id) = 0;
  203.  
  204.         // Retrieve`s last level level loading time.
  205.         virtual float GetLastLevelLoadTime() = 0;
  206. };
  207.  
  208. #endif //__ILEVELSYSTEM_H__
  209.  
downloadILevelSystem.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