Commit Graph

40 Commits

Author SHA1 Message Date
Vincent Herbet
ab854ec035 Improve UTF-8 support in some natives (bug 6475) (#407)
* Compile as static library, update AMBuildScript and link to core

* Update VS project files to include the library

* Add UTF-8 Rewind library (v1.5.1) to third_party directory

* Update ACKNOWLEDGEMENTS.txt

* Move AMXX buffer in its own function

* Move constants from string.inc to string_const.inc and update project files

* Move stocks from string.inc to string_stocks.inc and update project files

* Improve UTF-8 support in containi() and update documentation

* Improve UTF-8 support in strcmp() and update documentation

* Improve UTF-8 support in strfind() and update documentation

Worth to be noted that this native with ignorecase set was not working properly. So broken that no one reported the issue.
This adds also a safety check for "pos" parameter to not go < 0.

* Improve UTF-8 support in strncmp() and update documentation

* Improve UTF-8 support in equali() and update documentation

* Add an option to some UTF-8 Rewind functions for avoiding invalid data to be replaced

By default it replaces any invalid byte or sequence of bytes by 0xFFFD (3 bytes). It can be problematic when the input buffer is not changed (from a plugin) and that some natives need to calculate a position from the converted string. With such replacement, the position is displaced due the final string length being larger.

This compiles the library as C++, because I added some silly param with a default default value which is not supported by C.

* Improve UTF-8 support in replace_string/ex() and update documentation

* Add is_string_category() and update documentation

* Update a little testsuite plugin (and fix linux compilation)

* Add mb_strotolower/upper() and update documentation

* Add mb_ucfirst() and update documentation

* Add mb_strtotile() and update documentation

* Improve UTF-8 support in get_players() and find_player() with name/case insenstive flags set

* Fix KliPPy's complain
2017-08-05 10:32:16 +02:00
KliPPy
2863455185 Add menu pagination callback (#420)
* Add menu pagination callback

* Update test plugin
2017-04-04 10:29:18 +02:00
KliPPy
828e74e6c3 Add RequestFrame() native (#412)
* Add RequestFrame() native

* Change underlying container from CQueue to ke::Deque

* CFrameAction: Fix PackageScript and MSVC project, wrap CFrameAction in AutoPtr
2017-02-23 12:55:53 +01:00
Arkshine
6190582f16 Fix missing master.games.txt reference in PackageScript 2015-12-05 18:43:33 +01:00
Arkshine
d3e5957215 Cstrike: Add cstrike_const.inc and move existing constants there 2015-11-03 10:45:44 +01:00
Arkshine
f31e0e405f Add gamerules offsets for supported mods 2015-11-02 20:10:34 +01:00
Arkshine
ed4faf7c11 Fix player not being internally disconnected in some situation + add client_disconnected forward 2015-08-14 00:08:50 +02:00
Arkshine
222b1c651b Gamedata: Add HLDM entities classes 2015-08-09 16:25:18 +02:00
Arkshine
0baa7d47b6 Gamedata: Add Opfor entites offsets 2015-08-07 20:36:55 +02:00
Arkshine
c80d6e5284 Gamedata: Add TFC entites offsets 2015-08-07 20:20:55 +02:00
Arkshine
ad63658f9e Gamedata: Add DoD entities offsets 2015-08-07 20:13:54 +02:00
Arkshine
ffb9bc92d6 Gamedata: Fix Master and PackageScript to reflect changes 2015-08-07 20:01:11 +02:00
Arkshine
672c519378 Gamedata: Move more CS classes not linked an entity to /others.games 2015-08-07 18:06:32 +02:00
Arkshine
cfd8526961 Gamedata: Move CS hostage-related classes not linked to an entity to /hostages.games 2015-08-07 18:02:54 +02:00
Arkshine
864e0b88eb Cstrike: Move all hardcoded datas to its own gamedata files 2015-07-14 19:44:01 +02:00
Arkshine
f38c726faf Gameconfig: Add game configs natives 2015-07-11 13:16:45 +02:00
xPaw
fddebce313 Update modules paths 2015-03-13 15:23:05 +02:00
HttrckCldHKS
c071f53f2c Add new hashers and new natives
Replace the only hasher called MD5 with the ones listed below.

(+) CRC32, MD5, SHA1, SHA256, SHA3 224 BIT, SHA3 256 BIT, SHA3 384 BIT,
SHA3 512 BIT, Keccak 224 BIT, Keccak 256 BIT, Keccak 384 BIT and Keccak
512 BIT.

Add the natives listed below.

(+) hash_string(const string[], hashType:type, output[], const
outputSize)
(+) hash_file(const fileName, hashType:type, output[], const outputSize)
(+) is_arkshine_a_doctor() :  Hidden native, but a sign of recompense
for him being very active since 1.8.3 version of AMX Mod X
(+) get_system_endianness() :  Checks if the system is currently Big
Endian or Little Endian.

Add the following Enum.

(+) hashType {}
(+) sysEndianness {}

Deprecate the following natives.

(-) amx_md5()
(-) amx_md5_file()

It has been tested on Windows and Linux. The sanity checks seems to be
properly working, so no worries about them.

These are useful if people are using Sockets, cURLs or MySQLs in order
to compare hashes of different files On-line for further investigation.
You are not able to check if the files are older or newer, but you can
see if the content is different (Hash Checksum mismatch).

I'm glad I did this. Thanks to
2015-02-16 14:39:45 +02:00
Arkshine
faeaf9259e Cvars: Add OnCvarChanged global forward
I really tried to use "cvar_changed" as name, but it bothered me so much to look that weird I could not keep it.
2015-01-23 19:05:31 +01:00
Arkshine
7317f1d233 Update PackageScript. 2014-08-06 09:17:48 +02:00
Arkshine
0cf5a2e12f Expose ParseFile_INI to API.
Some minor changes have been made in parser:

- Added ReadINI_ParseStart and ReadINI_ParseEnd call.
- Function returns SMCResult instead of bool. To avoid unecessary complexity and duplicating natives, this feels more appropriate to let these functions to share some SMCResult and SMCParse constants. Since properly documented, this should be ok.
- Made sure curtok is set to 0 when ptr_val is null, otherwise unexpected value would be passed into the forward.
2014-08-06 09:17:45 +02:00
Arkshine
0d59209e4c Geoip: Replace GeoIP.dat by GeoLite2-Country.mmdb. 2014-08-05 20:08:17 +02:00
Scott Ehlert
d1122b982c Ship license files with builds. 2014-08-04 14:40:01 -05:00
Vincent Herbet
30b0585447 Fix missing cellstack.inc file. 2014-08-02 18:42:18 +02:00
Arkshine
e7b7506efa Introduce API to create Stack structures 2014-08-01 23:14:44 +02:00
xPaw
a6f10efd03 splitext didn't work 2014-07-27 12:11:44 +03:00
xPaw
868be37007 Remove svn_version.inc from package script 2014-07-27 11:09:15 +03:00
xPaw
1c32e7284b Fix package script copying wrong amxmodx_version file to include folder 2014-07-27 11:02:06 +03:00
Arkshine
939a724b1a Regex: Add regex_replace native. 2014-07-17 11:21:06 +02:00
xPaw
e3e3d8a255 🔥 Remove NS2AMX utility backwards compatibility 2014-06-05 17:18:25 +03:00
xPaw
ae9315ad48 🔥 Remove amxmod compatability
This doesn't remove anything from the engine
2014-06-05 13:48:56 +03:00
Scott Ehlert
f69a8e66c6 Don't copy debug files into package directory.
Debugging symbols should be present in the binaries by default now.
2014-05-17 14:57:57 -05:00
Arkshine
a86ca1491f Add new string natives/stocks, make some UTF-8 safe (bug 6110, r=ds) 2014-04-30 09:33:03 +02:00
Arkshine
e81e7bee13 Fix missing DataPacks plugin test and include file in PackageScript (thanks GuskiS) 2014-04-12 20:33:55 +02:00
David Anderson
aa46469878 Add new variants of strbreak, which is too broken to use. 2014-02-09 23:40:45 -08:00
David Anderson
f0f319a418 Add WinCSX to AMBuild scripts.
Former-commit-id: eca50829ae45c9d7bad2f0c79a95ba7a1e35c63e
2014-02-08 21:16:41 -08:00
David Anderson
1f15fdd6cb Update versioning for AMBuild and git.
Former-commit-id: ea473061ef1f3b52716decfb4dafcfd66167730d
2014-02-08 20:37:33 -08:00
David Anderson
59c3e271db Remove all files related to SVN versioning.
Former-commit-id: 57a320bfe97fcf87cf2adc6a5ee3ae07814f798d
2014-02-08 16:26:40 -08:00
David Anderson
8f51d87826 Get PackageScript release-equivalent on Linux.
Former-commit-id: 15cfb571fbfb37281e1465a013305ff6267b7dce
2014-02-08 14:29:15 -08:00
David Anderson
e57845dd50 Add the PackageScript.
Former-commit-id: 8fe47f62d5ac5426fd1b718f4339c9add70e9fa5
2014-02-08 13:46:34 -08:00