fix isFile detection, and aug for script extension searching

This commit is contained in:
AzaezelX 2023-02-23 16:59:10 -06:00
parent b6f3c25fea
commit f77fa1f286

View file

@ -387,7 +387,10 @@ DefineEngineFunction(isFile, bool, ( const char* fileName ),,
"@ingroup FileSystem")
{
Torque::Path givenPath(fileName);
String cleanfilename(Torque::Path::CleanSeparators(fileName));
Con::expandScriptFilename(sgScriptFilenameBuffer, sizeof(sgScriptFilenameBuffer), cleanfilename.c_str());
Torque::Path givenPath(Torque::Path::CompressPath(sgScriptFilenameBuffer));
if (givenPath.getFileName().isEmpty() && givenPath.getExtension().isNotEmpty())
{
@ -396,7 +399,16 @@ DefineEngineFunction(isFile, bool, ( const char* fileName ),,
givenPath.setFileName(String(".") + givenPath.getExtension());
givenPath.setExtension("");
}
if (Torque::FS::IsFile(givenPath)) return true;
//try with script file extension
if (!Torque::FS::IsFile(givenPath) && givenPath.getExtension().isEmpty())
givenPath.setExtension(TORQUE_SCRIPT_EXTENSION);
if (Torque::FS::IsFile(givenPath)) return true;
//finally, try with compiled script file extension
if (!Torque::FS::IsFile(givenPath))
givenPath.setExtension(String(TORQUE_SCRIPT_EXTENSION)+String(".dso"));
return Torque::FS::IsFile(givenPath);
}