mirror of
https://github.com/EricPlayZ/EGameTools.git
synced 2025-07-18 09:27:51 +08:00
- Added compatibility with v1.18.0 "Community QoL" update
- Fixed an issue with classes not always getting detected correctly for everyone (Debug tab; if you still run into issues, please open a bug report!)
This commit is contained in:
@ -140,6 +140,9 @@ If anyone is looking to help with development, I'm all eyes and ears! Thank you!
|
||||
|
||||
- Fixed "Game Speed" (World) not getting applied with the mod menu opened while having another tab selected other than the World tab
|
||||
|
||||
I have some things planned for the next updates, but time will decide when I'll be able to work on the updates. I'm almost done with my exams!)" }
|
||||
I have some things planned for the next updates, but time will decide when I'll be able to work on the updates. I'm almost done with my exams!)" },
|
||||
{ "v1.2.2",
|
||||
R"(- Added compatibility with v1.18.0 "Community QoL" update
|
||||
- Fixed an issue with classes not always getting detected correctly for everyone (Debug tab; if you still run into issues, please open a bug report!))" }
|
||||
};
|
||||
}
|
@ -16,9 +16,9 @@
|
||||
#define VK_MWHEELUP 0x101
|
||||
#endif
|
||||
|
||||
constexpr const char* MOD_VERSION_STR = "v1.2.1";
|
||||
constexpr DWORD MOD_VERSION = 10201;
|
||||
constexpr DWORD GAME_VER_COMPAT = 11702;
|
||||
constexpr const char* MOD_VERSION_STR = "v1.2.2";
|
||||
constexpr DWORD MOD_VERSION = 10202;
|
||||
constexpr DWORD GAME_VER_COMPAT = 11800;
|
||||
|
||||
struct Key {
|
||||
constexpr Key(std::string_view name, int code, ImGuiKey imGuiCode) : name(name), code(code), imGuiCode(imGuiCode) {}
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
namespace Utils {
|
||||
namespace RTTI {
|
||||
static std::string bytesToIDAPattern(BYTE* bytes, size_t size) {
|
||||
static std::string bytesToIDAPattern(BYTE* bytes, size_t size, bool allowUnkBytes = true) {
|
||||
std::stringstream idaPattern;
|
||||
idaPattern << std::hex << std::uppercase << std::setfill('0');
|
||||
|
||||
for (size_t i = 0; i < size; i++) {
|
||||
const int currentByte = bytes[i];
|
||||
if (currentByte != 255)
|
||||
if (currentByte != 255 || !allowUnkBytes)
|
||||
idaPattern << std::setw(2) << currentByte;
|
||||
else
|
||||
idaPattern << "??";
|
||||
@ -113,7 +113,7 @@ namespace Utils {
|
||||
// Now we need to get an xref to the object locator, as that's where the vtable is located
|
||||
{
|
||||
// Convert the object locator address to an IDA pattern
|
||||
idaPattern = bytesToIDAPattern(reinterpret_cast<BYTE*>(const_cast<DWORD64*>(&objectLocator)), 8);
|
||||
idaPattern = bytesToIDAPattern(reinterpret_cast<BYTE*>(const_cast<DWORD64*>(&objectLocator)), 8, false);
|
||||
|
||||
const DWORD64 vtableAddr = reinterpret_cast<DWORD64>(Utils::SigScan::PatternScanner::FindPattern(reinterpret_cast<LPVOID>(rdataStart), rdataSize, { idaPattern.c_str(), Utils::SigScan::PatternType::Address })) + 0x8;
|
||||
|
||||
|
Reference in New Issue
Block a user