* Add ReHLDS API files and its dependencies
Note: This has been stolen from ReAPI AMXX module and modified/adjusted to match AMXX existing includes and to provide as less dependencies as possible as well
* Add the necessary files to get ReHLDS interface
* Split SV_DropClient into pre/post code
* Init ReHLDS API and add SV_DropClient hook
* Add Cvar_DirectSet hook and adjust code with helpers
Note: we don't need to split code here. This is pretty much the naive and straight way, but fairly enough for our case. If it happens we got a lot more hooks, we may consider to use some class to manage better the things.
* Move platform and interface stuff in their own files in public directory
* Make sure to init cvar stuff after ReHLDS
* Add ReGameDLL API files and its dependencies in cstrike module
* Init ReHLDS in cstrike module and adjust code
Note: About cs_uset_set_model(). ReHLDS API doesn't offer a way to know directly the precached models, so instead of looping through all the ressources, the models list is saved one time at map change into a hashmap.
* Init ReGameDLL and adjust code
* Fix linux compilation
* Init ReGameDLL in fakemeta module and adjust code
* Rename /reapi directory to /resdk to avoid confusion
* Retrieve gamerules pointer through InstallGameRules in fakemeta module
* Retrieve gamerules pointer through InstallGameRules in cstrike module
Note: actually gamerules is not used if regamedll is enabled, but it could be used in future natives.
* Fix a typo when ReGameDLL is not enabled
* Fix missing interface check for ReHLDS.
I'm pretty sure I was checking at the very first since I worked first on vanilla version of engine, looks like change has been lost.
* Module rewrite
- WinSock version changed from 1.1 to 2.2.
- Properly check for WinSock initialization on OnAmxxAttach/Detach.
- Now natives will not be added if we can't start up WinSock.
- socket_open() is now IP version agnostic (both IPv4 and IPv6 are
supported).
- Error reporting has been changed on socket_open(), a new parameter
called _libc_errors has been added, and, if enabled, libc errors will be
returned instead of the previous made-up errors.
- socket_close() now returns a value on success/failure.
- Added non-blocking sockets at socket_open_nb().
- Added socket_is_writable() to check if a socket is ready for write.
- Added socket_is_readable() as an alias to socket_change().
- Code rewritten to be more readable, it should be self-explaining now.
* Update docs and fix AMBuild
Updated documentation following the guidelines
* Fixs for the module
- Fixed the backwards compatibility with the return codes
- Merged socket_connect and socket_connect_nb
- Added a 5th parameter to socket_open that takes bit flags to enable
the new features (libc errors & nonblocking sockets)
- Fixed an error on socket_send2 that caused the buffet not to start
from the beginning if multiple calls were made
- Updated docs
- [docs] Prefixed error codes with SOCK_
- [docs] Added the new flags SOCK_NON_BLOCKING and SOCK_LIBC_ERRORS
- [docs] Added a new stock called SOCK_ERROR_EINPROGRESS(error) to be
used when checking if a newly created nonblocking socket is connecting
* Fixes for the docs
Fix some typos, shorten lines, document SOCK_ERROR_EINPROGRESS
* Document magic numbers
No more magic
* Revert "Document magic numbers"
This reverts commit 0f23329206.
* More docs fixes
* Fix broken socket_send2()
* Add error checking in send2()
* Remove stock
It should not be needed because nb sockets should always be checked or
writability
* Fix some identations
* Fix return codes doc
* Fix socket_recv() regression
strncopy will stop on a null byte, that makes the function unusable to
receive binary data
* More docs typo fixes
* Rename client_disconnected to client_disconnecting
* Add client_disconnected as post forward
* Fix client not properly disconnected internally
Introduced in #264.
Edict is reset once SV_DropClient is called, so that second check would be always false.
* Reflect changes on the concerned plugins
* Revert renaming, let's add only client_remove as post forward
Upcasting of -ve signed characters (char) to signed integers (cell) results in -ve signed integers which don't represent valid printable characters.
eg. UTF-8 Character '中' (0xE4 0xB8 0xAD) when casted results in 0xFFFFFFE4 0xFFFFFFB8 0xFFFFFFAD which are not valid printable characters.
* Fix the modules/mysqlx/AMBuilder not building on Visual Studio 2015
Applied the same fix as in:
Fix building of MySQL DBI extension on VS 2015+ by psychonic:
94383d995d
* Removed the msvc15hack.c from the sources when not necessary.
This is bad, what it currently means `Votacao Iniciada` (Votação Iniciada) in english is `The voting has been started`, instead of `Start voting`.
The translator translate it back as `Voting Started`.
Translator link: https://translate.google.com.br/#pt/en/Vota%C3%A7%C3%A3o%20Iniciada
* Revert "Extend "read_argv" native"
This reverts commit aaa2934595.
This broke binary compatibility with either older, already compiled
plugins, or newly compiled plugins if you forgot to update .inc headers.
This happened because read_argv used to receive maxlen by value, and
after
this commit it receives it by reference. This causes read_argv either
to fail, or worse, to buffer overflow, resulting in a security vulnerability.
Newly introduced functionality for read_argv should be added with a new,
separate native.
* Add "read_argv_int" & "read_argv_float" natives
* Fix floatround overflow
floatround would overflow for floats greater than 2^30 because internally
it would double the number (therefore anything greater than 2^30 results
in something greater than 2^31 which would cause overflow of course)
floatround behaviour is left exactly identical otherwise (although I find
it very weird and wrong to deliberately avoid banker's rounding, it would
be a bad idea to change this behaviour due to compatibility)
Remember to reassemble amxexecn and amxjitsn
* Update the compiled object files