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
David Anderson
eaea3c927d
Update upstream AMTL as a submodule.
2015-03-08 00:24:03 -08:00
David Anderson
561004c4bf
Move SourcePawn headers out of public/ into sourcepawn/include.
2015-03-07 11:13:32 -08:00