Bundle mission speech with an admin mute option and fix live audio downloads

This commit is contained in:
2026-10-15 16:53:39 +02:00
parent 07c4d70de5
commit 009b2fb591
181 changed files with 19248 additions and 103 deletions
+6 -2
View File
@@ -5,7 +5,7 @@ p = ROOT / 'addons/core/Scripts/Game/ERR/00_Core/ERR_SpeechMenu.c'
src = p.read_text()
layout = (ROOT / 'addons/core/UI/layouts/ERR/AdminMenu.layout').read_text()
menu = ROOT / 'addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c'
for name in ('OpenTTS', 'TTSPage', 'TTSEndpoint', 'TTSToken', 'TTSTest', 'TTSDisable', 'TTSPasteEndpoint', 'TTSPasteToken', 'TTSStatus', 'TTSTokenStatus', 'TTSSelectionState'):
for name in ('OpenTTS', 'TTSPage', 'TTSEndpoint', 'TTSToken', 'TTSTest', 'TTSDisable', 'TTSPasteEndpoint', 'TTSPasteToken', 'TTSStatus', 'TTSTokenStatus', 'TTSSelectionState', 'RecordingsOn', 'RecordingsOff', 'RecordingsLabel'):
assert f'Name "{name}"' in layout, name
assert '"TTSPage"' in body(menu, 'static array<string> Pages(')
assert '"OpenTTS"' in body(menu, 'static array<string> Navigation(')
@@ -24,9 +24,10 @@ run(r'''
#include <string>
struct string:std::string {using std::string::string;int Length(){return size();}};
float clockNow=1000;
struct ERR_SpeechService {int tests=0,disables=0;string endpoint,secret;
struct ERR_SpeechService {int tests=0,disables=0,recordingChanges=0;bool recordings=true;string endpoint,secret;
void TestAndEnable(void*,string e,string s){tests++;endpoint=e;secret=s;}
void Disable(void*){disables++;}
void SetRecordings(void*,bool value){recordingChanges++;recordings=value;}
};
struct Session {bool authorized=true;int replies=0;float m_LastRequest=0;ERR_SpeechService* serviceValue;
bool Authorize(){return authorized;}void SpeechReply(string){replies++;}
@@ -41,6 +42,9 @@ int main(){
session.Speech(1,"","");assert(!service.disables);
clockNow+=250;session.Speech(1,"","");assert(service.disables==1);
clockNow+=250;session.Speech(8,"","");assert(service.tests==1&&service.disables==1);
clockNow+=250;session.authorized=false;session.Speech(3,"","");assert(service.recordings&&!service.recordingChanges);
session.authorized=true;session.Speech(3,"","");assert(!service.recordings&&service.recordingChanges==1);
clockNow+=250;session.Speech(2,"","");assert(service.recordings&&service.recordingChanges==2);
clockNow+=250;session.serviceValue=nullptr;session.Speech(0,"","");assert(session.replies==1);
}
''')