* Adjustment: Tweak the asset importer to use the Torque VFS functions.

This commit is contained in:
Robert MacGregor 2021-12-19 00:28:15 -05:00
parent cbe7ee13d6
commit 66f9336995
2 changed files with 29 additions and 19 deletions

View file

@ -1400,7 +1400,7 @@ void AssetImportConfig::loadSISFile(Torque::Path filePath)
String settingsFile = settingsFilePath + "/" + fileExtension + ".sis"; String settingsFile = settingsFilePath + "/" + fileExtension + ".sis";
FileObject* fileObj = new FileObject(); FileObject* fileObj = new FileObject();
if (Platform::isFile(settingsFile)) if (Torque::FS::IsFile(settingsFile))
{ {
if (!fileObj->readMemory(settingsFile.c_str())) if (!fileObj->readMemory(settingsFile.c_str()))
{ {
@ -2074,7 +2074,7 @@ void AssetImporter::processShapeMaterialInfo(AssetImportObject* assetItem, S32 m
if (fullFilePath.isNotEmpty()) if (fullFilePath.isNotEmpty())
{ {
if (!Platform::isFile(fullFilePath.c_str())) if (!Torque::FS::IsFile(fullFilePath.c_str()))
{ {
//could be a stale path reference, such as if it was downloaded elsewhere. Trim to just the filename and see //could be a stale path reference, such as if it was downloaded elsewhere. Trim to just the filename and see
//if we can find it there //if we can find it there
@ -2086,7 +2086,7 @@ void AssetImporter::processShapeMaterialInfo(AssetImportObject* assetItem, S32 m
if(filePath.getPath().isEmpty()) if(filePath.getPath().isEmpty())
fullFilePath = shapePathBase + "/" + fullFilePath; fullFilePath = shapePathBase + "/" + fullFilePath;
if (Platform::isFile(fullFilePath.c_str())) if (Torque::FS::IsFile(fullFilePath.c_str()))
{ {
filePath = Torque::Path(fullFilePath); filePath = Torque::Path(fullFilePath);
} }
@ -2203,7 +2203,7 @@ void AssetImporter::validateAsset(AssetImportObject* assetItem)
} }
} }
if (!assetItem->filePath.isEmpty() && !assetItem->generatedAsset && !Platform::isFile(assetItem->filePath.getFullPath().c_str())) if (!assetItem->filePath.isEmpty() && !assetItem->generatedAsset && !Torque::FS::IsFile(assetItem->filePath.getFullPath().c_str()))
{ {
assetItem->status = "Error"; assetItem->status = "Error";
assetItem->statusType = "MissingFile"; assetItem->statusType = "MissingFile";
@ -2667,8 +2667,8 @@ Torque::Path AssetImporter::importImageAsset(AssetImportObject* assetItem)
dMemset(qualifiedFromFile, 0x00, sizeof(qualifiedFromFile)); dMemset(qualifiedFromFile, 0x00, sizeof(qualifiedFromFile));
dMemset(qualifiedToFile, 0x00, sizeof(qualifiedToFile)); dMemset(qualifiedToFile, 0x00, sizeof(qualifiedToFile));
dMemcpy(qualifiedFromFile, originalPath.c_str(), originalPath.size()); dMemcpy(qualifiedFromFile, originalPath.c_str(), std::min<dsize_t>(originalPath.size(), sizeof(qualifiedFromFile)));
dMemcpy(qualifiedToFile, assetPath.c_str(), assetPath.size()); dMemcpy(qualifiedToFile, assetPath.c_str(), std::min<dsize_t>(assetPath.size(), sizeof(qualifiedToFile)));
#endif #endif
newAsset->setAssetName(assetName); newAsset->setAssetName(assetName);
@ -2737,7 +2737,7 @@ Torque::Path AssetImporter::importMaterialAsset(AssetImportObject* assetItem)
Platform::makeFullPathName(originalPath.c_str(), qualifiedFromFile, sizeof(qualifiedFromFile)); Platform::makeFullPathName(originalPath.c_str(), qualifiedFromFile, sizeof(qualifiedFromFile));
#else #else
dMemset(qualifiedFromFile, 0x00, sizeof(qualifiedFromFile)); dMemset(qualifiedFromFile, 0x00, sizeof(qualifiedFromFile));
dMemcpy(qualifiedFromFile, originalPath.c_str(), originalPath.size()); dMemcpy(qualifiedFromFile, originalPath.c_str(), std::min<dsize_t>(originalPath.size(), sizeof(qualifiedFromFile)));
#endif #endif
newAsset->setAssetName(assetName); newAsset->setAssetName(assetName);
@ -2817,7 +2817,7 @@ Torque::Path AssetImporter::importMaterialAsset(AssetImportObject* assetItem)
FileObject* file = new FileObject(); FileObject* file = new FileObject();
file->registerObject(); file->registerObject();
if (activeImportConfig->UseExistingMaterials && Platform::isFile(qualifiedFromFile)) if (activeImportConfig->UseExistingMaterials && Torque::FS::IsFile(qualifiedFromFile))
{ {
//Now write the script file containing our material out //Now write the script file containing our material out
//There's 2 ways to do this. If we're in-place importing an existing asset, we can see if the definition existed already, like in an old //There's 2 ways to do this. If we're in-place importing an existing asset, we can see if the definition existed already, like in an old
@ -3024,10 +3024,10 @@ Torque::Path AssetImporter::importShapeAsset(AssetImportObject* assetItem)
dMemset(qualifiedFromCSFile, 0x00, sizeof(qualifiedFromCSFile)); dMemset(qualifiedFromCSFile, 0x00, sizeof(qualifiedFromCSFile));
dMemset(qualifiedToCSFile, 0x00, sizeof(qualifiedToCSFile)); dMemset(qualifiedToCSFile, 0x00, sizeof(qualifiedToCSFile));
dMemcpy(qualifiedFromFile, originalPath.c_str(), originalPath.size()); dMemcpy(qualifiedFromFile, originalPath.c_str(), std::min<dsize_t>(originalPath.size(), sizeof(qualifiedFromFile)));
dMemcpy(qualifiedToFile, assetPath.c_str(), assetPath.size()); dMemcpy(qualifiedToFile, assetPath.c_str(), std::min<dsize_t>(assetPath.size(), sizeof(qualifiedToFile)));
dMemcpy(qualifiedFromCSFile, originalConstructorPath.c_str(), originalConstructorPath.size()); dMemcpy(qualifiedFromCSFile, originalConstructorPath.c_str(), std::min<dsize_t>(originalConstructorPath.size(), sizeof(qualifiedFromCSFile)));
dMemcpy(qualifiedToCSFile, constructorPath.c_str(), constructorPath.size()); dMemcpy(qualifiedToCSFile, constructorPath.c_str(), std::min<dsize_t>(constructorPath.size(), sizeof(qualifiedToCSFile)));
#endif #endif
newAsset->setAssetName(assetName); newAsset->setAssetName(assetName);
@ -3119,7 +3119,7 @@ Torque::Path AssetImporter::importShapeAsset(AssetImportObject* assetItem)
if (!isInPlace) if (!isInPlace)
{ {
if (Platform::isFile(qualifiedFromCSFile)) if (Torque::FS::IsFile(qualifiedFromCSFile))
{ {
if (!Torque::FS::CopyFile(qualifiedFromCSFile, qualifiedToCSFile, !isReimport)) if (!Torque::FS::CopyFile(qualifiedFromCSFile, qualifiedToCSFile, !isReimport))
{ {
@ -3138,7 +3138,7 @@ Torque::Path AssetImporter::importShapeAsset(AssetImportObject* assetItem)
else else
{ {
//We're doing an in-place import, so double check we've already got a constructor file in the expected spot //We're doing an in-place import, so double check we've already got a constructor file in the expected spot
if (Platform::isFile(qualifiedFromCSFile)) if (Torque::FS::IsFile(qualifiedFromCSFile))
{ {
//Yup, found it, we're good to go //Yup, found it, we're good to go
makeNewConstructor = false; makeNewConstructor = false;
@ -3151,7 +3151,7 @@ Torque::Path AssetImporter::importShapeAsset(AssetImportObject* assetItem)
Torque::Path constrFilePath = qualifiedFromCSFile; Torque::Path constrFilePath = qualifiedFromCSFile;
constrFilePath.setExtension("cs"); constrFilePath.setExtension("cs");
if (Platform::isFile(constrFilePath.getFullPath().c_str())) if (Torque::FS::IsFile(constrFilePath.getFullPath().c_str()))
{ {
//Yup, found it, we're good to go //Yup, found it, we're good to go
makeNewConstructor = false; makeNewConstructor = false;
@ -3320,8 +3320,8 @@ Torque::Path AssetImporter::importSoundAsset(AssetImportObject* assetItem)
dMemset(qualifiedFromFile, 0x00, sizeof(qualifiedFromFile)); dMemset(qualifiedFromFile, 0x00, sizeof(qualifiedFromFile));
dMemset(qualifiedToFile, 0x00, sizeof(qualifiedToFile)); dMemset(qualifiedToFile, 0x00, sizeof(qualifiedToFile));
dMemcpy(qualifiedFromFile, originalPath.c_str(), originalPath.size()); dMemcpy(qualifiedFromFile, originalPath.c_str(), std::min<dsize_t>(originalPath.size(), sizeof(qualifiedFromFile)));
dMemcpy(qualifiedToFile, assetPath.c_str(), assetPath.size()); dMemcpy(qualifiedToFile, assetPath.c_str(), std::min<dsize_t>(assetPath.size(), sizeof(qualifiedToFile)));
#endif #endif
newAsset->setAssetName(assetName); newAsset->setAssetName(assetName);
@ -3384,8 +3384,8 @@ Torque::Path AssetImporter::importShapeAnimationAsset(AssetImportObject* assetIt
dMemset(qualifiedFromFile, 0x00, sizeof(qualifiedFromFile)); dMemset(qualifiedFromFile, 0x00, sizeof(qualifiedFromFile));
dMemset(qualifiedToFile, 0x00, sizeof(qualifiedToFile)); dMemset(qualifiedToFile, 0x00, sizeof(qualifiedToFile));
dMemcpy(qualifiedFromFile, originalPath.c_str(), originalPath.size()); dMemcpy(qualifiedFromFile, originalPath.c_str(), std::min<dsize_t>(originalPath.size(), sizeof(qualifiedFromFile)));
dMemcpy(qualifiedToFile, assetPath.c_str(), assetPath.size()); dMemcpy(qualifiedToFile, assetPath.c_str(), std::min<dsize_t>(assetPath.size(), sizeof(qualifiedToFile)));
#endif #endif
newAsset->setAssetName(assetName); newAsset->setAssetName(assetName);

View file

@ -455,7 +455,13 @@ DefineEngineFunction(getDirectoryList, String, ( const char* path, S32 depth ),
{ {
// Grab the full path. // Grab the full path.
char fullpath[1024]; char fullpath[1024];
#ifdef TORQUE_SECURE_VFS
dMemset(fullpath, 0x00, sizeof(fullpath));
dMemcpy(fullpath, path, dStrlen(path));
#else
Platform::makeFullPathName(String::compare(path, "/") == 0 ? "" : path, fullpath, sizeof(fullpath)); Platform::makeFullPathName(String::compare(path, "/") == 0 ? "" : path, fullpath, sizeof(fullpath));
#endif
//dSprintf(fullpath, 511, "%s/%s", Platform::getWorkingDirectory(), path); //dSprintf(fullpath, 511, "%s/%s", Platform::getWorkingDirectory(), path);
@ -469,7 +475,11 @@ DefineEngineFunction(getDirectoryList, String, ( const char* path, S32 depth ),
// Dump the directories. // Dump the directories.
Vector<StringTableEntry> directories; Vector<StringTableEntry> directories;
#ifdef TORQUE_SECURE_VFS
Torque::FS::DumpDirectories(fullpath, directories, depth, true);
#else
Platform::dumpDirectories(fullpath, directories, depth, true); Platform::dumpDirectories(fullpath, directories, depth, true);
#endif
if( directories.empty() ) if( directories.empty() )
return ""; return "";