mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-02-21 15:43:45 +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()
|
||||
{
|
||||
mFileName = StringTable->EmptyString();
|
||||
|
|
|
|||
|
|
@ -87,7 +87,16 @@ public:
|
|||
{
|
||||
TooManyVerts = AssetErrCode::Extended,
|
||||
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();
|
||||
|
|
|
|||
|
|
@ -366,14 +366,14 @@ bool ShapeBaseData::preload(bool server, String &errorStr)
|
|||
shapeAssetId = ShapeAsset::getAssetIdByFilename(shapeName);
|
||||
}
|
||||
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
|
||||
if (assetState == AssetErrCode::Ok)
|
||||
if (assetState == ShapeAsset::Ok)
|
||||
{
|
||||
shapeName = StringTable->EmptyString();
|
||||
}
|
||||
|
||||
else Con::warnf("Warning: ShapeBaseData::preload-%s", ShapeAsset::getAssetErrstrn(assetState).c_str());
|
||||
S32 i;
|
||||
|
||||
// Resolve shapename
|
||||
|
|
@ -798,10 +798,14 @@ void ShapeBaseData::packData(BitStream* stream)
|
|||
stream->write(shadowSphereAdjust);
|
||||
|
||||
|
||||
//if (stream->writeFlag(shapeAsset.notNull()))
|
||||
if (stream->writeFlag(shapeAsset.notNull()))
|
||||
{
|
||||
stream->writeString(shapeAsset.getAssetId());
|
||||
//else
|
||||
}
|
||||
else
|
||||
{
|
||||
stream->writeString(shapeName);
|
||||
}
|
||||
|
||||
stream->writeString(cloakTexName);
|
||||
if(stream->writeFlag(mass != gShapeBaseDataProto.mass))
|
||||
|
|
@ -880,10 +884,16 @@ void ShapeBaseData::unpackData(BitStream* stream)
|
|||
stream->read(&shadowSphereAdjust);
|
||||
|
||||
|
||||
//if (stream->readFlag())
|
||||
if (stream->readFlag())
|
||||
{
|
||||
shapeAssetId = stream->readSTString();
|
||||
//else
|
||||
ShapeAsset::getAssetById(shapeAssetId, &shapeAsset);
|
||||
shapeName = shapeAsset->getShapeFilename();
|
||||
}
|
||||
else
|
||||
{
|
||||
shapeName = stream->readSTString();
|
||||
}
|
||||
|
||||
cloakTexName = stream->readSTString();
|
||||
if(stream->readFlag())
|
||||
|
|
|
|||
|
|
@ -52,6 +52,18 @@ StringTableEntry assetInternalField = StringTable->insert("AssetInternal");
|
|||
StringTableEntry assetPrivateField = StringTable->insert("AssetPrivate");
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
const String AssetBase::mErrCodeStrings[] =
|
||||
{
|
||||
"Failed",
|
||||
"Ok",
|
||||
"NotLoaded",
|
||||
"BadFileReference",
|
||||
"InvalidFormat",
|
||||
"DependencyNotFound",
|
||||
"FileTooLarge",
|
||||
"UsingFallback",
|
||||
"UnKnown"
|
||||
};
|
||||
|
||||
AssetBase::AssetBase() :
|
||||
mpOwningAssetManager(NULL),
|
||||
|
|
|
|||
|
|
@ -55,20 +55,6 @@ extern StringTableEntry assetAutoUnloadField;
|
|||
//#define ASSET_BASE_AUTOUNLOAD_FIELD "AssetAutoUnload"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
enum AssetErrCode
|
||||
{
|
||||
Failed,
|
||||
Ok,
|
||||
NotLoaded,
|
||||
BadFileReference,
|
||||
InvalidFormat,
|
||||
DependencyNotFound,
|
||||
FileTooLarge,
|
||||
UsingFallback,
|
||||
Extended
|
||||
};
|
||||
|
||||
class AssetBase : public SimObject
|
||||
{
|
||||
friend class AssetManager;
|
||||
|
|
@ -82,6 +68,26 @@ protected:
|
|||
U32 mAcquireReferenceCount;
|
||||
|
||||
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();
|
||||
virtual ~AssetBase();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue