Skip to content

AssetsManager_v3.2.0.1

Choose a tag to compare

@Neinndall Neinndall released this 11 Feb 14:23
· 834 commits to main since this release
29e92e3

HOTFIX UPDATE (#56)

This update addresses critical data collisions in localized assets and introduces a high-performance asynchronous architecture. It also optimizes the session workflow with intelligent fingerprinting and refines the visual HUD style for a more professional technical experience.

Improvements

  • Workflow / Session Comparison Intelligence
    • Implemented a Comparison Fingerprinting system to prevent redundant auto-saves of identical comparisons during the same session.
    • Integrated a session-based identity tracker in MainWindow that detects if the current comparison matches the previous one, skipping the backup process if it was already performed.
    • Silenced the success log during comparison history deletion to reduce visual noise in the Log panel.
    • Improved the loading screen by adding dynamic status text, allowing users to track the progress of each phase (linking, acquiring data, parsing) during longer operations.
    • Refined visual fidelity: standardized window width to prevent layout flickering, centered all internal content, and optimized the drop shadow for a more professional HUD look.
    • Fixed a visual artifact where window corners would show dark pixels by ensuring proper margins for transparent rendering.
  • System / Full Asynchronous Rework
    • Re-engineered heavy disk operations (BackupManager and UpdateExtractor) to be 100% Asynchronous.
    • Optimized application startup: parallelized all network update checks (App Version, Hashes, JSON Watcher, and PBE Status) using Task.WhenAll, eliminating sequential bottlenecks and reducing perceived wait time.
    • Implemented an Asynchronous Local Function pattern for recursive directory copying to ensure safe progress tracking without thread-safety overhead.
  • Architecture / Stateless Directory Management
    • Completely refactored DirectoriesCreator into a high-performance, stateless utility service.
    • Eliminated internal property "caching" (e.g., WadComparisonFullPath, SubAssetsDownloadedPath) in favor of direct method returns, drastically reducing side effects and memory leaks.
    • Centralized naming conventions (comparison_ddMMyyyy_HHmmss, JSON history keys) into single-source-of-truth methods.
  • System / Path & Log Professionalism
    • Standardized backup storage: moved all automatic history and manual results to the unified wadcomparison/ directory, eliminating the redundant history_cache/.
    • Refined Log telemetry: shortened absolute Windows paths to professional relative paths (e.g., AssetsDownloaded\XXXX) in interactive logs.
    • Cleaned up UI messaging: removed redundant prefixes and quotes from system success and warning logs.
  • System / Resource Management
    • Implemented a Duplicate Protection Engine: the Results window now intelligently identifies if a comparison has already been auto-saved, preventing redundant multi-gigabyte disk writes when clicking "Save Results" manually.
  • Explorer / Image Merger Suite
    • Added an interactive log link upon successful image export, allowing users to instantly navigate to the file.
  • System / Hash Path Consolidation
    • Re-engineered the hash management system to use a single, unified hashes/ directory, eliminating redundant new/ and olds/ subfolders.
    • Cleaned up obsolete synchronization logic and dead code related to legacy hash backup strategies.

Changes

  • UI / High-Fidelity HUD Typography
    • Standardized all window titles to 13px Normal (previously SemiBold), achieving a more elegant and professional technical look.
    • Refined dialog content: standardized message bodies in ConfirmationDialog and InputDialog to 12px for superior hierarchy against the 13px headers.
  • Monitor / History Service
    • Professionalized the success telemetry: updated the log message to "Comparison history saved successfully." for a cleaner output.

Bug Fixes

  • Comparator / Localized Asset Collision
    • Resolved a critical architectural bug where localized files (e.g., lol.stringtable) from different language WADs (en_US, es_ES, es_MX) would overwrite each other during backup.
    • Implemented a robust WAD-based subdirectory structure within the backup environment: wad_chunks/[new|old]/[SourceWadPath]/[Hash].chunk.
    • Updated the entire comparison ecosystem (WadPackagingService, WadNodeLoaderService, WadDifferenceService, DiffViewService, and AudioBankLinkerService) to correctly resolve assets from their respective WAD isolated folders.
  • Monitor / History Desynchronization
    • Improved backup integrity verification: added a professional warning notification when attempting to open a manually deleted or moved backup, providing clear feedback to the user.
    • Fixed a JSON deserialization bug where ChunkDiffType enums failed to load from saved history files.
  • Models / 3D Studio Background
    • Resolved a bug where "No Background" and Skybox controls stopped working after removing a model and loading a new one.
    • Fixed an environment layering issue by ensuring old visual assets are cleaned before re-initializing the scene.
    • Synchronized the viewport environment state with the panel toggles during the initial setup phase.
  • UI / Difference Viewer Loading
    • Fixed a bug where the progress bar in the difference viewer remained empty during file processing.
    • Re-engineered LoadingDiffControl to support determinate progress tracking with professional technical descriptions.
    • Integrated real-time progress reporting across all difference calculation workflows (Text, Image, and Audio Banks).