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, }