AssetsManager_v3.2.0.1
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
MainWindowthat 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 (
BackupManagerandUpdateExtractor) 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.
- Re-engineered heavy disk operations (
- 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 redundanthistory_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.
- Standardized backup storage: moved all automatic history and manual results to the unified
- 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 redundantnew/andolds/subfolders. - Cleaned up obsolete synchronization logic and dead code related to legacy hash backup strategies.
- Re-engineered the hash management system to use a single, unified
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
ConfirmationDialogandInputDialogto 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, andAudioBankLinkerService) to correctly resolve assets from their respective WAD isolated folders.
- Resolved a critical architectural bug where localized files (e.g.,
- 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
ChunkDiffTypeenums 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
LoadingDiffControlto support determinate progress tracking with professional technical descriptions. - Integrated real-time progress reporting across all difference calculation workflows (Text, Image, and Audio Banks).