modded class ArmaReforgerScripted
{
 protected int m_ERRTitleFailures;
 void ERR_TitleCheck(bool success, string label)
 {
  if (!success) m_ERRTitleFailures++;
  PrintFormat("ERR LIVE TERRAIN TITLE: pass=%1 check=%2", success, label);
 }
 override bool OnGameStart()
 {
  SCR_MissionHeader header = SCR_MissionHeader.Cast(GetMissionHeader());
  ResourceName scenario = header.GetHeaderResourceName();
  ResourceName world = header.GetWorldResourceName();
  string original = header.m_sName;
  string originalMode = header.m_sGameMode;
  PrintFormat("ERR LIVE TERRAIN CONTEXT: loaded=%1 root=%2 headerWorld=%3", GetWorldFile(), GetWorld().GetSubSceneName(0), world);
  GetGame().ERR_PresentTerrainTakeover();
  string expected = "Co10 Escape Reintroduced - Nogova";
  ERR_TitleCheck(header.m_sName == expected, "initial confirmed world");
  // Reproduce a stale copied title after the header already became Escape.
  m_ERRAppliedTerrainTitle = "Co10 Escape Reintroduced - Everon";
  header.m_sName = m_ERRAppliedTerrainTitle;
  ERR_TitleCheck(GetGame().GetMissionName() == expected, "server callback refreshes already-Escape header");
  ERR_TitleCheck(GetGame().ERR_TerrainLoadingTitle(header) == expected, "loading title uses current presentation");
  // An incoming different scenario keeps its own name. When explicitly bound
  // to this running world, even its stale world resource cannot override Nogova.
  SCR_MissionHeader old = SCR_MissionHeader.Cast(MissionHeader.ReadMissionHeader("{C1E20667DCE324ED}Missions/ERR_Everon.conf"));
  ERR_TitleCheck(old != null, "Everon test header available");
  if (old)
  {
   ERR_TitleCheck(GetGame().ERR_TerrainLoadingTitle(old) == old.m_sName, "different incoming scenario isolated");
   m_ERRPresentedTerrainHeader = old;
   ERR_TitleCheck(GetGame().ERR_TerrainMissionTitle(old) == expected, "loaded Nogova wins over bound Everon world header");
   m_ERRPresentedTerrainHeader = header;
  }
  GetGame().ERR_PresentTerrainTakeover();
  ERR_TitleCheck(header.m_sName == expected, "repeat presentation retains actual terrain");
  ERR_TitleCheck(header.GetHeaderResourceName() == scenario && header.GetWorldResourceName() == world, "scenario and world resources unchanged");
  ERR_RestoreTerrainPresentation();
  ERR_TitleCheck(header.m_sName == original && header.m_sGameMode == originalMode, "cleanup restores original metadata");
  PrintFormat("ERR LIVE TERRAIN TITLE COMPLETE: failures=%1", m_ERRTitleFailures);
  return super.OnGameStart();
 }
}
