mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-15 00:24:40 +00:00
error string interpreter, example of usage in shapebase::preload, plus flips the datablock filter back on to save some network bandwidth.
This commit is contained in:
parent
220771d2fe
commit
8bb43dd5ae
5 changed files with 68 additions and 22 deletions
|
|
@ -113,6 +113,15 @@ ConsoleSetType(TypeShapeAssetId)
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
const String ShapeAsset::mErrCodeStrings[] =
|
||||||
|
{
|
||||||
|
"TooManyVerts",
|
||||||
|
"TooManyBones",
|
||||||
|
"MissingAnimatons",
|
||||||
|
"UnKnown"
|
||||||
|
};
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
ShapeAsset::ShapeAsset()
|
ShapeAsset::ShapeAsset()
|
||||||
{
|
{
|
||||||
mFileName = StringTable->EmptyString();
|
mFileName = StringTable->EmptyString();
|
||||||
|
|
|
||||||
|
|
@ -87,7 +87,16 @@ public:
|
||||||
{
|
{
|
||||||
TooManyVerts = AssetErrCode::Extended,
|
TooManyVerts = AssetErrCode::Extended,
|
||||||
TooManyBones,
|
TooManyBones,
|
||||||
MissingAnimatons
|
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();
|
||||||
|
|
|
||||||
|
|
@ -366,14 +366,14 @@ bool ShapeBaseData::preload(bool server, String &errorStr)
|
||||||
shapeAssetId = ShapeAsset::getAssetIdByFilename(shapeName);
|
shapeAssetId = ShapeAsset::getAssetIdByFilename(shapeName);
|
||||||
}
|
}
|
||||||
U32 assetState = ShapeAsset::getAssetById(shapeAssetId, &shapeAsset);
|
U32 assetState = ShapeAsset::getAssetById(shapeAssetId, &shapeAsset);
|
||||||
if (AssetErrCode::Failed != assetState)
|
if (ShapeAsset::Failed != assetState)
|
||||||
{
|
{
|
||||||
//only clear the legacy direct file reference if everything checks out fully
|
//only clear the legacy direct file reference if everything checks out fully
|
||||||
if (assetState == AssetErrCode::Ok)
|
if (assetState == ShapeAsset::Ok)
|
||||||
{
|
{
|
||||||
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
|
||||||
|
|
@ -798,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))
|
||||||
|
|
@ -880,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,20 +55,6 @@ extern StringTableEntry assetAutoUnloadField;
|
||||||
//#define ASSET_BASE_AUTOUNLOAD_FIELD "AssetAutoUnload"
|
//#define ASSET_BASE_AUTOUNLOAD_FIELD "AssetAutoUnload"
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
enum AssetErrCode
|
|
||||||
{
|
|
||||||
Failed,
|
|
||||||
Ok,
|
|
||||||
NotLoaded,
|
|
||||||
BadFileReference,
|
|
||||||
InvalidFormat,
|
|
||||||
DependencyNotFound,
|
|
||||||
FileTooLarge,
|
|
||||||
UsingFallback,
|
|
||||||
Extended
|
|
||||||
};
|
|
||||||
|
|
||||||
class AssetBase : public SimObject
|
class AssetBase : public SimObject
|
||||||
{
|
{
|
||||||
friend class AssetManager;
|
friend class AssetManager;
|
||||||
|
|
@ -82,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();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue