// Private fixture: launch the published Escape entry and observe normal startup. modded class ArmaReforgerScripted { protected bool m_ERRLauncherChecked; protected bool m_ERRLauncherCompleted; protected int m_ERRLauncherFailures; void ERR_LauncherCheck(bool ok, string label) { if (!ok) m_ERRLauncherFailures++; PrintFormat("ERR AUTOMATIC LAUNCHER: pass=%1 check=%2", ok, label); } override bool OnGameStart() { SCR_MissionHeader header = SCR_MissionHeader.Cast(GetMissionHeader()); if (!m_ERRLauncherChecked && header && header.GetHeaderResourceName() == "{C1E20667DCE324ED}Missions/ERR_Everon.conf") { m_ERRLauncherChecked = true; ERR_LauncherCheck(header.m_sName == "Co10 Escape Reintroduced — Automatic terrain", "Escape-owned launcher header has terrain-neutral title"); ERR_LauncherCheck(GetMissionName() == header.m_sName, "native name callback returns the launcher title"); ERR_LauncherCheck(header.m_sDetails.Contains("No terrain connector"), "launcher includes setup description"); PrintFormat("ERR AUTOMATIC LAUNCHER: initialWorld=%1 name=%2", GetWorldFile(), GetMissionName()); } return super.OnGameStart(); } override void OnUpdate(BaseWorld world, float timeslice) { super.OnUpdate(world, timeslice); if (m_ERRLauncherCompleted || !m_ERRLauncherChecked) return; SCR_MissionHeader header = SCR_MissionHeader.Cast(GetMissionHeader()); if (!header || header.GetHeaderResourceName() != "{C1E20667DCE324ED}Missions/ERR_Everon.conf") return; ERR_GameMode mode = ERR_GameMode.Get(); if (!mode || mode.Phase() == ERR_Phase.PREPARING) return; m_ERRLauncherCompleted = true; ERR_LauncherCheck(GetWorldFile().Contains("ERR_Everon.ent"), "expected terrain is running"); ERR_LauncherCheck(GetMissionName().Contains("Automatic terrain"), "expected runtime mission name"); PrintFormat("ERR AUTOMATIC LAUNCHER COMPLETE: failures=%1; phase=%2; scenario=%3; world=%4; name=%5", m_ERRLauncherFailures, mode.Phase(), header.GetHeaderResourceName(), GetWorldFile(), GetMissionName()); } }