mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Fix for crates dropping is loosing track of troops
This commit is contained in:
parent
b52272e18e
commit
33d761503d
@ -1084,7 +1084,6 @@ end
|
|||||||
-- @param #CTLD self
|
-- @param #CTLD self
|
||||||
-- @param Wrapper.Group#GROUP Group
|
-- @param Wrapper.Group#GROUP Group
|
||||||
-- @param Wrapper.Unit#UNIT Unit
|
-- @param Wrapper.Unit#UNIT Unit
|
||||||
-- @param #CTLD_CARGO Cargotype
|
|
||||||
function CTLD:_ExtractTroops(Group, Unit) -- #1574 thanks to @bbirchnz!
|
function CTLD:_ExtractTroops(Group, Unit) -- #1574 thanks to @bbirchnz!
|
||||||
self:T(self.lid .. " _ExtractTroops")
|
self:T(self.lid .. " _ExtractTroops")
|
||||||
-- landed or hovering over load zone?
|
-- landed or hovering over load zone?
|
||||||
@ -1624,7 +1623,7 @@ function CTLD:_UnloadTroops(Group, Unit)
|
|||||||
local cargo = _cargo -- #CTLD_CARGO
|
local cargo = _cargo -- #CTLD_CARGO
|
||||||
local type = cargo:GetType() -- #CTLD_CARGO.Enum
|
local type = cargo:GetType() -- #CTLD_CARGO.Enum
|
||||||
local dropped = cargo:WasDropped()
|
local dropped = cargo:WasDropped()
|
||||||
if type ~= CTLD_CARGO.Enum.TROOP and not dropped then
|
if type ~= CTLD_CARGO.Enum.TROOPS and not dropped then
|
||||||
table.insert(loaded.Cargo,_cargo)
|
table.insert(loaded.Cargo,_cargo)
|
||||||
loaded.Cratesloaded = loaded.Cratesloaded + 1
|
loaded.Cratesloaded = loaded.Cratesloaded + 1
|
||||||
end
|
end
|
||||||
@ -1671,8 +1670,8 @@ function CTLD:_UnloadCrates(Group, Unit)
|
|||||||
-- Get what we have loaded
|
-- Get what we have loaded
|
||||||
local unitname = Unit:GetName()
|
local unitname = Unit:GetName()
|
||||||
if self.Loaded_Cargo[unitname] and (grounded or hoverunload) then
|
if self.Loaded_Cargo[unitname] and (grounded or hoverunload) then
|
||||||
local loadedcargo = self.Loaded_Cargo[unitname] or {} -- #CTLD.LoadedCargo
|
local loadedcargo = self.Loaded_Cargo[unitname] or {} -- #CTLD.LoadedCargo
|
||||||
-- looking for troops
|
-- looking for crate
|
||||||
local cargotable = loadedcargo.Cargo
|
local cargotable = loadedcargo.Cargo
|
||||||
for _,_cargo in pairs (cargotable) do
|
for _,_cargo in pairs (cargotable) do
|
||||||
local cargo = _cargo -- #CTLD_CARGO
|
local cargo = _cargo -- #CTLD_CARGO
|
||||||
@ -1685,21 +1684,23 @@ function CTLD:_UnloadCrates(Group, Unit)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
-- cleanup load list
|
-- cleanup load list
|
||||||
local loaded = {} -- #CTLD.LoadedCargo
|
local loaded = {} -- #CTLD.LoadedCargo
|
||||||
loaded.Troopsloaded = 0
|
loaded.Troopsloaded = 0
|
||||||
loaded.Cratesloaded = 0
|
loaded.Cratesloaded = 0
|
||||||
loaded.Cargo = {}
|
loaded.Cargo = {}
|
||||||
|
|
||||||
for _,_cargo in pairs (cargotable) do
|
for _,_cargo in pairs (cargotable) do
|
||||||
local cargo = _cargo -- #CTLD_CARGO
|
local cargo = _cargo -- #CTLD_CARGO
|
||||||
local type = cargo:GetType() -- #CTLD_CARGO.Enum
|
local type = cargo:GetType() -- #CTLD_CARGO.Enum
|
||||||
local size = cargo:GetCratesNeeded()
|
local size = cargo:GetCratesNeeded()
|
||||||
if type == CTLD_CARGO.Enum.TROOP then
|
if type == CTLD_CARGO.Enum.TROOPS then
|
||||||
table.insert(loaded.Cargo,_cargo)
|
table.insert(loaded.Cargo,_cargo)
|
||||||
loaded.Cratesloaded = loaded.Troopsloaded + size
|
loaded.Troopsloaded = loaded.Troopsloaded + size
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
self.Loaded_Cargo[unitname] = nil
|
self.Loaded_Cargo[unitname] = nil
|
||||||
self.Loaded_Cargo[unitname] = loaded
|
self.Loaded_Cargo[unitname] = loaded
|
||||||
|
|
||||||
self:_UpdateUnitCargoMass(Unit)
|
self:_UpdateUnitCargoMass(Unit)
|
||||||
else
|
else
|
||||||
if IsHerc then
|
if IsHerc then
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user