// register to use string var interface // this allows plugin commands to support '%z' format specifier in format string arguments OBSEStringVarInterface* g_Str = (OBSEStringVarInterface*)obse->QueryInterface(kInterface_StringVar); g_Str->Register(g_Str);
The function itself passes the arguments to a more global internal function, dunno if that matters or not.
static bool Cmd_CreateMenuFloatValue_Execute(COMMAND_ARGS){ //Console_Print("Cmd_CreateMenuFloatValue_Execute"); return CreateMenuValue_Execute(PASS_COMMAND_ARGS, kCreateFloat);}
static bool CreateMenuValue_Execute(COMMAND_ARGS, UInt32 mode){ //Console_Print("CreateMenuValue_Execute"); const char* separatorChar = GetSeparatorChars(scriptObj); char stringArg[kMaxMessageLength] = { 0 }; UInt32 menuType = 0;........ bool bExtracted = false; switch (mode){ case kCreateFloat: { bExtracted = ExtractFormatStringArgs(0, stringArg, paramInfo, arg1, opcodeOffsetPtr, scriptObj, eventList, kCommandInfo_SetMenuChildFloatValue.numParams, &menuType, &newFloatVal); Console_Print("kCreateFloat [%s]", stringArg);....... } break;Everytime I try to use it with a %z in the format string the result is that the content of whatever string_var I passed was ignored. Am I doing something wrong? :unsure: