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
|
||||||
|
if DetectedObjectName then
|
||||||
local DetectedObjectIdentified = self.DetectedObjectsIdentified[DetectedObjectName] == true
|
local DetectedObjectIdentified = self.DetectedObjectsIdentified[DetectedObjectName] == true
|
||||||
self:T3( DetectedObjectIdentified )
|
self:T3( DetectedObjectIdentified )
|
||||||
return 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,11 +1293,12 @@ 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]
|
||||||
|
|
||||||
|
if DetectedObject then
|
||||||
-- Only return detected objects that are alive!
|
-- Only return detected objects that are alive!
|
||||||
local DetectedUnit = UNIT:FindByName( ObjectName )
|
local DetectedUnit = UNIT:FindByName( ObjectName )
|
||||||
if DetectedUnit and DetectedUnit:IsAlive() then
|
if DetectedUnit and DetectedUnit:IsAlive() then
|
||||||
@ -1302,6 +1307,7 @@ do -- DETECTION_BASE
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user