https://gitlab.synchro.net/main/sbbs/-/commit/b454a7de6ceaefa915be41a3
Modified Files:
src/doors/syncconquer/door/door_io.c src/doors/termgfx/term.c term.h Log Message:
syncalert: hide the SyncTERM status line for a true 640x400 canvas
SyncTERM defaults to an 80x24 / 640x384 drawing area (its status line takes
the 25th row), so a 640x400 game fractionally downscales 0.96x and RA's single-pixel vertical bars drop -- text and gauges look degraded; it's
crisp only at a real 640x400.
Hide the status line at entry with DECSSDT (CSI 0 $ ~ = "no status
display"), emitted BEFORE the canvas probe so the probe reports the
reclaimed 640x400 and every image tier then renders 1:1. The client's
current setting is queried first with DECRQSS (DCS $ q $ ~ ST); door_io_
pump() captures the reply (a raw-byte scan, since the DCS reply is
otherwise swallowed) and door_term_restore() puts it back on exit -- or the usual "indicator" default if the terminal doesn't answer the query.
Terminals with no status line / no DECSSDT ignore all of it.
Added to termgfx as a reusable feature (term.c/term.h): the termgfx_term_status_off string, termgfx_term_status_set() restore builder,
and termgfx_term_parse_status() reply parser -- so SyncDuke/SyncDOOM can reclaim the row the same way.
Co-Authored-By: Claude Fable 5 <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net