Read telemetry names from running dedicated config; record Workshop 0.0.138
continuous-integration/drone/push Build is passing

This commit is contained in:
2026-11-01 19:49:47 +01:00
parent 6ba3036de6
commit 4f02ad64b4
11 changed files with 865 additions and 6 deletions
+14 -2
View File
@@ -2,7 +2,7 @@
from policy_harness import ROOT, body, run
p = ROOT / 'addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryServerName.c'
method = body(p, 'static string Resolve(')
for a, b in [('ServerConfig config', 'ServerConfig* config'), ('ServerInfo info', 'ServerInfo* info'),
for a, b in [('BackendApi backend = GetGame().GetBackendApi()', 'BackendApi* backend = backendAvailable ? &backendApi : nullptr'), ('SCR_DSConfig dedicated = new SCR_DSConfig()', 'SCR_DSConfig dedicated'), ('backend.GetRunningDSConfig', 'backend->GetRunningDSConfig'), ('dedicated.game.name', 'dedicated.game->name'), ('ServerConfig config', 'ServerConfig* config'), ('ServerInfo info', 'ServerInfo* info'),
('GetGame().GetServerInfo()', 'ServerLobbyApi::GetServerInfo()'), ('ServerLobbyApi.', 'ServerLobbyApi::'), ('config.GetName()', 'config->GetName()'), ('info.GetName()', 'info->GetName()')]:
method = method.replace(a, b)
run(r'''
@@ -19,10 +19,22 @@ struct ServerConfig {string name=" Community Escape ";string GetName(){return
struct ServerInfo {string name="Listed server";string GetName(){return name;}};
namespace ServerLobbyApi {ServerConfig cfg;ServerInfo info;bool configPresent=true,infoPresent=true;
ServerConfig* GetServerConfig(){return configPresent?&cfg:nullptr;}ServerInfo* GetServerInfo(){return infoPresent?&info:nullptr;}}
struct DSGameConfig {string name=" Dedicated game name ";};
struct SCR_DSConfig {DSGameConfig* game=nullptr;};
struct BackendApi {bool running=true,hasGame=true;DSGameConfig game;
bool GetRunningDSConfig(SCR_DSConfig& config){config.game=hasGame?&game:nullptr;return running;}} backendApi;
bool backendAvailable=true;
struct Names {
''' + method + r'''
};
int main(){
assert(Names::Resolve("")=="Dedicated game name");
assert(Names::Resolve(" Manual label ")=="Manual label");
backendApi.game.name="Renamed dedicated server";assert(Names::Resolve("")=="Renamed dedicated server");
backendApi.hasGame=false;assert(Names::Resolve("")=="Community Escape");
backendApi.hasGame=true;backendApi.game.name=" ";assert(Names::Resolve("")=="Community Escape");
backendApi.running=false;assert(Names::Resolve("")=="Community Escape");
backendAvailable=false;
assert(Names::Resolve("")=="Community Escape");
assert(Names::Resolve(" Manual label ")=="Manual label");
assert(Names::Resolve(" ")=="Community Escape");
@@ -36,4 +48,4 @@ int main(){
''')
telemetry = p.with_name('ERR_Telemetry.c')
assert 'ERR_TelemetryServerName.Resolve(m_Config.ServerName)' in body(telemetry, 'protected void Event(')
print('PASS: automatic server config/lobby name, explicit override, startup absence, rename and payload bound')
print('PASS: running dedicated configuration, automatic server config/lobby name, explicit override, startup absence, rename and payload bound')