I've finished some of the plugin's features:
* All Metamod changes merged in, including partial Steamworks API support
* Rewrote the keyvalues parser, is now stricter and parses escape sequences more efficiently. Implementation is much simpler and easier to maintain.
* Added the ability to load plugins through ASMod. Plugins loaded by ASMod are much like plugins loaded by Sven Co-op, with a few exceptions:
- Defining cvars/commands fails due to no module pointer being present to validate the access.
- Globals set at build time are unavailable.
- Any code that relies on SC's active module pointer being set fails.
- Any code that relies on the module user data pointing to a CASModule* instance will crash (using same user data ID as utils codebase, needs changing). This includes script info, so any existing plugin you try to load will probably crash. On the upside, you don't need to set that info because validation is part of the build process.
- ASMod plugins have access to all API features due to having an access mask with 32 bits set. Map script only features are accessible as a result.
Unfortunately, even with complete access you cannot create custom entities with these plugins because they didn't actually add support for custom entities to plugins. I've reported the problem and pointed them in the right direction: https://github.com/SamVanheer/SC_Angelscript/issues/49
When i said it was in dire need of updates, i wasn't kidding
ASMod plugins will eventually be able to register cvars and commands through a separate API, as well as register native cvars and commands (no as_command needed, and they can be looked up using regular cvar accessors).
* The filesystem now uses SteamPipe, so you can read from downloaded files. I forgot to mention above that i added persistent write access. The "scripts/maps/store" and "scripts/plugins/store" directories can be used to write persistent files. I also added a persistent directory "addons/ASMod/scripts/store", but that will probably be changed.
To make things a little simpler i'll probably add symbolic paths so you can just enter %PLUGIN_STORE_DIR% instead.
Things are moving along, so a release should be possible soon.