From ab55d08649e9bdf4a50d5d87559dd3a44f4f25e5 Mon Sep 17 00:00:00 2001 From: rexx <67599507+r-ex@users.noreply.github.com> Date: Tue, 3 Aug 2021 14:28:50 +0100 Subject: [PATCH] script print VM prefixes (external console only) --- r5dev/src/hooks/sqvm.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/r5dev/src/hooks/sqvm.cpp b/r5dev/src/hooks/sqvm.cpp index 5285507c..b0447e84 100644 --- a/r5dev/src/hooks/sqvm.cpp +++ b/r5dev/src/hooks/sqvm.cpp @@ -7,15 +7,25 @@ namespace Hooks SQVM_LoadScriptFn originalSQVM_LoadScript = nullptr; } +std::string prefixes[3] = { "Script(S)", "Script(C)", "Script(U)" }; + void* Hooks::SQVM_Print(void* sqvm, char* fmt, ...) { + int vmIdx = *(int*)((std::uintptr_t)sqvm + 0x18); char buf[1024]; va_list args; va_start(args, fmt); + + // external console + printf("%s:", prefixes[vmIdx].c_str()); vprintf(fmt, args); + + // imgui console vsnprintf(buf, IM_ARRAYSIZE(buf), fmt, args); buf[IM_ARRAYSIZE(buf) - 1] = 0; + va_end(args); + Items.push_back(Strdup(buf)); return NULL; }