mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-16 00:54:54 +00:00
Merge pull request #390 from Azaezel/alpha40_assetErrorcodes
variation on #387 that also introduces errorcodes
This commit is contained in:
commit
5534384c54
7 changed files with 180 additions and 31 deletions
|
|
@ -113,12 +113,22 @@ ConsoleSetType(TypeShapeAssetId)
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
const String ShapeAsset::mErrCodeStrings[] =
|
||||||
|
{
|
||||||
|
"TooManyVerts",
|
||||||
|
"TooManyBones",
|
||||||
|
"MissingAnimatons",
|
||||||
|
"UnKnown"
|
||||||
|
};
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
ShapeAsset::ShapeAsset()
|
ShapeAsset::ShapeAsset()
|
||||||
{
|
{
|
||||||
mFileName = StringTable->EmptyString();
|
mFileName = StringTable->EmptyString();
|
||||||
mConstructorFileName = StringTable->EmptyString();
|
mConstructorFileName = StringTable->EmptyString();
|
||||||
mFilePath = StringTable->EmptyString();
|
mFilePath = StringTable->EmptyString();
|
||||||
mConstructorFilePath = StringTable->EmptyString();
|
mConstructorFilePath = StringTable->EmptyString();
|
||||||
|
mLoadedState = AssetErrCode::NotLoaded;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
@ -264,7 +274,8 @@ bool ShapeAsset::loadShape()
|
||||||
|
|
||||||
if (!mShape)
|
if (!mShape)
|
||||||
{
|
{
|
||||||
Con::errorf("StaticMesh::updateShape : failed to load shape file!");
|
Con::errorf("ShapeAsset::loadShape : failed to load shape file!");
|
||||||
|
mLoadedState = BadFileReference;
|
||||||
return false; //if it failed to load, bail out
|
return false; //if it failed to load, bail out
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -280,8 +291,10 @@ bool ShapeAsset::loadShape()
|
||||||
|
|
||||||
if (!mShape->addSequence(srcPath, srcName, srcName,
|
if (!mShape->addSequence(srcPath, srcName, srcName,
|
||||||
mAnimationAssets[i]->getStartFrame(), mAnimationAssets[i]->getEndFrame(), mAnimationAssets[i]->getPadRotation(), mAnimationAssets[i]->getPadTransforms()))
|
mAnimationAssets[i]->getStartFrame(), mAnimationAssets[i]->getEndFrame(), mAnimationAssets[i]->getPadRotation(), mAnimationAssets[i]->getPadTransforms()))
|
||||||
|
{
|
||||||
|
mLoadedState = MissingAnimatons;
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
if (mAnimationAssets[i]->isBlend())
|
if (mAnimationAssets[i]->isBlend())
|
||||||
hasBlends = true;
|
hasBlends = true;
|
||||||
}
|
}
|
||||||
|
|
@ -300,14 +313,20 @@ bool ShapeAsset::loadShape()
|
||||||
if (blendAnimAsset.isNull())
|
if (blendAnimAsset.isNull())
|
||||||
{
|
{
|
||||||
Con::errorf("ShapeAsset::initializeAsset - Unable to acquire reference animation asset %s for asset %s to blend!", mAnimationAssets[i]->getBlendAnimationName(), mAnimationAssets[i]->getAssetName());
|
Con::errorf("ShapeAsset::initializeAsset - Unable to acquire reference animation asset %s for asset %s to blend!", mAnimationAssets[i]->getBlendAnimationName(), mAnimationAssets[i]->getAssetName());
|
||||||
return false;
|
{
|
||||||
|
mLoadedState = MissingAnimatons;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String refAnimName = blendAnimAsset->getAnimationName();
|
String refAnimName = blendAnimAsset->getAnimationName();
|
||||||
if (!mShape->setSequenceBlend(mAnimationAssets[i]->getAnimationName(), true, blendAnimAsset->getAnimationName(), mAnimationAssets[i]->getBlendFrame()))
|
if (!mShape->setSequenceBlend(mAnimationAssets[i]->getAnimationName(), true, blendAnimAsset->getAnimationName(), mAnimationAssets[i]->getBlendFrame()))
|
||||||
{
|
{
|
||||||
Con::errorf("ShapeAnimationAsset::initializeAsset - Unable to set animation clip %s for asset %s to blend!", mAnimationAssets[i]->getAnimationName(), mAnimationAssets[i]->getAssetName());
|
Con::errorf("ShapeAnimationAsset::initializeAsset - Unable to set animation clip %s for asset %s to blend!", mAnimationAssets[i]->getAnimationName(), mAnimationAssets[i]->getAssetName());
|
||||||
return false;
|
{
|
||||||
|
mLoadedState = MissingAnimatons;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -315,6 +334,7 @@ bool ShapeAsset::loadShape()
|
||||||
|
|
||||||
mChangeSignal.trigger();
|
mChangeSignal.trigger();
|
||||||
|
|
||||||
|
mLoadedState = Ok;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -410,21 +430,21 @@ StringTableEntry ShapeAsset::getAssetIdByFilename(StringTableEntry fileName)
|
||||||
return shapeAssetId;
|
return shapeAssetId;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ShapeAsset::getAssetById(StringTableEntry assetId, AssetPtr<ShapeAsset>* shapeAsset)
|
U32 ShapeAsset::getAssetById(StringTableEntry assetId, AssetPtr<ShapeAsset>* shapeAsset)
|
||||||
{
|
{
|
||||||
(*shapeAsset) = assetId;
|
(*shapeAsset) = assetId;
|
||||||
|
|
||||||
if (!shapeAsset->isNull())
|
if ((*shapeAsset))
|
||||||
return true;
|
return (*shapeAsset)->mLoadedState;
|
||||||
|
|
||||||
//Didn't work, so have us fall back to a placeholder asset
|
//Didn't work, so have us fall back to a placeholder asset
|
||||||
StringTableEntry noShapeId = StringTable->insert("Core_Rendering:noshape");
|
StringTableEntry noShapeId = StringTable->insert("Core_Rendering:noshape");
|
||||||
shapeAsset->setAssetId(noShapeId);
|
shapeAsset->setAssetId(noShapeId);
|
||||||
|
(*shapeAsset)->mLoadedState = AssetErrCode::UsingFallback;
|
||||||
|
if (shapeAsset->notNull())
|
||||||
|
return AssetErrCode::UsingFallback;
|
||||||
|
|
||||||
if (!shapeAsset->isNull())
|
return AssetErrCode::Failed;
|
||||||
return true;
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
@ -503,6 +523,7 @@ DefineEngineMethod(ShapeAsset, getAnimation, ShapeAnimationAsset*, (S32 index),
|
||||||
// GuiInspectorTypeAssetId
|
// GuiInspectorTypeAssetId
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#ifdef TORQUE_TOOLS
|
||||||
IMPLEMENT_CONOBJECT(GuiInspectorTypeShapeAssetPtr);
|
IMPLEMENT_CONOBJECT(GuiInspectorTypeShapeAssetPtr);
|
||||||
|
|
||||||
ConsoleDocClass(GuiInspectorTypeShapeAssetPtr,
|
ConsoleDocClass(GuiInspectorTypeShapeAssetPtr,
|
||||||
|
|
@ -596,6 +617,8 @@ void GuiInspectorTypeShapeAssetId::consoleInit()
|
||||||
ConsoleBaseType::getType(TypeShapeAssetId)->setInspectorFieldType("GuiInspectorTypeShapeAssetId");
|
ConsoleBaseType::getType(TypeShapeAssetId)->setInspectorFieldType("GuiInspectorTypeShapeAssetId");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
DefineEngineMethod(ShapeAsset, getShapeFile, const char*, (), ,
|
DefineEngineMethod(ShapeAsset, getShapeFile, const char*, (), ,
|
||||||
"Creates a new script asset using the targetFilePath.\n"
|
"Creates a new script asset using the targetFilePath.\n"
|
||||||
"@return The bool result of calling exec")
|
"@return The bool result of calling exec")
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,9 @@
|
||||||
#include "ShapeAnimationAsset.h"
|
#include "ShapeAnimationAsset.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef TORQUE_TOOLS
|
||||||
#include "gui/editor/guiInspectorTypes.h"
|
#include "gui/editor/guiInspectorTypes.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
class ShapeAsset : public AssetBase
|
class ShapeAsset : public AssetBase
|
||||||
|
|
@ -81,6 +83,22 @@ protected:
|
||||||
ShapeAssetChanged mChangeSignal;
|
ShapeAssetChanged mChangeSignal;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
enum ShapeAssetErrCode
|
||||||
|
{
|
||||||
|
TooManyVerts = AssetErrCode::Extended,
|
||||||
|
TooManyBones,
|
||||||
|
MissingAnimatons,
|
||||||
|
Extended
|
||||||
|
};
|
||||||
|
|
||||||
|
static const String mErrCodeStrings[ShapeAssetErrCode::Extended - Parent::Extended + 1];
|
||||||
|
static String getAssetErrstrn(U32 errCode)
|
||||||
|
{
|
||||||
|
if (errCode < Parent::Extended) return Parent::getAssetErrstrn(errCode);
|
||||||
|
if (errCode > ShapeAssetErrCode::Extended) return "undefined error";
|
||||||
|
return mErrCodeStrings[errCode];
|
||||||
|
};
|
||||||
|
|
||||||
ShapeAsset();
|
ShapeAsset();
|
||||||
virtual ~ShapeAsset();
|
virtual ~ShapeAsset();
|
||||||
|
|
||||||
|
|
@ -96,6 +114,7 @@ public:
|
||||||
DECLARE_CONOBJECT(ShapeAsset);
|
DECLARE_CONOBJECT(ShapeAsset);
|
||||||
|
|
||||||
bool loadShape();
|
bool loadShape();
|
||||||
|
U32 mLoadedState;
|
||||||
|
|
||||||
TSShape* getShape() { return mShape; }
|
TSShape* getShape() { return mShape; }
|
||||||
|
|
||||||
|
|
@ -138,8 +157,9 @@ public:
|
||||||
inline StringTableEntry getShapeConstructorFilePath(void) const { return mConstructorFilePath; };
|
inline StringTableEntry getShapeConstructorFilePath(void) const { return mConstructorFilePath; };
|
||||||
|
|
||||||
static bool getAssetByFilename(StringTableEntry fileName, AssetPtr<ShapeAsset>* shapeAsset);
|
static bool getAssetByFilename(StringTableEntry fileName, AssetPtr<ShapeAsset>* shapeAsset);
|
||||||
|
|
||||||
static StringTableEntry getAssetIdByFilename(StringTableEntry fileName);
|
static StringTableEntry getAssetIdByFilename(StringTableEntry fileName);
|
||||||
static bool getAssetById(StringTableEntry assetId, AssetPtr<ShapeAsset>* shapeAsset);
|
static U32 getAssetById(StringTableEntry assetId, AssetPtr<ShapeAsset>* shapeAsset);
|
||||||
|
|
||||||
static StringTableEntry getNoShapeAssetId() { return StringTable->insert("Core_Rendering:noshape"); }
|
static StringTableEntry getNoShapeAssetId() { return StringTable->insert("Core_Rendering:noshape"); }
|
||||||
|
|
||||||
|
|
@ -154,6 +174,7 @@ protected:
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifdef TORQUE_TOOLS
|
||||||
DefineConsoleType(TypeShapeAssetPtr, S32)
|
DefineConsoleType(TypeShapeAssetPtr, S32)
|
||||||
DefineConsoleType(TypeShapeAssetId, String)
|
DefineConsoleType(TypeShapeAssetId, String)
|
||||||
|
|
||||||
|
|
@ -182,6 +203,72 @@ public:
|
||||||
DECLARE_CONOBJECT(GuiInspectorTypeShapeAssetId);
|
DECLARE_CONOBJECT(GuiInspectorTypeShapeAssetId);
|
||||||
static void consoleInit();
|
static void consoleInit();
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define assetText(x,suff) std::string(std::string(#x) + std::string(#suff)).c_str()
|
||||||
|
|
||||||
|
#define initShapeAsset(name) m##name##Filename = StringTable->EmptyString(); m##name##AssetId = StringTable->EmptyString(); m##name##Asset = NULL;
|
||||||
|
#define bindShapeAsset(name) if (m##name##AssetId != StringTable->EmptyString()) m##name##Asset = m##name##AssetId;
|
||||||
|
|
||||||
|
#define scriptBindShapeAsset(name, consoleClass, docs) addProtectedField(assetText(name, File), TypeShapeFilename, Offset(m##name##Filename, consoleClass), consoleClass::_set##name##Filename, & defaultProtectedGetFn, assetText(name, docs)); \
|
||||||
|
addProtectedField(assetText(name, Asset), TypeShapeAssetId, Offset(m##name##AssetId, consoleClass), consoleClass::_set##name##Asset, & defaultProtectedGetFn, assetText(name, asset reference.));
|
||||||
|
|
||||||
|
#define DECLARE_SHAPEASSET(className,name) protected: \
|
||||||
|
StringTableEntry m##name##Filename;\
|
||||||
|
StringTableEntry m##name##AssetId;\
|
||||||
|
AssetPtr<ShapeAsset> m##name##Asset;\
|
||||||
|
public: \
|
||||||
|
const StringTableEntry& get##name() const { return m##name##Filename; }\
|
||||||
|
void set##name(FileName _in) { m##name##Filename = _in; }\
|
||||||
|
const AssetPtr<ShapeAsset> & get##name##Asset() const { return m##name##Asset; }\
|
||||||
|
void set##name##Asset(AssetPtr<ShapeAsset>_in) { m##name##Asset = _in; }\
|
||||||
|
static bool _set##name##Filename(void* obj, const char* index, const char* data)\
|
||||||
|
{\
|
||||||
|
className* shape = static_cast<className*>(obj);\
|
||||||
|
\
|
||||||
|
StringTableEntry assetId = ShapeAsset::getAssetIdByFilename(StringTable->insert(data));\
|
||||||
|
if (assetId != StringTable->EmptyString())\
|
||||||
|
{\
|
||||||
|
if (shape->_set##name##Asset(obj, index, assetId))\
|
||||||
|
{\
|
||||||
|
if (assetId == StringTable->insert("Core_Rendering:noShape"))\
|
||||||
|
{\
|
||||||
|
shape->m##name##Filename = data;\
|
||||||
|
shape->m##name##AssetId = StringTable->EmptyString();\
|
||||||
|
\
|
||||||
|
return true;\
|
||||||
|
}\
|
||||||
|
else\
|
||||||
|
{\
|
||||||
|
shape->m##name##AssetId = assetId;\
|
||||||
|
shape->m##name##Filename = StringTable->EmptyString();\
|
||||||
|
\
|
||||||
|
return false;\
|
||||||
|
}\
|
||||||
|
}\
|
||||||
|
}\
|
||||||
|
else\
|
||||||
|
{\
|
||||||
|
shape->m##name##Asset = StringTable->EmptyString();\
|
||||||
|
}\
|
||||||
|
\
|
||||||
|
return true;\
|
||||||
|
}\
|
||||||
|
\
|
||||||
|
static bool _set##name##Asset(void* obj, const char* index, const char* data)\
|
||||||
|
{\
|
||||||
|
className* shape = static_cast<className*>(obj);\
|
||||||
|
shape->m##name##AssetId = StringTable->insert(data);\
|
||||||
|
if (ShapeAsset::getAssetById(shape->m##name##AssetId, &shape->m##name##Asset))\
|
||||||
|
{\
|
||||||
|
if (shape->m##name##Asset.getAssetId() != StringTable->insert("Core_Rendering:noShape"))\
|
||||||
|
shape->m##name##Filename = StringTable->EmptyString();\
|
||||||
|
\
|
||||||
|
shape->setMaskBits(-1);\
|
||||||
|
return true;\
|
||||||
|
}\
|
||||||
|
return false;\
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -361,24 +361,19 @@ bool ShapeBaseData::preload(bool server, String &errorStr)
|
||||||
}
|
}
|
||||||
|
|
||||||
//Legacy catch
|
//Legacy catch
|
||||||
if (shapeAssetId == StringTable->EmptyString() && shapeName != StringTable->EmptyString())
|
if (shapeName != StringTable->EmptyString())
|
||||||
{
|
{
|
||||||
StringTableEntry assetId = ShapeAsset::getAssetIdByFilename(shapeName);
|
shapeAssetId = ShapeAsset::getAssetIdByFilename(shapeName);
|
||||||
if (assetId != StringTable->EmptyString())
|
|
||||||
{
|
|
||||||
shapeAssetId = assetId;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
U32 assetState = ShapeAsset::getAssetById(shapeAssetId, &shapeAsset);
|
||||||
if (ShapeAsset::getAssetById(shapeAssetId, &shapeAsset))
|
if (ShapeAsset::Failed != assetState)
|
||||||
{
|
{
|
||||||
//Special exception case. If we've defaulted to the 'no shape' mesh, don't save it out, we'll retain the original ids/paths so it doesn't break
|
//only clear the legacy direct file reference if everything checks out fully
|
||||||
//the TSStatic
|
if (assetState == ShapeAsset::Ok)
|
||||||
if (shapeAsset.getAssetId() != StringTable->insert("Core_Rendering:noshape"))
|
|
||||||
{
|
{
|
||||||
shapeName = StringTable->EmptyString();
|
shapeName = StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
|
else Con::warnf("Warning: ShapeBaseData::preload-%s", ShapeAsset::getAssetErrstrn(assetState).c_str());
|
||||||
S32 i;
|
S32 i;
|
||||||
|
|
||||||
// Resolve shapename
|
// Resolve shapename
|
||||||
|
|
@ -803,10 +798,14 @@ void ShapeBaseData::packData(BitStream* stream)
|
||||||
stream->write(shadowSphereAdjust);
|
stream->write(shadowSphereAdjust);
|
||||||
|
|
||||||
|
|
||||||
//if (stream->writeFlag(shapeAsset.notNull()))
|
if (stream->writeFlag(shapeAsset.notNull()))
|
||||||
|
{
|
||||||
stream->writeString(shapeAsset.getAssetId());
|
stream->writeString(shapeAsset.getAssetId());
|
||||||
//else
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
stream->writeString(shapeName);
|
stream->writeString(shapeName);
|
||||||
|
}
|
||||||
|
|
||||||
stream->writeString(cloakTexName);
|
stream->writeString(cloakTexName);
|
||||||
if(stream->writeFlag(mass != gShapeBaseDataProto.mass))
|
if(stream->writeFlag(mass != gShapeBaseDataProto.mass))
|
||||||
|
|
@ -885,10 +884,16 @@ void ShapeBaseData::unpackData(BitStream* stream)
|
||||||
stream->read(&shadowSphereAdjust);
|
stream->read(&shadowSphereAdjust);
|
||||||
|
|
||||||
|
|
||||||
//if (stream->readFlag())
|
if (stream->readFlag())
|
||||||
|
{
|
||||||
shapeAssetId = stream->readSTString();
|
shapeAssetId = stream->readSTString();
|
||||||
//else
|
ShapeAsset::getAssetById(shapeAssetId, &shapeAsset);
|
||||||
|
shapeName = shapeAsset->getShapeFilename();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
shapeName = stream->readSTString();
|
shapeName = stream->readSTString();
|
||||||
|
}
|
||||||
|
|
||||||
cloakTexName = stream->readSTString();
|
cloakTexName = stream->readSTString();
|
||||||
if(stream->readFlag())
|
if(stream->readFlag())
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,18 @@ StringTableEntry assetInternalField = StringTable->insert("AssetInternal");
|
||||||
StringTableEntry assetPrivateField = StringTable->insert("AssetPrivate");
|
StringTableEntry assetPrivateField = StringTable->insert("AssetPrivate");
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
const String AssetBase::mErrCodeStrings[] =
|
||||||
|
{
|
||||||
|
"Failed",
|
||||||
|
"Ok",
|
||||||
|
"NotLoaded",
|
||||||
|
"BadFileReference",
|
||||||
|
"InvalidFormat",
|
||||||
|
"DependencyNotFound",
|
||||||
|
"FileTooLarge",
|
||||||
|
"UsingFallback",
|
||||||
|
"UnKnown"
|
||||||
|
};
|
||||||
|
|
||||||
AssetBase::AssetBase() :
|
AssetBase::AssetBase() :
|
||||||
mpOwningAssetManager(NULL),
|
mpOwningAssetManager(NULL),
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,6 @@ extern StringTableEntry assetAutoUnloadField;
|
||||||
//#define ASSET_BASE_AUTOUNLOAD_FIELD "AssetAutoUnload"
|
//#define ASSET_BASE_AUTOUNLOAD_FIELD "AssetAutoUnload"
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
class AssetBase : public SimObject
|
class AssetBase : public SimObject
|
||||||
{
|
{
|
||||||
friend class AssetManager;
|
friend class AssetManager;
|
||||||
|
|
@ -69,6 +68,26 @@ protected:
|
||||||
U32 mAcquireReferenceCount;
|
U32 mAcquireReferenceCount;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
enum AssetErrCode
|
||||||
|
{
|
||||||
|
Failed,
|
||||||
|
Ok,
|
||||||
|
NotLoaded,
|
||||||
|
BadFileReference,
|
||||||
|
InvalidFormat,
|
||||||
|
DependencyNotFound,
|
||||||
|
FileTooLarge,
|
||||||
|
UsingFallback,
|
||||||
|
Extended
|
||||||
|
};
|
||||||
|
|
||||||
|
static const String mErrCodeStrings[AssetErrCode::Extended + 1];
|
||||||
|
static String getAssetErrstrn(U32 errCode)
|
||||||
|
{
|
||||||
|
if (errCode > AssetErrCode::Extended) return "undefined error";
|
||||||
|
return mErrCodeStrings[errCode];
|
||||||
|
};
|
||||||
|
|
||||||
AssetBase();
|
AssetBase();
|
||||||
virtual ~AssetBase();
|
virtual ~AssetBase();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,10 @@ private:
|
||||||
StringTableEntry mAssetNameTo;
|
StringTableEntry mAssetNameTo;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TamlAssetDeclaredUpdateVisitor() {}
|
TamlAssetDeclaredUpdateVisitor():
|
||||||
|
mAssetIdFrom(StringTable->EmptyString()), mAssetIdTo(StringTable->EmptyString()),
|
||||||
|
mAssetNameFrom(StringTable->EmptyString()), mAssetNameTo(StringTable->EmptyString()) {}
|
||||||
|
|
||||||
virtual ~TamlAssetDeclaredUpdateVisitor() {}
|
virtual ~TamlAssetDeclaredUpdateVisitor() {}
|
||||||
|
|
||||||
void setAssetIdFrom( const char* pAssetIdFrom )
|
void setAssetIdFrom( const char* pAssetIdFrom )
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ private:
|
||||||
StringTableEntry mAssetIdTo;
|
StringTableEntry mAssetIdTo;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TamlAssetReferencedUpdateVisitor() {}
|
TamlAssetReferencedUpdateVisitor() : mAssetIdFrom(StringTable->EmptyString()), mAssetIdTo(StringTable->EmptyString()) {}
|
||||||
virtual ~TamlAssetReferencedUpdateVisitor() {}
|
virtual ~TamlAssetReferencedUpdateVisitor() {}
|
||||||
|
|
||||||
void setAssetIdFrom( const char* pAssetIdFrom )
|
void setAssetIdFrom( const char* pAssetIdFrom )
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue