mirror of
https://github.com/rehlds/resemiclip.git
synced 2024-12-26 14:45:54 +03:00
80 lines
3.1 KiB
C
80 lines
3.1 KiB
C
// plinfo.h - typedefs for plugin info structure
|
|
|
|
/*
|
|
* Copyright (c) 2001-2003 Will Day <willday@hpgx.net>
|
|
*
|
|
* This file is part of Metamod.
|
|
*
|
|
* Metamod is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License as published by the
|
|
* Free Software Foundation; either version 2 of the License, or (at
|
|
* your option) any later version.
|
|
*
|
|
* Metamod is distributed in the hope that it will be useful, but
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with Metamod; if not, write to the Free Software Foundation,
|
|
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*
|
|
* In addition, as a special exception, the author gives permission to
|
|
* link the code of this program with the Half-Life Game Engine ("HL
|
|
* Engine") and Modified Game Libraries ("MODs") developed by Valve,
|
|
* L.L.C ("Valve"). You must obey the GNU General Public License in all
|
|
* respects for all of the code used other than the HL Engine and MODs
|
|
* from Valve. If you modify this file, you may extend this exception
|
|
* to your version of the file, but you are not obligated to do so. If
|
|
* you do not wish to do so, delete this exception statement from your
|
|
* version.
|
|
*
|
|
*/
|
|
|
|
#ifndef PLINFO_H
|
|
#define PLINFO_H
|
|
|
|
// Flags for plugin to indicate when it can be be loaded/unloaded.
|
|
// NOTE: order is crucial, as greater/less comparisons are made.
|
|
typedef enum {
|
|
PT_NEVER = 0,
|
|
PT_STARTUP, // should only be loaded/unloaded at initial hlds execution
|
|
PT_CHANGELEVEL, // can be loaded/unloaded between maps
|
|
PT_ANYTIME, // can be loaded/unloaded at any time
|
|
PT_ANYPAUSE, // can be loaded/unloaded at any time, and can be "paused" during a map
|
|
} PLUG_LOADTIME;
|
|
|
|
// Flags to indicate why the plugin is being unloaded.
|
|
typedef enum {
|
|
PNL_NULL = 0,
|
|
PNL_INI_DELETED, // was deleted from plugins.ini
|
|
PNL_FILE_NEWER, // file on disk is newer than last load
|
|
PNL_COMMAND, // requested by server/console command
|
|
PNL_CMD_FORCED, // forced by server/console command
|
|
PNL_DELAYED, // delayed from previous request; can't tell origin
|
|
//only used for 'real_reason' on MPlugin::unload()
|
|
PNL_PLUGIN, // requested by plugin function call
|
|
PNL_PLG_FORCED, // forced by plugin function call
|
|
PNL_RELOAD, // forced unload by reload()
|
|
} PL_UNLOAD_REASON;
|
|
|
|
// Information plugin provides about itself.
|
|
typedef struct {
|
|
char *ifvers; // meta_interface version
|
|
char *name; // full name of plugin
|
|
char *version; // version
|
|
char *date; // date
|
|
char *author; // author name/email
|
|
char *url; // URL
|
|
char *logtag; // log message prefix (unused right now)
|
|
PLUG_LOADTIME loadable; // when loadable
|
|
PLUG_LOADTIME unloadable; // when unloadable
|
|
} plugin_info_t;
|
|
extern plugin_info_t Plugin_info;
|
|
|
|
// Plugin identifier, passed to all Meta Utility Functions.
|
|
typedef plugin_info_t* plid_t;
|
|
#define PLID &Plugin_info
|
|
|
|
#endif /* PLINFO_H */
|