BVB Source Codes

CRYENGINE Show VehicleParams.h Source code

Return Download CRYENGINE: download VehicleParams.h Source code - Download CRYENGINE Source code - Type:.h
  1. // Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.
  2.  
  3. #ifndef __Vehicle_Params__h__
  4. #define __Vehicle_Params__h__
  5.  
  6. #include "VehicleModificationParams.h"
  7.  
  8. class CVehicleParams
  9. {
  10. public:
  11.         CVehicleParams(XmlNodeRef root, const CVehicleModificationParams& modificationParams)
  12.                 : m_xmlNode(root)
  13.                 , m_modificationParams(modificationParams)
  14.         {
  15.         }
  16.  
  17.         virtual ~CVehicleParams() {}
  18.  
  19.         const char* getTag() const
  20.         {
  21.                 assert(IsValid());
  22.  
  23.                 return m_xmlNode->getTag();
  24.         }
  25.  
  26.         bool haveAttr(const char* name) const
  27.         {
  28.                 assert(IsValid());
  29.  
  30.                 return m_xmlNode->haveAttr(name);
  31.         }
  32.  
  33.         const char* getAttr(const char* name) const
  34.         {
  35.                 assert(IsValid());
  36.  
  37.                 const char* attributeValue = m_xmlNode->getAttr(name);
  38.                 const char** attributeValueAddress = &attributeValue;
  39.                 ApplyModification(name, attributeValueAddress);
  40.  
  41.                 return attributeValue;
  42.         }
  43.  
  44.         bool getAttr(const char* name, const char** valueOut) const
  45.         {
  46.                 return GetAttrImpl(name, valueOut);
  47.         }
  48.  
  49.         bool getAttr(const char* name, int& valueOut) const
  50.         {
  51.                 return GetAttrImpl(name, valueOut);
  52.         }
  53.  
  54.         bool getAttr(const char* name, float& valueOut) const
  55.         {
  56.                 return GetAttrImpl(name, valueOut);
  57.         }
  58.  
  59.         bool getAttr(const char* name, bool& valueOut) const
  60.         {
  61.                 return GetAttrImpl(name, valueOut);
  62.         }
  63.  
  64.         bool getAttr(const char* name, Vec3& valueOut) const
  65.         {
  66.                 return GetAttrImpl(name, valueOut);
  67.         }
  68.  
  69.         int getChildCount() const
  70.         {
  71.                 assert(IsValid());
  72.  
  73.                 return m_xmlNode->getChildCount();
  74.         }
  75.  
  76.         CVehicleParams getChild(int i) const
  77.         {
  78.                 assert(IsValid());
  79.  
  80.                 XmlNodeRef childNode = m_xmlNode->getChild(i);
  81.                 return CVehicleParams(childNode, m_modificationParams);
  82.         }
  83.  
  84.         CVehicleParams findChild(const char* id) const
  85.         {
  86.                 assert(IsValid());
  87.  
  88.                 XmlNodeRef childNode = m_xmlNode->findChild(id);
  89.                 return CVehicleParams(childNode, m_modificationParams);
  90.         }
  91.  
  92.         operator bool() const { return m_xmlNode != NULL; }
  93.  
  94.         bool IsValid() const { return m_xmlNode != NULL; }
  95.  
  96. private:
  97.         template<typename T>
  98.         bool GetAttrImpl(const char* name, T& valueOut) const
  99.         {
  100.                 assert(IsValid());
  101.  
  102.                 bool attributeGetSuccess = m_xmlNode->getAttr(name, valueOut);
  103.                 ApplyModification(name, valueOut);
  104.  
  105.                 return attributeGetSuccess;
  106.         }
  107.  
  108.         template<typename T>
  109.         void ApplyModification(const char* name, T& valueOut) const
  110.         {
  111.                 assert(IsValid());
  112.  
  113.                 const char* id;
  114.                 bool hasId = m_xmlNode->getAttr("id", &id);
  115.                 if (hasId)
  116.                 {
  117.                         m_modificationParams.ApplyModification(id, name, valueOut);
  118.                 }
  119.         }
  120.  
  121. private:
  122.         XmlNodeRef                        m_xmlNode;
  123.         const CVehicleModificationParams& m_modificationParams;
  124. };
  125.  
  126. #endif
  127.  
downloadVehicleParams.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