Skip to content

Commit

Permalink
MM6Patch v2.5.6:
Browse files Browse the repository at this point in the history
[-] Items laying on the ground in one map were appearing in another when traveling by foot sometimes.
[-] My bug: DisableHooks option wasn't working for some new hooks.
[-] My bug: When custom *.games.lod archives are used, incorrect data was written to autosave on New Game start. It was fully inconsequential until version 2.5.4.
[-] Fixes in maps: Duplicated chests and houses, possibility of generation of artifacts in chests that can't be opened etc.
[-] The Monolith (d13): +5 Personality was only given to unpromoted Cleric and Druids.
  • Loading branch information
GrayFace committed Feb 5, 2022
1 parent 2f97987 commit 371a0be
Show file tree
Hide file tree
Showing 21 changed files with 3,181 additions and 3,045 deletions.
6,045 changes: 3,031 additions & 3,014 deletions MMPatches/Install/MM6patch.map

Large diffs are not rendered by default.

Binary file modified MMPatches/Install/MM6patch/Data/00 patch.games.lod
Binary file not shown.
Binary file modified MMPatches/Install/MM6patch/Data/00 patch.icons.lod
Binary file not shown.
15 changes: 14 additions & 1 deletion MMPatches/Install/MM6patch/Files/MM6Patch ReadMe.TXT
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
GrayFace MM6 Patch v2.5.5
GrayFace MM6 Patch v2.5.6
By Sergey Rozhenko <mailto:sergroj@mail.ru>
https://grayface.github.io/

Expand All @@ -11,6 +11,19 @@ At the end of ReadMe you'll find info on how to report errors.

([+] - feature, [-] - fixed bug, [*] - other)

New in version 2.5.6:
<< MM6 - MM8 >>
[+] New command available to map scripts (*.evt) that powers some of the MM6 and MM7 changes of this version (code 0x45 - RefundChestArtifacts).
[-] Items laying on the ground in one map were appearing in another when traveling by foot sometimes. Add FixItemDuplicates=0 to INI to disable this fix.
[-] My bug: DisableHooks option wasn't working for some new hooks.
[-] My bug: When custom *.games.lod archives are used, incorrect data was written to autosave on New Game start. It was fully inconsequential until version 2.5.4.
<< Fixes in maps >>
[-] Castle Ironfist (outd3), Control Center (sci-fi): Duplicated chest. (thanks to Black Phantom for the fixes)
[-] Silver Cove (outd1), Mire of the Damned (outc3), Paradise Valley (outa2): Duplicated house. (thanks to Black Phantom for the fixes)
[-] Gharik's Forge (d18), The Hive (hive), Tomb of VARN (pyramid), Blackshire (outb2), Control Center (sci-fi): It was possible for artifacts to be generated in inaccessible chests, reducing the number of artifacts you could find as a result. In Blackshire it was also possible to get rewards for statuettes quest again after the map refills.
[-] The Monolith (d13): +5 Personality was only given to unpromoted Cleric and Druids.
[-] Castle Darkmoor (cd2): One of the first cube sides didn't teleport the party when touched after activation. Reloading was opening the final hall barrier if you've pressed the levers, but haven't activated the cube yet. One of tiles that summon liches in the room before said barrier had a wrong texture. (thanks to Black Phantom for the fixes)

New in version 2.5.5:
<< MM6 - MM8 >>
[-] My bug: Possible character resistances corruption when taking an item from the inventory.
Expand Down
Binary file modified MMPatches/Install/MM6patch/Files/MM6patch.dll
Binary file not shown.
Binary file modified MMPatches/Install/MM6patchBuka/Data/00 patch.games.lod
Binary file not shown.
Binary file modified MMPatches/Install/MM6patchBuka/Data/00 patch.icons.lod
Binary file not shown.
15 changes: 14 additions & 1 deletion MMPatches/Install/MM6patchBuka/Files/MM6Patch ReadMe_rus.TXT
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
GrayFace MM6 Patch v2.5.5
GrayFace MM6 Patch v2.5.6
�����: ������ ������� <mailto:sergroj@mail.ru>
https://grayface.github.io/ru/
������� ����� ReadMe �� �������: Black Phantom <mailto:mm6789@yandex.ru>
Expand All @@ -10,6 +10,19 @@ https://grayface.github.io/ru/

([+] - ����, [-] - ������������ ���, [*] - ������)

��������� ������ 2.5.6:
<< MM6 - MM8 >>
[+] ����� �������, ��������� ��� �������� ���� (*.evt), ������� ��������� ������� ��������� ��������� ����� � MM6 � MM7 (��� 0x45 - RefundChestArtifacts).
[-] ������ ������� �� ����� �������� �� ����� ����� ���������� � ������ ��� ����������� ������. ����� ��������� �����������, �������� FixItemDuplicates=0 � INI.
[-] ��� ���: ����� "DisableHooks" �� �������� ��� ��������� ����� �����.
[-] ��� ���: ��� ������������� ����� ������� *.games.lod �������� ������ �������� � �������������� ��� ������ ����� ����. ��� �� �� ��� �� ������ �� ������ 2.5.4.
<< ����������� �� ������ >>
[-] ����� ��������� (outd3), ����� ���������� (sci-fi): ������������� ������. (������� Black Phantom �� �����������)
[-] ���������� ����� (outd1), ������� ��������� (outc3), ������� ������ (outa2): ������������� ���. (������� Black Phantom �� �����������)
[-] ������� ������ (d18), ���� (hive), ����������� ���� (pyramid), ������� (outb2), ����� ���������� (sci-fi): � ����������� �������� ����� �������������� ���������, � ���������� ����������� ����� ����������, ������� ����� �����. � �������� � ���� �� ����� ���� �������� �������� ������� �� ����� � ���������� ��� �������� �����.
[-] ������� (d13): +5 ���� ���� �� �������� �������� � �������, ������� �������� ���������.
[-] ����� ������� (cd2): ���� �� ������ ������� ���� �� ��������������� ������� ��� ������������� ����� ���������. ������������ ����� ��������� � ���������� ���������� ������� � ��������� ���� � ������, ���� ����� ��� ������� ������, �� �� ����������� ���. � ������� ����� ���������� �������� ���� �� ������, ����������� �����, �� ����� ����������� ��������. (������� Black Phantom �� �����������)

��������� ������ 2.5.5:
<< MM6 - MM8 >>
[-] ��� ���: ������ �������� �� ��������� ����� ��������� � ����������� ������ � ����������������� ���������.
Expand Down
Binary file modified MMPatches/Install/MM6patchBuka/Files/MM6patch.dll
Binary file not shown.
Binary file modified MMPatches/Install/MM6patchLoc/Data/00 patch.games.lod
Binary file not shown.
Binary file modified MMPatches/Install/MM6patchLoc/Data/00 patch.icons.lod
Binary file not shown.
Binary file modified MMPatches/Install/MM6patchLoc/Files/MM6patch.dll
Binary file not shown.
15 changes: 14 additions & 1 deletion MMPatches/Install/MM6patchLoc/eng/MM6Patch ReadMe.TXT
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
GrayFace MM6 Patch v2.5.5
GrayFace MM6 Patch v2.5.6
By Sergey Rozhenko <mailto:sergroj@mail.ru>
https://grayface.github.io/

Expand All @@ -11,6 +11,19 @@ At the end of ReadMe you'll find info on how to report errors.

([+] - feature, [-] - fixed bug, [*] - other)

New in version 2.5.6:
<< MM6 - MM8 >>
[+] New command available to map scripts (*.evt) that powers some of the MM6 and MM7 changes of this version (code 0x45 - RefundChestArtifacts).
[-] Items laying on the ground in one map were appearing in another when traveling by foot sometimes. Add FixItemDuplicates=0 to INI to disable this fix.
[-] My bug: DisableHooks option wasn't working for some new hooks.
[-] My bug: When custom *.games.lod archives are used, incorrect data was written to autosave on New Game start. It was fully inconsequential until version 2.5.4.
<< Fixes in maps >>
[-] Castle Ironfist (outd3), Control Center (sci-fi): Duplicated chest. (thanks to Black Phantom for the fixes)
[-] Silver Cove (outd1), Mire of the Damned (outc3), Paradise Valley (outa2): Duplicated house. (thanks to Black Phantom for the fixes)
[-] Gharik's Forge (d18), The Hive (hive), Tomb of VARN (pyramid), Blackshire (outb2), Control Center (sci-fi): It was possible for artifacts to be generated in inaccessible chests, reducing the number of artifacts you could find as a result. In Blackshire it was also possible to get rewards for statuettes quest again after the map refills.
[-] The Monolith (d13): +5 Personality was only given to unpromoted Cleric and Druids.
[-] Castle Darkmoor (cd2): One of the first cube sides didn't teleport the party when touched after activation. Reloading was opening the final hall barrier if you've pressed the levers, but haven't activated the cube yet. One of tiles that summon liches in the room before said barrier had a wrong texture. (thanks to Black Phantom for the fixes)

New in version 2.5.5:
<< MM6 - MM8 >>
[-] My bug: Possible character resistances corruption when taking an item from the inventory.
Expand Down
15 changes: 14 additions & 1 deletion MMPatches/Install/MM6patchLoc/rus/MM6Patch ReadMe_rus.TXT
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
GrayFace MM6 Patch v2.5.5
GrayFace MM6 Patch v2.5.6
�����: ������ ������� <mailto:sergroj@mail.ru>
https://grayface.github.io/ru/
������� ����� ReadMe �� �������: Black Phantom <mailto:mm6789@yandex.ru>
Expand All @@ -10,6 +10,19 @@ https://grayface.github.io/ru/

([+] - ����, [-] - ������������ ���, [*] - ������)

��������� ������ 2.5.6:
<< MM6 - MM8 >>
[+] ����� �������, ��������� ��� �������� ���� (*.evt), ������� ��������� ������� ��������� ��������� ����� � MM6 � MM7 (��� 0x45 - RefundChestArtifacts).
[-] ������ ������� �� ����� �������� �� ����� ����� ���������� � ������ ��� ����������� ������. ����� ��������� �����������, �������� FixItemDuplicates=0 � INI.
[-] ��� ���: ����� "DisableHooks" �� �������� ��� ��������� ����� �����.
[-] ��� ���: ��� ������������� ����� ������� *.games.lod �������� ������ �������� � �������������� ��� ������ ����� ����. ��� �� �� ��� �� ������ �� ������ 2.5.4.
<< ����������� �� ������ >>
[-] ����� ��������� (outd3), ����� ���������� (sci-fi): ������������� ������. (������� Black Phantom �� �����������)
[-] ���������� ����� (outd1), ������� ��������� (outc3), ������� ������ (outa2): ������������� ���. (������� Black Phantom �� �����������)
[-] ������� ������ (d18), ���� (hive), ����������� ���� (pyramid), ������� (outb2), ����� ���������� (sci-fi): � ����������� �������� ����� �������������� ���������, � ���������� ����������� ����� ����������, ������� ����� �����. � �������� � ���� �� ����� ���� �������� �������� ������� �� ����� � ���������� ��� �������� �����.
[-] ������� (d13): +5 ���� ���� �� �������� �������� � �������, ������� �������� ���������.
[-] ����� ������� (cd2): ���� �� ������ ������� ���� �� ��������������� ������� ��� ������������� ����� ���������. ������������ ����� ��������� � ���������� ���������� ������� � ��������� ���� � ������, ���� ����� ��� ������� ������, �� �� ����������� ���. � ������� ����� ���������� �������� ���� �� ������, ����������� �����, �� ����� ����������� ��������. (������� Black Phantom �� �����������)

��������� ������ 2.5.5:
<< MM6 - MM8 >>
[-] ��� ���: ������ �������� �� ��������� ����� ��������� � ����������� ������ � ����������������� ���������.
Expand Down
3 changes: 1 addition & 2 deletions MMPatches/MM6Patch/MM6patch.bdsproj
Original file line number Diff line number Diff line change
Expand Up @@ -169,8 +169,7 @@
<VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
<VersionInfoKeys Name="ProductName">GrayFace MM6 Patch</VersionInfoKeys>
<VersionInfoKeys Name="ProductVersion">2.5.3.0</VersionInfoKeys>
</VersionInfoKeys>
<Excluded_Packages>
</VersionInfoKeys> <Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\Serg\Мои документы\Borland Studio Projects\Bpl\dclrx2006.bpl">File C:\Documents and Settings\Serg\Мои документы\Borland Studio Projects\Bpl\dclrx2006.bpl not found</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\Serg\Мои документы\Borland Studio Projects\Bpl\dclrxbd2006.bpl">File C:\Documents and Settings\Serg\Мои документы\Borland Studio Projects\Bpl\dclrxbd2006.bpl not found</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\Serg\Мои документы\Borland Studio Projects\Bpl\dclrxdb2006.bpl">File C:\Documents and Settings\Serg\Мои документы\Borland Studio Projects\Bpl\dclrxdb2006.bpl not found</Excluded_Packages>
Expand Down
7 changes: 7 additions & 0 deletions MMPatches/MM6Patch/MM6patch.dpr
Original file line number Diff line number Diff line change
Expand Up @@ -348,6 +348,13 @@ Version 2.5.5:
(MM7, MM8)
[*] FixUnmarkedArtifacts now also respects the 13 artifacts limit imposed by the game
Version 2.5.6:
(MM6-MM8)
[+] New Evt command 0x45 - RefundChestArtifacts
[-] FixItemDuplicates - Fix items from one map appearing in another when traveling by foot
[-] My bug: DisableHooks option wasn't working for some hooks
[-] My bug: With custom *.games.lod archives incorrect data was written to autosave on New Game start
Åñëè çàãðóçèòü ñåéâ, ãäå âñå ðîæè îäèíàêîâûå, à ïîòîì ñåéâ ñ ðàçíûìè, áóäóò ÷åðíûå ïÿòíà íà ìåñòå ðîæ
Expand Down
Binary file modified MMPatches/MM6Patch/MM6patch.res
Binary file not shown.
7 changes: 5 additions & 2 deletions MMPatches/MM6Patch/RSCodeHook.pas
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ interface
RShtFunctionStart:
<code at @p> -> jmp @store
(here @std is an allocated code block containing code from @p and jump to p + size)
RShtBeforeJmp6:
jz @std -> jz @store2
RShtCallBefore:
call @std -> call @store2
}
Expand Down Expand Up @@ -199,8 +201,9 @@ procedure RSApplyHook(const Hook: TRSHookInfo);
RShtBeforeJmp6:
begin
p1:= RSAllocCode(10); // p: jnz p1
Jmp(p1, new, true); // call @hook
Jmp(p1 + 5, RSGetHookValue(Hook)); // jmp @std
pbyte(p1)^:= $68; // push @orig
pint(p1+1)^:= RSGetHookValue(Hook);
Jmp(p1 + 5, new); // jmp @hook
pint(p+2)^:= p1 - p - 6;
end;
RShtAfter:
Expand Down
9 changes: 7 additions & 2 deletions MMPatches/MMCommon/DXProxy.pas
Original file line number Diff line number Diff line change
Expand Up @@ -529,8 +529,6 @@ procedure CalcRenderLim;
RenderLimX:= RenderMaxWidth;
if RenderMaxHeight >= 480 then
RenderLimY:= RenderMaxHeight;
if _IsD3D^ and (max(RenderLimX, RenderLimY) > 2048) and not Direct3DFixed and not UseVoodoo then
FixDirect3D;
CalcRenderSize;
end;

Expand Down Expand Up @@ -766,11 +764,18 @@ procedure THookedObject.InitVMT(const Obj: IUnknown; this: IUnknown; PObj: ptr;
function TMyDirectDraw.CreateDevice(const rclsid: TRefClsID;
lpDDS: IDirectDrawSurface4; out lplpD3DDevice: IDirect3DDevice3;
pUnkOuter: IInterface): HResult;
label retry;
begin
retry:
if lpDDS = MyBackBuffer then
Result:= D3D.CreateDevice(rclsid, BackBuffer, lplpD3DDevice, pUnkOuter)
else
Result:= D3D.CreateDevice(rclsid, lpDDS, lplpD3DDevice, pUnkOuter);
if (Result <> DD_OK) and _IsD3D^ and (max(RenderLimX, RenderLimY) > 2048) and not Direct3DFixed and not UseVoodoo then
begin
FixDirect3D;
goto retry;
end;
if Result = DD_OK then
TMyDevice.Hook(lplpD3DDevice);
end;
Expand Down
22 changes: 17 additions & 5 deletions MMPatches/MMCommon/MMCommon.pas
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,8 @@ interface
hqFixWaterWalkManaDrain = 86;
hqKeepEmptyWands = 87;
hqDontSkipSimpleMessage = 88;
hqFixItemDuplicates = 89;
hqFixClubsGeneration = 90;

{$IFDEF mm6}
m6 = 1;
Expand Down Expand Up @@ -187,6 +189,8 @@ interface
FixWaterWalkManaDrain: LongBool; //
KeepEmptyWands: LongBool; //
DontSkipSimpleMessage: LongBool; // (unused in MM8)
FixItemDuplicates: LongBool; //
FixClubsGeneration: LongBool; // (MM8 only)
end;

var
Expand Down Expand Up @@ -614,6 +618,8 @@ TSpellBuff = record
_SpritesCount = pint(__SpritesCount);
__ObjectsCount = m6*$5E2180 + m7*$6650AC + m8*$692FB4;
_ObjectsCount = pint(__ObjectsCount);
__Objects = m6*$5C9AD8 + m7*$6650B0 + m8*$692FB8;
_Objects = pchar(__Objects);
__MonstersCount = m6*$5B22F8 + m7*$6650A8 + m8*$692FB0;
_MonstersCount = pint(__MonstersCount);
__MonstersLimit = m6*$4A35FA + m7*$4BBED6 + m8*$4BA086;
Expand Down Expand Up @@ -687,7 +693,7 @@ TSpellBuff = record
_ObjOff_Z = $C;
_ObjOff_Size = $70 - m6*$C;

_Skill_Club = -m6 + m7*37 + m8*40;
_Skill_Club = -m6 + m7*37 + m8*39;
_Skill_Misc = m6*12 + m7*38 + m8*40;

const
Expand Down Expand Up @@ -1049,8 +1055,12 @@ procedure LoadIni;
info:= 'Smooth turn speed in double speed mode';
TurnSpeedDouble:= ReadInteger('TurnSpeedDouble', 120)/200;
ProgressiveDaggerTrippleDamage:= ReadBool('ProgressiveDaggerTrippleDamage', true, false);
info:= 'Set to -1 to disable MM8 original implementation of mouse look. Set to a value above 0 to perform rotation when mouse is this close to view border';
{$IFDEF mm8}MouseBorder:= ReadInteger('MouseLookBorder', 100);{$ENDIF}
{$IFDEF mm8}
info:= 'Set to -1 to disable MM8 original implementation of mouse look and make right button pause the game instead. A value above 0 would lead to view rotating when mouse is this close to view border and right button is pressed';
DelList.Add('Set to -1 to disable MM8 original implementation of mouse look. Set to a value above 0 to perform rotation when mouse is this close to view border');
MouseBorder:= ReadInteger('MouseLookBorder', 100);
FixClubsGeneration:= ReadBool('FixClubsGeneration', true, false);
{$ENDIF}
info:= 'If set to 1, items that didn''t fit into a chest would appear next time you open it';
FixChests:= ReadBool('FixChests', false, false);
info:= 'Minimal recovery value of blasters and bows (used to be 0 in original game)';
Expand Down Expand Up @@ -1249,6 +1259,7 @@ procedure LoadIni;
KeepEmptyWands:= ReadBool('KeepEmptyWands', true, false);
{$IFNDEF mm8}DontSkipSimpleMessage:= ReadBool('DontSkipSimpleMessage', true, false);{$ENDIF}
{$IFNDEF mm8}FixUnmarkedArtifacts:= ReadBool('FixUnmarkedArtifacts', m7 = 0, false);{$ENDIF}
FixItemDuplicates:= ReadBool('FixItemDuplicates', true, false);

{$IFDEF mm6}
info:= 'Set this to 0 to disable loading of mm6text.dll';
Expand Down Expand Up @@ -1634,9 +1645,10 @@ procedure CheckHooks(var Hooks);
i: int;
begin
i:= 0;
while hk[i].p <> 0 do
while not CompareMem(@hk[i], @RSEmptyHook, SizeOf(RSEmptyHook)) do
begin
CheckHook(hk[i]);
if hk[i].p <> 0 then
CheckHook(hk[i]);
inc(i);
end;
end;
Expand Down
73 changes: 57 additions & 16 deletions MMPatches/MMCommon/MMHooks.pas
Original file line number Diff line number Diff line change
Expand Up @@ -1398,7 +1398,7 @@ procedure CheckChestArtifact(var a: TItem; cond: int; refund: Boolean);
a.Condition:= a.Condition and not cond;
i:= a.Number - _ArtifactsFoundBase^;
//zM(i, BoolToInt[refund]);
if i >= _ArtifactsFoundCount^ then
if uint(i) >= _ArtifactsFoundCount^ then
exit;
p:= _pArtifactsFound^ + i;
if refund then
Expand Down Expand Up @@ -3742,18 +3742,6 @@ procedure FixBuffTime;
jmp DoFixBuffTime
end;

//----- Fix removed objects reappearing when dropping one on the ground or saving
//(Elemental Mod does it, but I haven't been able to reproduce the bug, at least in MM6)

//procedure FixSummonObject;
//asm
//{$IFDEF mm6}
// cmp edx, dword ptr [__ObjectsCount]
//{$ELSE}
// cmp ebx, dword ptr [__ObjectsCount]
//{$ENDIF}
//end;

//----- Fix potion explosions breaking hardened items

procedure FixPotionBreakItem;
Expand Down Expand Up @@ -3968,10 +3956,57 @@ procedure DontSkipSimpleMessage;
end;
end;

//----- New Evt commands

procedure DoRefundChest(i: byte);
begin
CheckChests(ptr(_pChests^ + _ChestOff_Size*i), 1);
end;

procedure NewEvtCommands;
asm
cmp byte ptr [esi + 4], $45
jnz @std
mov al, [esi + 5]
call DoRefundChest
@std:
end;

//----- Fix items from one map appearing in another when traveling by foot

procedure FixClearLevel;
begin
ZeroMemory(_Objects, _ObjOff_Size*min(1000, uint(_ObjectsCount^)));
end;

//----- Custom LODs - fix copying *.ddm and *.dlv when starting new game

var
freadLock: function(p: ptr; size, n: uint; handle: ptr): uint; cdecl;

function ReadGamesFileProc(ret: ptr; p: PChar; _size, _n: uint; handle: ptr): uint; cdecl;
const
skip = (1 - m6)*8;
sz = skip + 8;
begin
Result:= freadLock(p, 1, sz, handle);
inc(Result, freadLock(p + sz, 1, pint(p + skip)^, handle));
end;

procedure ReadGamesFileHook;
asm
call ReadGamesFileProc
{$IFDEF mm6}
mov [esp + $188 - $120 + $14], eax
{$ELSE}
mov [ebp - $6C + $14], eax
{$ENDIF}
end;

//----- HooksList

var
HooksCommon: array[1..84] of TRSHookInfo = (
HooksCommon: array[1..87] of TRSHookInfo = (
(p: m6*$453ACE + m7*$463341 + m8*$461316; newp: @UpdateHintHook;
t: RShtCallStore; Querry: hqFixStayingHints), // Fix element hints staying active in some dialogs
(p: m6*$4226F8 + m7*$427E71 + m8*$4260A8; newp: @FixItemSpells;
Expand Down Expand Up @@ -4065,8 +4100,6 @@ procedure DontSkipSimpleMessage;
(p: m6*$41A309 + m7*$41D1CF + m8*$41C60A; newp: @FixBuffTime; t: RShtCall), // Fix buff duration display
(p: m6*$41A472 + m7*$41D2CE + m8*$41C709; size: 2), // Fix buff duration display
(p: m6*$41A4DE + m7*$41D30D + m8*$41C748; size: 2), // Fix buff duration display
// (p: m6*$42A74B + m7*$42F5F0 + m8*$42E083; newp: @FixSummonObject;
// t: RShtCall; size: 6), // Fix removed objects reappearing when dropping one on the ground or saving
(p: m7*$41617B + m8*$415636; size: 10), // Fix potion explosions breaking hardened items
(p: m7*$41619F + m8*$41565A; size: 3), // Fix potion explosions breaking hardened items
(p: m7*$416198 + m8*$415653; newp: @FixPotionBreakItem;
Expand Down Expand Up @@ -4126,6 +4159,12 @@ procedure DontSkipSimpleMessage;
t: RShtBefore; size: 5 + m6; Querry: hqFixUnmarkedArtifacts), // Fix deliberately generated artifacts not marked as found
(p: m6*$44A732 + m7*$450637; newp: @FixUnmarkedArtifactsMax;
t: RShtAfter; size: 5 + m7*2; Querry: hqFixUnmarkedArtifacts), // Fix deliberately generated artifacts not marked as found
(p: m6*$43C942 + m7*$446978 + m8*$44389D; newp: @NewEvtCommands;
t: RShtBeforeJmp6), // New Evt commands
(p: m6*$458C20 + m7*$460780 + m8*$45E093; newp: @FixClearLevel;
t: RShtCallBefore; Querry: hqFixItemDuplicates), // Fix items from one map appearing in another when traveling by foot
(p: m6*$458818 + m7*$4609E3 + m8*$45E2F8; backup: @@freadLock; newp: @ReadGamesFileHook;
t: RShtCall), // Custom LODs - fix copying *.ddm and *.dlv when starting new game
()
);
{$IFDEF MM6}
Expand Down Expand Up @@ -4603,6 +4642,8 @@ procedure ApplyMMDeferredHooks;
ApplyHooks(hqFixUnimplementedSpells);
if Options.DontSkipSimpleMessage then
ApplyHooks(hqDontSkipSimpleMessage);
if Options.FixItemDuplicates then
ApplyHooks(hqFixItemDuplicates);
end;

procedure ApplyMMHooksSW;
Expand Down

0 comments on commit 371a0be

Please sign in to comment.