Commit Graph

1120 Commits

Author SHA1 Message Date
Asher Baker
fc504737c5 Fix a misleading error message from "sm config".
The Ignore state could be hit if the value was read directly rather than using OnSourceModConfigChanged.
2015-10-30 11:06:54 +00:00
David Anderson
6c5ab80418 Refactor and cleanup the AMBuildScript a bit. 2015-10-08 14:55:53 -07:00
David Anderson
88a47ff681 Switch to re-entrant lists in ForwardSys and CForward. 2015-09-21 01:07:34 -07:00
David Anderson
c1396de2fc Replace SourceHook::List with ke::LinkedList in ForwardSys. 2015-09-21 01:07:25 -07:00
David Anderson
0810c4b217 Fix style issues in ForwardSys, removing extra blocks and tightening variable scope.
This also fixes a bug where IsFunctionRegistered() did not check the paused plugins list.
2015-09-21 01:07:18 -07:00
David Anderson
632c7d05dd Remove the forward cache and simplify CForward construction. 2015-09-21 01:07:01 -07:00
David Anderson
dcc192ee0d Use new header style. 2015-09-21 01:06:43 -07:00
David Anderson
9b1678bd18 Remove error outparams from first-pass internal plugin loading commands. 2015-09-21 00:51:20 -07:00
David Anderson
5f19fc036d Refactor AskPluginLoad() to contain its own error state. 2015-09-21 00:51:16 -07:00
David Anderson
5eec2e7d6d Remove error message outparam to LoadExtensions. 2015-09-21 00:51:11 -07:00
David Anderson
3195dec436 Split LoadOrRequireExtensions into two distinct functions. 2015-09-20 23:44:45 -07:00
David Anderson
15f4a05122 Factor the iterator out of LoadOrRequireExtensions. 2015-09-20 23:44:41 -07:00
David Anderson
e559e6ffa8 Simplify pass 2 of LoadOrRequireExtensions. 2015-09-20 23:44:37 -07:00
David Anderson
23290b35a7 Clean up LoadOrRequireExtensions and properly scope variables. 2015-09-20 23:44:34 -07:00
David Anderson
2b3da56fb5 Dedent a huge block of code. 2015-09-20 23:44:30 -07:00
David Anderson
370710c0ff Fix build. 2015-09-20 21:39:12 -07:00
David Anderson
4fc7eb8a6b Remove trailing whitespace. 2015-09-20 20:58:03 -07:00
David Anderson
38c01714d7 Clean up AskPluginLoad logic. 2015-09-20 20:57:59 -07:00
David Anderson
0e1a34a4d7 Hide CPlugin timestamp management details. 2015-09-20 20:57:55 -07:00
David Anderson
d5d7e8c9cf Factor guts of _LoadPlugin into a separate function. 2015-09-20 20:57:51 -07:00
David Anderson
76d681761d Factor malware checks into its own pass. 2015-09-20 20:57:47 -07:00
David Anderson
3807edbeb8 Move CPlugin compilation into its own function. 2015-09-20 20:57:43 -07:00
David Anderson
d9216cc599 Remove references to non-mapupdated plugins. 2015-09-20 20:31:30 -07:00
David Anderson
d551338510 Merge pull request #400 from alliedmodders/mv-srvcmds-x
Remove sm_srvcmds.cpp.
2015-09-20 15:15:43 -07:00
David Anderson
8a7dfdbc11 Move the "sm" command to core/logic. 2015-09-20 14:33:17 -07:00
David Anderson
1a7b708df8 Split command buffer peeking hacks out of the "sm" command. 2015-09-20 14:33:14 -07:00
David Anderson
168b779786 Move sm_dump_handles to core/logic. 2015-09-20 14:33:10 -07:00
David Anderson
c853050265 Move sm_reload_translations to Translator. 2015-09-20 14:33:06 -07:00
David Anderson
c614d19af0 Move sm_dump_admcache to AdminCache. 2015-09-20 14:33:02 -07:00
David Anderson
8b4f27a038 Add infrastructure to let logic define ConCommands. 2015-09-20 14:32:58 -07:00
David Anderson
c66d14605a Merge pull request #397 from alliedmodders/rm-old-mms
Remove code that handles long-dead Metamod:Source versions.
2015-09-18 14:38:52 -07:00
Nicholas Hastings
c982cc9991 Merge pull request #354 from powerlord/findmap-plugins
GetMapDisplayName and associated core plugin changes.
2015-09-17 11:17:40 -04:00
David Anderson
485975fd99 Fix temporary parameter list being static. 2015-09-16 00:27:36 -07:00
David Anderson
c36f80b93d Don't use server commands to flush plugin unloads. 2015-09-15 19:43:41 -07:00
David Anderson
08cadcdda6 Merge pull request #372 from alliedmodders/rm-pausing
Cleanup some PluginSys idiosyncracies.
2015-09-15 19:15:26 -07:00
David Anderson
d473b0441d Allow plugin info fields to outlive their runtime. 2015-09-15 19:07:22 -07:00
Ross Bemrose
10a95cfdce Add new function: GetMapDisplayName.
This function will resolve the name of a map using FindMap, then (if applicable), will turn a workshop map name into a nicely formatted name.

Currently only TF2 and CS:GO Map Workshops are supported.  More can be added at a later date.

This function returns false if a map was not found, but true in any other instance even if FindMap could not resolve the map name.

This patch also updates the following core plugins to use this GetMapDisplayName:

BaseTriggers
BaseVotes
MapChooser
NextMap
Nominations
RandomCycle
RockTheVote
2015-09-15 16:16:58 -04:00
David Anderson
653dd36020 Merge pull request #378 from powerlord/fix-convar
Fix ConVar .IntValue, .BoolValue, and .FloatValue assignments (Bug 6405)
2015-09-15 12:33:51 -07:00
Nicholas Hastings
28bf744a18 Merge pull request #399 from alliedmodders/tf2branch-nontf2-ismapvalid
Fix IsMapValid call on non-TF2 TF2-branch games to use old behavior requiring only map name
2015-09-14 20:44:24 -04:00
Nicholas Hastings
e7d9795fc1 Fix IsMapValid call on non-TF2 TF2-branch games to use old behavior requiring only map name. 2015-09-14 19:24:28 -04:00
David Anderson
2adae27557 Clean up CPlugin member variables. 2015-09-14 12:55:42 -07:00
David Anderson
3430962cbe Simplify required libs handling and make sure they create dependency links. 2015-09-14 12:53:23 -07:00
David Anderson
0aaa659e29 Fix how the mark-serial is used.
The mark-serial is a generation number to optimize dependency tracking. It did not actually get
applied correctly, meaning that in rare cases we could miss dependencies. This patch removes the
incorrect serial propagation and ensures that we don't double-count a dependent plugin.

Additionally, this patch ensures that all callers of BindNativeToPlugin() will update the mark
serial, as is required to correctly track dependencies.
2015-09-14 12:50:50 -07:00
David Anderson
9ef8cc7064 Separate the top of UnloadPlugin into a precursor function. 2015-09-14 12:50:39 -07:00
Nicholas Hastings
44bacdc067 Fix recent regression with finding engine ptr on CS:S, DoD:S, HL2:DM.
They are still only have engine v21, not yet v22 (let alone v23).
2015-09-14 09:56:06 -04:00
David Anderson
fc947c68f7 Merge pull request #404 from alliedmodders/fix-crash
Fix a regression from the ConCmdManager refactoring that causes a crash using SourceMod commands in the server console.
2015-09-12 22:53:09 -07:00
David Anderson
bcd80d3e84 Fix a regression from the ConCmdManager refactoring that causes a crash using SourceMod commands in the server console. 2015-09-12 00:26:47 -07:00
Nicholas Hastings
f6d7fd4949 Don't use VInterfaceMatch when wanting explicit iface version. 2015-09-11 05:40:03 -07:00
Nicholas Hastings
2bd91dd93b Fix always failing when falling back to engine v22. 2015-09-11 05:38:53 -07:00
Nicholas Hastings
82b7485001 Shim for TF2-branch games to find latest, non-shimmed engine iface. 2015-09-10 20:43:48 -04:00
Kyle Sanderson
f59df243ea Change FindMap to take a const char* for searching instead of char*. 2015-09-10 11:47:46 -07:00
David Anderson
fe16e8e47c Move the SetCommandClient hook into GameHooks. 2015-09-09 20:03:23 -07:00
David Anderson
fd961f4712 Remove code to handle SourceHook versions 3 and lower. 2015-09-09 19:00:18 -07:00
David Anderson
b548ba7b58 Remove bad-console-read protection logic for Metamod:Source 1.7 and earlier. 2015-09-09 18:59:31 -07:00
David Anderson
df672dd8ce Remove the ability to compile against Metamod:Source versions lower than 1.8. 2015-09-09 18:54:43 -07:00
David Anderson
c54b54ded0 Use GameHooks for ChatTriggers. 2015-09-09 18:51:21 -07:00
David Anderson
5757b729ac Hide MRES_SUPERCEDE from command hook callbacks. 2015-09-09 18:45:20 -07:00
David Anderson
b048dc7b10 Move ConCommand hooks into GameHooks and switch callbacks to ICommandArgs. 2015-09-09 18:40:04 -07:00
David Anderson
b63bfdc72a Rename QueryHookMode to ClientCvarQueryMode. 2015-09-09 18:40:01 -07:00
David Anderson
fa93426f6a Remove blanket includes from sm_stringutil. 2015-09-09 15:18:24 -07:00
David Anderson
86f0a77e73 Reduce dependence on sm_strdup. 2015-09-09 15:18:24 -07:00
David Anderson
13a783d441 Remove UTIL_Format() and UTIL_FormatArgs(). 2015-09-09 15:18:17 -07:00
David Anderson
e08697ad54 Remove strncopy(). 2015-09-09 14:57:47 -07:00
David Anderson
67c8ee4ce3 Move CDataPack from core to logic. 2015-09-06 11:02:52 -07:00
David Anderson
69984f472f Remove unused, NPOTB CrazyDebugger. 2015-09-05 20:44:00 -07:00
Ross Bemrose
569a53182c Allow sm_SetConVarString, sm_SetConVarFloat, and sm_SetConVarNum treat notify and replicate as non-existent.
Remove special functions for BoolValue, IntValue, and FloatValue.
2015-08-24 17:03:47 -04:00
Kyle Sanderson
9ebd4ad627 Merge pull request #319 from KyleSanderson/20isntagoodnumber
Allow GetMapHistorySize to return numbers greater than 20 (r=Dr!fter).
2015-09-05 13:58:03 -07:00
Nicholas Hastings
1e1b23dc31 Add missing sanity checks on element param on SetEntPropString for data props. 2015-09-02 18:35:37 -04:00
Nicholas Hastings
5cdf35d687 Fix array detection/handling for GetEntPropString with string_t arrays (bug 6409). 2015-09-02 18:33:58 -04:00
David Anderson
4e275eea97 Split intercom.h into separate headers and reduce shared header inclusion. 2015-08-31 10:00:49 -07:00
David Anderson
4f1705e001 Rename some bridge interfaces. 2015-08-31 09:57:32 -07:00
David Anderson
5d55ff23bd Move OnQueryCvarValueFinished into the global hook manager. 2015-08-31 09:22:08 -07:00
David Anderson
2ed044804d Move OnConVarChanged into a global hook. 2015-08-31 09:18:29 -07:00
David Anderson
32ba03538b Move CCommandArgs into its own header. 2015-08-31 00:07:37 -07:00
David Anderson
23feee0e00 Put the game provider in its own header. 2015-08-31 00:07:34 -07:00
David Anderson
401aa038f8 Start a new bridge mechanism for global callbacks. 2015-08-31 00:07:27 -07:00
David Anderson
38e1c2f1f3 Clean up the core side of the logic bridge. 2015-08-30 23:30:15 -07:00
David Anderson
9e4d396d5e Virtualize MMS functions in the core/logic bridge. 2015-08-30 23:29:46 -07:00
David Anderson
5c5d43137d Virtualize game state functions in the core/logic bridge. 2015-08-30 23:29:23 -07:00
David Anderson
bdfdab1d3a Virtualize game description functions in the core/logic bridge. 2015-08-30 23:28:59 -07:00
David Anderson
9366882ac4 Virtualize ConVar bridge functions. 2015-08-30 23:28:44 -07:00
David Anderson
0f9e5234fe Convert core_bridge to a proper class declaration. 2015-08-30 23:28:28 -07:00
David Anderson
3d5c9f0e21 Rename smcore to bridge, and use it as a pointer. 2015-08-30 23:27:53 -07:00
David Anderson
a2dac43833 Remove CCommand from the logic bridge. 2015-08-30 21:02:14 -07:00
David Anderson
28346c99f2 Move RootConsoleMenu into core/logic. 2015-08-30 21:01:46 -07:00
David Anderson
23d55dd9d5 Move RootConsoleMenu::ConsolePrint into the logic bridge. 2015-08-30 21:01:27 -07:00
David Anderson
2c886943a0 Move RootConsoleMenu into its own header and .cpp file. 2015-08-30 21:01:10 -07:00
David Anderson
9d805ea9fb Replace the AddRootConsoleCommand API to not expose internal structures. 2015-08-30 21:01:03 -07:00
David Anderson
e992c33f35 Factor irrelevant stuff out of RootConsoleMenu. 2015-08-30 21:00:42 -07:00
David Anderson
ecbcc7ba16 Move the sourcemod_version convar. 2015-08-30 21:00:39 -07:00
David Anderson
6503e92d66 Move LibrarySys from core to logic. 2015-08-30 20:11:22 -07:00
David Anderson
207f643d3a Replace g_LibSys usage with AMTL primitives. 2015-08-30 20:11:02 -07:00
David Anderson
ec01ca72a0 Replace internal ILibrary use with ke::SharedLib. 2015-08-30 20:10:59 -07:00
David Anderson
5ecd906905 Replace CLibrary with a wrapper around ke::SharedLib. 2015-08-30 20:10:57 -07:00
David Anderson
e78fe93e92 Move gnprintf/atcprintf from core to logic. 2015-08-30 19:32:46 -07:00
David Anderson
9d2bee261c Move TrimWhitespace from core to logic. 2015-08-30 18:42:25 -07:00
David Anderson
a158205f30 Remove strncopy from the core/logic bridge. 2015-08-30 18:21:07 -07:00
David Anderson
457266d249 Make UTIL_Format wrap ke::SafeSprintf. 2015-08-30 18:03:36 -07:00
David Anderson
9ba1363d86 Remove Format/FormatArgs from the core/logic bridge. 2015-08-30 18:03:31 -07:00
David Anderson
c87b3c0859 Update to the latest AMTL version. 2015-08-27 01:01:18 -04:00
David Anderson
e30b57cb4a Update build scripts for new AMTL folder structure. 2015-08-26 15:54:55 -04:00
Nicholas Hastings
a95527a72c Merge pull request #370 from alliedmodders/valvefs-default-pathid
Make path id default to "GAME" instead of NULL for FileExists and FileSize if param missing.
2015-08-14 08:44:34 -04:00
Nicholas Hastings
4f0c06d068 Merge pull request #369 from alliedmodders/bug-6391
Fix bIsStringIndex not being initialized in SetEntPropString for non-index SendProps (bug 6391).
2015-08-14 08:32:33 -04:00
Nicholas Hastings
af4573e7af Fix build on Clang. 2015-08-14 08:31:52 -04:00
Nicholas Hastings
a08a693bf3 Make path id default to "GAME" instead of NULL for FileExists and FileSize if param missing.
This only affects plugins compiled before the param existed in the includes. NULL defaults to "GAME"
on some engine versions, but is invalid on others, causing any file to not be found.
2015-08-14 07:52:50 -04:00
Nicholas Hastings
8a726a8fbb Fix bIsStringIndex not being initialized in SetEntPropString for non-index SendProps. 2015-08-14 07:50:10 -04:00
David Anderson
ff692f6040 Merge pull request #366 from peace-maker/timer_paused
Fix calling timer callback in paused plugins
2015-08-13 22:14:02 -07:00
David Anderson
bcfef75c5d Update regex and datapack includes to not use binding syntax. 2015-08-12 11:52:57 -07:00
Peace-Maker
0a14d3f50c Fix calling timer callback in paused plugins
Don't try to call the timer callback, if it's not runnable.
Error wasn't reported before the exception refactoring.
2015-08-09 01:50:36 +02:00
Nicholas Hastings
f589298879 Fix maxlen in SetEntPropString not being initialized (bug 6391).
This var is only used when setting a direct string, rather than a string_t. Some flawed
logic was causing it to only be set if the sendprop didn't have a proxy function (although
all strings should; that's how we detect whether it's a string_t or not). The var only needs
to be set if it's not a string_t, but does not hurt anything if it is.
2015-07-25 10:46:41 -04:00
Nicholas Hastings
4db1280c59 Add comment to note that pStk actually gets deleted. 2015-07-12 19:18:27 -04:00
Nicholas Hastings
5893737321 Fix handle leak. 2015-07-12 17:38:50 -04:00
Nicholas Hastings
c85cc5cbf7 Add support for listening to, blocking, changing, and faking ClientCommandKeyValues. 2015-07-12 13:14:46 -04:00
Asher Baker
705b5d3f5f Merge pull request #340 from asherkin/datapack-alloc
Improve DataPack memory allocation & Report size for DataPack Handles
2015-07-08 20:07:40 +01:00
Nicholas Hastings
8a978dc71f Remove hack around FuzzyMatch never being returned in TF2 for FindMap.
It has been fixed now in the game.
2015-07-04 13:42:50 -04:00
Nicholas Hastings
52147ca75f Use datadesc instead of serverclass for m_iName lookup.
m_iName is not networked on all games.
2015-07-03 08:57:15 -04:00
Nicholas Hastings
1a5714c3ca Fix build for ep1 and darkm. 2015-07-02 15:22:33 -04:00
Nicholas Hastings
e0a83ff7b2 Add support for setting string_t values with SetEntPropString.
Adds new AllowPooledString func to CHalfLife2 to allocate a string in the game's string pool.
Also fixes SetEntPropString using incorrect offset for nested sendprops.
2015-07-02 14:47:31 -04:00
Nicholas Hastings
93bec920cf Add support for GetEntPropString(Prop_Send) with netvars backed by string_t vars. 2015-07-02 14:00:47 -04:00
Nicholas Hastings
80838af4a2 Work around eFindMap_FuzzyMatch never actually being returned in TF2. 2015-06-28 09:48:01 -04:00
Nicholas Hastings
c383f1dc43 Fix compile errors on Clang by implementing own enum. 2015-06-27 19:58:14 -04:00
Nicholas Hastings
f107ff9cd2 Expose FindMap/ResolveFuzzyMapName to plugins. 2015-06-27 13:10:47 -04:00
Kyle Sanderson
0f9b9d0a24 Call OnClientDisconnect(_Post) if the client is already connected. 2015-06-11 20:14:25 -07:00
Nicholas Hastings
c0d4dfa6ed Update IsMapValid for today's TF2 update. 2015-06-11 17:48:58 -04:00
Nicholas Hastings
14e0a9a487 Fix some ctype misuses (bug 6377).
isalpha, isdigit, isupper, and islower do not return 0/1. They return 0 or anything-else. Since the bool tag in pawn only supports exactly 0 and 1, we need to return 1 for all truthy returns in the natives that wrap these.
2015-06-10 14:40:48 -04:00
Nicholas Hastings
9f8a40f482 Merge pull request #337 from alliedmodders/earlier-maxclients
Populate MaxClients before OnPluginStart is called.
2015-05-20 06:48:08 -04:00
Nicholas Hastings
2abb8e6335 Remove engine check for whether or not to search alt mapcycle paths. 2015-05-18 09:16:36 -04:00
Asher Baker
fd48f4adfd Report size for DataPack Handles. 2015-05-13 19:43:53 +01:00
Asher Baker
7f97e67931 Saner allocation policy for DataPacks. 2015-05-13 19:43:35 +01:00
Nicholas Hastings
11bf32f6f1 Enable finding mapcycle in cfg dir on sdk2013 and bms. 2015-05-13 06:49:37 -07:00
Nicholas Hastings
ae78acf97a Remove harmless remnant of reverted change. 2015-05-12 13:39:06 -04:00
Nicholas Hastings
51344262c6 Merge pull request #333 from TheMadSword/IncreasedPrintToBufferSize
Increased PrintToChat, PrintCenter & PrintHint w/ "all" version, buffer sizes from 192 to 254.
2015-05-12 09:23:25 -04:00
Nicholas Hastings
75a93314a2 Rename PlayerManager::m_FirstPass to m_bServerActivated for clarity. 2015-05-11 20:42:26 -04:00
Nicholas Hastings
91b2ab8be1 Fixed some badness with the player initialization moving. 2015-05-11 20:29:00 -04:00
Nicholas Hastings
8fc689c89a Populate MaxClients before OnPluginStart is called. 2015-05-11 19:31:22 -04:00
TheMadSword
6686badc93 Increased PrintHint and PrintCenter buffer 2015-05-09 09:22:07 -04:00
TheMadSword
b70873e046 Changed buffer size for games with ChatSayText='yes', tested in CSS&CSGO w/ adding the kv in engine.cs*.txt 2015-05-07 22:55:15 -04:00
TheMadSword
f57dbeb60f Increased PrintToChat & PrintToChatAll buffer size from 192 to 254; works in CSS/CSGO; dunno for the rest 2015-05-07 09:38:25 -04:00
Nicholas Hastings
64f9aedebc Add basic support for Black Mesa.
(Basically a copy of SDK 2013's support, but against BMS SDK).
2015-05-06 21:12:13 -04:00
Ryan Stecker
03e0c7317d Notify plugin listeners of SetFailState'd plugins on unload. (bug 6347) 2015-04-12 19:25:07 -05:00
Nicholas Hastings
6c6ed241d3 Fix CoreConfig init to happen after SMGlobalClasses from logic bin are added.
This fixes OnSourceModConfigChanged not being called for logic classes when
config is first read, matching behavior for core classes. The function is still called
before each class's OnSourceModStartup func.
2015-04-05 10:06:30 -04:00
Kyle Sanderson
aa99eb803b Allow GetMapHistorySize to return numbers greater than 20. 2015-04-02 13:50:47 -07:00
Kyle Sanderson
88c4618230 Merge pull request #320 from KyleSanderson/dust
Remove Project Files from older outdated build systems.
2015-04-02 10:34:57 -07:00
Kyle Sanderson
7341bd184e Remove Project Files from older outdated build systems. 2015-04-01 19:54:34 -07:00
Nicholas Hastings
ce56680fff Merge pull request #315 from alliedmodders/direxists-empty
Make DirExists("") throw an error.
2015-04-01 22:30:03 -04:00
Nicholas Hastings
d49c72cf8b Fix typo in core AMBuilder file triggering exception when triggering exception. 2015-03-31 17:39:04 -04:00
Nicholas Hastings
7b56dd5c8a Fix build. 2015-03-22 19:23:58 -04:00
Peace-Maker
4b8a581c9a Fix crash in games that don't support radio style menus
Fix regression in ad7d920
GetMenuStyleHandle(MenuStyle_Radio) crashes games, which don't support
the radio menu style. The style is never added to the menu manager, if
it's not supported, so GetMenuStyleHandle tries to call IsSupported on a
nullptr
2015-03-21 18:53:41 -04:00
Nicholas Hastings
28870d2ae5 Make OpenDirectory error for empty path match error in DirExists. 2015-03-10 18:58:00 -07:00
Nicholas Hastings
cc3b86ea80 Throw an error if DirExists called with empty path. 2015-03-10 18:57:28 -07:00