Berserker
Posts: 16657
|
|
03.12.2017 18:06 |
|
MOP
Posts: 1468
|
Дьякон вроде это делал в своей MONSTRDLL.dll. По крайней мере, в исходниках были указания на это. Мне же не удалось ни разобраться в его коде, ни заставить программу работать, хотя она и создана под ЭРУ.
// вставляем код вызова процедуры подгрузки портретов void* p_ProcForDef = (void*)0x55D102; TLoadDef.jmp = 0xE9; offset = (int)&InsertCodeDef - 0x55D102 - 5; memcpy(&TLoadDef.Adr[0], &offset, sizeof(int)); memcpy(p_ProcForDef, &TLoadDef, sizeof(LOADDEF)); // вставляем код перехвата Hook47BE90 void* p_ProcForHook47BE90 = (void*)0x47BE90; TLoadDef.jmp = 0xE9; offset = (int)&Hook47BE90 - 0x47BE90 - 5; memcpy(&TLoadDef.Adr[0], &offset, sizeof(int)); memcpy(p_ProcForHook47BE90, &TLoadDef, sizeof(LOADDEF)); // вставляем код перехвата Hook47C300 void* p_ProcForHook47C300 = (void*)0x47C300; TLoadDef.jmp = 0xE9; offset = (int)&Hook47C300 - 0x47C300 - 5; memcpy(&TLoadDef.Adr[0], &offset, sizeof(int)); memcpy(p_ProcForHook47C300, &TLoadDef, sizeof(LOADDEF)); // вставляем код перехвата Hook47C9C0 void* p_ProcForHook47C9C0 = (void*)0x47C9C0; TLoadDef.jmp = 0xE9; offset = (int)&Hook47C9C0 - 0x47C9C0 - 5; memcpy(&TLoadDef.Adr[0], &offset, sizeof(int)); memcpy(p_ProcForHook47C9C0, &TLoadDef, sizeof(LOADDEF)); // вставляем код перехвата Hook47CE10 void* p_ProcForHook47CE10 = (void*)0x47CE10; TLoadDef.jmp = 0xE9; offset = (int)&Hook47CE10 - 0x47CE10 - 5; memcpy(&TLoadDef.Adr[0], &offset, sizeof(int)); memcpy(p_ProcForHook47CE10, &TLoadDef, sizeof(LOADDEF)); // вставляем код перехвата Hook47D250 void* p_ProcForHook47D250 = (void*)0x47D250; TLoadDef.jmp = 0xE9; offset = (int)&Hook47D250 - 0x47D250 - 5; memcpy(&TLoadDef.Adr[0], &offset, sizeof(int)); memcpy(p_ProcForHook47D250, &TLoadDef, sizeof(LOADDEF)); // вставляем код перехвата Hook47D660 void* p_ProcForHook47D660 = (void*)0x47D660; TLoadDef.jmp = 0xE9; offset = (int)&Hook47D660 - 0x47D660 - 5; memcpy(&TLoadDef.Adr[0], &offset, sizeof(int)); memcpy(p_ProcForHook47D660, &TLoadDef, sizeof(LOADDEF));
return TRUE;
}
Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
(This post was last modified: 04.12.2017 18:57 by MOP.)
|
|
04.12.2017 18:51 |
|
Berserker
Posts: 16657
|
|
04.12.2017 19:03 |
|
MOP
Posts: 1468
|
Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
|
|
04.12.2017 19:09 |
|
Berserker
Posts: 16657
|
|
04.12.2017 23:06 |
|
feanor
Posts: 624
|
Quote: Удручает пока сложность замены отдельных кадров в def-ах на лету, пока этот вопрос не решил.
Так можно поставить хук на отрисовку кадров дефа, и рисовать вместо него pcx. (я пробовал, работает)
Единственно, с курсором артефактов какие-то тонкости будут.
|
|
05.12.2017 12:41 |
|
Berserker
Posts: 16657
|
|
05.12.2017 17:19 |
|
feanor
Posts: 624
|
Набор, но все они в итоге сводятся к максимум DefCadre_Draw[...] .
При этом разбирать-то их даже особо не надо, сплайс, замена на отрисовку pcx8.
И потратить чуть-чуть памяти на предварительную загрузку pcx-ов.
Единственная проблема - с DefCadre мы можем получить только имя кадра (somename.pcx), для адекватного по быстродействию поиска имени дефа и номеров группы и кадра надо чуть-чуть подумать.
(This post was last modified: 05.12.2017 19:54 by feanor.)
|
|
05.12.2017 19:53 |
|
Berserker
Posts: 16657
|
|
05.12.2017 20:39 |
|
Berserker
Posts: 16657
|
|
07.12.2017 21:55 |
|
Berserker
Posts: 16657
|
|
08.12.2017 03:41 |
|