Merge remote-tracking branch 'upstream/development' into development

This commit is contained in:
marauder2k7 2026-03-06 07:00:24 +00:00
commit d76b8bd5b0
14 changed files with 55 additions and 52 deletions

View file

@ -74,7 +74,7 @@ public:
{ {
if (mCover && mCover->mPosSet && mCover->getPosition() == loc) if (mCover && mCover->mPosSet && mCover->getPosition() == loc)
{ {
mCover->mRadius == rad; mCover->mRadius = rad;
return; return;
} }
delete(mCover); mCover = new AICover(this, loc, rad); delete(mCover); mCover = new AICover(this, loc, rad);
@ -83,7 +83,7 @@ public:
{ {
if (mCover && mCover->mObj == objIn) if (mCover && mCover->mObj == objIn)
{ {
mCover->mRadius == rad; mCover->mRadius = rad;
return; return;
} }
delete(mCover); mCover = new AICover(this, objIn, rad); delete(mCover); mCover = new AICover(this, objIn, rad);

View file

@ -229,12 +229,12 @@ bool SubScene::evaluateCondition()
if (objectName != NULL) if (objectName != NULL)
objectName = getIdString(); objectName = getIdString();
StringTableEntry groupName = getGroup()->getName(); StringTableEntry groupName = getGroup() ? getGroup()->getName() : NULL;
if (groupName != NULL) if (groupName != NULL)
groupName = getGroup()->getIdString(); groupName = getGroup()->getIdString();
String context = String::ToString("%s\nGroup: %s, Object: %s", getFilename(), groupName, objectName); 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 Con::getBoolVariable(resVar.c_str());
} }
return true; return true;

View file

@ -372,12 +372,12 @@ bool SpawnSphere::testCondition()
if (objectName != NULL) if (objectName != NULL)
objectName = getIdString(); objectName = getIdString();
StringTableEntry groupName = getGroup()->getName(); StringTableEntry groupName = getGroup() ? getGroup()->getName() : NULL;
if (groupName != NULL) if (groupName != NULL)
groupName = getGroup()->getIdString(); groupName = getGroup()->getIdString();
String context = String::ToString("%s\nGroup: %s, Object: %s", getFilename(), groupName, objectName); 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) if (Con::getBoolVariable(resVar.c_str()) == 1)
{ {
return true; return true;

View file

@ -711,12 +711,12 @@ bool Trigger::testCondition()
if (objectName != NULL) if (objectName != NULL)
objectName = getIdString(); objectName = getIdString();
StringTableEntry groupName = getGroup()->getName(); StringTableEntry groupName = getGroup() ? getGroup()->getName() : NULL;
if (groupName != NULL) if (groupName != NULL)
groupName = getGroup()->getIdString(); groupName = getGroup()->getIdString();
String context = String::ToString("%s\nGroup: %s, Object: %s", getFilename(), groupName, objectName); 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) if (Con::getBoolVariable(resVar.c_str()) == 1)
{ {
return true; return true;
@ -817,7 +817,7 @@ void Trigger::processTick(const Move* move)
if (objectName != NULL) if (objectName != NULL)
objectName = getIdString(); objectName = getIdString();
StringTableEntry groupName = getGroup()->getName(); StringTableEntry groupName = getGroup() ? getGroup()->getName() : NULL;
if (groupName != NULL) if (groupName != NULL)
groupName = getGroup()->getIdString(); groupName = getGroup()->getIdString();

View file

@ -611,7 +611,7 @@ Con::EvalResult CodeBlock::compileExec(StringTableEntry fileName, const char *in
Script::gStatementList = NULL; Script::gStatementList = NULL;
// we are an eval compile if we don't have a file name associated (no exec) // 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; gFuncVars = gIsEvalCompile ? &gEvalFuncVars : &gGlobalScopeFuncVars;
// Set up the parser. // Set up the parser.

View file

@ -38,8 +38,10 @@ namespace TorqueScript
if (fileName) if (fileName)
fileName = StringTable->insert(fileName); fileName = StringTable->insert(fileName);
bool fileExec = Torque::FS::IsFile(fileName);
CodeBlock* newCodeBlock = new CodeBlock(); 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) Con::EvalResult TorqueScriptRuntime::evaluate(const char* script, S32 frame, bool echo, const char* fileName)

View file

@ -976,7 +976,7 @@ void GuiGameListMenuCtrl::doScriptCommand(StringTableEntry command)
setThisControl(); setThisControl();
StringTableEntry objectName = getName() != StringTable->EmptyString() ? getName() : getInternalName(); StringTableEntry objectName = getName() != StringTable->EmptyString() ? getName() : getInternalName();
String context = String::ToString("%s\nObject: %s", Platform::makeRelativePathName(getFilename(), NULL), objectName); String context = String::ToString("%s\nObject: %s", Platform::makeRelativePathName(getFilename(), NULL), objectName);
Con::evaluate(command, false, context); Con::evaluate(command, false, context.c_str());
} }
} }

View file

@ -1541,7 +1541,7 @@ StringTableEntry GuiListBoxCtrl::_makeMirrorItemName( SimObject *inObj )
StringTableEntry objectName = getName() != StringTable->EmptyString() ? getName() : getInternalName(); StringTableEntry objectName = getName() != StringTable->EmptyString() ? getName() : getInternalName();
String context = String::ToString("%s, Object: %s", Platform::makeRelativePathName(getFilename(), NULL), objectName); 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() ) else if ( inObj->getName() )
outName = StringTable->insert( inObj->getName() ); outName = StringTable->insert( inObj->getName() );

View file

@ -2496,14 +2496,15 @@ const char* GuiControl::evaluate( const char* str )
{ {
smThisControl = this; smThisControl = this;
StringTableEntry objectName = getName(); StringTableEntry objectName = getName();
if (getName() == NULL) if (objectName != NULL)
objectName = getInternalName(); objectName = getIdString();
StringTableEntry fileName = getFilename();
if (fileName != NULL)
fileName = Platform::makeRelativePathName(fileName, NULL);
String context = String::ToString("%s\nObject: %s", fileName, objectName); StringTableEntry groupName = getGroup() ? getGroup()->getName() : NULL;
const char* result = Con::evaluate(str, false, context).value; 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; smThisControl = NULL;
return result; return result;

View file

@ -178,9 +178,9 @@ SurfaceToLight createSurfaceToLight(in Surface surface, in vec3 L)
surfaceToLight.Lu = L; surfaceToLight.Lu = L;
surfaceToLight.L = normalize(L); surfaceToLight.L = normalize(L);
surfaceToLight.H = normalize(surface.V + surfaceToLight.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.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; 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; float denominator = 4.0 * max(surface.NdotV, 0.0) * max(surfaceToLight.NdotL, 0.0) + 0.0001;
vec3 specularBRDF = numerator / denominator; 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 // Final output combining all terms
vec3 kS = F; // Specular reflectance vec3 kS = F; // Specular reflectance
vec3 kD = (1.0 - kS) * (1.0 - surface.metalness); // Diffuse 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) if(isCapturing == 1)
return lerp(returnBRDF ,surface.albedo.rgb,surface.metalness); return lerp(returnBRDF ,surface.albedo.rgb,surface.metalness);

View file

@ -177,9 +177,9 @@ inline SurfaceToLight createSurfaceToLight(in Surface surface, in float3 L)
surfaceToLight.Lu = L; surfaceToLight.Lu = L;
surfaceToLight.L = normalize(L); surfaceToLight.L = normalize(L);
surfaceToLight.H = normalize(surface.V + surfaceToLight.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.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; 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; float denominator = 4.0 * max(surface.NdotV, 0.0) * max(surfaceToLight.NdotL, 0.0) + 0.0001;
float3 specularBRDF = numerator / denominator; 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 // Final output combining all terms
float3 kS = F; // Specular reflectance float3 kS = F; // Specular reflectance
float3 kD = (1.0 - kS) * (1.0 - surface.metalness); // Diffuse 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) if(isCapturing == 1)
return lerp(returnBRDF ,surface.albedo.rgb,surface.metalness); return lerp(returnBRDF ,surface.albedo.rgb,surface.metalness);
@ -277,8 +277,8 @@ float3 getPunctualLight(Surface surface, SurfaceToLight surfaceToLight, float3 l
if(isCapturing != 1) if(isCapturing != 1)
lightfloor = 0.0; 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 // Calculate both specular and diffuse lighting in one BRDF evaluation
float3 directLighting = evaluateStandardBRDF(surface, surfaceToLight); float3 directLighting = evaluateStandardBRDF(surface, surfaceToLight);
@ -297,7 +297,7 @@ float3 getSpotlight(Surface surface, SurfaceToLight surfaceToLight, float3 light
float attenuation = 1.0f; float attenuation = 1.0f;
attenuation *= getDistanceAtt(surfaceToLight.Lu, radius); attenuation *= getDistanceAtt(surfaceToLight.Lu, radius);
attenuation *= getSpotAngleAtt(-surfaceToLight.L, lightDir, lightSpotParams.xy); attenuation *= getSpotAngleAtt(-surfaceToLight.L, lightDir, lightSpotParams.xy);
// Calculate both specular and diffuse lighting in one BRDF evaluation // Calculate both specular and diffuse lighting in one BRDF evaluation
float3 directLighting = evaluateStandardBRDF(surface, surfaceToLight); float3 directLighting = evaluateStandardBRDF(surface, surfaceToLight);

View file

@ -60,10 +60,10 @@ function ConvexEditorGui::onWake( %this )
%this.releaseSidePanel(); %this.releaseSidePanel();
} }
EWorldEditor.UseGridSnap = EditorSettings.value("WorldEditor/Tools/UseGridSnap"); EWorldEditor.gridSnap = EditorSettings.value("WorldEditor/Tools/gridSnap");
CESnapOptions-->objectGridSnapBtn.setStateOn( EWorldEditor.UseGridSnap ); CESnapOptions-->objectGridSnapBtn.setStateOn( EWorldEditor.gridSnap );
%this.setGridSnap( EWorldEditor.UseGridSnap ); %this.setGridSnap( EWorldEditor.gridSnap );
EWorldEditor.setGridSnap( EWorldEditor.UseGridSnap ); EWorldEditor.setGridSnap( EWorldEditor.gridSnap );
} }
function ConvexEditorGui::onSleep( %this ) function ConvexEditorGui::onSleep( %this )
@ -217,11 +217,11 @@ function ConvexEditorMaterialResetBtn::onClick(%this)
function ConvexEditorGui::toggleGridSnap(%this) function ConvexEditorGui::toggleGridSnap(%this)
{ {
EWorldEditor.UseGridSnap = !EWorldEditor.UseGridSnap; EWorldEditor.gridSnap = !EWorldEditor.gridSnap;
EditorSettings.setValue("WorldEditor/Tools/UseGridSnap", EWorldEditor.UseGridSnap ); EditorSettings.setValue("WorldEditor/Tools/gridSnap", EWorldEditor.gridSnap );
CESnapOptions-->objectGridSnapBtn.setStateOn( EWorldEditor.UseGridSnap ); CESnapOptions-->objectGridSnapBtn.setStateOn( EWorldEditor.gridSnap );
%this.setGridSnap( EWorldEditor.UseGridSnap ); %this.setGridSnap( EWorldEditor.gridSnap );
EWorldEditor.setGridSnap( EWorldEditor.UseGridSnap ); EWorldEditor.setGridSnap( EWorldEditor.gridSnap );
} }

View file

@ -130,9 +130,9 @@ function ConvexEditorPlugin::onActivated( %this )
ConvexEditorScaleModeBtn.performClick(); ConvexEditorScaleModeBtn.performClick();
} }
EWorldEditor.UseGridSnap = EditorSettings.value("WorldEditor/Tools/UseGridSnap"); EWorldEditor.gridSnap = EditorSettings.value("WorldEditor/Tools/gridSnap");
CESnapOptions-->objectGridSnapBtn.setStateOn( EWorldEditor.UseGridSnap ); CESnapOptions-->objectGridSnapBtn.setStateOn( EWorldEditor.gridSnap );
%this.setGridSnap( EWorldEditor.UseGridSnap ); %this.setGridSnap( EWorldEditor.gridSnap );
Parent::onActivated( %this ); Parent::onActivated( %this );
EditorGui.SetStandardPalletBar(); EditorGui.SetStandardPalletBar();

View file

@ -1051,9 +1051,9 @@ function WorldEditorPlugin::onActivated( %this )
ETransformSelection.setVisible(true); ETransformSelection.setVisible(true);
} }
EWorldEditor.UseGridSnap = EditorSettings.value("WorldEditor/Tools/UseGridSnap"); EWorldEditor.gridSnap = EditorSettings.value("WorldEditor/Tools/gridSnap");
ESnapOptions-->GridSnapButton.setStateOn( EWorldEditor.UseGridSnap ); ESnapOptions-->GridSnapButton.setStateOn( EWorldEditor.gridSnap );
SnapToBar-->objectGridSnapBtn.setStateOn( EWorldEditor.UseGridSnap ); SnapToBar-->objectGridSnapBtn.setStateOn( EWorldEditor.gridSnap );
Parent::onActivated(%this); Parent::onActivated(%this);
@ -2615,8 +2615,8 @@ function EWorldEditor::syncGui( %this )
ESnapOptions-->SnapSize.setText( EWorldEditor.getSoftSnapSize() ); ESnapOptions-->SnapSize.setText( EWorldEditor.getSoftSnapSize() );
ESnapOptions-->GridSize.setText( EWorldEditor.getGridSize() ); ESnapOptions-->GridSize.setText( EWorldEditor.getGridSize() );
%this.UseGridSnap = EditorSettings.value("WorldEditor/Tools/UseGridSnap"); %this.gridSnap = EditorSettings.value("WorldEditor/Tools/gridSnap");
ESnapOptions-->GridSnapButton.setStateOn( %this.UseGridSnap ); ESnapOptions-->GridSnapButton.setStateOn( %this.gridSnap );
%this.UseGroupCenter = EditorSettings.value("WorldEditor/Tools/UseGroupCenter"); %this.UseGroupCenter = EditorSettings.value("WorldEditor/Tools/UseGroupCenter");
@ -2961,9 +2961,9 @@ function toggleSnappingOptions( %var )
} }
else if( %var $= "grid" ) else if( %var $= "grid" )
{ {
EWorldEditor.UseGridSnap = !EWorldEditor.UseGridSnap; EWorldEditor.gridSnap = !EWorldEditor.gridSnap;
EditorSettings.setValue("WorldEditor/Tools/UseGridSnap", EWorldEditor.UseGridSnap ); EditorSettings.setValue("WorldEditor/Tools/gridSnap", EWorldEditor.gridSnap );
EWorldEditor.setGridSnap( EWorldEditor.UseGridSnap ); EWorldEditor.setGridSnap( EWorldEditor.gridSnap );
} }
else if( %var $= "byGroup" ) else if( %var $= "byGroup" )
{ {