From 8d8432115b105deff608c809e56ac9f979e57f43 Mon Sep 17 00:00:00 2001 From: JeffR Date: Thu, 24 Feb 2022 00:48:00 -0600 Subject: [PATCH] Adjusts formatting when parsing for object and function definitions in the project importer to be more accurate Adds handling for progrommatic new object delcarations where the class type is defined via () encapsulated code so the project import doesn't mangle it. --- .../scripts/projectImporter.tscript | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Templates/BaseGame/game/tools/projectImporter/scripts/projectImporter.tscript b/Templates/BaseGame/game/tools/projectImporter/scripts/projectImporter.tscript index c149cf3f2..f7b86be34 100644 --- a/Templates/BaseGame/game/tools/projectImporter/scripts/projectImporter.tscript +++ b/Templates/BaseGame/game/tools/projectImporter/scripts/projectImporter.tscript @@ -476,7 +476,7 @@ function preprocessImportingFiles() { %line = $ProjectImporter::fileObject.readLine(); - if(strIsMatchExpr("* new*(*)*", %line)) + if(strIsMatchExpr("*new *(*)*", %line)) { %start = strpos(%line, "new "); %end = strpos(%line, "(", %start); @@ -486,6 +486,14 @@ function preprocessImportingFiles() %className = getSubStr(%line, %start + 4, %end-%start-4); } + if(%className $= "") + { + //we clearly have some unusual formatting, potentially a progromattic + //object block creation going on here. so we'll just skip it and move on + %currentFileSectionObject.add(%line); + continue; + } + %nameEnd = strpos(%line, ")", %end); %objectName = getSubStr(%line, %end+1, %nameEnd-%end-1); @@ -530,7 +538,7 @@ function preprocessImportingFiles() %insideObjectBlock = true; } } - else if(strIsMatchExpr("* datablock*(*)*", %line)) + else if(strIsMatchExpr("*datablock *(*)*", %line)) { %start = strpos(%line, "datablock "); %end = strpos(%line, "(", %start); @@ -584,7 +592,7 @@ function preprocessImportingFiles() %insideObjectBlock = true; } } - else if(strIsMatchExpr("* singleton*(*)*", %line)) + else if(strIsMatchExpr("*singleton *(*)*", %line)) { %start = strpos(%line, "singleton "); %end = strpos(%line, "(", %start); @@ -638,7 +646,7 @@ function preprocessImportingFiles() %insideObjectBlock = true; } } - else if(strIsMatchExpr("*function*(*)*", %line)) + else if(strIsMatchExpr("*function *(*)*", %line)) { %start = strpos(%line, "function "); %end = strpos(%line, "(", %start);