2
0
Эх сурвалжийг харах

Merge pull request #971 from Azaezel/alpha41/isFileFix

fix isFile detection, and aug for script extension searching
Brian Roberts 2 жил өмнө
parent
commit
bae7166cc0

+ 13 - 1
Engine/source/console/fileSystemFunctions.cpp

@@ -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);
 }