init
This commit is contained in:
12
TempleWare-CS2/source/templeware/utils/memory/vfunc/vfunc.h
Normal file
12
TempleWare-CS2/source/templeware/utils/memory/vfunc/vfunc.h
Normal file
@@ -0,0 +1,12 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
|
||||
namespace M {
|
||||
template <typename T, std::size_t nIndex, class CBaseClass, typename... Args_t>
|
||||
static inline T vfunc(CBaseClass* thisptr, Args_t... argList) {
|
||||
using VirtualFn_t = T(__thiscall*)(const void*, decltype(argList)...);
|
||||
return (*reinterpret_cast<VirtualFn_t* const*>(reinterpret_cast<std::uintptr_t>(thisptr)))[nIndex](thisptr, argList...);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user