1
mirror of https://github.com/sampletext32/ParkanPlayground.git synced 2025-12-12 01:31:20 +04:00

improve binary varset parsing

This commit is contained in:
bird_egop
2025-11-22 09:02:35 +03:00
parent 2a78bbebda
commit f4442897a6
3 changed files with 99 additions and 21 deletions

View File

@@ -1,15 +1,34 @@
using Common;
using System.Diagnostics;
using Common;
namespace VarsetLib;
public record BinaryVarsetItem(
int Magic1, // length of something
IntFloatValue Magic2,
IntFloatValue Magic3,
string Name,
string String2,
IntFloatValue Magic4,
IntFloatValue Magic5,
IntFloatValue Magic6,
IntFloatValue Magic7
);
[DebuggerDisplay("{DebugDisplay}")]
public abstract record BinaryVarsetItem()
{
protected abstract string DebugDisplay { get; }
}
public record BinaryVarsetItem<TValue>(
int ValueLength, // длина значения
BinaryVarsetValueType ValueType, // тип значения
TValue Magic3, // кажется 0 всегда
string Name, // имя переменной
string String2, // кажется всегда пусто
TValue Magic4,
TValue Magic5,
TValue Magic6, // минимум
TValue Magic7 // максимум
) : BinaryVarsetItem
{
protected override string DebugDisplay => $"{typeof(TValue).Name}, {ValueLength} bytes. magic3: {Magic3}. {Name,-30} {String2} - {Magic4} {Magic5} {Magic6} {Magic7}";
};
public enum BinaryVarsetValueType
{
Int = 1,
Bool = 2,
Float = 3,
CharPtr = 4,
Dword = 5
}