From 4ea756a1a4b8180217f55b2bdec2ca3755ffc540 Mon Sep 17 00:00:00 2001 From: bird_egop Date: Sat, 23 Aug 2025 03:21:03 +0300 Subject: [PATCH] Update readme --- README.md | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 944746b..cd649a0 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ ## Сборка проекта -Проект написан на C# под `.NET 8` +Проект написан на C# под `.NET 9` Вам должно хватить `dotnet build` для сборки всех проектов отдельно. @@ -22,6 +22,7 @@ - Поддержка шрифтов TFNT. - Поддержка файлов скриптов `.scr`. - Поддержка файлов параметров `.var`. +- Поддержка файлов схем объектов `.dat`. ### Структура проекта @@ -177,15 +178,25 @@ grep -rlU $'\x73\x5f\x74\x72\x65\x65\x5f\x30\x35' . В зависимости от типа объекта внутри схемы (байты 4..8) выбирается функция, с помощью которой загружается схема. Функция выбирается на основе файла `Comp.ini`. -- Для ClassBuilding (0x80000000) - вызывается функция по индексу 3. -- Для всех остальных - функция по индексу 4. +- Для ClassBuilding (0x80000000) - вызывается функция c классом 3 (по таблице ниже Building). +- Для всех остальных - функция с классом 4 (по таблице ниже Agent). -Однако контент файла `Comp.ini` буквально выглядит так: -``` -3 animesh.dll LoadAgent // comments... -4 animesh.dll LoadAgent // -``` -А значит независимо от класса объекта вызывается `animesh.dll/LoadAgent`. +На основе файла `Comp.ini` и первом вызове внутри функции `World3D.dll/CreateObject` ремаппинг id: + +| Class ID | ClassName | +|:----------:|:-------------:| +| 1 | Landscape | +| 2 | Agent | +| 3 | Building | +| 4 | Agent | +| 5 | Camera | +| 7 | Atmospehere | +| 9 | Agent | +| 10 | Agent | +| 11 | Research | +| 12 | Agent | + +Будет дополняться по мере реверса/ ## `.msh`