Wake of Gods Forum | Форум Во Имя Богов

Full Version: ERA II
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
В своё время народ не принял попытку ресурсы (кроме дефов) перевести на Data\Era\расширение. Data\Era\.erm, Data\Era\.txt.

Code:
{$IFDEF ERA2}
// Патчим GetBitmap816
General.HookCode(Ptr($55AA9A), @AsmHook_OpenResource, General.C_HOOKTYPE_CALL, 5);
// Патчим GetBitmap16
General.HookCode(Ptr($55AE96), @AsmHook_OpenResource, General.C_HOOKTYPE_CALL, 5);
// Патчим GetPalette
General.HookCode(Ptr($55B2BC), @AsmHook_OpenResource, General.C_HOOKTYPE_CALL, 5);
// Патчим GetFont
General.HookCode(Ptr($55BB27), @AsmHook_OpenResource, General.C_HOOKTYPE_CALL, 5);
// Патчим GetText
General.HookCode(Ptr($55BDE7), @AsmHook_OpenResource, General.C_HOOKTYPE_CALL, 5);
// Патчим GetSample
General.HookCode(Ptr($55C61F), @AsmHook_OpenResource, General.C_HOOKTYPE_CALL, 5);
// Патчим OpenFile для GetSample
General.HookCode(Ptr($604881), @AsmHook_OpenFile, General.C_HOOKTYPE_CALL, 6);
General.HookCode(Ptr($604403), @AsmHook_OpenFile, General.C_HOOKTYPE_CALL, 6);
General.HookCode(Ptr($604A17), @AsmHook_OpenFile, General.C_HOOKTYPE_CALL, 6);
// Патчим GetSpreadsheet
General.HookCode(Ptr($55C0B7), @AsmHook_OpenResource, General.C_HOOKTYPE_CALL, 5);
// Патчим ссылки на Data\s
Patch.Opcode:=$68;
Patch.Addr:=@General.ErmPath[1];
General.WriteAtCode(Ptr($72C2EB), @Patch, 5);
General.WriteAtCode(Ptr($773EB9), @Patch, 5);
General.WriteAtCode(Ptr($777E6F), @Patch, 5);
Patch.Addr:=@General.ErtPath[1];
General.WriteAtCode(Ptr($72C34C), @Patch, 5);
Patch.Addr:=@General.ErsPath[1];
General.WriteAtCode(Ptr($7B3800), @Patch.Addr, 4);
{$ENDIF}
Quote:General.HookCode(Ptr($55BDE7), @AsmHook_OpenResource, General.C_HOOKTYPE_CALL, 5);
Я делал хук на 55BDE1, то есть подменял только путь к файлу. Но, в принципе, это одно и то же.

А вообще, вначале, я хотел сделать загрузку текстовиков из архива, но пока не разобрался, где игра читает файлы не из файла, а уже из буфера. А то приходилось бы сначала вытаскивать файл во временный файл, чтобы игра его читала. Лучше же читать уже из буфера - не нужно лишней работы с диском.

Спасибо за адреса, будем посмотреть Sm
Хм, а если будет подгрузка текстов
, а в перспективе и прочего, на что Берсеркер тут указал хуки,
из рар-архива (понятно, что на самом деле любого архива, для которого можно найти не слишком сложное API), то это будет пользоваться спросом? При этом остаётся проблема редактора карт, который не поймёт всех этих усилий Ab
Нужно искать аналоги в редакторе, а подгрузка - дело неплохое. В идеале ведь лоды не нужны.
Такой вот глупый вопрос - а читы в Эре есть? Sm Просто для отладки иногда нужно мгновенно пройти карту.
Вроде должны остаться воговские читы.
Воговские читы работают, если не запрещены в вог-опциях.
http://zalil.ru/31673353
Загрузка текстов из "textlod.ZIP". Пока работает только с костылём в виде "dummy.txt" в папке Data, но он не читается и его содержимое не важно, только проверяется его существование и размер, который должен быть не меньше, чем у самого большого загружаемого текстового файла.
Неплохо! Но что-то костылей много. Нужно и размер подменять на лету.
Можно, только у меня потом почему-то игра не запускалась. Причину так и не нашёл, поэтому так и оставил пока. Потом надеюсь доделать.

Quote:Но что-то костылей много.
Один костыль только. Sm Если бы я использовал для этих целей любой другой файл из папки Data, то никто бы и не заметил Sm
Берс, а новую версию инсталятора "Все-в-одном" будешь с Эрой 1.91 делать?
Не скоро, наверное.
MSVC отказался компилировать SDK Эры в представленном виде.
Ничего сверхъестественного изменять не пришлось, мелочи, но, может, сэкономлю кому-нибудь время:
(22.07.2011 05:03)MOP Wrote: [ -> ]Новый город - это попса. А я митол люблю.
Я вообще думаю, что всего один новый артефакт - лучше, чем сотня городов. Новый город - дорогая по всем параметрам безделушка, делаемая людьми чисто из желания похвастаться, что они смогли это сделать.

Посмеялся от души)))
MOP - новый город, это как симфония в музыке, иными словами - крупная форма, требующая максимального творческого напряжения и соединяющая в себе различные формы и стилистические направления. Это, своего рода, диссертация. А артефакт - ну, пьеса в свободной форме, которую можно сочинить левой ногой, только восставши ото сна.
При всем моем глубоком уважении к тебе, в данном случае ты категорически не прав. Хотя, конечно, тебя можно понять: еще ни одного города не вышло так, чтобы можно было спокойно поиграть и увидеть своими глазами всю мощь и глубину творческой мысли.

Сори за оффтоп. Тема не для этого, просто я не удержался и закомментил, потому как вопрос не праздный и, в общем-то, не только философский.
Внимание! Ексебилдер не учитывает стандартное смещение в 400000. В итоге экзешник разбухает до 7 мегов и разумеется не запускается.
Reference URL's