Capture current mission, AI, map and administration development
Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user