Files
Shipwright/soh
Mark Eldridge 1445da3376 Add Hint Tracker window for randomizer saves (#6906)
A new dockable tracker window (Randomizer menu, alongside the other
trackers) that records every hint the player has been shown and
presents them in two tabs:

- Locations: every hint location grouped by area, with hint text
  masked as "???" until the stone or NPC has actually been read.
  Auto-scrolls to the current area on scene transitions.
- Journal: only hints the player has already read, grouped by hint
  type with the most valuable first. Way of the Hero and Foolish
  entries render as compact area lines in configurable colors
  defaulting to the in-game textbox palette; item hints are ordered
  by the same adjusted item category that drives chest appearance,
  so ice trap disguises rank as their cover item, and Mysterious
  Shuffle disables the ranking.

The design is strictly spoiler-free: the tracker only ever shows what
the player has been told in-game. There is no reveal option, the
Journal hides unread hints entirely (its headers show read counts
only, never totals), and requirements like Mask of Truth are
respected because detection sits on the exact message-resolution
paths that decide whether a hint is shown.

Detection: a new OnRandoHintRevealed GameInteractor hook fires from
ReadHintMessage helpers in the gossip stone and static hint message
builders whenever a hint message is resolved for display; the tracker
subscribes to it. Read state persists per save file in a new
"hintTrackerData" SaveManager section as canonical hint names (robust
against enum reordering; unknown or malformed entries are skipped on
load), with the read set mutex-guarded against the threaded save path.

The window follows the sibling trackers' conventions: BeginFloatWindows
window/floating modes with combo-button and pause gating, a two-column
settings popout matching the Check Tracker's layout (behavior settings
left, colors right), header visibility toggles, font scaling, search
filtering, and per-save scoping with a placeholder on vanilla saves.
User-facing strings go through CustomMessage with EN/DE/FR text.

Co-authored-by: meldridge <meldridge@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 23:49:24 +00:00
..
2026-07-08 13:47:32 +00:00
2025-02-04 10:48:41 +01:00
2025-04-01 22:33:38 -04:00