Initial plan
Initial exploration and analysis complete
Co-authored-by: orange-cpp <59374393+orange-cpp@users.noreply.github.com>
Optimize performance: A* pathfinding, Vector3 hash, pattern scanner, AVX2 code, and serialization
Co-authored-by: orange-cpp <59374393+orange-cpp@users.noreply.github.com>
Add bounds check for navigation mesh serialization
Co-authored-by: orange-cpp <59374393+orange-cpp@users.noreply.github.com>
Document serialization limitation for large neighbor counts
Co-authored-by: orange-cpp <59374393+orange-cpp@users.noreply.github.com>
Add _codeql_build_dir to gitignore
Co-authored-by: orange-cpp <59374393+orange-cpp@users.noreply.github.com>
Removes codeql detected source root
Eliminates the automatically generated file that was causing issues.
This file was added by codeql and no longer needed.
revert
cleaned up gitignore
moved to anon namespace
Improves navigation mesh serialization and clamping
Ensures correct serialization of navigation meshes by clamping neighbor counts to prevent data corruption when exceeding uint16_t limits.
Updates data types to `std::uint8_t` and `std::size_t` for consistency.
Uses `std::copy_n` instead of `std::memcpy` for deserialization.
Corrects the NDC calculation in `world_to_screen` to improve accuracy.
Replaces custom perspective projection matrix calculation with `omath::mat_perspective_right_handed` for correctness and consistency.
Updates test cases and provides debugging information by printing view and projection matrices.
Addresses an issue in the feature/ndc_invalid_calc_fix branch.
Replaces calls to Windows API functions (GetModuleHandleA) with a void pointer parameter.
Simplifies pattern scanning for loaded modules by removing Windows-specific code and replacing it with a generic approach.
Refactors the PE scanner implementation to group related definitions and functions within namespaces.
This improves code organization and readability, particularly for internal PE handling and scanning logic.
The included link to the `linux-pe` repository served as a reference during this refactoring.
Simplifies the PE pattern scanner by removing the redundant `extract_section_from_pe_file` function.
The extracted data is now returned directly from a new `ExtractedSection` struct within the main scanning function, streamlining the code and reducing duplication. This improves readability and maintainability of the PE scanner.
Simplifies NtHeaderVariant structure by removing redundant field declarations.
This improves code readability and reduces unnecessary code duplication.