package parameter // Row-reset funnels, drawn in the inter-tile gap row of the player lane. // Drop = jump expiry (falling to the base row), Rise = slide expiry. // %s is the countdown; formatted width must not exceed RenderNoteWidth const ( DropFunnelFormat = `\\ %s //` RiseFunnelFormat = `// %s \\` ) // Inbound — chords until the lane shuts. // Clear — chords until the lane reopens. // Open — the wall run reaches the window edge; the value is a lower bound. // Trap — the lane reopens for <= TrapGapMax chords before shutting again; // flagged on both the inbound and the clear timer const ( TimerInboundPrefix = '▼' TimerClearPrefix = '▲' TimerOpenSuffix = '+' TimerTrapSuffix = '!' ) // StripEmptyChar is lookahead strip rail cell — a chord with no content at this position const StripEmptyChar = '·' // ItemFadeChars is the glyph tail of a consumed item's burn-out. Stage 0 // keeps the item glyph; later stages collapse it into the rail cell var ItemFadeChars = [...]rune{'+', StripEmptyChar} // UnknownChar is placeholder for a Value with no authored visual. // Keeps NoteVisual total so an unrendered kind is visible rather than eating an item slot const UnknownChar = '?' // MutedText marks the host audio gate in the header. ASCII, so it // renders in both atlases const MutedText = "MUTE" // QuadrantChars provides 2x2 sub-cell resolution for TrueColor mode // Bitmap encoding: bit0=UL, bit1=UR, bit2=LL, bit3=LR // Layout: [UL][UR] // // [LL][LR] var QuadrantChars = [16]rune{ ' ', // 0000 - empty '▘', // 0001 - upper-left '▝', // 0010 - upper-right '▀', // 0011 - upper half '▖', // 0100 - lower-left '▌', // 0101 - left half '▞', // 0110 - anti-diagonal '▛', // 0111 - UL + UR + LL '▗', // 1000 - lower-right '▚', // 1001 - diagonal '▐', // 1010 - right half '▜', // 1011 - UL + UR + LR '▄', // 1100 - lower half '▙', // 1101 - UL + LL + LR '▟', // 1110 - UR + LL + LR '█', // 1111 - full block } // Half256Chars provides vertical half-cell resolution for 256-color mode. // Unicode block characters, CP437-equivalent visuals, naked-TTY compatible // Bitmap encoding: bit0=top, bit1=bottom var Half256Chars = [4]rune{ ' ', // 00 - empty '\u2580', // 01 - top half only (▀) '\u2584', // 10 - bottom half only (▄) '\u2588', // 11 - both halves (█) } // Horizontal256Chars provides horizontal half-cell characters. // Reserved for future horizontal sub-pixel support var Horizontal256Chars = [2]rune{ '\u258C', // ▌ - left half '\u258E', // ▐ - right half } // Density256Chars provides intensity variants for trail and glow effects, // ordered lowest to highest density. Also indexes wall proximity bands var Density256Chars = [4]rune{ '\u2591', // ░ - light shade (25%) '\u2592', // ▒ - medium shade (50%) '\u2593', // ▓ - dark shade (75%) '\u2588', // █ - full block (100%) } // Single-line box drawing characters const ( BorderSingleHorizontal = '─' // U+2500 BorderSingleVertical = '│' // U+2502 BorderSingleTopLeft = '┌' // U+250C BorderSingleTopRight = '┐' // U+2510 BorderSingleBottomLeft = '└' // U+2514 BorderSingleBottomRight = '┘' // U+2518 BorderSingleVerticalRight = '├' // U+251C BorderSingleVerticalLeft = '┤' // U+2524 BorderSingleHorizontalDown = '┬' // U+252C BorderSingleHorizontalUp = '┴' // U+2534 BorderSingleCross = '┼' // U+253C ) // Double-line box drawing characters const ( BorderDoubleHorizontal = '═' // U+2550 BorderDoubleVertical = '║' // U+2551 BorderDoubleTopLeft = '╔' // U+2554 BorderDoubleTopRight = '╗' // U+2557 BorderDoubleBottomLeft = '╚' // U+255A BorderDoubleBottomRight = '╝' // U+255D BorderDoubleVerticalRight = '╠' // U+2560 BorderDoubleVerticalLeft = '╣' // U+2563 BorderDoubleHorizontalDown = '╦' // U+2566 BorderDoubleHorizontalUp = '╩' // U+2569 BorderDoubleCross = '╬' // U+256C )