diff --git a/DCS_Kola/Operation_Polar_Shield/F99th-Operation_Polar_Shield_1.1.3.miz b/DCS_Kola/Operation_Polar_Shield/F99th-Operation_Polar_Shield_1.1.3.miz index d7df1b6..2ec2fdc 100644 Binary files a/DCS_Kola/Operation_Polar_Shield/F99th-Operation_Polar_Shield_1.1.3.miz and b/DCS_Kola/Operation_Polar_Shield/F99th-Operation_Polar_Shield_1.1.3.miz differ diff --git a/DCS_Kola/Operation_Polar_Shield/F99th-Operation_Polar_Shield_1.1.4.miz b/DCS_Kola/Operation_Polar_Shield/F99th-Operation_Polar_Shield_1.1.4.miz new file mode 100644 index 0000000..974b21c Binary files /dev/null and b/DCS_Kola/Operation_Polar_Shield/F99th-Operation_Polar_Shield_1.1.4.miz differ diff --git a/Patch-MooseMissions/Patch-MooseMissions.ps1 b/Patch-MooseMissions/Patch-MooseMissions.ps1 index bb2c4ba..229c460 100644 --- a/Patch-MooseMissions/Patch-MooseMissions.ps1 +++ b/Patch-MooseMissions/Patch-MooseMissions.ps1 @@ -226,8 +226,45 @@ process { Add-Type -Assembly System.IO.Compression.FileSystem $compressionLevel = [System.IO.Compression.CompressionLevel]::Optimal - # Create ZIP from directory (will become .miz) - [System.IO.Compression.ZipFile]::CreateFromDirectory($tempDir, $outputMission, $compressionLevel, $false) + # Create ZIP manually to ensure proper path separators (forward slashes required by ZIP spec) + # CreateFromDirectory uses backslashes on Windows which corrupts DCS mission files + $zipStream = New-Object System.IO.FileStream($outputMission, [System.IO.FileMode]::Create) + $archive = New-Object System.IO.Compression.ZipArchive($zipStream, [System.IO.Compression.ZipArchiveMode]::Create) + + try { + # Get all files in temp directory and add them to ZIP + $files = Get-ChildItem -Path $tempDir -Recurse -File + + foreach ($file in $files) { + # Get relative path for entry name + $relativePath = $file.FullName.Substring($tempDir.Length + 1) + # CRITICAL: Normalize path separators to forward slashes (ZIP standard) + # DCS will fail to load missions with backslashes in ZIP entry names + $entryName = $relativePath.Replace('\', '/') + + # Create entry in ZIP + $entry = $archive.CreateEntry($entryName, $compressionLevel) + + # Write file content to entry + $entryStream = $entry.Open() + try { + $fileStream = [System.IO.File]::OpenRead($file.FullName) + try { + $fileStream.CopyTo($entryStream) + } + finally { + $fileStream.Close() + } + } + finally { + $entryStream.Close() + } + } + } + finally { + $archive.Dispose() + $zipStream.Close() + } Write-Host " SUCCESS: Mission patched successfully!" -ForegroundColor Green Write-Host " Output: $outputMission" -ForegroundColor Gray