Skip to content

Print blend-transition keys as clip name pairs - #8

Open
DexalGT wants to merge 2 commits into
mainfrom
fix/bin-blend-keys
Open

Print blend-transition keys as clip name pairs#8
DexalGT wants to merge 2 commits into
mainfrom
fix/bin-blend-keys

Conversation

@DexalGT

@DexalGT DexalGT commented Aug 10, 2026

Copy link
Copy Markdown
Member

AnimationGraphData.mBlendDataTable is a map[u64, …] whose keys are not numbers — the u64 packs two FNV1a-32 clip hashes (source high, destination low). Quartz rendered them as meaningless 20-digit integers in animation BIN text.

tree_to_text_with_hashes now passes TextOptions { blend_keys: true }, so the printer emits Run -> Death. Flint already does the same in flint-bin/src/codec.rs.

  • Every text path in the app goes through tree_to_text_cached -> that one function, so this is a single change.
  • from_text accepts the readable pair, the raw u64 and the packed-hex dialect unconditionally, so text_to_tree needs no flag and the save path round-trips byte-exactly either way.
  • An unresolved half stays hex (Attack1 -> 0xdeadbeef) and still parses.

Also bumps ritoshark from 2ed5554 to 24fe6b3 (current main, the rev Flint pins), which is what carries the blend-key support.

Verified with cargo test -p quartz-lib --lib --tests (261 passed) and cargo clippy --workspace --lib --bins --tests (clean).

Note: crates/quartz-lib/examples/fbx_*.rs and mktri.rs fail to compile on main already (they import fbxcel, which is in no manifest, and a removed model_bridge::fbx_writer), so --all-targets runs need scoping around them.

mBlendDataTable packs two clip hashes per u64 key, so animation bins
rendered them as 20-digit integers. Match Flint and print the readable
From -> To form; the parser already accepts both.
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.

1 participant