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(); } }