diff --git a/Engine/source/T3D/AI/AIController.h b/Engine/source/T3D/AI/AIController.h index 361e4f518..fdd9eb9df 100644 --- a/Engine/source/T3D/AI/AIController.h +++ b/Engine/source/T3D/AI/AIController.h @@ -74,7 +74,7 @@ public: { if (mCover && mCover->mPosSet && mCover->getPosition() == loc) { - mCover->mRadius == rad; + mCover->mRadius = rad; return; } delete(mCover); mCover = new AICover(this, loc, rad); @@ -83,7 +83,7 @@ public: { if (mCover && mCover->mObj == objIn) { - mCover->mRadius == rad; + mCover->mRadius = rad; return; } delete(mCover); mCover = new AICover(this, objIn, rad); diff --git a/Engine/source/T3D/SubScene.cpp b/Engine/source/T3D/SubScene.cpp index 4dca81595..798d42ace 100644 --- a/Engine/source/T3D/SubScene.cpp +++ b/Engine/source/T3D/SubScene.cpp @@ -229,12 +229,12 @@ bool SubScene::evaluateCondition() if (objectName != NULL) objectName = getIdString(); - StringTableEntry groupName = getGroup()->getName(); + StringTableEntry groupName = getGroup() ? getGroup()->getName() : NULL; if (groupName != NULL) groupName = getGroup()->getIdString(); String context = String::ToString("%s\nGroup: %s, Object: %s", getFilename(), groupName, objectName); - Con::evaluate(command.c_str(), false, context); + Con::evaluate(command.c_str(), false, context.c_str()); return Con::getBoolVariable(resVar.c_str()); } return true; diff --git a/Engine/source/T3D/missionMarker.cpp b/Engine/source/T3D/missionMarker.cpp index 9acf4c61c..a3e380951 100644 --- a/Engine/source/T3D/missionMarker.cpp +++ b/Engine/source/T3D/missionMarker.cpp @@ -372,12 +372,12 @@ bool SpawnSphere::testCondition() if (objectName != NULL) objectName = getIdString(); - StringTableEntry groupName = getGroup()->getName(); + StringTableEntry groupName = getGroup() ? getGroup()->getName() : NULL; if (groupName != NULL) groupName = getGroup()->getIdString(); String context = String::ToString("%s\nGroup: %s, Object: %s", getFilename(), groupName, objectName); - Con::evaluate(command.c_str(), false, context); + Con::evaluate(command.c_str(), false, context.c_str()); if (Con::getBoolVariable(resVar.c_str()) == 1) { return true; diff --git a/Engine/source/T3D/trigger.cpp b/Engine/source/T3D/trigger.cpp index 33075e70d..2558c45d5 100644 --- a/Engine/source/T3D/trigger.cpp +++ b/Engine/source/T3D/trigger.cpp @@ -711,12 +711,12 @@ bool Trigger::testCondition() if (objectName != NULL) objectName = getIdString(); - StringTableEntry groupName = getGroup()->getName(); + StringTableEntry groupName = getGroup() ? getGroup()->getName() : NULL; if (groupName != NULL) groupName = getGroup()->getIdString(); String context = String::ToString("%s\nGroup: %s, Object: %s", getFilename(), groupName, objectName); - Con::evaluate(command.c_str(), false, context); + Con::evaluate(command.c_str(), false, context.c_str()); if (Con::getBoolVariable(resVar.c_str()) == 1) { return true; @@ -817,7 +817,7 @@ void Trigger::processTick(const Move* move) if (objectName != NULL) objectName = getIdString(); - StringTableEntry groupName = getGroup()->getName(); + StringTableEntry groupName = getGroup() ? getGroup()->getName() : NULL; if (groupName != NULL) groupName = getGroup()->getIdString(); diff --git a/Engine/source/console/torquescript/codeBlock.cpp b/Engine/source/console/torquescript/codeBlock.cpp index d3bf6b3f5..2696ca054 100644 --- a/Engine/source/console/torquescript/codeBlock.cpp +++ b/Engine/source/console/torquescript/codeBlock.cpp @@ -611,7 +611,7 @@ Con::EvalResult CodeBlock::compileExec(StringTableEntry fileName, const char *in Script::gStatementList = NULL; // we are an eval compile if we don't have a file name associated (no exec) - gIsEvalCompile = fileName == NULL; + gIsEvalCompile = fileName == NULL || setFrame == 0; gFuncVars = gIsEvalCompile ? &gEvalFuncVars : &gGlobalScopeFuncVars; // Set up the parser. diff --git a/Engine/source/console/torquescript/runtime.cpp b/Engine/source/console/torquescript/runtime.cpp index 45c3249ee..1f0db44d3 100644 --- a/Engine/source/console/torquescript/runtime.cpp +++ b/Engine/source/console/torquescript/runtime.cpp @@ -38,8 +38,10 @@ namespace TorqueScript if (fileName) fileName = StringTable->insert(fileName); + bool fileExec = Torque::FS::IsFile(fileName); + CodeBlock* newCodeBlock = new CodeBlock(); - return (newCodeBlock->compileExec(fileName, string, false, fileName ? -1 : 0)); + return (newCodeBlock->compileExec(fileName, string, false, fileExec ? -1 : 0)); } Con::EvalResult TorqueScriptRuntime::evaluate(const char* script, S32 frame, bool echo, const char* fileName) diff --git a/Engine/source/gui/controls/guiGameListMenuCtrl.cpp b/Engine/source/gui/controls/guiGameListMenuCtrl.cpp index 2509c8cbd..6ceb1cbcd 100644 --- a/Engine/source/gui/controls/guiGameListMenuCtrl.cpp +++ b/Engine/source/gui/controls/guiGameListMenuCtrl.cpp @@ -976,7 +976,7 @@ void GuiGameListMenuCtrl::doScriptCommand(StringTableEntry command) setThisControl(); StringTableEntry objectName = getName() != StringTable->EmptyString() ? getName() : getInternalName(); String context = String::ToString("%s\nObject: %s", Platform::makeRelativePathName(getFilename(), NULL), objectName); - Con::evaluate(command, false, context); + Con::evaluate(command, false, context.c_str()); } } diff --git a/Engine/source/gui/controls/guiListBoxCtrl.cpp b/Engine/source/gui/controls/guiListBoxCtrl.cpp index 5a5a81e6a..58441dd46 100644 --- a/Engine/source/gui/controls/guiListBoxCtrl.cpp +++ b/Engine/source/gui/controls/guiListBoxCtrl.cpp @@ -1541,7 +1541,7 @@ StringTableEntry GuiListBoxCtrl::_makeMirrorItemName( SimObject *inObj ) StringTableEntry objectName = getName() != StringTable->EmptyString() ? getName() : getInternalName(); String context = String::ToString("%s, Object: %s", Platform::makeRelativePathName(getFilename(), NULL), objectName); - outName = StringTable->insert( Con::evaluate( mMakeNameCallback, false, context).value, true ); + outName = StringTable->insert( Con::evaluate( mMakeNameCallback, false, context.c_str()).value, true ); } else if ( inObj->getName() ) outName = StringTable->insert( inObj->getName() ); diff --git a/Engine/source/gui/core/guiControl.cpp b/Engine/source/gui/core/guiControl.cpp index b7b272612..bf9eec103 100644 --- a/Engine/source/gui/core/guiControl.cpp +++ b/Engine/source/gui/core/guiControl.cpp @@ -2496,14 +2496,15 @@ const char* GuiControl::evaluate( const char* str ) { smThisControl = this; StringTableEntry objectName = getName(); - if (getName() == NULL) - objectName = getInternalName(); - StringTableEntry fileName = getFilename(); - if (fileName != NULL) - fileName = Platform::makeRelativePathName(fileName, NULL); + if (objectName != NULL) + objectName = getIdString(); - String context = String::ToString("%s\nObject: %s", fileName, objectName); - const char* result = Con::evaluate(str, false, context).value; + StringTableEntry groupName = getGroup() ? getGroup()->getName() : NULL; + if (groupName != NULL) + groupName = getGroup()->getIdString(); + + String context = String::ToString("%s\nGroup: %s, Object: %s", getFilename(), groupName, objectName); + const char* result = Con::evaluate(str, false, context.c_str()).value; smThisControl = NULL; return result; diff --git a/Templates/BaseGame/game/core/rendering/shaders/gl/lighting.glsl b/Templates/BaseGame/game/core/rendering/shaders/gl/lighting.glsl index 0ebcd3794..addc16541 100644 --- a/Templates/BaseGame/game/core/rendering/shaders/gl/lighting.glsl +++ b/Templates/BaseGame/game/core/rendering/shaders/gl/lighting.glsl @@ -178,9 +178,9 @@ SurfaceToLight createSurfaceToLight(in Surface surface, in vec3 L) surfaceToLight.Lu = L; surfaceToLight.L = normalize(L); surfaceToLight.H = normalize(surface.V + surfaceToLight.L); - surfaceToLight.NdotL = saturate(dot(surfaceToLight.L, surface.N)); - surfaceToLight.HdotV = saturate(dot(surfaceToLight.H, surface.V)); - surfaceToLight.NdotH = saturate(dot(surfaceToLight.H, surface.N)); + surfaceToLight.NdotL = saturate(dot(surface.N,surfaceToLight.L)); + surfaceToLight.HdotV = saturate(dot(surfaceToLight.H,surface.V)); + surfaceToLight.NdotH = saturate(dot(surface.N,surfaceToLight.H)); return surfaceToLight; } @@ -243,12 +243,12 @@ vec3 evaluateStandardBRDF(Surface surface, SurfaceToLight surfaceToLight) float denominator = 4.0 * max(surface.NdotV, 0.0) * max(surfaceToLight.NdotL, 0.0) + 0.0001; vec3 specularBRDF = numerator / denominator; - vec3 diffuseBRDF = surface.baseColor.rgb * M_1OVER_PI_F * surface.ao; + vec3 diffuseBRDF = surface.baseColor.rgb * surface.ao * M_HALFPI_F; // Final output combining all terms vec3 kS = F; // Specular reflectance vec3 kD = (1.0 - kS) * (1.0 - surface.metalness); // Diffuse reflectance - vec3 returnBRDF = kD * (diffuseBRDF) + specularBRDF; + vec3 returnBRDF = kD * diffuseBRDF + specularBRDF; if(isCapturing == 1) return lerp(returnBRDF ,surface.albedo.rgb,surface.metalness); diff --git a/Templates/BaseGame/game/core/rendering/shaders/lighting.hlsl b/Templates/BaseGame/game/core/rendering/shaders/lighting.hlsl index a2e8d2f4e..8b544ca9c 100644 --- a/Templates/BaseGame/game/core/rendering/shaders/lighting.hlsl +++ b/Templates/BaseGame/game/core/rendering/shaders/lighting.hlsl @@ -177,9 +177,9 @@ inline SurfaceToLight createSurfaceToLight(in Surface surface, in float3 L) surfaceToLight.Lu = L; surfaceToLight.L = normalize(L); surfaceToLight.H = normalize(surface.V + surfaceToLight.L); - surfaceToLight.NdotL = saturate(dot(surfaceToLight.L, surface.N)); + surfaceToLight.NdotL = saturate(dot(surface.N, surfaceToLight.L)); surfaceToLight.HdotV = saturate(dot(surfaceToLight.H, surface.V)); - surfaceToLight.NdotH = saturate(dot(surfaceToLight.H, surface.N)); + surfaceToLight.NdotH = saturate(dot(surface.N, surfaceToLight.H)); return surfaceToLight; } @@ -243,12 +243,12 @@ float3 evaluateStandardBRDF(Surface surface, SurfaceToLight surfaceToLight) float denominator = 4.0 * max(surface.NdotV, 0.0) * max(surfaceToLight.NdotL, 0.0) + 0.0001; float3 specularBRDF = numerator / denominator; - float3 diffuseBRDF = surface.baseColor.rgb * M_1OVER_PI_F * surface.ao; + float3 diffuseBRDF = surface.baseColor.rgb * surface.ao* M_HALFPI_F; // Final output combining all terms float3 kS = F; // Specular reflectance float3 kD = (1.0 - kS) * (1.0 - surface.metalness); // Diffuse reflectance - float3 returnBRDF = kD * (diffuseBRDF) + specularBRDF; + float3 returnBRDF = kD*diffuseBRDF + specularBRDF; if(isCapturing == 1) return lerp(returnBRDF ,surface.albedo.rgb,surface.metalness); @@ -277,8 +277,8 @@ float3 getPunctualLight(Surface surface, SurfaceToLight surfaceToLight, float3 l if(isCapturing != 1) lightfloor = 0.0; - float attenuation = getDistanceAtt(surfaceToLight.Lu, radius); - + float attenuation = getDistanceAtt(surfaceToLight.Lu, radius); + // Calculate both specular and diffuse lighting in one BRDF evaluation float3 directLighting = evaluateStandardBRDF(surface, surfaceToLight); @@ -297,7 +297,7 @@ float3 getSpotlight(Surface surface, SurfaceToLight surfaceToLight, float3 light float attenuation = 1.0f; attenuation *= getDistanceAtt(surfaceToLight.Lu, radius); attenuation *= getSpotAngleAtt(-surfaceToLight.L, lightDir, lightSpotParams.xy); - + // Calculate both specular and diffuse lighting in one BRDF evaluation float3 directLighting = evaluateStandardBRDF(surface, surfaceToLight); diff --git a/Templates/BaseGame/game/tools/convexEditor/convexEditorGui.tscript b/Templates/BaseGame/game/tools/convexEditor/convexEditorGui.tscript index 72b3b13a8..ff10d5dcc 100644 --- a/Templates/BaseGame/game/tools/convexEditor/convexEditorGui.tscript +++ b/Templates/BaseGame/game/tools/convexEditor/convexEditorGui.tscript @@ -60,10 +60,10 @@ function ConvexEditorGui::onWake( %this ) %this.releaseSidePanel(); } - EWorldEditor.UseGridSnap = EditorSettings.value("WorldEditor/Tools/UseGridSnap"); - CESnapOptions-->objectGridSnapBtn.setStateOn( EWorldEditor.UseGridSnap ); - %this.setGridSnap( EWorldEditor.UseGridSnap ); - EWorldEditor.setGridSnap( EWorldEditor.UseGridSnap ); + EWorldEditor.gridSnap = EditorSettings.value("WorldEditor/Tools/gridSnap"); + CESnapOptions-->objectGridSnapBtn.setStateOn( EWorldEditor.gridSnap ); + %this.setGridSnap( EWorldEditor.gridSnap ); + EWorldEditor.setGridSnap( EWorldEditor.gridSnap ); } function ConvexEditorGui::onSleep( %this ) @@ -217,11 +217,11 @@ function ConvexEditorMaterialResetBtn::onClick(%this) function ConvexEditorGui::toggleGridSnap(%this) { - EWorldEditor.UseGridSnap = !EWorldEditor.UseGridSnap; - EditorSettings.setValue("WorldEditor/Tools/UseGridSnap", EWorldEditor.UseGridSnap ); - CESnapOptions-->objectGridSnapBtn.setStateOn( EWorldEditor.UseGridSnap ); - %this.setGridSnap( EWorldEditor.UseGridSnap ); - EWorldEditor.setGridSnap( EWorldEditor.UseGridSnap ); + EWorldEditor.gridSnap = !EWorldEditor.gridSnap; + EditorSettings.setValue("WorldEditor/Tools/gridSnap", EWorldEditor.gridSnap ); + CESnapOptions-->objectGridSnapBtn.setStateOn( EWorldEditor.gridSnap ); + %this.setGridSnap( EWorldEditor.gridSnap ); + EWorldEditor.setGridSnap( EWorldEditor.gridSnap ); } diff --git a/Templates/BaseGame/game/tools/convexEditor/main.tscript b/Templates/BaseGame/game/tools/convexEditor/main.tscript index f81ef26cc..92e4770da 100644 --- a/Templates/BaseGame/game/tools/convexEditor/main.tscript +++ b/Templates/BaseGame/game/tools/convexEditor/main.tscript @@ -130,9 +130,9 @@ function ConvexEditorPlugin::onActivated( %this ) ConvexEditorScaleModeBtn.performClick(); } - EWorldEditor.UseGridSnap = EditorSettings.value("WorldEditor/Tools/UseGridSnap"); - CESnapOptions-->objectGridSnapBtn.setStateOn( EWorldEditor.UseGridSnap ); - %this.setGridSnap( EWorldEditor.UseGridSnap ); + EWorldEditor.gridSnap = EditorSettings.value("WorldEditor/Tools/gridSnap"); + CESnapOptions-->objectGridSnapBtn.setStateOn( EWorldEditor.gridSnap ); + %this.setGridSnap( EWorldEditor.gridSnap ); Parent::onActivated( %this ); EditorGui.SetStandardPalletBar(); diff --git a/Templates/BaseGame/game/tools/worldEditor/scripts/EditorGui.ed.tscript b/Templates/BaseGame/game/tools/worldEditor/scripts/EditorGui.ed.tscript index 8b6562f77..9dcd083da 100644 --- a/Templates/BaseGame/game/tools/worldEditor/scripts/EditorGui.ed.tscript +++ b/Templates/BaseGame/game/tools/worldEditor/scripts/EditorGui.ed.tscript @@ -1051,9 +1051,9 @@ function WorldEditorPlugin::onActivated( %this ) ETransformSelection.setVisible(true); } - EWorldEditor.UseGridSnap = EditorSettings.value("WorldEditor/Tools/UseGridSnap"); - ESnapOptions-->GridSnapButton.setStateOn( EWorldEditor.UseGridSnap ); - SnapToBar-->objectGridSnapBtn.setStateOn( EWorldEditor.UseGridSnap ); + EWorldEditor.gridSnap = EditorSettings.value("WorldEditor/Tools/gridSnap"); + ESnapOptions-->GridSnapButton.setStateOn( EWorldEditor.gridSnap ); + SnapToBar-->objectGridSnapBtn.setStateOn( EWorldEditor.gridSnap ); Parent::onActivated(%this); @@ -2615,8 +2615,8 @@ function EWorldEditor::syncGui( %this ) ESnapOptions-->SnapSize.setText( EWorldEditor.getSoftSnapSize() ); ESnapOptions-->GridSize.setText( EWorldEditor.getGridSize() ); - %this.UseGridSnap = EditorSettings.value("WorldEditor/Tools/UseGridSnap"); - ESnapOptions-->GridSnapButton.setStateOn( %this.UseGridSnap ); + %this.gridSnap = EditorSettings.value("WorldEditor/Tools/gridSnap"); + ESnapOptions-->GridSnapButton.setStateOn( %this.gridSnap ); %this.UseGroupCenter = EditorSettings.value("WorldEditor/Tools/UseGroupCenter"); @@ -2961,9 +2961,9 @@ function toggleSnappingOptions( %var ) } else if( %var $= "grid" ) { - EWorldEditor.UseGridSnap = !EWorldEditor.UseGridSnap; - EditorSettings.setValue("WorldEditor/Tools/UseGridSnap", EWorldEditor.UseGridSnap ); - EWorldEditor.setGridSnap( EWorldEditor.UseGridSnap ); + EWorldEditor.gridSnap = !EWorldEditor.gridSnap; + EditorSettings.setValue("WorldEditor/Tools/gridSnap", EWorldEditor.gridSnap ); + EWorldEditor.setGridSnap( EWorldEditor.gridSnap ); } else if( %var $= "byGroup" ) {