Данный проект предназначет для публикаций всевозможных алгоритмов на любом из языков программирования (предпочтение отдается C++ / C# / Java / Javascript / Python)

Что такое алгоритм?

Алгоритмы окружают нас повсюду. По их принципам существует животный мир, люди,…
5 1 850
38
Странно, что он дочерний геймдев, если геймдевом это не всегда является. Может, снять?
29
ScorpioT1000, хотел сделать как субпроект к программированию, но программирование уже является дочерним от gamedev. Цепное наследование было бы кстати
38
Почему не проект программирование? Сделали бы категорию с нужными полями как в вц3
19

Алгоритм подгрузки своего mpq | C++

StormOpenArchive - функция, полученная из Storm.dll. Первый аргумент - имя mpq, второй - приоритет, третий - флаг, четвертый - место загрузки.
Скомпилированный mix будет работать даже в редакторе карт.
#include <windows.h>

// Получение Storm.dll
HMODULE hStorm = LoadLibrary("Storm.dll");

// Создание функции
bool StormOpenArchive(LPCSTR lpArchiveName, DWORD dwPriority, DWORD dwFlags, HANDLE* hMPQ)
{
	// Получение функции по её адресу. Номер функции подгрузки mpq = 266.
	return (reinterpret_cast<bool(CALLBACK*)(LPCSTR, DWORD, DWORD, HANDLE)>(GetProcAddress(hStorm, (LPCSTR)266))(lpArchiveName, dwPriority, dwFlags, hMPQ));
}

// Точка входа
BOOL APIENTRY DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved)
{
	if (ul_reason_for_call == DLL_PROCESS_ATTACH)
	{
		HANDLE hMPQ = NULL;
		// Вызов функции для подгрузки Test.mpq с приоритетом 9 и флагом 0. В случае неудачи, выводится соответствующие сообщение.
		if(!StormOpenArchive("Test.mpq", 9, 0, &hMPQ))
			MessageBox(0, "Couldn't open Test.mpq", "Error", MB_OK | MB_ICONERROR);
	}
	return TRUE;
}