OSGK_String* paramStr, *resultStr;
if (!osgk_variant_get_string (strVal, ¶mStr)) return srFailed;
- *((string_t*)&prog->globals.generic[OFS_PARM0]) = PRVM_SetTempString (osgk_string_get (paramStr));
+ PRVM_G_INT(OFS_PARM0) = PRVM_SetTempString (instance->name);
+ PRVM_G_INT(OFS_PARM1) = PRVM_SetTempString (osgk_string_get (paramStr));
PRVM_ExecuteProgram(prog->funcoffsets.Gecko_Query,"Gecko_Query() required");
resultStr = osgk_string_create (PRVM_G_STRING (OFS_RETURN));
*returnVal = osgk_variant_create_string (cl_geckoembedding, resultStr);
return;
}
- // TODO: use snprintf instead
- sprintf(name, CLGECKOPREFIX "%s", Cmd_Argv(1));
+ dpsnprintf(name, sizeof(name), CLGECKOPREFIX "%s", Cmd_Argv(1));
CL_Gecko_CreateBrowser( name, -1 );
}
return;
}
- // TODO: use snprintf instead
- sprintf(name, CLGECKOPREFIX "%s", Cmd_Argv(1));
+ dpsnprintf(name, sizeof(name), CLGECKOPREFIX "%s", Cmd_Argv(1));
CL_Gecko_DestroyBrowser( CL_Gecko_FindBrowser( name ) );
}
return;
}
- // TODO: use snprintf instead
- sprintf(name, CLGECKOPREFIX "%s", Cmd_Argv(1));
+ dpsnprintf(name, sizeof(name), CLGECKOPREFIX "%s", Cmd_Argv(1));
URI = Cmd_Argv( 2 );
CL_Gecko_NavigateToURI( CL_Gecko_FindBrowser( name ), URI );
}
return;
}
- // TODO: use snprintf instead
- sprintf(name, CLGECKOPREFIX "%s", Cmd_Argv(1));
+ dpsnprintf(name, sizeof(name), CLGECKOPREFIX "%s", Cmd_Argv(1));
instance = CL_Gecko_FindBrowser( name );
if( !instance ) {
Con_Printf( "cl_gecko_injecttext_f: gecko instance '%s' couldn't be found!\n", name );
return;
}
- // TODO: use snprintf instead
- sprintf(name, CLGECKOPREFIX "%s", Cmd_Argv(1));
+ dpsnprintf(name, sizeof(name), CLGECKOPREFIX "%s", Cmd_Argv(1));
x = atof( Cmd_Argv( 2 ) );
y = atof( Cmd_Argv( 3 ) );
{NULL, NULL}
};
-void CL_Gecko_Init( void )
+qboolean CL_Gecko_OpenLibrary (void)
{
- const char* dllnames [] =
+ const char* dllnames_gecko [] =
{
- #if defined(WIN64)
+#if defined(WIN64)
"OffscreenGecko64.dll",
- #elif defined(WIN32)
+#elif defined(WIN32)
"OffscreenGecko.dll",
- #elif defined(MACOSX)
+#elif defined(MACOSX)
"OffscreenGecko.dylib",
- #else
+#else
"libOffscreenGecko.so",
- #endif
+#endif
NULL
};
-
- if (!osgk_dll)
- {
- if (! Sys_LoadLibrary (dllnames, &osgk_dll, osgkFuncs))
- {
- Con_Printf ("Could not load OffscreenGecko, Gecko support unavailable\n");
- }
- }
+
+ // Already loaded?
+ if (osgk_dll)
+ return true;
+
+// COMMANDLINEOPTION: Sound: -nogecko disables gecko support (web browser support for menu and computer terminals)
+ if (COM_CheckParm("-nogecko"))
+ return false;
+
+ return Sys_LoadLibrary (dllnames_gecko, &osgk_dll, osgkFuncs);
+}
+
+void CL_Gecko_Init( void )
+{
+ CL_Gecko_OpenLibrary();
Cmd_AddCommand( "gecko_create", cl_gecko_create_f, "Create a gecko browser instance" );
Cmd_AddCommand( "gecko_destroy", cl_gecko_destroy_f, "Destroy a gecko browser instance" );