From c533eaa85934ddc1a91392acd9ad15e2f4ec224c Mon Sep 17 00:00:00 2001 From: DarthArgus Date: Sun, 2 Oct 2016 05:21:03 +0000 Subject: [PATCH] May be breaking build_tdf - Revert "remove all the set but not used testDataValue warnings - coan is a great tool! http://coan2.sourceforge.net/" This reverts commit fe8b531b42e3e30e5d4dd079b357e2a2607a49e9. --- .../SharedBattlefieldMarkerObjectTemplate.cpp | 142 +++- .../SharedBattlefieldMarkerObjectTemplate.h | 17 +- .../SharedBuildingObjectTemplate.cpp | 70 +- .../SharedBuildingObjectTemplate.h | 9 +- .../SharedCellObjectTemplate.cpp | 33 +- .../objectTemplate/SharedCellObjectTemplate.h | 5 + ...aredConstructionContractObjectTemplate.cpp | 33 +- ...SharedConstructionContractObjectTemplate.h | 5 + .../SharedCreatureObjectTemplate.cpp | 796 ++++++++++++++++-- .../SharedCreatureObjectTemplate.h | 89 +- .../SharedDraftSchematicObjectTemplate.cpp | 332 ++++++-- .../SharedDraftSchematicObjectTemplate.h | 31 +- .../SharedFactoryObjectTemplate.cpp | 33 +- .../SharedFactoryObjectTemplate.h | 5 + .../SharedGroupObjectTemplate.cpp | 33 +- .../SharedGroupObjectTemplate.h | 5 + .../SharedGuildObjectTemplate.cpp | 33 +- .../SharedGuildObjectTemplate.h | 5 + .../SharedInstallationObjectTemplate.cpp | 33 +- .../SharedInstallationObjectTemplate.h | 5 + .../SharedIntangibleObjectTemplate.cpp | 33 +- .../SharedIntangibleObjectTemplate.h | 5 + .../SharedJediManagerObjectTemplate.cpp | 35 +- .../SharedJediManagerObjectTemplate.h | 5 + ...aredManufactureSchematicObjectTemplate.cpp | 33 +- ...SharedManufactureSchematicObjectTemplate.h | 5 + .../SharedMissionObjectTemplate.cpp | 33 +- .../SharedMissionObjectTemplate.h | 5 + .../objectTemplate/SharedObjectTemplate.cpp | 708 ++++++++++++++-- .../objectTemplate/SharedObjectTemplate.h | 73 +- .../SharedPlayerObjectTemplate.cpp | 35 +- .../SharedPlayerObjectTemplate.h | 5 + .../SharedPlayerQuestObjectTemplate.cpp | 35 +- .../SharedPlayerQuestObjectTemplate.h | 5 + .../SharedResourceContainerObjectTemplate.cpp | 33 +- .../SharedResourceContainerObjectTemplate.h | 5 + .../SharedShipObjectTemplate.cpp | 115 ++- .../objectTemplate/SharedShipObjectTemplate.h | 13 +- .../SharedStaticObjectTemplate.cpp | 33 +- .../SharedStaticObjectTemplate.h | 5 + .../SharedTangibleObjectTemplate.cpp | 747 +++++++++++++--- .../SharedTangibleObjectTemplate.h | 71 +- .../SharedTerrainSurfaceObjectTemplate.cpp | 114 ++- .../SharedTerrainSurfaceObjectTemplate.h | 13 +- .../SharedUniverseObjectTemplate.cpp | 35 +- .../SharedUniverseObjectTemplate.h | 5 + .../SharedVehicleObjectTemplate.cpp | 352 +++++++- .../SharedVehicleObjectTemplate.h | 41 +- .../SharedWaypointObjectTemplate.cpp | 33 +- .../SharedWaypointObjectTemplate.h | 5 + .../SharedWeaponObjectTemplate.cpp | 123 ++- .../SharedWeaponObjectTemplate.h | 15 +- 52 files changed, 3701 insertions(+), 786 deletions(-) diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedBattlefieldMarkerObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedBattlefieldMarkerObjectTemplate.cpp index ee7609f5..a83d8b7f 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedBattlefieldMarkerObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedBattlefieldMarkerObjectTemplate.cpp @@ -12,7 +12,7 @@ #include "sharedGame/FirstSharedGame.h" #include "SharedBattlefieldMarkerObjectTemplate.h" - +#include "sharedDebug/DataLint.h" #include "sharedFile/Iff.h" #include "sharedMath/Vector.h" #include "sharedObject/ObjectTemplate.h" @@ -24,20 +24,20 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedBattlefieldMarkerObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedBattlefieldMarkerObjectTemplate::SharedBattlefieldMarkerObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedTangibleObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT { } // SharedBattlefieldMarkerObjectTemplate::SharedBattlefieldMarkerObjectTemplate @@ -46,8 +46,8 @@ SharedBattlefieldMarkerObjectTemplate::SharedBattlefieldMarkerObjectTemplate(con */ SharedBattlefieldMarkerObjectTemplate::~SharedBattlefieldMarkerObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP } // SharedBattlefieldMarkerObjectTemplate::~SharedBattlefieldMarkerObjectTemplate /** @@ -104,12 +104,22 @@ Tag SharedBattlefieldMarkerObjectTemplate::getHighestTemplateVersion(void) const } // SharedBattlefieldMarkerObjectTemplate::getHighestTemplateVersion //@BEGIN TFD -int SharedBattlefieldMarkerObjectTemplate::getNumberOfPoles() const +int SharedBattlefieldMarkerObjectTemplate::getNumberOfPoles(bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedBattlefieldMarkerObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getNumberOfPoles(true); +#endif } if (!m_numberOfPoles.isLoaded()) @@ -149,16 +159,31 @@ int SharedBattlefieldMarkerObjectTemplate::getNumberOfPoles() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedBattlefieldMarkerObjectTemplate::getNumberOfPoles -int SharedBattlefieldMarkerObjectTemplate::getNumberOfPolesMin() const +int SharedBattlefieldMarkerObjectTemplate::getNumberOfPolesMin(bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedBattlefieldMarkerObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getNumberOfPolesMin(true); +#endif } if (!m_numberOfPoles.isLoaded()) @@ -198,16 +223,31 @@ int SharedBattlefieldMarkerObjectTemplate::getNumberOfPolesMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedBattlefieldMarkerObjectTemplate::getNumberOfPolesMin -int SharedBattlefieldMarkerObjectTemplate::getNumberOfPolesMax() const +int SharedBattlefieldMarkerObjectTemplate::getNumberOfPolesMax(bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedBattlefieldMarkerObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getNumberOfPolesMax(true); +#endif } if (!m_numberOfPoles.isLoaded()) @@ -247,16 +287,31 @@ int SharedBattlefieldMarkerObjectTemplate::getNumberOfPolesMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedBattlefieldMarkerObjectTemplate::getNumberOfPolesMax -float SharedBattlefieldMarkerObjectTemplate::getRadius() const +float SharedBattlefieldMarkerObjectTemplate::getRadius(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedBattlefieldMarkerObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getRadius(true); +#endif } if (!m_radius.isLoaded()) @@ -296,16 +351,31 @@ float SharedBattlefieldMarkerObjectTemplate::getRadius() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedBattlefieldMarkerObjectTemplate::getRadius -float SharedBattlefieldMarkerObjectTemplate::getRadiusMin() const +float SharedBattlefieldMarkerObjectTemplate::getRadiusMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedBattlefieldMarkerObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getRadiusMin(true); +#endif } if (!m_radius.isLoaded()) @@ -345,16 +415,31 @@ float SharedBattlefieldMarkerObjectTemplate::getRadiusMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedBattlefieldMarkerObjectTemplate::getRadiusMin -float SharedBattlefieldMarkerObjectTemplate::getRadiusMax() const +float SharedBattlefieldMarkerObjectTemplate::getRadiusMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedBattlefieldMarkerObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getRadiusMax(true); +#endif } if (!m_radius.isLoaded()) @@ -394,10 +479,29 @@ float SharedBattlefieldMarkerObjectTemplate::getRadiusMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedBattlefieldMarkerObjectTemplate::getRadiusMax +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedBattlefieldMarkerObjectTemplate::testValues(void) const +{ + IGNORE_RETURN(getNumberOfPolesMin(true)); + IGNORE_RETURN(getNumberOfPolesMax(true)); + IGNORE_RETURN(getRadiusMin(true)); + IGNORE_RETURN(getRadiusMax(true)); + SharedTangibleObjectTemplate::testValues(); +} // SharedBattlefieldMarkerObjectTemplate::testValues +#endif + /** * Loads the template data from an iff file. We should already be in the form * for this template. @@ -406,8 +510,8 @@ float SharedBattlefieldMarkerObjectTemplate::getRadiusMax() const */ void SharedBattlefieldMarkerObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedBattlefieldMarkerObjectTemplate_tag) { @@ -417,7 +521,7 @@ void SharedBattlefieldMarkerObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -437,8 +541,10 @@ void SharedBattlefieldMarkerObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 0, 1)) + if (getHighestTemplateVersion() != TAG(0,0,0,1)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -464,4 +570,4 @@ void SharedBattlefieldMarkerObjectTemplate::load(Iff &file) return; } // SharedBattlefieldMarkerObjectTemplate::load -//@END TFD \ No newline at end of file +//@END TFD diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedBattlefieldMarkerObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedBattlefieldMarkerObjectTemplate.h index 52200959..29672636 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedBattlefieldMarkerObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedBattlefieldMarkerObjectTemplate.h @@ -44,13 +44,18 @@ public: //@BEGIN TFD public: - int getNumberOfPoles() const; - int getNumberOfPolesMin() const; - int getNumberOfPolesMax() const; - float getRadius() const; - float getRadiusMin() const; - float getRadiusMax() const; + int getNumberOfPoles(bool testData = false) const; + int getNumberOfPolesMin(bool testData = false) const; + int getNumberOfPolesMax(bool testData = false) const; + float getRadius(bool testData = false) const; + float getRadiusMin(bool testData = false) const; + float getRadiusMax(bool testData = false) const; +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedBuildingObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedBuildingObjectTemplate.cpp index 04da57c3..89b64952 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedBuildingObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedBuildingObjectTemplate.cpp @@ -23,20 +23,20 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedBuildingObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedBuildingObjectTemplate::SharedBuildingObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedTangibleObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT { } // SharedBuildingObjectTemplate::SharedBuildingObjectTemplate @@ -45,8 +45,8 @@ SharedBuildingObjectTemplate::SharedBuildingObjectTemplate(const std::string & f */ SharedBuildingObjectTemplate::~SharedBuildingObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP } // SharedBuildingObjectTemplate::~SharedBuildingObjectTemplate /** @@ -103,12 +103,22 @@ Tag SharedBuildingObjectTemplate::getHighestTemplateVersion(void) const } // SharedBuildingObjectTemplate::getHighestTemplateVersion //@BEGIN TFD -const std::string & SharedBuildingObjectTemplate::getTerrainModificationFileName() const +const std::string & SharedBuildingObjectTemplate::getTerrainModificationFileName(bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedBuildingObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getTerrainModificationFileName(true); +#endif } if (!m_terrainModificationFileName.isLoaded()) @@ -126,16 +136,31 @@ const std::string & SharedBuildingObjectTemplate::getTerrainModificationFileName } const std::string & value = m_terrainModificationFileName.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedBuildingObjectTemplate::getTerrainModificationFileName -const std::string & SharedBuildingObjectTemplate::getInteriorLayoutFileName() const +const std::string & SharedBuildingObjectTemplate::getInteriorLayoutFileName(bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedBuildingObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getInteriorLayoutFileName(true); +#endif } if (!m_interiorLayoutFileName.isLoaded()) @@ -153,10 +178,27 @@ const std::string & SharedBuildingObjectTemplate::getInteriorLayoutFileName() co } const std::string & value = m_interiorLayoutFileName.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedBuildingObjectTemplate::getInteriorLayoutFileName +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedBuildingObjectTemplate::testValues(void) const +{ + IGNORE_RETURN(getTerrainModificationFileName(true)); + IGNORE_RETURN(getInteriorLayoutFileName(true)); + SharedTangibleObjectTemplate::testValues(); +} // SharedBuildingObjectTemplate::testValues +#endif + /** * Loads the template data from an iff file. We should already be in the form * for this template. @@ -165,8 +207,8 @@ const std::string & SharedBuildingObjectTemplate::getInteriorLayoutFileName() co */ void SharedBuildingObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedBuildingObjectTemplate_tag) { @@ -176,7 +218,7 @@ void SharedBuildingObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -196,8 +238,10 @@ void SharedBuildingObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 0, 1)) + if (getHighestTemplateVersion() != TAG(0,0,0,1)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -223,4 +267,4 @@ void SharedBuildingObjectTemplate::load(Iff &file) return; } // SharedBuildingObjectTemplate::load -//@END TFD \ No newline at end of file +//@END TFD diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedBuildingObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedBuildingObjectTemplate.h index 9405f059..1c37d84e 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedBuildingObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedBuildingObjectTemplate.h @@ -44,9 +44,14 @@ public: //@BEGIN TFD public: - const std::string & getTerrainModificationFileName() const; - const std::string & getInteriorLayoutFileName() const; + const std::string & getTerrainModificationFileName(bool testData = false) const; + const std::string & getInteriorLayoutFileName(bool testData = false) const; +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedCellObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedCellObjectTemplate.cpp index 5b19458e..0c319760 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedCellObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedCellObjectTemplate.cpp @@ -23,20 +23,20 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedCellObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedCellObjectTemplate::SharedCellObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT { } // SharedCellObjectTemplate::SharedCellObjectTemplate @@ -45,8 +45,8 @@ SharedCellObjectTemplate::SharedCellObjectTemplate(const std::string & filename) */ SharedCellObjectTemplate::~SharedCellObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP } // SharedCellObjectTemplate::~SharedCellObjectTemplate /** @@ -103,6 +103,15 @@ Tag SharedCellObjectTemplate::getHighestTemplateVersion(void) const } // SharedCellObjectTemplate::getHighestTemplateVersion //@BEGIN TFD +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedCellObjectTemplate::testValues(void) const +{ + SharedObjectTemplate::testValues(); +} // SharedCellObjectTemplate::testValues +#endif /** * Loads the template data from an iff file. We should already be in the form @@ -112,8 +121,8 @@ Tag SharedCellObjectTemplate::getHighestTemplateVersion(void) const */ void SharedCellObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedCellObjectTemplate_tag) { @@ -123,7 +132,7 @@ void SharedCellObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -143,8 +152,10 @@ void SharedCellObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 0, 0)) + if (getHighestTemplateVersion() != TAG(0,0,0,0)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -162,4 +173,4 @@ void SharedCellObjectTemplate::load(Iff &file) return; } // SharedCellObjectTemplate::load -//@END TFD \ No newline at end of file +//@END TFD diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedCellObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedCellObjectTemplate.h index c7489b64..01c05587 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedCellObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedCellObjectTemplate.h @@ -45,6 +45,11 @@ public: //@BEGIN TFD public: +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedConstructionContractObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedConstructionContractObjectTemplate.cpp index b47a62d9..ab455e20 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedConstructionContractObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedConstructionContractObjectTemplate.cpp @@ -23,20 +23,20 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedConstructionContractObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedConstructionContractObjectTemplate::SharedConstructionContractObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedIntangibleObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT { } // SharedConstructionContractObjectTemplate::SharedConstructionContractObjectTemplate @@ -45,8 +45,8 @@ SharedConstructionContractObjectTemplate::SharedConstructionContractObjectTempla */ SharedConstructionContractObjectTemplate::~SharedConstructionContractObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP } // SharedConstructionContractObjectTemplate::~SharedConstructionContractObjectTemplate /** @@ -103,6 +103,15 @@ Tag SharedConstructionContractObjectTemplate::getHighestTemplateVersion(void) co } // SharedConstructionContractObjectTemplate::getHighestTemplateVersion //@BEGIN TFD +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedConstructionContractObjectTemplate::testValues(void) const +{ + SharedIntangibleObjectTemplate::testValues(); +} // SharedConstructionContractObjectTemplate::testValues +#endif /** * Loads the template data from an iff file. We should already be in the form @@ -112,8 +121,8 @@ Tag SharedConstructionContractObjectTemplate::getHighestTemplateVersion(void) co */ void SharedConstructionContractObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedConstructionContractObjectTemplate_tag) { @@ -123,7 +132,7 @@ void SharedConstructionContractObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -143,8 +152,10 @@ void SharedConstructionContractObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 0, 0)) + if (getHighestTemplateVersion() != TAG(0,0,0,0)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -162,4 +173,4 @@ void SharedConstructionContractObjectTemplate::load(Iff &file) return; } // SharedConstructionContractObjectTemplate::load -//@END TFD \ No newline at end of file +//@END TFD diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedConstructionContractObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedConstructionContractObjectTemplate.h index 8e72f49a..20804df0 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedConstructionContractObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedConstructionContractObjectTemplate.h @@ -45,6 +45,11 @@ public: //@BEGIN TFD public: +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedCreatureObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedCreatureObjectTemplate.cpp index 9a451895..6c5c3db1 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedCreatureObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedCreatureObjectTemplate.cpp @@ -29,7 +29,7 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedCreatureObjectTemplate::ms_allowDefaultTemplateParams = true; @@ -42,9 +42,8 @@ typedef ::RangedIntCustomizationVariable GlobalRangedIntCustomizationVariableTyp SharedCreatureObjectTemplate::SharedCreatureObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedTangibleObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT { m_movementTable = 0; } // SharedCreatureObjectTemplate::SharedCreatureObjectTemplate @@ -54,8 +53,8 @@ SharedCreatureObjectTemplate::SharedCreatureObjectTemplate(const std::string & f */ SharedCreatureObjectTemplate::~SharedCreatureObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP delete m_movementTable; m_movementTable = 0; } // SharedCreatureObjectTemplate::~SharedCreatureObjectTemplate @@ -123,7 +122,7 @@ void SharedCreatureObjectTemplate::postLoad() void SharedCreatureObjectTemplate::createCustomizationDataPropertyAsNeeded(Object &object, bool /* forceCreation */) const { - //-- Properties cannot be added while an object is in the world. Some callers may be in the world, + //-- Properties cannot be added while an object is in the world. Some callers may be in the world, // so temporarily remove the object from the world if necessary. bool shouldBeInWorld = object.isInWorld(); if (shouldBeInWorld) @@ -148,18 +147,18 @@ void SharedCreatureObjectTemplate::createCustomizationDataPropertyAsNeeded(Objec AssetCustomizationManager::addCustomizationVariablesForAsset(TemporaryCrcString(getAppearanceFilename().c_str(), true), *customizationData, skipSharedOwnerVariables); //-- set up mappings for any variables which need dependent mappings - int numVariableMappings = getCustomizationVariableMappingCount(); + int numVariableMappings = getCustomizationVariableMappingCount(); for (int i = 0; i < numVariableMappings; ++i) { CustomizationVariableMapping localVariableMapping; - getCustomizationVariableMapping(localVariableMapping, i); + getCustomizationVariableMapping(localVariableMapping, i); GlobalRangedIntCustomizationVariableType *source = safe_cast(customizationData->findVariable(localVariableMapping.sourceVariable)); - if (source) - { - source->setDependentVariable(localVariableMapping.dependentVariable); - } - } - + if(source) + { + source->setDependentVariable(localVariableMapping.dependentVariable); + } + } + //-- release local reference to the CustomizationData instance customizationData->release(); } @@ -168,12 +167,22 @@ void SharedCreatureObjectTemplate::createCustomizationDataPropertyAsNeeded(Objec // ---------------------------------------------------------------------- //@BEGIN TFD -SharedCreatureObjectTemplate::Gender SharedCreatureObjectTemplate::getGender() const +SharedCreatureObjectTemplate::Gender SharedCreatureObjectTemplate::getGender(bool testData) const { +#ifdef _DEBUG +SharedCreatureObjectTemplate::Gender testDataValue = static_cast(0); +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getGender(true); +#endif } if (!m_gender.isLoaded()) @@ -191,16 +200,31 @@ SharedCreatureObjectTemplate::Gender SharedCreatureObjectTemplate::getGender() c } Gender value = static_cast(m_gender.getValue()); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getGender -SharedCreatureObjectTemplate::Niche SharedCreatureObjectTemplate::getNiche() const +SharedCreatureObjectTemplate::Niche SharedCreatureObjectTemplate::getNiche(bool testData) const { +#ifdef _DEBUG +SharedCreatureObjectTemplate::Niche testDataValue = static_cast(0); +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getNiche(true); +#endif } if (!m_niche.isLoaded()) @@ -218,16 +242,31 @@ SharedCreatureObjectTemplate::Niche SharedCreatureObjectTemplate::getNiche() con } Niche value = static_cast(m_niche.getValue()); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getNiche -SharedCreatureObjectTemplate::Species SharedCreatureObjectTemplate::getSpecies() const +SharedCreatureObjectTemplate::Species SharedCreatureObjectTemplate::getSpecies(bool testData) const { +#ifdef _DEBUG +SharedCreatureObjectTemplate::Species testDataValue = static_cast(0); +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getSpecies(true); +#endif } if (!m_species.isLoaded()) @@ -245,16 +284,31 @@ SharedCreatureObjectTemplate::Species SharedCreatureObjectTemplate::getSpecies() } Species value = static_cast(m_species.getValue()); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getSpecies -SharedCreatureObjectTemplate::Race SharedCreatureObjectTemplate::getRace() const +SharedCreatureObjectTemplate::Race SharedCreatureObjectTemplate::getRace(bool testData) const { +#ifdef _DEBUG +SharedCreatureObjectTemplate::Race testDataValue = static_cast(0); +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getRace(true); +#endif } if (!m_race.isLoaded()) @@ -272,6 +326,11 @@ SharedCreatureObjectTemplate::Race SharedCreatureObjectTemplate::getRace() const } Race value = static_cast(m_race.getValue()); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getRace @@ -717,12 +776,22 @@ float SharedCreatureObjectTemplate::getTurnRateMax(MovementTypes index) const return value; } // SharedCreatureObjectTemplate::getTurnRateMax -const std::string & SharedCreatureObjectTemplate::getAnimationMapFilename() const +const std::string & SharedCreatureObjectTemplate::getAnimationMapFilename(bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getAnimationMapFilename(true); +#endif } if (!m_animationMapFilename.isLoaded()) @@ -740,16 +809,31 @@ const std::string & SharedCreatureObjectTemplate::getAnimationMapFilename() cons } const std::string & value = m_animationMapFilename.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getAnimationMapFilename -float SharedCreatureObjectTemplate::getSlopeModAngle() const +float SharedCreatureObjectTemplate::getSlopeModAngle(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getSlopeModAngle(true); +#endif } if (!m_slopeModAngle.isLoaded()) @@ -789,16 +873,31 @@ float SharedCreatureObjectTemplate::getSlopeModAngle() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getSlopeModAngle -float SharedCreatureObjectTemplate::getSlopeModAngleMin() const +float SharedCreatureObjectTemplate::getSlopeModAngleMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getSlopeModAngleMin(true); +#endif } if (!m_slopeModAngle.isLoaded()) @@ -838,16 +937,31 @@ float SharedCreatureObjectTemplate::getSlopeModAngleMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getSlopeModAngleMin -float SharedCreatureObjectTemplate::getSlopeModAngleMax() const +float SharedCreatureObjectTemplate::getSlopeModAngleMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getSlopeModAngleMax(true); +#endif } if (!m_slopeModAngle.isLoaded()) @@ -887,16 +1001,31 @@ float SharedCreatureObjectTemplate::getSlopeModAngleMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getSlopeModAngleMax -float SharedCreatureObjectTemplate::getSlopeModPercent() const +float SharedCreatureObjectTemplate::getSlopeModPercent(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getSlopeModPercent(true); +#endif } if (!m_slopeModPercent.isLoaded()) @@ -936,16 +1065,31 @@ float SharedCreatureObjectTemplate::getSlopeModPercent() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getSlopeModPercent -float SharedCreatureObjectTemplate::getSlopeModPercentMin() const +float SharedCreatureObjectTemplate::getSlopeModPercentMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getSlopeModPercentMin(true); +#endif } if (!m_slopeModPercent.isLoaded()) @@ -985,16 +1129,31 @@ float SharedCreatureObjectTemplate::getSlopeModPercentMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getSlopeModPercentMin -float SharedCreatureObjectTemplate::getSlopeModPercentMax() const +float SharedCreatureObjectTemplate::getSlopeModPercentMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getSlopeModPercentMax(true); +#endif } if (!m_slopeModPercent.isLoaded()) @@ -1034,16 +1193,31 @@ float SharedCreatureObjectTemplate::getSlopeModPercentMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getSlopeModPercentMax -float SharedCreatureObjectTemplate::getWaterModPercent() const +float SharedCreatureObjectTemplate::getWaterModPercent(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getWaterModPercent(true); +#endif } if (!m_waterModPercent.isLoaded()) @@ -1083,16 +1257,31 @@ float SharedCreatureObjectTemplate::getWaterModPercent() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getWaterModPercent -float SharedCreatureObjectTemplate::getWaterModPercentMin() const +float SharedCreatureObjectTemplate::getWaterModPercentMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getWaterModPercentMin(true); +#endif } if (!m_waterModPercent.isLoaded()) @@ -1132,16 +1321,31 @@ float SharedCreatureObjectTemplate::getWaterModPercentMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getWaterModPercentMin -float SharedCreatureObjectTemplate::getWaterModPercentMax() const +float SharedCreatureObjectTemplate::getWaterModPercentMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getWaterModPercentMax(true); +#endif } if (!m_waterModPercent.isLoaded()) @@ -1181,16 +1385,31 @@ float SharedCreatureObjectTemplate::getWaterModPercentMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getWaterModPercentMax -float SharedCreatureObjectTemplate::getStepHeight() const +float SharedCreatureObjectTemplate::getStepHeight(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getStepHeight(true); +#endif } if (!m_stepHeight.isLoaded()) @@ -1230,16 +1449,31 @@ float SharedCreatureObjectTemplate::getStepHeight() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getStepHeight -float SharedCreatureObjectTemplate::getStepHeightMin() const +float SharedCreatureObjectTemplate::getStepHeightMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getStepHeightMin(true); +#endif } if (!m_stepHeight.isLoaded()) @@ -1279,16 +1513,31 @@ float SharedCreatureObjectTemplate::getStepHeightMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getStepHeightMin -float SharedCreatureObjectTemplate::getStepHeightMax() const +float SharedCreatureObjectTemplate::getStepHeightMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getStepHeightMax(true); +#endif } if (!m_stepHeight.isLoaded()) @@ -1328,16 +1577,31 @@ float SharedCreatureObjectTemplate::getStepHeightMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getStepHeightMax -float SharedCreatureObjectTemplate::getCollisionHeight() const +float SharedCreatureObjectTemplate::getCollisionHeight(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getCollisionHeight(true); +#endif } if (!m_collisionHeight.isLoaded()) @@ -1377,16 +1641,31 @@ float SharedCreatureObjectTemplate::getCollisionHeight() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getCollisionHeight -float SharedCreatureObjectTemplate::getCollisionHeightMin() const +float SharedCreatureObjectTemplate::getCollisionHeightMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getCollisionHeightMin(true); +#endif } if (!m_collisionHeight.isLoaded()) @@ -1426,16 +1705,31 @@ float SharedCreatureObjectTemplate::getCollisionHeightMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getCollisionHeightMin -float SharedCreatureObjectTemplate::getCollisionHeightMax() const +float SharedCreatureObjectTemplate::getCollisionHeightMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getCollisionHeightMax(true); +#endif } if (!m_collisionHeight.isLoaded()) @@ -1475,16 +1769,31 @@ float SharedCreatureObjectTemplate::getCollisionHeightMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getCollisionHeightMax -float SharedCreatureObjectTemplate::getCollisionRadius() const +float SharedCreatureObjectTemplate::getCollisionRadius(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getCollisionRadius(true); +#endif } if (!m_collisionRadius.isLoaded()) @@ -1524,16 +1833,31 @@ float SharedCreatureObjectTemplate::getCollisionRadius() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getCollisionRadius -float SharedCreatureObjectTemplate::getCollisionRadiusMin() const +float SharedCreatureObjectTemplate::getCollisionRadiusMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getCollisionRadiusMin(true); +#endif } if (!m_collisionRadius.isLoaded()) @@ -1573,16 +1897,31 @@ float SharedCreatureObjectTemplate::getCollisionRadiusMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getCollisionRadiusMin -float SharedCreatureObjectTemplate::getCollisionRadiusMax() const +float SharedCreatureObjectTemplate::getCollisionRadiusMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getCollisionRadiusMax(true); +#endif } if (!m_collisionRadius.isLoaded()) @@ -1622,16 +1961,31 @@ float SharedCreatureObjectTemplate::getCollisionRadiusMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getCollisionRadiusMax -const std::string & SharedCreatureObjectTemplate::getMovementDatatable() const +const std::string & SharedCreatureObjectTemplate::getMovementDatatable(bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getMovementDatatable(true); +#endif } if (!m_movementDatatable.isLoaded()) @@ -1649,6 +2003,11 @@ const std::string & SharedCreatureObjectTemplate::getMovementDatatable() const } const std::string & value = m_movementDatatable.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getMovementDatatable @@ -1680,12 +2039,22 @@ bool SharedCreatureObjectTemplate::getPostureAlignToTerrain(Postures index) cons return value; } // SharedCreatureObjectTemplate::getPostureAlignToTerrain -float SharedCreatureObjectTemplate::getSwimHeight() const +float SharedCreatureObjectTemplate::getSwimHeight(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getSwimHeight(true); +#endif } if (!m_swimHeight.isLoaded()) @@ -1725,16 +2094,31 @@ float SharedCreatureObjectTemplate::getSwimHeight() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getSwimHeight -float SharedCreatureObjectTemplate::getSwimHeightMin() const +float SharedCreatureObjectTemplate::getSwimHeightMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getSwimHeightMin(true); +#endif } if (!m_swimHeight.isLoaded()) @@ -1774,16 +2158,31 @@ float SharedCreatureObjectTemplate::getSwimHeightMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getSwimHeightMin -float SharedCreatureObjectTemplate::getSwimHeightMax() const +float SharedCreatureObjectTemplate::getSwimHeightMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getSwimHeightMax(true); +#endif } if (!m_swimHeight.isLoaded()) @@ -1823,16 +2222,31 @@ float SharedCreatureObjectTemplate::getSwimHeightMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getSwimHeightMax -float SharedCreatureObjectTemplate::getWarpTolerance() const +float SharedCreatureObjectTemplate::getWarpTolerance(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getWarpTolerance(true); +#endif } if (!m_warpTolerance.isLoaded()) @@ -1872,16 +2286,31 @@ float SharedCreatureObjectTemplate::getWarpTolerance() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getWarpTolerance -float SharedCreatureObjectTemplate::getWarpToleranceMin() const +float SharedCreatureObjectTemplate::getWarpToleranceMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getWarpToleranceMin(true); +#endif } if (!m_warpTolerance.isLoaded()) @@ -1921,16 +2350,31 @@ float SharedCreatureObjectTemplate::getWarpToleranceMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getWarpToleranceMin -float SharedCreatureObjectTemplate::getWarpToleranceMax() const +float SharedCreatureObjectTemplate::getWarpToleranceMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getWarpToleranceMax(true); +#endif } if (!m_warpTolerance.isLoaded()) @@ -1970,16 +2414,31 @@ float SharedCreatureObjectTemplate::getWarpToleranceMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getWarpToleranceMax -float SharedCreatureObjectTemplate::getCollisionOffsetX() const +float SharedCreatureObjectTemplate::getCollisionOffsetX(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getCollisionOffsetX(true); +#endif } if (!m_collisionOffsetX.isLoaded()) @@ -2019,16 +2478,31 @@ float SharedCreatureObjectTemplate::getCollisionOffsetX() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getCollisionOffsetX -float SharedCreatureObjectTemplate::getCollisionOffsetXMin() const +float SharedCreatureObjectTemplate::getCollisionOffsetXMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getCollisionOffsetXMin(true); +#endif } if (!m_collisionOffsetX.isLoaded()) @@ -2068,16 +2542,31 @@ float SharedCreatureObjectTemplate::getCollisionOffsetXMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getCollisionOffsetXMin -float SharedCreatureObjectTemplate::getCollisionOffsetXMax() const +float SharedCreatureObjectTemplate::getCollisionOffsetXMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getCollisionOffsetXMax(true); +#endif } if (!m_collisionOffsetX.isLoaded()) @@ -2117,16 +2606,31 @@ float SharedCreatureObjectTemplate::getCollisionOffsetXMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getCollisionOffsetXMax -float SharedCreatureObjectTemplate::getCollisionOffsetZ() const +float SharedCreatureObjectTemplate::getCollisionOffsetZ(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getCollisionOffsetZ(true); +#endif } if (!m_collisionOffsetZ.isLoaded()) @@ -2166,16 +2670,31 @@ float SharedCreatureObjectTemplate::getCollisionOffsetZ() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getCollisionOffsetZ -float SharedCreatureObjectTemplate::getCollisionOffsetZMin() const +float SharedCreatureObjectTemplate::getCollisionOffsetZMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getCollisionOffsetZMin(true); +#endif } if (!m_collisionOffsetZ.isLoaded()) @@ -2215,16 +2734,31 @@ float SharedCreatureObjectTemplate::getCollisionOffsetZMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getCollisionOffsetZMin -float SharedCreatureObjectTemplate::getCollisionOffsetZMax() const +float SharedCreatureObjectTemplate::getCollisionOffsetZMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getCollisionOffsetZMax(true); +#endif } if (!m_collisionOffsetZ.isLoaded()) @@ -2264,16 +2798,31 @@ float SharedCreatureObjectTemplate::getCollisionOffsetZMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getCollisionOffsetZMax -float SharedCreatureObjectTemplate::getCollisionLength() const +float SharedCreatureObjectTemplate::getCollisionLength(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getCollisionLength(true); +#endif } if (!m_collisionLength.isLoaded()) @@ -2313,16 +2862,31 @@ float SharedCreatureObjectTemplate::getCollisionLength() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getCollisionLength -float SharedCreatureObjectTemplate::getCollisionLengthMin() const +float SharedCreatureObjectTemplate::getCollisionLengthMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getCollisionLengthMin(true); +#endif } if (!m_collisionLength.isLoaded()) @@ -2362,16 +2926,31 @@ float SharedCreatureObjectTemplate::getCollisionLengthMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getCollisionLengthMin -float SharedCreatureObjectTemplate::getCollisionLengthMax() const +float SharedCreatureObjectTemplate::getCollisionLengthMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getCollisionLengthMax(true); +#endif } if (!m_collisionLength.isLoaded()) @@ -2411,16 +2990,31 @@ float SharedCreatureObjectTemplate::getCollisionLengthMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getCollisionLengthMax -float SharedCreatureObjectTemplate::getCameraHeight() const +float SharedCreatureObjectTemplate::getCameraHeight(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getCameraHeight(true); +#endif } if (!m_cameraHeight.isLoaded()) @@ -2460,16 +3054,31 @@ float SharedCreatureObjectTemplate::getCameraHeight() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getCameraHeight -float SharedCreatureObjectTemplate::getCameraHeightMin() const +float SharedCreatureObjectTemplate::getCameraHeightMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getCameraHeightMin(true); +#endif } if (!m_cameraHeight.isLoaded()) @@ -2509,16 +3118,31 @@ float SharedCreatureObjectTemplate::getCameraHeightMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getCameraHeightMin -float SharedCreatureObjectTemplate::getCameraHeightMax() const +float SharedCreatureObjectTemplate::getCameraHeightMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedCreatureObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getCameraHeightMax(true); +#endif } if (!m_cameraHeight.isLoaded()) @@ -2558,10 +3182,55 @@ float SharedCreatureObjectTemplate::getCameraHeightMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedCreatureObjectTemplate::getCameraHeightMax +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedCreatureObjectTemplate::testValues(void) const +{ + IGNORE_RETURN(getGender(true)); + IGNORE_RETURN(getNiche(true)); + IGNORE_RETURN(getSpecies(true)); + IGNORE_RETURN(getRace(true)); + IGNORE_RETURN(getAnimationMapFilename(true)); + IGNORE_RETURN(getSlopeModAngleMin(true)); + IGNORE_RETURN(getSlopeModAngleMax(true)); + IGNORE_RETURN(getSlopeModPercentMin(true)); + IGNORE_RETURN(getSlopeModPercentMax(true)); + IGNORE_RETURN(getWaterModPercentMin(true)); + IGNORE_RETURN(getWaterModPercentMax(true)); + IGNORE_RETURN(getStepHeightMin(true)); + IGNORE_RETURN(getStepHeightMax(true)); + IGNORE_RETURN(getCollisionHeightMin(true)); + IGNORE_RETURN(getCollisionHeightMax(true)); + IGNORE_RETURN(getCollisionRadiusMin(true)); + IGNORE_RETURN(getCollisionRadiusMax(true)); + IGNORE_RETURN(getMovementDatatable(true)); + IGNORE_RETURN(getSwimHeightMin(true)); + IGNORE_RETURN(getSwimHeightMax(true)); + IGNORE_RETURN(getWarpToleranceMin(true)); + IGNORE_RETURN(getWarpToleranceMax(true)); + IGNORE_RETURN(getCollisionOffsetXMin(true)); + IGNORE_RETURN(getCollisionOffsetXMax(true)); + IGNORE_RETURN(getCollisionOffsetZMin(true)); + IGNORE_RETURN(getCollisionOffsetZMax(true)); + IGNORE_RETURN(getCollisionLengthMin(true)); + IGNORE_RETURN(getCollisionLengthMax(true)); + IGNORE_RETURN(getCameraHeightMin(true)); + IGNORE_RETURN(getCameraHeightMax(true)); + SharedTangibleObjectTemplate::testValues(); +} // SharedCreatureObjectTemplate::testValues +#endif + /** * Loads the template data from an iff file. We should already be in the form * for this template. @@ -2570,8 +3239,8 @@ float SharedCreatureObjectTemplate::getCameraHeightMax() const */ void SharedCreatureObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedCreatureObjectTemplate_tag) { @@ -2581,7 +3250,7 @@ void SharedCreatureObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -2601,8 +3270,10 @@ void SharedCreatureObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 1, 3)) + if (getHighestTemplateVersion() != TAG(0,0,1,3)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -2716,4 +3387,5 @@ void SharedCreatureObjectTemplate::load(Iff &file) return; } // SharedCreatureObjectTemplate::load -//@END TFD \ No newline at end of file +//@END TFD + diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedCreatureObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedCreatureObjectTemplate.h index 63164a08..53645aa7 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedCreatureObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedCreatureObjectTemplate.h @@ -361,10 +361,10 @@ public: }; public: - Gender getGender() const; - Niche getNiche() const; - Species getSpecies() const; - Race getRace() const; + Gender getGender(bool testData = false) const; + Niche getNiche(bool testData = false) const; + Species getSpecies(bool testData = false) const; + Race getRace(bool testData = false) const; float getAcceleration(MovementTypes index) const; float getAccelerationMin(MovementTypes index) const; float getAccelerationMax(MovementTypes index) const; @@ -374,46 +374,51 @@ public: float getTurnRate(MovementTypes index) const; float getTurnRateMin(MovementTypes index) const; float getTurnRateMax(MovementTypes index) const; - const std::string & getAnimationMapFilename() const; - float getSlopeModAngle() const; - float getSlopeModAngleMin() const; - float getSlopeModAngleMax() const; - float getSlopeModPercent() const; - float getSlopeModPercentMin() const; - float getSlopeModPercentMax() const; - float getWaterModPercent() const; - float getWaterModPercentMin() const; - float getWaterModPercentMax() const; - float getStepHeight() const; - float getStepHeightMin() const; - float getStepHeightMax() const; - float getCollisionHeight() const; - float getCollisionHeightMin() const; - float getCollisionHeightMax() const; - float getCollisionRadius() const; - float getCollisionRadiusMin() const; - float getCollisionRadiusMax() const; - const std::string & getMovementDatatable() const; + const std::string & getAnimationMapFilename(bool testData = false) const; + float getSlopeModAngle(bool testData = false) const; + float getSlopeModAngleMin(bool testData = false) const; + float getSlopeModAngleMax(bool testData = false) const; + float getSlopeModPercent(bool testData = false) const; + float getSlopeModPercentMin(bool testData = false) const; + float getSlopeModPercentMax(bool testData = false) const; + float getWaterModPercent(bool testData = false) const; + float getWaterModPercentMin(bool testData = false) const; + float getWaterModPercentMax(bool testData = false) const; + float getStepHeight(bool testData = false) const; + float getStepHeightMin(bool testData = false) const; + float getStepHeightMax(bool testData = false) const; + float getCollisionHeight(bool testData = false) const; + float getCollisionHeightMin(bool testData = false) const; + float getCollisionHeightMax(bool testData = false) const; + float getCollisionRadius(bool testData = false) const; + float getCollisionRadiusMin(bool testData = false) const; + float getCollisionRadiusMax(bool testData = false) const; + const std::string & getMovementDatatable(bool testData = false) const; bool getPostureAlignToTerrain(Postures index) const; - float getSwimHeight() const; - float getSwimHeightMin() const; - float getSwimHeightMax() const; - float getWarpTolerance() const; - float getWarpToleranceMin() const; - float getWarpToleranceMax() const; - float getCollisionOffsetX() const; - float getCollisionOffsetXMin() const; - float getCollisionOffsetXMax() const; - float getCollisionOffsetZ() const; - float getCollisionOffsetZMin() const; - float getCollisionOffsetZMax() const; - float getCollisionLength() const; - float getCollisionLengthMin() const; - float getCollisionLengthMax() const; - float getCameraHeight() const; - float getCameraHeightMin() const; - float getCameraHeightMax() const; + float getSwimHeight(bool testData = false) const; + float getSwimHeightMin(bool testData = false) const; + float getSwimHeightMax(bool testData = false) const; + float getWarpTolerance(bool testData = false) const; + float getWarpToleranceMin(bool testData = false) const; + float getWarpToleranceMax(bool testData = false) const; + float getCollisionOffsetX(bool testData = false) const; + float getCollisionOffsetXMin(bool testData = false) const; + float getCollisionOffsetXMax(bool testData = false) const; + float getCollisionOffsetZ(bool testData = false) const; + float getCollisionOffsetZMin(bool testData = false) const; + float getCollisionOffsetZMax(bool testData = false) const; + float getCollisionLength(bool testData = false) const; + float getCollisionLengthMin(bool testData = false) const; + float getCollisionLengthMax(bool testData = false) const; + float getCameraHeight(bool testData = false) const; + float getCameraHeightMin(bool testData = false) const; + float getCameraHeightMax(bool testData = false) const; +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedDraftSchematicObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedDraftSchematicObjectTemplate.cpp index d20a240a..961cebca 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedDraftSchematicObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedDraftSchematicObjectTemplate.cpp @@ -23,24 +23,24 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedDraftSchematicObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedDraftSchematicObjectTemplate::SharedDraftSchematicObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedIntangibleObjectTemplate(filename) - , m_slotsLoaded(false) - , m_slotsAppend(false) - , m_attributesLoaded(false) - , m_attributesAppend(false) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_slotsLoaded(false) + ,m_slotsAppend(false) + ,m_attributesLoaded(false) + ,m_attributesAppend(false) + ,m_versionOk(true) +//@END TFD INIT { } // SharedDraftSchematicObjectTemplate::SharedDraftSchematicObjectTemplate @@ -49,7 +49,7 @@ SharedDraftSchematicObjectTemplate::SharedDraftSchematicObjectTemplate(const std */ SharedDraftSchematicObjectTemplate::~SharedDraftSchematicObjectTemplate() { - //@BEGIN TFD CLEANUP +//@BEGIN TFD CLEANUP { std::vector::iterator iter; for (iter = m_slots.begin(); iter != m_slots.end(); ++iter) @@ -68,7 +68,7 @@ SharedDraftSchematicObjectTemplate::~SharedDraftSchematicObjectTemplate() } m_attributes.clear(); } - //@END TFD CLEANUP +//@END TFD CLEANUP } // SharedDraftSchematicObjectTemplate::~SharedDraftSchematicObjectTemplate /** @@ -138,7 +138,7 @@ void SharedDraftSchematicObjectTemplate::getSlots(IngredientSlot &data, int inde if (ms_allowDefaultTemplateParams && /*!m_versionOk &&*/ base == nullptr) { DEBUG_WARNING(true, ("Returning default value for missing parameter slots in template %s", DataResource::getName())); - return; + return ; } else { @@ -152,10 +152,10 @@ void SharedDraftSchematicObjectTemplate::getSlots(IngredientSlot &data, int inde { int baseCount = base->getSlotsCount(); if (index < baseCount) - { - base->getSlots(data, index); - return; - } + { + base->getSlots(data, index); + return; + } index -= baseCount; } @@ -181,7 +181,7 @@ void SharedDraftSchematicObjectTemplate::getSlotsMin(IngredientSlot &data, int i if (ms_allowDefaultTemplateParams && /*!m_versionOk &&*/ base == nullptr) { DEBUG_WARNING(true, ("Returning default value for missing parameter slots in template %s", DataResource::getName())); - return; + return ; } else { @@ -195,10 +195,10 @@ void SharedDraftSchematicObjectTemplate::getSlotsMin(IngredientSlot &data, int i { int baseCount = base->getSlotsCount(); if (index < baseCount) - { - base->getSlotsMin(data, index); - return; - } + { + base->getSlotsMin(data, index); + return; + } index -= baseCount; } @@ -224,7 +224,7 @@ void SharedDraftSchematicObjectTemplate::getSlotsMax(IngredientSlot &data, int i if (ms_allowDefaultTemplateParams && /*!m_versionOk &&*/ base == nullptr) { DEBUG_WARNING(true, ("Returning default value for missing parameter slots in template %s", DataResource::getName())); - return; + return ; } else { @@ -238,10 +238,10 @@ void SharedDraftSchematicObjectTemplate::getSlotsMax(IngredientSlot &data, int i { int baseCount = base->getSlotsCount(); if (index < baseCount) - { - base->getSlotsMax(data, index); - return; - } + { + base->getSlotsMax(data, index); + return; + } index -= baseCount; } @@ -291,7 +291,7 @@ void SharedDraftSchematicObjectTemplate::getAttributes(SchematicAttribute &data, if (ms_allowDefaultTemplateParams && /*!m_versionOk &&*/ base == nullptr) { DEBUG_WARNING(true, ("Returning default value for missing parameter attributes in template %s", DataResource::getName())); - return; + return ; } else { @@ -305,10 +305,10 @@ void SharedDraftSchematicObjectTemplate::getAttributes(SchematicAttribute &data, { int baseCount = base->getAttributesCount(); if (index < baseCount) - { - base->getAttributes(data, index); - return; - } + { + base->getAttributes(data, index); + return; + } index -= baseCount; } @@ -335,7 +335,7 @@ void SharedDraftSchematicObjectTemplate::getAttributesMin(SchematicAttribute &da if (ms_allowDefaultTemplateParams && /*!m_versionOk &&*/ base == nullptr) { DEBUG_WARNING(true, ("Returning default value for missing parameter attributes in template %s", DataResource::getName())); - return; + return ; } else { @@ -349,10 +349,10 @@ void SharedDraftSchematicObjectTemplate::getAttributesMin(SchematicAttribute &da { int baseCount = base->getAttributesCount(); if (index < baseCount) - { - base->getAttributesMin(data, index); - return; - } + { + base->getAttributesMin(data, index); + return; + } index -= baseCount; } @@ -379,7 +379,7 @@ void SharedDraftSchematicObjectTemplate::getAttributesMax(SchematicAttribute &da if (ms_allowDefaultTemplateParams && /*!m_versionOk &&*/ base == nullptr) { DEBUG_WARNING(true, ("Returning default value for missing parameter attributes in template %s", DataResource::getName())); - return; + return ; } else { @@ -393,10 +393,10 @@ void SharedDraftSchematicObjectTemplate::getAttributesMax(SchematicAttribute &da { int baseCount = base->getAttributesCount(); if (index < baseCount) - { - base->getAttributesMax(data, index); - return; - } + { + base->getAttributesMax(data, index); + return; + } index -= baseCount; } @@ -434,12 +434,22 @@ size_t SharedDraftSchematicObjectTemplate::getAttributesCount(void) const return count; } // SharedDraftSchematicObjectTemplate::getAttributesCount -const std::string & SharedDraftSchematicObjectTemplate::getCraftedSharedTemplate() const +const std::string & SharedDraftSchematicObjectTemplate::getCraftedSharedTemplate(bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedDraftSchematicObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getCraftedSharedTemplate(true); +#endif } if (!m_craftedSharedTemplate.isLoaded()) @@ -457,10 +467,26 @@ const std::string & SharedDraftSchematicObjectTemplate::getCraftedSharedTemplate } const std::string & value = m_craftedSharedTemplate.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedDraftSchematicObjectTemplate::getCraftedSharedTemplate +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedDraftSchematicObjectTemplate::testValues(void) const +{ + IGNORE_RETURN(getCraftedSharedTemplate(true)); + SharedIntangibleObjectTemplate::testValues(); +} // SharedDraftSchematicObjectTemplate::testValues +#endif + /** * Loads the template data from an iff file. We should already be in the form * for this template. @@ -469,8 +495,8 @@ const std::string & SharedDraftSchematicObjectTemplate::getCraftedSharedTemplate */ void SharedDraftSchematicObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedDraftSchematicObjectTemplate_tag) { @@ -480,7 +506,7 @@ void SharedDraftSchematicObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -500,8 +526,10 @@ void SharedDraftSchematicObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 0, 3)) + if (getHighestTemplateVersion() != TAG(0,0,0,3)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -563,6 +591,7 @@ void SharedDraftSchematicObjectTemplate::load(Iff &file) return; } // SharedDraftSchematicObjectTemplate::load + //============================================================================= // class SharedDraftSchematicObjectTemplate::_IngredientSlot @@ -609,12 +638,22 @@ Tag SharedDraftSchematicObjectTemplate::_IngredientSlot::getId(void) const return _IngredientSlot_tag; } // SharedDraftSchematicObjectTemplate::_IngredientSlot::getId -const StringId SharedDraftSchematicObjectTemplate::_IngredientSlot::getName(bool versionOk) const +const StringId SharedDraftSchematicObjectTemplate::_IngredientSlot::getName(bool versionOk, bool testData) const { +#ifdef _DEBUG +StringId testDataValue = DefaultStringId; +#else +UNREF(testData); +#endif + const SharedDraftSchematicObjectTemplate::_IngredientSlot * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getName(true); +#endif } if (!m_name.isLoaded()) @@ -632,16 +671,31 @@ const StringId SharedDraftSchematicObjectTemplate::_IngredientSlot::getName(bool } const StringId value = m_name.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedDraftSchematicObjectTemplate::_IngredientSlot::getName -const std::string & SharedDraftSchematicObjectTemplate::_IngredientSlot::getHardpoint(bool versionOk) const +const std::string & SharedDraftSchematicObjectTemplate::_IngredientSlot::getHardpoint(bool versionOk, bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedDraftSchematicObjectTemplate::_IngredientSlot * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getHardpoint(true); +#endif } if (!m_hardpoint.isLoaded()) @@ -659,10 +713,26 @@ const std::string & SharedDraftSchematicObjectTemplate::_IngredientSlot::getHard } const std::string & value = m_hardpoint.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedDraftSchematicObjectTemplate::_IngredientSlot::getHardpoint +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedDraftSchematicObjectTemplate::_IngredientSlot::testValues(void) const +{ + IGNORE_RETURN(getName(true)); + IGNORE_RETURN(getHardpoint(true)); +} // SharedDraftSchematicObjectTemplate::_IngredientSlot::testValues +#endif + /** * Loads the template data from an iff file. We should already be in the form * for this template. @@ -671,8 +741,8 @@ const std::string & SharedDraftSchematicObjectTemplate::_IngredientSlot::getHard */ void SharedDraftSchematicObjectTemplate::_IngredientSlot::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; file.enterForm(); @@ -694,6 +764,7 @@ void SharedDraftSchematicObjectTemplate::_IngredientSlot::load(Iff &file) UNREF(file); } // SharedDraftSchematicObjectTemplate::_IngredientSlot::load + //============================================================================= // class SharedDraftSchematicObjectTemplate::_SchematicAttribute @@ -740,12 +811,22 @@ Tag SharedDraftSchematicObjectTemplate::_SchematicAttribute::getId(void) const return _SchematicAttribute_tag; } // SharedDraftSchematicObjectTemplate::_SchematicAttribute::getId -const StringId SharedDraftSchematicObjectTemplate::_SchematicAttribute::getName(bool versionOk) const +const StringId SharedDraftSchematicObjectTemplate::_SchematicAttribute::getName(bool versionOk, bool testData) const { +#ifdef _DEBUG +StringId testDataValue = DefaultStringId; +#else +UNREF(testData); +#endif + const SharedDraftSchematicObjectTemplate::_SchematicAttribute * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getName(true); +#endif } if (!m_name.isLoaded()) @@ -763,16 +844,31 @@ const StringId SharedDraftSchematicObjectTemplate::_SchematicAttribute::getName( } const StringId value = m_name.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedDraftSchematicObjectTemplate::_SchematicAttribute::getName -const StringId SharedDraftSchematicObjectTemplate::_SchematicAttribute::getExperiment(bool versionOk) const +const StringId SharedDraftSchematicObjectTemplate::_SchematicAttribute::getExperiment(bool versionOk, bool testData) const { +#ifdef _DEBUG +StringId testDataValue = DefaultStringId; +#else +UNREF(testData); +#endif + const SharedDraftSchematicObjectTemplate::_SchematicAttribute * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getExperiment(true); +#endif } if (!m_experiment.isLoaded()) @@ -790,16 +886,31 @@ const StringId SharedDraftSchematicObjectTemplate::_SchematicAttribute::getExper } const StringId value = m_experiment.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedDraftSchematicObjectTemplate::_SchematicAttribute::getExperiment -int SharedDraftSchematicObjectTemplate::_SchematicAttribute::getValue(bool versionOk) const +int SharedDraftSchematicObjectTemplate::_SchematicAttribute::getValue(bool versionOk, bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedDraftSchematicObjectTemplate::_SchematicAttribute * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getValue(true); +#endif } if (!m_value.isLoaded()) @@ -839,16 +950,31 @@ int SharedDraftSchematicObjectTemplate::_SchematicAttribute::getValue(bool versi else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedDraftSchematicObjectTemplate::_SchematicAttribute::getValue -int SharedDraftSchematicObjectTemplate::_SchematicAttribute::getValueMin(bool versionOk) const +int SharedDraftSchematicObjectTemplate::_SchematicAttribute::getValueMin(bool versionOk, bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedDraftSchematicObjectTemplate::_SchematicAttribute * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getValueMin(true); +#endif } if (!m_value.isLoaded()) @@ -888,16 +1014,31 @@ int SharedDraftSchematicObjectTemplate::_SchematicAttribute::getValueMin(bool ve else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedDraftSchematicObjectTemplate::_SchematicAttribute::getValueMin -int SharedDraftSchematicObjectTemplate::_SchematicAttribute::getValueMax(bool versionOk) const +int SharedDraftSchematicObjectTemplate::_SchematicAttribute::getValueMax(bool versionOk, bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedDraftSchematicObjectTemplate::_SchematicAttribute * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getValueMax(true); +#endif } if (!m_value.isLoaded()) @@ -937,10 +1078,28 @@ int SharedDraftSchematicObjectTemplate::_SchematicAttribute::getValueMax(bool ve else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedDraftSchematicObjectTemplate::_SchematicAttribute::getValueMax +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedDraftSchematicObjectTemplate::_SchematicAttribute::testValues(void) const +{ + IGNORE_RETURN(getName(true)); + IGNORE_RETURN(getExperiment(true)); + IGNORE_RETURN(getValueMin(true)); + IGNORE_RETURN(getValueMax(true)); +} // SharedDraftSchematicObjectTemplate::_SchematicAttribute::testValues +#endif + /** * Loads the template data from an iff file. We should already be in the form * for this template. @@ -949,8 +1108,8 @@ int SharedDraftSchematicObjectTemplate::_SchematicAttribute::getValueMax(bool ve */ void SharedDraftSchematicObjectTemplate::_SchematicAttribute::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; file.enterForm(); @@ -978,17 +1137,17 @@ void SharedDraftSchematicObjectTemplate::_SchematicAttribute::load(Iff &file) //---------------------------------------------------------------------- -const StringId SharedDraftSchematicObjectTemplate::getCraftedName() const +const StringId SharedDraftSchematicObjectTemplate::getCraftedName () const { - StringId sid = getObjectName(); + StringId sid = getObjectName (); - if (sid.isInvalid()) + if (sid.isInvalid ()) { - const SharedObjectTemplate * const sot = fetchCraftedSharedObjectTemplate(); + const SharedObjectTemplate * const sot = fetchCraftedSharedObjectTemplate (); if (sot) { - sid = sot->getObjectName(); - sot->releaseReference(); + sid = sot->getObjectName (); + sot->releaseReference (); } } @@ -997,17 +1156,17 @@ const StringId SharedDraftSchematicObjectTemplate::getCraftedName() const //---------------------------------------------------------------------- -const StringId SharedDraftSchematicObjectTemplate::getCraftedDetailedDescription() const +const StringId SharedDraftSchematicObjectTemplate::getCraftedDetailedDescription () const { - StringId sid = getDetailedDescription(); + StringId sid = getDetailedDescription (); - if (sid.isInvalid()) + if (sid.isInvalid ()) { - const SharedObjectTemplate * const sot = fetchCraftedSharedObjectTemplate(); + const SharedObjectTemplate * const sot = fetchCraftedSharedObjectTemplate (); if (sot) { - sid = sot->getDetailedDescription(); - sot->releaseReference(); + sid = sot->getDetailedDescription (); + sot->releaseReference (); } } @@ -1016,17 +1175,17 @@ const StringId SharedDraftSchematicObjectTemplate::getCraftedDetailedDescription //---------------------------------------------------------------------- -const StringId SharedDraftSchematicObjectTemplate::getCraftedLookAtText() const +const StringId SharedDraftSchematicObjectTemplate::getCraftedLookAtText () const { - StringId sid = getLookAtText(); + StringId sid = getLookAtText (); - if (sid.isInvalid()) + if (sid.isInvalid ()) { - const SharedObjectTemplate * const sot = fetchCraftedSharedObjectTemplate(); + const SharedObjectTemplate * const sot = fetchCraftedSharedObjectTemplate (); if (sot) { - sid = sot->getLookAtText(); - sot->releaseReference(); + sid = sot->getLookAtText (); + sot->releaseReference (); } } @@ -1035,17 +1194,17 @@ const StringId SharedDraftSchematicObjectTemplate::getCraftedLookAtText() const //---------------------------------------------------------------------- -const std::string SharedDraftSchematicObjectTemplate::getCraftedAppearanceFilename() const +const std::string SharedDraftSchematicObjectTemplate::getCraftedAppearanceFilename () const { - const std::string & app = getAppearanceFilename(); + const std::string & app = getAppearanceFilename (); - if (app.empty()) + if (app.empty ()) { - const SharedObjectTemplate * const sot = fetchCraftedSharedObjectTemplate(); + const SharedObjectTemplate * const sot = fetchCraftedSharedObjectTemplate (); if (sot) { - const std::string capp = sot->getAppearanceFilename(); - sot->releaseReference(); + const std::string capp = sot->getAppearanceFilename (); + sot->releaseReference (); return capp; } } @@ -1055,18 +1214,19 @@ const std::string SharedDraftSchematicObjectTemplate::getCraftedAppearanceFilena //---------------------------------------------------------------------- -const SharedObjectTemplate * SharedDraftSchematicObjectTemplate::fetchCraftedSharedObjectTemplate() const +const SharedObjectTemplate * SharedDraftSchematicObjectTemplate::fetchCraftedSharedObjectTemplate () const { - const std::string & sotName = getCraftedSharedTemplate(); - const SharedObjectTemplate * const sot = safe_cast(ObjectTemplateList::fetch(sotName.c_str())); + const std::string & sotName = getCraftedSharedTemplate (); + const SharedObjectTemplate * const sot = safe_cast(ObjectTemplateList::fetch (sotName.c_str ())); if (!sot) { - const char * const draftName = this->DataResource::getName(); - WARNING(true, ("SharedDraftSchematicObjectTemplate [%s] could not load craftedSharedTemplate [%s]", draftName ? draftName : "", sotName.c_str())); + const char * const draftName = this->DataResource::getName (); + WARNING (true, ("SharedDraftSchematicObjectTemplate [%s] could not load craftedSharedTemplate [%s]", draftName ? draftName : "", sotName.c_str ())); } return sot; } -//---------------------------------------------------------------------- \ No newline at end of file +//---------------------------------------------------------------------- + diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedDraftSchematicObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedDraftSchematicObjectTemplate.h index 9d312500..e84be62c 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedDraftSchematicObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedDraftSchematicObjectTemplate.h @@ -109,9 +109,14 @@ protected: virtual Tag getId(void) const; public: - const StringId getName(bool versionOk) const; - const std::string & getHardpoint(bool versionOk) const; + const StringId getName(bool versionOk, bool testData = false) const; + const std::string & getHardpoint(bool versionOk, bool testData = false) const; +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); @@ -144,12 +149,17 @@ private: virtual Tag getId(void) const; public: - const StringId getName(bool versionOk) const; - const StringId getExperiment(bool versionOk) const; - int getValue(bool versionOk) const; - int getValueMin(bool versionOk) const; - int getValueMax(bool versionOk) const; + const StringId getName(bool versionOk, bool testData = false) const; + const StringId getExperiment(bool versionOk, bool testData = false) const; + int getValue(bool versionOk, bool testData = false) const; + int getValueMin(bool versionOk, bool testData = false) const; + int getValueMax(bool versionOk, bool testData = false) const; +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); @@ -176,8 +186,13 @@ public: void getAttributesMin(SchematicAttribute &data, int index) const; void getAttributesMax(SchematicAttribute &data, int index) const; size_t getAttributesCount(void) const; - const std::string & getCraftedSharedTemplate() const; + const std::string & getCraftedSharedTemplate(bool testData = false) const; +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedFactoryObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedFactoryObjectTemplate.cpp index e7d9e1f7..4a7e73fa 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedFactoryObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedFactoryObjectTemplate.cpp @@ -23,20 +23,20 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedFactoryObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedFactoryObjectTemplate::SharedFactoryObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedTangibleObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT { } // SharedFactoryObjectTemplate::SharedFactoryObjectTemplate @@ -45,8 +45,8 @@ SharedFactoryObjectTemplate::SharedFactoryObjectTemplate(const std::string & fil */ SharedFactoryObjectTemplate::~SharedFactoryObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP } // SharedFactoryObjectTemplate::~SharedFactoryObjectTemplate /** @@ -103,6 +103,15 @@ Tag SharedFactoryObjectTemplate::getHighestTemplateVersion(void) const } // SharedFactoryObjectTemplate::getHighestTemplateVersion //@BEGIN TFD +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedFactoryObjectTemplate::testValues(void) const +{ + SharedTangibleObjectTemplate::testValues(); +} // SharedFactoryObjectTemplate::testValues +#endif /** * Loads the template data from an iff file. We should already be in the form @@ -112,8 +121,8 @@ Tag SharedFactoryObjectTemplate::getHighestTemplateVersion(void) const */ void SharedFactoryObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedFactoryObjectTemplate_tag) { @@ -123,7 +132,7 @@ void SharedFactoryObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -143,8 +152,10 @@ void SharedFactoryObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 0, 0)) + if (getHighestTemplateVersion() != TAG(0,0,0,0)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -162,4 +173,4 @@ void SharedFactoryObjectTemplate::load(Iff &file) return; } // SharedFactoryObjectTemplate::load -//@END TFD \ No newline at end of file +//@END TFD diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedFactoryObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedFactoryObjectTemplate.h index 9333931b..3bab50b6 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedFactoryObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedFactoryObjectTemplate.h @@ -45,6 +45,11 @@ public: //@BEGIN TFD public: +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedGroupObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedGroupObjectTemplate.cpp index 87dc2c57..d3c1d6d0 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedGroupObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedGroupObjectTemplate.cpp @@ -23,20 +23,20 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedGroupObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedGroupObjectTemplate::SharedGroupObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedUniverseObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT { } // SharedGroupObjectTemplate::SharedGroupObjectTemplate @@ -45,8 +45,8 @@ SharedGroupObjectTemplate::SharedGroupObjectTemplate(const std::string & filenam */ SharedGroupObjectTemplate::~SharedGroupObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP } // SharedGroupObjectTemplate::~SharedGroupObjectTemplate /** @@ -103,6 +103,15 @@ Tag SharedGroupObjectTemplate::getHighestTemplateVersion(void) const } // SharedGroupObjectTemplate::getHighestTemplateVersion //@BEGIN TFD +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedGroupObjectTemplate::testValues(void) const +{ + SharedUniverseObjectTemplate::testValues(); +} // SharedGroupObjectTemplate::testValues +#endif /** * Loads the template data from an iff file. We should already be in the form @@ -112,8 +121,8 @@ Tag SharedGroupObjectTemplate::getHighestTemplateVersion(void) const */ void SharedGroupObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedGroupObjectTemplate_tag) { @@ -123,7 +132,7 @@ void SharedGroupObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -143,8 +152,10 @@ void SharedGroupObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 0, 0)) + if (getHighestTemplateVersion() != TAG(0,0,0,0)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -162,4 +173,4 @@ void SharedGroupObjectTemplate::load(Iff &file) return; } // SharedGroupObjectTemplate::load -//@END TFD \ No newline at end of file +//@END TFD diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedGroupObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedGroupObjectTemplate.h index 97298566..a114b920 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedGroupObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedGroupObjectTemplate.h @@ -45,6 +45,11 @@ public: //@BEGIN TFD public: +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedGuildObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedGuildObjectTemplate.cpp index 03650c6b..e57241db 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedGuildObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedGuildObjectTemplate.cpp @@ -23,20 +23,20 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedGuildObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedGuildObjectTemplate::SharedGuildObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedUniverseObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT { } // SharedGuildObjectTemplate::SharedGuildObjectTemplate @@ -45,8 +45,8 @@ SharedGuildObjectTemplate::SharedGuildObjectTemplate(const std::string & filenam */ SharedGuildObjectTemplate::~SharedGuildObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP } // SharedGuildObjectTemplate::~SharedGuildObjectTemplate /** @@ -103,6 +103,15 @@ Tag SharedGuildObjectTemplate::getHighestTemplateVersion(void) const } // SharedGuildObjectTemplate::getHighestTemplateVersion //@BEGIN TFD +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedGuildObjectTemplate::testValues(void) const +{ + SharedUniverseObjectTemplate::testValues(); +} // SharedGuildObjectTemplate::testValues +#endif /** * Loads the template data from an iff file. We should already be in the form @@ -112,8 +121,8 @@ Tag SharedGuildObjectTemplate::getHighestTemplateVersion(void) const */ void SharedGuildObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedGuildObjectTemplate_tag) { @@ -123,7 +132,7 @@ void SharedGuildObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -143,8 +152,10 @@ void SharedGuildObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 0, 0)) + if (getHighestTemplateVersion() != TAG(0,0,0,0)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -162,4 +173,4 @@ void SharedGuildObjectTemplate::load(Iff &file) return; } // SharedGuildObjectTemplate::load -//@END TFD \ No newline at end of file +//@END TFD diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedGuildObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedGuildObjectTemplate.h index b69a4dcc..43a7c2d3 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedGuildObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedGuildObjectTemplate.h @@ -45,6 +45,11 @@ public: //@BEGIN TFD public: +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedInstallationObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedInstallationObjectTemplate.cpp index 4e0e5c1b..5e66bbf1 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedInstallationObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedInstallationObjectTemplate.cpp @@ -23,20 +23,20 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedInstallationObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedInstallationObjectTemplate::SharedInstallationObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedTangibleObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT { } // SharedInstallationObjectTemplate::SharedInstallationObjectTemplate @@ -45,8 +45,8 @@ SharedInstallationObjectTemplate::SharedInstallationObjectTemplate(const std::st */ SharedInstallationObjectTemplate::~SharedInstallationObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP } // SharedInstallationObjectTemplate::~SharedInstallationObjectTemplate /** @@ -103,6 +103,15 @@ Tag SharedInstallationObjectTemplate::getHighestTemplateVersion(void) const } // SharedInstallationObjectTemplate::getHighestTemplateVersion //@BEGIN TFD +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedInstallationObjectTemplate::testValues(void) const +{ + SharedTangibleObjectTemplate::testValues(); +} // SharedInstallationObjectTemplate::testValues +#endif /** * Loads the template data from an iff file. We should already be in the form @@ -112,8 +121,8 @@ Tag SharedInstallationObjectTemplate::getHighestTemplateVersion(void) const */ void SharedInstallationObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedInstallationObjectTemplate_tag) { @@ -123,7 +132,7 @@ void SharedInstallationObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -143,8 +152,10 @@ void SharedInstallationObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 0, 0)) + if (getHighestTemplateVersion() != TAG(0,0,0,0)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -162,4 +173,4 @@ void SharedInstallationObjectTemplate::load(Iff &file) return; } // SharedInstallationObjectTemplate::load -//@END TFD \ No newline at end of file +//@END TFD diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedInstallationObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedInstallationObjectTemplate.h index 528b98b5..36e3aabe 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedInstallationObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedInstallationObjectTemplate.h @@ -45,6 +45,11 @@ public: //@BEGIN TFD public: +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedIntangibleObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedIntangibleObjectTemplate.cpp index ba2ef96f..4934dd40 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedIntangibleObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedIntangibleObjectTemplate.cpp @@ -23,20 +23,20 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedIntangibleObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedIntangibleObjectTemplate::SharedIntangibleObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT { } // SharedIntangibleObjectTemplate::SharedIntangibleObjectTemplate @@ -45,8 +45,8 @@ SharedIntangibleObjectTemplate::SharedIntangibleObjectTemplate(const std::string */ SharedIntangibleObjectTemplate::~SharedIntangibleObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP } // SharedIntangibleObjectTemplate::~SharedIntangibleObjectTemplate /** @@ -103,6 +103,15 @@ Tag SharedIntangibleObjectTemplate::getHighestTemplateVersion(void) const } // SharedIntangibleObjectTemplate::getHighestTemplateVersion //@BEGIN TFD +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedIntangibleObjectTemplate::testValues(void) const +{ + SharedObjectTemplate::testValues(); +} // SharedIntangibleObjectTemplate::testValues +#endif /** * Loads the template data from an iff file. We should already be in the form @@ -112,8 +121,8 @@ Tag SharedIntangibleObjectTemplate::getHighestTemplateVersion(void) const */ void SharedIntangibleObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedIntangibleObjectTemplate_tag) { @@ -123,7 +132,7 @@ void SharedIntangibleObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -143,8 +152,10 @@ void SharedIntangibleObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 0, 0)) + if (getHighestTemplateVersion() != TAG(0,0,0,0)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -162,4 +173,4 @@ void SharedIntangibleObjectTemplate::load(Iff &file) return; } // SharedIntangibleObjectTemplate::load -//@END TFD \ No newline at end of file +//@END TFD diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedIntangibleObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedIntangibleObjectTemplate.h index 4d7d15e7..bf0ae9d3 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedIntangibleObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedIntangibleObjectTemplate.h @@ -45,6 +45,11 @@ public: //@BEGIN TFD public: +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedJediManagerObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedJediManagerObjectTemplate.cpp index 3d1387bc..3c8ad274 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedJediManagerObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedJediManagerObjectTemplate.cpp @@ -12,7 +12,7 @@ #include "sharedGame/FirstSharedGame.h" #include "SharedJediManagerObjectTemplate.h" - +#include "sharedDebug/DataLint.h" #include "sharedFile/Iff.h" #include "sharedMath/Vector.h" #include "sharedObject/ObjectTemplate.h" @@ -24,20 +24,20 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedJediManagerObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedJediManagerObjectTemplate::SharedJediManagerObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedUniverseObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT { } // SharedJediManagerObjectTemplate::SharedJediManagerObjectTemplate @@ -46,8 +46,8 @@ SharedJediManagerObjectTemplate::SharedJediManagerObjectTemplate(const std::stri */ SharedJediManagerObjectTemplate::~SharedJediManagerObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP } // SharedJediManagerObjectTemplate::~SharedJediManagerObjectTemplate /** @@ -104,6 +104,15 @@ Tag SharedJediManagerObjectTemplate::getHighestTemplateVersion(void) const } // SharedJediManagerObjectTemplate::getHighestTemplateVersion //@BEGIN TFD +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedJediManagerObjectTemplate::testValues(void) const +{ + SharedUniverseObjectTemplate::testValues(); +} // SharedJediManagerObjectTemplate::testValues +#endif /** * Loads the template data from an iff file. We should already be in the form @@ -113,8 +122,8 @@ Tag SharedJediManagerObjectTemplate::getHighestTemplateVersion(void) const */ void SharedJediManagerObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedJediManagerObjectTemplate_tag) { @@ -124,7 +133,7 @@ void SharedJediManagerObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -144,8 +153,10 @@ void SharedJediManagerObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 0, 0)) + if (getHighestTemplateVersion() != TAG(0,0,0,0)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -163,4 +174,4 @@ void SharedJediManagerObjectTemplate::load(Iff &file) return; } // SharedJediManagerObjectTemplate::load -//@END TFD \ No newline at end of file +//@END TFD diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedJediManagerObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedJediManagerObjectTemplate.h index 91b5d4ef..b2be5b14 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedJediManagerObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedJediManagerObjectTemplate.h @@ -45,6 +45,11 @@ public: //@BEGIN TFD public: +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedManufactureSchematicObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedManufactureSchematicObjectTemplate.cpp index 2f637eae..de9c8b4d 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedManufactureSchematicObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedManufactureSchematicObjectTemplate.cpp @@ -23,20 +23,20 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedManufactureSchematicObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedManufactureSchematicObjectTemplate::SharedManufactureSchematicObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedIntangibleObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT { } // SharedManufactureSchematicObjectTemplate::SharedManufactureSchematicObjectTemplate @@ -45,8 +45,8 @@ SharedManufactureSchematicObjectTemplate::SharedManufactureSchematicObjectTempla */ SharedManufactureSchematicObjectTemplate::~SharedManufactureSchematicObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP } // SharedManufactureSchematicObjectTemplate::~SharedManufactureSchematicObjectTemplate /** @@ -103,6 +103,15 @@ Tag SharedManufactureSchematicObjectTemplate::getHighestTemplateVersion(void) co } // SharedManufactureSchematicObjectTemplate::getHighestTemplateVersion //@BEGIN TFD +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedManufactureSchematicObjectTemplate::testValues(void) const +{ + SharedIntangibleObjectTemplate::testValues(); +} // SharedManufactureSchematicObjectTemplate::testValues +#endif /** * Loads the template data from an iff file. We should already be in the form @@ -112,8 +121,8 @@ Tag SharedManufactureSchematicObjectTemplate::getHighestTemplateVersion(void) co */ void SharedManufactureSchematicObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedManufactureSchematicObjectTemplate_tag) { @@ -123,7 +132,7 @@ void SharedManufactureSchematicObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -143,8 +152,10 @@ void SharedManufactureSchematicObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 0, 0)) + if (getHighestTemplateVersion() != TAG(0,0,0,0)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -162,4 +173,4 @@ void SharedManufactureSchematicObjectTemplate::load(Iff &file) return; } // SharedManufactureSchematicObjectTemplate::load -//@END TFD \ No newline at end of file +//@END TFD diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedManufactureSchematicObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedManufactureSchematicObjectTemplate.h index fc80e58d..71a6c26e 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedManufactureSchematicObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedManufactureSchematicObjectTemplate.h @@ -45,6 +45,11 @@ public: //@BEGIN TFD public: +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedMissionObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedMissionObjectTemplate.cpp index 29fbcc08..10eaba74 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedMissionObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedMissionObjectTemplate.cpp @@ -23,20 +23,20 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedMissionObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedMissionObjectTemplate::SharedMissionObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedIntangibleObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT { } // SharedMissionObjectTemplate::SharedMissionObjectTemplate @@ -45,8 +45,8 @@ SharedMissionObjectTemplate::SharedMissionObjectTemplate(const std::string & fil */ SharedMissionObjectTemplate::~SharedMissionObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP } // SharedMissionObjectTemplate::~SharedMissionObjectTemplate /** @@ -103,6 +103,15 @@ Tag SharedMissionObjectTemplate::getHighestTemplateVersion(void) const } // SharedMissionObjectTemplate::getHighestTemplateVersion //@BEGIN TFD +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedMissionObjectTemplate::testValues(void) const +{ + SharedIntangibleObjectTemplate::testValues(); +} // SharedMissionObjectTemplate::testValues +#endif /** * Loads the template data from an iff file. We should already be in the form @@ -112,8 +121,8 @@ Tag SharedMissionObjectTemplate::getHighestTemplateVersion(void) const */ void SharedMissionObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedMissionObjectTemplate_tag) { @@ -123,7 +132,7 @@ void SharedMissionObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -143,8 +152,10 @@ void SharedMissionObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 0, 0)) + if (getHighestTemplateVersion() != TAG(0,0,0,0)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -162,4 +173,4 @@ void SharedMissionObjectTemplate::load(Iff &file) return; } // SharedMissionObjectTemplate::load -//@END TFD \ No newline at end of file +//@END TFD diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedMissionObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedMissionObjectTemplate.h index 554ebadc..7830dc89 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedMissionObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedMissionObjectTemplate.h @@ -45,6 +45,11 @@ public: //@BEGIN TFD public: +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedObjectTemplate.cpp index 4fa1374b..dc0fe57a 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedObjectTemplate.cpp @@ -33,7 +33,7 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedObjectTemplate::ms_allowDefaultTemplateParams = true; @@ -46,13 +46,13 @@ class SharedObjectTemplate::PreloadManager { public: - explicit PreloadManager(const SharedObjectTemplate* sharedObjectTemplate); - ~PreloadManager(); + explicit PreloadManager (const SharedObjectTemplate* sharedObjectTemplate); + ~PreloadManager (); private: - - PreloadManager(); - PreloadManager(const PreloadManager&); + + PreloadManager (); + PreloadManager (const PreloadManager&); PreloadManager& operator= (const PreloadManager&); private: @@ -63,40 +63,40 @@ private: // ---------------------------------------------------------------------- -SharedObjectTemplate::PreloadManager::PreloadManager(const SharedObjectTemplate* const sharedObjectTemplate) : - m_preloadAppearanceTemplate(0), - m_preloadPortalPropertyTemplate(0) +SharedObjectTemplate::PreloadManager::PreloadManager (const SharedObjectTemplate* const sharedObjectTemplate) : +m_preloadAppearanceTemplate (0), +m_preloadPortalPropertyTemplate (0) { NOT_NULL(sharedObjectTemplate); - const std::string& appearanceFileName = sharedObjectTemplate->getAppearanceFilename(); - if (!appearanceFileName.empty()) + const std::string& appearanceFileName = sharedObjectTemplate->getAppearanceFilename (); + if (!appearanceFileName.empty ()) { bool found = false; - m_preloadAppearanceTemplate = AppearanceTemplateList::fetch(appearanceFileName.c_str(), found); + m_preloadAppearanceTemplate = AppearanceTemplateList::fetch (appearanceFileName.c_str (), found); WARNING(!found, ("SharedObjectTemplate [%s] unable to load appearance [%s]", sharedObjectTemplate->getName(), appearanceFileName.c_str())); - m_preloadAppearanceTemplate->preloadAssets(); + m_preloadAppearanceTemplate->preloadAssets (); } - const std::string& portalLayoutFilename = sharedObjectTemplate->getPortalLayoutFilename(); - if (!portalLayoutFilename.empty()) + const std::string& portalLayoutFilename = sharedObjectTemplate->getPortalLayoutFilename (); + if (!portalLayoutFilename.empty ()) { - m_preloadPortalPropertyTemplate = PortalPropertyTemplateList::fetch(TemporaryCrcString(portalLayoutFilename.c_str(), true)); - m_preloadPortalPropertyTemplate->preloadAssets(); + m_preloadPortalPropertyTemplate = PortalPropertyTemplateList::fetch (TemporaryCrcString (portalLayoutFilename.c_str (), true)); + m_preloadPortalPropertyTemplate->preloadAssets (); } if (sharedObjectTemplate->m_clientData) - sharedObjectTemplate->m_clientData->preloadAssets(); + sharedObjectTemplate->m_clientData->preloadAssets (); } // ---------------------------------------------------------------------- -SharedObjectTemplate::PreloadManager::~PreloadManager() +SharedObjectTemplate::PreloadManager::~PreloadManager () { if (m_preloadAppearanceTemplate) - AppearanceTemplateList::release(m_preloadAppearanceTemplate); + AppearanceTemplateList::release (m_preloadAppearanceTemplate); if (m_preloadPortalPropertyTemplate) - m_preloadPortalPropertyTemplate->release(); + m_preloadPortalPropertyTemplate->release (); } // ====================================================================== @@ -107,13 +107,12 @@ SharedObjectTemplate::PreloadManager::~PreloadManager() SharedObjectTemplate::SharedObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : ObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT , m_slotDescriptor(nullptr) , m_arrangementDescriptor(nullptr) - , m_clientData(0) - , m_preloadManager(0) + , m_clientData (0) + , m_preloadManager (0) { } // SharedObjectTemplate::SharedObjectTemplate @@ -122,10 +121,10 @@ SharedObjectTemplate::SharedObjectTemplate(const std::string & filename) */ SharedObjectTemplate::~SharedObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP - //-- Release ArrangementDescriptor resource. + //-- Release ArrangementDescriptor resource. if (m_arrangementDescriptor) { m_arrangementDescriptor->release(); @@ -141,7 +140,7 @@ SharedObjectTemplate::~SharedObjectTemplate() //-- delete client data if (m_clientData) - m_clientData->releaseReference(); + m_clientData->releaseReference (); //-- delete preloadmanager if (m_preloadManager) @@ -185,17 +184,18 @@ ObjectTemplate * SharedObjectTemplate::create(const std::string & filename) return new SharedObjectTemplate(filename); } // SharedObjectTemplate::create -void SharedObjectTemplate::preloadAssets() const + +void SharedObjectTemplate::preloadAssets () const { - ObjectTemplate::preloadAssets(); + ObjectTemplate::preloadAssets (); if (!m_preloadManager) - m_preloadManager = new PreloadManager(this); + m_preloadManager = new PreloadManager (this); } -void SharedObjectTemplate::garbageCollect() const +void SharedObjectTemplate::garbageCollect () const { - ObjectTemplate::garbageCollect(); + ObjectTemplate::garbageCollect (); if (m_preloadManager) { @@ -204,6 +204,7 @@ void SharedObjectTemplate::garbageCollect() const } } + /** * Returns the template id. * @@ -257,20 +258,30 @@ void SharedObjectTemplate::postLoad(void) //-- load the client data file if (ms_createClientDataFunction) { - const std::string& clientDataFile = getClientDataFile(); + const std::string& clientDataFile = getClientDataFile (); - if (!clientDataFile.empty()) - m_clientData = ms_createClientDataFunction(clientDataFile.c_str()); + if (!clientDataFile.empty ()) + m_clientData = ms_createClientDataFunction (clientDataFile.c_str ()); } } // SharedObjectTemplate::postLoad //@BEGIN TFD -const StringId SharedObjectTemplate::getObjectName() const +const StringId SharedObjectTemplate::getObjectName(bool testData) const { +#ifdef _DEBUG +StringId testDataValue = DefaultStringId; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getObjectName(true); +#endif } if (!m_objectName.isLoaded()) @@ -288,16 +299,31 @@ const StringId SharedObjectTemplate::getObjectName() const } const StringId value = m_objectName.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getObjectName -const StringId SharedObjectTemplate::getDetailedDescription() const +const StringId SharedObjectTemplate::getDetailedDescription(bool testData) const { +#ifdef _DEBUG +StringId testDataValue = DefaultStringId; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getDetailedDescription(true); +#endif } if (!m_detailedDescription.isLoaded()) @@ -315,16 +341,31 @@ const StringId SharedObjectTemplate::getDetailedDescription() const } const StringId value = m_detailedDescription.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getDetailedDescription -const StringId SharedObjectTemplate::getLookAtText() const +const StringId SharedObjectTemplate::getLookAtText(bool testData) const { +#ifdef _DEBUG +StringId testDataValue = DefaultStringId; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getLookAtText(true); +#endif } if (!m_lookAtText.isLoaded()) @@ -342,16 +383,31 @@ const StringId SharedObjectTemplate::getLookAtText() const } const StringId value = m_lookAtText.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getLookAtText -bool SharedObjectTemplate::getSnapToTerrain() const +bool SharedObjectTemplate::getSnapToTerrain(bool testData) const { +#ifdef _DEBUG +bool testDataValue = false; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getSnapToTerrain(true); +#endif } if (!m_snapToTerrain.isLoaded()) @@ -369,16 +425,31 @@ bool SharedObjectTemplate::getSnapToTerrain() const } bool value = m_snapToTerrain.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getSnapToTerrain -SharedObjectTemplate::ContainerType SharedObjectTemplate::getContainerType() const +SharedObjectTemplate::ContainerType SharedObjectTemplate::getContainerType(bool testData) const { +#ifdef _DEBUG +SharedObjectTemplate::ContainerType testDataValue = static_cast(0); +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getContainerType(true); +#endif } if (!m_containerType.isLoaded()) @@ -396,16 +467,31 @@ SharedObjectTemplate::ContainerType SharedObjectTemplate::getContainerType() con } ContainerType value = static_cast(m_containerType.getValue()); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getContainerType -int SharedObjectTemplate::getContainerVolumeLimit() const +int SharedObjectTemplate::getContainerVolumeLimit(bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getContainerVolumeLimit(true); +#endif } if (!m_containerVolumeLimit.isLoaded()) @@ -445,16 +531,31 @@ int SharedObjectTemplate::getContainerVolumeLimit() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getContainerVolumeLimit -int SharedObjectTemplate::getContainerVolumeLimitMin() const +int SharedObjectTemplate::getContainerVolumeLimitMin(bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getContainerVolumeLimitMin(true); +#endif } if (!m_containerVolumeLimit.isLoaded()) @@ -494,16 +595,31 @@ int SharedObjectTemplate::getContainerVolumeLimitMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getContainerVolumeLimitMin -int SharedObjectTemplate::getContainerVolumeLimitMax() const +int SharedObjectTemplate::getContainerVolumeLimitMax(bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getContainerVolumeLimitMax(true); +#endif } if (!m_containerVolumeLimit.isLoaded()) @@ -543,16 +659,31 @@ int SharedObjectTemplate::getContainerVolumeLimitMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getContainerVolumeLimitMax -const std::string & SharedObjectTemplate::getTintPalette() const +const std::string & SharedObjectTemplate::getTintPalette(bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getTintPalette(true); +#endif } if (!m_tintPalette.isLoaded()) @@ -570,16 +701,31 @@ const std::string & SharedObjectTemplate::getTintPalette() const } const std::string & value = m_tintPalette.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getTintPalette -const std::string & SharedObjectTemplate::getSlotDescriptorFilename() const +const std::string & SharedObjectTemplate::getSlotDescriptorFilename(bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getSlotDescriptorFilename(true); +#endif } if (!m_slotDescriptorFilename.isLoaded()) @@ -597,16 +743,31 @@ const std::string & SharedObjectTemplate::getSlotDescriptorFilename() const } const std::string & value = m_slotDescriptorFilename.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getSlotDescriptorFilename -const std::string & SharedObjectTemplate::getArrangementDescriptorFilename() const +const std::string & SharedObjectTemplate::getArrangementDescriptorFilename(bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getArrangementDescriptorFilename(true); +#endif } if (!m_arrangementDescriptorFilename.isLoaded()) @@ -624,16 +785,31 @@ const std::string & SharedObjectTemplate::getArrangementDescriptorFilename() con } const std::string & value = m_arrangementDescriptorFilename.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getArrangementDescriptorFilename -const std::string & SharedObjectTemplate::getAppearanceFilename() const +const std::string & SharedObjectTemplate::getAppearanceFilename(bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getAppearanceFilename(true); +#endif } if (!m_appearanceFilename.isLoaded()) @@ -651,16 +827,31 @@ const std::string & SharedObjectTemplate::getAppearanceFilename() const } const std::string & value = m_appearanceFilename.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getAppearanceFilename -const std::string & SharedObjectTemplate::getPortalLayoutFilename() const +const std::string & SharedObjectTemplate::getPortalLayoutFilename(bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getPortalLayoutFilename(true); +#endif } if (!m_portalLayoutFilename.isLoaded()) @@ -678,16 +869,31 @@ const std::string & SharedObjectTemplate::getPortalLayoutFilename() const } const std::string & value = m_portalLayoutFilename.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getPortalLayoutFilename -const std::string & SharedObjectTemplate::getClientDataFile() const +const std::string & SharedObjectTemplate::getClientDataFile(bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getClientDataFile(true); +#endif } if (!m_clientDataFile.isLoaded()) @@ -705,16 +911,31 @@ const std::string & SharedObjectTemplate::getClientDataFile() const } const std::string & value = m_clientDataFile.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getClientDataFile -float SharedObjectTemplate::getScale() const +float SharedObjectTemplate::getScale(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getScale(true); +#endif } if (!m_scale.isLoaded()) @@ -754,16 +975,31 @@ float SharedObjectTemplate::getScale() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getScale -float SharedObjectTemplate::getScaleMin() const +float SharedObjectTemplate::getScaleMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getScaleMin(true); +#endif } if (!m_scale.isLoaded()) @@ -803,16 +1039,31 @@ float SharedObjectTemplate::getScaleMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getScaleMin -float SharedObjectTemplate::getScaleMax() const +float SharedObjectTemplate::getScaleMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getScaleMax(true); +#endif } if (!m_scale.isLoaded()) @@ -852,16 +1103,31 @@ float SharedObjectTemplate::getScaleMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getScaleMax -SharedObjectTemplate::GameObjectType SharedObjectTemplate::getGameObjectType() const +SharedObjectTemplate::GameObjectType SharedObjectTemplate::getGameObjectType(bool testData) const { +#ifdef _DEBUG +SharedObjectTemplate::GameObjectType testDataValue = static_cast(0); +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getGameObjectType(true); +#endif } if (!m_gameObjectType.isLoaded()) @@ -879,16 +1145,31 @@ SharedObjectTemplate::GameObjectType SharedObjectTemplate::getGameObjectType() c } GameObjectType value = static_cast(m_gameObjectType.getValue()); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getGameObjectType -bool SharedObjectTemplate::getSendToClient() const +bool SharedObjectTemplate::getSendToClient(bool testData) const { +#ifdef _DEBUG +bool testDataValue = false; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getSendToClient(true); +#endif } if (!m_sendToClient.isLoaded()) @@ -906,16 +1187,31 @@ bool SharedObjectTemplate::getSendToClient() const } bool value = m_sendToClient.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getSendToClient -float SharedObjectTemplate::getScaleThresholdBeforeExtentTest() const +float SharedObjectTemplate::getScaleThresholdBeforeExtentTest(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getScaleThresholdBeforeExtentTest(true); +#endif } if (!m_scaleThresholdBeforeExtentTest.isLoaded()) @@ -955,16 +1251,31 @@ float SharedObjectTemplate::getScaleThresholdBeforeExtentTest() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getScaleThresholdBeforeExtentTest -float SharedObjectTemplate::getScaleThresholdBeforeExtentTestMin() const +float SharedObjectTemplate::getScaleThresholdBeforeExtentTestMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getScaleThresholdBeforeExtentTestMin(true); +#endif } if (!m_scaleThresholdBeforeExtentTest.isLoaded()) @@ -1004,16 +1315,31 @@ float SharedObjectTemplate::getScaleThresholdBeforeExtentTestMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getScaleThresholdBeforeExtentTestMin -float SharedObjectTemplate::getScaleThresholdBeforeExtentTestMax() const +float SharedObjectTemplate::getScaleThresholdBeforeExtentTestMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getScaleThresholdBeforeExtentTestMax(true); +#endif } if (!m_scaleThresholdBeforeExtentTest.isLoaded()) @@ -1053,16 +1379,31 @@ float SharedObjectTemplate::getScaleThresholdBeforeExtentTestMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getScaleThresholdBeforeExtentTestMax -float SharedObjectTemplate::getClearFloraRadius() const +float SharedObjectTemplate::getClearFloraRadius(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getClearFloraRadius(true); +#endif } if (!m_clearFloraRadius.isLoaded()) @@ -1102,16 +1443,31 @@ float SharedObjectTemplate::getClearFloraRadius() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getClearFloraRadius -float SharedObjectTemplate::getClearFloraRadiusMin() const +float SharedObjectTemplate::getClearFloraRadiusMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getClearFloraRadiusMin(true); +#endif } if (!m_clearFloraRadius.isLoaded()) @@ -1151,16 +1507,31 @@ float SharedObjectTemplate::getClearFloraRadiusMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getClearFloraRadiusMin -float SharedObjectTemplate::getClearFloraRadiusMax() const +float SharedObjectTemplate::getClearFloraRadiusMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getClearFloraRadiusMax(true); +#endif } if (!m_clearFloraRadius.isLoaded()) @@ -1200,16 +1571,31 @@ float SharedObjectTemplate::getClearFloraRadiusMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getClearFloraRadiusMax -SharedObjectTemplate::SurfaceType SharedObjectTemplate::getSurfaceType() const +SharedObjectTemplate::SurfaceType SharedObjectTemplate::getSurfaceType(bool testData) const { +#ifdef _DEBUG +SharedObjectTemplate::SurfaceType testDataValue = static_cast(0); +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getSurfaceType(true); +#endif } if (!m_surfaceType.isLoaded()) @@ -1227,16 +1613,31 @@ SharedObjectTemplate::SurfaceType SharedObjectTemplate::getSurfaceType() const } SurfaceType value = static_cast(m_surfaceType.getValue()); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getSurfaceType -float SharedObjectTemplate::getNoBuildRadius() const +float SharedObjectTemplate::getNoBuildRadius(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getNoBuildRadius(true); +#endif } if (!m_noBuildRadius.isLoaded()) @@ -1276,16 +1677,31 @@ float SharedObjectTemplate::getNoBuildRadius() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getNoBuildRadius -float SharedObjectTemplate::getNoBuildRadiusMin() const +float SharedObjectTemplate::getNoBuildRadiusMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getNoBuildRadiusMin(true); +#endif } if (!m_noBuildRadius.isLoaded()) @@ -1325,16 +1741,31 @@ float SharedObjectTemplate::getNoBuildRadiusMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getNoBuildRadiusMin -float SharedObjectTemplate::getNoBuildRadiusMax() const +float SharedObjectTemplate::getNoBuildRadiusMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getNoBuildRadiusMax(true); +#endif } if (!m_noBuildRadius.isLoaded()) @@ -1374,16 +1805,31 @@ float SharedObjectTemplate::getNoBuildRadiusMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getNoBuildRadiusMax -bool SharedObjectTemplate::getOnlyVisibleInTools() const +bool SharedObjectTemplate::getOnlyVisibleInTools(bool testData) const { +#ifdef _DEBUG +bool testDataValue = false; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getOnlyVisibleInTools(true); +#endif } if (!m_onlyVisibleInTools.isLoaded()) @@ -1401,16 +1847,31 @@ bool SharedObjectTemplate::getOnlyVisibleInTools() const } bool value = m_onlyVisibleInTools.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getOnlyVisibleInTools -float SharedObjectTemplate::getLocationReservationRadius() const +float SharedObjectTemplate::getLocationReservationRadius(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getLocationReservationRadius(true); +#endif } if (!m_locationReservationRadius.isLoaded()) @@ -1450,16 +1911,31 @@ float SharedObjectTemplate::getLocationReservationRadius() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getLocationReservationRadius -float SharedObjectTemplate::getLocationReservationRadiusMin() const +float SharedObjectTemplate::getLocationReservationRadiusMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getLocationReservationRadiusMin(true); +#endif } if (!m_locationReservationRadius.isLoaded()) @@ -1499,16 +1975,31 @@ float SharedObjectTemplate::getLocationReservationRadiusMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getLocationReservationRadiusMin -float SharedObjectTemplate::getLocationReservationRadiusMax() const +float SharedObjectTemplate::getLocationReservationRadiusMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getLocationReservationRadiusMax(true); +#endif } if (!m_locationReservationRadius.isLoaded()) @@ -1548,16 +2039,31 @@ float SharedObjectTemplate::getLocationReservationRadiusMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getLocationReservationRadiusMax -bool SharedObjectTemplate::getForceNoCollision() const +bool SharedObjectTemplate::getForceNoCollision(bool testData) const { +#ifdef _DEBUG +bool testDataValue = false; +#else +UNREF(testData); +#endif + const SharedObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getForceNoCollision(true); +#endif } if (!m_forceNoCollision.isLoaded()) @@ -1575,10 +2081,52 @@ bool SharedObjectTemplate::getForceNoCollision() const } bool value = m_forceNoCollision.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedObjectTemplate::getForceNoCollision +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedObjectTemplate::testValues(void) const +{ + IGNORE_RETURN(getObjectName(true)); + IGNORE_RETURN(getDetailedDescription(true)); + IGNORE_RETURN(getLookAtText(true)); + IGNORE_RETURN(getSnapToTerrain(true)); + IGNORE_RETURN(getContainerType(true)); + IGNORE_RETURN(getContainerVolumeLimitMin(true)); + IGNORE_RETURN(getContainerVolumeLimitMax(true)); + IGNORE_RETURN(getTintPalette(true)); + IGNORE_RETURN(getSlotDescriptorFilename(true)); + IGNORE_RETURN(getArrangementDescriptorFilename(true)); + IGNORE_RETURN(getAppearanceFilename(true)); + IGNORE_RETURN(getPortalLayoutFilename(true)); + IGNORE_RETURN(getClientDataFile(true)); + IGNORE_RETURN(getScaleMin(true)); + IGNORE_RETURN(getScaleMax(true)); + IGNORE_RETURN(getGameObjectType(true)); + IGNORE_RETURN(getSendToClient(true)); + IGNORE_RETURN(getScaleThresholdBeforeExtentTestMin(true)); + IGNORE_RETURN(getScaleThresholdBeforeExtentTestMax(true)); + IGNORE_RETURN(getClearFloraRadiusMin(true)); + IGNORE_RETURN(getClearFloraRadiusMax(true)); + IGNORE_RETURN(getSurfaceType(true)); + IGNORE_RETURN(getNoBuildRadiusMin(true)); + IGNORE_RETURN(getNoBuildRadiusMax(true)); + IGNORE_RETURN(getOnlyVisibleInTools(true)); + IGNORE_RETURN(getLocationReservationRadiusMin(true)); + IGNORE_RETURN(getLocationReservationRadiusMax(true)); + IGNORE_RETURN(getForceNoCollision(true)); +} // SharedObjectTemplate::testValues +#endif + /** * Loads the template data from an iff file. We should already be in the form * for this template. @@ -1587,8 +2135,8 @@ bool SharedObjectTemplate::getForceNoCollision() const */ void SharedObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedObjectTemplate_tag) { @@ -1597,7 +2145,7 @@ void SharedObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -1617,8 +2165,10 @@ void SharedObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 1, 0)) + if (getHighestTemplateVersion() != TAG(0,0,1,0)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -1688,7 +2238,7 @@ void SharedObjectTemplate::load(Iff &file) // PUBLIC STATIC SharedObjectTemplate //=================================================================== -void SharedObjectTemplate::setCreateClientDataFunction(SharedObjectTemplate::CreateClientDataFunction createClientDataFunction) +void SharedObjectTemplate::setCreateClientDataFunction (SharedObjectTemplate::CreateClientDataFunction createClientDataFunction) { ms_createClientDataFunction = createClientDataFunction; } @@ -1697,7 +2247,7 @@ void SharedObjectTemplate::setCreateClientDataFunction(SharedObjectTemplate::Cre // PUBLIC SharedObjectTemplate //=================================================================== -const SharedObjectTemplateClientData* SharedObjectTemplate::getClientData() const +const SharedObjectTemplateClientData* SharedObjectTemplate::getClientData () const { return m_clientData; } @@ -1708,4 +2258,4 @@ const SharedObjectTemplateClientData* SharedObjectTemplate::getClientData() cons SharedObjectTemplate::CreateClientDataFunction SharedObjectTemplate::ms_createClientDataFunction; -//=================================================================== \ No newline at end of file +//=================================================================== diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedObjectTemplate.h index 6eecadac..5fc7686f 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedObjectTemplate.h @@ -339,41 +339,46 @@ public: }; public: - const StringId getObjectName() const; - const StringId getDetailedDescription() const; - const StringId getLookAtText() const; - bool getSnapToTerrain() const; - ContainerType getContainerType() const; - int getContainerVolumeLimit() const; - int getContainerVolumeLimitMin() const; - int getContainerVolumeLimitMax() const; - const std::string & getTintPalette() const; - const std::string & getSlotDescriptorFilename() const; - const std::string & getArrangementDescriptorFilename() const; - const std::string & getAppearanceFilename() const; - const std::string & getPortalLayoutFilename() const; - const std::string & getClientDataFile() const; - float getScale() const; - float getScaleMin() const; - float getScaleMax() const; - GameObjectType getGameObjectType() const; - bool getSendToClient() const; - float getScaleThresholdBeforeExtentTest() const; - float getScaleThresholdBeforeExtentTestMin() const; - float getScaleThresholdBeforeExtentTestMax() const; - float getClearFloraRadius() const; - float getClearFloraRadiusMin() const; - float getClearFloraRadiusMax() const; - SurfaceType getSurfaceType() const; - float getNoBuildRadius() const; - float getNoBuildRadiusMin() const; - float getNoBuildRadiusMax() const; - bool getOnlyVisibleInTools() const; - float getLocationReservationRadius() const; - float getLocationReservationRadiusMin() const; - float getLocationReservationRadiusMax() const; - bool getForceNoCollision() const; + const StringId getObjectName(bool testData = false) const; + const StringId getDetailedDescription(bool testData = false) const; + const StringId getLookAtText(bool testData = false) const; + bool getSnapToTerrain(bool testData = false) const; + ContainerType getContainerType(bool testData = false) const; + int getContainerVolumeLimit(bool testData = false) const; + int getContainerVolumeLimitMin(bool testData = false) const; + int getContainerVolumeLimitMax(bool testData = false) const; + const std::string & getTintPalette(bool testData = false) const; + const std::string & getSlotDescriptorFilename(bool testData = false) const; + const std::string & getArrangementDescriptorFilename(bool testData = false) const; + const std::string & getAppearanceFilename(bool testData = false) const; + const std::string & getPortalLayoutFilename(bool testData = false) const; + const std::string & getClientDataFile(bool testData = false) const; + float getScale(bool testData = false) const; + float getScaleMin(bool testData = false) const; + float getScaleMax(bool testData = false) const; + GameObjectType getGameObjectType(bool testData = false) const; + bool getSendToClient(bool testData = false) const; + float getScaleThresholdBeforeExtentTest(bool testData = false) const; + float getScaleThresholdBeforeExtentTestMin(bool testData = false) const; + float getScaleThresholdBeforeExtentTestMax(bool testData = false) const; + float getClearFloraRadius(bool testData = false) const; + float getClearFloraRadiusMin(bool testData = false) const; + float getClearFloraRadiusMax(bool testData = false) const; + SurfaceType getSurfaceType(bool testData = false) const; + float getNoBuildRadius(bool testData = false) const; + float getNoBuildRadiusMin(bool testData = false) const; + float getNoBuildRadiusMax(bool testData = false) const; + bool getOnlyVisibleInTools(bool testData = false) const; + float getLocationReservationRadius(bool testData = false) const; + float getLocationReservationRadiusMin(bool testData = false) const; + float getLocationReservationRadiusMax(bool testData = false) const; + bool getForceNoCollision(bool testData = false) const; +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedPlayerObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedPlayerObjectTemplate.cpp index 0d49d170..7d020a59 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedPlayerObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedPlayerObjectTemplate.cpp @@ -12,7 +12,7 @@ #include "sharedGame/FirstSharedGame.h" #include "SharedPlayerObjectTemplate.h" - +#include "sharedDebug/DataLint.h" #include "sharedFile/Iff.h" #include "sharedMath/Vector.h" #include "sharedObject/ObjectTemplate.h" @@ -24,20 +24,20 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedPlayerObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedPlayerObjectTemplate::SharedPlayerObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedIntangibleObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT { } // SharedPlayerObjectTemplate::SharedPlayerObjectTemplate @@ -46,8 +46,8 @@ SharedPlayerObjectTemplate::SharedPlayerObjectTemplate(const std::string & filen */ SharedPlayerObjectTemplate::~SharedPlayerObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP } // SharedPlayerObjectTemplate::~SharedPlayerObjectTemplate /** @@ -104,6 +104,15 @@ Tag SharedPlayerObjectTemplate::getHighestTemplateVersion(void) const } // SharedPlayerObjectTemplate::getHighestTemplateVersion //@BEGIN TFD +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedPlayerObjectTemplate::testValues(void) const +{ + SharedIntangibleObjectTemplate::testValues(); +} // SharedPlayerObjectTemplate::testValues +#endif /** * Loads the template data from an iff file. We should already be in the form @@ -113,8 +122,8 @@ Tag SharedPlayerObjectTemplate::getHighestTemplateVersion(void) const */ void SharedPlayerObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedPlayerObjectTemplate_tag) { @@ -124,7 +133,7 @@ void SharedPlayerObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -144,8 +153,10 @@ void SharedPlayerObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 0, 0)) + if (getHighestTemplateVersion() != TAG(0,0,0,0)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -163,4 +174,4 @@ void SharedPlayerObjectTemplate::load(Iff &file) return; } // SharedPlayerObjectTemplate::load -//@END TFD \ No newline at end of file +//@END TFD diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedPlayerObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedPlayerObjectTemplate.h index 187e83b4..5b64f2f8 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedPlayerObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedPlayerObjectTemplate.h @@ -45,6 +45,11 @@ public: //@BEGIN TFD public: +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedPlayerQuestObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedPlayerQuestObjectTemplate.cpp index 9f7b24d9..26380963 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedPlayerQuestObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedPlayerQuestObjectTemplate.cpp @@ -12,7 +12,7 @@ #include "sharedGame/FirstSharedGame.h" #include "SharedPlayerQuestObjectTemplate.h" - +#include "sharedDebug/DataLint.h" #include "sharedFile/Iff.h" #include "sharedMath/Vector.h" #include "sharedObject/ObjectTemplate.h" @@ -24,20 +24,20 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedPlayerQuestObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedPlayerQuestObjectTemplate::SharedPlayerQuestObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedTangibleObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT { } // SharedPlayerQuestObjectTemplate::SharedPlayerQuestObjectTemplate @@ -46,8 +46,8 @@ SharedPlayerQuestObjectTemplate::SharedPlayerQuestObjectTemplate(const std::stri */ SharedPlayerQuestObjectTemplate::~SharedPlayerQuestObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP } // SharedPlayerQuestObjectTemplate::~SharedPlayerQuestObjectTemplate /** @@ -104,6 +104,15 @@ Tag SharedPlayerQuestObjectTemplate::getHighestTemplateVersion(void) const } // SharedPlayerQuestObjectTemplate::getHighestTemplateVersion //@BEGIN TFD +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedPlayerQuestObjectTemplate::testValues(void) const +{ + SharedTangibleObjectTemplate::testValues(); +} // SharedPlayerQuestObjectTemplate::testValues +#endif /** * Loads the template data from an iff file. We should already be in the form @@ -113,8 +122,8 @@ Tag SharedPlayerQuestObjectTemplate::getHighestTemplateVersion(void) const */ void SharedPlayerQuestObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedPlayerQuestObjectTemplate_tag) { @@ -124,7 +133,7 @@ void SharedPlayerQuestObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -144,8 +153,10 @@ void SharedPlayerQuestObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 0, 0)) + if (getHighestTemplateVersion() != TAG(0,0,0,0)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -163,4 +174,4 @@ void SharedPlayerQuestObjectTemplate::load(Iff &file) return; } // SharedPlayerQuestObjectTemplate::load -//@END TFD \ No newline at end of file +//@END TFD diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedPlayerQuestObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedPlayerQuestObjectTemplate.h index c6b45a38..e5c9260c 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedPlayerQuestObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedPlayerQuestObjectTemplate.h @@ -45,6 +45,11 @@ public: //@BEGIN TFD public: +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedResourceContainerObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedResourceContainerObjectTemplate.cpp index 70dde24a..dbb0635d 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedResourceContainerObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedResourceContainerObjectTemplate.cpp @@ -23,20 +23,20 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedResourceContainerObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedResourceContainerObjectTemplate::SharedResourceContainerObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedTangibleObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT { } // SharedResourceContainerObjectTemplate::SharedResourceContainerObjectTemplate @@ -45,8 +45,8 @@ SharedResourceContainerObjectTemplate::SharedResourceContainerObjectTemplate(con */ SharedResourceContainerObjectTemplate::~SharedResourceContainerObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP } // SharedResourceContainerObjectTemplate::~SharedResourceContainerObjectTemplate /** @@ -103,6 +103,15 @@ Tag SharedResourceContainerObjectTemplate::getHighestTemplateVersion(void) const } // SharedResourceContainerObjectTemplate::getHighestTemplateVersion //@BEGIN TFD +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedResourceContainerObjectTemplate::testValues(void) const +{ + SharedTangibleObjectTemplate::testValues(); +} // SharedResourceContainerObjectTemplate::testValues +#endif /** * Loads the template data from an iff file. We should already be in the form @@ -112,8 +121,8 @@ Tag SharedResourceContainerObjectTemplate::getHighestTemplateVersion(void) const */ void SharedResourceContainerObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedResourceContainerObjectTemplate_tag) { @@ -123,7 +132,7 @@ void SharedResourceContainerObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -143,8 +152,10 @@ void SharedResourceContainerObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 0, 0)) + if (getHighestTemplateVersion() != TAG(0,0,0,0)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -162,4 +173,4 @@ void SharedResourceContainerObjectTemplate::load(Iff &file) return; } // SharedResourceContainerObjectTemplate::load -//@END TFD \ No newline at end of file +//@END TFD diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedResourceContainerObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedResourceContainerObjectTemplate.h index 19f45dd7..86067879 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedResourceContainerObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedResourceContainerObjectTemplate.h @@ -45,6 +45,11 @@ public: //@BEGIN TFD public: +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedShipObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedShipObjectTemplate.cpp index 7a22a942..e374302c 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedShipObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedShipObjectTemplate.cpp @@ -13,6 +13,7 @@ #include "sharedGame/FirstSharedGame.h" #include "sharedGame/SharedShipObjectTemplate.h" +#include "sharedDebug/DataLint.h" #include "sharedFile/Iff.h" #include "sharedGame/AssetCustomizationManager.h" #include "sharedMath/Vector.h" @@ -29,20 +30,20 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedShipObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedShipObjectTemplate::SharedShipObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedTangibleObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT { } // SharedShipObjectTemplate::SharedShipObjectTemplate @@ -51,8 +52,8 @@ SharedShipObjectTemplate::SharedShipObjectTemplate(const std::string & filename) */ SharedShipObjectTemplate::~SharedShipObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP } // SharedShipObjectTemplate::~SharedShipObjectTemplate /** @@ -128,16 +129,16 @@ void SharedShipObjectTemplate::createCustomizationDataPropertyAsNeeded(Object &o // variables since we are a creature. The SharedTangibleObjectTemplate version of // this function sets it to true. bool const skipSharedOwnerVariables = false; - const std::string & appearanceFilename = getAppearanceFilename(); - if (!appearanceFilename.empty()) - { + const std::string & appearanceFilename = getAppearanceFilename(); + if(!appearanceFilename.empty()) + { AssetCustomizationManager::addCustomizationVariablesForAsset(TemporaryCrcString(appearanceFilename.c_str(), true), *customizationData, skipSharedOwnerVariables); } else { //Perhaps it's a POB ship, check the portalLayoutFilename const std::string & portalLayoutFilename = getPortalLayoutFilename(); - AssetCustomizationManager::addCustomizationVariablesForAsset(TemporaryCrcString(portalLayoutFilename.c_str(), true), *customizationData, skipSharedOwnerVariables); + AssetCustomizationManager::addCustomizationVariablesForAsset(TemporaryCrcString(portalLayoutFilename.c_str(), true), *customizationData, skipSharedOwnerVariables); } //-- release local reference to the CustomizationData instance @@ -146,12 +147,22 @@ void SharedShipObjectTemplate::createCustomizationDataPropertyAsNeeded(Object &o } //@BEGIN TFD -const std::string & SharedShipObjectTemplate::getCockpitFilename() const +const std::string & SharedShipObjectTemplate::getCockpitFilename(bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedShipObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getCockpitFilename(true); +#endif } if (!m_cockpitFilename.isLoaded()) @@ -169,16 +180,31 @@ const std::string & SharedShipObjectTemplate::getCockpitFilename() const } const std::string & value = m_cockpitFilename.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedShipObjectTemplate::getCockpitFilename -bool SharedShipObjectTemplate::getHasWings() const +bool SharedShipObjectTemplate::getHasWings(bool testData) const { +#ifdef _DEBUG +bool testDataValue = false; +#else +UNREF(testData); +#endif + const SharedShipObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getHasWings(true); +#endif } if (!m_hasWings.isLoaded()) @@ -196,16 +222,31 @@ bool SharedShipObjectTemplate::getHasWings() const } bool value = m_hasWings.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedShipObjectTemplate::getHasWings -bool SharedShipObjectTemplate::getPlayerControlled() const +bool SharedShipObjectTemplate::getPlayerControlled(bool testData) const { +#ifdef _DEBUG +bool testDataValue = false; +#else +UNREF(testData); +#endif + const SharedShipObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getPlayerControlled(true); +#endif } if (!m_playerControlled.isLoaded()) @@ -223,16 +264,31 @@ bool SharedShipObjectTemplate::getPlayerControlled() const } bool value = m_playerControlled.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedShipObjectTemplate::getPlayerControlled -const std::string & SharedShipObjectTemplate::getInteriorLayoutFileName() const +const std::string & SharedShipObjectTemplate::getInteriorLayoutFileName(bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedShipObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getInteriorLayoutFileName(true); +#endif } if (!m_interiorLayoutFileName.isLoaded()) @@ -250,10 +306,29 @@ const std::string & SharedShipObjectTemplate::getInteriorLayoutFileName() const } const std::string & value = m_interiorLayoutFileName.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedShipObjectTemplate::getInteriorLayoutFileName +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedShipObjectTemplate::testValues(void) const +{ + IGNORE_RETURN(getCockpitFilename(true)); + IGNORE_RETURN(getHasWings(true)); + IGNORE_RETURN(getPlayerControlled(true)); + IGNORE_RETURN(getInteriorLayoutFileName(true)); + SharedTangibleObjectTemplate::testValues(); +} // SharedShipObjectTemplate::testValues +#endif + /** * Loads the template data from an iff file. We should already be in the form * for this template. @@ -262,8 +337,8 @@ const std::string & SharedShipObjectTemplate::getInteriorLayoutFileName() const */ void SharedShipObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedShipObjectTemplate_tag) { @@ -273,7 +348,7 @@ void SharedShipObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -293,8 +368,10 @@ void SharedShipObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 0, 4)) + if (getHighestTemplateVersion() != TAG(0,0,0,4)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -324,4 +401,4 @@ void SharedShipObjectTemplate::load(Iff &file) return; } // SharedShipObjectTemplate::load -//@END TFD \ No newline at end of file +//@END TFD diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedShipObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedShipObjectTemplate.h index d5621428..abbdb08e 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedShipObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedShipObjectTemplate.h @@ -45,11 +45,16 @@ public: //@BEGIN TFD public: - const std::string & getCockpitFilename() const; - bool getHasWings() const; - bool getPlayerControlled() const; - const std::string & getInteriorLayoutFileName() const; + const std::string & getCockpitFilename(bool testData = false) const; + bool getHasWings(bool testData = false) const; + bool getPlayerControlled(bool testData = false) const; + const std::string & getInteriorLayoutFileName(bool testData = false) const; +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedStaticObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedStaticObjectTemplate.cpp index b00c7729..3de71cf2 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedStaticObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedStaticObjectTemplate.cpp @@ -23,20 +23,20 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedStaticObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedStaticObjectTemplate::SharedStaticObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT { } // SharedStaticObjectTemplate::SharedStaticObjectTemplate @@ -45,8 +45,8 @@ SharedStaticObjectTemplate::SharedStaticObjectTemplate(const std::string & filen */ SharedStaticObjectTemplate::~SharedStaticObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP } // SharedStaticObjectTemplate::~SharedStaticObjectTemplate /** @@ -103,6 +103,15 @@ Tag SharedStaticObjectTemplate::getHighestTemplateVersion(void) const } // SharedStaticObjectTemplate::getHighestTemplateVersion //@BEGIN TFD +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedStaticObjectTemplate::testValues(void) const +{ + SharedObjectTemplate::testValues(); +} // SharedStaticObjectTemplate::testValues +#endif /** * Loads the template data from an iff file. We should already be in the form @@ -112,8 +121,8 @@ Tag SharedStaticObjectTemplate::getHighestTemplateVersion(void) const */ void SharedStaticObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedStaticObjectTemplate_tag) { @@ -123,7 +132,7 @@ void SharedStaticObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -143,8 +152,10 @@ void SharedStaticObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 0, 0)) + if (getHighestTemplateVersion() != TAG(0,0,0,0)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -162,4 +173,4 @@ void SharedStaticObjectTemplate::load(Iff &file) return; } // SharedStaticObjectTemplate::load -//@END TFD \ No newline at end of file +//@END TFD diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedStaticObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedStaticObjectTemplate.h index 6f76144f..cc22dc7e 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedStaticObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedStaticObjectTemplate.h @@ -45,6 +45,11 @@ public: //@BEGIN TFD public: +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedTangibleObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedTangibleObjectTemplate.cpp index e0cae7f5..95742f60 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedTangibleObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedTangibleObjectTemplate.cpp @@ -32,33 +32,33 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedTangibleObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedTangibleObjectTemplate::SharedTangibleObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedObjectTemplate(filename) - , m_paletteColorCustomizationVariablesLoaded(false) - , m_paletteColorCustomizationVariablesAppend(false) - , m_rangedIntCustomizationVariablesLoaded(false) - , m_rangedIntCustomizationVariablesAppend(false) - , m_constStringCustomizationVariablesLoaded(false) - , m_constStringCustomizationVariablesAppend(false) - , m_socketDestinationsLoaded(false) - , m_socketDestinationsAppend(false) - , m_certificationsRequiredLoaded(false) - , m_certificationsRequiredAppend(false) - , m_customizationVariableMappingLoaded(false) - , m_customizationVariableMappingAppend(false) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT - , m_structureFootprint(0) + ,m_paletteColorCustomizationVariablesLoaded(false) + ,m_paletteColorCustomizationVariablesAppend(false) + ,m_rangedIntCustomizationVariablesLoaded(false) + ,m_rangedIntCustomizationVariablesAppend(false) + ,m_constStringCustomizationVariablesLoaded(false) + ,m_constStringCustomizationVariablesAppend(false) + ,m_socketDestinationsLoaded(false) + ,m_socketDestinationsAppend(false) + ,m_certificationsRequiredLoaded(false) + ,m_certificationsRequiredAppend(false) + ,m_customizationVariableMappingLoaded(false) + ,m_customizationVariableMappingAppend(false) + ,m_versionOk(true) +//@END TFD INIT + ,m_structureFootprint (0) { } // SharedTangibleObjectTemplate::SharedTangibleObjectTemplate @@ -67,7 +67,7 @@ SharedTangibleObjectTemplate::SharedTangibleObjectTemplate(const std::string & f */ SharedTangibleObjectTemplate::~SharedTangibleObjectTemplate() { - //@BEGIN TFD CLEANUP +//@BEGIN TFD CLEANUP { std::vector::iterator iter; for (iter = m_paletteColorCustomizationVariables.begin(); iter != m_paletteColorCustomizationVariables.end(); ++iter) @@ -122,8 +122,8 @@ SharedTangibleObjectTemplate::~SharedTangibleObjectTemplate() } m_customizationVariableMapping.clear(); } - //@END TFD CLEANUP - +//@END TFD CLEANUP + if (m_structureFootprint) { delete m_structureFootprint; @@ -189,13 +189,13 @@ Tag SharedTangibleObjectTemplate::getHighestTemplateVersion(void) const */ void SharedTangibleObjectTemplate::postLoad() { - SharedObjectTemplate::postLoad(); + SharedObjectTemplate::postLoad (); //-- load the structure footprint - if (getStructureFootprintFileName().length() != 0) + if (getStructureFootprintFileName ().length () != 0) { - m_structureFootprint = new StructureFootprint(); - m_structureFootprint->load(getStructureFootprintFileName().c_str()); + m_structureFootprint = new StructureFootprint (); + m_structureFootprint->load (getStructureFootprintFileName ().c_str ()); } } @@ -204,7 +204,7 @@ void SharedTangibleObjectTemplate::postLoad() * * @return the structure footprint */ -const StructureFootprint* SharedTangibleObjectTemplate::getStructureFootprint() const +const StructureFootprint* SharedTangibleObjectTemplate::getStructureFootprint () const { return m_structureFootprint; } @@ -236,7 +236,8 @@ const StructureFootprint* SharedTangibleObjectTemplate::getStructureFootprint() */ void SharedTangibleObjectTemplate::createCustomizationDataPropertyAsNeeded(Object &object, bool /* forceCreation */) const { - //-- Properties cannot be added while an object is in the world. Some callers may be in the world, +#if 1 + //-- Properties cannot be added while an object is in the world. Some callers may be in the world, // so temporarily remove the object from the world if necessary. bool shouldBeInWorld = object.isInWorld(); if (shouldBeInWorld) @@ -260,9 +261,95 @@ void SharedTangibleObjectTemplate::createCustomizationDataPropertyAsNeeded(Objec bool const skipSharedOwnerVariables = true; AssetCustomizationManager::addCustomizationVariablesForAsset(TemporaryCrcString(getAppearanceFilename().c_str(), true), *customizationData, skipSharedOwnerVariables); + +#ifdef _DEBUG + //-- set up mappings for any variables which need dependent mappings + int numVariableMappings = getCustomizationVariableMappingCount(); + if(numVariableMappings != 0) + { + //If the object is a wearable, then the dependent variable, which is probably shared, will not exist at the moment the dependency + //is set up. For this reason, make sure that you're really doing what you want. + DEBUG_WARNING(true, ("Generally, CustomizationVariableMapping should not be set on Wearables or other non-Creature tangibles.")); + } +#endif + //-- release local reference to the CustomizationData instance customizationData->release(); } + +#else + // @todo -TRF- remove this code as soon as asset customization manager is working properly. + const size_t paletteColorCount = getPaletteColorCustomizationVariablesCount(); + const size_t rangedIntCount = getRangedIntCustomizationVariablesCount(); + + //-- Return if caller isn't forcing customization data creation and no customization variables are declared for the ObjectTemplate. + const bool makeCustomizationData = forceCreation || (paletteColorCount > 0) || (rangedIntCount > 0); + if (!makeCustomizationData) + return; + + //-- Properties cannot be added while an object is in the world. Some callers may be in the world, + // so temporarily remove the object from the world if necessary. + bool shouldBeInWorld = object.isInWorld(); + if (shouldBeInWorld) + object.removeFromWorld(); + + //-- create the CustomizationDataProperty, add to Object property collection + CustomizationDataProperty *const cdProperty = new CustomizationDataProperty(object); + object.addProperty(*cdProperty); + + //-- Put object back in world if it was originally there. + if (shouldBeInWorld) + object.addToWorld(); + + //-- fetch the CustomizationData instance + CustomizationData *const customizationData = cdProperty->fetchCustomizationData(); + + //-- create PaletteColorCustomizationVariable variables as specified + { + SharedTangibleObjectTemplate::PaletteColorCustomizationVariable variableData; + + for (int i = 0; i < static_cast(paletteColorCount); ++i) + { + //-- get the palette variable data + getPaletteColorCustomizationVariables(variableData, i); + + //-- fetch the palette + const PaletteArgb *const palette = PaletteArgbList::fetch(TemporaryCrcString(variableData.palettePathName.c_str(), true)); + if (!palette) + { + DEBUG_WARNING(true, ("failed to retrieve color palette [%s] for [%s], skipping variable [%s].\n", variableData.palettePathName.c_str(), getName (), variableData.variableName.c_str())); + continue; + } + + //-- create the variable, add to CustomizationData + ::PaletteColorCustomizationVariable * const palColorVar = new ::PaletteColorCustomizationVariable(palette, variableData.defaultPaletteIndex); + + if (variableData.defaultPaletteIndex != palColorVar->getValue ()) + DEBUG_WARNING (true, ("Error loading PaletteColorCustomizationVariable [%s] for [%s]", variableData.variableName.c_str(), getName ())); + + customizationData->addVariableTakeOwnership(variableData.variableName, palColorVar); + + //-- release local palette reference + palette->release(); + } + } + + //-- create BasicRangedIntCustomizationVariable variables as specified + { + SharedTangibleObjectTemplate::RangedIntCustomizationVariable variableData; + + for (int i = 0; i < static_cast(rangedIntCount); ++i) + { + //-- get the palette variable data + getRangedIntCustomizationVariables(variableData, i); + + //-- create the variable, add to CustomizationData + customizationData->addVariableTakeOwnership(variableData.variableName, new ::BasicRangedIntCustomizationVariable(variableData.minValueInclusive, variableData.defaultValue, variableData.maxValueExclusive)); + } + } + //-- release local reference to the CustomizationData instance + customizationData->release(); +#endif } //@BEGIN TFD @@ -279,7 +366,7 @@ void SharedTangibleObjectTemplate::getPaletteColorCustomizationVariables(Palette if (ms_allowDefaultTemplateParams && /*!m_versionOk &&*/ base == nullptr) { DEBUG_WARNING(true, ("Returning default value for missing parameter paletteColorCustomizationVariables in template %s", DataResource::getName())); - return; + return ; } else { @@ -293,10 +380,10 @@ void SharedTangibleObjectTemplate::getPaletteColorCustomizationVariables(Palette { int baseCount = base->getPaletteColorCustomizationVariablesCount(); if (index < baseCount) - { - base->getPaletteColorCustomizationVariables(data, index); - return; - } + { + base->getPaletteColorCustomizationVariables(data, index); + return; + } index -= baseCount; } @@ -323,7 +410,7 @@ void SharedTangibleObjectTemplate::getPaletteColorCustomizationVariablesMin(Pale if (ms_allowDefaultTemplateParams && /*!m_versionOk &&*/ base == nullptr) { DEBUG_WARNING(true, ("Returning default value for missing parameter paletteColorCustomizationVariables in template %s", DataResource::getName())); - return; + return ; } else { @@ -337,10 +424,10 @@ void SharedTangibleObjectTemplate::getPaletteColorCustomizationVariablesMin(Pale { int baseCount = base->getPaletteColorCustomizationVariablesCount(); if (index < baseCount) - { - base->getPaletteColorCustomizationVariablesMin(data, index); - return; - } + { + base->getPaletteColorCustomizationVariablesMin(data, index); + return; + } index -= baseCount; } @@ -367,7 +454,7 @@ void SharedTangibleObjectTemplate::getPaletteColorCustomizationVariablesMax(Pale if (ms_allowDefaultTemplateParams && /*!m_versionOk &&*/ base == nullptr) { DEBUG_WARNING(true, ("Returning default value for missing parameter paletteColorCustomizationVariables in template %s", DataResource::getName())); - return; + return ; } else { @@ -381,10 +468,10 @@ void SharedTangibleObjectTemplate::getPaletteColorCustomizationVariablesMax(Pale { int baseCount = base->getPaletteColorCustomizationVariablesCount(); if (index < baseCount) - { - base->getPaletteColorCustomizationVariablesMax(data, index); - return; - } + { + base->getPaletteColorCustomizationVariablesMax(data, index); + return; + } index -= baseCount; } @@ -435,7 +522,7 @@ void SharedTangibleObjectTemplate::getRangedIntCustomizationVariables(RangedIntC if (ms_allowDefaultTemplateParams && /*!m_versionOk &&*/ base == nullptr) { DEBUG_WARNING(true, ("Returning default value for missing parameter rangedIntCustomizationVariables in template %s", DataResource::getName())); - return; + return ; } else { @@ -449,10 +536,10 @@ void SharedTangibleObjectTemplate::getRangedIntCustomizationVariables(RangedIntC { int baseCount = base->getRangedIntCustomizationVariablesCount(); if (index < baseCount) - { - base->getRangedIntCustomizationVariables(data, index); - return; - } + { + base->getRangedIntCustomizationVariables(data, index); + return; + } index -= baseCount; } @@ -480,7 +567,7 @@ void SharedTangibleObjectTemplate::getRangedIntCustomizationVariablesMin(RangedI if (ms_allowDefaultTemplateParams && /*!m_versionOk &&*/ base == nullptr) { DEBUG_WARNING(true, ("Returning default value for missing parameter rangedIntCustomizationVariables in template %s", DataResource::getName())); - return; + return ; } else { @@ -494,10 +581,10 @@ void SharedTangibleObjectTemplate::getRangedIntCustomizationVariablesMin(RangedI { int baseCount = base->getRangedIntCustomizationVariablesCount(); if (index < baseCount) - { - base->getRangedIntCustomizationVariablesMin(data, index); - return; - } + { + base->getRangedIntCustomizationVariablesMin(data, index); + return; + } index -= baseCount; } @@ -525,7 +612,7 @@ void SharedTangibleObjectTemplate::getRangedIntCustomizationVariablesMax(RangedI if (ms_allowDefaultTemplateParams && /*!m_versionOk &&*/ base == nullptr) { DEBUG_WARNING(true, ("Returning default value for missing parameter rangedIntCustomizationVariables in template %s", DataResource::getName())); - return; + return ; } else { @@ -539,10 +626,10 @@ void SharedTangibleObjectTemplate::getRangedIntCustomizationVariablesMax(RangedI { int baseCount = base->getRangedIntCustomizationVariablesCount(); if (index < baseCount) - { - base->getRangedIntCustomizationVariablesMax(data, index); - return; - } + { + base->getRangedIntCustomizationVariablesMax(data, index); + return; + } index -= baseCount; } @@ -594,7 +681,7 @@ void SharedTangibleObjectTemplate::getConstStringCustomizationVariables(ConstStr if (ms_allowDefaultTemplateParams && /*!m_versionOk &&*/ base == nullptr) { DEBUG_WARNING(true, ("Returning default value for missing parameter constStringCustomizationVariables in template %s", DataResource::getName())); - return; + return ; } else { @@ -608,10 +695,10 @@ void SharedTangibleObjectTemplate::getConstStringCustomizationVariables(ConstStr { int baseCount = base->getConstStringCustomizationVariablesCount(); if (index < baseCount) - { - base->getConstStringCustomizationVariables(data, index); - return; - } + { + base->getConstStringCustomizationVariables(data, index); + return; + } index -= baseCount; } @@ -637,7 +724,7 @@ void SharedTangibleObjectTemplate::getConstStringCustomizationVariablesMin(Const if (ms_allowDefaultTemplateParams && /*!m_versionOk &&*/ base == nullptr) { DEBUG_WARNING(true, ("Returning default value for missing parameter constStringCustomizationVariables in template %s", DataResource::getName())); - return; + return ; } else { @@ -651,10 +738,10 @@ void SharedTangibleObjectTemplate::getConstStringCustomizationVariablesMin(Const { int baseCount = base->getConstStringCustomizationVariablesCount(); if (index < baseCount) - { - base->getConstStringCustomizationVariablesMin(data, index); - return; - } + { + base->getConstStringCustomizationVariablesMin(data, index); + return; + } index -= baseCount; } @@ -680,7 +767,7 @@ void SharedTangibleObjectTemplate::getConstStringCustomizationVariablesMax(Const if (ms_allowDefaultTemplateParams && /*!m_versionOk &&*/ base == nullptr) { DEBUG_WARNING(true, ("Returning default value for missing parameter constStringCustomizationVariables in template %s", DataResource::getName())); - return; + return ; } else { @@ -694,10 +781,10 @@ void SharedTangibleObjectTemplate::getConstStringCustomizationVariablesMax(Const { int baseCount = base->getConstStringCustomizationVariablesCount(); if (index < baseCount) - { - base->getConstStringCustomizationVariablesMax(data, index); - return; - } + { + base->getConstStringCustomizationVariablesMax(data, index); + return; + } index -= baseCount; } @@ -792,12 +879,22 @@ size_t SharedTangibleObjectTemplate::getSocketDestinationsCount(void) const return count; } // SharedTangibleObjectTemplate::getSocketDestinationsCount -const std::string & SharedTangibleObjectTemplate::getStructureFootprintFileName() const +const std::string & SharedTangibleObjectTemplate::getStructureFootprintFileName(bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedTangibleObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getStructureFootprintFileName(true); +#endif } if (!m_structureFootprintFileName.isLoaded()) @@ -815,16 +912,31 @@ const std::string & SharedTangibleObjectTemplate::getStructureFootprintFileName( } const std::string & value = m_structureFootprintFileName.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedTangibleObjectTemplate::getStructureFootprintFileName -bool SharedTangibleObjectTemplate::getUseStructureFootprintOutline() const +bool SharedTangibleObjectTemplate::getUseStructureFootprintOutline(bool testData) const { +#ifdef _DEBUG +bool testDataValue = false; +#else +UNREF(testData); +#endif + const SharedTangibleObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getUseStructureFootprintOutline(true); +#endif } if (!m_useStructureFootprintOutline.isLoaded()) @@ -842,16 +954,31 @@ bool SharedTangibleObjectTemplate::getUseStructureFootprintOutline() const } bool value = m_useStructureFootprintOutline.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedTangibleObjectTemplate::getUseStructureFootprintOutline -bool SharedTangibleObjectTemplate::getTargetable() const +bool SharedTangibleObjectTemplate::getTargetable(bool testData) const { +#ifdef _DEBUG +bool testDataValue = false; +#else +UNREF(testData); +#endif + const SharedTangibleObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getTargetable(true); +#endif } if (!m_targetable.isLoaded()) @@ -869,6 +996,11 @@ bool SharedTangibleObjectTemplate::getTargetable() const } bool value = m_targetable.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedTangibleObjectTemplate::getTargetable @@ -945,7 +1077,7 @@ void SharedTangibleObjectTemplate::getCustomizationVariableMapping(Customization if (ms_allowDefaultTemplateParams && /*!m_versionOk &&*/ base == nullptr) { DEBUG_WARNING(true, ("Returning default value for missing parameter customizationVariableMapping in template %s", DataResource::getName())); - return; + return ; } else { @@ -959,10 +1091,10 @@ void SharedTangibleObjectTemplate::getCustomizationVariableMapping(Customization { int baseCount = base->getCustomizationVariableMappingCount(); if (index < baseCount) - { - base->getCustomizationVariableMapping(data, index); - return; - } + { + base->getCustomizationVariableMapping(data, index); + return; + } index -= baseCount; } @@ -988,7 +1120,7 @@ void SharedTangibleObjectTemplate::getCustomizationVariableMappingMin(Customizat if (ms_allowDefaultTemplateParams && /*!m_versionOk &&*/ base == nullptr) { DEBUG_WARNING(true, ("Returning default value for missing parameter customizationVariableMapping in template %s", DataResource::getName())); - return; + return ; } else { @@ -1002,10 +1134,10 @@ void SharedTangibleObjectTemplate::getCustomizationVariableMappingMin(Customizat { int baseCount = base->getCustomizationVariableMappingCount(); if (index < baseCount) - { - base->getCustomizationVariableMappingMin(data, index); - return; - } + { + base->getCustomizationVariableMappingMin(data, index); + return; + } index -= baseCount; } @@ -1031,7 +1163,7 @@ void SharedTangibleObjectTemplate::getCustomizationVariableMappingMax(Customizat if (ms_allowDefaultTemplateParams && /*!m_versionOk &&*/ base == nullptr) { DEBUG_WARNING(true, ("Returning default value for missing parameter customizationVariableMapping in template %s", DataResource::getName())); - return; + return ; } else { @@ -1045,10 +1177,10 @@ void SharedTangibleObjectTemplate::getCustomizationVariableMappingMax(Customizat { int baseCount = base->getCustomizationVariableMappingCount(); if (index < baseCount) - { - base->getCustomizationVariableMappingMax(data, index); - return; - } + { + base->getCustomizationVariableMappingMax(data, index); + return; + } index -= baseCount; } @@ -1085,12 +1217,22 @@ size_t SharedTangibleObjectTemplate::getCustomizationVariableMappingCount(void) return count; } // SharedTangibleObjectTemplate::getCustomizationVariableMappingCount -SharedTangibleObjectTemplate::ClientVisabilityFlags SharedTangibleObjectTemplate::getClientVisabilityFlag() const +SharedTangibleObjectTemplate::ClientVisabilityFlags SharedTangibleObjectTemplate::getClientVisabilityFlag(bool testData) const { +#ifdef _DEBUG +SharedTangibleObjectTemplate::ClientVisabilityFlags testDataValue = static_cast(0); +#else +UNREF(testData); +#endif + const SharedTangibleObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getClientVisabilityFlag(true); +#endif } if (!m_clientVisabilityFlag.isLoaded()) @@ -1108,10 +1250,29 @@ SharedTangibleObjectTemplate::ClientVisabilityFlags SharedTangibleObjectTemplate } ClientVisabilityFlags value = static_cast(m_clientVisabilityFlag.getValue()); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedTangibleObjectTemplate::getClientVisabilityFlag +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedTangibleObjectTemplate::testValues(void) const +{ + IGNORE_RETURN(getStructureFootprintFileName(true)); + IGNORE_RETURN(getUseStructureFootprintOutline(true)); + IGNORE_RETURN(getTargetable(true)); + IGNORE_RETURN(getClientVisabilityFlag(true)); + SharedObjectTemplate::testValues(); +} // SharedTangibleObjectTemplate::testValues +#endif + /** * Loads the template data from an iff file. We should already be in the form * for this template. @@ -1120,8 +1281,8 @@ SharedTangibleObjectTemplate::ClientVisabilityFlags SharedTangibleObjectTemplate */ void SharedTangibleObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedTangibleObjectTemplate_tag) { @@ -1131,7 +1292,7 @@ void SharedTangibleObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -1151,8 +1312,10 @@ void SharedTangibleObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 1, 0)) + if (getHighestTemplateVersion() != TAG(0,0,1,0)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -1296,6 +1459,7 @@ void SharedTangibleObjectTemplate::load(Iff &file) return; } // SharedTangibleObjectTemplate::load + //============================================================================= // class SharedTangibleObjectTemplate::_ConstStringCustomizationVariable @@ -1342,12 +1506,22 @@ Tag SharedTangibleObjectTemplate::_ConstStringCustomizationVariable::getId(void) return _ConstStringCustomizationVariable_tag; } // SharedTangibleObjectTemplate::_ConstStringCustomizationVariable::getId -const std::string & SharedTangibleObjectTemplate::_ConstStringCustomizationVariable::getVariableName(bool versionOk) const +const std::string & SharedTangibleObjectTemplate::_ConstStringCustomizationVariable::getVariableName(bool versionOk, bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedTangibleObjectTemplate::_ConstStringCustomizationVariable * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getVariableName(true); +#endif } if (!m_variableName.isLoaded()) @@ -1365,16 +1539,31 @@ const std::string & SharedTangibleObjectTemplate::_ConstStringCustomizationVaria } const std::string & value = m_variableName.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedTangibleObjectTemplate::_ConstStringCustomizationVariable::getVariableName -const std::string & SharedTangibleObjectTemplate::_ConstStringCustomizationVariable::getConstValue(bool versionOk) const +const std::string & SharedTangibleObjectTemplate::_ConstStringCustomizationVariable::getConstValue(bool versionOk, bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedTangibleObjectTemplate::_ConstStringCustomizationVariable * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getConstValue(true); +#endif } if (!m_constValue.isLoaded()) @@ -1392,10 +1581,26 @@ const std::string & SharedTangibleObjectTemplate::_ConstStringCustomizationVaria } const std::string & value = m_constValue.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedTangibleObjectTemplate::_ConstStringCustomizationVariable::getConstValue +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedTangibleObjectTemplate::_ConstStringCustomizationVariable::testValues(void) const +{ + IGNORE_RETURN(getVariableName(true)); + IGNORE_RETURN(getConstValue(true)); +} // SharedTangibleObjectTemplate::_ConstStringCustomizationVariable::testValues +#endif + /** * Loads the template data from an iff file. We should already be in the form * for this template. @@ -1404,8 +1609,8 @@ const std::string & SharedTangibleObjectTemplate::_ConstStringCustomizationVaria */ void SharedTangibleObjectTemplate::_ConstStringCustomizationVariable::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; file.enterForm(); @@ -1427,6 +1632,7 @@ void SharedTangibleObjectTemplate::_ConstStringCustomizationVariable::load(Iff & UNREF(file); } // SharedTangibleObjectTemplate::_ConstStringCustomizationVariable::load + //============================================================================= // class SharedTangibleObjectTemplate::_CustomizationVariableMapping @@ -1473,12 +1679,22 @@ Tag SharedTangibleObjectTemplate::_CustomizationVariableMapping::getId(void) con return _CustomizationVariableMapping_tag; } // SharedTangibleObjectTemplate::_CustomizationVariableMapping::getId -const std::string & SharedTangibleObjectTemplate::_CustomizationVariableMapping::getSourceVariable(bool versionOk) const +const std::string & SharedTangibleObjectTemplate::_CustomizationVariableMapping::getSourceVariable(bool versionOk, bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedTangibleObjectTemplate::_CustomizationVariableMapping * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getSourceVariable(true); +#endif } if (!m_sourceVariable.isLoaded()) @@ -1496,16 +1712,31 @@ const std::string & SharedTangibleObjectTemplate::_CustomizationVariableMapping: } const std::string & value = m_sourceVariable.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedTangibleObjectTemplate::_CustomizationVariableMapping::getSourceVariable -const std::string & SharedTangibleObjectTemplate::_CustomizationVariableMapping::getDependentVariable(bool versionOk) const +const std::string & SharedTangibleObjectTemplate::_CustomizationVariableMapping::getDependentVariable(bool versionOk, bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedTangibleObjectTemplate::_CustomizationVariableMapping * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getDependentVariable(true); +#endif } if (!m_dependentVariable.isLoaded()) @@ -1523,10 +1754,26 @@ const std::string & SharedTangibleObjectTemplate::_CustomizationVariableMapping: } const std::string & value = m_dependentVariable.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedTangibleObjectTemplate::_CustomizationVariableMapping::getDependentVariable +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedTangibleObjectTemplate::_CustomizationVariableMapping::testValues(void) const +{ + IGNORE_RETURN(getSourceVariable(true)); + IGNORE_RETURN(getDependentVariable(true)); +} // SharedTangibleObjectTemplate::_CustomizationVariableMapping::testValues +#endif + /** * Loads the template data from an iff file. We should already be in the form * for this template. @@ -1535,8 +1782,8 @@ const std::string & SharedTangibleObjectTemplate::_CustomizationVariableMapping: */ void SharedTangibleObjectTemplate::_CustomizationVariableMapping::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; file.enterForm(); @@ -1558,6 +1805,7 @@ void SharedTangibleObjectTemplate::_CustomizationVariableMapping::load(Iff &file UNREF(file); } // SharedTangibleObjectTemplate::_CustomizationVariableMapping::load + //============================================================================= // class SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable @@ -1604,12 +1852,22 @@ Tag SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::getId(void return _PaletteColorCustomizationVariable_tag; } // SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::getId -const std::string & SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::getVariableName(bool versionOk) const +const std::string & SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::getVariableName(bool versionOk, bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getVariableName(true); +#endif } if (!m_variableName.isLoaded()) @@ -1627,16 +1885,31 @@ const std::string & SharedTangibleObjectTemplate::_PaletteColorCustomizationVari } const std::string & value = m_variableName.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::getVariableName -const std::string & SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::getPalettePathName(bool versionOk) const +const std::string & SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::getPalettePathName(bool versionOk, bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getPalettePathName(true); +#endif } if (!m_palettePathName.isLoaded()) @@ -1654,16 +1927,31 @@ const std::string & SharedTangibleObjectTemplate::_PaletteColorCustomizationVari } const std::string & value = m_palettePathName.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::getPalettePathName -int SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::getDefaultPaletteIndex(bool versionOk) const +int SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::getDefaultPaletteIndex(bool versionOk, bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getDefaultPaletteIndex(true); +#endif } if (!m_defaultPaletteIndex.isLoaded()) @@ -1703,16 +1991,31 @@ int SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::getDefault else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::getDefaultPaletteIndex -int SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::getDefaultPaletteIndexMin(bool versionOk) const +int SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::getDefaultPaletteIndexMin(bool versionOk, bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getDefaultPaletteIndexMin(true); +#endif } if (!m_defaultPaletteIndex.isLoaded()) @@ -1752,16 +2055,31 @@ int SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::getDefault else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::getDefaultPaletteIndexMin -int SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::getDefaultPaletteIndexMax(bool versionOk) const +int SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::getDefaultPaletteIndexMax(bool versionOk, bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getDefaultPaletteIndexMax(true); +#endif } if (!m_defaultPaletteIndex.isLoaded()) @@ -1801,10 +2119,28 @@ int SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::getDefault else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::getDefaultPaletteIndexMax +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::testValues(void) const +{ + IGNORE_RETURN(getVariableName(true)); + IGNORE_RETURN(getPalettePathName(true)); + IGNORE_RETURN(getDefaultPaletteIndexMin(true)); + IGNORE_RETURN(getDefaultPaletteIndexMax(true)); +} // SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::testValues +#endif + /** * Loads the template data from an iff file. We should already be in the form * for this template. @@ -1813,8 +2149,8 @@ int SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::getDefault */ void SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; file.enterForm(); @@ -1838,6 +2174,7 @@ void SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::load(Iff UNREF(file); } // SharedTangibleObjectTemplate::_PaletteColorCustomizationVariable::load + //============================================================================= // class SharedTangibleObjectTemplate::_RangedIntCustomizationVariable @@ -1884,12 +2221,22 @@ Tag SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getId(void) c return _RangedIntCustomizationVariable_tag; } // SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getId -const std::string & SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getVariableName(bool versionOk) const +const std::string & SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getVariableName(bool versionOk, bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedTangibleObjectTemplate::_RangedIntCustomizationVariable * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getVariableName(true); +#endif } if (!m_variableName.isLoaded()) @@ -1907,16 +2254,31 @@ const std::string & SharedTangibleObjectTemplate::_RangedIntCustomizationVariabl } const std::string & value = m_variableName.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getVariableName -int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMinValueInclusive(bool versionOk) const +int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMinValueInclusive(bool versionOk, bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedTangibleObjectTemplate::_RangedIntCustomizationVariable * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getMinValueInclusive(true); +#endif } if (!m_minValueInclusive.isLoaded()) @@ -1956,16 +2318,31 @@ int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMinValueIn else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMinValueInclusive -int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMinValueInclusiveMin(bool versionOk) const +int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMinValueInclusiveMin(bool versionOk, bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedTangibleObjectTemplate::_RangedIntCustomizationVariable * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getMinValueInclusiveMin(true); +#endif } if (!m_minValueInclusive.isLoaded()) @@ -2005,16 +2382,31 @@ int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMinValueIn else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMinValueInclusiveMin -int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMinValueInclusiveMax(bool versionOk) const +int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMinValueInclusiveMax(bool versionOk, bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedTangibleObjectTemplate::_RangedIntCustomizationVariable * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getMinValueInclusiveMax(true); +#endif } if (!m_minValueInclusive.isLoaded()) @@ -2054,16 +2446,31 @@ int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMinValueIn else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMinValueInclusiveMax -int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getDefaultValue(bool versionOk) const +int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getDefaultValue(bool versionOk, bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedTangibleObjectTemplate::_RangedIntCustomizationVariable * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getDefaultValue(true); +#endif } if (!m_defaultValue.isLoaded()) @@ -2103,16 +2510,31 @@ int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getDefaultVal else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getDefaultValue -int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getDefaultValueMin(bool versionOk) const +int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getDefaultValueMin(bool versionOk, bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedTangibleObjectTemplate::_RangedIntCustomizationVariable * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getDefaultValueMin(true); +#endif } if (!m_defaultValue.isLoaded()) @@ -2152,16 +2574,31 @@ int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getDefaultVal else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getDefaultValueMin -int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getDefaultValueMax(bool versionOk) const +int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getDefaultValueMax(bool versionOk, bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedTangibleObjectTemplate::_RangedIntCustomizationVariable * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getDefaultValueMax(true); +#endif } if (!m_defaultValue.isLoaded()) @@ -2201,16 +2638,31 @@ int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getDefaultVal else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getDefaultValueMax -int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMaxValueExclusive(bool versionOk) const +int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMaxValueExclusive(bool versionOk, bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedTangibleObjectTemplate::_RangedIntCustomizationVariable * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getMaxValueExclusive(true); +#endif } if (!m_maxValueExclusive.isLoaded()) @@ -2250,16 +2702,31 @@ int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMaxValueEx else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMaxValueExclusive -int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMaxValueExclusiveMin(bool versionOk) const +int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMaxValueExclusiveMin(bool versionOk, bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedTangibleObjectTemplate::_RangedIntCustomizationVariable * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getMaxValueExclusiveMin(true); +#endif } if (!m_maxValueExclusive.isLoaded()) @@ -2299,16 +2766,31 @@ int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMaxValueEx else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMaxValueExclusiveMin -int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMaxValueExclusiveMax(bool versionOk) const +int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMaxValueExclusiveMax(bool versionOk, bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedTangibleObjectTemplate::_RangedIntCustomizationVariable * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getMaxValueExclusiveMax(true); +#endif } if (!m_maxValueExclusive.isLoaded()) @@ -2348,10 +2830,31 @@ int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMaxValueEx else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMaxValueExclusiveMax +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::testValues(void) const +{ + IGNORE_RETURN(getVariableName(true)); + IGNORE_RETURN(getMinValueInclusiveMin(true)); + IGNORE_RETURN(getMinValueInclusiveMax(true)); + IGNORE_RETURN(getDefaultValueMin(true)); + IGNORE_RETURN(getDefaultValueMax(true)); + IGNORE_RETURN(getMaxValueExclusiveMin(true)); + IGNORE_RETURN(getMaxValueExclusiveMax(true)); +} // SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::testValues +#endif + /** * Loads the template data from an iff file. We should already be in the form * for this template. @@ -2360,8 +2863,8 @@ int SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::getMaxValueEx */ void SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; file.enterForm(); @@ -2387,4 +2890,4 @@ void SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::load(Iff &fi UNREF(file); } // SharedTangibleObjectTemplate::_RangedIntCustomizationVariable::load -//@END TFD \ No newline at end of file +//@END TFD diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedTangibleObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedTangibleObjectTemplate.h index a90413ce..7cd54f53 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedTangibleObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedTangibleObjectTemplate.h @@ -97,17 +97,22 @@ protected: virtual Tag getId(void) const; public: - const std::string & getVariableName(bool versionOk) const; - int getMinValueInclusive(bool versionOk) const; - int getMinValueInclusiveMin(bool versionOk) const; - int getMinValueInclusiveMax(bool versionOk) const; - int getDefaultValue(bool versionOk) const; - int getDefaultValueMin(bool versionOk) const; - int getDefaultValueMax(bool versionOk) const; - int getMaxValueExclusive(bool versionOk) const; - int getMaxValueExclusiveMin(bool versionOk) const; - int getMaxValueExclusiveMax(bool versionOk) const; + const std::string & getVariableName(bool versionOk, bool testData = false) const; + int getMinValueInclusive(bool versionOk, bool testData = false) const; + int getMinValueInclusiveMin(bool versionOk, bool testData = false) const; + int getMinValueInclusiveMax(bool versionOk, bool testData = false) const; + int getDefaultValue(bool versionOk, bool testData = false) const; + int getDefaultValueMin(bool versionOk, bool testData = false) const; + int getDefaultValueMax(bool versionOk, bool testData = false) const; + int getMaxValueExclusive(bool versionOk, bool testData = false) const; + int getMaxValueExclusiveMin(bool versionOk, bool testData = false) const; + int getMaxValueExclusiveMax(bool versionOk, bool testData = false) const; +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); @@ -142,12 +147,17 @@ private: virtual Tag getId(void) const; public: - const std::string & getVariableName(bool versionOk) const; - const std::string & getPalettePathName(bool versionOk) const; - int getDefaultPaletteIndex(bool versionOk) const; - int getDefaultPaletteIndexMin(bool versionOk) const; - int getDefaultPaletteIndexMax(bool versionOk) const; + const std::string & getVariableName(bool versionOk, bool testData = false) const; + const std::string & getPalettePathName(bool versionOk, bool testData = false) const; + int getDefaultPaletteIndex(bool versionOk, bool testData = false) const; + int getDefaultPaletteIndexMin(bool versionOk, bool testData = false) const; + int getDefaultPaletteIndexMax(bool versionOk, bool testData = false) const; +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); @@ -181,9 +191,14 @@ private: virtual Tag getId(void) const; public: - const std::string & getVariableName(bool versionOk) const; - const std::string & getConstValue(bool versionOk) const; + const std::string & getVariableName(bool versionOk, bool testData = false) const; + const std::string & getConstValue(bool versionOk, bool testData = false) const; +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); @@ -216,9 +231,14 @@ private: virtual Tag getId(void) const; public: - const std::string & getSourceVariable(bool versionOk) const; - const std::string & getDependentVariable(bool versionOk) const; + const std::string & getSourceVariable(bool versionOk, bool testData = false) const; + const std::string & getDependentVariable(bool versionOk, bool testData = false) const; +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); @@ -250,17 +270,22 @@ public: size_t getConstStringCustomizationVariablesCount(void) const; GameObjectType getSocketDestinations(int index) const; size_t getSocketDestinationsCount(void) const; - const std::string & getStructureFootprintFileName() const; - bool getUseStructureFootprintOutline() const; - bool getTargetable() const; + const std::string & getStructureFootprintFileName(bool testData = false) const; + bool getUseStructureFootprintOutline(bool testData = false) const; + bool getTargetable(bool testData = false) const; const std::string & getCertificationsRequired(int index) const; size_t getCertificationsRequiredCount(void) const; void getCustomizationVariableMapping(CustomizationVariableMapping &data, int index) const; void getCustomizationVariableMappingMin(CustomizationVariableMapping &data, int index) const; void getCustomizationVariableMappingMax(CustomizationVariableMapping &data, int index) const; size_t getCustomizationVariableMappingCount(void) const; - ClientVisabilityFlags getClientVisabilityFlag() const; + ClientVisabilityFlags getClientVisabilityFlag(bool testData = false) const; +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedTerrainSurfaceObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedTerrainSurfaceObjectTemplate.cpp index b2b26568..b518a9f7 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedTerrainSurfaceObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedTerrainSurfaceObjectTemplate.cpp @@ -12,7 +12,7 @@ #include "sharedGame/FirstSharedGame.h" #include "SharedTerrainSurfaceObjectTemplate.h" - +#include "sharedDebug/DataLint.h" #include "sharedFile/Iff.h" #include "sharedMath/Vector.h" #include "sharedObject/ObjectTemplateList.h" @@ -23,20 +23,20 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedTerrainSurfaceObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedTerrainSurfaceObjectTemplate::SharedTerrainSurfaceObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : ObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT { } // SharedTerrainSurfaceObjectTemplate::SharedTerrainSurfaceObjectTemplate @@ -45,8 +45,8 @@ SharedTerrainSurfaceObjectTemplate::SharedTerrainSurfaceObjectTemplate(const std */ SharedTerrainSurfaceObjectTemplate::~SharedTerrainSurfaceObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP } // SharedTerrainSurfaceObjectTemplate::~SharedTerrainSurfaceObjectTemplate /** @@ -103,12 +103,22 @@ Tag SharedTerrainSurfaceObjectTemplate::getHighestTemplateVersion(void) const } // SharedTerrainSurfaceObjectTemplate::getHighestTemplateVersion //@BEGIN TFD -float SharedTerrainSurfaceObjectTemplate::getCover() const +float SharedTerrainSurfaceObjectTemplate::getCover(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedTerrainSurfaceObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getCover(true); +#endif } if (!m_cover.isLoaded()) @@ -148,16 +158,33 @@ float SharedTerrainSurfaceObjectTemplate::getCover() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + if (testDataValue == value) + DEBUG_WARNING(true, ("Template %s, parameter cover is returning same value as base template.", DataResource::getName())); + } +#endif return value; } // SharedTerrainSurfaceObjectTemplate::getCover -float SharedTerrainSurfaceObjectTemplate::getCoverMin() const +float SharedTerrainSurfaceObjectTemplate::getCoverMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedTerrainSurfaceObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getCoverMin(true); +#endif } if (!m_cover.isLoaded()) @@ -197,16 +224,33 @@ float SharedTerrainSurfaceObjectTemplate::getCoverMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + if (testDataValue == value) + DEBUG_WARNING(true, ("Template %s, parameter cover is returning same value as base template.", DataResource::getName())); + } +#endif return value; } // SharedTerrainSurfaceObjectTemplate::getCoverMin -float SharedTerrainSurfaceObjectTemplate::getCoverMax() const +float SharedTerrainSurfaceObjectTemplate::getCoverMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedTerrainSurfaceObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getCoverMax(true); +#endif } if (!m_cover.isLoaded()) @@ -246,16 +290,33 @@ float SharedTerrainSurfaceObjectTemplate::getCoverMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + if (testDataValue == value) + DEBUG_WARNING(true, ("Template %s, parameter cover is returning same value as base template.", DataResource::getName())); + } +#endif return value; } // SharedTerrainSurfaceObjectTemplate::getCoverMax -const std::string & SharedTerrainSurfaceObjectTemplate::getSurfaceType() const +const std::string & SharedTerrainSurfaceObjectTemplate::getSurfaceType(bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedTerrainSurfaceObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getSurfaceType(true); +#endif } if (!m_surfaceType.isLoaded()) @@ -273,10 +334,29 @@ const std::string & SharedTerrainSurfaceObjectTemplate::getSurfaceType() const } const std::string & value = m_surfaceType.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + if (testDataValue == value) + DEBUG_WARNING(true, ("Template %s, parameter surfaceType is returning same value as base template.", DataResource::getName())); + } +#endif return value; } // SharedTerrainSurfaceObjectTemplate::getSurfaceType +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedTerrainSurfaceObjectTemplate::testValues(void) const +{ + IGNORE_RETURN(getCoverMin(true)); + IGNORE_RETURN(getCoverMax(true)); + IGNORE_RETURN(getSurfaceType(true)); +} // SharedTerrainSurfaceObjectTemplate::testValues +#endif + /** * Loads the template data from an iff file. We should already be in the form * for this template. @@ -285,8 +365,8 @@ const std::string & SharedTerrainSurfaceObjectTemplate::getSurfaceType() const */ void SharedTerrainSurfaceObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedTerrainSurfaceObjectTemplate_tag) { @@ -295,7 +375,7 @@ void SharedTerrainSurfaceObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -315,8 +395,10 @@ void SharedTerrainSurfaceObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 0, 0)) + if (getHighestTemplateVersion() != TAG(0,0,0,0)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -340,4 +422,4 @@ void SharedTerrainSurfaceObjectTemplate::load(Iff &file) return; } // SharedTerrainSurfaceObjectTemplate::load -//@END TFD \ No newline at end of file +//@END TFD diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedTerrainSurfaceObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedTerrainSurfaceObjectTemplate.h index 4d2feaf9..bf5265e7 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedTerrainSurfaceObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedTerrainSurfaceObjectTemplate.h @@ -44,11 +44,16 @@ public: //@BEGIN TFD public: - float getCover() const; - float getCoverMin() const; - float getCoverMax() const; - const std::string & getSurfaceType() const; + float getCover(bool testData = false) const; + float getCoverMin(bool testData = false) const; + float getCoverMax(bool testData = false) const; + const std::string & getSurfaceType(bool testData = false) const; +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedUniverseObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedUniverseObjectTemplate.cpp index e1ced8e6..c6e9b692 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedUniverseObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedUniverseObjectTemplate.cpp @@ -12,7 +12,7 @@ #include "sharedGame/FirstSharedGame.h" #include "SharedUniverseObjectTemplate.h" - +#include "sharedDebug/DataLint.h" #include "sharedFile/Iff.h" #include "sharedMath/Vector.h" #include "sharedObject/ObjectTemplate.h" @@ -24,20 +24,20 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedUniverseObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedUniverseObjectTemplate::SharedUniverseObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT { } // SharedUniverseObjectTemplate::SharedUniverseObjectTemplate @@ -46,8 +46,8 @@ SharedUniverseObjectTemplate::SharedUniverseObjectTemplate(const std::string & f */ SharedUniverseObjectTemplate::~SharedUniverseObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP } // SharedUniverseObjectTemplate::~SharedUniverseObjectTemplate /** @@ -104,6 +104,15 @@ Tag SharedUniverseObjectTemplate::getHighestTemplateVersion(void) const } // SharedUniverseObjectTemplate::getHighestTemplateVersion //@BEGIN TFD +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedUniverseObjectTemplate::testValues(void) const +{ + SharedObjectTemplate::testValues(); +} // SharedUniverseObjectTemplate::testValues +#endif /** * Loads the template data from an iff file. We should already be in the form @@ -113,8 +122,8 @@ Tag SharedUniverseObjectTemplate::getHighestTemplateVersion(void) const */ void SharedUniverseObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedUniverseObjectTemplate_tag) { @@ -124,7 +133,7 @@ void SharedUniverseObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -144,8 +153,10 @@ void SharedUniverseObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 0, 0)) + if (getHighestTemplateVersion() != TAG(0,0,0,0)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -163,4 +174,4 @@ void SharedUniverseObjectTemplate::load(Iff &file) return; } // SharedUniverseObjectTemplate::load -//@END TFD \ No newline at end of file +//@END TFD diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedUniverseObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedUniverseObjectTemplate.h index 369199b4..1968e4eb 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedUniverseObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedUniverseObjectTemplate.h @@ -45,6 +45,11 @@ public: //@BEGIN TFD public: +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedVehicleObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedVehicleObjectTemplate.cpp index 514e9511..7467cf59 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedVehicleObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedVehicleObjectTemplate.cpp @@ -23,20 +23,20 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedVehicleObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedVehicleObjectTemplate::SharedVehicleObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedTangibleObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT { } // SharedVehicleObjectTemplate::SharedVehicleObjectTemplate @@ -45,8 +45,8 @@ SharedVehicleObjectTemplate::SharedVehicleObjectTemplate(const std::string & fil */ SharedVehicleObjectTemplate::~SharedVehicleObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP } // SharedVehicleObjectTemplate::~SharedVehicleObjectTemplate /** @@ -250,12 +250,22 @@ float SharedVehicleObjectTemplate::getSpeedMax(MovementTypes index) const return value; } // SharedVehicleObjectTemplate::getSpeedMax -float SharedVehicleObjectTemplate::getSlopeAversion() const +float SharedVehicleObjectTemplate::getSlopeAversion(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedVehicleObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getSlopeAversion(true); +#endif } if (!m_slopeAversion.isLoaded()) @@ -295,16 +305,31 @@ float SharedVehicleObjectTemplate::getSlopeAversion() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedVehicleObjectTemplate::getSlopeAversion -float SharedVehicleObjectTemplate::getSlopeAversionMin() const +float SharedVehicleObjectTemplate::getSlopeAversionMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedVehicleObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getSlopeAversionMin(true); +#endif } if (!m_slopeAversion.isLoaded()) @@ -344,16 +369,31 @@ float SharedVehicleObjectTemplate::getSlopeAversionMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedVehicleObjectTemplate::getSlopeAversionMin -float SharedVehicleObjectTemplate::getSlopeAversionMax() const +float SharedVehicleObjectTemplate::getSlopeAversionMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedVehicleObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getSlopeAversionMax(true); +#endif } if (!m_slopeAversion.isLoaded()) @@ -393,16 +433,31 @@ float SharedVehicleObjectTemplate::getSlopeAversionMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedVehicleObjectTemplate::getSlopeAversionMax -float SharedVehicleObjectTemplate::getHoverValue() const +float SharedVehicleObjectTemplate::getHoverValue(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedVehicleObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getHoverValue(true); +#endif } if (!m_hoverValue.isLoaded()) @@ -442,16 +497,31 @@ float SharedVehicleObjectTemplate::getHoverValue() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedVehicleObjectTemplate::getHoverValue -float SharedVehicleObjectTemplate::getHoverValueMin() const +float SharedVehicleObjectTemplate::getHoverValueMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedVehicleObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getHoverValueMin(true); +#endif } if (!m_hoverValue.isLoaded()) @@ -491,16 +561,31 @@ float SharedVehicleObjectTemplate::getHoverValueMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedVehicleObjectTemplate::getHoverValueMin -float SharedVehicleObjectTemplate::getHoverValueMax() const +float SharedVehicleObjectTemplate::getHoverValueMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedVehicleObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getHoverValueMax(true); +#endif } if (!m_hoverValue.isLoaded()) @@ -540,16 +625,31 @@ float SharedVehicleObjectTemplate::getHoverValueMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedVehicleObjectTemplate::getHoverValueMax -float SharedVehicleObjectTemplate::getTurnRate() const +float SharedVehicleObjectTemplate::getTurnRate(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedVehicleObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getTurnRate(true); +#endif } if (!m_turnRate.isLoaded()) @@ -589,16 +689,31 @@ float SharedVehicleObjectTemplate::getTurnRate() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedVehicleObjectTemplate::getTurnRate -float SharedVehicleObjectTemplate::getTurnRateMin() const +float SharedVehicleObjectTemplate::getTurnRateMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedVehicleObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getTurnRateMin(true); +#endif } if (!m_turnRate.isLoaded()) @@ -638,16 +753,31 @@ float SharedVehicleObjectTemplate::getTurnRateMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedVehicleObjectTemplate::getTurnRateMin -float SharedVehicleObjectTemplate::getTurnRateMax() const +float SharedVehicleObjectTemplate::getTurnRateMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedVehicleObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getTurnRateMax(true); +#endif } if (!m_turnRate.isLoaded()) @@ -687,16 +817,31 @@ float SharedVehicleObjectTemplate::getTurnRateMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedVehicleObjectTemplate::getTurnRateMax -float SharedVehicleObjectTemplate::getMaxVelocity() const +float SharedVehicleObjectTemplate::getMaxVelocity(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedVehicleObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getMaxVelocity(true); +#endif } if (!m_maxVelocity.isLoaded()) @@ -736,16 +881,31 @@ float SharedVehicleObjectTemplate::getMaxVelocity() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedVehicleObjectTemplate::getMaxVelocity -float SharedVehicleObjectTemplate::getMaxVelocityMin() const +float SharedVehicleObjectTemplate::getMaxVelocityMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedVehicleObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getMaxVelocityMin(true); +#endif } if (!m_maxVelocity.isLoaded()) @@ -785,16 +945,31 @@ float SharedVehicleObjectTemplate::getMaxVelocityMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedVehicleObjectTemplate::getMaxVelocityMin -float SharedVehicleObjectTemplate::getMaxVelocityMax() const +float SharedVehicleObjectTemplate::getMaxVelocityMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedVehicleObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getMaxVelocityMax(true); +#endif } if (!m_maxVelocity.isLoaded()) @@ -834,16 +1009,31 @@ float SharedVehicleObjectTemplate::getMaxVelocityMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedVehicleObjectTemplate::getMaxVelocityMax -float SharedVehicleObjectTemplate::getAcceleration() const +float SharedVehicleObjectTemplate::getAcceleration(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedVehicleObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getAcceleration(true); +#endif } if (!m_acceleration.isLoaded()) @@ -883,16 +1073,31 @@ float SharedVehicleObjectTemplate::getAcceleration() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedVehicleObjectTemplate::getAcceleration -float SharedVehicleObjectTemplate::getAccelerationMin() const +float SharedVehicleObjectTemplate::getAccelerationMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedVehicleObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getAccelerationMin(true); +#endif } if (!m_acceleration.isLoaded()) @@ -932,16 +1137,31 @@ float SharedVehicleObjectTemplate::getAccelerationMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedVehicleObjectTemplate::getAccelerationMin -float SharedVehicleObjectTemplate::getAccelerationMax() const +float SharedVehicleObjectTemplate::getAccelerationMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedVehicleObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getAccelerationMax(true); +#endif } if (!m_acceleration.isLoaded()) @@ -981,16 +1201,31 @@ float SharedVehicleObjectTemplate::getAccelerationMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedVehicleObjectTemplate::getAccelerationMax -float SharedVehicleObjectTemplate::getBraking() const +float SharedVehicleObjectTemplate::getBraking(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedVehicleObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getBraking(true); +#endif } if (!m_braking.isLoaded()) @@ -1030,16 +1265,31 @@ float SharedVehicleObjectTemplate::getBraking() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedVehicleObjectTemplate::getBraking -float SharedVehicleObjectTemplate::getBrakingMin() const +float SharedVehicleObjectTemplate::getBrakingMin(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedVehicleObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getBrakingMin(true); +#endif } if (!m_braking.isLoaded()) @@ -1079,16 +1329,31 @@ float SharedVehicleObjectTemplate::getBrakingMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedVehicleObjectTemplate::getBrakingMin -float SharedVehicleObjectTemplate::getBrakingMax() const +float SharedVehicleObjectTemplate::getBrakingMax(bool testData) const { +#ifdef _DEBUG +float testDataValue = 0.0f; +#else +UNREF(testData); +#endif + const SharedVehicleObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getBrakingMax(true); +#endif } if (!m_braking.isLoaded()) @@ -1128,10 +1393,37 @@ float SharedVehicleObjectTemplate::getBrakingMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedVehicleObjectTemplate::getBrakingMax +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedVehicleObjectTemplate::testValues(void) const +{ + IGNORE_RETURN(getSlopeAversionMin(true)); + IGNORE_RETURN(getSlopeAversionMax(true)); + IGNORE_RETURN(getHoverValueMin(true)); + IGNORE_RETURN(getHoverValueMax(true)); + IGNORE_RETURN(getTurnRateMin(true)); + IGNORE_RETURN(getTurnRateMax(true)); + IGNORE_RETURN(getMaxVelocityMin(true)); + IGNORE_RETURN(getMaxVelocityMax(true)); + IGNORE_RETURN(getAccelerationMin(true)); + IGNORE_RETURN(getAccelerationMax(true)); + IGNORE_RETURN(getBrakingMin(true)); + IGNORE_RETURN(getBrakingMax(true)); + SharedTangibleObjectTemplate::testValues(); +} // SharedVehicleObjectTemplate::testValues +#endif + /** * Loads the template data from an iff file. We should already be in the form * for this template. @@ -1140,8 +1432,8 @@ float SharedVehicleObjectTemplate::getBrakingMax() const */ void SharedVehicleObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedVehicleObjectTemplate_tag) { @@ -1151,7 +1443,7 @@ void SharedVehicleObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -1171,8 +1463,10 @@ void SharedVehicleObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 0, 0)) + if (getHighestTemplateVersion() != TAG(0,0,0,0)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -1220,4 +1514,4 @@ void SharedVehicleObjectTemplate::load(Iff &file) return; } // SharedVehicleObjectTemplate::load -//@END TFD \ No newline at end of file +//@END TFD diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedVehicleObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedVehicleObjectTemplate.h index 739aec05..4da4d4c1 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedVehicleObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedVehicleObjectTemplate.h @@ -58,25 +58,30 @@ public: float getSpeed(MovementTypes index) const; float getSpeedMin(MovementTypes index) const; float getSpeedMax(MovementTypes index) const; - float getSlopeAversion() const; - float getSlopeAversionMin() const; - float getSlopeAversionMax() const; - float getHoverValue() const; - float getHoverValueMin() const; - float getHoverValueMax() const; - float getTurnRate() const; - float getTurnRateMin() const; - float getTurnRateMax() const; - float getMaxVelocity() const; - float getMaxVelocityMin() const; - float getMaxVelocityMax() const; - float getAcceleration() const; - float getAccelerationMin() const; - float getAccelerationMax() const; - float getBraking() const; - float getBrakingMin() const; - float getBrakingMax() const; + float getSlopeAversion(bool testData = false) const; + float getSlopeAversionMin(bool testData = false) const; + float getSlopeAversionMax(bool testData = false) const; + float getHoverValue(bool testData = false) const; + float getHoverValueMin(bool testData = false) const; + float getHoverValueMax(bool testData = false) const; + float getTurnRate(bool testData = false) const; + float getTurnRateMin(bool testData = false) const; + float getTurnRateMax(bool testData = false) const; + float getMaxVelocity(bool testData = false) const; + float getMaxVelocityMin(bool testData = false) const; + float getMaxVelocityMax(bool testData = false) const; + float getAcceleration(bool testData = false) const; + float getAccelerationMin(bool testData = false) const; + float getAccelerationMax(bool testData = false) const; + float getBraking(bool testData = false) const; + float getBrakingMin(bool testData = false) const; + float getBrakingMax(bool testData = false) const; +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedWaypointObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedWaypointObjectTemplate.cpp index d5c089f9..2d82cd46 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedWaypointObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedWaypointObjectTemplate.cpp @@ -23,20 +23,20 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedWaypointObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedWaypointObjectTemplate::SharedWaypointObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedIntangibleObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT { } // SharedWaypointObjectTemplate::SharedWaypointObjectTemplate @@ -45,8 +45,8 @@ SharedWaypointObjectTemplate::SharedWaypointObjectTemplate(const std::string & f */ SharedWaypointObjectTemplate::~SharedWaypointObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP } // SharedWaypointObjectTemplate::~SharedWaypointObjectTemplate /** @@ -103,6 +103,15 @@ Tag SharedWaypointObjectTemplate::getHighestTemplateVersion(void) const } // SharedWaypointObjectTemplate::getHighestTemplateVersion //@BEGIN TFD +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedWaypointObjectTemplate::testValues(void) const +{ + SharedIntangibleObjectTemplate::testValues(); +} // SharedWaypointObjectTemplate::testValues +#endif /** * Loads the template data from an iff file. We should already be in the form @@ -112,8 +121,8 @@ Tag SharedWaypointObjectTemplate::getHighestTemplateVersion(void) const */ void SharedWaypointObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedWaypointObjectTemplate_tag) { @@ -123,7 +132,7 @@ void SharedWaypointObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -143,8 +152,10 @@ void SharedWaypointObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 0, 0)) + if (getHighestTemplateVersion() != TAG(0,0,0,0)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -162,4 +173,4 @@ void SharedWaypointObjectTemplate::load(Iff &file) return; } // SharedWaypointObjectTemplate::load -//@END TFD \ No newline at end of file +//@END TFD diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedWaypointObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedWaypointObjectTemplate.h index 7bb0e2ec..4fb31a6b 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedWaypointObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedWaypointObjectTemplate.h @@ -45,6 +45,11 @@ public: //@BEGIN TFD public: +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file); diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedWeaponObjectTemplate.cpp b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedWeaponObjectTemplate.cpp index 8190a334..193d4ac7 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedWeaponObjectTemplate.cpp +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedWeaponObjectTemplate.cpp @@ -23,20 +23,20 @@ const std::string DefaultString(""); const StringId DefaultStringId("", 0); -const Vector DefaultVector(0, 0, 0); +const Vector DefaultVector(0,0,0); const TriggerVolumeData DefaultTriggerVolumeData; bool SharedWeaponObjectTemplate::ms_allowDefaultTemplateParams = true; + /** * Class constructor. */ SharedWeaponObjectTemplate::SharedWeaponObjectTemplate(const std::string & filename) //@BEGIN TFD INIT : SharedTangibleObjectTemplate(filename) - , m_versionOk(true) - , m_templateVersion(0) - //@END TFD INIT + ,m_versionOk(true) +//@END TFD INIT { } // SharedWeaponObjectTemplate::SharedWeaponObjectTemplate @@ -45,8 +45,8 @@ SharedWeaponObjectTemplate::SharedWeaponObjectTemplate(const std::string & filen */ SharedWeaponObjectTemplate::~SharedWeaponObjectTemplate() { - //@BEGIN TFD CLEANUP - //@END TFD CLEANUP +//@BEGIN TFD CLEANUP +//@END TFD CLEANUP } // SharedWeaponObjectTemplate::~SharedWeaponObjectTemplate /** @@ -103,12 +103,22 @@ Tag SharedWeaponObjectTemplate::getHighestTemplateVersion(void) const } // SharedWeaponObjectTemplate::getHighestTemplateVersion //@BEGIN TFD -const std::string & SharedWeaponObjectTemplate::getWeaponEffect() const +const std::string & SharedWeaponObjectTemplate::getWeaponEffect(bool testData) const { +#ifdef _DEBUG +std::string testDataValue = DefaultString; +#else +UNREF(testData); +#endif + const SharedWeaponObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getWeaponEffect(true); +#endif } if (!m_weaponEffect.isLoaded()) @@ -126,16 +136,31 @@ const std::string & SharedWeaponObjectTemplate::getWeaponEffect() const } const std::string & value = m_weaponEffect.getValue(); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedWeaponObjectTemplate::getWeaponEffect -int SharedWeaponObjectTemplate::getWeaponEffectIndex() const +int SharedWeaponObjectTemplate::getWeaponEffectIndex(bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedWeaponObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getWeaponEffectIndex(true); +#endif } if (!m_weaponEffectIndex.isLoaded()) @@ -175,16 +200,31 @@ int SharedWeaponObjectTemplate::getWeaponEffectIndex() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedWeaponObjectTemplate::getWeaponEffectIndex -int SharedWeaponObjectTemplate::getWeaponEffectIndexMin() const +int SharedWeaponObjectTemplate::getWeaponEffectIndexMin(bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedWeaponObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getWeaponEffectIndexMin(true); +#endif } if (!m_weaponEffectIndex.isLoaded()) @@ -224,16 +264,31 @@ int SharedWeaponObjectTemplate::getWeaponEffectIndexMin() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedWeaponObjectTemplate::getWeaponEffectIndexMin -int SharedWeaponObjectTemplate::getWeaponEffectIndexMax() const +int SharedWeaponObjectTemplate::getWeaponEffectIndexMax(bool testData) const { +#ifdef _DEBUG +int testDataValue = 0; +#else +UNREF(testData); +#endif + const SharedWeaponObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getWeaponEffectIndexMax(true); +#endif } if (!m_weaponEffectIndex.isLoaded()) @@ -273,16 +328,31 @@ int SharedWeaponObjectTemplate::getWeaponEffectIndexMax() const else if (delta == '_') value = baseValue - static_cast(baseValue * (value / 100.0f)); } +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedWeaponObjectTemplate::getWeaponEffectIndexMax -SharedWeaponObjectTemplate::AttackType SharedWeaponObjectTemplate::getAttackType() const +SharedWeaponObjectTemplate::AttackType SharedWeaponObjectTemplate::getAttackType(bool testData) const { +#ifdef _DEBUG +SharedWeaponObjectTemplate::AttackType testDataValue = static_cast(0); +#else +UNREF(testData); +#endif + const SharedWeaponObjectTemplate * base = nullptr; if (m_baseData != nullptr) { base = dynamic_cast(m_baseData); +#ifdef _DEBUG + if (testData && base != nullptr) + testDataValue = base->getAttackType(true); +#endif } if (!m_attackType.isLoaded()) @@ -300,10 +370,29 @@ SharedWeaponObjectTemplate::AttackType SharedWeaponObjectTemplate::getAttackType } AttackType value = static_cast(m_attackType.getValue()); +#ifdef _DEBUG + if (testData && base != nullptr) + { + } +#endif return value; } // SharedWeaponObjectTemplate::getAttackType +#ifdef _DEBUG +/** + * Special function used by datalint. Checks for duplicate values in base and derived templates. + */ +void SharedWeaponObjectTemplate::testValues(void) const +{ + IGNORE_RETURN(getWeaponEffect(true)); + IGNORE_RETURN(getWeaponEffectIndexMin(true)); + IGNORE_RETURN(getWeaponEffectIndexMax(true)); + IGNORE_RETURN(getAttackType(true)); + SharedTangibleObjectTemplate::testValues(); +} // SharedWeaponObjectTemplate::testValues +#endif + /** * Loads the template data from an iff file. We should already be in the form * for this template. @@ -312,8 +401,8 @@ SharedWeaponObjectTemplate::AttackType SharedWeaponObjectTemplate::getAttackType */ void SharedWeaponObjectTemplate::load(Iff &file) { - static const int MAX_NAME_SIZE = 256; - char paramName[MAX_NAME_SIZE]; +static const int MAX_NAME_SIZE = 256; +char paramName[MAX_NAME_SIZE]; if (file.getCurrentName() != SharedWeaponObjectTemplate_tag) { @@ -323,7 +412,7 @@ void SharedWeaponObjectTemplate::load(Iff &file) file.enterForm(); m_templateVersion = file.getCurrentName(); - if (m_templateVersion == TAG(D, E, R, V)) + if (m_templateVersion == TAG(D,E,R,V)) { file.enterForm(); file.enterChunk(); @@ -343,8 +432,10 @@ void SharedWeaponObjectTemplate::load(Iff &file) file.exitForm(); m_templateVersion = file.getCurrentName(); } - if (getHighestTemplateVersion() != TAG(0, 0, 0, 4)) + if (getHighestTemplateVersion() != TAG(0,0,0,4)) { + if (DataLint::isEnabled()) + DEBUG_WARNING(true, ("template %s version out of date", file.getFileName())); m_versionOk = false; } @@ -372,4 +463,4 @@ void SharedWeaponObjectTemplate::load(Iff &file) return; } // SharedWeaponObjectTemplate::load -//@END TFD \ No newline at end of file +//@END TFD diff --git a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedWeaponObjectTemplate.h b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedWeaponObjectTemplate.h index ddcf638c..ba4d771c 100755 --- a/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedWeaponObjectTemplate.h +++ b/engine/shared/library/sharedGame/src/shared/objectTemplate/SharedWeaponObjectTemplate.h @@ -54,12 +54,17 @@ public: }; public: - const std::string & getWeaponEffect() const; - int getWeaponEffectIndex() const; - int getWeaponEffectIndexMin() const; - int getWeaponEffectIndexMax() const; - AttackType getAttackType() const; + const std::string & getWeaponEffect(bool testData = false) const; + int getWeaponEffectIndex(bool testData = false) const; + int getWeaponEffectIndexMin(bool testData = false) const; + int getWeaponEffectIndexMax(bool testData = false) const; + AttackType getAttackType(bool testData = false) const; +#ifdef _DEBUG +public: + // special code used by datalint + virtual void testValues(void) const; +#endif protected: virtual void load(Iff &file);