0
mirror of https://github.com/sampletext32/ParkanPlayground.git synced 2025-05-18 19:31:17 +03:00

scr reversed type

This commit is contained in:
bird_egop 2025-03-01 22:45:15 +03:00
parent d7eb23e9e0
commit 76ef68635e
4 changed files with 16 additions and 47 deletions

View File

@ -46,10 +46,10 @@ public class ScrExplorer : IImGuiPanel
if (ImGui.BeginTable($"Элементы##{i:0000}", 8, ImGuiTableFlags.Borders | ImGuiTableFlags.SizingFixedFit | ImGuiTableFlags.NoHostExtendX)) if (ImGui.BeginTable($"Элементы##{i:0000}", 8, ImGuiTableFlags.Borders | ImGuiTableFlags.SizingFixedFit | ImGuiTableFlags.NoHostExtendX))
{ {
ImGui.TableSetupColumn("Индекс скрипта"); ImGui.TableSetupColumn("Индекс встроенного скрипта");
ImGui.TableSetupColumn("UnkInner2"); ImGui.TableSetupColumn("UnkInner2");
ImGui.TableSetupColumn("UnkInner3"); ImGui.TableSetupColumn("UnkInner3");
ImGui.TableSetupColumn("UnkInner4"); ImGui.TableSetupColumn("Тип скрипта");
ImGui.TableSetupColumn("UnkInner5"); ImGui.TableSetupColumn("UnkInner5");
ImGui.TableSetupColumn("Кол-во аргументов"); ImGui.TableSetupColumn("Кол-во аргументов");
ImGui.TableSetupColumn("Аргументы"); ImGui.TableSetupColumn("Аргументы");
@ -67,7 +67,7 @@ public class ScrExplorer : IImGuiPanel
ImGui.TableNextColumn(); ImGui.TableNextColumn();
ImGui.Text(inner.UnkInner3.ToString()); ImGui.Text(inner.UnkInner3.ToString());
ImGui.TableNextColumn(); ImGui.TableNextColumn();
ImGui.Text(inner.UnkInner4.ToString()); ImGui.Text(inner.Type.ToString());
ImGui.TableNextColumn(); ImGui.TableNextColumn();
ImGui.Text(inner.UnkInner5.ToString()); ImGui.Text(inner.UnkInner5.ToString());
ImGui.TableNextColumn(); ImGui.TableNextColumn();

View File

@ -1,39 +0,0 @@
using System.Buffers.Binary;
using System.Text;
namespace ParkanPlayground;
public static class Extensions
{
public static int ReadInt32LittleEndian(this FileStream fs)
{
Span<byte> buf = stackalloc byte[4];
fs.ReadExactly(buf);
return BinaryPrimitives.ReadInt32LittleEndian(buf);
}
public static float ReadFloatLittleEndian(this FileStream fs)
{
Span<byte> buf = stackalloc byte[4];
fs.ReadExactly(buf);
return BinaryPrimitives.ReadSingleLittleEndian(buf);
}
public static string ReadLengthPrefixedString(this FileStream fs)
{
var len = fs.ReadInt32LittleEndian();
if (len == 0)
{
return "";
}
var buffer = new byte[len];
fs.ReadExactly(buffer, 0, len);
return Encoding.ASCII.GetString(buffer, 0, len);
}
}

View File

@ -6,9 +6,9 @@ public class ScrFile
/// тут всегда число 59 (0x3b) - это число известных игре скриптов /// тут всегда число 59 (0x3b) - это число известных игре скриптов
/// </summary> /// </summary>
public int Magic { get; set; } public int Magic { get; set; }
public int EntryCount { get; set; } public int EntryCount { get; set; }
public List<ScrEntry> Entries { get; set; } public List<ScrEntry> Entries { get; set; }
} }
@ -17,7 +17,7 @@ public class ScrEntry
public string Title { get; set; } public string Title { get; set; }
public int Index { get; set; } public int Index { get; set; }
public int InnerCount { get; set; } public int InnerCount { get; set; }
public List<ScrEntryInner> Inners { get; set; } public List<ScrEntryInner> Inners { get; set; }
@ -32,7 +32,15 @@ public class ScrEntryInner
public int UnkInner2 { get; set; } public int UnkInner2 { get; set; }
public int UnkInner3 { get; set; } public int UnkInner3 { get; set; }
public int UnkInner4 { get; set; }
/// <summary>
/// 0,1,2,3,4,5,6,-1
/// </summary>
///
/// <para>1 - неизвестно</para>
/// <para>2 - noop</para>
public int Type { get; set; }
public int UnkInner5 { get; set; } public int UnkInner5 { get; set; }
public int ArgumentsCount { get; set; } public int ArgumentsCount { get; set; }

View File

@ -31,7 +31,7 @@ public class ScrParser
entryInner.UnkInner2 = fs.ReadInt32LittleEndian(); entryInner.UnkInner2 = fs.ReadInt32LittleEndian();
entryInner.UnkInner3 = fs.ReadInt32LittleEndian(); entryInner.UnkInner3 = fs.ReadInt32LittleEndian();
entryInner.UnkInner4 = fs.ReadInt32LittleEndian(); entryInner.Type = fs.ReadInt32LittleEndian();
entryInner.UnkInner5 = fs.ReadInt32LittleEndian(); entryInner.UnkInner5 = fs.ReadInt32LittleEndian();
entryInner.ArgumentsCount = fs.ReadInt32LittleEndian(); entryInner.ArgumentsCount = fs.ReadInt32LittleEndian();