diff --git a/ShinRyuModManager-CE/GameModel.cs b/ShinRyuModManager-CE/GameModel.cs index 61c94e3..a6e5e0a 100644 --- a/ShinRyuModManager-CE/GameModel.cs +++ b/ShinRyuModManager-CE/GameModel.cs @@ -98,7 +98,7 @@ public static void DoY5HActProcedure(MLO mlo) { } } - public static void DoY0DCLegacyModelSupport(MLO mlo) { + public static void DoY0DCLegacyModelUpgrade(MLO mlo) { var parlessDir = new DirectoryInfo(GamePath.ParlessDir); parlessDir.Create(); @@ -110,12 +110,72 @@ public static void DoY0DCLegacyModelSupport(MLO mlo) { continue; var legacyCharaDir = Path.Combine(modDir, "chara", "w64"); + + if (!Directory.Exists(legacyCharaDir)) + continue; + var newCharaDir = Path.Combine(parlessDir.FullName, "chara", "ngen"); + + for (var i = 0; i < mlo.Files.Count; i++) { + var file = mlo.Files[i]; + + if (file.Name.Contains("chara/w64")) + file = file with { + Name = file.Name.Replace("chara/w64", "chara/ngen") + }; + + mlo.Files[i] = file; + } - if (!Directory.Exists(legacyCharaDir)) + Directory.Move(legacyCharaDir, newCharaDir); + } + } + + public static void DoYK2RemasterLegacyDBUpgrade(MLO mlo) { + var parlessDir = new DirectoryInfo(GamePath.ParlessDir); + + parlessDir.Create(); + + foreach (var modName in mlo.Mods) { + var modDir = Path.Combine(GamePath.ModsPath, modName); + + if (!Directory.Exists(modDir)) continue; + + var legacyDBDir = Path.Combine(modDir, "db"); + var newDBDir = Path.Combine(modDir, "db.lexus2"); + + var legacyPUIDDir = Path.Combine(modDir, "puid"); + var newPUIDDir = Path.Combine(modDir, "puid.lexus2"); + + var haveOldDb = Directory.Exists(legacyDBDir); + var haveOldPuid = Directory.Exists(legacyPUIDDir); + + if (haveOldDb || haveOldPuid) { + for (var i = 0; i < mlo.Files.Count; i++) { + var file = mlo.Files[i]; + + if (haveOldDb && file.Name.Contains("/db") && !file.Name.Contains("/db.lexus2")) { + file = file with { + Name = file.Name.Replace("/db", "/db.lexus2") + }; + } + + if (haveOldPuid && file.Name.Contains("/puid") && !file.Name.Contains("/puid.lexus2")) { + file = file with { + Name = file.Name.Replace("/puid", "/puid.lexus2") + }; + } + + mlo.Files[i] = file; + } + } + + if (haveOldDb) + Directory.Move(legacyDBDir, newDBDir); - Utils.CopyDirectory(legacyCharaDir, newCharaDir); + if (haveOldPuid) + Directory.Move(legacyPUIDDir, newPUIDDir); } } diff --git a/ShinRyuModManager-CE/ModLoadOrder/Mods/Mod.cs b/ShinRyuModManager-CE/ModLoadOrder/Mods/Mod.cs index f227b8d..ee16c75 100644 --- a/ShinRyuModManager-CE/ModLoadOrder/Mods/Mod.cs +++ b/ShinRyuModManager-CE/ModLoadOrder/Mods/Mod.cs @@ -125,7 +125,7 @@ public void AddFiles(string path, string check) { switch (basename) { case "bgm": - if (GamePath.CurrentGame <= Game.YakuzaKiwami) { + if (GamePath.CurrentGame <= Game.YakuzaKiwami_R) { cpkDataPath = GamePath.RemoveModPath(path); RepackCpKs.Add(cpkDataPath); } @@ -134,7 +134,7 @@ public void AddFiles(string path, string check) { case "se": case "speech": - if (GamePath.CurrentGame is Game.Yakuza5 or <= Game.YakuzaKiwami) { + if (GamePath.CurrentGame is Game.Yakuza5 or <= Game.YakuzaKiwami_R) { // Removed adding ".cpk" to se folder. Seemed incorrect cpkDataPath = GamePath.RemoveModPath(path); RepackCpKs.Add(cpkDataPath); diff --git a/ShinRyuModManager-CE/Program.cs b/ShinRyuModManager-CE/Program.cs index 51180b9..ecb0021 100644 --- a/ShinRyuModManager-CE/Program.cs +++ b/ShinRyuModManager-CE/Program.cs @@ -328,20 +328,26 @@ internal static async Task RunGeneration(List mods) { GameModel.DoY5HActProcedure(result); break; - case Game.Yakuza0_DC: + case Game.Yakuza0: + case Game.YakuzaKiwami: GameModel.DoOEHActProcedure(result); - GameModel.DoY0DCLegacyModelSupport(result); break; - case Game.Yakuza0: - case Game.YakuzaKiwami: + case Game.Yakuza0_DC: + case Game.YakuzaKiwami_R: GameModel.DoOEHActProcedure(result); + GameModel.DoY0DCLegacyModelUpgrade(result); break; case Game.YakuzaKiwami2: GameModel.DoDEHActProcedure(result, "lexus2"); break; + case Game.YakuzaKiwami2_R: + GameModel.DoDEHActProcedure(result, "lexus2"); + GameModel.DoYK2RemasterLegacyDBUpgrade(result); + break; + case Game.Judgment: GameModel.DoDEHActProcedure(result, "judge"); break; diff --git a/ShinRyuModManager-CE/ShinRyuModManager-CE.csproj b/ShinRyuModManager-CE/ShinRyuModManager-CE.csproj index 32976ed..0a99d3f 100644 --- a/ShinRyuModManager-CE/ShinRyuModManager-CE.csproj +++ b/ShinRyuModManager-CE/ShinRyuModManager-CE.csproj @@ -14,7 +14,7 @@ true - 1.3.2 + 1.3.3 $(AssemblyVersion) ShinRyuModManager-CE SRMM Studio diff --git a/ShinRyuModManager-CE/UserInterface/Assets/changelog.md b/ShinRyuModManager-CE/UserInterface/Assets/changelog.md index 7ba7c94..04bcfbc 100644 --- a/ShinRyuModManager-CE/UserInterface/Assets/changelog.md +++ b/ShinRyuModManager-CE/UserInterface/Assets/changelog.md @@ -1,3 +1,6 @@ +> ### **%{color:orange} Version 1.3.3 %** ### +* Implemented changes from SRMM 4.6.9 + > ### **%{color:orange} Version 1.3.2 %** ### * Implemented changes from SRMM 4.6.8 diff --git a/Utils/Game.cs b/Utils/Game.cs index a66c310..05fdb2e 100644 --- a/Utils/Game.cs +++ b/Utils/Game.cs @@ -11,10 +11,12 @@ public enum Game { Yakuza0, Yakuza0_DC, YakuzaKiwami, + YakuzaKiwami_R, // Dragon Engine Yakuza6, YakuzaKiwami2, + YakuzaKiwami2_R, YakuzaLikeADragon, Judgment, LostJudgment, diff --git a/Utils/GamePath.cs b/Utils/GamePath.cs index 9b6339e..3e544b1 100644 --- a/Utils/GamePath.cs +++ b/Utils/GamePath.cs @@ -209,7 +209,9 @@ public static string GetGameFriendlyName(Game g) { Game.Yakuza0 => "Yakuza 0", Game.Yakuza0_DC => "Yakuza 0: Director's Cut", Game.YakuzaKiwami => "Yakuza Kiwami", + Game.YakuzaKiwami_R => "Yakuza Kiwami Remastered", Game.YakuzaKiwami2 => "Yakuza Kiwami 2", + Game.YakuzaKiwami2_R => "Yakuza Kiwami 2 Remastered", Game.Yakuza3 => "Yakuza 3 Remastered", Game.Yakuza4 => "Yakuza 4 Remastered", Game.Yakuza5 => "Yakuza 5 Remastered", @@ -233,7 +235,9 @@ public static string GetGameFriendlyName(Game g) { Game.Yakuza0 => 638970, Game.Yakuza0_DC => 2988580, Game.YakuzaKiwami => 834530, + Game.YakuzaKiwami_R => 3717330, Game.YakuzaKiwami2 => 927380, + Game.YakuzaKiwami2_R => 3717340, Game.Yakuza3 => 1088710, Game.Yakuza4 => 1105500, Game.Yakuza5 => 1105510,