Не забывайте, что на то, чтобы первый раз копнуть, нужно выйти из города, потом переждать ещё день... Кто будет рестартить игру с таким мизерным шансом достать из земли артефакт, да ещё и крутой? И сейв-лоад тоже будет горьким трудом. А карта "как после бомбёжки" - это только эстетика. Я бы даже сказал, будет смешно на это поглядеть.
К тому же, раскопки - противовес человека той самой неконтролируемой скупке ИИ артефактов в ТА и ЧР. К тому же, у ИИ бесконечные ресурсы.
Меня устраивает.
Залатал всякие дырки в отрисовке пункта «E» шаблона DL (там чуть ли не половина параметров в вог-функции перепутана), сделал (через задницу, но стабильно) получение введенного текста в z-переменную от любого такого пункта в диалоге. Также можно ограничивать не просто ширину элемента, но и длину введённого текста.
Потом сделал поддержку русской раскладки. Довольно дилетантски: хук на вызовы sub_4EC7C0. В хуке – вызов её, затем получение имени текущей раскладки (GetKeyboardLayoutNameA). Если оно равно 00000419 – замена вводимого символа на русский из специальной таблицы, основываясь на смещении, равном машкоду введённого символа. Если кто знает лучший способ – можете посоветовать. Я ж ламер.
А под клэшовский «Bankrobber» украл прямо из HiRez.dll длиннокод вставки текста из буфера обмена и запилил в недавно начатую MoP.dll.
Всё это, конечно, не только к DL применимо, но и ко всем исконным игровым диалогам со вводом. Например, ввод имён игроков для хот-сита.
Так что можно, наконец, избавиться от ограниченных вог-диалогов, которые только тем и удерживали, что вводом букофф.
Остаётся крохотная бяка: при вводе/стирании текста в DL где-то работает какая-то жирная воговская функция, заметно тормозящая действие. Надо выпилить.
Первые плоды:
Решил не париться с созданием шаблонов для рандомок, а предоставить выбор шаблона игроку, наподобие HD. В MoP.ini есть теперь секция, имеющая вид:
[RMG Template]
TxtFileName=rmg.txt
Ну и всё какбэ ясно. Перед генерацией рандомки (не обязательно перед запуском игры) пишите туда имя нужного вам файла, который вы положили в data или в лод – и все.
По умолчанию, как видно, стоит оригинальный текстовик.
В поставку шаблоны не входят.