mirror of
https://github.com/xivdev/Penumbra.git
synced 2025-12-31 21:03:48 +01:00
Auto-generate ID from a name through CRC when adding a param
This commit is contained in:
parent
33231959b2
commit
86de28245d
1 changed files with 10 additions and 10 deletions
|
|
@ -7,14 +7,12 @@ using Dalamud.Interface.ImGuiFileDialog;
|
|||
using Dalamud.Interface.Internal.Notifications;
|
||||
using Dalamud.Interface;
|
||||
using ImGuiNET;
|
||||
using Lumina.Misc;
|
||||
using OtterGui.Raii;
|
||||
using OtterGui;
|
||||
using Penumbra.GameData.Data;
|
||||
using Penumbra.GameData.Files;
|
||||
using Penumbra.Util;
|
||||
using Lumina.Data.Parsing;
|
||||
using static OtterGui.Raii.ImRaii;
|
||||
using static Penumbra.GameData.Files.ShpkFile;
|
||||
|
||||
namespace Penumbra.UI.Classes;
|
||||
|
||||
|
|
@ -24,7 +22,8 @@ public partial class ModEditWindow
|
|||
|
||||
private readonly FileDialogManager _shaderPackageFileDialog = ConfigWindow.SetupFileManager();
|
||||
|
||||
private uint _shaderPackageNewMaterialParamId = 0;
|
||||
private string _shaderPackageNewMaterialParamName = string.Empty;
|
||||
private uint _shaderPackageNewMaterialParamId = Crc32.Get( string.Empty, 0xFFFFFFFFu );
|
||||
private ushort _shaderPackageNewMaterialParamStart = 0;
|
||||
private ushort _shaderPackageNewMaterialParamEnd = 0;
|
||||
|
||||
|
|
@ -254,7 +253,7 @@ public partial class ModEditWindow
|
|||
|
||||
for( var idx = 0; idx < parameters.Length; idx += 4 )
|
||||
{
|
||||
var usedComponents = materialParams?.Used?[idx >> 2] ?? DisassembledShader.VectorComponents.All;
|
||||
var usedComponents = ( materialParams?.Used?[idx >> 2] ?? DisassembledShader.VectorComponents.All ) | ( materialParams?.UsedDynamically ?? 0 );
|
||||
ImGui.TableNextColumn();
|
||||
ImGui.Text( $"[{idx >> 2}]" );
|
||||
for( var col = 0; col < 4; ++col )
|
||||
|
|
@ -297,7 +296,7 @@ public partial class ModEditWindow
|
|||
for( var i = 0; i < file.MaterialParams.Length; ++i )
|
||||
{
|
||||
var param = file.MaterialParams[i];
|
||||
using var t2 = ImRaii.TreeNode( $"{MaterialParamRangeName(materialParams?.Name ?? string.Empty, param.ByteOffset >> 2, param.ByteSize >> 2).Item1} (ID: 0x{param.Id:X8})" );
|
||||
using var t2 = ImRaii.TreeNode( $"{MaterialParamRangeName( materialParams?.Name ?? string.Empty, param.ByteOffset >> 2, param.ByteSize >> 2 ).Item1} (ID: 0x{param.Id:X8})" );
|
||||
if( t2 )
|
||||
{
|
||||
if( ImGui.Button( "Remove" ) )
|
||||
|
|
@ -359,12 +358,13 @@ public partial class ModEditWindow
|
|||
}
|
||||
}
|
||||
}
|
||||
var id = ( int )_shaderPackageNewMaterialParamId;
|
||||
ImGui.SetNextItemWidth( ImGuiHelpers.GlobalScale * 150.0f );
|
||||
if( ImGui.InputInt( "ID", ref id, 0, 0, ImGuiInputTextFlags.CharsHexadecimal ) )
|
||||
ImGui.SetNextItemWidth( ImGuiHelpers.GlobalScale * 225.0f );
|
||||
if( ImGui.InputText( $"Name", ref _shaderPackageNewMaterialParamName, 63 ) )
|
||||
{
|
||||
_shaderPackageNewMaterialParamId = ( uint )id;
|
||||
_shaderPackageNewMaterialParamId = Crc32.Get( _shaderPackageNewMaterialParamName, 0xFFFFFFFFu );
|
||||
}
|
||||
ImGui.SameLine();
|
||||
ImGui.Text( $"(ID: 0x{_shaderPackageNewMaterialParamId:X8})" );
|
||||
if( ImGui.Button( "Add" ) )
|
||||
{
|
||||
if( definedParameters.Contains( _shaderPackageNewMaterialParamId ) )
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue