diff options
Diffstat (limited to 'Plugin.cs')
| -rw-r--r-- | Plugin.cs | 33 |
1 files changed, 33 insertions, 0 deletions
@@ -163,6 +163,7 @@ namespace WorldTuningTool INT, ALIGNED_INT, HEX, + BITS, COLOR, COLOR_FACTOR, FLOAT, @@ -444,6 +445,7 @@ namespace WorldTuningTool case ParameterType.INT: case ParameterType.ALIGNED_INT: case ParameterType.HEX: + case ParameterType.BITS: case ParameterType.COLOR: { ref int i1 = ref MemoryUtil.GetRef<int>(lastAddr + offset); @@ -643,6 +645,7 @@ namespace WorldTuningTool case ParameterType.INT: case ParameterType.ALIGNED_INT: case ParameterType.HEX: + case ParameterType.BITS: case ParameterType.COLOR: { ref int i1 = ref MemoryUtil.GetRef<int>(baseObject + offset); @@ -787,6 +790,7 @@ namespace WorldTuningTool case ParameterType.BYTE: case ParameterType.INT: case ParameterType.HEX: + case ParameterType.BITS: i1 = Math.Clamp(i1, min, max); break; case ParameterType.ALIGNED_INT: @@ -854,6 +858,32 @@ namespace WorldTuningTool } break; } + case ParameterType.BITS: + { + for (int i = 0; i < 32; i++) + { + int bit = (1 << i); + if ((mask & bit) == bit) + { + bool set = (i1 & bit) == bit; + if (ImGui.Checkbox($"##Bit{i}", ref set)) + { + if (set) + { + i1 |= bit; + } + else + { + i1 &= ~bit; + } + valueChanged = true; + } + ImGui.SameLine(); + } + } + ImGui.Text(label); + break; + } case ParameterType.COLOR: { Vector4 colorV = ColorVectorFromInt(i1); @@ -950,6 +980,7 @@ namespace WorldTuningTool ImGui.Text($"({name}: {i1})"); break; case ParameterType.HEX: + case ParameterType.BITS: case ParameterType.COLOR: ImGui.Text($"({name}: {i1:X})"); break; @@ -1281,6 +1312,7 @@ namespace WorldTuningTool case ParameterType.SHADOW_RESOLUTION: return Int32ToString(sValueInt); case ParameterType.HEX: + case ParameterType.BITS: case ParameterType.COLOR: return Int32ToString(sValueInt, "X8"); case ParameterType.FLOAT: @@ -1317,6 +1349,7 @@ namespace WorldTuningTool valueInt = StringToInt32(value); break; case ParameterType.HEX: + case ParameterType.BITS: case ParameterType.COLOR: valueInt = StringToInt32(value, 16); break; |