diff --git a/Scripts/Internal/FileValidation/00_shared.wscript b/Scripts/Internal/FileValidation/00_shared.wscript index 4740ae4..472c0a7 100644 --- a/Scripts/Internal/FileValidation/00_shared.wscript +++ b/Scripts/Internal/FileValidation/00_shared.wscript @@ -147,8 +147,10 @@ export function checkDepotPath(_depotPath, _info, allowEmpty = false, suppressLo switch (getPathToCurrentFile().split('.').pop()) { case 'ent': warnAboutSubstitution = entSettings.warnAboutSubstitution; + break; case 'mesh': warnAboutSubstitution = meshSettings.enabled; + break; default: warnAboutSubstitution = false; } diff --git a/Scripts/Wolvenkit_FileValidation.wscript b/Scripts/Wolvenkit_FileValidation.wscript index 3619488..7cd927c 100644 --- a/Scripts/Wolvenkit_FileValidation.wscript +++ b/Scripts/Wolvenkit_FileValidation.wscript @@ -162,6 +162,9 @@ function resetInternalFlagsAndCaches() { meshAppearancesNotFoundByComponent = {}; currentWarnings = {}; + + // if path to current file isn't set, get it from wkit + pushCurrentFilePath(getPathToCurrentFile()); } //#region animFile @@ -756,8 +759,11 @@ function _validateAppFile(app, validateRecursively, calledFromEntFileValidation) if (checkIfFileIsBroken(app, 'app')) { return; } - - pushCurrentFilePath(); + + if (!(app.appearances ?? []).length) { + Logger.Warning(`No appearances found in ${pathToCurrentFile}. Not validating...`); + return; + } // empty array with name collisions componentOverrideCollisions.length = 0; @@ -780,6 +786,8 @@ function _validateAppFile(app, validateRecursively, calledFromEntFileValidation) isWeaponAppFile = (!!baseEntityType && 'None' !== baseEntityType) || (!!preset && 'None' !== preset) || (!!depotPath && '0' !== depotPath); + + pushCurrentFilePath(); for (let i = 0; i < app.appearances.length; i++) { const appearance = app.appearances[i]; diff --git a/Scripts/hook_global.wscript b/Scripts/hook_global.wscript index 1e75bc3..15e50b5 100644 --- a/Scripts/hook_global.wscript +++ b/Scripts/hook_global.wscript @@ -45,8 +45,7 @@ export function RunFileValidation(ext, file) { FileValidation.validateAnimationFile(data, Settings.Anims); break; case "app": - if ((data.appearances?.length || 0) > 0) - FileValidation.validateAppFile(data, Settings.App); + FileValidation.validateAppFile(data, Settings.App); break; case "csv": FileValidation.validateCsvFile(data, Settings.Csv);