Added the new event S_EVENT_REMOVE_UNIT to trigger the removal of units (from groups also) when a :Destroy(false) or :Destroy() is called for a UNIT object.

The units are then removed from each SET that is subscribed to a set of UNIT objects or GROUP objects! Also the DATABASE is correctly managing this new removal method.
This to prevent the DATABASE getting corrupted with dead units, which were removed with :Destroy(), but which weren't cleaned from the database.
This commit is contained in:
FlightControl
2018-09-11 09:00:30 +02:00
parent 72538597ad
commit c1191e286a
7 changed files with 68 additions and 39 deletions

View File

@@ -261,13 +261,15 @@ function GROUP:Destroy( GenerateEvent )
local DCSGroup = self:GetDCSObject()
if DCSGroup then
if GenerateEvent and GenerateEvent == true then
for Index, UnitData in pairs( DCSGroup:getUnits() ) do
for Index, UnitData in pairs( DCSGroup:getUnits() ) do
if GenerateEvent and GenerateEvent == true then
if self:IsAir() then
self:CreateEventCrash( timer.getTime(), UnitData )
else
self:CreateEventDead( timer.getTime(), UnitData )
end
else
self:CreateEventRemove( timer.getTime(), UnitData )
end
end
USERFLAG:New( self:GetName() ):Set( 100 )