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
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