Index: binaries/data/mods/public/simulation/data/territorymanager.rnc
===================================================================
--- binaries/data/mods/public/simulation/data/territorymanager.rnc
+++ binaries/data/mods/public/simulation/data/territorymanager.rnc
@@ -14,4 +14,7 @@
element BorderSeparation {
xsd:decimal
}
+ element Visibility {
+ xsd:boolean
+ }
}
Index: binaries/data/mods/public/simulation/data/territorymanager.rng
===================================================================
--- binaries/data/mods/public/simulation/data/territorymanager.rng
+++ binaries/data/mods/public/simulation/data/territorymanager.rng
@@ -19,5 +19,8 @@
+
+
+
Index: binaries/data/mods/public/simulation/data/territorymanager.xml
===================================================================
--- binaries/data/mods/public/simulation/data/territorymanager.xml
+++ binaries/data/mods/public/simulation/data/territorymanager.xml
@@ -3,4 +3,5 @@
4
0.75
0.85
+ true
Index: source/graphics/TerritoryTexture.cpp
===================================================================
--- source/graphics/TerritoryTexture.cpp
+++ source/graphics/TerritoryTexture.cpp
@@ -154,7 +154,7 @@
PROFILE("recompute territory texture");
CmpPtr cmpTerritoryManager(m_Simulation, SYSTEM_ENTITY);
- if (!cmpTerritoryManager)
+ if (!cmpTerritoryManager || !cmpTerritoryManager->GetVisibility())
return;
std::vector bitmap(m_MapSize * m_MapSize * 4);
Index: source/simulation2/components/CCmpTerritoryManager.cpp
===================================================================
--- source/simulation2/components/CCmpTerritoryManager.cpp
+++ source/simulation2/components/CCmpTerritoryManager.cpp
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018 Wildfire Games.
+/* Copyright (C) 2019 Wildfire Games.
* This file is part of 0 A.D.
*
* 0 A.D. is free software: you can redistribute it and/or modify
@@ -128,7 +128,6 @@
m_EnableLineDebugOverlays = false;
m_DirtyID = 1;
m_DirtyBlinkingID = 1;
- m_Visible = true;
m_ColorChanged = false;
m_AnimTime = 0.0;
@@ -146,6 +145,8 @@
m_ImpassableCost = (u8)impassableCost;
m_BorderThickness = externalParamNode.GetChild("TerritoryManager").GetChild("BorderThickness").ToFixed().ToFloat();
m_BorderSeparation = externalParamNode.GetChild("TerritoryManager").GetChild("BorderSeparation").ToFixed().ToFloat();
+ m_Visible = externalParamNode.GetChild("TerritoryManager").GetChild("Visibility").ToBool();
+ m_VisibilityEnabled = m_Visible;
}
virtual void Deinit()
@@ -306,14 +307,21 @@
void SetVisibility(bool visible)
{
- m_Visible = visible;
+ if (m_VisibilityEnabled)
+ m_Visible = visible;
}
+ bool GetVisibility() const
+ {
+ return m_Visible;
+ }
+
void UpdateColors();
private:
bool m_Visible;
+ bool m_VisibilityEnabled;
};
REGISTER_COMPONENT_TYPE(TerritoryManager)
Index: source/simulation2/components/ICmpTerritoryManager.h
===================================================================
--- source/simulation2/components/ICmpTerritoryManager.h
+++ source/simulation2/components/ICmpTerritoryManager.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018 Wildfire Games.
+/* Copyright (C) 2019 Wildfire Games.
* This file is part of 0 A.D.
*
* 0 A.D. is free software: you can redistribute it and/or modify
@@ -99,6 +99,11 @@
virtual void SetVisibility(bool visible) = 0;
/**
+ * Returns whether territory borders should be drawn.
+ */
+ virtual bool GetVisibility() const = 0;
+
+ /**
* Updates the boundary and territory colors.
*/
virtual void UpdateColors() = 0;