diff --git a/Core/Beacon/010-Beacons/RAD-010-Beacons.miz b/Core/Beacon/010-Beacons/RAD-010-Beacons.miz index d996c7d..b7fdc23 100644 Binary files a/Core/Beacon/010-Beacons/RAD-010-Beacons.miz and b/Core/Beacon/010-Beacons/RAD-010-Beacons.miz differ diff --git a/Core/Menu/001-Menu-Mission/MEN-001-Menu-Mission.miz b/Core/Menu/001-Menu-Mission/MEN-001-Menu-Mission.miz index 192875d..3cceea2 100644 Binary files a/Core/Menu/001-Menu-Mission/MEN-001-Menu-Mission.miz and b/Core/Menu/001-Menu-Mission/MEN-001-Menu-Mission.miz differ diff --git a/Core/Menu/002-Menu-Coalition/MEN-002-Menu-Coalition.miz b/Core/Menu/002-Menu-Coalition/MEN-002-Menu-Coalition.miz index def6345..5e2ce12 100644 Binary files a/Core/Menu/002-Menu-Coalition/MEN-002-Menu-Coalition.miz and b/Core/Menu/002-Menu-Coalition/MEN-002-Menu-Coalition.miz differ diff --git a/Core/Menu/003-Menu-Group/MEN-003-Menu-Group.miz b/Core/Menu/003-Menu-Group/MEN-003-Menu-Group.miz index a97517a..ef7f1d9 100644 Binary files a/Core/Menu/003-Menu-Group/MEN-003-Menu-Group.miz and b/Core/Menu/003-Menu-Group/MEN-003-Menu-Group.miz differ diff --git a/Core/Menu/012-Menu-Coalition-add-and-remove/MEN-012-Menu-Coalition-add-and-remove.miz b/Core/Menu/012-Menu-Coalition-add-and-remove/MEN-012-Menu-Coalition-add-and-remove.miz index 25972eb..0f7c157 100644 Binary files a/Core/Menu/012-Menu-Coalition-add-and-remove/MEN-012-Menu-Coalition-add-and-remove.miz and b/Core/Menu/012-Menu-Coalition-add-and-remove/MEN-012-Menu-Coalition-add-and-remove.miz differ diff --git a/Core/Menu/013-Menu-Group-add-and-remove/MEN-013-Menu-Group-add-and-remove.miz b/Core/Menu/013-Menu-Group-add-and-remove/MEN-013-Menu-Group-add-and-remove.miz index 1454743..3cb7c18 100644 Binary files a/Core/Menu/013-Menu-Group-add-and-remove/MEN-013-Menu-Group-add-and-remove.miz and b/Core/Menu/013-Menu-Group-add-and-remove/MEN-013-Menu-Group-add-and-remove.miz differ diff --git a/Core/Menu/200-Menu-stress-test-1/MEN-200-Menu-stress-test-1.miz b/Core/Menu/200-Menu-stress-test-1/MEN-200-Menu-stress-test-1.miz index 0817da0..c772b66 100644 Binary files a/Core/Menu/200-Menu-stress-test-1/MEN-200-Menu-stress-test-1.miz and b/Core/Menu/200-Menu-stress-test-1/MEN-200-Menu-stress-test-1.miz differ diff --git a/Core/Menu/901-Menu-Mission-Command/MEN-901-Menu-Mission-Command.miz b/Core/Menu/901-Menu-Mission-Command/MEN-901-Menu-Mission-Command.miz index 4994093..512a9a6 100644 Binary files a/Core/Menu/901-Menu-Mission-Command/MEN-901-Menu-Mission-Command.miz and b/Core/Menu/901-Menu-Mission-Command/MEN-901-Menu-Mission-Command.miz differ diff --git a/Core/Menu/903-Menu-to-check-loadout/MEN-903-Menu-to-check-loadout.miz b/Core/Menu/903-Menu-to-check-loadout/MEN-903-Menu-to-check-loadout.miz index d06f2d2..2b174a9 100644 Binary files a/Core/Menu/903-Menu-to-check-loadout/MEN-903-Menu-to-check-loadout.miz and b/Core/Menu/903-Menu-to-check-loadout/MEN-903-Menu-to-check-loadout.miz differ diff --git a/Core/SpawnStatic/010-Simple-Spawning/SPS-010-Simple-Spawning.miz b/Core/SpawnStatic/010-Simple-Spawning/SPS-010-Simple-Spawning.miz index 6c551ba..3d5e95a 100644 Binary files a/Core/SpawnStatic/010-Simple-Spawning/SPS-010-Simple-Spawning.miz and b/Core/SpawnStatic/010-Simple-Spawning/SPS-010-Simple-Spawning.miz differ diff --git a/Core/SpawnStatic/020-Mark-target-with-containers/SPS-020-Mark-target-with-containers.miz b/Core/SpawnStatic/020-Mark-target-with-containers/SPS-020-Mark-target-with-containers.miz index 1a6d234..bd7c114 100644 Binary files a/Core/SpawnStatic/020-Mark-target-with-containers/SPS-020-Mark-target-with-containers.miz and b/Core/SpawnStatic/020-Mark-target-with-containers/SPS-020-Mark-target-with-containers.miz differ diff --git a/Core/SpawnStatic/050-Spawn-FARPs/SPS-050-Spawn-FARPs.miz b/Core/SpawnStatic/050-Spawn-FARPs/SPS-050-Spawn-FARPs.miz index 4cac15f..e9131cd 100644 Binary files a/Core/SpawnStatic/050-Spawn-FARPs/SPS-050-Spawn-FARPs.miz and b/Core/SpawnStatic/050-Spawn-FARPs/SPS-050-Spawn-FARPs.miz differ diff --git a/Core/Zone/100-Normal-Zone/ZON-100-Normal-Zone.miz b/Core/Zone/100-Normal-Zone/ZON-100-Normal-Zone.miz index 2a837ae..966ff69 100644 Binary files a/Core/Zone/100-Normal-Zone/ZON-100-Normal-Zone.miz and b/Core/Zone/100-Normal-Zone/ZON-100-Normal-Zone.miz differ diff --git a/Core/Zone/101-Normal-Zone-Random-Point/ZON-101-Normal-Zone-Random-Point.miz b/Core/Zone/101-Normal-Zone-Random-Point/ZON-101-Normal-Zone-Random-Point.miz index 91bffec..cfc98be 100644 Binary files a/Core/Zone/101-Normal-Zone-Random-Point/ZON-101-Normal-Zone-Random-Point.miz and b/Core/Zone/101-Normal-Zone-Random-Point/ZON-101-Normal-Zone-Random-Point.miz differ diff --git a/Core/Zone/102-Normal-Zone-Boundary/ZON-102-Normal-Zone-Boundary.miz b/Core/Zone/102-Normal-Zone-Boundary/ZON-102-Normal-Zone-Boundary.miz index b3592f2..9b1f728 100644 Binary files a/Core/Zone/102-Normal-Zone-Boundary/ZON-102-Normal-Zone-Boundary.miz and b/Core/Zone/102-Normal-Zone-Boundary/ZON-102-Normal-Zone-Boundary.miz differ diff --git a/Core/Zone/103-Test-if-GROUP-object-is-in-ZONE/ZON-103-Test-if-GROUP-object-is-in-ZONE.miz b/Core/Zone/103-Test-if-GROUP-object-is-in-ZONE/ZON-103-Test-if-GROUP-object-is-in-ZONE.miz index 4b92f7d..7634fb8 100644 Binary files a/Core/Zone/103-Test-if-GROUP-object-is-in-ZONE/ZON-103-Test-if-GROUP-object-is-in-ZONE.miz and b/Core/Zone/103-Test-if-GROUP-object-is-in-ZONE/ZON-103-Test-if-GROUP-object-is-in-ZONE.miz differ diff --git a/Core/Zone/104-Test-if-GROUP-SET-is-in-ZONE/ZON-104-Test-if-GROUP-SET-is-in-ZONE.miz b/Core/Zone/104-Test-if-GROUP-SET-is-in-ZONE/ZON-104-Test-if-GROUP-SET-is-in-ZONE.miz index bdead85..04ec671 100644 Binary files a/Core/Zone/104-Test-if-GROUP-SET-is-in-ZONE/ZON-104-Test-if-GROUP-SET-is-in-ZONE.miz and b/Core/Zone/104-Test-if-GROUP-SET-is-in-ZONE/ZON-104-Test-if-GROUP-SET-is-in-ZONE.miz differ diff --git a/Core/Zone/110-ZONE-declared-in-ME/ZON-110-ZONE-declared-in-ME.miz b/Core/Zone/110-ZONE-declared-in-ME/ZON-110-ZONE-declared-in-ME.miz index 63e587a..0c719eb 100644 Binary files a/Core/Zone/110-ZONE-declared-in-ME/ZON-110-ZONE-declared-in-ME.miz and b/Core/Zone/110-ZONE-declared-in-ME/ZON-110-ZONE-declared-in-ME.miz differ diff --git a/Core/Zone/190-Return-SCENERY-objects-in-Zone/ZON-190-Return-SCENERY-objects-in-Zone.miz b/Core/Zone/190-Return-SCENERY-objects-in-Zone/ZON-190-Return-SCENERY-objects-in-Zone.miz index fdf03b0..171543a 100644 Binary files a/Core/Zone/190-Return-SCENERY-objects-in-Zone/ZON-190-Return-SCENERY-objects-in-Zone.miz and b/Core/Zone/190-Return-SCENERY-objects-in-Zone/ZON-190-Return-SCENERY-objects-in-Zone.miz differ diff --git a/Core/Zone/200-Group-Zone/ZON-200-Group-Zone.miz b/Core/Zone/200-Group-Zone/ZON-200-Group-Zone.miz index cf2b99e..ac13d51 100644 Binary files a/Core/Zone/200-Group-Zone/ZON-200-Group-Zone.miz and b/Core/Zone/200-Group-Zone/ZON-200-Group-Zone.miz differ diff --git a/Core/Zone/201-Group-Zone-Random-Point/ZON-201-Group-Zone-Random-Point.miz b/Core/Zone/201-Group-Zone-Random-Point/ZON-201-Group-Zone-Random-Point.miz index bdb30c1..cdf91c0 100644 Binary files a/Core/Zone/201-Group-Zone-Random-Point/ZON-201-Group-Zone-Random-Point.miz and b/Core/Zone/201-Group-Zone-Random-Point/ZON-201-Group-Zone-Random-Point.miz differ diff --git a/Core/Zone/300-Unit-Zone/ZON-300-Unit-Zone.miz b/Core/Zone/300-Unit-Zone/ZON-300-Unit-Zone.miz index dea2509..c4cb70d 100644 Binary files a/Core/Zone/300-Unit-Zone/ZON-300-Unit-Zone.miz and b/Core/Zone/300-Unit-Zone/ZON-300-Unit-Zone.miz differ diff --git a/Core/Zone/301-Unit-Zone-Random-Point/ZON-301-Unit-Zone-Random-Point.miz b/Core/Zone/301-Unit-Zone-Random-Point/ZON-301-Unit-Zone-Random-Point.miz index 443db8c..4f0d958 100644 Binary files a/Core/Zone/301-Unit-Zone-Random-Point/ZON-301-Unit-Zone-Random-Point.miz and b/Core/Zone/301-Unit-Zone-Random-Point/ZON-301-Unit-Zone-Random-Point.miz differ diff --git a/Core/Zone/400-Radius-Zone/ZON-400-Radius-Zone.miz b/Core/Zone/400-Radius-Zone/ZON-400-Radius-Zone.miz index 2084bb4..3228256 100644 Binary files a/Core/Zone/400-Radius-Zone/ZON-400-Radius-Zone.miz and b/Core/Zone/400-Radius-Zone/ZON-400-Radius-Zone.miz differ diff --git a/Core/Zone/401-Radius-Zone-Random-Point/ZON-401-Radius-Zone-Random-Point.miz b/Core/Zone/401-Radius-Zone-Random-Point/ZON-401-Radius-Zone-Random-Point.miz index 1a3add6..05d9e33 100644 Binary files a/Core/Zone/401-Radius-Zone-Random-Point/ZON-401-Radius-Zone-Random-Point.miz and b/Core/Zone/401-Radius-Zone-Random-Point/ZON-401-Radius-Zone-Random-Point.miz differ diff --git a/Core/Zone/500-Polygon-Zone/ZON-500-Polygon-Zone.miz b/Core/Zone/500-Polygon-Zone/ZON-500-Polygon-Zone.miz index 023db4e..f46eb61 100644 Binary files a/Core/Zone/500-Polygon-Zone/ZON-500-Polygon-Zone.miz and b/Core/Zone/500-Polygon-Zone/ZON-500-Polygon-Zone.miz differ diff --git a/Core/Zone/501-Polygon-Zone-Random-Point/ZON-501-Polygon-Zone-Random-Point.miz b/Core/Zone/501-Polygon-Zone-Random-Point/ZON-501-Polygon-Zone-Random-Point.miz index 7b3dcaa..1731c8b 100644 Binary files a/Core/Zone/501-Polygon-Zone-Random-Point/ZON-501-Polygon-Zone-Random-Point.miz and b/Core/Zone/501-Polygon-Zone-Random-Point/ZON-501-Polygon-Zone-Random-Point.miz differ diff --git a/Core/Zone/502-Polygon-Zone-Boundary/ZON-502-Polygon-Zone-Boundary.miz b/Core/Zone/502-Polygon-Zone-Boundary/ZON-502-Polygon-Zone-Boundary.miz index 79084f5..7cf32e1 100644 Binary files a/Core/Zone/502-Polygon-Zone-Boundary/ZON-502-Polygon-Zone-Boundary.miz and b/Core/Zone/502-Polygon-Zone-Boundary/ZON-502-Polygon-Zone-Boundary.miz differ diff --git a/Core/Zone/510-ZONE_POLYGON-declared-in-ME/ZON-510-ZONE_POLYGON-declared-in-ME.miz b/Core/Zone/510-ZONE_POLYGON-declared-in-ME/ZON-510-ZONE_POLYGON-declared-in-ME.miz index c1b59a5..b8b8a86 100644 Binary files a/Core/Zone/510-ZONE_POLYGON-declared-in-ME/ZON-510-ZONE_POLYGON-declared-in-ME.miz and b/Core/Zone/510-ZONE_POLYGON-declared-in-ME/ZON-510-ZONE_POLYGON-declared-in-ME.miz differ diff --git a/Core/Zone/520-Draw-Zones-and-Shapes/ZON-520-Draw-Zones-and-Shapes.miz b/Core/Zone/520-Draw-Zones-and-Shapes/ZON-520-Draw-Zones-and-Shapes.miz index e1953eb..732bafa 100644 Binary files a/Core/Zone/520-Draw-Zones-and-Shapes/ZON-520-Draw-Zones-and-Shapes.miz and b/Core/Zone/520-Draw-Zones-and-Shapes/ZON-520-Draw-Zones-and-Shapes.miz differ diff --git a/Functional/FOX/100-Simple/FOX-100-Simple.miz b/Functional/FOX/100-Simple/FOX-100-Simple.miz index d94974f..3aad092 100644 Binary files a/Functional/FOX/100-Simple/FOX-100-Simple.miz and b/Functional/FOX/100-Simple/FOX-100-Simple.miz differ diff --git a/Functional/FOX/101-LaunchZone/FOX-101-LaunchZone.miz b/Functional/FOX/101-LaunchZone/FOX-101-LaunchZone.miz index 1c3680c..94c959c 100644 Binary files a/Functional/FOX/101-LaunchZone/FOX-101-LaunchZone.miz and b/Functional/FOX/101-LaunchZone/FOX-101-LaunchZone.miz differ diff --git a/Functional/FOX/102-ProtectedGroup/FOX-102-ProtectedGroup.miz b/Functional/FOX/102-ProtectedGroup/FOX-102-ProtectedGroup.miz index 87dfe73..b6a5ca3 100644 Binary files a/Functional/FOX/102-ProtectedGroup/FOX-102-ProtectedGroup.miz and b/Functional/FOX/102-ProtectedGroup/FOX-102-ProtectedGroup.miz differ diff --git a/Functional/FOX/103-SafeZone/ZON-103-SafeZone.miz b/Functional/FOX/103-SafeZone/ZON-103-SafeZone.miz index a8f44c7..cdd435a 100644 Binary files a/Functional/FOX/103-SafeZone/ZON-103-SafeZone.miz and b/Functional/FOX/103-SafeZone/ZON-103-SafeZone.miz differ diff --git a/Other/000-Template/000-Template.miz b/Other/000-Template/000-Template.miz index b64ca01..23679a5 100644 Binary files a/Other/000-Template/000-Template.miz and b/Other/000-Template/000-Template.miz differ diff --git a/Sound/MSRS/001-Play-internal-Sound-file/MSRS-001-Play-internal-Sound-file.miz b/Sound/MSRS/001-Play-internal-Sound-file/MSRS-001-Play-internal-Sound-file.miz index c7849ad..9377eb4 100644 Binary files a/Sound/MSRS/001-Play-internal-Sound-file/MSRS-001-Play-internal-Sound-file.miz and b/Sound/MSRS/001-Play-internal-Sound-file/MSRS-001-Play-internal-Sound-file.miz differ diff --git a/Sound/MSRS/002-Play-external-Sound-file/MSRS-002-Play-external-Sound-file.miz b/Sound/MSRS/002-Play-external-Sound-file/MSRS-002-Play-external-Sound-file.miz index 0873274..f176b1a 100644 Binary files a/Sound/MSRS/002-Play-external-Sound-file/MSRS-002-Play-external-Sound-file.miz and b/Sound/MSRS/002-Play-external-Sound-file/MSRS-002-Play-external-Sound-file.miz differ diff --git a/Sound/MSRS/003-PlayTextFile/MSRS-003-PlayTextFile.miz b/Sound/MSRS/003-PlayTextFile/MSRS-003-PlayTextFile.miz index f0009aa..6cfdd0f 100644 Binary files a/Sound/MSRS/003-PlayTextFile/MSRS-003-PlayTextFile.miz and b/Sound/MSRS/003-PlayTextFile/MSRS-003-PlayTextFile.miz differ diff --git a/Sound/MSRS/010-Windows-TTS-via-config-file/MSRS-010-Windows-TTS-via-config-file.miz b/Sound/MSRS/010-Windows-TTS-via-config-file/MSRS-010-Windows-TTS-via-config-file.miz index 9edb9c5..b9ff194 100644 Binary files a/Sound/MSRS/010-Windows-TTS-via-config-file/MSRS-010-Windows-TTS-via-config-file.miz and b/Sound/MSRS/010-Windows-TTS-via-config-file/MSRS-010-Windows-TTS-via-config-file.miz differ diff --git a/Sound/Radio/000-Transmission-from-Static/RAD-000-Transmission-from-Static.miz b/Sound/Radio/000-Transmission-from-Static/RAD-000-Transmission-from-Static.miz index e617c07..f7f0aa6 100644 Binary files a/Sound/Radio/000-Transmission-from-Static/RAD-000-Transmission-from-Static.miz and b/Sound/Radio/000-Transmission-from-Static/RAD-000-Transmission-from-Static.miz differ diff --git a/Sound/Radio/001-Transmission-from-UNIT-or-GROUP/RAD-001-Transmission-from-UNIT-or-GROUP.miz b/Sound/Radio/001-Transmission-from-UNIT-or-GROUP/RAD-001-Transmission-from-UNIT-or-GROUP.miz index 9ea4a78..f1a96b7 100644 Binary files a/Sound/Radio/001-Transmission-from-UNIT-or-GROUP/RAD-001-Transmission-from-UNIT-or-GROUP.miz and b/Sound/Radio/001-Transmission-from-UNIT-or-GROUP/RAD-001-Transmission-from-UNIT-or-GROUP.miz differ diff --git a/Sound/Radio/002-Transmission-Tips-and-Tricks/RAD-002-Transmission-Tips-and-Tricks.miz b/Sound/Radio/002-Transmission-Tips-and-Tricks/RAD-002-Transmission-Tips-and-Tricks.miz index cfdf366..171b565 100644 Binary files a/Sound/Radio/002-Transmission-Tips-and-Tricks/RAD-002-Transmission-Tips-and-Tricks.miz and b/Sound/Radio/002-Transmission-Tips-and-Tricks/RAD-002-Transmission-Tips-and-Tricks.miz differ diff --git a/Utilities/Utils/001-Save-and-Load-Data/UTL-001-Save-and-Load-Data.lua b/Utilities/Utils/001-Save-and-Load-Data/UTL-001-Save-and-Load-Data.lua index fd7ba4f..d4fa724 100644 --- a/Utilities/Utils/001-Save-and-Load-Data/UTL-001-Save-and-Load-Data.lua +++ b/Utilities/Utils/001-Save-and-Load-Data/UTL-001-Save-and-Load-Data.lua @@ -1,116 +1,116 @@ ---- --- Author: kaltokri --- Created: 08.06.2024 --- Contributors: - --- Modified: - --- --- # Documentation: --- https://flightcontrol-master.github.io/MOOSE_DOCS_DEVELOP/Documentation/Utilities.Utils.html##(UTILS).LoadFromFile --- https://flightcontrol-master.github.io/MOOSE_DOCS_DEVELOP/Documentation/Utilities.Utils.html##(UTILS).SaveToFile --- --- # Description: --- DCS must be desanitized! --- https://flightcontrol-master.github.io/MOOSE/advanced/desanitize-dcs.html --- --- # Guide: --- - Start the mission and choose role of GAME MASTER. --- - Wait for the message about lfs and io. --- - Open radio menu by pressing #, then choose "Other...". --- - Activate "Load points from file". --- - You will get an error message, because the file does not exist yet. --- - Open menu again and activate "Show points". Both sides have 0 points. --- - Go into menu and choose "Give 100 points to RED" -> Blue 0, Red 100. --- - Now give blue 300 points by choosing "Give 100 points to BLUE" three times -> Blue 300, Red 100. --- - Now use "Save points to file". A file will be created on your hard disk. --- - Switch to the desktop and open the file with Notepad++ and take a look at the content. Close it. --- - Switch back to DCS and choose "Reset points" -> Blue 0, Red 0. --- - Activate "Load points from file" -> Blue 300, Red 100. -------------------------------------------------------------------------- - - --- Define some configuration values -local fileNamePoints = "Demo-UTL-001-Save-and-Load-Data.txt" - --- Define some global variables -Points = { - Blue = 0, - Red = 0 -} - --- Show points of both coalition -function ShowPoints() - local messageText = string.format("Mission points of both coalition:\nRED: %04d\nBLUE: %04d", Points['Red'], Points['Blue'] ) - MESSAGE:New( messageText, 25, "INFO" ):ToAll():ToLog() -end - --- A function to give points to a coalition -function AddPoints(coalition, amount) - local messageText = string.format("Adding %d points to coalition %s", amount, coalition) - MESSAGE:New( messageText, 25, "INFO" ):ToAll():ToLog() - Points[coalition] = Points[coalition] + amount - ShowPoints() -end - -function ResetPoints() - MESSAGE:New( "Reseting points", 25, "INFO" ):ToAll():ToLog() - Points['Blue'] = 0 - Points['Red'] = 0 - ShowPoints() -end - --- Save points to a file to make them persistent -function SavePointsToFile( fileName, folderPath ) - - -- Create data string to be stored - local data = string.format( "Red:%d;Blue:%d", Points['Red'], Points['Blue'] ) - - local messageText = string.format("Saving points to file.\nPath: %s\nFile: %s\nData: %s", folderPath, fileName, data ) - MESSAGE:New( messageText, 25, "INFO" ):ToAll():ToLog() - - UTILS.SaveToFile( folderPath, fileName, data ) -end - --- Load data from file and save it into the table Points. --- You have to take care of the interpetation of the data yourself. -function LoadPointsFromFile( fileName, folderPath ) - - local messageText = string.format("Loading points from file.\nPath: %s\nFile: %s", folderPath, fileName ) - MESSAGE:New( messageText, 25, "INFO" ):ToAll():ToLog() - - -- It returns a boolean and a table with one entry per line - local outcome, data = UTILS.LoadFromFile( folderPath, fileName ) - - -- Check if the loading was successful - if outcome then - -- We know our data is only 1 line, so data[1] is okay. - -- If you save more complex data you need to iterate over each line! - MESSAGE:New( "Raw data loaded from file: " .. data[1], 25, "INFO" ):ToAll():ToLog() - - MESSAGE:New( "Converting and sending into points table.", 25, "INFO" ):ToAll():ToLog() - for key, value in string.gmatch(data[1], "(%w+):(%w+)") do - Points[key] = value - end - ShowPoints() - else - MESSAGE:New( "Loading data from file failed", 25, "ERROR" ):ToAll():ToLog() - end -end - - --- Check if DCS is desanitized. -if lfs and io then - MESSAGE:New( '*** lfs and io are desanitized = OK ***', 25, "INFO" ):ToAll():ToLog() - - -- We will use the Mission folder in your DCS Saved Games path. - local missionFolderPath = lfs.writedir() .. 'Missions' - - -- Add menu entries to execute the functions - MENU_MISSION_COMMAND:New( "Show points", nil, ShowPoints ) - MENU_MISSION_COMMAND:New( "Reset points", nil, ResetPoints ) - MENU_MISSION_COMMAND:New( "Give 100 points to RED", nil, AddPoints, 'Red', 100 ) - MENU_MISSION_COMMAND:New( "Give 100 points to BLUE", nil, AddPoints, 'Blue', 100 ) - MENU_MISSION_COMMAND:New( "Save points to file", nil, SavePointsToFile, fileNamePoints, missionFolderPath ) - MENU_MISSION_COMMAND:New( "Load points from file", nil, LoadPointsFromFile, fileNamePoints, missionFolderPath ) -else - MESSAGE:New( '*** Your DCS is not desanitized. MOOSE is unable to use lfs and io! ***', 25, "ERROR" ):ToAll():ToLog() -end +--- +-- Author: kaltokri +-- Created: 08.06.2024 +-- Contributors: - +-- Modified: - +-- +-- # Documentation: +-- https://flightcontrol-master.github.io/MOOSE_DOCS_DEVELOP/Documentation/Utilities.Utils.html##(UTILS).LoadFromFile +-- https://flightcontrol-master.github.io/MOOSE_DOCS_DEVELOP/Documentation/Utilities.Utils.html##(UTILS).SaveToFile +-- +-- # Description: +-- DCS must be desanitized! +-- https://flightcontrol-master.github.io/MOOSE/advanced/desanitize-dcs.html +-- +-- # Guide: +-- - Start the mission and choose role of GAME MASTER. +-- - Wait for the message about lfs and io. +-- - Open radio menu by pressing #, then choose "Other...". +-- - Activate "Load points from file". +-- - You will get an error message, because the file does not exist yet. +-- - Open menu again and activate "Show points". Both sides have 0 points. +-- - Go into menu and choose "Give 100 points to RED" -> Blue 0, Red 100. +-- - Now give blue 300 points by choosing "Give 100 points to BLUE" three times -> Blue 300, Red 100. +-- - Now use "Save points to file". A file will be created on your hard disk. +-- - Switch to the desktop and open the file with Notepad++ and take a look at the content. Close it. +-- - Switch back to DCS and choose "Reset points" -> Blue 0, Red 0. +-- - Activate "Load points from file" -> Blue 300, Red 100. +------------------------------------------------------------------------- + + +-- Define some configuration values +local fileNamePoints = "Demo-UTL-001-Save-and-Load-Data.txt" + +-- Define some global variables +Points = { + Blue = 0, + Red = 0 +} + +-- Show points of both coalition +function ShowPoints() + local messageText = string.format("Mission points of both coalition:\nRED: %04d\nBLUE: %04d", Points['Red'], Points['Blue'] ) + MESSAGE:New( messageText, 25, "INFO" ):ToAll():ToLog() +end + +-- A function to give points to a coalition +function AddPoints(coalition, amount) + local messageText = string.format("Adding %d points to coalition %s", amount, coalition) + MESSAGE:New( messageText, 25, "INFO" ):ToAll():ToLog() + Points[coalition] = Points[coalition] + amount + ShowPoints() +end + +function ResetPoints() + MESSAGE:New( "Reseting points", 25, "INFO" ):ToAll():ToLog() + Points['Blue'] = 0 + Points['Red'] = 0 + ShowPoints() +end + +-- Save points to a file to make them persistent +function SavePointsToFile( fileName, folderPath ) + + -- Create data string to be stored + local data = string.format( "Red:%d;Blue:%d", Points['Red'], Points['Blue'] ) + + local messageText = string.format("Saving points to file.\nPath: %s\nFile: %s\nData: %s", folderPath, fileName, data ) + MESSAGE:New( messageText, 25, "INFO" ):ToAll():ToLog() + + UTILS.SaveToFile( folderPath, fileName, data ) +end + +-- Load data from file and save it into the table Points. +-- You have to take care of the interpetation of the data yourself. +function LoadPointsFromFile( fileName, folderPath ) + + local messageText = string.format("Loading points from file.\nPath: %s\nFile: %s", folderPath, fileName ) + MESSAGE:New( messageText, 25, "INFO" ):ToAll():ToLog() + + -- It returns a boolean and a table with one entry per line + local outcome, data = UTILS.LoadFromFile( folderPath, fileName ) + + -- Check if the loading was successful + if outcome then + -- We know our data is only 1 line, so data[1] is okay. + -- If you save more complex data you need to iterate over each line! + MESSAGE:New( "Raw data loaded from file: " .. data[1], 25, "INFO" ):ToAll():ToLog() + + MESSAGE:New( "Converting and sending into points table.", 25, "INFO" ):ToAll():ToLog() + for key, value in string.gmatch(data[1], "(%w+):(%w+)") do + Points[key] = value + end + ShowPoints() + else + MESSAGE:New( "Loading data from file failed", 25, "ERROR" ):ToAll():ToLog() + end +end + + +-- Check if DCS is desanitized. +if lfs and io then + MESSAGE:New( '*** lfs and io are desanitized = OK ***', 25, "INFO" ):ToAll():ToLog() + + -- We will use the Mission folder in your DCS Saved Games path. + local missionFolderPath = lfs.writedir() .. 'Missions' + + -- Add menu entries to execute the functions + MENU_MISSION_COMMAND:New( "Show points", nil, ShowPoints ) + MENU_MISSION_COMMAND:New( "Reset points", nil, ResetPoints ) + MENU_MISSION_COMMAND:New( "Give 100 points to RED", nil, AddPoints, 'Red', 100 ) + MENU_MISSION_COMMAND:New( "Give 100 points to BLUE", nil, AddPoints, 'Blue', 100 ) + MENU_MISSION_COMMAND:New( "Save points to file", nil, SavePointsToFile, fileNamePoints, missionFolderPath ) + MENU_MISSION_COMMAND:New( "Load points from file", nil, LoadPointsFromFile, fileNamePoints, missionFolderPath ) +else + MESSAGE:New( '*** Your DCS is not desanitized. MOOSE is unable to use lfs and io! ***', 25, "ERROR" ):ToAll():ToLog() +end diff --git a/Utilities/Utils/001-Save-and-Load-Data/UTL-001-Save-and-Load-Data.miz b/Utilities/Utils/001-Save-and-Load-Data/UTL-001-Save-and-Load-Data.miz index c66010d..8f8c5a7 100644 Binary files a/Utilities/Utils/001-Save-and-Load-Data/UTL-001-Save-and-Load-Data.miz and b/Utilities/Utils/001-Save-and-Load-Data/UTL-001-Save-and-Load-Data.miz differ diff --git a/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Caucasus.miz b/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Caucasus.miz index 27dbf44..7cfdc09 100644 Binary files a/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Caucasus.miz and b/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Caucasus.miz differ diff --git a/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Falklands.miz b/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Falklands.miz index 63a97bd..dc069c6 100644 Binary files a/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Falklands.miz and b/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Falklands.miz differ diff --git a/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-MarianaIslands.miz b/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-MarianaIslands.miz index 532ad55..95ffb69 100644 Binary files a/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-MarianaIslands.miz and b/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-MarianaIslands.miz differ diff --git a/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Nevada.miz b/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Nevada.miz index cbc3b6f..b4242bb 100644 Binary files a/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Nevada.miz and b/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Nevada.miz differ diff --git a/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Normandy.miz b/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Normandy.miz index a1b45a5..c9cd9ed 100644 Binary files a/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Normandy.miz and b/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Normandy.miz differ diff --git a/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-PersianGulf.miz b/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-PersianGulf.miz index 32758e0..b6f826b 100644 Binary files a/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-PersianGulf.miz and b/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-PersianGulf.miz differ diff --git a/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Sinai.miz b/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Sinai.miz index 0996c40..2386226 100644 Binary files a/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Sinai.miz and b/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Sinai.miz differ diff --git a/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Syria.miz b/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Syria.miz index 2f7baf8..f6fe1d0 100644 Binary files a/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Syria.miz and b/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-Syria.miz differ diff --git a/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-TheChannel.miz b/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-TheChannel.miz index 8315423..9717da2 100644 Binary files a/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-TheChannel.miz and b/Wrapper/Airbase/900-Airbase-data/AFB-900-Airbase-data-TheChannel.miz differ diff --git a/Wrapper/Group/100-IsAlive/GRP-100-IsAlive.miz b/Wrapper/Group/100-IsAlive/GRP-100-IsAlive.miz index c31a39d..88a6ee6 100644 Binary files a/Wrapper/Group/100-IsAlive/GRP-100-IsAlive.miz and b/Wrapper/Group/100-IsAlive/GRP-100-IsAlive.miz differ diff --git a/Wrapper/Group/101-TaskAttackUnit/GRP-101-TaskAttackUnit.miz b/Wrapper/Group/101-TaskAttackUnit/GRP-101-TaskAttackUnit.miz index c318da8..1dce9f4 100644 Binary files a/Wrapper/Group/101-TaskAttackUnit/GRP-101-TaskAttackUnit.miz and b/Wrapper/Group/101-TaskAttackUnit/GRP-101-TaskAttackUnit.miz differ diff --git a/Wrapper/Group/200-Follow-Group/GRP-200-Follow-Group.miz b/Wrapper/Group/200-Follow-Group/GRP-200-Follow-Group.miz index 38996c9..94bdee5 100644 Binary files a/Wrapper/Group/200-Follow-Group/GRP-200-Follow-Group.miz and b/Wrapper/Group/200-Follow-Group/GRP-200-Follow-Group.miz differ diff --git a/Wrapper/Group/300-Switch-WayPoints/GRP-300-Switch-WayPoints.miz b/Wrapper/Group/300-Switch-WayPoints/GRP-300-Switch-WayPoints.miz index 57076bf..455ad81 100644 Binary files a/Wrapper/Group/300-Switch-WayPoints/GRP-300-Switch-WayPoints.miz and b/Wrapper/Group/300-Switch-WayPoints/GRP-300-Switch-WayPoints.miz differ diff --git a/Wrapper/Group/310-Command-StopRoute/GRP-310-Command-StopRoute.miz b/Wrapper/Group/310-Command-StopRoute/GRP-310-Command-StopRoute.miz index 1ecb559..e2889c4 100644 Binary files a/Wrapper/Group/310-Command-StopRoute/GRP-310-Command-StopRoute.miz and b/Wrapper/Group/310-Command-StopRoute/GRP-310-Command-StopRoute.miz differ diff --git a/Wrapper/Group/400-RouteReturnToAirbase/GRP-400-RouteReturnToAirbase.miz b/Wrapper/Group/400-RouteReturnToAirbase/GRP-400-RouteReturnToAirbase.miz index 4d75ade..1b01fbe 100644 Binary files a/Wrapper/Group/400-RouteReturnToAirbase/GRP-400-RouteReturnToAirbase.miz and b/Wrapper/Group/400-RouteReturnToAirbase/GRP-400-RouteReturnToAirbase.miz differ diff --git a/Wrapper/Group/500-Ground-TaskRoute/GRP-500-Ground-TaskRoute.miz b/Wrapper/Group/500-Ground-TaskRoute/GRP-500-Ground-TaskRoute.miz index fcb37ac..7cfb590 100644 Binary files a/Wrapper/Group/500-Ground-TaskRoute/GRP-500-Ground-TaskRoute.miz and b/Wrapper/Group/500-Ground-TaskRoute/GRP-500-Ground-TaskRoute.miz differ diff --git a/Wrapper/Group/501-Ground-TaskRouteToVec2/GRP-501-Ground-TaskRouteToVec2.miz b/Wrapper/Group/501-Ground-TaskRouteToVec2/GRP-501-Ground-TaskRouteToVec2.miz index 57a9b5c..3fe640c 100644 Binary files a/Wrapper/Group/501-Ground-TaskRouteToVec2/GRP-501-Ground-TaskRouteToVec2.miz and b/Wrapper/Group/501-Ground-TaskRouteToVec2/GRP-501-Ground-TaskRouteToVec2.miz differ diff --git a/Wrapper/Group/502-Route-at-waypoint-to-random-point/GRP-502-Route-at-waypoint-to-random-point.miz b/Wrapper/Group/502-Route-at-waypoint-to-random-point/GRP-502-Route-at-waypoint-to-random-point.miz index b4cf88a..92a6fdd 100644 Binary files a/Wrapper/Group/502-Route-at-waypoint-to-random-point/GRP-502-Route-at-waypoint-to-random-point.miz and b/Wrapper/Group/502-Route-at-waypoint-to-random-point/GRP-502-Route-at-waypoint-to-random-point.miz differ diff --git a/Wrapper/Group/503-NTTR-Route-at-waypoint-to-random-point/GRP-503-NTTR-Route-at-waypoint-to-random-point.miz b/Wrapper/Group/503-NTTR-Route-at-waypoint-to-random-point/GRP-503-NTTR-Route-at-waypoint-to-random-point.miz index daf806a..f54bc0f 100644 Binary files a/Wrapper/Group/503-NTTR-Route-at-waypoint-to-random-point/GRP-503-NTTR-Route-at-waypoint-to-random-point.miz and b/Wrapper/Group/503-NTTR-Route-at-waypoint-to-random-point/GRP-503-NTTR-Route-at-waypoint-to-random-point.miz differ diff --git a/Wrapper/Group/504-Pinpoint-Strike-Waypooints-and-Tasking/GRP-504-Pinpoint-Strike-Waypooints-and-Tasking.miz b/Wrapper/Group/504-Pinpoint-Strike-Waypooints-and-Tasking/GRP-504-Pinpoint-Strike-Waypooints-and-Tasking.miz index e262e55..8a24bd3 100644 Binary files a/Wrapper/Group/504-Pinpoint-Strike-Waypooints-and-Tasking/GRP-504-Pinpoint-Strike-Waypooints-and-Tasking.miz and b/Wrapper/Group/504-Pinpoint-Strike-Waypooints-and-Tasking/GRP-504-Pinpoint-Strike-Waypooints-and-Tasking.miz differ diff --git a/Wrapper/Group/510-Task-Follow/GRP-510-Task-Follow.miz b/Wrapper/Group/510-Task-Follow/GRP-510-Task-Follow.miz index 720cfe6..4a806e3 100644 Binary files a/Wrapper/Group/510-Task-Follow/GRP-510-Task-Follow.miz and b/Wrapper/Group/510-Task-Follow/GRP-510-Task-Follow.miz differ diff --git a/Wrapper/Group/550-Patrol-a-route/GRP-550-Patrol-a-route.miz b/Wrapper/Group/550-Patrol-a-route/GRP-550-Patrol-a-route.miz index 2696f73..ae8bc11 100644 Binary files a/Wrapper/Group/550-Patrol-a-route/GRP-550-Patrol-a-route.miz and b/Wrapper/Group/550-Patrol-a-route/GRP-550-Patrol-a-route.miz differ diff --git a/Wrapper/Group/551-Patrol-to-random-points-of-a-route/GRP-551-Patrol-to-random-points-of-a-route.miz b/Wrapper/Group/551-Patrol-to-random-points-of-a-route/GRP-551-Patrol-to-random-points-of-a-route.miz index 6308a5e..cbe9d0a 100644 Binary files a/Wrapper/Group/551-Patrol-to-random-points-of-a-route/GRP-551-Patrol-to-random-points-of-a-route.miz and b/Wrapper/Group/551-Patrol-to-random-points-of-a-route/GRP-551-Patrol-to-random-points-of-a-route.miz differ diff --git a/Wrapper/Group/552-Patrol-in-a-zone/GRP-552-Patrol-in-a-zone.miz b/Wrapper/Group/552-Patrol-in-a-zone/GRP-552-Patrol-in-a-zone.miz index 28b7582..c87a528 100644 Binary files a/Wrapper/Group/552-Patrol-in-a-zone/GRP-552-Patrol-in-a-zone.miz and b/Wrapper/Group/552-Patrol-in-a-zone/GRP-552-Patrol-in-a-zone.miz differ diff --git a/Wrapper/Group/553-Patrol-in-a-list-of-zones/GRP-553-Patrol-in-a-list-of-zones.miz b/Wrapper/Group/553-Patrol-in-a-list-of-zones/GRP-553-Patrol-in-a-list-of-zones.miz index 6b4e9e6..a7b4c72 100644 Binary files a/Wrapper/Group/553-Patrol-in-a-list-of-zones/GRP-553-Patrol-in-a-list-of-zones.miz and b/Wrapper/Group/553-Patrol-in-a-list-of-zones/GRP-553-Patrol-in-a-list-of-zones.miz differ diff --git a/Wrapper/Group/600-Respawn/GRP-600-Respawn.miz b/Wrapper/Group/600-Respawn/GRP-600-Respawn.miz index fafeb28..5a4297c 100644 Binary files a/Wrapper/Group/600-Respawn/GRP-600-Respawn.miz and b/Wrapper/Group/600-Respawn/GRP-600-Respawn.miz differ diff --git a/Wrapper/Group/601-Respawn-hidden/GRP-601-Respawn-hidden.miz b/Wrapper/Group/601-Respawn-hidden/GRP-601-Respawn-hidden.miz index 7241855..c79e95c 100644 Binary files a/Wrapper/Group/601-Respawn-hidden/GRP-601-Respawn-hidden.miz and b/Wrapper/Group/601-Respawn-hidden/GRP-601-Respawn-hidden.miz differ diff --git a/Wrapper/Group/610-Respawn-in-Zone/GRP-610-Respawn-in-Zone.miz b/Wrapper/Group/610-Respawn-in-Zone/GRP-610-Respawn-in-Zone.miz index f906737..d93eef5 100644 Binary files a/Wrapper/Group/610-Respawn-in-Zone/GRP-610-Respawn-in-Zone.miz and b/Wrapper/Group/610-Respawn-in-Zone/GRP-610-Respawn-in-Zone.miz differ diff --git a/Wrapper/Group/611-Respawn-multiple-units-in-Zone/GRP-611-Respawn-multiple-units-in-Zone.miz b/Wrapper/Group/611-Respawn-multiple-units-in-Zone/GRP-611-Respawn-multiple-units-in-Zone.miz index e0a09b5..7336b2f 100644 Binary files a/Wrapper/Group/611-Respawn-multiple-units-in-Zone/GRP-611-Respawn-multiple-units-in-Zone.miz and b/Wrapper/Group/611-Respawn-multiple-units-in-Zone/GRP-611-Respawn-multiple-units-in-Zone.miz differ diff --git a/Wrapper/Group/612-Respawn-multiple-units-in-Zone-randomized/GRP-612-Respawn-multiple-units-in-Zone-randomized.miz b/Wrapper/Group/612-Respawn-multiple-units-in-Zone-randomized/GRP-612-Respawn-multiple-units-in-Zone-randomized.miz index 3ba596d..9c1ca42 100644 Binary files a/Wrapper/Group/612-Respawn-multiple-units-in-Zone-randomized/GRP-612-Respawn-multiple-units-in-Zone-randomized.miz and b/Wrapper/Group/612-Respawn-multiple-units-in-Zone-randomized/GRP-612-Respawn-multiple-units-in-Zone-randomized.miz differ diff --git a/Wrapper/Group/615-Respawn-in-Zone-hidden/GRP-615-Respawn-in-Zone-hidden.miz b/Wrapper/Group/615-Respawn-in-Zone-hidden/GRP-615-Respawn-in-Zone-hidden.miz index 5620a22..8bf5a89 100644 Binary files a/Wrapper/Group/615-Respawn-in-Zone-hidden/GRP-615-Respawn-in-Zone-hidden.miz and b/Wrapper/Group/615-Respawn-in-Zone-hidden/GRP-615-Respawn-in-Zone-hidden.miz differ diff --git a/Wrapper/Group/616-Respawn-multiple-units-in-Zone-hidden/GRP-616-Respawn-multiple-units-in-Zone-hidden.miz b/Wrapper/Group/616-Respawn-multiple-units-in-Zone-hidden/GRP-616-Respawn-multiple-units-in-Zone-hidden.miz index 68d12fa..9f4ccac 100644 Binary files a/Wrapper/Group/616-Respawn-multiple-units-in-Zone-hidden/GRP-616-Respawn-multiple-units-in-Zone-hidden.miz and b/Wrapper/Group/616-Respawn-multiple-units-in-Zone-hidden/GRP-616-Respawn-multiple-units-in-Zone-hidden.miz differ diff --git a/Wrapper/Group/617-Respawn-multiple-units-in-Zone-randomized-hidden/GRP-617-Respawn-multiple-units-in-Zone-randomized-hidden.miz b/Wrapper/Group/617-Respawn-multiple-units-in-Zone-randomized-hidden/GRP-617-Respawn-multiple-units-in-Zone-randomized-hidden.miz index 87585c5..f816367 100644 Binary files a/Wrapper/Group/617-Respawn-multiple-units-in-Zone-randomized-hidden/GRP-617-Respawn-multiple-units-in-Zone-randomized-hidden.miz and b/Wrapper/Group/617-Respawn-multiple-units-in-Zone-randomized-hidden/GRP-617-Respawn-multiple-units-in-Zone-randomized-hidden.miz differ diff --git a/Wrapper/Group/900-Option-Green-and-Red-State/GRP-900-Option-Green-and-Red-State.miz b/Wrapper/Group/900-Option-Green-and-Red-State/GRP-900-Option-Green-and-Red-State.miz index 023f17a..d635c5f 100644 Binary files a/Wrapper/Group/900-Option-Green-and-Red-State/GRP-900-Option-Green-and-Red-State.miz and b/Wrapper/Group/900-Option-Green-and-Red-State/GRP-900-Option-Green-and-Red-State.miz differ diff --git a/Wrapper/Weapon/010-Track-Bomb/WPN-010-Track-Bomb.miz b/Wrapper/Weapon/010-Track-Bomb/WPN-010-Track-Bomb.miz index b1782a4..5f975fe 100644 Binary files a/Wrapper/Weapon/010-Track-Bomb/WPN-010-Track-Bomb.miz and b/Wrapper/Weapon/010-Track-Bomb/WPN-010-Track-Bomb.miz differ diff --git a/Wrapper/Weapon/020-Track-AA-Missile/WPN-020-Track-AA-Missile.miz b/Wrapper/Weapon/020-Track-AA-Missile/WPN-020-Track-AA-Missile.miz index 4d733eb..5a8be4b 100644 Binary files a/Wrapper/Weapon/020-Track-AA-Missile/WPN-020-Track-AA-Missile.miz and b/Wrapper/Weapon/020-Track-AA-Missile/WPN-020-Track-AA-Missile.miz differ diff --git a/Wrapper/Weapon/030-Track-SA-Missile/WPN-030-Track-SA-Missile.miz b/Wrapper/Weapon/030-Track-SA-Missile/WPN-030-Track-SA-Missile.miz index 8d4fb38..ebf9285 100644 Binary files a/Wrapper/Weapon/030-Track-SA-Missile/WPN-030-Track-SA-Missile.miz and b/Wrapper/Weapon/030-Track-SA-Missile/WPN-030-Track-SA-Missile.miz differ diff --git a/Wrapper/Weapon/040-Track-Shell/WPN-040-Track-Shell.miz b/Wrapper/Weapon/040-Track-Shell/WPN-040-Track-Shell.miz index f8b403b..2240c5c 100644 Binary files a/Wrapper/Weapon/040-Track-Shell/WPN-040-Track-Shell.miz and b/Wrapper/Weapon/040-Track-Shell/WPN-040-Track-Shell.miz differ