diff --git a/Moose Development/Moose/Tasking/CommandCenter.lua b/Moose Development/Moose/Tasking/CommandCenter.lua index 3c2825021..11bf5b0b2 100644 --- a/Moose Development/Moose/Tasking/CommandCenter.lua +++ b/Moose Development/Moose/Tasking/CommandCenter.lua @@ -670,7 +670,7 @@ function COMMANDCENTER:ReportSummary( ReportGroup ) for MissionID, Mission in pairs( self.Missions ) do local Mission = Mission -- Tasking.Mission#MISSION - Report:Add( " - " .. Mission:ReportSummary() ) + Report:Add( " - " .. Mission:ReportSummary( ReportGroup ) ) end self:MessageToGroup( Report:Text(), ReportGroup ) diff --git a/Moose Development/Moose/Tasking/Task.lua b/Moose Development/Moose/Tasking/Task.lua index 84f8158d0..d5361dc17 100644 --- a/Moose Development/Moose/Tasking/Task.lua +++ b/Moose Development/Moose/Tasking/Task.lua @@ -1200,15 +1200,27 @@ function TASK:MenuMarkToGroup( TaskGroup ) self:UpdateTaskInfo( self.DetectedItem ) - local Report = REPORT:New():SetIndent( 0 ) - - self.TaskInfo:Report( Report, "M", TaskGroup ) - - local TargetCoordinate = self.TaskInfo:GetData( "Coordinate" ) -- Core.Point#COORDINATE - local MarkText = Report:Text( ", " ) - self:F( { Coordinate = TargetCoordinate, MarkText = MarkText } ) - TargetCoordinate:MarkToGroup( MarkText, TaskGroup ) - --Coordinate:MarkToAll( Briefing ) + local TargetCoordinates = self.TaskInfo:GetData( "Coordinates" ) -- Core.Point#COORDINATE + if TargetCoordinates then + for TargetCoordinateID, TargetCoordinate in pairs( TargetCoordinates ) do + local Report = REPORT:New():SetIndent( 0 ) + self.TaskInfo:Report( Report, "M", TaskGroup, TargetCoordinateID ) + local MarkText = Report:Text( ", " ) + self:F( { Coordinate = TargetCoordinate, MarkText = MarkText } ) + TargetCoordinate:MarkToGroup( MarkText, TaskGroup ) + --Coordinate:MarkToAll( Briefing ) + end + else + local TargetCoordinate = self.TaskInfo:GetData( "Coordinate" ) -- Core.Point#COORDINATE + if TargetCoordinate then + local Report = REPORT:New():SetIndent( 0 ) + self.TaskInfo:Report( Report, "M", TaskGroup ) + local MarkText = Report:Text( ", " ) + self:F( { Coordinate = TargetCoordinate, MarkText = MarkText } ) + TargetCoordinate:MarkToGroup( MarkText, TaskGroup ) + end + end + end --- Report the task status. diff --git a/Moose Development/Moose/Tasking/TaskInfo.lua b/Moose Development/Moose/Tasking/TaskInfo.lua index 2822615d5..9a425311a 100644 --- a/Moose Development/Moose/Tasking/TaskInfo.lua +++ b/Moose Development/Moose/Tasking/TaskInfo.lua @@ -85,7 +85,7 @@ end -- @return Data The data of the info. function TASKINFO:GetData( Key ) local Object = self.Info:Get( Key ) - return Object.Data + return Object and Object.Data end @@ -130,6 +130,19 @@ function TASKINFO:AddCoordinate( Coordinate, Order, Detail, Keep ) end +--- Add Coordinates. +-- @param #TASKINFO self +-- @param #list Coordinates +-- @param #number Order The display order, which is a number from 0 to 100. +-- @param #TASKINFO.Detail Detail The detail Level. +-- @param #boolean Keep (optional) If true, this would indicate that the planned taskinfo would be persistent when the task is completed, so that the original planned task info is used at the completed reports. +-- @return #TASKINFO self +function TASKINFO:AddCoordinates( Coordinates, Order, Detail, Keep ) + self:AddInfo( "Coordinates", Coordinates, Order, Detail, Keep ) + return self +end + + --- Add Threat. -- @param #TASKINFO self @@ -259,6 +272,7 @@ function TASKINFO:AddCargoSet( SetCargo, Order, Detail, Keep ) ) self:AddInfo( "Cargo", CargoReport:Text(), Order, Detail, Keep ) + return self end diff --git a/Moose Development/Moose/Tasking/Task_CARGO.lua b/Moose Development/Moose/Tasking/Task_CARGO.lua index 00de26c1b..97a067220 100644 --- a/Moose Development/Moose/Tasking/Task_CARGO.lua +++ b/Moose Development/Moose/Tasking/Task_CARGO.lua @@ -1361,10 +1361,19 @@ do -- TASK_CARGO end --- @param #TASK_CARGO self - function TASK_CARGO:UpdateTaskInfo( DetectedItem ) + function TASK_CARGO:UpdateTaskInfo() if self:IsStatePlanned() or self:IsStateAssigned() then + self.TaskInfo:AddTaskName( 0, "MSOD" ) self.TaskInfo:AddCargoSet( self.SetCargo, 10, "SOD", true ) + local Coordinates = {} + for CargoName, Cargo in pairs( self.SetCargo:GetSet() ) do + local Cargo = Cargo -- Cargo.Cargo#CARGO + if not Cargo:IsLoaded() then + Coordinates[#Coordinates+1] = Cargo:GetCoordinate() + end + end + self.TaskInfo:AddCoordinates( Coordinates, 1, "M" ) end end diff --git a/Moose Development/Moose/Wrapper/Unit.lua b/Moose Development/Moose/Wrapper/Unit.lua index 9124a68b7..71fd902a6 100644 --- a/Moose Development/Moose/Wrapper/Unit.lua +++ b/Moose Development/Moose/Wrapper/Unit.lua @@ -332,12 +332,12 @@ function UNIT:GetPlayerName() local PlayerName = DCSUnit:getPlayerName() -- TODO Workaround DCS-BUG-3 - https://github.com/FlightControl-Master/MOOSE/issues/696 - if PlayerName == nil or PlayerName == "" then - local PlayerCategory = DCSUnit:getDesc().category - if PlayerCategory == Unit.Category.GROUND_UNIT or PlayerCategory == Unit.Category.SHIP then - PlayerName = "Player" .. DCSUnit:getID() - end - end +-- if PlayerName == nil or PlayerName == "" then +-- local PlayerCategory = DCSUnit:getDesc().category +-- if PlayerCategory == Unit.Category.GROUND_UNIT or PlayerCategory == Unit.Category.SHIP then +-- PlayerName = "Player" .. DCSUnit:getID() +-- end +-- end -- -- Good code -- if PlayerName == nil then -- PlayerName = nil