diff --git a/Moose Development/Moose/Ops/ArmyGroup.lua b/Moose Development/Moose/Ops/ArmyGroup.lua index 044f916f8..4fba93277 100644 --- a/Moose Development/Moose/Ops/ArmyGroup.lua +++ b/Moose Development/Moose/Ops/ArmyGroup.lua @@ -726,7 +726,7 @@ function ARMYGROUP:Status() local mission=self:GetMissionCurrent() -- If mission, check if DCS task needs to be updated. - if mission and mission.updateDCSTask and mission:GetGroupStatus(self)==AUFTRAG.GroupStatus.EXECUTING then + if mission and mission.updateDCSTask then if mission.type==AUFTRAG.Type.CAPTUREZONE then @@ -734,7 +734,9 @@ function ARMYGROUP:Status() local Task=mission:GetGroupWaypointTask(self) -- Update task: Engage or get new zone. - self:_UpdateTask(Task, mission) + if mission:GetGroupStatus(self)==AUFTRAG.GroupStatus.EXECUTING or mission:GetGroupStatus(self)==AUFTRAG.GroupStatus.STARTED then + self:_UpdateTask(Task, mission) + end end diff --git a/Moose Development/Moose/Ops/FlightGroup.lua b/Moose Development/Moose/Ops/FlightGroup.lua index 6bcfcd5d1..0fa1882dd 100644 --- a/Moose Development/Moose/Ops/FlightGroup.lua +++ b/Moose Development/Moose/Ops/FlightGroup.lua @@ -943,7 +943,7 @@ function FLIGHTGROUP:Status() local DCSTask=mission:GetDCSMissionTask() --DCS#Task -- Get task. - local Task=self:GetTaskByID(mission.auftragsnummer) + local Task=mission:GetGroupWaypointTask(self) -- Reset current orbit task. self.controller:resetTask() diff --git a/Moose Development/Moose/Ops/OpsGroup.lua b/Moose Development/Moose/Ops/OpsGroup.lua index 7fddf424d..706c35e46 100644 --- a/Moose Development/Moose/Ops/OpsGroup.lua +++ b/Moose Development/Moose/Ops/OpsGroup.lua @@ -4438,8 +4438,8 @@ function OPSGROUP:_UpdateTask(Task, Mission) self:EngageTarget(targetgroup) else - -- Error Message. - self:E(self.lid..string.format("ERROR: Current zone not captured but no target group could be found. This should NOT happen!")) + -- Debug info. + self:T(self.lid..string.format("Zone %s not captured but no target group could be found. Should be captured in the next zone evaluation.", zoneCurr:GetName())) end else diff --git a/Moose Development/Moose/Ops/OpsZone.lua b/Moose Development/Moose/Ops/OpsZone.lua index 6a4749248..831f2a1b8 100644 --- a/Moose Development/Moose/Ops/OpsZone.lua +++ b/Moose Development/Moose/Ops/OpsZone.lua @@ -1041,6 +1041,10 @@ function OPSZONE:Scan() -- Add unit to set. self.ScanUnitSet:AddUnit(unit) + -- Debug: Had cases where a (red) unit was clearly not inside the zone but the scan did find it! + --local inzone=unit:IsInZone(self.zone) + --unit:GetCoordinate():MarkToAll(string.format("Unit %s inzone=%s", unit:GetName(), tostring(inzone))) + -- Get group of unit. local group=unit:GetGroup() @@ -1120,7 +1124,18 @@ function OPSZONE:Scan() -- Debug info. if self.verbose>=3 then - local text=string.format("Scan result Nred=%d, Nblue=%d, Nneutral=%d", Nred, Nblu, Nnut) + local text=string.format("Scan result Nred=%d, Nblue=%d, Nneutral=%d", Nred, Nblu, Nnut) + if self.verbose>=4 then + for _,_unit in pairs(self.ScanUnitSet:GetSet()) do + local unit=_unit --Wrapper.Unit#UNIT + text=text..string.format("\nUnit %s coalition=%s", unit:GetName(), unit:GetCoalitionName()) + end + + for _,_group in pairs(self.ScanGroupSet:GetSet()) do + local group=_group --Wrapper.Group#GROUP + text=text..string.format("\nGroup %s coalition=%s", group:GetName(), group:GetCoalitionName()) + end + end self:I(self.lid..text) end