From bae6a3f514cecf2f2e425b920fb2e409e9d83e02 Mon Sep 17 00:00:00 2001 From: JeffR Date: Thu, 31 Mar 2022 18:58:06 -0500 Subject: [PATCH] Fixes assignment of the mapTo field for terrain FX materials to point to the assetId rather than just the assetName, fixing the material mapping lookups Fixes project import to comply to above change Makes Material default mEffectColor to white instead of whatever default value it comes up with due to memset --- Engine/source/materials/materialDefinition.cpp | 3 +++ .../assetBrowser/scripts/assetTypes/terrainMaterial.tscript | 2 +- .../importers/pre40/T3Dpre4ProjectImporter.tscript | 6 +++--- .../scripts/interfaces/terrainMaterialDlg.ed.tscript | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Engine/source/materials/materialDefinition.cpp b/Engine/source/materials/materialDefinition.cpp index 7b3d2c7de..4204dfe63 100644 --- a/Engine/source/materials/materialDefinition.cpp +++ b/Engine/source/materials/materialDefinition.cpp @@ -229,6 +229,9 @@ Material::Material() dMemset(mEffectColor, 0, sizeof(mEffectColor)); + mEffectColor[0] = LinearColorF::WHITE; + mEffectColor[1] = LinearColorF::WHITE; + mFootstepSoundId = -1; mImpactSoundId = -1; mImpactFXIndex = -1; INIT_ASSET(CustomFootstepSound); diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/terrainMaterial.tscript b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/terrainMaterial.tscript index c9c9ba83d..8df0a1fa3 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/terrainMaterial.tscript +++ b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/terrainMaterial.tscript @@ -32,7 +32,7 @@ function AssetBrowser::createTerrainMaterialAsset(%this) %fxMatDef = new Material("TerrainFX_" @ %assetName) { - mapTo = %assetName; + mapTo = %moduleName @ ":" @ %assetName; footstepSoundId = 0; terrainMaterials = "1"; ShowDust = "1"; diff --git a/Templates/BaseGame/game/tools/projectImporter/importers/pre40/T3Dpre4ProjectImporter.tscript b/Templates/BaseGame/game/tools/projectImporter/importers/pre40/T3Dpre4ProjectImporter.tscript index 7c50130b2..798d2be01 100644 --- a/Templates/BaseGame/game/tools/projectImporter/importers/pre40/T3Dpre4ProjectImporter.tscript +++ b/Templates/BaseGame/game/tools/projectImporter/importers/pre40/T3Dpre4ProjectImporter.tscript @@ -1203,7 +1203,7 @@ function T3Dpre4ProjectImporter::processTerrainMaterialObject(%this, %fileObject { %fxMatObj = getField(%fxMatList, %i); %fxMatObjMapTo = findObjectField(%fxMatObj, "mapTo"); - if(%fxMatObjMapTo $= %objectName) + if(%fxMatObjMapTo $= %objectName || %fxMatObjMapTo $= %assetName) { %fileObject.FXMaterial = %fxMatObj; break; @@ -1215,7 +1215,7 @@ function T3Dpre4ProjectImporter::processTerrainMaterialObject(%this, %fileObject if(%fileObject.FXMaterial !$= "") { //Ensure our mapto is up to date for any name sanitize/tweaks - setObjectField(%fileObject.FXMaterial, "mapTo", %objectName); + setObjectField(%fileObject.FXMaterial, "mapTo", %moduleName @ ":" @ %assetName); //we associated to an FX material, so process that now %objectDefinition = ""; @@ -1249,7 +1249,7 @@ function T3Dpre4ProjectImporter::processTerrainMaterialObject(%this, %fileObject //if after all that we still have no FXMaterial, just create a new one %fxMat = new Material("TerrainFX_" @ %objectName) { - mapTo = %objectName; + mapTo = %moduleName @ ":" @ %assetName; }; %asset.add(%fxMat); } diff --git a/Templates/BaseGame/game/tools/worldEditor/scripts/interfaces/terrainMaterialDlg.ed.tscript b/Templates/BaseGame/game/tools/worldEditor/scripts/interfaces/terrainMaterialDlg.ed.tscript index e5fd3d27a..1eb7af85d 100644 --- a/Templates/BaseGame/game/tools/worldEditor/scripts/interfaces/terrainMaterialDlg.ed.tscript +++ b/Templates/BaseGame/game/tools/worldEditor/scripts/interfaces/terrainMaterialDlg.ed.tscript @@ -603,7 +603,7 @@ function TerrainMaterialDlg::prepSaveDirtyMaterial(%this, %material) if(!isObject(%fxMat)) { %fxMat = new Material("TerrainFX_" @ %assetDef.assetName){ - mapTo = %assetDef.assetName; + mapTo = %material.internalName; }; %assetDef.add(%fxMat);