8e4c8f57e4
- Track mod-paragon and mod-ale (un-ignore modules in .gitignore). - Ship docker-compose.override.yml with CMAKE_EXTRA_OPTIONS for LuaJIT (mod-ale). - Dockerfile: CBUILD_PARALLEL default to limit OOM under Docker/WSL2. - Core: CLASS_PARAGON sticky combo points (DetachComboTarget), selection rebind, Spell::CheckPower rune path for multi-resource Paragon. - spell_dk_death_rune: IsClass(CLASS_DEATH_KNIGHT, CLASS_CONTEXT_ABILITY) for Blood of the North / Reaping / DRM on Paragon. - Remove temporary Paragon CheckPower logging. Co-authored-by: Cursor <cursoragent@cursor.com>
39 lines
1.1 KiB
C++
39 lines
1.1 KiB
C++
#ifndef ALEDBCREGISTRY_H
|
|
#define ALEDBCREGISTRY_H
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
#include <functional>
|
|
#include <typeinfo>
|
|
|
|
#include "DBCStores.h"
|
|
#include "LuaEngine.h"
|
|
|
|
struct DBCDefinition
|
|
{
|
|
std::string name;
|
|
void* storage;
|
|
const std::type_info& type;
|
|
std::function<const void*(uint32)> lookupFunction;
|
|
std::function<void(lua_State*, const void*)> pushFunction;
|
|
};
|
|
|
|
extern std::vector<DBCDefinition> dbcRegistry;
|
|
|
|
#define REGISTER_DBC(dbcName, entryType, store) \
|
|
{ \
|
|
#dbcName, \
|
|
reinterpret_cast<void*>(&store), \
|
|
typeid(DBCStorage<entryType>), \
|
|
[](uint32 id) -> const void* { \
|
|
return store.LookupEntry(id); \
|
|
}, \
|
|
[](lua_State* L, const void* entry) { \
|
|
auto cast_entry = static_cast<const entryType*>(entry); \
|
|
ALE::Push(L, *cast_entry); \
|
|
} \
|
|
}
|
|
|
|
#endif // ALEDBCREGISTRY_H
|
|
|