MCPcopy Create free account
hub / github.com/alliedmodders/sourcemod / Load

Method Load

public/smsdk_ext.cpp:322–360  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

320}
321
322bool SDKExtension::Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlen, bool late)
323{
324 PLUGIN_SAVEVARS();
325
326#ifndef META_NO_HL2SDK
327#if !defined METAMOD_PLAPI_VERSION
328 GET_V_IFACE_ANY(serverFactory, gamedll, IServerGameDLL, INTERFACEVERSION_SERVERGAMEDLL);
329 GET_V_IFACE_CURRENT(engineFactory, engine, IVEngineServer, INTERFACEVERSION_VENGINESERVER);
330#else
331 GET_V_IFACE_ANY(GetServerFactory, gamedll, IServerGameDLL, INTERFACEVERSION_SERVERGAMEDLL);
332#if SOURCE_ENGINE == SE_SDK2013
333 // Shim to avoid hooking shims
334 engine = (IVEngineServer *) ismm->GetEngineFactory()("VEngineServer023", nullptr);
335 if (!engine)
336 {
337 engine = (IVEngineServer *) ismm->GetEngineFactory()("VEngineServer022", nullptr);
338 if (!engine)
339 {
340 engine = (IVEngineServer *) ismm->GetEngineFactory()("VEngineServer021", nullptr);
341 if (!engine)
342 {
343 if (error && maxlen)
344 {
345 ismm->Format(error, maxlen, "Could not find interface: VEngineServer023 or VEngineServer022");
346 }
347 return false;
348 }
349 }
350 }
351#else
352 GET_V_IFACE_CURRENT(GetEngineFactory, engine, IVEngineServer, INTERFACEVERSION_VENGINESERVER);
353#endif // TF2 / CSS / DODS / HL2DM / SDK2013
354#endif // !METAMOD_PLAPI_VERSION
355#endif //META_NO_HL2SDK
356
357 m_SourceMMLoaded = true;
358
359 return SDK_OnMetamodLoad(ismm, error, maxlen, late);
360}
361
362bool SDKExtension::Unload(char *error, size_t maxlen)
363{

Callers

nothing calls this directly

Calls 1

FormatMethod · 0.80

Tested by

no test coverage detected