From df21011cef44d2b7504c0dba9567c8e230004245 Mon Sep 17 00:00:00 2001 From: Tom Chen Date: Fri, 25 Sep 2020 18:03:45 +0200 Subject: [PATCH] 2020-08-16fix --- README.md | 20 +++++++++++------- nsis_folder/MMMerge_Update.nsi | 2 +- .../Structs/After/RemoveNPCTablesLimits.lua | 21 +++++-------------- 3 files changed, 18 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 7258a27..fba3007 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,21 @@ # Might and Magic 6 7 8 Merge Update Patch -This Patch is an updater for [Rodril's Might and Magic Merge MOD](https://www.celestialheavens.com/forum/10/16657). It can update any version later than (or equal to) `2019-09-22`, to the latest version. +This Patch is an updater for [Rodril's Might and Magic Merge MOD](https://www.celestialheavens.com/forum/10/16657). It can update any original version [Note 1] later than (or equal to) `2019-09-22`, to the latest original / hotfix version. -[Click here to download MMMerge_Update_2020-08-16.7z](https://github.com/might-and-magic/mmmerge-update-patch/releases/download/2020-08-16/MMMerge_Update_2020-08-16.7z) +[Click here to download MMMerge_Update_2020-08-16fix.7z](https://github.com/might-and-magic/mmmerge-update-patch/releases/download/2020-08-16fix/MMMerge_Update_2020-08-16fix.7z) -Usage: Uncompress the 7zip file, move `MMMerge_Update_2020-08-16.exe` to your game folder and double click to execute it. +Usage: Uncompress the 7zip file, move `MMMerge_Update_2020-08-16fix.exe` to your game folder and double click to execute it. -Latest verison: `2020-08-16` +Latest verison: `2020-08-16fix` [Note 2] -Supported old verisons (that the patch can update): `2019-09-22`, `2019-10-08`, `2020-03-17`, `2020-03-29 / 30`, `2020-04-19`, `2020-04-25`, `2020-05-26`, `2020-07-12` +Supported old verisons (that the patch can update): `2019-09-22`, `2019-10-08`, `2020-03-17`, `2020-03-29 / 30`, `2020-04-19`, `2020-04-25`, `2020-05-26`, `2020-07-12`, `2020-08-16` -This patch works for Rodril's English vanilla (original) version. It may or may not perfectly work if you try to patch the [Community Branch](https://gitlab.com/templayer/mmmerge), or a localized version with language files. +This patch works for Rodril's English original version [Note 1]. It may or may not perfectly work if you try to patch the [Community Branch](https://gitlab.com/templayer/mmmerge), or a localized version with language files. + +*(Note 1: original version (aka. vanilla version / official version): a version that is released in [the original post](https://www.celestialheavens.com/forum/10/16657) by the original author, Rodril, in the form of full package or lightweight patch. It is to be distinguished from the [Community Branch](https://gitlab.com/templayer/mmmerge) version)* + +*(Note 2: hotfix version `2020-08-16fix`, made by Tom Chen, fixes [automatic quest completion and dialogue displacement bugs](https://www.celestialheavens.com/forum/10/16657?start=5880#p382652) that appear in `2020-08-16`, by replacing the buggy `Scripts/Structs/After/RemoveNPCTablesLimits.lua` file with an older version)*

-Might and Magic 6 7 8 Merge screenshot -

\ No newline at end of file +Might and Magic 6 7 8 Merge screenshot +

diff --git a/nsis_folder/MMMerge_Update.nsi b/nsis_folder/MMMerge_Update.nsi index 6da9683..dec3072 100644 --- a/nsis_folder/MMMerge_Update.nsi +++ b/nsis_folder/MMMerge_Update.nsi @@ -11,7 +11,7 @@ ;Variables and constants !define OUTFILE "MMMerge_Update" -!define VERSION "2020-08-16" +!define VERSION "2020-08-16fix" !define VERSIONDOT "4.0.0.0" diff --git a/nsis_folder/files/Scripts/Structs/After/RemoveNPCTablesLimits.lua b/nsis_folder/files/Scripts/Structs/After/RemoveNPCTablesLimits.lua index 6d1da7d..a3f2d6d 100644 --- a/nsis_folder/files/Scripts/Structs/After/RemoveNPCTablesLimits.lua +++ b/nsis_folder/files/Scripts/Structs/After/RemoveNPCTablesLimits.lua @@ -393,8 +393,8 @@ if mmver == 8 then local LinesInGlobalEvtNewSize = NewGlEvtLinesCount*12 + 0x10 + 0x100 - local GlobalModuleNewSpace = mem.StaticAlloc(NewGlobalEvtSize + 0x10 + LinesInGlobalEvtNewSize*4) --0x5bb440 - local GlobalModuleOffsetsNewSpace1 = GlobalModuleNewSpace + NewGlobalEvtSize + 0x10 --mem.StaticAlloc(LinesInGlobalEvtNewSize) --0x5ac9e0 + local GlobalModuleNewSpace = mem.StaticAlloc(NewGlobalEvtSize + 0x10 + LinesInGlobalEvtNewSize*4) --0x5bb440 + local GlobalModuleOffsetsNewSpace1 = GlobalModuleNewSpace + NewGlobalEvtSize + 0x10 --mem.StaticAlloc(LinesInGlobalEvtNewSize) --005ac9e0 local GlobalModuleOffsetsNewSpace2 = GlobalModuleNewSpace + NewGlobalEvtSize + 0x10 + LinesInGlobalEvtNewSize --mem.StaticAlloc(LinesInGlobalEvtNewSize) --0x587e6c local GlobalModuleOffsetsNewSpace3 = GlobalModuleNewSpace + NewGlobalEvtSize + 0x10 + LinesInGlobalEvtNewSize*2 --mem.StaticAlloc(LinesInGlobalEvtNewSize) --0x596908 local GlobalModuleOffsetsNewSpace4 = GlobalModuleNewSpace + NewGlobalEvtSize + 0x10 + LinesInGlobalEvtNewSize*3 --mem.StaticAlloc(LinesInGlobalEvtNewSize) --0x5ccce8 @@ -426,17 +426,6 @@ if mmver == 8 then mem.u4[0x44387a + 2] = GlobalModuleOffsetsNewSpace3+0x4 mem.u4[0x443886 + 2] = GlobalModuleOffsetsNewSpace3+0x8 - mem.u4[0x443601 + 2] = GlobalModuleOffsetsNewSpace3-0x4 - mem.u4[0x44360B + 1] = GlobalModuleOffsetsNewSpace3-0x8 - mem.u4[0x44361B + 2] = GlobalModuleOffsetsNewSpace3-0x8 - mem.u4[0x44365A + 1] = GlobalModuleOffsetsNewSpace3-0x4 - mem.u4[0x4436BE + 1] = GlobalModuleOffsetsNewSpace3-0x4 - mem.u4[0x44370F + 1] = GlobalModuleOffsetsNewSpace3-0x4 - mem.u4[0x443750 + 1] = GlobalModuleOffsetsNewSpace3-0x4 - mem.u4[0x443763 + 2] = GlobalModuleOffsetsNewSpace3-0x8 - - mem.u4[0x445f74 + 2] = GlobalModuleOffsetsNewSpace2-0x4 - mem.u4[0x445f9c + 2] = GlobalModuleOffsetsNewSpace2-0x4 mem.u4[0x4435c7 + 1] = GlobalModuleOffsetsNewSpace2+0x8 mem.u4[0x445f60 + 2] = GlobalModuleOffsetsNewSpace2+0x4 mem.u4[0x445f7c + 2] = GlobalModuleOffsetsNewSpace2 --0x587e6c @@ -452,8 +441,8 @@ if mmver == 8 then mem.u4[0x4435f7 + 1] = GlobalModuleOffsetsNewSpace1 mem.u4[0x4437fd + 1] = GlobalModuleOffsetsNewSpace1 - mem.u4[0x440be1 + 1] = GlobalModuleNewSpace+0x4 --0x5bb440 - mem.u4[0x440bf7 + 2] = GlobalModuleNewSpace + mem.u4[0x440be1 + 1] = GlobalModuleNewSpace+0x4 + mem.u4[0x440bf7 + 2] = GlobalModuleNewSpace --0x5bb440 mem.u4[0x440c02 + 2] = GlobalModuleNewSpace mem.u4[0x440c47 + 2] = GlobalModuleNewSpace+0x4 mem.u4[0x440c4f + 2] = GlobalModuleNewSpace @@ -471,7 +460,7 @@ if mmver == 8 then mem.IgnoreProtection(false) ChangeGameArray("GlobalEvtLines", GlobalModuleOffsetsNewSpace1, NewGlEvtLinesCount) - --internal.SetArrayUpval(Game.GlobalEvtLines, "lenP", GlobalModuleNewSpace) + internal.SetArrayUpval(Game.GlobalEvtLines, "lenP", GlobalModuleNewSpace) ChangeGameArray("MapEvtLines", GlobalModuleOffsetsNewSpace4, NewGlEvtLinesCount) offsets.CurrentEvtLines = GlobalModuleOffsetsNewSpace3