diff --git a/DCS_Kola/Operation_Polar_Shield/F99th-Operation_Polar_Shield_1.0.9.miz b/DCS_Kola/Operation_Polar_Shield/F99th-Operation_Polar_Shield_1.0.9.miz new file mode 100644 index 0000000..8948fde Binary files /dev/null and b/DCS_Kola/Operation_Polar_Shield/F99th-Operation_Polar_Shield_1.0.9.miz differ diff --git a/DCS_Kola/Operation_Polar_Shield/F99th-Operation_Polar_Shield_1.1.0.miz b/DCS_Kola/Operation_Polar_Shield/F99th-Operation_Polar_Shield_1.1.0.miz new file mode 100644 index 0000000..f2097e4 Binary files /dev/null and b/DCS_Kola/Operation_Polar_Shield/F99th-Operation_Polar_Shield_1.1.0.miz differ diff --git a/DCS_Kola/Operation_Polar_Shield/Moose_TADC_CargoDispatcher.lua b/DCS_Kola/Operation_Polar_Shield/Moose_TADC_CargoDispatcher.lua index 8f6de2d..bef4e02 100644 --- a/DCS_Kola/Operation_Polar_Shield/Moose_TADC_CargoDispatcher.lua +++ b/DCS_Kola/Operation_Polar_Shield/Moose_TADC_CargoDispatcher.lua @@ -34,6 +34,12 @@ if not DISPATCHER_CONFIG then DISPATCHER_CONFIG = { interval = 60, gracePeriod = 25 } end +-- Safety flag: when false, do NOT fall back to spawning from in-memory template tables. +-- Set to true if you understand the tweaked-template warning and accept the risk. +if DISPATCHER_CONFIG.ALLOW_FALLBACK_TO_INMEM_TEMPLATE == nil then + DISPATCHER_CONFIG.ALLOW_FALLBACK_TO_INMEM_TEMPLATE = false +end + --[[ CARGO SUPPLY CONFIGURATION -------------------------------------------------------------------------- @@ -85,7 +91,7 @@ end Advanced logging configuration and helper function for debug output. ]] local ADVANCED_LOGGING = { - enableDetailedLogging = true, + enableDetailedLogging = false, logPrefix = "[TADC Cargo]" } @@ -100,10 +106,31 @@ log("═════════════════════════ log("Moose_TDAC_CargoDispatcher.lua loaded.", true) log("═══════════════════════════════════════════════════════════════════════════════", true) + +-- Provide a safe deepCopy if MIST is not available +local function deepCopy(obj) + if type(obj) ~= 'table' then return obj end + local res = {} + for k, v in pairs(obj) do + if type(v) == 'table' then + res[k] = deepCopy(v) + else + res[k] = v + end + end + return res +end + -- Dispatch cooldown per airbase (seconds) to avoid repeated immediate retries local CARGO_DISPATCH_COOLDOWN = DISPATCHER_CONFIG and DISPATCHER_CONFIG.cooldown or 300 -- default 5 minutes local lastDispatchAttempt = { red = {}, blue = {} } +local function getCoalitionSide(coalitionKey) + if coalitionKey == 'blue' then return coalition.side.BLUE end + if coalitionKey == 'red' then return coalition.side.RED end + return nil +end + -- Forward-declare parking check helper so functions defined earlier can call it local destinationHasSuitableParking @@ -137,12 +164,12 @@ local function validateDispatcherConfig() end if #problems == 0 then - log("TADC Dispatcher config validation passed ✓", true) - MESSAGE:New("TADC Dispatcher config validation passed ✓", 15):ToAll() + log("TDAC Dispatcher config validation passed ✓", true) + MESSAGE:New("TDAC Dispatcher config validation passed ✓", 15):ToAll() return true, {} else - log("TADC Dispatcher config validation found issues:", true) - MESSAGE:New("TADC Dispatcher config validation found issues:" .. table.concat(problems, ", "), 15):ToAll() + log("TDAC Dispatcher config validation found issues:", true) + MESSAGE:New("TDAC Dispatcher config validation found issues:" .. table.concat(problems, ", "), 15):ToAll() for _, p in ipairs(problems) do log(" ✗ " .. p, true) end @@ -292,6 +319,25 @@ local function dispatchCargo(squadron, coalitionKey) log("Dispatching cargo: " .. groupName .. " from " .. origin .. " to " .. destination) + -- Spawn cargo aircraft at origin using the template name ONLY for SPAWN + -- Note: cargoTemplate is a config string; script uses in-file Lua template tables (CARGO_AIRCRAFT_TEMPLATE_*) + log("DEBUG: Attempting spawn for group: '" .. groupName .. "' at airbase: '" .. origin .. "' (using in-file Lua template)", true) + local airbaseObj = AIRBASE:FindByName(origin) + if not airbaseObj then + log("ERROR: AIRBASE:FindByName failed for '" .. tostring(origin) .. "'. Airbase object is nil!") + else + log("DEBUG: AIRBASE object found for '" .. origin .. "'. Proceeding with spawn.", true) + end + -- Select the correct template based on coalition + local templateBase, uniqueGroupName + if coalitionKey == "blue" then + templateBase = CARGO_AIRCRAFT_TEMPLATE_BLUE + uniqueGroupName = "CARGO_C130_DYNAMIC_" .. math.random(1000,9999) + else + templateBase = CARGO_AIRCRAFT_TEMPLATE_RED + uniqueGroupName = "CARGO_AN26_DYNAMIC_" .. math.random(1000,9999) + end + -- Clone the template and set the group/unit name -- Prepare a mission placeholder. We'll set the group and spawnPos after successful spawn. local mission = { group = nil, @@ -326,7 +372,7 @@ local function dispatchCargo(squadron, coalitionKey) local alias = cargoTemplate .. "_TO_" .. destination .. "_" .. tostring(math.random(1000,9999)) log("DEBUG: Attempting RAT spawn for template: '" .. cargoTemplate .. "' alias: '" .. alias .. "'", true) - -- Check if destination airbase exists and is controlled by the correct coalition + -- Check if destination airbase is still controlled by the correct coalition local destAirbase = AIRBASE:FindByName(destination) if not destAirbase then log("ERROR: Destination airbase '" .. destination .. "' does not exist. Skipping dispatch.") @@ -404,16 +450,16 @@ local function dispatchCargo(squadron, coalitionKey) local dz = pos.z - dest.y dist = math.sqrt(dx*dx + dz*dz) end - log(string.format("[TADC DEBUG] %s state check %d: alive=%s pos=(%.1f,%.1f) speed=%.2f m/s distToDest=%s", name, iter, tostring(spawnedGroup:IsAlive()), pos.x or 0, pos.z or 0, speed, tostring(dist)), true) + log(string.format("[TDAC DEBUG] %s state check %d: alive=%s pos=(%.1f,%.1f) speed=%.2f m/s distToDest=%s", name, iter, tostring(spawnedGroup:IsAlive()), pos.x or 0, pos.z or 0, speed, tostring(dist)), true) else - log(string.format("[TADC DEBUG] %s state check %d: DCS group has no units", tostring(spawnedGroup:GetName()), iter), true) + log(string.format("[TDAC DEBUG] %s state check %d: DCS group has no units", tostring(spawnedGroup:GetName()), iter), true) end else - log(string.format("[TADC DEBUG] %s state check %d: no DCS group object", tostring(spawnedGroup:GetName()), iter), true) + log(string.format("[TDAC DEBUG] %s state check %d: no DCS group object", tostring(spawnedGroup:GetName()), iter), true) end end) if not ok then - log("[TADC DEBUG] Error during debugLogState: " .. tostring(err), true) + log("[TDAC DEBUG] Error during debugLogState: " .. tostring(err), true) end timer.scheduleFunction(function() debugLogState(iter + 1) end, {}, timer.getTime() + checkInterval) end @@ -441,12 +487,12 @@ end -- Call from DCS console: _G.TDAC_LogAirbaseParking("Luostari Pechenga") function _G.TDAC_LogAirbaseParking(airbaseName) if type(airbaseName) ~= 'string' then - log("TADC Parking helper: airbaseName must be a string", true) + log("TDAC Parking helper: airbaseName must be a string", true) return false end local base = AIRBASE:FindByName(airbaseName) if not base then - log("TADC Parking helper: AIRBASE:FindByName returned nil for '" .. tostring(airbaseName) .. "'", true) + log("TDAC Parking helper: AIRBASE:FindByName returned nil for '" .. tostring(airbaseName) .. "'", true) return false end local function spotsFor(term) @@ -458,7 +504,7 @@ function _G.TDAC_LogAirbaseParking(airbaseName) local openMed = spotsFor(AIRBASE.TerminalType.OpenMed) local openMedOrBig = spotsFor(AIRBASE.TerminalType.OpenMedOrBig) local runway = spotsFor(AIRBASE.TerminalType.Runway) - log(string.format("TADC Parking: %s -> OpenBig=%s OpenMed=%s OpenMedOrBig=%s Runway=%s", airbaseName, tostring(openBig), tostring(openMed), tostring(openMedOrBig), tostring(runway)), true) + log(string.format("TDAC Parking: %s -> OpenBig=%s OpenMed=%s OpenMedOrBig=%s Runway=%s", airbaseName, tostring(openBig), tostring(openMed), tostring(openMedOrBig), tostring(runway)), true) return true end @@ -587,28 +633,28 @@ log("═════════════════════════ -- Example (paste into DCS Lua console): -- _G.TDAC_CargoDispatcher_TestSpawn("CARGO_BLUE_C130_TEMPLATE", "Kittila", "Luostari Pechenga") function _G.TDAC_CargoDispatcher_TestSpawn(templateName, originAirbase, destinationAirbase) - log("[TADC TEST] Starting test spawn for template: " .. tostring(templateName), true) + log("[TDAC TEST] Starting test spawn for template: " .. tostring(templateName), true) local ok, err if type(templateName) ~= 'string' then - env.info("[TADC TEST] templateName must be a string") + env.info("[TDAC TEST] templateName must be a string") return false, "invalid templateName" end local spawnByName = nil ok, spawnByName = pcall(function() return SPAWN:New(templateName) end) if not ok or not spawnByName then - log("[TADC TEST] SPAWN:New failed for template " .. tostring(templateName) .. ". Error: " .. tostring(spawnByName), true) + log("[TDAC TEST] SPAWN:New failed for template " .. tostring(templateName) .. ". Error: " .. tostring(spawnByName), true) if debug and debug.traceback then log("TRACEBACK: " .. tostring(debug.traceback(tostring(spawnByName))), true) end return false, "spawn_new_failed" end spawnByName:OnSpawnGroup(function(spawnedGroup) - log("[TADC TEST] OnSpawnGroup called for: " .. tostring(spawnedGroup:GetName()), true) + log("[TDAC TEST] OnSpawnGroup called for: " .. tostring(spawnedGroup:GetName()), true) local dcsGroup = spawnedGroup:GetDCSObject() if dcsGroup then local units = dcsGroup:getUnits() if units and #units > 0 then local pos = units[1]:getPoint() - log(string.format("[TADC TEST] Spawned pos x=%.1f y=%.1f z=%.1f", pos.x, pos.y, pos.z), true) + log(string.format("[TDAC TEST] Spawned pos x=%.1f y=%.1f z=%.1f", pos.x, pos.y, pos.z), true) end end if destinationAirbase then @@ -616,13 +662,13 @@ function _G.TDAC_CargoDispatcher_TestSpawn(templateName, originAirbase, destinat local base = AIRBASE:FindByName(destinationAirbase) if base and spawnedGroup and spawnedGroup.RouteToAirbase then spawnedGroup:RouteToAirbase(base, AI_Task_Land.Runway) - log("[TADC TEST] RouteToAirbase assigned to " .. tostring(destinationAirbase), true) + log("[TDAC TEST] RouteToAirbase assigned to " .. tostring(destinationAirbase), true) else - log("[TADC TEST] RouteToAirbase not available or base not found", true) + log("[TDAC TEST] RouteToAirbase not available or base not found", true) end end) if not okAssign then - log("[TADC TEST] RouteToAirbase pcall failed: " .. tostring(errAssign), true) + log("[TDAC TEST] RouteToAirbase pcall failed: " .. tostring(errAssign), true) if debug and debug.traceback then log("TRACEBACK: " .. tostring(debug.traceback(tostring(errAssign))), true) end end end @@ -630,11 +676,11 @@ function _G.TDAC_CargoDispatcher_TestSpawn(templateName, originAirbase, destinat ok, err = pcall(function() spawnByName:Spawn() end) if not ok then - log("[TADC TEST] spawnByName:Spawn() failed: " .. tostring(err), true) + log("[TDAC TEST] spawnByName:Spawn() failed: " .. tostring(err), true) if debug and debug.traceback then log("TRACEBACK: " .. tostring(debug.traceback(tostring(err))), true) end return false, "spawn_failed" end - log("[TADC TEST] spawnByName:Spawn() returned successfully", true) + log("[TDAC TEST] spawnByName:Spawn() returned successfully", true) return true end diff --git a/Moose_TADC/Moose_TADC_CargoDispatcher.lua b/Moose_TADC/Moose_TADC_CargoDispatcher.lua index db9c849..768f360 100644 --- a/Moose_TADC/Moose_TADC_CargoDispatcher.lua +++ b/Moose_TADC/Moose_TADC_CargoDispatcher.lua @@ -34,6 +34,12 @@ if not DISPATCHER_CONFIG then DISPATCHER_CONFIG = { interval = 60, gracePeriod = 25 } end +-- Safety flag: when false, do NOT fall back to spawning from in-memory template tables. +-- Set to true if you understand the tweaked-template warning and accept the risk. +if DISPATCHER_CONFIG.ALLOW_FALLBACK_TO_INMEM_TEMPLATE == nil then + DISPATCHER_CONFIG.ALLOW_FALLBACK_TO_INMEM_TEMPLATE = false +end + --[[ CARGO SUPPLY CONFIGURATION -------------------------------------------------------------------------- @@ -85,7 +91,7 @@ end Advanced logging configuration and helper function for debug output. ]] local ADVANCED_LOGGING = { - enableDetailedLogging = true, + enableDetailedLogging = false, logPrefix = "[TADC Cargo]" } @@ -100,10 +106,31 @@ log("═════════════════════════ log("Moose_TDAC_CargoDispatcher.lua loaded.", true) log("═══════════════════════════════════════════════════════════════════════════════", true) + +-- Provide a safe deepCopy if MIST is not available +local function deepCopy(obj) + if type(obj) ~= 'table' then return obj end + local res = {} + for k, v in pairs(obj) do + if type(v) == 'table' then + res[k] = deepCopy(v) + else + res[k] = v + end + end + return res +end + -- Dispatch cooldown per airbase (seconds) to avoid repeated immediate retries local CARGO_DISPATCH_COOLDOWN = DISPATCHER_CONFIG and DISPATCHER_CONFIG.cooldown or 300 -- default 5 minutes local lastDispatchAttempt = { red = {}, blue = {} } +local function getCoalitionSide(coalitionKey) + if coalitionKey == 'blue' then return coalition.side.BLUE end + if coalitionKey == 'red' then return coalition.side.RED end + return nil +end + -- Forward-declare parking check helper so functions defined earlier can call it local destinationHasSuitableParking @@ -137,12 +164,12 @@ local function validateDispatcherConfig() end if #problems == 0 then - log("TADC Dispatcher config validation passed ✓", true) - MESSAGE:New("TADC Dispatcher config validation passed ✓", 15):ToAll() + log("TDAC Dispatcher config validation passed ✓", true) + MESSAGE:New("TDAC Dispatcher config validation passed ✓", 15):ToAll() return true, {} else - log("TADC Dispatcher config validation found issues:", true) - MESSAGE:New("TADC Dispatcher config validation found issues:" .. table.concat(problems, ", "), 15):ToAll() + log("TDAC Dispatcher config validation found issues:", true) + MESSAGE:New("TDAC Dispatcher config validation found issues:" .. table.concat(problems, ", "), 15):ToAll() for _, p in ipairs(problems) do log(" ✗ " .. p, true) end @@ -292,6 +319,25 @@ local function dispatchCargo(squadron, coalitionKey) log("Dispatching cargo: " .. groupName .. " from " .. origin .. " to " .. destination) + -- Spawn cargo aircraft at origin using the template name ONLY for SPAWN + -- Note: cargoTemplate is a config string; script uses in-file Lua template tables (CARGO_AIRCRAFT_TEMPLATE_*) + log("DEBUG: Attempting spawn for group: '" .. groupName .. "' at airbase: '" .. origin .. "' (using in-file Lua template)", true) + local airbaseObj = AIRBASE:FindByName(origin) + if not airbaseObj then + log("ERROR: AIRBASE:FindByName failed for '" .. tostring(origin) .. "'. Airbase object is nil!") + else + log("DEBUG: AIRBASE object found for '" .. origin .. "'. Proceeding with spawn.", true) + end + -- Select the correct template based on coalition + local templateBase, uniqueGroupName + if coalitionKey == "blue" then + templateBase = CARGO_AIRCRAFT_TEMPLATE_BLUE + uniqueGroupName = "CARGO_C130_DYNAMIC_" .. math.random(1000,9999) + else + templateBase = CARGO_AIRCRAFT_TEMPLATE_RED + uniqueGroupName = "CARGO_AN26_DYNAMIC_" .. math.random(1000,9999) + end + -- Clone the template and set the group/unit name -- Prepare a mission placeholder. We'll set the group and spawnPos after successful spawn. local mission = { group = nil, @@ -326,7 +372,7 @@ local function dispatchCargo(squadron, coalitionKey) local alias = cargoTemplate .. "_TO_" .. destination .. "_" .. tostring(math.random(1000,9999)) log("DEBUG: Attempting RAT spawn for template: '" .. cargoTemplate .. "' alias: '" .. alias .. "'", true) - -- Check if destination airbase exists and is controlled by the correct coalition + -- Check if destination airbase is still controlled by the correct coalition local destAirbase = AIRBASE:FindByName(destination) if not destAirbase then log("ERROR: Destination airbase '" .. destination .. "' does not exist. Skipping dispatch.") @@ -404,16 +450,16 @@ local function dispatchCargo(squadron, coalitionKey) local dz = pos.z - dest.y dist = math.sqrt(dx*dx + dz*dz) end - log(string.format("[TADC DEBUG] %s state check %d: alive=%s pos=(%.1f,%.1f) speed=%.2f m/s distToDest=%s", name, iter, tostring(spawnedGroup:IsAlive()), pos.x or 0, pos.z or 0, speed, tostring(dist)), true) + log(string.format("[TDAC DEBUG] %s state check %d: alive=%s pos=(%.1f,%.1f) speed=%.2f m/s distToDest=%s", name, iter, tostring(spawnedGroup:IsAlive()), pos.x or 0, pos.z or 0, speed, tostring(dist)), true) else - log(string.format("[TADC DEBUG] %s state check %d: DCS group has no units", tostring(spawnedGroup:GetName()), iter), true) + log(string.format("[TDAC DEBUG] %s state check %d: DCS group has no units", tostring(spawnedGroup:GetName()), iter), true) end else - log(string.format("[TADC DEBUG] %s state check %d: no DCS group object", tostring(spawnedGroup:GetName()), iter), true) + log(string.format("[TDAC DEBUG] %s state check %d: no DCS group object", tostring(spawnedGroup:GetName()), iter), true) end end) if not ok then - log("[TADC DEBUG] Error during debugLogState: " .. tostring(err), true) + log("[TDAC DEBUG] Error during debugLogState: " .. tostring(err), true) end timer.scheduleFunction(function() debugLogState(iter + 1) end, {}, timer.getTime() + checkInterval) end @@ -441,12 +487,12 @@ end -- Call from DCS console: _G.TDAC_LogAirbaseParking("Luostari Pechenga") function _G.TDAC_LogAirbaseParking(airbaseName) if type(airbaseName) ~= 'string' then - log("TADC Parking helper: airbaseName must be a string", true) + log("TDAC Parking helper: airbaseName must be a string", true) return false end local base = AIRBASE:FindByName(airbaseName) if not base then - log("TADC Parking helper: AIRBASE:FindByName returned nil for '" .. tostring(airbaseName) .. "'", true) + log("TDAC Parking helper: AIRBASE:FindByName returned nil for '" .. tostring(airbaseName) .. "'", true) return false end local function spotsFor(term) @@ -458,7 +504,7 @@ function _G.TDAC_LogAirbaseParking(airbaseName) local openMed = spotsFor(AIRBASE.TerminalType.OpenMed) local openMedOrBig = spotsFor(AIRBASE.TerminalType.OpenMedOrBig) local runway = spotsFor(AIRBASE.TerminalType.Runway) - log(string.format("TADC Parking: %s -> OpenBig=%s OpenMed=%s OpenMedOrBig=%s Runway=%s", airbaseName, tostring(openBig), tostring(openMed), tostring(openMedOrBig), tostring(runway)), true) + log(string.format("TDAC Parking: %s -> OpenBig=%s OpenMed=%s OpenMedOrBig=%s Runway=%s", airbaseName, tostring(openBig), tostring(openMed), tostring(openMedOrBig), tostring(runway)), true) return true end @@ -587,28 +633,28 @@ log("═════════════════════════ -- Example (paste into DCS Lua console): -- _G.TDAC_CargoDispatcher_TestSpawn("CARGO_BLUE_C130_TEMPLATE", "Kittila", "Luostari Pechenga") function _G.TDAC_CargoDispatcher_TestSpawn(templateName, originAirbase, destinationAirbase) - log("[TADC TEST] Starting test spawn for template: " .. tostring(templateName), true) + log("[TDAC TEST] Starting test spawn for template: " .. tostring(templateName), true) local ok, err if type(templateName) ~= 'string' then - env.info("[TADC TEST] templateName must be a string") + env.info("[TDAC TEST] templateName must be a string") return false, "invalid templateName" end local spawnByName = nil ok, spawnByName = pcall(function() return SPAWN:New(templateName) end) if not ok or not spawnByName then - log("[TADC TEST] SPAWN:New failed for template " .. tostring(templateName) .. ". Error: " .. tostring(spawnByName), true) + log("[TDAC TEST] SPAWN:New failed for template " .. tostring(templateName) .. ". Error: " .. tostring(spawnByName), true) if debug and debug.traceback then log("TRACEBACK: " .. tostring(debug.traceback(tostring(spawnByName))), true) end return false, "spawn_new_failed" end spawnByName:OnSpawnGroup(function(spawnedGroup) - log("[TADC TEST] OnSpawnGroup called for: " .. tostring(spawnedGroup:GetName()), true) + log("[TDAC TEST] OnSpawnGroup called for: " .. tostring(spawnedGroup:GetName()), true) local dcsGroup = spawnedGroup:GetDCSObject() if dcsGroup then local units = dcsGroup:getUnits() if units and #units > 0 then local pos = units[1]:getPoint() - log(string.format("[TADC TEST] Spawned pos x=%.1f y=%.1f z=%.1f", pos.x, pos.y, pos.z), true) + log(string.format("[TDAC TEST] Spawned pos x=%.1f y=%.1f z=%.1f", pos.x, pos.y, pos.z), true) end end if destinationAirbase then @@ -616,13 +662,13 @@ function _G.TDAC_CargoDispatcher_TestSpawn(templateName, originAirbase, destinat local base = AIRBASE:FindByName(destinationAirbase) if base and spawnedGroup and spawnedGroup.RouteToAirbase then spawnedGroup:RouteToAirbase(base, AI_Task_Land.Runway) - log("[TADC TEST] RouteToAirbase assigned to " .. tostring(destinationAirbase), true) + log("[TDAC TEST] RouteToAirbase assigned to " .. tostring(destinationAirbase), true) else - log("[TADC TEST] RouteToAirbase not available or base not found", true) + log("[TDAC TEST] RouteToAirbase not available or base not found", true) end end) if not okAssign then - log("[TADC TEST] RouteToAirbase pcall failed: " .. tostring(errAssign), true) + log("[TDAC TEST] RouteToAirbase pcall failed: " .. tostring(errAssign), true) if debug and debug.traceback then log("TRACEBACK: " .. tostring(debug.traceback(tostring(errAssign))), true) end end end @@ -630,11 +676,11 @@ function _G.TDAC_CargoDispatcher_TestSpawn(templateName, originAirbase, destinat ok, err = pcall(function() spawnByName:Spawn() end) if not ok then - log("[TADC TEST] spawnByName:Spawn() failed: " .. tostring(err), true) + log("[TDAC TEST] spawnByName:Spawn() failed: " .. tostring(err), true) if debug and debug.traceback then log("TRACEBACK: " .. tostring(debug.traceback(tostring(err))), true) end return false, "spawn_failed" end - log("[TADC TEST] spawnByName:Spawn() returned successfully", true) + log("[TDAC TEST] spawnByName:Spawn() returned successfully", true) return true end diff --git a/Moose_TADC/TADC_Example.miz b/Moose_TADC/TADC_Example.miz index b28793a..2d12ad4 100644 Binary files a/Moose_TADC/TADC_Example.miz and b/Moose_TADC/TADC_Example.miz differ