From 0dddeeb6dde9a00f336fc1ddd7dd184a7f866424 Mon Sep 17 00:00:00 2001 From: Areloch Date: Mon, 9 Aug 2021 18:55:05 -0500 Subject: [PATCH] Corrects preload logic for projectiles to only fail if shape is specified, but failed to load Corrects logic in Project Importer for if cubemapData is defined in material scripts, it can process them correctly. --- Engine/source/T3D/projectile.cpp | 24 +++++++++++-------- .../pre40/T3Dpre4ProjectImporter.tscript | 4 ++-- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/Engine/source/T3D/projectile.cpp b/Engine/source/T3D/projectile.cpp index 0ce7df412..739daf4a5 100644 --- a/Engine/source/T3D/projectile.cpp +++ b/Engine/source/T3D/projectile.cpp @@ -377,18 +377,22 @@ bool ProjectileData::preload(bool server, String &errorStr) Con::errorf(ConsoleLogEntry::General, "ProjectileData::preload: Invalid packet, bad datablockid(lightDesc): %d", lightDescId); } - if (!mProjectileShape) + if (mProjectileShapeAssetId != StringTable->EmptyString()) { - errorStr = String::ToString("ProjectileData::load: Couldn't load shape \"%s\"", mProjectileShapeAssetId); - return false; - } - else - { - activateSeq = mProjectileShape->findSequence("activate"); - maintainSeq = mProjectileShape->findSequence("maintain"); + //If we've got a shapeAsset assigned for our projectile, but we failed to load the shape data itself, report the error + if (!mProjectileShape) + { + errorStr = String::ToString("ProjectileData::load: Couldn't load shape \"%s\"", mProjectileShapeAssetId); + return false; + } + else + { + activateSeq = mProjectileShape->findSequence("activate"); + maintainSeq = mProjectileShape->findSequence("maintain"); - TSShapeInstance* pDummy = new TSShapeInstance(mProjectileShape, !server); - delete pDummy; + TSShapeInstance* pDummy = new TSShapeInstance(mProjectileShape, !server); + delete pDummy; + } } return true; diff --git a/Templates/BaseGame/game/tools/projectImporter/scripts/pre40/T3Dpre4ProjectImporter.tscript b/Templates/BaseGame/game/tools/projectImporter/scripts/pre40/T3Dpre4ProjectImporter.tscript index 83a3d8f77..4f795bee3 100644 --- a/Templates/BaseGame/game/tools/projectImporter/scripts/pre40/T3Dpre4ProjectImporter.tscript +++ b/Templates/BaseGame/game/tools/projectImporter/scripts/pre40/T3Dpre4ProjectImporter.tscript @@ -218,7 +218,7 @@ function T3Dpre4ProjectImporter::beginMaterialFilesImport(%this) { %className = findObjectClass(%line, "new"); - if(%className !$= "Material" && %className !$= "CustomMaterial" && %className !$= "TerrainMaterial") + if(%className !$= "Material" && %className !$= "CustomMaterial" && %className !$= "TerrainMaterial" && %className !$= "CubemapData") { %lineNum++; %fileOutputLines.push_back(%line); @@ -267,7 +267,7 @@ function T3Dpre4ProjectImporter::beginMaterialFilesImport(%this) { %className = findObjectClass(%line, "singleton"); - if(%className !$= "Material" && %className !$= "CustomMaterial" && %className !$= "TerrainMaterial") + if(%className !$= "Material" && %className !$= "CustomMaterial" && %className !$= "TerrainMaterial" && %className !$= "CubemapData") { %lineNum++; %fileOutputLines.push_back(%line);