Remove references to non-mapupdated plugins.

This commit is contained in:
David Anderson 2015-09-16 01:22:12 -07:00
parent d551338510
commit d9216cc599
2 changed files with 40 additions and 71 deletions

View File

@ -1003,7 +1003,7 @@ IPlugin *CPluginManager::LoadPlugin(const char *path, bool debug, PluginType typ
LoadRes res; LoadRes res;
*wasloaded = false; *wasloaded = false;
if ((res=_LoadPlugin(&pl, path, true, type, error, maxlength)) == LoadRes_Failure) if ((res=_LoadPlugin(&pl, path, true, PluginType_MapUpdated, error, maxlength)) == LoadRes_Failure)
{ {
delete pl; delete pl;
return NULL; return NULL;
@ -2183,23 +2183,6 @@ void CPluginManager::OnRootConsoleCommand(const char *cmdname, const ICommandArg
{ {
rootmenu->ConsolePrint(" Status: not running"); rootmenu->ConsolePrint(" Status: not running");
} }
const char *typestr = "";
switch (pl->GetType())
{
case PluginType_MapUpdated:
typestr = "Map Change if Updated";
break;
case PluginType_MapOnly:
typestr = "Map Change";
break;
case PluginType_Private:
case PluginType_Global:
typestr = "Never";
break;
}
rootmenu->ConsolePrint(" Reloads: %s", typestr);
} }
if (pl->m_FileVersion >= 3) if (pl->m_FileVersion >= 3)
{ {
@ -2362,26 +2345,14 @@ void CPluginManager::RefreshAll()
return; return;
} }
List<CPlugin *>::iterator iter;
List<CPlugin *> tmp_list = m_plugins; List<CPlugin *> tmp_list = m_plugins;
CPlugin *pl; for (auto iter = tmp_list.begin(); iter != tmp_list.end(); iter++)
time_t t;
for (iter=tmp_list.begin(); iter!=tmp_list.end(); iter++)
{ {
pl = (*iter); CPlugin *pl = (*iter);
if (pl->GetType() == PluginType_MapOnly) time_t t = pl->GetFileTimeStamp();
{ if (!t || t > pl->GetTimeStamp()) {
UnloadPlugin((IPlugin *)pl); pl->SetTimeStamp(t);
} UnloadPlugin(pl);
else if (pl->GetType() == PluginType_MapUpdated)
{
t = pl->GetFileTimeStamp();
if (!t || t > pl->GetTimeStamp())
{
pl->SetTimeStamp(t);
UnloadPlugin((IPlugin *)pl);
}
} }
} }
} }

View File

@ -1,33 +1,29 @@
/** // vim: set ts=4 sw=4 sw=4 tw=99 noet :
* vim: set ts=4 sw=4 : // =============================================================================
* ============================================================================= // SourceMod
* SourceMod // Copyright (C) 2004-2015 AlliedModders LLC. All rights reserved.
* Copyright (C) 2004-2009 AlliedModders LLC. All rights reserved. // =============================================================================
* ============================================================================= //
* // This program is free software; you can redistribute it and/or modify it under
* This program is free software; you can redistribute it and/or modify it under // the terms of the GNU General Public License, version 3.0, as published by the
* the terms of the GNU General Public License, version 3.0, as published by the // Free Software Foundation.
* Free Software Foundation. //
* // This program is distributed in the hope that it will be useful, but WITHOUT
* This program is distributed in the hope that it will be useful, but WITHOUT // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more // details.
* details. //
* // You should have received a copy of the GNU General Public License along with
* You should have received a copy of the GNU General Public License along with // this program. If not, see <http://www.gnu.org/licenses/>.
* this program. If not, see <http://www.gnu.org/licenses/>. //
* // As a special exception, AlliedModders LLC gives you permission to link the
* As a special exception, AlliedModders LLC gives you permission to link the // code of this program (as well as its derivative works) to "Half-Life 2," the
* code of this program (as well as its derivative works) to "Half-Life 2," the // "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
* "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software // by the Valve Corporation. You must obey the GNU General Public License in
* by the Valve Corporation. You must obey the GNU General Public License in // all respects for all other code used. Additionally, AlliedModders LLC grants
* all respects for all other code used. Additionally, AlliedModders LLC grants // this exception to all derivative works. AlliedModders LLC defines further
* this exception to all derivative works. AlliedModders LLC defines further // exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
* exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007), // or <http://www.sourcemod.net/license.php>.
* or <http://www.sourcemod.net/license.php>.
*
* Version: $Id$
*/
#ifndef _INCLUDE_SOURCEMOD_PLUGINMNGR_INTERFACE_H_ #ifndef _INCLUDE_SOURCEMOD_PLUGINMNGR_INTERFACE_H_
#define _INCLUDE_SOURCEMOD_PLUGINMNGR_INTERFACE_H_ #define _INCLUDE_SOURCEMOD_PLUGINMNGR_INTERFACE_H_
@ -87,10 +83,10 @@ namespace SourceMod
*/ */
enum PluginType enum PluginType
{ {
PluginType_Private, /**< Plugin is privately managed and receives no forwards */ PluginType_Private_Unused, /**< Unused. */
PluginType_MapUpdated, /**< Plugin will never be unloaded unless for updates on mapchange */ PluginType_MapUpdated, /**< Plugin will never be unloaded unless for updates on mapchange */
PluginType_MapOnly, /**< Plugin will be removed at mapchange */ PluginType_MapOnly_Unused, /**< Unused. */
PluginType_Global, /**< Plugin will never be unloaded or updated */ PluginType_Global_Unused, /**< Unused. */
}; };
class IPhraseCollection; class IPhraseCollection;
@ -107,7 +103,7 @@ namespace SourceMod
} }
/** /**
* @brief Returns the lifetime of a plugin. * @brief Always returns PluginType_MapUpdated.
*/ */
virtual PluginType GetType() =0; virtual PluginType GetType() =0;
@ -146,6 +142,8 @@ namespace SourceMod
/** /**
* @brief Returns true if a plugin is in debug mode, false otherwise. * @brief Returns true if a plugin is in debug mode, false otherwise.
*
* On SourceMod 1.1 or higher, this always returns true for loaded plugins.
*/ */
virtual bool IsDebugging() =0; virtual bool IsDebugging() =0;
@ -314,7 +312,7 @@ namespace SourceMod
* *
* @param path Path and filename of plugin, relative to plugins folder. * @param path Path and filename of plugin, relative to plugins folder.
* @param debug Deprecated, must be false. * @param debug Deprecated, must be false.
* @param type Lifetime of the plugin. * @param type Plugin type. Values other than PluginType_MapUpdated are ignored.
* @param error Buffer to hold any error message. * @param error Buffer to hold any error message.
* @param maxlength Maximum length of error message buffer. * @param maxlength Maximum length of error message buffer.
* @param wasloaded Stores if the plugin is already loaded. * @param wasloaded Stores if the plugin is already loaded.