Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: HD-SDK
DF2 :: ФОРУМЫ > Игровые форумы > Heroes of Might & Magic III > HD-мод
Shurup
Перенес из общей темы.

Цитата(baratorch @ 06 May 2013, 07:26) *

загружаем библиотеку _hd3_.dll
если не загрузилась - значит нет ХД
получаем 2 экспортируемые из нее функции.
Функции имеют имена и вид:
DWORD __stdcall HdCommon_Get(char* name, DWORD default_value);
BOOL __stdcall HdCommon_Set(char* name, DWORD value);
если адреса функций получены, идем дальше.

теперь можем получать значения следующих "переменных":
DWORD "HD.Version.Dword" - версия хд в числовом выражении
char* "HD.Version.CStr" - версия хд в текстовом виде (си-строка)
DWORD "HD.ExeVersion" - флаги версии экзешника игры:
Код
#define SOD        0x01
#define WOG        0x02
#define TE        0x04
#define HOTA    0x08
#define WT        0x10
#define ERA        0x20
#define MOP        0x40

и т.д.


вот все без описания, если кого-то что то заинтересует, спрОсите:
char*, "HD.Dir.Game"
char*, "HD.Dir"
char*, "HD.Dir.Common"
char*, "HD.Dir.Lang"
char*, "HD.File.RMG"
_Ini_*, "HD.Ini.Main"
char*, "HD.Compability"
int, "HD.PackDirs.Count"
char**, "HD.PackDirs"
int, "HD.Option.RezX"
int, "HD.Option.RezY"

int, "HD.Option.RezX"
int, "HD.Option.RezY


int, "HD.Option.ColorMode"
int, "HD.Option.StretchFilter"
int, "HD.Option.SysCursors"
int, "HD.Option.NoCD"
int, "HD.Option.CpuPatch"
int, "HD.Option.NewSoundLibs"
int, "HD.Option.MusicPatch"
int, "HD.Option.AsyncSounds"
int, "HD.Option.UIExt"
int, "HD.Option.ArmyMngMode"
int, "HD.Option.ClipCursor"
_Ini_*, "HD.Ini.Txt"
int, "HD.Option.TExt"
int, "HD.Option.AutofixMap"
int, "HD+.On"
int, "HD.Option.ExtSpellBook"
int, "HD.Option.CheckForUpdates"

int, "HD.Rez.X"
int, "HD.Rez.Y"

int, "HD.MapView.Width"
int, "HD.MapView.Height"
int, "HD.MapView.CX"
int, "HD.Stretch.X"
int, "HD.Stretch.Y"

int, "HD.Center.X"
int, "HD.Center.Y"

int, "HD.PuzzDlg.X"
int, "HD.PuzzDlg.Y"

int, "HD.TpRank.SY"
int, "HD.TpRank.SX"

int, "HD.CampInfo.X"
nt, "HD.CampInfo.Y"

int, "HD.DimDoor.CX0"
int, "HD.DimDoor.CX1"
nt, "HD.DimDoor.CY0"
int, "HD.DimDoor.CY1"
_bool_, "HD.DimDoor.ShowRect"


int, "HD.Rez.Scanline"

int, "HD.Battle.X"
int, "HD.Battle.Y"

int, "HD.AdvMgr.ID15"
int, "HD.AdvMgr.ID39"
int, "HD.AdvMgr.ID20"
int, "HD.AdvMgr.ID25"
int, "HD.AdvMgr.ID32"
int, "HD.AdvMgr.HeroList.L"
int, "HD.AdvMgr.TownList.L"

int, "HD.ClipCursor"
RECT*, "HD.ClipRect"

int, "HD.Option.AskQB"
_bool_, "HD+.ReplayableQB"
int, "HD+.TimerWaitOk"

Хота экспортирует через HdCommon свои значения, которыми пользуется ХД

Если запрашиваемого имени не существует в HdCommon, т.е оно не задано HdCommon_Set,
то функция HdCommon_Get вернет default value.

например все "переменные" ХД кроме "HD.Version.Dword", "HD.Version.CStr" не будут существовать, если библиотека будет загружена не с игрой в ХД.


В будущем, будем надеяться функционал СДК будет расширяться.
baratorch
В связи с появлением 32-bit True цветовых режимов, добавилась новая экспортируемая переменная int "HD.BPP"
которая может иметь значение либо 16 либо 32.
Если "HD.BPP" равно 32, то все экземпляры структуры PCX16 являются по сути PCX32, т.е каждый пиксель представлен 32-битным значением формата X8R8G8B8 (в перспективе A8R8G8B8 с возможностью альфаблендинга).
(кроме zBuffer'a предназначенного для обозначния границ зданий в городе для мыши, он единственный - 16-битный)
И все стандартные функции отрисовки Def, Pcx8, Fnt получая указатель на PCX16, или на ее пиксельный буфер, работают со структурой как с PCX32.
(здесь похоже не будут работать цветные шрифты ЭРЫ, т.к. функция отрисовки символа текста полностью заменена)

При этом 16-битные палитры в игре и функции по их преобразованию остаются пока 16-битными.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.