Skip to content

Commit

Permalink
Merge branch 'main' into autohook/audio.cpp
Browse files Browse the repository at this point in the history
  • Loading branch information
ASpoonPlaysGames authored Aug 25, 2024
2 parents 0547f5b + 3e2d403 commit 54aaad9
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 17 deletions.
22 changes: 6 additions & 16 deletions primedev/core/hooks.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,39 +85,29 @@ void __fileAutohook::DispatchForModule(const char* pModuleName)
hook->Dispatch();
}

ManualHook::ManualHook(const char* funcName, LPVOID func) : pHookFunc(func), ppOrigFunc(nullptr)
{
const size_t iFuncNameStrlen = strlen(funcName);
pFuncName = new char[iFuncNameStrlen];
memcpy(pFuncName, funcName, iFuncNameStrlen);
}
ManualHook::ManualHook(const char* funcName, LPVOID func) : svFuncName(funcName), pHookFunc(func), ppOrigFunc(nullptr) {}

ManualHook::ManualHook(const char* funcName, LPVOID* orig, LPVOID func) : pHookFunc(func), ppOrigFunc(orig)
{
const size_t iFuncNameStrlen = strlen(funcName);
pFuncName = new char[iFuncNameStrlen];
memcpy(pFuncName, funcName, iFuncNameStrlen);
}
ManualHook::ManualHook(const char* funcName, LPVOID* orig, LPVOID func) : svFuncName(funcName), pHookFunc(func), ppOrigFunc(orig) {}

bool ManualHook::Dispatch(LPVOID addr, LPVOID* orig)
{
if (orig)
ppOrigFunc = orig;

if (!addr)
spdlog::error("Address for hook {} is invalid", pFuncName);
spdlog::error("Address for hook {} is invalid", svFuncName);
else if (MH_CreateHook(addr, pHookFunc, ppOrigFunc) == MH_OK)
{
if (MH_EnableHook(addr) == MH_OK)
{
spdlog::info("Enabling hook {}", pFuncName);
spdlog::info("Enabling hook {}", svFuncName);
return true;
}
else
spdlog::error("MH_EnableHook failed for function {}", pFuncName);
spdlog::error("MH_EnableHook failed for function {}", svFuncName);
}
else
spdlog::error("MH_CreateHook failed for function {}", pFuncName);
spdlog::error("MH_CreateHook failed for function {}", svFuncName);

return false;
}
Expand Down
2 changes: 1 addition & 1 deletion primedev/core/hooks.h
Original file line number Diff line number Diff line change
Expand Up @@ -278,7 +278,7 @@ class __autohook
class ManualHook
{
public:
char* pFuncName;
std::string svFuncName;

LPVOID pHookFunc;
LPVOID* ppOrigFunc;
Expand Down

0 comments on commit 54aaad9

Please sign in to comment.