test of new module API, should work though
This commit is contained in:
		| @@ -2430,7 +2430,9 @@ static amxx_module_info_s g_ModuleInfo = | ||||
| #else // MODULE_RELOAD_ON_MAPCHANGE | ||||
| 	0, | ||||
| #endif // MODULE_RELOAD_ON_MAPCHANGE | ||||
| 	MODULE_LOGTAG | ||||
| 	MODULE_LOGTAG, | ||||
| 	MODULE_LIBRARY, | ||||
| 	MODULE_LIBCLASS | ||||
| }; | ||||
|  | ||||
| // Storage for the requested functions | ||||
| @@ -2506,6 +2508,9 @@ PFN_SET_TEAM_INFO			g_fn_SetTeamInfo; | ||||
| PFN_PLAYER_PROP_ADDR		g_fn_PlayerPropAddr; | ||||
| PFN_REG_AUTH_FUNC			g_fn_RegAuthFunc; | ||||
| PFN_UNREG_AUTH_FUNC			g_fn_UnregAuthFunc; | ||||
| PFN_FINDLIBRARY				g_fn_FindLibrary; | ||||
| PFN_ADDLIBRARIES			g_fn_AddLibraries; | ||||
| PFN_REMOVELIBRARIES			g_fn_RemoveLibraries; | ||||
|  | ||||
| // *** Exports *** | ||||
| C_DLLEXPORT int AMXX_Query(int *interfaceVersion, amxx_module_info_s *moduleInfo) | ||||
| @@ -2620,6 +2625,10 @@ C_DLLEXPORT int AMXX_Attach(PFN_REQ_FNPTR reqFnptrFunc) | ||||
| 	REQFUNC("RegAuthFunc", g_fn_RegAuthFunc, PFN_REG_AUTH_FUNC); | ||||
| 	REQFUNC("UnregAuthFunc", g_fn_UnregAuthFunc, PFN_UNREG_AUTH_FUNC); | ||||
|  | ||||
| 	REQFUNC("FindLibrary", g_fn_FindLibrary, PFN_FINDLIBRARY); | ||||
| 	REQFUNC("AddLibraries", g_fn_AddLibraries, PFN_ADDLIBRARIES); | ||||
| 	REQFUNC("RemoveLibraries", g_fn_RemoveLibraries, PFN_REMOVELIBRARIES); | ||||
|  | ||||
| #ifdef MEMORY_TEST | ||||
| 	// Memory | ||||
| 	REQFUNC_OPT("Allocator", g_fn_Allocator, PFN_ALLOCATOR); | ||||
| @@ -2654,6 +2663,20 @@ C_DLLEXPORT int AMXX_PluginsLoaded() | ||||
| 	return AMXX_OK; | ||||
| } | ||||
|  | ||||
| C_DLLEXPORT void AMXX_PluginsUnloaded() | ||||
| { | ||||
| #ifdef FN_AMXX_PLUGINSUNLOADED | ||||
| 	FN_AMXX_PLUGINSUNLOADED(); | ||||
| #endif // FN_AMXX_PLUGINSUNLOADED | ||||
| } | ||||
|  | ||||
| C_DLLEXPORT void AMXX_PluginsUnloading() | ||||
| { | ||||
| #ifdef FN_AMXX_PLUGINSUNLOADING | ||||
| 	FN_AMXX_PLUGINSUNLOADING(); | ||||
| #endif // FN_AMXX_PLUGINSUNLOADING | ||||
| } | ||||
|  | ||||
| // Advanced MF functions | ||||
| void MF_Log(const char *fmt, ...) | ||||
| { | ||||
| @@ -2743,6 +2766,9 @@ void ValidateMacros_DontCallThis_Smiley() | ||||
| 	MF_PlayerPropAddr(0, 0); | ||||
| 	MF_RegAuthFunc(NULL); | ||||
| 	MF_UnregAuthFunc(NULL); | ||||
| 	MF_FindLibrary(NULL, LibType_Class); | ||||
| 	MF_AddLibraries(NULL, LibType_Class, NULL); | ||||
| 	MF_RemoveLibraries(NULL); | ||||
| } | ||||
| #endif | ||||
|  | ||||
|   | ||||
| @@ -34,7 +34,8 @@ | ||||
| // module interface version was 1 | ||||
| // 2 - added logtag to struct (amxx1.1-rc1) | ||||
| // 3 - added new tagAMX structure (amxx1.5) | ||||
| #define AMXX_INTERFACE_VERSION 3 | ||||
| // 4 - added new 'library' setting for direct loading | ||||
| #define AMXX_INTERFACE_VERSION 4 | ||||
|  | ||||
| // amxx module info | ||||
| struct amxx_module_info_s | ||||
| @@ -44,6 +45,8 @@ struct amxx_module_info_s | ||||
| 	const char *version; | ||||
| 	int reload;				// reload on mapchange when nonzero | ||||
| 	const char *logtag;		// added in version 2 | ||||
| 	const char *library;	// added in version 4 | ||||
| 	const char *libclass;	// added in version 4 | ||||
| }; | ||||
|  | ||||
| // return values from functions called by amxx | ||||
| @@ -2032,6 +2035,14 @@ void FN_AMXX_DETACH(void); | ||||
| void FN_AMXX_PLUGINSLOADED(void); | ||||
| #endif // FN_AMXX_PLUGINSLOADED | ||||
|  | ||||
| #ifdef FN_AMXX_PLUGINSUNLOADING | ||||
| void FN_AMXX_PLUGINSUNLOADING(void); | ||||
| #endif // FN_AMXX_PLUGINSUNLOADING | ||||
|  | ||||
| #ifdef FN_AMXX_PLUGINSUNLOADED | ||||
| void FN_AMXX_PLUGINSUNLOADED(void); | ||||
| #endif // FN_AMXX_PLUGINSUNLOADED | ||||
|  | ||||
| // *** Types *** | ||||
| typedef void* (*PFN_REQ_FNPTR)(const char * /*name*/); | ||||
|  | ||||
| @@ -2078,6 +2089,12 @@ enum PlayerProp | ||||
| 	Player_NewmenuPage,		//int | ||||
| }; | ||||
|  | ||||
| enum LibType | ||||
| { | ||||
| 	LibType_Library, | ||||
| 	LibType_Class | ||||
| }; | ||||
|  | ||||
| typedef void (*AUTHORIZEFUNC)(int player, const char *authstring); | ||||
|  | ||||
| typedef int				(*PFN_ADD_NATIVES)				(const AMX_NATIVE_INFO * /*list*/); | ||||
| @@ -2159,6 +2176,9 @@ typedef	int				(*PFN_AMX_PUSH)					(AMX * /*amx*/, cell /*value*/); | ||||
| typedef	int				(*PFN_SET_TEAM_INFO)			(int /*player */, int /*teamid */, const char * /*name */); | ||||
| typedef void			(*PFN_REG_AUTH_FUNC)			(AUTHORIZEFUNC); | ||||
| typedef void			(*PFN_UNREG_AUTH_FUNC)			(AUTHORIZEFUNC); | ||||
| typedef int				(*PFN_FINDLIBRARY)				(const char * /*name*/, LibType /*type*/); | ||||
| typedef size_t			(*PFN_ADDLIBRARIES)				(const char * /*name*/, LibType /*type*/, void * /*parent*/); | ||||
| typedef size_t			(*PFN_REMOVELIBRARIES)			(void * /*parent*/); | ||||
|  | ||||
| extern PFN_ADD_NATIVES				g_fn_AddNatives; | ||||
| extern PFN_BUILD_PATHNAME			g_fn_BuildPathname; | ||||
| @@ -2226,6 +2246,9 @@ extern PFN_SET_TEAM_INFO			g_fn_SetTeamInfo; | ||||
| extern PFN_PLAYER_PROP_ADDR			g_fn_PlayerPropAddr; | ||||
| extern PFN_REG_AUTH_FUNC			g_fn_RegAuthFunc; | ||||
| extern PFN_UNREG_AUTH_FUNC			g_fn_UnregAuthFunc; | ||||
| extern PFN_FINDLIBRARY				g_fn_FindLibrary; | ||||
| extern PFN_ADDLIBRARIES				g_fn_AddLibraries; | ||||
| extern PFN_REMOVELIBRARIES			g_fn_RemoveLibraries; | ||||
|  | ||||
| #ifdef MAY_NEVER_BE_DEFINED | ||||
| // Function prototypes for intellisense and similar systems | ||||
| @@ -2290,6 +2313,9 @@ int				MF_SetPlayerTeamInfo		(int id, int teamid, const char *teamname) { } | ||||
| void *			MF_PlayerPropAddr			(int id, int prop) { } | ||||
| void			MF_RegAuthFunc				(AUTHORIZEFUNC fn) { } | ||||
| void			MF_UnregAuthFunc			(AUTHORIZEFUNC fn) { } | ||||
| int				MF_FindLibrary				(const char *name, LibType type) { } | ||||
| size_t			MF_AddLibraries				(const char *name, LibType type, void *parent) { } | ||||
| size_t			MF_RemoveLibraries			(void *parent) { } | ||||
| #endif	// MAY_NEVER_BE_DEFINED | ||||
|  | ||||
| #define MF_AddNatives g_fn_AddNatives | ||||
| @@ -2359,6 +2385,9 @@ void MF_LogError(AMX *amx, int err, const char *fmt, ...); | ||||
| #define MF_PlayerPropAddr g_fn_PlayerPropAddr | ||||
| #define MF_RegAuthFunc g_fn_RegAuthFunc | ||||
| #define MF_UnregAuthFunc g_fn_UnregAuthFunc | ||||
| #define MF_FindLibrary g_fn_FindLibrary; | ||||
| #define MF_AddLibraries g_fn_AddLibraries; | ||||
| #define MF_RemoveLibraries g_fn_RemoveLibraries; | ||||
|  | ||||
| #ifdef MEMORY_TEST | ||||
| /*** Memory ***/ | ||||
|   | ||||
| @@ -5,10 +5,12 @@ | ||||
|  | ||||
| // Module info | ||||
| #define MODULE_NAME "Fun" | ||||
| #define MODULE_VERSION "1.72" | ||||
| #define MODULE_VERSION "1.75" | ||||
| #define MODULE_AUTHOR "AMX Mod X Dev Team" | ||||
| #define MODULE_URL "http://www.amxmodx.org" | ||||
| #define MODULE_LOGTAG "FUN" | ||||
| #define MODULE_LIBRARY "fun" | ||||
| #define MODULE_LIBCLASS "" | ||||
| // If you want the module not to be reloaded on mapchange, remove / comment out the next line | ||||
| #define MODULE_RELOAD_ON_MAPCHANGE | ||||
|  | ||||
| @@ -21,6 +23,7 @@ | ||||
| // metamod plugin? | ||||
| #define USE_METAMOD | ||||
|  | ||||
|  | ||||
| // use memory manager/tester? | ||||
| // note that if you use this, you cannot construct/allocate  | ||||
| // anything before the module attached (OnAmxxAttach). | ||||
| @@ -34,19 +37,33 @@ | ||||
| // Uncomment this if you are using MSVC8 or greater and want to fix some of the compatibility issues yourself  | ||||
| // #define NO_MSVC8_AUTO_COMPAT | ||||
|  | ||||
| // - AMXX Init functions | ||||
| // Also consider using FN_META_* | ||||
| // AMXX query | ||||
| /**  | ||||
| * AMXX Init functions | ||||
| * Also consider using FN_META_* | ||||
| */ | ||||
|  | ||||
| /** AMXX query */ | ||||
| //#define FN_AMXX_QUERY OnAmxxQuery | ||||
| // AMXX attach | ||||
| //   Do native functions init here (MF_AddNatives) | ||||
|  | ||||
| /** AMXX attach | ||||
| * Do native functions init here (MF_AddNatives) | ||||
| */ | ||||
| #define FN_AMXX_ATTACH OnAmxxAttach | ||||
| // AMXX detach | ||||
|  | ||||
| /** AMXX Detach (unload) */ | ||||
| //#define FN_AMXX_DETACH OnAmxxDetach | ||||
| // All plugins loaded | ||||
| //   Do forward functions init here (MF_RegisterForward) | ||||
|  | ||||
| /** All plugins loaded | ||||
| * Do forward functions init here (MF_RegisterForward) | ||||
| */ | ||||
| #define FN_AMXX_PLUGINSLOADED OnPluginsLoaded | ||||
|  | ||||
| /** All plugins are about to be unloaded */ | ||||
| //#define FN_AMXX_PLUGINSUNLOADING OnPluginsUnloading | ||||
|  | ||||
| /** All plguins are now unloaded */ | ||||
| //#define FN_AMXX_PLUGINSUNLOADED OnPluginsUnloaded | ||||
|  | ||||
| /**** METAMOD ****/ | ||||
| // If your module doesn't use metamod, you may close the file now :) | ||||
| #ifdef USE_METAMOD | ||||
| @@ -61,8 +78,8 @@ | ||||
| //#define FN_META_QUERY OnMetaQuery | ||||
| // Meta attach | ||||
| //#define FN_META_ATTACH OnMetaAttach | ||||
| // Meta detach | ||||
| //#define FN_META_DETACH OnMetaDetach | ||||
| // Meta dettach | ||||
| //#define FN_META_DETTACH OnMetaDettach | ||||
|  | ||||
| // (wd) are Will Day's notes | ||||
| // - GetEntityAPI2 functions | ||||
| @@ -473,3 +490,4 @@ | ||||
| #endif // USE_METAMOD | ||||
|  | ||||
| #endif // __MODULECONFIG_H__ | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user