diff --git a/cleo_plugins/MemoryOperations/MemoryOperations.cpp b/cleo_plugins/MemoryOperations/MemoryOperations.cpp index 02a9160f..b43179ac 100644 --- a/cleo_plugins/MemoryOperations/MemoryOperations.cpp +++ b/cleo_plugins/MemoryOperations/MemoryOperations.cpp @@ -419,7 +419,17 @@ class MemoryOperations static OpcodeResult __stdcall opcode_0AA6(CLEO::CRunningScript* thread) { auto func = OPCODE_READ_PARAM_PTR(); - auto obj = OPCODE_READ_PARAM_PTR(); + + void* obj = nullptr; + if (!IsLegacyScript(thread)) + { + obj = OPCODE_READ_PARAM_PTR(); + } + else + { + obj = (void*)OPCODE_READ_PARAM_INT(); // at least one mod used 0AA6 with 0 as struct argument (effectively turning it into 0AA5 opcode...) + } + auto numArgs = OPCODE_READ_PARAM_INT(); auto numPop = OPCODE_READ_PARAM_INT();