diff --git a/DCS_Kola/Operation_Polar_Shield/F99th-Operation_Polar_Shield_1.2.8.miz b/DCS_Kola/Operation_Polar_Shield/F99th-Operation_Polar_Shield_1.2.8.miz new file mode 100644 index 0000000..90a4f88 Binary files /dev/null and b/DCS_Kola/Operation_Polar_Shield/F99th-Operation_Polar_Shield_1.2.8.miz differ diff --git a/DCS_Kola/Operation_Polar_Shield/F99th-Operation_Polar_Shield_1.2.9.miz b/DCS_Kola/Operation_Polar_Shield/F99th-Operation_Polar_Shield_1.2.9.miz new file mode 100644 index 0000000..2c31f91 Binary files /dev/null and b/DCS_Kola/Operation_Polar_Shield/F99th-Operation_Polar_Shield_1.2.9.miz differ diff --git a/DCS_Kola/Operation_Polar_Shield/docs/kneeboards/1ZoneControl.xcf b/DCS_Kola/Operation_Polar_Shield/docs/kneeboards/1ZoneControl.xcf new file mode 100644 index 0000000..20b9001 Binary files /dev/null and b/DCS_Kola/Operation_Polar_Shield/docs/kneeboards/1ZoneControl.xcf differ diff --git a/DCS_Kola/docs/performance_tuning.md b/DCS_Kola/Operation_Polar_Shield/docs/performance_tuning.md similarity index 100% rename from DCS_Kola/docs/performance_tuning.md rename to DCS_Kola/Operation_Polar_Shield/docs/performance_tuning.md diff --git a/Moose_CTLD_Pure/Moose_CTLD.lua b/Moose_CTLD_Pure/Moose_CTLD.lua index be7edb3..c2fc651 100644 --- a/Moose_CTLD_Pure/Moose_CTLD.lua +++ b/Moose_CTLD_Pure/Moose_CTLD.lua @@ -2715,13 +2715,38 @@ function CTLD:_ensureAdaptiveBackgroundLoop() CTLD._coachState[uname] = nil end end - -- If hover coach now empty, stop its scheduler - if next(CTLD._coachState) == nil then - if self.HoverSched and self.HoverSched.Stop then - pcall(function() self.HoverSched:Stop() end) - end - self.HoverSched = nil + end + + -- Ensure the hover scan scheduler matches active transport presence + local hasTransports = false + for gname, _ in pairs(self.MenusByGroup or {}) do + local grp = nil + if GROUP and GROUP.FindByName then + local ok, res = pcall(function() return GROUP:FindByName(gname) end) + if ok then grp = res end end + if grp and grp:IsAlive() then + hasTransports = true + break + end + if not grp and Group and Group.getByName then + local ok, dcsGrp = pcall(function() return Group.getByName(gname) end) + if ok and dcsGrp and dcsGrp:isExist() then + hasTransports = true + break + end + end + end + + if hasTransports then + if (not self.HoverSched) and self._startHoverScheduler then + pcall(function() self:_startHoverScheduler() end) + end + else + if self.HoverSched and self.HoverSched.Stop then + pcall(function() self.HoverSched:Stop() end) + end + self.HoverSched = nil end -- Determine next wake interval based on active salvage crates diff --git a/Moose_CTLD_Pure/Moose_CTLD_Pure.miz b/Moose_CTLD_Pure/Moose_CTLD_Pure.miz index 5a1c7ff..273a6dd 100644 Binary files a/Moose_CTLD_Pure/Moose_CTLD_Pure.miz and b/Moose_CTLD_Pure/Moose_CTLD_Pure.miz differ