Skip to content

Tags: themuffinator/PakFu

Tags

v0.1.19.9

Toggle v0.1.19.9's commit message
Windows updater: wait for installer and relaunch

Make the Windows deferred update launcher wait for the installer to finish and relaunch the correct PakFu binary. Pass the current app path into the generated batch script, add APP/APP_TO_START handling, use /wait when launching MSI or installer artifacts, and prefer the installer-managed %LOCALAPPDATA%\PakFu\pakfu.exe if present. Also fix the startDetached invocation to execute the composed command string.

v0.1.19.8

Toggle v0.1.19.8's commit message
Add comprehensive image writer and batch options

Introduce a new image_writer module and integrate format-aware batch image conversion across the app. Adds src/formats/image_writer.(cpp|h) with encoders for legacy/custom formats (pcx, wal, swl, mip, lmp, ftx, dds) and utility functions for palette/quantization, mip generation, and Qt-backed writers. Wire the new ImageWriteOptions into PakTab: UI controls and model options for format, quality, compression, palette source, dithering, alpha threshold and embedded palettes; conversion pipeline now uses write_image_file and handles palette selection/validation. Also: add image_writer to meson build, update README and CHANGELOG to document new capabilities, handle palette/Miniz zlib-compat defines in pak_tab/zip_archive, use QByteArrayView in roq_probe to avoid extra copies, and replace palette-change handling in CfgSyntaxHighlighter with an application eventFilter to refresh theme on palette changes. Several small platform/build messaging tweaks included.

v0.1.19.7

Toggle v0.1.19.7's commit message
Normalize dir prefixes and fix path prefix checks

Introduce pak_path_starts_with (case-insensitive on Windows) and normalize_dir_prefix_path helpers to centralize path-prefix logic and ensure directory prefixes always end with '/'. Replace many direct startsWith checks with pak_path_starts_with and normalize_dir_prefix_path to fix incorrect prefix matching and platform case issues. Add an optional QVector<bool>* imported return from import_urls to track per-URL import success and use it to only remove cut items that were actually imported. Adjust add_folder_from_path to only mark changes when the virtual root was newly created or deletions changed, and normalize deleted dir prefix insertions. Misc: small refactors to use normalized prefixes and pak_paths_equal for directory comparisons; header updated for the new import_urls signature.

v0.1.19.6

Toggle v0.1.19.6's commit message
Add model animation & skeleton support

Introduce animation and skeleton handling across model loaders and the Vulkan viewer.

- Add animation_frames, skeleton_frames, skeleton_parents and native flags to LoadedModel and support fallback guide skeleton generation.
- Add finalize_loaded helper to normalize models after parsing (merge frames, compute bounds, validate or synthesize skeletons).
- Robust multi-frame parsing for formats (MDL/MD2/MD3/MDC/TAN etc.): read per-frame vertex data, build animation frames, compute normals/bounds, and populate mesh/animation metadata.
- For MD3/MDC/TAN add per-surface frame sources, frame parameter handling, and origin correction heuristics where applicable.
- ModelViewerVulkanWidget: add animation control state (play/pause, loop, speed, frame selection), default per-format FPS, animation timer/tick handling, apply_animation_state integration, and skeleton overlay rendering updates (VB/UB offsets and draw path).
- Update CHANGELOG with an unreleased note about fixing stale folder listings and mention notable changes.

These changes enable playback and visualization of animated models and skeleton overlays, and make loaders more resilient to various frame encodings and surface layouts.

v0.1.19.5

Toggle v0.1.19.5's commit message
Add model animation & skeleton support

Introduce animation and skeleton handling across model loaders and the Vulkan viewer.

- Add animation_frames, skeleton_frames, skeleton_parents and native flags to LoadedModel and support fallback guide skeleton generation.
- Add finalize_loaded helper to normalize models after parsing (merge frames, compute bounds, validate or synthesize skeletons).
- Robust multi-frame parsing for formats (MDL/MD2/MD3/MDC/TAN etc.): read per-frame vertex data, build animation frames, compute normals/bounds, and populate mesh/animation metadata.
- For MD3/MDC/TAN add per-surface frame sources, frame parameter handling, and origin correction heuristics where applicable.
- ModelViewerVulkanWidget: add animation control state (play/pause, loop, speed, frame selection), default per-format FPS, animation timer/tick handling, apply_animation_state integration, and skeleton overlay rendering updates (VB/UB offsets and draw path).
- Update CHANGELOG with an unreleased note about fixing stale folder listings and mention notable changes.

These changes enable playback and visualization of animated models and skeleton overlays, and make loaders more resilient to various frame encodings and surface layouts.

v0.1.19.4

Toggle v0.1.19.4's commit message
Create FUNDING.yml

v0.1.19.3

Toggle v0.1.19.3's commit message
Restrict updater to full releases only

Treat update channels as full releases only and ignore GitHub prereleases. Update README and CLI help to document the change. Refactor UpdateService to always use the /releases endpoint via a new releases_api_url helper, remove channel-based prerelease handling, and filter out draft/prerelease entries when parsing/selecting releases. Also update user-facing messages to indicate "full release" where appropriate.

v0.1.19.2

Toggle v0.1.19.2's commit message
Add linuxdeployqt AppImage payload

Add packaged AppImage payload under squashfs-root (AppRun wrapper, linuxdeployqt binary, helper tools, Qt/libs, desktop entry and SVG icon) and include _artifact_ubuntu/pakfu artifact. Update .gitignore to ignore dist-wsl-test, *.log and _log_* files. AppRun unsets QTDIR and QT_PLUGIN_PATH before exec to avoid interfering environment variables.

v0.1.19.1

Toggle v0.1.19.1's commit message
CI: accept AppImage output from repo root