ISmmPluginExt.h File Reference

Definitions for extended plugin loading. More...

#include <stddef.h>

Go to the source code of this file.

Namespaces

namespace  SourceMM

Classes

class  SourceMM::ISmmFailPlugin
struct  MetamodVersionInfo
 Contains version information. More...
struct  MetamodLoaderInfo
 Contains information about loading a plugin. More...

Defines

#define SOURCE_ENGINE_UNKNOWN   0
#define SOURCE_ENGINE_ORIGINAL   1
#define SOURCE_ENGINE_EPISODEONE   2
#define SOURCE_ENGINE_ORANGEBOX   3
#define METAMOD_PLAPI_VERSION   14
#define METAMOD_PLAPI_NAME   "ISmmPlugin"
#define METAMOD_FAIL_API_V1   7
#define METAMOD_FAIL_API_V2   14

Typedefs

typedef int SourceMM::PluginId
 Used to uniquely identify plugins.
typedef METAMOD_PLUGIN *(* METAMOD_FN_LOAD )(const MetamodVersionInfo *mvi, const MetamodLoaderInfo *mli)
 If a function of this type is exposed as "CreateInterface_MMS", then Metamod:Source will attempt to call this function before calling CreateInterface. If this function returns a valid ISmmPlugin pointer, then CreateInterface will not be called.
typedef void(* METAMOD_FN_UNLOAD )()
 If a function of this type is exposed as "UnloadInterface_MMS", then Metamod:Source will attempt to call this function after calling ISmmAPI::Unload(), and before closing the library. This lets loader plugins clean up before exiting.
typedef void *(* METAMOD_FN_ORIG_LOAD )(const char *, int *)
 Original type of load function. CreateInterfaceFn from Valve.


Detailed Description

Provides an alternate method for loading plugins, without needing to include the default headers and all their Half-Life baggage.

Definition in file ISmmPluginExt.h.


Define Documentation

#define METAMOD_FAIL_API_V1   7

Minimum API version to detect for V1

Definition at line 58 of file ISmmPluginExt.h.

#define METAMOD_FAIL_API_V2   14

Minimum API version to detect for V2

Definition at line 59 of file ISmmPluginExt.h.

#define METAMOD_PLAPI_NAME   "ISmmPlugin"

Name of the plugin interface

Definition at line 46 of file ISmmPluginExt.h.

#define METAMOD_PLAPI_VERSION   14

Version of this header file

Definition at line 45 of file ISmmPluginExt.h.

#define SOURCE_ENGINE_EPISODEONE   2

Episode 1 Source Engine (second major SDK)

Definition at line 42 of file ISmmPluginExt.h.

#define SOURCE_ENGINE_ORANGEBOX   3

Orange Box Source Engine (third major SDK)

Definition at line 43 of file ISmmPluginExt.h.

#define SOURCE_ENGINE_ORIGINAL   1

Original Source Engine (used by The Ship)

Definition at line 41 of file ISmmPluginExt.h.

#define SOURCE_ENGINE_UNKNOWN   0

Could not determine the engine version

Definition at line 40 of file ISmmPluginExt.h.


Typedef Documentation

This is useful for implementing a mini-loader plugin for multiple versions.

Parameters:
mvi MetamodVersionInfo structure.
mli MetamodLoaderInfo structure.
Returns:
ISmmAPI pointer, or NULL if none.

Definition at line 135 of file ISmmPluginExt.h.

typedef void*(* METAMOD_FN_ORIG_LOAD)(const char *, int *)

Plugins will expose this as "CreateInterface".

Definition at line 154 of file ISmmPluginExt.h.

typedef void(* METAMOD_FN_UNLOAD)()

Note: This function will be ignored unless CreateInterfce_MMS was exposed. It may be called even if ISmmAPI::Unload() could not be called.

Definition at line 147 of file ISmmPluginExt.h.


Generated on Mon Feb 18 18:10:28 2008 for Metamod:Source by  doxygen 1.5.5