10 "Coming from ZScream? yaze maps the same editors into a modern "
11 "workspace — open the concept guide for a side-by-side map.",
14 "ZScream tip: Overworld edits live here. Pause-menu map art is "
15 "Screen Editor → Overworld Map (not this canvas).",
18 "ZScream tip: Dungeon layout mirrors ZScream — room canvas "
19 "center, selectors left, inspector on the right (Settings can "
23 "ZScream tip: .yaze / .yazeproj projects track ROM + settings. "
24 "You can also open .zsproj files when available.",
27 "ZScream tip: Save Scope lets you choose ROM vs project vs "
28 "both — check File → Save Scope before writing.",
32 "ZScream tip: Tile16 palette + paint tools live in the "
33 "overworld sidebar (tile16 selector / workbench) — same role as "
34 "ZScream's tile picker.",
37 "ZScream tip: This ROM has ZSCustomOverworld ASM. Area sizes, "
38 "BG colors, and overlays depend on v1/v2/v3 — check Map "
39 "Properties for version-gated fields.",
42 "ZScream tip: Screen Editor → Overworld Map edits pause-menu "
43 "map art. Playable world tiles stay in the Overworld editor.",
48 if (!definition.
id || !definition.
message) {
61 auto it =
catalog_.find(std::string(
id));
82 if (dismissed.insert(std::string(
id)).second) {
92 return dismissed.find(std::string(
id)) != dismissed.end();
void Dismiss(std::string_view id)
Mark dismissed without showing (e.g. user opened the guide manually).
void SetEnabled(bool enabled)
std::function< void()> guide_callback_
bool IsDismissed(std::string_view id) const
void RegisterHint(FeatureHintDefinition definition)
Register or replace a hint definition (tests / future packs).
size_t dismissed_count() const
bool MaybeShow(std::string_view id)
void ResetDismissed()
Clear all dismissed ids and persist. Tips can fire again.
ToastManager * toast_manager_
std::unordered_map< std::string, FeatureHintDefinition > catalog_
void RegisterBuiltinHints()
Register built-in ZScream migrant tips. Safe to call more than once.
UserSettings * user_settings_
void Show(const std::string &message, ToastType type=ToastType::kInfo, float ttl_seconds=3.0f, std::string action_label={}, std::function< void()> on_action=nullptr)
constexpr const char * kZScreamDungeon
constexpr const char * kZScreamZso
constexpr const char * kZScreamOverworld
constexpr const char * kZScreamWelcome
constexpr const char * kZScreamSave
constexpr const char * kZScreamTile16
constexpr const char * kZScreamScreenMap
constexpr const char * kZScreamProjects
bool offer_guide
When true and a guide callback is set, toast shows an "Open guide" button.
bool feature_hints_enabled
std::unordered_set< std::string > dismissed_feature_hints