Commit Graph

186 Commits

Author SHA1 Message Date
0d7ae6a017 Документирование и обновление спецификаций
Some checks failed
Test / Lint (push) Failing after 1m10s
Test / Test (push) Has been skipped
Test / Render parity (push) Has been skipped
- Обновлены спецификации `runtime-pipeline`, `sound`, `terrain-map-loading`, `texture`, `ui` и `wear`.
- Добавлены разделы о статусе покрытия и оставшихся задачах для достижения 100% завершенности.
- Внесены уточнения по архитектурным ролям, минимальным контрактам и требованиям к toolchain для каждой подсистемы.
- Уточнены форматы данных и правила взаимодействия между компонентами системы.
2026-02-19 11:07:04 +04:00
a281ffa32e feat: Enhance model and texture loading with improved error handling and new features
Some checks failed
Test / Lint (push) Failing after 1m10s
Test / Test (push) Has been skipped
Test / Render parity (push) Has been skipped
- Introduced `LoadedModel` and `LoadedTexture` structs for better encapsulation of model and texture data.
- Added functions to load models and textures from archives, including support for resolving textures based on materials and wear entries.
- Implemented error handling for missing textures, materials, and wear entries.
- Updated the rendering pipeline to support texture loading and binding, including command-line arguments for texture customization.
- Enhanced the `texm` crate with new decoding capabilities for various pixel formats, including indexed textures.
- Added tests for texture decoding and loading to ensure reliability and correctness.
- Updated documentation to reflect changes in the material and texture resolution process.
2026-02-19 05:19:18 +04:00
18d4c6cf9f feat(render-parity): add deterministic frame comparison tool
- Introduced `render-parity` crate for comparing rendered frames against reference images.
- Added command-line options for specifying manifest and output directory.
- Implemented image comparison metrics: mean absolute difference, maximum absolute difference, and changed pixel ratio.
- Created a configuration file `cases.toml` for defining test cases with global defaults and specific parameters.
- Added functionality to capture frames from `render-demo` and save diff images on discrepancies.
- Updated documentation to include usage instructions and CI model for automated testing.
2026-02-19 05:02:26 +04:00
0e19660eb5 Refactor documentation structure and add new specifications
- Updated MSH documentation to reflect changes in material, wear, and texture specifications.
- Introduced new `render.md` file detailing the render pipeline process.
- Removed outdated sections from `runtime-pipeline.md` and redirected to `render.md`.
- Added detailed specifications for `Texm` texture format and `WEAR` wear table.
- Updated navigation in `mkdocs.yml` to align with new documentation structure.
2026-02-19 04:46:23 +04:00
8a69872576 Refactor code structure for improved readability and maintainability
All checks were successful
Test / Lint (push) Successful in 1m8s
Test / Test (push) Successful in 1m15s
2026-02-12 11:07:25 +00:00
aa68906a3d feat: добавить экспорт в формат OBJ для рендеринга террейна и опциональных полигонов 2026-02-12 10:36:15 +00:00
8bf3b7b209 feat: добавить 3D рендерер для террейна с поддержкой Land.msh и Land.map 2026-02-12 10:24:42 +00:00
669fb40a70 Add terrain map documentation validator
This commit introduces a new Python script, `terrain_map_doc_validator.py`, which validates terrain and map documentation assumptions against actual game data. The validator checks for the presence and correctness of various data chunks in the `Land.msh` and `Land.map` files, reporting any issues found during the validation process. It also generates a summary report of the validation results, including counts of errors and warnings, and statistics related to the map and mesh data.
2026-02-12 10:17:41 +00:00
9c0df3d299 feat: добавить скрипт для детерминированного аудита FXID "absolute parity" 2026-02-12 08:22:51 +00:00
4c4f542fc2 Merge branch 'master' into renovate/actions-setup-python-6.x
All checks were successful
Test / Lint (pull_request) Successful in 1m2s
Test / Test (pull_request) Successful in 59s
Docs Deploy / Build and Deploy MkDocs (push) Successful in 1m4s
Test / Lint (push) Successful in 1m4s
Test / Test (push) Successful in 58s
RenovateBot / renovate (push) Successful in 22s
2026-02-12 04:52:10 +04:00
4c9d772b03 chore(deps): update actions/setup-python action to v6
All checks were successful
Test / Lint (push) Successful in 51s
Test / Lint (pull_request) Successful in 53s
Test / Test (push) Successful in 52s
Test / Test (pull_request) Successful in 51s
2026-02-12 00:01:33 +00:00
097a915f35 fix(deps): update all digest updates
All checks were successful
Test / Lint (pull_request) Successful in 1m3s
Test / Test (pull_request) Successful in 50s
Docs Deploy / Build and Deploy MkDocs (push) Successful in 1m10s
Test / Lint (push) Successful in 1m0s
Test / Test (push) Successful in 58s
2026-02-12 00:01:28 +00:00
c691de0dd0 fix: обновить срок действия авторских прав в документации и улучшить параметры rsync для развертывания
All checks were successful
Test / Lint (pull_request) Successful in 56s
Test / Test (pull_request) Successful in 59s
Docs Deploy / Build and Deploy MkDocs (push) Successful in 26s
Test / Lint (push) Successful in 57s
Test / Test (push) Successful in 52s
RenovateBot / renovate (push) Successful in 1m32s
2026-02-11 23:16:15 +00:00
92818ce0c4 fix: обновить путь развертывания в конфигурации rsync для корректной работы
Some checks failed
Test / Lint (pull_request) Successful in 1m8s
Test / Test (pull_request) Successful in 49s
Docs Deploy / Build and Deploy MkDocs (push) Failing after 25s
Test / Lint (push) Successful in 54s
Test / Test (push) Successful in 55s
2026-02-11 23:08:37 +00:00
6676cfdd8d feat: обновить параметры SSH для развертывания документации с использованием rsync
Some checks failed
Test / Lint (pull_request) Successful in 58s
Test / Test (pull_request) Successful in 53s
Docs Deploy / Build and Deploy MkDocs (push) Failing after 25s
Test / Lint (push) Successful in 52s
Test / Test (push) Successful in 51s
2026-02-11 23:02:03 +00:00
8b639ee6c9 feat: добавить установку rsync и openssh-client для развертывания документации
Some checks failed
Test / Lint (pull_request) Successful in 52s
Test / Test (pull_request) Successful in 1m13s
Docs Deploy / Build and Deploy MkDocs (push) Failing after 26s
Test / Lint (push) Successful in 1m0s
Test / Test (push) Successful in 53s
2026-02-11 22:49:30 +00:00
a58dea5499 feat: добавить рабочий процесс для развертывания документации MkDocs при пуше в ветку master
Some checks failed
Test / Lint (pull_request) Successful in 47s
Test / Test (pull_request) Successful in 49s
Docs Deploy / Build and Deploy MkDocs (push) Failing after 1m29s
Test / Lint (push) Successful in 53s
Test / Test (push) Successful in 52s
2026-02-11 22:41:22 +00:00
615891d550 feat: обновить заголовки разделов в документации по FXID и NRes для улучшения структуры
All checks were successful
Test / Lint (pull_request) Successful in 46s
Test / Test (pull_request) Successful in 48s
Test / Lint (push) Successful in 48s
Test / Test (push) Successful in 49s
2026-02-11 22:10:43 +00:00
481ff1c06d Implement feature X to enhance user experience and fix bug Y in module Z 2026-02-11 22:06:56 +00:00
7702d800a0 feat: улучшить документацию по материалам и текстурам, добавить детали о сборке и парсинге 2026-02-11 22:04:43 +00:00
3c06e768d6 feat: добавить поддержку атомарной замены файлов для Windows и тесты на максимальную длину имени 2026-02-11 22:00:46 +00:00
70ed6480c2 Refactor materials and Texm documentation for clarity and completeness
- Updated the structure and content of the materials and Texm documentation to provide a comprehensive overview of the material subsystem in the engine.
- Enhanced sections on identifiers, architecture, material layout, and runtime storage.
- Improved explanations of material attributes, animation modes, and parsing behavior.
- Added detailed specifications for toolchain interactions, including lossless write rules and validation recommendations.
- Included pseudocode examples for parsing MAT0 and Texm formats to aid in understanding.
2026-02-11 21:50:33 +00:00
662b292b5b feat: обновить методы обработки данных и улучшить обработку ошибок в библиотеке 2026-02-11 21:43:40 +00:00
3410b54793 feat: добавить тесты для проверки структурных инвариантов и корректности сортировки в RsLi 2026-02-11 21:21:32 +00:00
041b1a6cb3 Добавлены спецификации для сетевой подсистемы, системы звука, загрузки ландшафта, интерфейса пользователя и пайплайна выполнения. Обновлен файл навигации mkdocs.yml для включения новых документов. 2026-02-11 21:12:05 +00:00
5035d02220 Add MSH geometry export and preview rendering tools
All checks were successful
Test / Lint (push) Successful in 46s
Test / Test (push) Successful in 41s
- Implemented msh_export_obj.py for exporting NGI MSH geometry to Wavefront OBJ format, including model selection and geometry extraction.
- Added msh_preview_renderer.py for rendering NGI MSH models to binary PPM images, featuring a primitive software renderer with customizable parameters.
- Both tools utilize the same NRes parsing logic and provide command-line interfaces for listing models and exporting or rendering geometry.
2026-02-10 23:27:43 +00:00
ba1789f106 fix: обработка выхода за пределы индекса сортировки в архиве и улучшение декодирования LZSS с поддержкой XOR
All checks were successful
Test / Lint (push) Successful in 47s
Test / Test (push) Successful in 41s
2026-02-10 08:57:00 +00:00
842f4a8569 Implement LZSS decompression with optional XOR decryption
- Added `lzss_decompress_simple` function for LZSS decompression in `lzss.rs`.
- Introduced `XorState` struct and `xor_stream` function for XOR decryption in `xor.rs`.
- Updated `mod.rs` to include new LZSS and XOR modules.
- Refactored `parse_library` function in `parse.rs` to utilize the new XOR decryption functionality.
- Cleaned up and organized code in `lib.rs` by removing redundant functions and structures.
- Added tests for new functionality in `tests.rs`.
2026-02-10 08:38:58 +00:00
ce6e30f727 feat: добавить библиотеку common с ресурсами и буферами вывода; обновить зависимости в nres и rsli 2026-02-10 08:26:49 +00:00
4af183ad74 feat: добавить новые тесты для обработки не-NRes байтов и минимальной структуры архива
All checks were successful
Test / Lint (pull_request) Successful in 59s
Test / Test (pull_request) Successful in 58s
Test / Lint (push) Successful in 53s
Test / Test (push) Successful in 48s
RenovateBot / renovate (push) Successful in 1m3s
2026-02-09 23:56:30 +00:00
ab413bd751 fix: добавить проверку на наличие архивов в тестах для nres и rsli 2026-02-09 23:54:30 +00:00
b5e6fad3c3 fix: исправить ссылки на репозитории в разделе Contributing & Support
Some checks failed
Test / Lint (push) Successful in 51s
Test / Test (push) Failing after 1m12s
2026-02-09 23:40:21 +00:00
c69cad6a26 feat: добавить начальный README с описанием проекта и инструкциями
Some checks failed
Test / Lint (push) Successful in 53s
Test / Test (push) Failing after 54s
2026-02-09 23:36:32 +00:00
a24910791e feat: добавить README для библиотеки nres с описанием функционала и тестирования 2026-02-09 23:15:43 +00:00
371a060eb6 Refactor tests and move them to a dedicated module
- Moved the test suite from `lib.rs` to a new `tests.rs` file for better organization.
- Added a `SyntheticRsliEntry` struct to facilitate synthetic test cases.
- Introduced `RsliBuildOptions` struct to manage options for building RsLi byte arrays.
- Implemented various utility functions for file handling, data compression, and bit manipulation.
- Enhanced the `rsli_read_unpack_and_repack_all_files` test to validate all RsLi archives.
- Added new tests for synthetic entries covering all packing methods, overlay handling, and validation error cases.
2026-02-09 23:11:11 +00:00
e08b5f3853 feat: add initial implementation of rsli crate
Some checks failed
Test / Lint (push) Failing after 1m30s
Test / Test (push) Has been skipped
- Created Cargo.toml for the rsli crate with flate2 dependency.
- Implemented ResourceData enum for handling borrowed and owned byte slices.
- Added OutputBuffer trait and its Vec<u8> implementation for writing data.
- Defined a comprehensive Error enum for error handling in the library.
- Developed the Library struct to manage resource entries and provide methods for loading and unpacking resources.
- Implemented various packing methods and decompression algorithms, including LZSS and Deflate.
- Added tests for validating the functionality of the rsli library against sample data.
2026-02-09 22:58:16 +00:00
5a97f2e429 feat: удалить файл конфигурации dependabot 2026-02-09 22:51:08 +00:00
9e2dcb44a6 feat: обновить конфигурацию CI для тестирования и линтинга кода
Some checks failed
Test / Lint (push) Failing after 1m8s
Test / Test (push) Has been skipped
2026-02-09 22:47:25 +00:00
828106ba81 feat: добавить скрипты для инициализации тестовых данных и настройки окружения
Some checks failed
Test / cargo test (push) Failing after 58s
2026-02-09 22:39:12 +00:00
a7dd18fa1d feat: удалить устаревшие файлы и директории из проекта 2026-02-10 02:07:52 +04:00
f8cca32968 feat: изменить язык документации на русский 2026-02-10 02:05:27 +04:00
ef93237724 Add .gitignore for Python and project-specific files; implement archive roundtrip validator
Some checks failed
Test / cargo test (push) Failing after 50s
- Updated .gitignore to include common Python artifacts and project-specific files.
- Added `archive_roundtrip_validator.py` script for validating NRes and RsLi formats against real game data.
- Created README.md for the tools directory, detailing usage and supported signatures.
- Enhanced nres.md with practical nuances and empirical checks for game data.
2026-02-10 01:58:16 +04:00
58a896221f feat: обновление навигации в документации, добавление разделов для 3D моделей, текстур и эффектов 2026-02-10 01:49:09 +04:00
3f48f53bd5 feat: добавление документации по эффектам и частицам 2026-02-10 01:48:59 +04:00
2953f0c8c9 feat: добавление документации по модели ресурсов MSH/AniMesh 2026-02-10 01:47:19 +04:00
022ec608f5 feat: добавление документации по текстурам и материалам 2026-02-10 01:44:01 +04:00
54c94fddb5 Add detailed documentation for NRes and RsLi resource formats
Some checks failed
Test / cargo test (push) Failing after 41s
- Introduced a comprehensive markdown file `nres.md` detailing the structure, header, and operations of the NRes and RsLi formats.
- Updated `mkdocs.yml` to reflect the new documentation structure, consolidating NRes and RsLi under a single entry.
2026-02-10 00:30:25 +04:00
0def311fd1 feat: обновление документации по алгоритмам декомпрессии и добавление файлов .gitkeep в директории libs и tools 2026-02-05 03:28:03 +04:00
2f157d0972 feat: добавление файлов .gitkeep в директории libs и tools 2026-02-05 01:44:31 +04:00
8f57a8f0f9 feat: добавление файлов конфигурации Zig и обновление .gitignore
Some checks failed
Test / cargo test (push) Failing after 47s
2026-02-05 01:40:47 +04:00