From b67739616a6e5e5d4a2bfc05d92065e3e0785470 Mon Sep 17 00:00:00 2001 From: SilicaAndPina Date: Fri, 21 Aug 2020 06:10:35 +1200 Subject: [PATCH] Add support for rpg maker MZ --- RMDEC/MVProject.cs | 14 ++++++- RMDEC/MVProjectToolset.cs | 79 ++++++++++++++++++++++++++++++++++----- RMDEC/projectSelector.cs | 5 ++- 3 files changed, 87 insertions(+), 11 deletions(-) diff --git a/RMDEC/MVProject.cs b/RMDEC/MVProject.cs index 99061c8..ff866ab 100644 --- a/RMDEC/MVProject.cs +++ b/RMDEC/MVProject.cs @@ -19,7 +19,7 @@ namespace RMDEC private bool isKeySet = false; private bool encryptedImages = false; private bool encryptedAudio = false; - + public bool MZ = false; private string gameTitle; private string filePath; private string systemJsonFile; @@ -174,6 +174,18 @@ namespace RMDEC } mvp.filePath = Path.GetDirectoryName(Path.GetDirectoryName(path)); + + // Detect MV or MZ + + if (File.Exists(Path.Combine(mvp.filePath, "js", "rmmz_core.js"))) + { + mvp.MZ = true; + } + else + { + mvp.MZ = false; + } + mvp.systemJsonFile = path; mvp.jsonData = systemJson; return mvp; diff --git a/RMDEC/MVProjectToolset.cs b/RMDEC/MVProjectToolset.cs index d45a0f5..3cd5ab1 100644 --- a/RMDEC/MVProjectToolset.cs +++ b/RMDEC/MVProjectToolset.cs @@ -13,6 +13,7 @@ namespace RMDEC public partial class mvProjectToolset : Form { public MVProject mvProject; + public mvProjectToolset(MVProject proj) { mvProject = proj; @@ -138,12 +139,21 @@ namespace RMDEC case ".rpgmvp": pngList.Add(file); break; + case ".png_": + pngList.Add(file); + break; case ".rpgmvo": oggList.Add(file); break; + case ".ogg_": + oggList.Add(file); + break; case ".rpgmvm": m4aList.Add(file); break; + case ".m4a_": + m4aList.Add(file); + break; } } @@ -282,11 +292,20 @@ namespace RMDEC { updateTitle(); indexFiles(); + + if(mvProject.MZ) + { + unmakeMV.Text = "Deploy MZ Project"; + makeMV.Text = "Un-Deploy MZ Project"; + } } private void updateTitle() { - this.Text = "RMDec - [RMMV] " + mvProject.GameTitle + " - " + mvProject.FilePath + " - encryptedImages: "+mvProject.EncryptedImages.ToString()+" - encrypedAudio: "+mvProject.EncryptedAudio.ToString(); + string Engine = "[RMMV]"; + if (mvProject.MZ) + Engine = "[RMMZ]"; + this.Text = "RMDec - "+ Engine +" " + mvProject.GameTitle + " - " + mvProject.FilePath + " - encryptedImages: "+mvProject.EncryptedImages.ToString()+" - encrypedAudio: "+mvProject.EncryptedAudio.ToString(); } private string encodeFileExtension(string fileName) { @@ -296,7 +315,10 @@ namespace RMDEC switch (extension) { case ".png": - newExtension = ".rpgmvp"; + if (!mvProject.MZ) + newExtension = ".rpgmvp"; + else + newExtension = extension + "_"; Invoke((Action)delegate { encryptedImageCount += 1; @@ -304,7 +326,10 @@ namespace RMDEC }); break; case ".ogg": - newExtension = ".rpgmvo"; + if (!mvProject.MZ) + newExtension = ".rpgmvo"; + else + newExtension = extension + "_"; Invoke((Action)delegate { encryptedMusicCount += 1; @@ -312,7 +337,10 @@ namespace RMDEC }); break; case ".m4a": - newExtension = ".rpgmvm"; + if (!mvProject.MZ) + newExtension = ".rpgmvm"; + else + newExtension = extension + "_"; Invoke((Action)delegate { encryptedMusicCount += 1; @@ -436,7 +464,30 @@ namespace RMDEC unencryptedMusicCount += 1; }); break; - + case ".ogg_": + newExtension = ".ogg"; + Invoke((Action)delegate + { + encryptedMusicCount -= 1; + unencryptedMusicCount += 1; + }); + break; + case ".m4a_": + newExtension = ".m4a"; + Invoke((Action)delegate + { + encryptedMusicCount -= 1; + unencryptedMusicCount += 1; + }); + break; + case ".png_": + newExtension = ".png"; + Invoke((Action)delegate + { + encryptedMusicCount -= 1; + unencryptedMusicCount += 1; + }); + break; } return newExtension; @@ -529,8 +580,17 @@ namespace RMDEC private void onMakeMvComplete() { - string rpgProject = Path.Combine(mvProject.FilePath, "Game.rpgproject"); - File.WriteAllText(rpgProject, "RPGMV 1.0.0"); + if(!mvProject.MZ) + { + string rpgProject = Path.Combine(mvProject.FilePath, "Game.rpgproject"); + File.WriteAllText(rpgProject, "RPGMV 1.0.0"); + } + else + { + string rpgProject = Path.Combine(mvProject.FilePath, "game.rmmzproject"); + File.WriteAllText(rpgProject, "RPGMZ 1.0.1"); + } + processingText.BackColor = Color.Green; processingText.Text = "Game Un-Deployed!"; @@ -620,8 +680,9 @@ namespace RMDEC private void onUnMakeMvComplete() { string rpgProject = Path.Combine(mvProject.FilePath, "Game.rpgproject"); - - if(File.Exists(rpgProject)) + if (mvProject.MZ) + rpgProject = Path.Combine(mvProject.FilePath, "game.rmmzproject"); + if (File.Exists(rpgProject)) { File.Delete(rpgProject); } diff --git a/RMDEC/projectSelector.cs b/RMDEC/projectSelector.cs index e2f0e2c..71f31ab 100644 --- a/RMDEC/projectSelector.cs +++ b/RMDEC/projectSelector.cs @@ -34,7 +34,10 @@ namespace RMDEC { MVProject proj = MVProject.ParseSystemJson(projectFile); globalProjectList.Add(proj); - projectList.Items.Add("[RMMV] - " + proj.GameTitle + " - " + relativeName); + if(!proj.MZ) + projectList.Items.Add("[RMMV] - " + proj.GameTitle + " - " + relativeName); + else + projectList.Items.Add("[RMMZ] - " + proj.GameTitle + " - " + relativeName); selectButton.Enabled = true; } catch (Exception) { }