namespace ScrLib;
/// SCR файл.
/// Число известных игре скриптов; обычно 59 (0x3B).
/// Количество ScrEntry.
/// Записи SCR.
public record ScrFile(int Magic, int EntryCount, List Entries);
/// Запись SCR.
/// Название записи.
/// Индекс записи.
/// Количество вложенных записей.
/// Вложенные записи.
public record ScrEntry(string Title, int Index, int InnerCount, List Inners);
/// Вложенная запись SCR.
/// Номер скрипта в игре из таблицы известных скриптов (обычно 0x3B записей).
/// Неизвестное поле. Для SetVarsetValue это индекс в Varset.
/// Неизвестное поле. Для SetVarsetValue это устанавливаемое значение.
/// Тип вложенной записи.
/// Неизвестное поле.
/// Количество аргументов.
/// Аргументы вложенной записи.
/// Неизвестное поле.
public record ScrEntryInner(
int ScriptIndex,
int UnkInner2,
int UnkInner3,
ScrEntryInnerType Type,
int UnkInner5,
int ArgumentsCount,
List Arguments,
int UnkInner7);
public enum ScrEntryInnerType
{
Unspecified = -1,
_0 = 0,
_1 = 1,
_2 = 2,
_3 = 3,
_4 = 4,
CheckInternalState = 5,
///
/// В случае 6, игра берёт UnkInner2 (индекс в Varset) и устанавливает ему значение UnkInner3
///
SetVarsetValue = 6,
}