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:
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user