diff --git a/ZuneModCore/Mod.cs b/ZuneModCore/Mod.cs index 02e88a9..4ee1a0b 100644 --- a/ZuneModCore/Mod.cs +++ b/ZuneModCore/Mod.cs @@ -47,11 +47,5 @@ namespace ZuneModCore } public abstract IReadOnlyList? DependentMods { get; } - - internal FileStream OpenFileInStorageDirectory(string filename) - { - FileInfo info = new(Path.Combine(StorageDirectory, filename)); - return File.Create(info.FullName); - } } } diff --git a/ZuneModCore/Mods/VideoSyncMod.cs b/ZuneModCore/Mods/VideoSyncMod.cs index c2ab707..51abcca 100644 --- a/ZuneModCore/Mods/VideoSyncMod.cs +++ b/ZuneModCore/Mods/VideoSyncMod.cs @@ -8,6 +8,8 @@ namespace ZuneModCore.Mods { public class VideoSyncMod : Mod { + private const string WMVCORE_PATH = @"C:\Windows\System32\WMVCORE.dll"; + public override string Title => "Fix Video Sync"; public override string Description => @@ -19,16 +21,27 @@ namespace ZuneModCore.Mods public override Task Apply() { - var writer = new StreamWriter(OpenFileInStorageDirectory("1.log")); - writer.WriteLine("Hello world"); - writer.Flush(); - writer.Close(); + try + { + // Make a backup of the file + File.Copy(WMVCORE_PATH, Path.Combine(StorageDirectory, "WMVCORE.original.dll"), true); - return Task.FromResult(null); + // Copy the pre-Anniversary Update WMVCORE.dll + File.Copy("Resources\\WMVCORE.dll", WMVCORE_PATH, true); + + return Task.FromResult(null); + } + catch (Exception ex) + { + return Task.FromResult(ex.Message)!; + } } public override Task Reset() { + // Copy backup to application folder + File.Copy(Path.Combine(StorageDirectory, "WMVCORE.original.dll"), WMVCORE_PATH, true); + return Task.FromResult(null); } diff --git a/ZuneModCore/Mods/WebservicesMod.cs b/ZuneModCore/Mods/WebservicesMod.cs index 3502483..164e12b 100644 --- a/ZuneModCore/Mods/WebservicesMod.cs +++ b/ZuneModCore/Mods/WebservicesMod.cs @@ -92,7 +92,21 @@ namespace ZuneModCore.Mods public override Task Reset() { - throw new NotImplementedException(); + // Copy backup to application folder + File.Copy(Path.Combine(StorageDirectory, "ZuneService.original.dll"), Path.Combine(ZuneInstallDir, "ZuneService.dll"), true); + + // Disable all feature overrides affected by new servers + SetFeatureOverride("Apps", false); + SetFeatureOverride("Channels", false); + SetFeatureOverride("Games", false); + SetFeatureOverride("Marketplace", false); + SetFeatureOverride("Music", false); + SetFeatureOverride("MusicVideos", false); + SetFeatureOverride("Podcasts", false); + SetFeatureOverride("Social", false); + SetFeatureOverride("Videos", false); + + return Task.FromResult(null); } } } diff --git a/ZuneModCore/Resources/WMVCORE.DLL b/ZuneModCore/Resources/WMVCORE.DLL new file mode 100644 index 0000000..48f7c68 Binary files /dev/null and b/ZuneModCore/Resources/WMVCORE.DLL differ diff --git a/ZuneModCore/ZuneModCore.csproj b/ZuneModCore/ZuneModCore.csproj index 49667bc..216afba 100644 --- a/ZuneModCore/ZuneModCore.csproj +++ b/ZuneModCore/ZuneModCore.csproj @@ -11,4 +11,10 @@ + + + PreserveNewest + + + diff --git a/ZuneModdingHelper/MainWindow.xaml b/ZuneModdingHelper/MainWindow.xaml index 39eb96f..49ab87a 100644 --- a/ZuneModdingHelper/MainWindow.xaml +++ b/ZuneModdingHelper/MainWindow.xaml @@ -59,10 +59,10 @@ - + - + HorizontalAlignment="Stretch" TextAlignment="Center"/> +