fix(engine): Home tile glyphs picked from FiraMono's actual coverage
The bundled face is FiraMono-Medium (assets/fonts/main.ttf), and its glyph table covers card suits (U+2660-2666) plus basic Geometric Shapes (U+25xx) but not Dingbats / Misc Symbols. The previous round of "BMP fallbacks" still picked from blocks FiraMono doesn't cover, so 4 of 5 tiles continued to render as tofu. Re-picked from ranges FiraMono actually has: - Daily: U+25C6 (BLACK DIAMOND) - Zen: U+25CB (WHITE CIRCLE) — Zen enso - Challenge: U+25B2 (BLACK UP-POINTING TRIANGLE) — climbing - TimeAttack: U+25B6 (BLACK RIGHT-POINTING TRIANGLE) — play / FF - Classic keeps U+2663 (BLACK CLUB SUIT) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -126,23 +126,26 @@ impl HomeMode {
|
|||||||
/// readability rather than visual fidelity. Swap to `Image` nodes
|
/// readability rather than visual fidelity. Swap to `Image` nodes
|
||||||
/// when art lands; the rest of the tile layout doesn't change.
|
/// when art lands; the rest of the tile layout doesn't change.
|
||||||
///
|
///
|
||||||
/// Picks are deliberately constrained to BMP / Dingbats codepoints
|
/// Picks are constrained to **card suits** (U+2660-2666) and basic
|
||||||
/// (Unicode 1.x) so the project's system-default font fallback
|
/// **Geometric Shapes** (U+25xx) — the two ranges the bundled
|
||||||
/// renders every glyph. Earlier emoji choices (📅 🌸 ⚡ ⏱) showed
|
/// FiraMono-Medium face actually covers. Earlier choices in
|
||||||
/// up as missing-glyph rectangles on Linux desktops without an
|
/// Dingbats (★ ❀ ✦) and Misc Symbols (⌚) rendered as
|
||||||
/// emoji font in the system font stack.
|
/// missing-glyph rectangles because FiraMono's coverage there is
|
||||||
|
/// minimal.
|
||||||
fn glyph(self) -> &'static str {
|
fn glyph(self) -> &'static str {
|
||||||
match self {
|
match self {
|
||||||
// Black club — card suit, every font has it.
|
// Black club — card suit, the obvious solitaire mark.
|
||||||
HomeMode::Classic => "\u{2663}",
|
HomeMode::Classic => "\u{2663}",
|
||||||
// Black star — Dingbats; reads as "today's special".
|
// Black diamond — Geometric Shapes; reads as the day's gem.
|
||||||
HomeMode::Daily => "\u{2605}",
|
HomeMode::Daily => "\u{25C6}",
|
||||||
// White florette — Dingbats; reads as a calm bloom for Zen.
|
// White circle — Geometric Shapes; reads as the Zen enso.
|
||||||
HomeMode::Zen => "\u{2740}",
|
HomeMode::Zen => "\u{25CB}",
|
||||||
// Black four-pointed star — Dingbats; reads as a hard target.
|
// Black up-pointing triangle — Geometric Shapes; reads as
|
||||||
HomeMode::Challenge => "\u{2726}",
|
// a mountain / a step up in difficulty.
|
||||||
// Watch face — Misc Symbols (Unicode 1.1), pre-emoji vintage.
|
HomeMode::Challenge => "\u{25B2}",
|
||||||
HomeMode::TimeAttack => "\u{231A}",
|
// Black right-pointing triangle — Geometric Shapes; the
|
||||||
|
// standard "play / fast-forward" mark for a timed run.
|
||||||
|
HomeMode::TimeAttack => "\u{25B6}",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user