diff options
-rw-r--r-- | Hunted/Hunted.cpp | 2 | ||||
-rw-r--r-- | TestDLL/HuntClasses.h | 2 | ||||
-rw-r--r-- | TestDLL/dllmain.cpp | 9 |
3 files changed, 9 insertions, 4 deletions
diff --git a/Hunted/Hunted.cpp b/Hunted/Hunted.cpp index fe0cfd0..3db5213 100644 --- a/Hunted/Hunted.cpp +++ b/Hunted/Hunted.cpp @@ -276,7 +276,7 @@ int wmain(int argc, wchar_t **argv) *(UINT64 *)((BYTE *)cc + 81) = jumpBackAddr; *(UINT64 *)((BYTE *)cc + 91) = g_pEntSys; *(UINT64 *)((BYTE *)cc + 99) = g_pEnvSysSigged; - *(UINT64 *)((BYTE *)cc + 108) = g_pCCryActionSigged; + *(UINT64 *)((BYTE *)cc + 107) = g_pCCryActionSigged; printBuf(cc, sizeof cc, 32); KMemoryBuf::Wpm<sizeof cc>(targetPID, (PVOID)targetAddr, &cc[0]); diff --git a/TestDLL/HuntClasses.h b/TestDLL/HuntClasses.h index 2692a3e..d5fc90e 100644 --- a/TestDLL/HuntClasses.h +++ b/TestDLL/HuntClasses.h @@ -963,5 +963,5 @@ static inline bool WorldToScreen(SSystemGlobalEnvironment* globalEnv, Vec3 vEntP struct HuntCtx { IEntitySystem ** ppEntSys; SSystemGlobalEnvironment ** ppGlobalEnv; - IActorSystem ** ppCCryAction; + IGameFramework ** ppCCryAction; };
\ No newline at end of file diff --git a/TestDLL/dllmain.cpp b/TestDLL/dllmain.cpp index 20b1ae6..a95a988 100644 --- a/TestDLL/dllmain.cpp +++ b/TestDLL/dllmain.cpp @@ -272,6 +272,11 @@ static bool InitAndCheckPtr(struct HuntCtx * HuntCtx) (PVOID)pEntSys, iEnt->GetSystem()->GetGlobalEnvironment()->pEntitySystem); return false; } + if ((*HuntCtx->ppCCryAction)->GetIActorSystem() != iEnt->GetSystem()->GetGlobalEnvironment()->pGameFramework->GetIActorSystem()) { + SHOW_WARNING("CCryAction->GetIActorSystem() signature not equals GameFramework->GetIActorSystem() instance: ppCCryAction[%p] != pGameFramework[%p]\n", + (*HuntCtx->ppCCryAction)->GetIActorSystem(), iEnt->GetSystem()->GetGlobalEnvironment()->pGameFramework->GetIActorSystem()); + return false; + } if (iEnt->GetSystem() != iEnt->GetSystem()->GetGlobalEnvironment()->pGameFramework->GetISystem()) { SHOW_WARNING("ISystem interface instance not equal: IEntitySystem[%p] != pGameFramework[%p]\n", iEnt->GetSystem(), iEnt->GetSystem()->GetGlobalEnvironment()->pGameFramework->GetISystem()); @@ -354,7 +359,7 @@ void APIENTRY LibEntry(struct HuntCtx * HuntCtx) #if 0 if (pEnt->GetFlags() != (ENTITY_FLAG_CASTSHADOW | ENTITY_FLAG_SEND_RENDER_EVENT)) { continue; -} + } #endif const char *name = pEnt->GetName(); if (strlen(name) < 4) { @@ -383,7 +388,7 @@ void APIENTRY LibEntry(struct HuntCtx * HuntCtx) gdi_radar_add_entity(ctx, &radar_entity); i++; - } +} static UINT64 redraw_retry = 0; if (!gdi_radar_redraw_if_necessary(ctx) && |