mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Fixed problem with crash in Detection.lua.
When DetectionObject is nil (this can be), or is destroyed in between detections, then nil must be returned and IsDetectedObjectIdentified is not required to be checked.
This commit is contained in:
parent
6f581cadf1
commit
4252f9baac
@ -1250,19 +1250,23 @@ do -- DETECTION_BASE
|
|||||||
-- @param #DETECTION_BASE.DetectedObject DetectedObject
|
-- @param #DETECTION_BASE.DetectedObject DetectedObject
|
||||||
-- @return #boolean true if already identified.
|
-- @return #boolean true if already identified.
|
||||||
function DETECTION_BASE:IsDetectedObjectIdentified( DetectedObject )
|
function DETECTION_BASE:IsDetectedObjectIdentified( DetectedObject )
|
||||||
self:F3( DetectedObject.Name )
|
--self:F3( DetectedObject.Name )
|
||||||
|
|
||||||
local DetectedObjectName = DetectedObject.Name
|
local DetectedObjectName = DetectedObject.Name
|
||||||
local DetectedObjectIdentified = self.DetectedObjectsIdentified[DetectedObjectName] == true
|
if DetectedObjectName then
|
||||||
self:T3( DetectedObjectIdentified )
|
local DetectedObjectIdentified = self.DetectedObjectsIdentified[DetectedObjectName] == true
|
||||||
return DetectedObjectIdentified
|
self:T3( DetectedObjectIdentified )
|
||||||
|
return DetectedObjectIdentified
|
||||||
|
else
|
||||||
|
return nil
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Identifies a detected object during detection processing.
|
--- Identifies a detected object during detection processing.
|
||||||
-- @param #DETECTION_BASE self
|
-- @param #DETECTION_BASE self
|
||||||
-- @param #DETECTION_BASE.DetectedObject DetectedObject
|
-- @param #DETECTION_BASE.DetectedObject DetectedObject
|
||||||
function DETECTION_BASE:IdentifyDetectedObject( DetectedObject )
|
function DETECTION_BASE:IdentifyDetectedObject( DetectedObject )
|
||||||
self:F( { "Identified:", DetectedObject.Name } )
|
--self:F( { "Identified:", DetectedObject.Name } )
|
||||||
|
|
||||||
local DetectedObjectName = DetectedObject.Name
|
local DetectedObjectName = DetectedObject.Name
|
||||||
self.DetectedObjectsIdentified[DetectedObjectName] = true
|
self.DetectedObjectsIdentified[DetectedObjectName] = true
|
||||||
@ -1289,16 +1293,18 @@ do -- DETECTION_BASE
|
|||||||
-- @param #string ObjectName
|
-- @param #string ObjectName
|
||||||
-- @return #DETECTION_BASE.DetectedObject
|
-- @return #DETECTION_BASE.DetectedObject
|
||||||
function DETECTION_BASE:GetDetectedObject( ObjectName )
|
function DETECTION_BASE:GetDetectedObject( ObjectName )
|
||||||
self:F2( ObjectName )
|
--self:F2( ObjectName )
|
||||||
|
|
||||||
if ObjectName then
|
if ObjectName then
|
||||||
local DetectedObject = self.DetectedObjects[ObjectName]
|
local DetectedObject = self.DetectedObjects[ObjectName]
|
||||||
|
|
||||||
-- Only return detected objects that are alive!
|
if DetectedObject then
|
||||||
local DetectedUnit = UNIT:FindByName( ObjectName )
|
-- Only return detected objects that are alive!
|
||||||
if DetectedUnit and DetectedUnit:IsAlive() then
|
local DetectedUnit = UNIT:FindByName( ObjectName )
|
||||||
if self:IsDetectedObjectIdentified( DetectedObject ) == false then
|
if DetectedUnit and DetectedUnit:IsAlive() then
|
||||||
return DetectedObject
|
if self:IsDetectedObjectIdentified( DetectedObject ) == false then
|
||||||
|
return DetectedObject
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user