https://gitlab.synchro.net/main/sbbs/-/commit/01acd2e0d563845cd750a33a
Modified Files:
src/doors/syncconquer/door/video_termgfx.cpp vqaaudio_termgfx.cpp
Log Message:
syncconquer: software fills + full-volume cutscenes (both doors)
Two fixes in the door's shared terminal video/audio backend, each
affecting both syncalert (Red Alert) and syncdawn (Tiberian Dawn).
video_termgfx.cpp -- force AllowHardwareBlitFills off. The engine's GraphicViewPortClass::Fill_Rect routes fills of >= 32x32 px to the video surface's hardware FillRect() when AllowHardwareBlitFills is set and the surface IsHardware (which video surfaces are flagged as). The door's null backend surface is video_null.cpp's VideoSurfaceDummy, whose FillRect()
is a no-op -- so every large fill was silently dropped. Dialog
BACKGROUNDS (a full-dialog Fill_Rect is large) vanished while their
borders and gadgets (smaller fills / Draw_Rect, always software) still rendered, so the screen behind showed through. There is no real hardware surface here, so route every fill through the software path.
vqaaudio_termgfx.cpp -- play cutscene audio at full channel volume. The
FMV audio and the game theme share the terminal music channel;
VQA_StartAudio flushes the channel queue but did not reset its volume,
so a cutscene inherited whatever (possibly low or muted) music volume
the theme left. A briefing shown right after the menu was thus
(near-)inaudible even though its audio decoded and shipped fine. A
cutscene's audio is mixed dialog+SFX+music, not "music", so it now
plays at full channel volume regardless of the music-volume slider.
Co-Authored-By: Claude Opus 4.8 (1M context) <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net