summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xConfig.cs3
-rwxr-xr-xPlugin.cs60
2 files changed, 31 insertions, 32 deletions
diff --git a/Config.cs b/Config.cs
index f928afd..2e43817 100755
--- a/Config.cs
+++ b/Config.cs
@@ -6,7 +6,7 @@ namespace WorldTuningTool
internal class Config : IConfig
{
public String Name => "WorldTuningTool";
- public String Version => "1.0";
+ public String Version => "0.9";
public static string StageToString(Stage stage)
{
@@ -88,7 +88,6 @@ namespace WorldTuningTool
public struct PatchConfig
{
- public int ShadowResolutionMultiplier { get; set; } = 1;
public bool FullResolutionVolumeBlur { get; set; } = false;
public bool HigherThanHighestVolumeRendering { get; set; } = false;
public bool DisableLODLimits { get; set; } = false;
diff --git a/Plugin.cs b/Plugin.cs
index b01b705..3ae2818 100755
--- a/Plugin.cs
+++ b/Plugin.cs
@@ -563,6 +563,8 @@ namespace WorldTuningTool
{
bool valueChanged = false;
string label = drawLabel ? Name : hiddenName;
+ float displayMinf = ignoreMinMax ? 0.0f : minf;
+ float displayMaxf = ignoreMinMax ? 0.0f : maxf;
switch (Type)
{
case ParameterType.BOOL:
@@ -618,7 +620,7 @@ namespace WorldTuningTool
{
ImGui.SetNextItemWidth(width * defaultParamWidth);
float f1 = v4.X;
- if (ImGui.DragFloat(label, ref f1, stepf, 0.0f, 0.0f, "%.6f", ImGuiSliderFlags.NoRoundToFormat))
+ if (ImGui.DragFloat(label, ref f1, stepf, displayMinf, displayMaxf, "%.6f", ImGuiSliderFlags.NoRoundToFormat))
{
v4 = new Vector4(f1, 0.0f, 0.0f, 0.0f);
valueChanged = true;
@@ -629,7 +631,7 @@ namespace WorldTuningTool
{
ImGui.SetNextItemWidth(width * defaultParamWidth * 3.0f);
Vector3 v3 = new Vector3(v4.X, v4.Y, v4.Z);
- if (ImGui.DragFloat3(label, ref v3, stepf, 0.0f, 0.0f, "%.4f", ImGuiSliderFlags.NoRoundToFormat))
+ if (ImGui.DragFloat3(label, ref v3, stepf, displayMinf, displayMaxf, "%.5f", ImGuiSliderFlags.NoRoundToFormat))
{
v4 = new Vector4(v3.X, v3.Y, v3.Z, 0.0f);
valueChanged = true;
@@ -639,7 +641,7 @@ namespace WorldTuningTool
case ParameterType.VECTOR4:
{
ImGui.SetNextItemWidth(width * defaultParamWidth * 4.0f);
- if (ImGui.DragFloat4(label, ref v4, stepf, 0.0f, 0.0f, "%.4f", ImGuiSliderFlags.NoRoundToFormat))
+ if (ImGui.DragFloat4(label, ref v4, stepf, displayMinf, displayMaxf, "%.5f", ImGuiSliderFlags.NoRoundToFormat))
{
valueChanged = true;
}
@@ -689,30 +691,23 @@ namespace WorldTuningTool
ImGui.Text($"({name}: {i1 != 0})");
break;
case ParameterType.BYTE:
+ case ParameterType.INT:
+ case ParameterType.SHADOW_RESOLUTION:
ImGui.Text($"({name}: {i1})");
break;
- case ParameterType.INT:
case ParameterType.HEX:
case ParameterType.COLOR:
- case ParameterType.SHADOW_RESOLUTION:
- if (Type == ParameterType.INT)
- {
- ImGui.Text($"({name}: {i1})");
- }
- else
- {
- ImGui.Text($"({name}: {i1:X})");
- }
+ ImGui.Text($"({name}: {i1:X})");
break;
case ParameterType.FLOAT:
case ParameterType.PATCH_FLOAT:
- ImGui.Text($"({name}: {v4.X:0.00000})");
+ ImGui.Text($"({name}: {v4.X:0.000000})");
break;
case ParameterType.VECTOR3:
- ImGui.Text($"({name}: {v4.X:0.0000}, {v4.Y:0.0000}, {v4.Z:0.0000})");
+ ImGui.Text($"({name}: {v4.X:0.00000}, {v4.Y:0.00000}, {v4.Z:0.00000})");
break;
case ParameterType.VECTOR4:
- ImGui.Text($"({name}: {v4.X:0.0000}, {v4.Y:0.0000}, {v4.Z:0.0000}, {v4.W:0.00000})");
+ ImGui.Text($"({name}: {v4.X:0.00000}, {v4.Y:0.00000}, {v4.Z:0.00000}, {v4.W:0.00000})");
break;
}
ImGui.PopStyleVar();
@@ -1177,6 +1172,7 @@ namespace WorldTuningTool
}
(Vector4 v4, int i1) = Param.GetValue();
bool valueDiffers = (v4, i1) != (valueV, valueInt);
+ // @TODO: Not sValue and valueDiffers should be seperated/more clear.
if ((valueV, valueInt) != (sValueV, sValueInt) || (isSet && valueDiffers && !Param.PendingUpdate()))
{
ImGui.SameLine();
@@ -1229,19 +1225,19 @@ namespace WorldTuningTool
private static Parameter hqMode = newParameter<bool>("HQ Mode", 0xE9A3, ParameterType.BOOL);
private static Parameter[] lodParameters = {
- newParameter<float>("LOD Bias 1", 0x21C, ParameterType.FLOAT),
- newParameter<float>("LOD Bias 2", 0x220, ParameterType.FLOAT),
- newParameter<float>("LOD Caster Bias", 0x1E4, ParameterType.FLOAT),
+ newParameter<float>("LOD Bias 1", 0x21C, ParameterType.FLOAT, pMin(0.0f)),
+ newParameter<float>("LOD Bias 2", 0x220, ParameterType.FLOAT, pMin(0.0f)),
+ newParameter<float>("LOD Caster Bias", 0x1E4, ParameterType.FLOAT, pMin(0.0f)),
// If platform is PS4/Xbox/PC it appears [2] is PC.
- newParameter<float>("LOD Length Platform Bias[2]", 0x22C + (4 * 2), ParameterType.FLOAT),
- newParameter<float>("LOD Pixel Size Platform Bias[2]", 0x244 + (4 * 2), ParameterType.FLOAT),
+ newParameter<float>("LOD Length Platform Bias[2]", 0x22C + (4 * 2), ParameterType.FLOAT, pMin(0.0f)),
+ newParameter<float>("LOD Pixel Size Platform Bias[2]", 0x244 + (4 * 2), ParameterType.FLOAT, pMin(0.0f)),
newParameter<int>("LOD Limit", 0xE898, ParameterType.INT, pStep(1)),
- newParameter<float>("LOD Passthrough Culling Rate", 0x1F0, ParameterType.FLOAT),
- newParameter<float>("LOD Far Culling Fade Length Max", 0x20C, ParameterType.FLOAT),
- newParameter<float>("LOD Far Culling Fade Pixel Max", 0x210, ParameterType.FLOAT),
- newParameter<float>("Speed Tree LOD Billboard Fade Range", 0x214, ParameterType.FLOAT),
- newParameter<float>("LOD Culling Length Bias", 0x224, ParameterType.FLOAT),
- newParameter<float>("LOD Culling Pixel Bias", 0x228, ParameterType.FLOAT)
+ newParameter<float>("LOD Passthrough Culling Rate", 0x1F0, ParameterType.FLOAT, pMin(0.0f)),
+ newParameter<float>("LOD Far Culling Fade Length Max", 0x20C, ParameterType.FLOAT, pMin(0.0f)),
+ newParameter<float>("LOD Far Culling Fade Pixel Max", 0x210, ParameterType.FLOAT, pMin(0.0f)),
+ newParameter<float>("Speed Tree LOD Billboard Fade Range", 0x214, ParameterType.FLOAT, pMin(0.0f)),
+ newParameter<float>("LOD Culling Length Bias", 0x224, ParameterType.FLOAT, pMin(0.0f)),
+ newParameter<float>("LOD Culling Pixel Bias", 0x228, ParameterType.FLOAT, pMin(0.0f))
};
private static Parameter[] snowParameters = {
@@ -1355,11 +1351,11 @@ namespace WorldTuningTool
private static Parameter[] shadowParameters2 = {
newFrameParameter<int>("Sunlight Group", 0x14, ParameterType.INT, pMinMaxStep(1, 255, 1)),
newFrameParameter<float>("Sunlight Direction", 0x110, ParameterType.VECTOR3, pStep(0.00025f)),
- newFrameParameter<float>("Sunlight Color", 0xE0, ParameterType.FLOAT),
+ newFrameParameter<float>("Sunlight Color", 0xE0, ParameterType.FLOAT, pStep(0.001f)),
newFrameParameter<float>("Sunlight Intensity", 0xF4, ParameterType.FLOAT),
newParameter<float>("Sunlight Min Roughness", 0x58C, ParameterType.FLOAT, pStep(0.0025f)), // +0xFC in params but is never read.
- newFrameParameter<bool>("Sunlight Do Volumetric", 0x1F, ParameterType.BOOL),
newFrameParameter<bool>("Sunlight Is Primary", 0x1D, ParameterType.BOOL),
+ newFrameParameter<bool>("Do Volumetric", 0x1F, ParameterType.BOOL),
newFrameParameter<bool>("Shadow Cast", 0x23, ParameterType.BOOL),
newFrameParameter<int>("Shadow Map Size", 0x30, ParameterType.INT), // Aligned to 128.
newFrameParameter<float>("Shadow Near Clip Distance", 0x28, ParameterType.FLOAT),
@@ -1704,7 +1700,7 @@ namespace WorldTuningTool
newFrameParameter<float>("Intensity", 0x8A8, ParameterType.FLOAT),
newFrameParameter<float>("Radius", 0x6A0, ParameterType.FLOAT, pStep(0.25f)),
newFrameParameter<float>("Effective Radius", 0x588, ParameterType.FLOAT, pStep(0.25f)),
- newFrameParameter<float>("Min Roughness", 0x58C, ParameterType.FLOAT),
+ newFrameParameter<float>("Min Roughness", 0x58C, ParameterType.FLOAT, pStep(0.0025f)),
newParameter<bool>("Do Volumetric", 0x590, ParameterType.BOOL),
newFlag<bool>("Shadow Cast", 0x138, ParameterType.FLAG, (1 << 23)),
newParameter<int>("Shadow Map Size", 0x1B8, ParameterType.INT), // Aligned to 128.
@@ -2642,6 +2638,10 @@ namespace WorldTuningTool
if (ImGui.Button("Add override"))
{
Override ov = new Override();
+ if (selectedStage == currentStage || selectedStage == globalStage)
+ {
+ ov.Set(); // Empty override never superseded.
+ }
selectedOverrides.Add(ov);
}
ImGui.PopItemWidth();