Raistlin, при использовании patcher_x86.hpp и заголовочника HoMM3.h вообще не нужно писать ASM код, и всё становится куда проще:
Универсальная обёртка с использованием условий по умолчанию:
Code:
_bool_ f_MsgBox(char* text, int style = 1, int x = -1, int y = -1, int pic1Type = -1, int pic1Subtype = 0, int pic2Type = -1, int pic2Subtype = 0, int unk = -1, int showTime = 0, int pic3Type = -1, int pic3Subtype = 0)
{
CALL_12(void, __fastcall, 0x4F6C00, text, style, x, y, pic1Type, pic1Subtype, pic2Type, pic2Subtype, unk, showTime, pic3Type, pic3Subtype);
return (o_WndMgr->result_dlg_item_id);
}
Примеры вызовов:
Code:
f_MsgBox(message); // просто сообщение с текстом
if(f_MsgBox(message, 4) {...}) // вопрос с текстом, в условии
f_MsgBox(message, 1, -1, -1, pic1Type, pic1Subtype); // показ сообщения с одной картинкой (id картинок см.IF:Q)
f_MsgBox(message, 7, -1, -1, pic1Type, pic1Subtype, pic2Type, pic2Subtype); // сообщение с выбором из 2х картинок
daemon_n, просто проснулся раньше обычного. ХЗ, старею походу...
game bug fixes extended.dll || My Plugins || My GitHub
|