r5sdk/r5dev/include/opcptc.h
2021-07-20 23:28:54 +02:00

54 lines
1.7 KiB
C++

#pragma once
void InstallOpcodes();
inline HANDLE GameProcess = GetCurrentProcess();
namespace
{
Module r5_op = Module("r5apex.exe"); // Create module class instance.
#pragma region Origin
/*0x14032EEA0*/
MemoryAddress dst000 = r5_op.PatternSearch("48 83 EC 28 80 3D ? ? ? 23 ? 0F 85 ? 02 ?");
/*0x140330290*/
MemoryAddress dst001 = r5_op.PatternSearch("48 81 EC 58 04 ? ? 80 3D ? ? ? ? ? 0F 84");
#pragma endregion
#pragma region Engine
/*0x14043FB90*/
MemoryAddress dst002 = r5_op.PatternSearch("48 89 4C 24 08 56 41 55 48 81 EC 68 03 ? ? 4C");
/*0x14022A4A0*/
MemoryAddress dst004 = r5_op.PatternSearch("48 83 EC 38 0F 29 74 24 20 48 89 5C 24 40 48 8B");
/*0x140238DA0*/
MemoryAddress Host_NewGame = r5_op.PatternSearch("48 8B C4 ? 41 54 41 ? 48 81 EC ? ? ? ? F2");
#pragma endregion
#pragma region NetChannel
/*0x14030D000*/
MemoryAddress dst006 = r5_op.PatternSearch("40 55 57 41 55 41 57 48 8D AC 24 ? ? ? ?");
#pragma endregion
#pragma region FairFight
/*0x140303AE0*/
MemoryAddress dst007 = r5_op.PatternSearch("40 53 48 83 EC 20 8B 81 B0 03 ? ? 48 8B D9 C6");
#pragma endregion
void PrintOAddress() // Test the sigscan results
{
std::cout << "+--------------------------------------------------------+" << std::endl;
PRINT_ADDRESS("dst000", dst000.GetPtr());
PRINT_ADDRESS("dst001", dst001.GetPtr());
PRINT_ADDRESS("dst002", dst002.GetPtr());
PRINT_ADDRESS("dst004", dst004.GetPtr());
PRINT_ADDRESS("Host_NewGame", Host_NewGame.GetPtr());
PRINT_ADDRESS("dst006", dst006.GetPtr());
PRINT_ADDRESS("dst007", dst007.GetPtr());
std::cout << "+--------------------------------------------------------+" << std::endl;
// TODO implement error handling when sigscan fails or result is 0
}
}