mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2026-08-25 04:25:26 +00:00
Ops
This commit is contained in:
@@ -1566,16 +1566,11 @@ function AUFTRAG:onafterStatus(From, Event, To)
|
||||
-- All flights have reported MISSON DONE.
|
||||
self:Done()
|
||||
|
||||
elseif self.Tstop and timer.getAbsTime()>self.Tstop+10 then
|
||||
elseif (self.Tstop and timer.getAbsTime()>self.Tstop+10) or (self.Ntargets>0 and Ntargets==0) then
|
||||
|
||||
-- Cancel mission if stop time passed.
|
||||
self:Cancel()
|
||||
|
||||
elseif self.Ntargets>0 and Ntargets==0 then
|
||||
|
||||
-- Cancel mission if all targets were destroyed.
|
||||
self:Cancel()
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
@@ -1602,14 +1597,12 @@ function AUFTRAG:onafterStatus(From, Event, To)
|
||||
self:E(self.lid..string.format("ERROR: FSM state %s != %s mission status!", fsmstate, self.status))
|
||||
end
|
||||
|
||||
if #self.flightdata>0 then
|
||||
local text="Flight data:"
|
||||
for groupname,_flightdata in pairs(self.flightdata) do
|
||||
local flightdata=_flightdata --#AUFTRAG.FlightData
|
||||
text=text..string.format("\n- %s: status mission=%s flightgroup=%s", groupname, flightdata.status, flightdata.flightgroup and flightdata.flightgroup:GetState() or "N/A")
|
||||
end
|
||||
self:I(self.lid..text)
|
||||
local text="Flight data:"
|
||||
for groupname,_flightdata in pairs(self.flightdata) do
|
||||
local flightdata=_flightdata --#AUFTRAG.FlightData
|
||||
text=text..string.format("\n- %s: status mission=%s flightgroup=%s", groupname, flightdata.status, flightdata.flightgroup and flightdata.flightgroup:GetState() or "N/A")
|
||||
end
|
||||
self:I(self.lid..text)
|
||||
|
||||
local ready2evaluate=self.Tover and Tnow-self.Tover>=self.dTevaluate or false
|
||||
|
||||
@@ -1820,6 +1813,7 @@ function AUFTRAG:CheckFlightsDone()
|
||||
-- This one is done or cancelled.
|
||||
else
|
||||
-- At least this flight is not DONE or CANCELLED.
|
||||
--flightdata.status
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1812,7 +1812,7 @@ function FLIGHTGROUP:_GetNextMission()
|
||||
for _,_mission in pairs(self.missionqueue) do
|
||||
local mission=_mission --Ops.Auftrag#AUFTRAG
|
||||
|
||||
if mission:GetFlightStatus(self)==AUFTRAG.Status.SCHEDULED and mission:IsReadyToGo() then
|
||||
if mission:GetFlightStatus(self)==AUFTRAG.Status.SCHEDULED and (mission:IsReadyToGo() or self.airwing) then
|
||||
return mission
|
||||
end
|
||||
end
|
||||
@@ -3544,8 +3544,11 @@ function FLIGHTGROUP:onafterTaskCancel(From, Event, To, Task)
|
||||
-- Check if the task is the current task?
|
||||
if currenttask and Task.id==currenttask.id then
|
||||
|
||||
-- Current stop flag value. I noticed cases, where setting the flag to 1 would not cancel the task, e.g. when firing HARMS on a dead ship.
|
||||
local stopflag=Task.stopflag:Get()
|
||||
|
||||
-- Debug info.
|
||||
local text=string.format("Current task %s ID=%d cancelled", Task.description, Task.id)
|
||||
local text=string.format("Current task %s ID=%d cancelled (flag %s=%d)", Task.description, Task.id, Task.stopflag:GetName(), stopflag)
|
||||
MESSAGE:New(text, 10, "DEBUG"):ToAllIf(self.Debug)
|
||||
self:I(self.lid..text)
|
||||
|
||||
@@ -3555,6 +3558,9 @@ function FLIGHTGROUP:onafterTaskCancel(From, Event, To, Task)
|
||||
if Task.dcstask.id=="Formation" then
|
||||
Task.formation:Stop()
|
||||
self:TaskDone(Task)
|
||||
elseif stopflag==1 then
|
||||
-- Manuall call TaskDone if setting flag to one was not successful.
|
||||
self:TaskDone(Task)
|
||||
end
|
||||
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user