Skip to content

Add owned-item removal, optional acquisition resets, and folder export - #5

Merged
Traiver merged 2 commits into
Traiver:mainfrom
x43x61x69:main
Nov 10, 2026
Merged

Traiver merged 2 commits into
Traiver:mainfrom
x43x61x69:main

Conversation

@x43x61x69

@x43x61x69 x43x61x69 commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #4.

Adds removal controls for supported owned single items in the shared editor, available on both Windows and macOS. This lets users remove items added by the editor, including masks. Acquisition history is preserved by default; an optional Clear acquisition flags checkbox clears the catalog-mapped flags together with the item. This does not rewind story events or quest progress.

  • Reject removal of weapons or shields equipped in either era, unsupported stock values, and default clothes.
  • Reject acquisition resets that conflict with Progress edits or flags shared by items still owned.
  • Add Export to Folder on both platforms alongside ZIP export. ZIP and folder names include a UTC timestamp before the UUID, such as Ocarina-of-Time-slot_00-Patch-20261109_094216_<uuid>. Both formats put replacement files under 20261109_094216/ instead of files/, using the same timestamp as the outer name. manifest.json stays at the export root. Folder export never overwrites the source backup.
  • Add save-editing regression tests and tests for both native folder exporters, plus a brief upstream credit and dated feature list in the README.
  • Bump the editor version to 1.0.2 and keep the Swift module cache within the build directory.

Validation:

  • node --test tests/editor.test.cjs: 7 tests passed using synthetic saves, covering removal, optional acquisition resets, re-export, additions, conflicts, UTC conversion, UUID naming, and actual ZIP entry paths for standalone and full-backup layouts.
  • python3 tests/host_exports.py: Swift and C# export helpers compiled and passed byte-for-byte output, timestamp/UUID destination naming, no-overwrite behavior, matching timestamp paths, invalid names, duplicates, and size-limit checks.
  • macOS v1.0.2 universal app built for arm64 and x86_64; code signature verified.
  • macOS v1.0.1 UI smoke test (before the export naming update): removed a Boomerang, cleared its two mapped flags, exported to a folder, then re-read the output to confirm the changes and that the source save was untouched.
  • git diff --check: passed.

Windows UI and in-game behavior have not yet been tested. In particular, clearing acquisition flags is not a guarantee that an already broken quest sequence is repaired.

@Traiver
Traiver merged commit de26f03 into Traiver:main Nov 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Removing already owned item

2 participants