Нашёл причину загрузки файлов вроде scrip92.erm: Typhon. Публикую патч, который войдёт в обновление TyphonZ.
Code:
diff --git a/Typhon/Data.asm b/Typhon/Data.asm
index f99b866..2c89942 100644
--- a/Typhon/Data.asm
+++ b/Typhon/Data.asm
@@ -11,8 +11,8 @@ match =FALSE, COPYMODE
Table_Hooks:
Hook 4EDE90h, LoadCreatures, TCall; загрузка параметров существ
Hook 4EDE90h, LoadCreatures, TCall; загрузка параметров существ
+ Hook 4FDF5Bh, SetupRandomDwellings, TCall; перед настройкой случайных жилищ
Hook 4FDF5Bh, SetupRandomDwellings, TCall; перед настройкой случайных жилищ
- Hook 74C7DDh, MapInstruction, TCall; инструкция карты
Hook 760F07h, SaveParam, TJump; сохранение данных
Hook 7614B3h, LoadParam, TJump; загрузка данных
Hook 5410FDh, MonsterRandomGeneration, TJump; запрет из таблицы запрета
diff --git a/Typhon/Functions.asm b/Typhon/Functions.asm
index e13d02a..b5535bb 100644
--- a/Typhon/Functions.asm
+++ b/Typhon/Functions.asm
@@ -498,12 +498,7 @@ L006369BB:
retn
endp
-proc MapInstruction
-; выполнение затёртого кода
- push 1
- mov eax, 72C8B1h
- call eax
- pop ecx
+proc OnBeforeErmInstructions uses esi edi ebx, Event
; 6977e8 - адрес оригинальной структуры дерева построек (8*44*9)
stdcall LoadFile, TownsSetup_mop
xchg ebx, eax
diff --git a/Typhon/Typhon.asm b/Typhon/Typhon.asm
index b59e894..261f524 100644
--- a/Typhon/Typhon.asm
+++ b/Typhon/Typhon.asm
@@ -215,10 +215,11 @@ section '.code' code readable executable
rd 500; для антивирусов
-_OnAfterWoG db 'OnAfterWoG', 0
-_OnCustomDialogEvent db 'OnCustomDialogEvent', 0
-_OnBeforeBattleAction db 'OnBeforeBattleAction', 0
-_OnAfterBattleAction db 'OnAfterBattleAction', 0
+_OnAfterWoG db 'OnAfterWoG', 0
+_OnCustomDialogEvent db 'OnCustomDialogEvent', 0
+_OnBeforeBattleAction db 'OnBeforeBattleAction', 0
+_OnAfterBattleAction db 'OnAfterBattleAction', 0
+_OnBeforeErmInstructions db 'OnBeforeErmInstructions', 0
DLL_PROCESS_ATTACH = 1
@@ -228,10 +229,11 @@ proc TYPHON, hDll, Reason, Reserved
; только при подключении dll к процессу, не к потокам
.if dword [Reason] = DLL_PROCESS_ATTACH
; регистрируем обработчики событий
- stdcall [RegisterHandler], OnAfterWoG, _OnAfterWoG
- stdcall [RegisterHandler], OnCustomDialogEvent, _OnCustomDialogEvent
- stdcall [RegisterHandler], OnBeforeBattleAction, _OnBeforeBattleAction
- stdcall [RegisterHandler], OnAfterBattleAction, _OnAfterBattleAction
+ stdcall [RegisterHandler], OnAfterWoG, _OnAfterWoG
+ stdcall [RegisterHandler], OnCustomDialogEvent, _OnCustomDialogEvent
+ stdcall [RegisterHandler], OnBeforeBattleAction, _OnBeforeBattleAction
+ stdcall [RegisterHandler], OnAfterBattleAction, _OnAfterBattleAction
+ stdcall [RegisterHandler], OnBeforeErmInstructions, _OnBeforeErmInstructions
mov dword [761381h], 39859587; Заглушить вог-функцию ResetMonTable,
mov dword [761385h], 3271623302; мешающую редактору существ