also checking random zones now
This commit is contained in:
+48
-40
@@ -166,62 +166,36 @@ function Database.New(Logger)
|
|||||||
|
|
||||||
self._logger:debug("initiated zone tables, continuing with descriptions")
|
self._logger:debug("initiated zone tables, continuing with descriptions")
|
||||||
do --load markers
|
do --load markers
|
||||||
|
|
||||||
if env.mission.drawings and env.mission.drawings.layers then
|
if env.mission.drawings and env.mission.drawings.layers then
|
||||||
for i, layer in pairs(env.mission.drawings.layers) do
|
for i, layer in pairs(env.mission.drawings.layers) do
|
||||||
if string.lower(layer.name) == "author" then
|
if string.lower(layer.name) == "author" then
|
||||||
for key, layer_object in pairs(layer.objects) do
|
for key, layer_object in pairs(layer.objects) do
|
||||||
|
|
||||||
if Spearhead.Util.startswith(string.lower(layer_object.name), "completeat", true) == true then
|
if Spearhead.Util.startswith(string.lower(layer_object.name), "completeat", true) == true then
|
||||||
for _, zonename in pairs(self._tables.MissionZones) do
|
|
||||||
if Spearhead.DcsUtil.isPositionInZone(layer_object.mapX, layer_object.mapY, zonename) == true then
|
|
||||||
if self._tables.MissionAnnotations[zonename] == nil then
|
|
||||||
self._tables.MissionAnnotations[zonename] = {
|
|
||||||
description = nil,
|
|
||||||
dependsOn = {}
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
local missionAnnotation = self._tables.MissionAnnotations[zonename]
|
local annotationData = self:getMissionMetaDataForDrawLayer(layer_object)
|
||||||
local number = tonumber(layer_object.text)
|
if annotationData then
|
||||||
|
local number = tonumber(layer_object.text)
|
||||||
|
if number and number > 1 then
|
||||||
|
number = number / 100
|
||||||
|
|
||||||
if number and number > 1 then
|
|
||||||
number = number / 100
|
|
||||||
end
|
|
||||||
missionAnnotation.completeAt = number
|
|
||||||
end
|
end
|
||||||
|
annotationData.completeAt = number
|
||||||
end
|
end
|
||||||
elseif Spearhead.Util.startswith(string.lower(layer_object.name), "dependson", true) == true then
|
elseif Spearhead.Util.startswith(string.lower(layer_object.name), "dependson", true) == true then
|
||||||
|
local annotationData = self:getMissionMetaDataForDrawLayer(layer_object)
|
||||||
for _, zonename in pairs(self._tables.MissionZones) do
|
if annotationData then
|
||||||
if Spearhead.DcsUtil.isPositionInZone(layer_object.mapX, layer_object.mapY, zonename) == true then
|
table.insert(annotationData.dependsOn, layer_object.text)
|
||||||
if self._tables.MissionAnnotations[zonename] == nil then
|
|
||||||
self._tables.MissionAnnotations[zonename] = {
|
|
||||||
description = nil,
|
|
||||||
dependsOn = {}
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
for _, splitDependency in pairs(Spearhead.Util.split_string(layer_object.text, ",")) do
|
|
||||||
table.insert(self._tables.MissionAnnotations[zonename].dependsOn, splitDependency)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
elseif Spearhead.Util.startswith(layer_object.name, "stagebriefing", true) == true then
|
elseif Spearhead.Util.startswith(layer_object.name, "stagebriefing", true) == true then
|
||||||
--[[
|
--[[
|
||||||
TODO: Stage Briefings
|
TODO: Stage Briefings
|
||||||
]]
|
]]
|
||||||
else
|
else
|
||||||
for _, zonename in pairs(self._tables.MissionZones) do
|
local annotationData = self:getMissionMetaDataForDrawLayer(layer_object)
|
||||||
if Spearhead.DcsUtil.isPositionInZone(layer_object.mapX, layer_object.mapY, zonename) == true then
|
if annotationData then
|
||||||
if self._tables.MissionAnnotations[zonename] == nil then
|
annotationData.description = layer_object.text
|
||||||
self._tables.MissionAnnotations[zonename] = {
|
|
||||||
description = "",
|
|
||||||
dependsOn = {}
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
local missionAnnotation = self._tables.MissionAnnotations[zonename]
|
|
||||||
missionAnnotation.description = layer_object.text
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -443,6 +417,40 @@ function Database:initAvailableUnits()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---@private
|
||||||
|
---@param layer_object table
|
||||||
|
---@return MissionAnnotations?
|
||||||
|
function Database:getMissionMetaDataForDrawLayer(layer_object)
|
||||||
|
for _, zonename in pairs(self._tables.MissionZones) do
|
||||||
|
if Spearhead.DcsUtil.isPositionInZone(layer_object.mapX, layer_object.mapY, zonename) == true then
|
||||||
|
|
||||||
|
if self._tables.MissionAnnotations[zonename] == nil then
|
||||||
|
self._tables.MissionAnnotations[zonename] = {
|
||||||
|
description = nil,
|
||||||
|
dependsOn = {}
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
return self._tables.MissionAnnotations[zonename]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
for _, zonename in pairs(self._tables.RandomMissionZones) do
|
||||||
|
if Spearhead.DcsUtil.isPositionInZone(layer_object.mapX, layer_object.mapY, zonename) == true then
|
||||||
|
|
||||||
|
if self._tables.MissionAnnotations[zonename] == nil then
|
||||||
|
self._tables.MissionAnnotations[zonename] = {
|
||||||
|
description = nil,
|
||||||
|
dependsOn = {}
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
return self._tables.MissionAnnotations[zonename]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
---@private
|
---@private
|
||||||
function Database:loadCapUnits()
|
function Database:loadCapUnits()
|
||||||
local all_groups = getAvailableCAPGroups()
|
local all_groups = getAvailableCAPGroups()
|
||||||
|
|||||||
Reference in New Issue
Block a user