mirror of
https://github.com/sampletext32/ParkanPlayground.git
synced 2025-08-23 09:30:27 +03:00
Update readme
This commit is contained in:
29
README.md
29
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`
|
||||
|
||||
|
Reference in New Issue
Block a user