From 3120b750f4c8de9bea9865b6d21f7e436acab4a0 Mon Sep 17 00:00:00 2001 From: Pavol Marko Date: Thu, 22 Apr 2004 10:42:49 +0000 Subject: [PATCH] pause & unpause added --- amxmodx/CPlugin.cpp | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/amxmodx/CPlugin.cpp b/amxmodx/CPlugin.cpp index 03a16a1c..e821e26f 100755 --- a/amxmodx/CPlugin.cpp +++ b/amxmodx/CPlugin.cpp @@ -29,8 +29,6 @@ * version. */ -#include -#include #include "amxmodx.h" #include "CPlugin.h" #include "CForward.h" @@ -162,9 +160,50 @@ void CPluginMngr::CPlugin::unpauseFunction( int id ) { g_commands.clearBufforedInfo(); } } + void CPluginMngr::CPlugin::setStatus( int a ) { status = a; g_commands.clearBufforedInfo(); // ugly way } +// Pause a plugin +void CPluginMngr::CPlugin::pausePlugin() +{ + if (isValid()) + { + // call plugin_pause if provided + int func; + cell retval; + if (amx_FindPublic(&amx, "plugin_pause", &func) == AMX_ERR_NONE) + { + if (isExecutable(func)) + { + amx_Exec(&amx, &retval, func, 0); + } + } + + setStatus(ps_paused); + } +} + +// Unpause a plugin +void CPluginMngr::CPlugin::unpausePlugin() +{ + if (isValid()) + { + // set status first so the function will be marked executable + + setStatus(ps_running); + // call plugin_unpause if provided + int func; + cell retval; + if (amx_FindPublic(&amx, "plugin_unpause", &func) == AMX_ERR_NONE) + { + if (isExecutable(func)) + { + amx_Exec(&amx, &retval, func, 0); + } + } + } +} \ No newline at end of file