voicePromptsAppendLanguageString() turns a language-string pointer into a
prompt index (NUM_VOICE_PROMPTS + offset), and voicePromptsPlay() then reads
tableOfContents[index + 1]. Strings added after the voice-prompt pack was
built (the SMS menu entries) land past the 368-entry table, so the player
read off the end of the array and the radio crashed when the Messages menu
announced a submenu name with voice prompts enabled.
Clamp any index at or beyond the last table slot to PROMPT_SILENCE, so such
strings are simply not spoken. Also protects the pre-existing strings sitting
at the very end of the table.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>