port: the runtime now says what the voice export is missing, at the moment it plays it
The manifest has carried the gap for weeks and the runtime printed '+ voice ADV' and nothing else. A reader of manifest.json gets a paragraph; a person LISTENING gets clean dialogue and no way to learn a stream is absent. NEW GAME already announces the screens it jumps over; audio had no equivalent. ManifestAudio gains -- one line naming what is KNOWN missing, absent meaning nothing is known rather than nothing is wrong -- and MenuAudio carries it so _play_video can print it. Verified on the boot's ADV and P7's S00A. The first version of the message was FALSE for one of the two assets: it said 'one is a start-truncated stream', which is ADV's story, where S00A's dropped chunks are digitally silent. Caught by reading the output for both, which I nearly skipped because the ADV line was obviously right. Now states the counts and points at the entry's why. A message generated once from a template but true only for the case it was written against is harder to see than a wrong number -- the sentence is well-formed and confident in both places. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N7FiFFFwbvG2uxdcEh8HyF
This commit is contained in:
@@ -543,6 +543,17 @@ func _play_video(name: String, skippable: bool) -> void:
|
||||
# would be authoring a sync constant nobody measured.
|
||||
if audio.play_voice(name):
|
||||
print(" + voice %s" % name)
|
||||
# 🔴 SAY WHAT IS MISSING, at the moment it is played.
|
||||
#
|
||||
# The manifest has known the voice export is incomplete for weeks and the
|
||||
# runtime did not repeat it. That asymmetry is the dangerous one for
|
||||
# audio: a reader of `manifest.json` gets a paragraph, and a person
|
||||
# LISTENING gets clean dialogue with no way to learn a stream is absent.
|
||||
# The same principle already governs NEW GAME, which announces the two
|
||||
# measured screens it jumps over rather than skipping them silently.
|
||||
var gap := audio.incomplete_for(name)
|
||||
if gap != "":
|
||||
print(" 🔴 KNOWN INCOMPLETE: %s" % gap)
|
||||
else:
|
||||
# Said out loud: silence is the audio failure that looks like success,
|
||||
# and "this cutscene is unvoiced" is a real answer for most of the disc.
|
||||
|
||||
Reference in New Issue
Block a user