David Anderson
c4c6efb140
Remove a crazy unused function from CPluginManager.
2015-10-31 17:25:59 -07:00
David Anderson
f078ea1f8a
Remove the Illiad-length mostly-wrong comment at the top of PluginSys.h
2015-10-31 17:25:59 -07:00
David Anderson
ab1b915a3c
Fix re-entrancy issues in CPluginManager by using ReentrantList.
2015-10-31 17:24:22 -07:00
David Anderson
709149fbed
Remove the CPluginIterator cache.
2015-10-31 17:23:24 -07:00
David Anderson
e57a076dc8
Remove CPluginManager's friend access to CPlugin.
2015-10-31 17:19:10 -07:00
David Anderson
c21b3a36fc
Remove CPluginManager direct use of CPlugin::NativeOwner::m_fakes.
2015-10-31 17:19:10 -07:00
David Anderson
f765c8d436
Remove CPluginManager direct use of CPlugin::m_LibraryMissing.
2015-10-31 17:19:10 -07:00
David Anderson
ae44a6540a
Remove CPluginManager direct use of CPlugin::m_FakeNativesMissing.
2015-10-31 17:19:10 -07:00
David Anderson
f27dbaf716
Remove CPluginManager direct use of CPlugin::m_RequiredLibs.
2015-10-31 17:19:10 -07:00
David Anderson
717ad38d06
Remove CPluginManager direct use of CPlugin::m_errormsg.
2015-10-31 17:19:10 -07:00
David Anderson
60f06d1414
Remove CPluginManager direct use of CPlugin::m_FileVersion.
2015-10-31 17:19:10 -07:00
David Anderson
a579136a3d
Remove CPluginManager direct use of CPlugin::m_DateTime.
2015-10-31 17:19:10 -07:00
David Anderson
2f3d523ac0
Remove CPluginManager use of CPlugin::m_pRuntime.
2015-10-31 17:19:10 -07:00
David Anderson
df5c53fa4a
Remove CPluginManager direct use of CPlugin::m_filename.
2015-10-31 17:19:10 -07:00
David Anderson
46c069dbbe
Remove CPluginManager direct use of CPlugin::m_Libraries.
2015-10-31 17:19:09 -07:00
David Anderson
bda9defc0f
Remove CPlugin's friend access to CPluginManager.
2015-10-31 17:19:09 -07:00
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
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
Nicholas Hastings
6f8ffd55a7
Merge pull request #263 from alliedmodders/admins-trans
...
Update admins.inc with methodmaps, newdecls (r=dvander, asherkin).
2015-03-05 14:32:15 -05:00
Nicholas Hastings
70390ff1f7
Purge Purge.
2015-03-05 10:56:36 -08:00
David Anderson
a1afa23bc4
Implement a new stack and error handling model for the SourcePawn VM.
...
This has three major changes to SourcePawn. First, the API now supports the concept of "exceptions". The exception state is a global property of an instance of the SourcePawn VM. Exceptions can be caught or suppressed. Many places in SourceMod have been updated to check exceptions instead of errors.
The new API obsoletes major parts of the embedder API - all but one method of invoking functions is obsoleted, and the debug interface has been scrapped. Extensions using the native API will not be affected, however, ThrowNativeError has been deprecated in favor of ReportError.
Second, the SourcePawn concept of a "stack" has been unified at the API level. A stack frame iterator now iterates over all SourcePawn invocations, rather than the topmost plugin. This makes error handling more consistent and removes another dependency on context-per-plugin.
Finally, the implementation of stack frames has been changed dramatically. Rather than maintain a complicated and expensive return pointer stack, we now rely on the implicit one provided by the CPU. The stack frame iterator now walks the JIT stack directly. This removes many unnecessary bookkeeping instructions from the generated code, in particular making the CALL instruction 40% faster.
These changes required some fair surgery to the JIT. Its error paths are now slightly more complicated, as they have to throw an exception rather than return an error code. In addition, any path that can throw an exception is now responsible for creating an "exit frame", which exists to tell the stack frame iterator about transitions from the JIT to the VM.
2015-03-04 23:45:30 -08:00
David Anderson
04827466b0
Rewrite the .smx parser.
...
This removes one the last remnants of the SourceMod 1.0 VM implementation.
The new parser introduces a number of design changes in the VM. First, the VM now takes greater responsibility for validating and sanity checking the structure of the SMX container format. Previously, malformed SMX files could easily crash SourcePawn. The loader now rejects files that have out-of-bounds offsets or incomplete sections. Complex sections, like debug info or the code stream, are verified lazily.
Internally, the sp_plugin_t structure has been removed. It has been replaced by a new LegacyImage class, designed to be independent from the SPVM API. This potentially lets us load code streams from non-.smx containers. More importantly, it removes a lot of bookkeeping and pre-computed state from PluginRuntime. The LegacyImage class is now responsible for handling debug info as well.
PluginRuntime is now intended to hold only cached or immutable data, and PluginContext holds all VM state. As such PluginContext is now responsible for allocating a plugin's runtime memory, not PluginRuntime.
Finally, some aspects of the loading process have been cleaned up. The
decompression and image handoff logic should now be easier to
understand.
2015-02-25 22:28:10 -08:00
David Anderson
fcaa5361c8
Don't expose mutable sp_native_t.
2015-02-24 23:10:18 -08:00
Asher Baker
6572989993
Merge pull request #213 from splewis/find-array-nonzero-blocks
...
Add block parameter to FindValueInArray native.
2015-02-24 22:37:49 +00:00
David Anderson
21f5400d9c
Remove ICompilationData.
2015-02-24 02:03:57 -08:00
David Anderson
499f7b3929
Refactor the public API entrypoint for SourcePawn.
2015-02-24 01:52:13 -08:00
Kyle Sanderson
4bd4d8d4a5
Merge pull request #268 from KyleSanderson/MenuCrash
...
Root Menu Handles during Display (Bug 5620,r=dvander).
2015-02-21 17:25:25 -08:00
Kyle Sanderson
284fab7254
Root Menu Handles during Display.
2015-02-21 17:10:26 -08:00
Nicholas Hastings
b9579a53ce
Add missing impl for File.ReadUint16.
2015-02-18 04:50:20 -08:00
Nicholas Hastings
c0729ff5e2
Add methodmap for GroupId.
2015-02-17 08:21:14 -08:00
Nicholas Hastings
c2d37cdff5
Add methmodmap for AdminId.
2015-02-17 07:19:56 -08:00
Nicholas Hastings
0f00a2db08
Remove unused result value in OnRebuildAdminCache forward call.
2015-02-17 06:43:49 -08:00
Nicholas Hastings
00ad38f5b7
Actually use game path instead of SM path as base.
2015-02-07 09:25:25 -08:00
Nicholas Hastings
261e135845
Make handle dump location relative to gamedir to match other sm_dump commands.
2015-02-07 09:21:53 -08:00
Nicholas Hastings
e88039d4e0
Fix FindFlagChar not finding char for AdminFlag_Custom6.
2015-02-03 10:32:34 -05:00
Nicholas Hastings
84a59c6fb7
Fix g_ReverseFlags array size.
2015-02-03 10:27:32 -05:00
Nicholas Hastings
19be28cc2e
Rename g_FlagSet to g_FlagCharSet to avoid some confusion.
2015-02-03 10:26:28 -05:00
Nicholas Hastings
52514a96bd
Fix "sm plugins refresh" not refreshing changed plugins.
2015-01-31 15:28:21 -05:00
Nicholas Hastings
8705aea634
Fix signed/unsigned compare warning in smn_adt_stack.
2015-01-27 17:59:55 -08:00
David Anderson
3040708d4e
Merge pull request #215 from Thordin/more_handles
...
Increased handles to 32k
2015-01-26 11:24:46 -08:00
David Anderson
2382902fe4
Merge pull request #244 from alliedmodders/db-fix
...
Fix wrong value in transitional DBI callback. (bug 6292)
2015-01-23 14:07:22 -08:00
Nicholas Hastings
aff2551942
Remove conditionals in ambuild scripts for using msvc <2013 (not supported).
2015-01-21 11:04:52 -05:00
Nicholas Hastings
18b54b9064
Update protobuf include path for Dota build.
2015-01-21 11:04:03 -05:00
Ryan Stecker
ff27484527
Prevent null auth string comparisons.
2015-01-19 07:48:45 -05:00
Nicholas Hastings
9f648879e5
Fix regression causing "BOT" to no longer be valid in adminsys for Steam identities.
2015-01-17 10:11:04 -05:00
David Anderson
49383e7391
Fix wrong value in transitional DBI callback. (bug 6292)
2015-01-16 00:33:29 -08:00
Nicholas Hastings
e0e2c00d12
Fix ICommandLine not being found in Dark Messiah.
2015-01-11 11:44:45 -05:00
Nicholas Hastings
3929ff1f27
Fix typo on ArrayList.Erase native.
2015-01-04 11:58:44 -05:00
David Anderson
bf3ff460b3
Merge pull request #93 from peace-maker/failstate_dependencies
...
Pause dependent plugins on SetFailState. (bug 6120, r=dvander)
2015-01-03 10:55:52 -08:00
Nicholas Hastings
3e65d308a8
Don't looks for IServerTools on ep1 games.
...
(We don't use it and it doesn't exist on most.)
2015-01-01 14:56:37 -05:00
Nicholas Hastings
6d1a2b0d86
Expose Message_DetermineMulticastRecipients as GetClientsInRange native.
2014-12-30 15:37:57 -05:00
Peace-Maker
9b2e77711a
Plugin_Failed == "An unrecoverable error"
...
Change the meaning of Plugin_Failed status to indicate, that the plugin
can't recover from the error.
Make sure those previously loaded plugins are shown correctly in sm
plugins info x.
2014-12-20 11:08:30 +01:00
Peace-Maker
0b131d6864
Pause dependent plugins on SetFailState (bug 6120)
...
When a plugin calls SetFailState it is paused and all natives it
registered are unavailable. Other plugins, which depend on those natives
keep running and error whenever they try to call those natives.
This correctly sets the dependent plugins to an error state as if the
plugin which called SetFailState was unloaded.
2014-12-20 11:07:57 +01:00
Nicholas Hastings
abb8d8447f
Move bot auth to after connect to fix old too-early-authid bug now causing crash (r=VoiDeD).
2014-12-19 18:27:18 -05:00
Nicholas Hastings
7304747f79
Merge pull request #222 from alliedmodders/auth-ogrekill
...
Don't recalculate Steam ID every frame when waiting for validated auth.
2014-12-17 20:41:22 -05:00
Nicholas Hastings
67fcd9e2c6
Populate auth ids (if available) when initializing CPlayer instance.
2014-12-14 14:56:19 -05:00
Nicholas Hastings
d51a57cc34
In UpdatePlayerAuth, don't update SteamIDs if AuthID hasn't changed.
2014-12-13 19:40:22 -05:00
Nicholas Hastings
de12f64c14
Convert CPlayer::m_AuthID to ke::AString.
2014-12-13 19:39:44 -05:00
David Anderson
b1cb06c5ce
Update DBI for transitional syntax.
2014-12-13 16:34:58 -08:00
David Anderson
722a23c818
Redo menu methodmaps.
2014-12-13 12:53:30 -08:00
David Anderson
28eb663f9b
Port events to transitional syntax.
2014-12-13 12:51:16 -08:00
Thordin
f27c33cd18
Increased handles to 32k
2014-12-07 21:50:40 -08:00
Sean Lewis
d2e01da287
Wrap 3rd parameter in FindValueInArray to check for existence.
2014-12-06 17:07:54 -06:00
Sean Lewis
3ef2bdcb8d
Add block parameter to FindValueInArray native.
2014-12-06 03:21:53 -06:00
Asher Baker
50898d7a4f
Merge pull request #208 from asherkin/long-lang-codes
...
Support long key names for languages (bug 6282)
2014-11-24 19:07:18 +00:00
Asher Baker
ced026cecc
Support long key names for languages. (bug 6282)
2014-11-22 22:18:49 +00:00
David Anderson
08388de7dd
Merge pull request #199 from alliedmodders/tr-convars
...
Port ConVars to transitional syntax.
2014-11-19 22:38:56 -08:00
David Anderson
be6da2f810
Merge pull request #173 from alliedmodders/tr-smc
...
Port SMC parsing API to transitional syntax.
2014-11-19 22:38:19 -08:00
David Anderson
0511543c76
Merge pull request #206 from alliedmodders/tr-files
...
Port files.inc to transitional syntax.
2014-11-18 18:56:07 -08:00
Nicholas Hastings
db434acd27
Fix typo in CPlayer::GetSteam3Id doing length check on wrong var.
2014-11-16 10:07:08 -05:00
Nicholas Hastings
50400cf029
Remove unused variables.
2014-11-15 19:35:47 -05:00
David Anderson
79143d8b6e
Port files.inc to transitional syntax.
2014-11-15 13:42:28 -08:00
David Anderson
f25953bb6c
Merge pull request #187 from alliedmodders/tr-arrays
...
Update ArrayList for transitional syntax.
2014-11-15 13:04:29 -08:00
David Anderson
461dc3af3d
Merge pull request #189 from alliedmodders/tr-tries
...
Port string maps to transitional syntax.
2014-11-15 12:52:37 -08:00
David Anderson
5e362ec169
Merge branch 'tr-bitbuf'
2014-11-15 12:49:39 -08:00
David Anderson
e46d5d211d
Merge pull request #196 from alliedmodders/tr-protobuf
...
Add transitional syntax support for Protobuf natives.
2014-11-15 12:47:46 -08:00
David Anderson
758a7c955c
Merge pull request #188 from alliedmodders/tr-stack
...
Port adt_stack to transitional syntax.
2014-11-15 12:47:21 -08:00
David Anderson
4cb29eb054
Port adt_stack to transitional syntax.
2014-11-15 12:46:17 -08:00
David Anderson
2cfe54f34b
Port BitBuffers to transitional syntax.
2014-11-09 16:56:50 -08:00
David Anderson
65dfd3cdd1
Add C++ definitions.
2014-11-09 15:39:13 -08:00
David Anderson
6b714dafe3
Add transitional syntax support for Protobuf natives.
2014-11-09 14:19:16 -08:00
David Anderson
8479c2f067
Port SMC parsing API to transitional syntax.
2014-11-09 12:33:07 -08:00
Nicholas Hastings
f3fcdeda9d
Use directly-exported random functions on vstdlib rather than IUniformRandomStream.
2014-11-09 10:59:10 -05:00
David Anderson
6ba4bcb955
Port string maps to transitional syntax.
2014-11-08 17:43:28 -08:00
David Anderson
919a31df57
Update ArrayList for transitional syntax.
2014-11-08 16:31:33 -08:00
David Anderson
f020b5682e
Port KeyValues to the transitional syntax.
2014-11-08 15:54:40 -08:00
David Anderson
f16501d34a
Simplify filesystem native implementation.
2014-11-08 15:44:35 -08:00
Nicholas Hastings
b7c4faf063
Merge pull request #169 from alliedmodders/vfsdir-fixes
...
Fixes for OpenDirectory with use_valve_fs (r=asherkin).
2014-11-08 13:19:54 -05:00
Nicholas Hastings
72c18cc3d9
Missing changes from last commit
2014-10-30 19:24:00 -04:00
Nicholas Hastings
350dd2ebc7
Eliminate need for gEntList gamedata on tf2/sdk2013 and soon dods/css/hl2dm.
2014-10-30 19:23:27 -04:00
Nicholas Hastings
9021b23bc2
Fix crash on OpenDirectory with use_valve_fs if path not found.
...
Also fixes minor memory leak on bad path.
2014-10-28 13:57:40 -04:00
Nicholas Hastings
dca15ebabf
Fix OpenDirectory with use_valve_fs requirement of trailing slash.
2014-10-28 13:53:27 -04:00
David Anderson
6bd1285d66
Merge pull request #164 from VoiDeD/sp-commandline
...
Expose ICommandLine to plugins.
2014-10-21 12:25:51 -07:00
Ryan Stecker
d702371b15
Number -> Int, per recommendation.
2014-10-08 21:47:15 -05:00
Nicholas Hastings
512fae4c25
Fix crash on Windows when dumping admin cache to file.
2014-10-08 17:31:02 -07:00
Ryan Stecker
2aba6d9d42
Fix linux build.
2014-10-07 17:19:16 -05:00
Ryan Stecker
f2a80e33fd
Expose some of ICommandLine to plugins.
2014-10-07 16:16:02 -05:00
Nicholas Hastings
ac96bb177a
Merge pull request #157 from VoiDeD/getevent-defaults
...
Expose optional default values for the GetEvent* SP functions (r=psychonic)..
2014-10-05 09:14:30 -04:00
Nicholas Hastings
0f6063af60
Re-add DBI query throttling (r=dvander).
2014-09-18 22:02:32 -04:00
Ryan Stecker
981ffdfc82
Fix linux build.
2014-09-13 03:13:33 -05:00