@amxts/core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +162 -0
- package/README.ru.md +162 -0
- package/amxmodx/base/include/amxconst.inc +594 -0
- package/amxmodx/base/include/amxmisc.inc +902 -0
- package/amxmodx/base/include/amxmodx.inc +3447 -0
- package/amxmodx/base/include/amxmodx_version.inc +20 -0
- package/amxmodx/base/include/cellarray.inc +525 -0
- package/amxmodx/base/include/cellstack.inc +166 -0
- package/amxmodx/base/include/celltrie.inc +412 -0
- package/amxmodx/base/include/core.inc +202 -0
- package/amxmodx/base/include/csstats.inc +298 -0
- package/amxmodx/base/include/csstats_const.inc +29 -0
- package/amxmodx/base/include/cstrike.inc +1287 -0
- package/amxmodx/base/include/cstrike_const.inc +521 -0
- package/amxmodx/base/include/csx.inc +259 -0
- package/amxmodx/base/include/cvars.inc +547 -0
- package/amxmodx/base/include/datapack.inc +161 -0
- package/amxmodx/base/include/dbi.inc +154 -0
- package/amxmodx/base/include/dodconst.inc +152 -0
- package/amxmodx/base/include/dodfun.inc +152 -0
- package/amxmodx/base/include/dodstats.inc +69 -0
- package/amxmodx/base/include/dodx.inc +161 -0
- package/amxmodx/base/include/engine.inc +1343 -0
- package/amxmodx/base/include/engine_const.inc +310 -0
- package/amxmodx/base/include/engine_stocks.inc +248 -0
- package/amxmodx/base/include/esf.inc +70 -0
- package/amxmodx/base/include/esf_const.inc +74 -0
- package/amxmodx/base/include/fakemeta.inc +1127 -0
- package/amxmodx/base/include/fakemeta_const.inc +793 -0
- package/amxmodx/base/include/fakemeta_stocks.inc +395 -0
- package/amxmodx/base/include/fakemeta_util.inc +882 -0
- package/amxmodx/base/include/file.inc +666 -0
- package/amxmodx/base/include/float.inc +422 -0
- package/amxmodx/base/include/fun.inc +333 -0
- package/amxmodx/base/include/gameconfig.inc +93 -0
- package/amxmodx/base/include/geoip.inc +264 -0
- package/amxmodx/base/include/ham_const.inc +4352 -0
- package/amxmodx/base/include/hamsandwich.inc +439 -0
- package/amxmodx/base/include/hlsdk_const.inc +808 -0
- package/amxmodx/base/include/json.inc +777 -0
- package/amxmodx/base/include/lang.inc +119 -0
- package/amxmodx/base/include/message_const.inc +1130 -0
- package/amxmodx/base/include/message_stocks.inc +161 -0
- package/amxmodx/base/include/messages.inc +604 -0
- package/amxmodx/base/include/newmenus.inc +387 -0
- package/amxmodx/base/include/ns.inc +754 -0
- package/amxmodx/base/include/ns_const.inc +196 -0
- package/amxmodx/base/include/nvault.inc +154 -0
- package/amxmodx/base/include/regex.inc +348 -0
- package/amxmodx/base/include/sockets.inc +183 -0
- package/amxmodx/base/include/sorting.inc +107 -0
- package/amxmodx/base/include/sqlx.inc +582 -0
- package/amxmodx/base/include/string.inc +786 -0
- package/amxmodx/base/include/string_const.inc +156 -0
- package/amxmodx/base/include/string_stocks.inc +325 -0
- package/amxmodx/base/include/textparse_ini.inc +214 -0
- package/amxmodx/base/include/textparse_smc.inc +261 -0
- package/amxmodx/base/include/tfcconst.inc +84 -0
- package/amxmodx/base/include/tfcstats.inc +62 -0
- package/amxmodx/base/include/tfcx.inc +148 -0
- package/amxmodx/base/include/time.inc +118 -0
- package/amxmodx/base/include/tsconst.inc +154 -0
- package/amxmodx/base/include/tsfun.inc +198 -0
- package/amxmodx/base/include/tsstats.inc +65 -0
- package/amxmodx/base/include/tsx.inc +88 -0
- package/amxmodx/base/include/vault.inc +60 -0
- package/amxmodx/base/include/vector.inc +131 -0
- package/amxmodx/base/include/xs.inc +1570 -0
- package/as/amxts.d.ts +153 -0
- package/as/constants.ts +4730 -0
- package/as/effects.ts +1449 -0
- package/as/entities.ts +5482 -0
- package/as/events.ts +3054 -0
- package/as/facade.ts +4639 -0
- package/as/flags.ts +299 -0
- package/as/fs.ts +287 -0
- package/as/hooks.ts +18536 -0
- package/as/kit.ts +25 -0
- package/as/lib/check.ts +86 -0
- package/as/modules/http.ts +184 -0
- package/as/natives.ts +11845 -0
- package/as/os.ts +30 -0
- package/as/promise.ts +1392 -0
- package/as/promise.types.d.ts +82 -0
- package/as/remote.ts +288 -0
- package/as/tsconfig.json +22 -0
- package/as/vector.ts +65 -0
- package/bin/amxts.mjs +10 -0
- package/includes/menu_core.inc +355 -0
- package/includes/order.txt +54 -0
- package/includes/sources.json +27 -0
- package/includes/universal_config.inc +355 -0
- package/lint/oxlint-plugin.mjs +77 -0
- package/node_modules/assemblyscript/LICENSE +201 -0
- package/node_modules/assemblyscript/NOTICE +93 -0
- package/node_modules/assemblyscript/package.json +63 -0
- package/node_modules/assemblyscript/std/README.md +6 -0
- package/node_modules/assemblyscript/std/assembly/array.ts +526 -0
- package/node_modules/assemblyscript/std/assembly/arraybuffer.ts +77 -0
- package/node_modules/assemblyscript/std/assembly/atomics.ts +127 -0
- package/node_modules/assemblyscript/std/assembly/bindings/asyncify.ts +16 -0
- package/node_modules/assemblyscript/std/assembly/bindings/dom.ts +291 -0
- package/node_modules/assemblyscript/std/assembly/bindings/node.ts +6 -0
- package/node_modules/assemblyscript/std/assembly/builtins.ts +2631 -0
- package/node_modules/assemblyscript/std/assembly/compat.ts +2 -0
- package/node_modules/assemblyscript/std/assembly/console.ts +42 -0
- package/node_modules/assemblyscript/std/assembly/crypto.ts +9 -0
- package/node_modules/assemblyscript/std/assembly/dataview.ts +181 -0
- package/node_modules/assemblyscript/std/assembly/date.ts +373 -0
- package/node_modules/assemblyscript/std/assembly/diagnostics.ts +11 -0
- package/node_modules/assemblyscript/std/assembly/error.ts +44 -0
- package/node_modules/assemblyscript/std/assembly/function.ts +38 -0
- package/node_modules/assemblyscript/std/assembly/index.d.ts +2822 -0
- package/node_modules/assemblyscript/std/assembly/iterator.ts +35 -0
- package/node_modules/assemblyscript/std/assembly/map.ts +260 -0
- package/node_modules/assemblyscript/std/assembly/math.ts +3289 -0
- package/node_modules/assemblyscript/std/assembly/memory.ts +123 -0
- package/node_modules/assemblyscript/std/assembly/number.ts +388 -0
- package/node_modules/assemblyscript/std/assembly/object.ts +36 -0
- package/node_modules/assemblyscript/std/assembly/performance.ts +9 -0
- package/node_modules/assemblyscript/std/assembly/polyfills.ts +27 -0
- package/node_modules/assemblyscript/std/assembly/process.ts +50 -0
- package/node_modules/assemblyscript/std/assembly/reference.ts +48 -0
- package/node_modules/assemblyscript/std/assembly/regexp.ts +12 -0
- package/node_modules/assemblyscript/std/assembly/rt/README.md +83 -0
- package/node_modules/assemblyscript/std/assembly/rt/common.ts +81 -0
- package/node_modules/assemblyscript/std/assembly/rt/index-incremental.ts +2 -0
- package/node_modules/assemblyscript/std/assembly/rt/index-minimal.ts +2 -0
- package/node_modules/assemblyscript/std/assembly/rt/index-stub.ts +1 -0
- package/node_modules/assemblyscript/std/assembly/rt/index.d.ts +37 -0
- package/node_modules/assemblyscript/std/assembly/rt/itcms.ts +419 -0
- package/node_modules/assemblyscript/std/assembly/rt/rtrace.ts +15 -0
- package/node_modules/assemblyscript/std/assembly/rt/stub.ts +133 -0
- package/node_modules/assemblyscript/std/assembly/rt/tcms.ts +254 -0
- package/node_modules/assemblyscript/std/assembly/rt/tlsf.ts +592 -0
- package/node_modules/assemblyscript/std/assembly/rt.ts +87 -0
- package/node_modules/assemblyscript/std/assembly/set.ts +220 -0
- package/node_modules/assemblyscript/std/assembly/shared/feature.ts +65 -0
- package/node_modules/assemblyscript/std/assembly/shared/runtime.ts +11 -0
- package/node_modules/assemblyscript/std/assembly/shared/target.ts +11 -0
- package/node_modules/assemblyscript/std/assembly/shared/tsconfig.json +11 -0
- package/node_modules/assemblyscript/std/assembly/shared/typeinfo.ts +72 -0
- package/node_modules/assemblyscript/std/assembly/staticarray.ts +401 -0
- package/node_modules/assemblyscript/std/assembly/string.ts +847 -0
- package/node_modules/assemblyscript/std/assembly/symbol.ts +114 -0
- package/node_modules/assemblyscript/std/assembly/table.ts +16 -0
- package/node_modules/assemblyscript/std/assembly/tsconfig.json +6 -0
- package/node_modules/assemblyscript/std/assembly/typedarray.ts +1945 -0
- package/node_modules/assemblyscript/std/assembly/uri.ts +17 -0
- package/node_modules/assemblyscript/std/assembly/util/bytes.ts +107 -0
- package/node_modules/assemblyscript/std/assembly/util/casemap.ts +497 -0
- package/node_modules/assemblyscript/std/assembly/util/error.ts +54 -0
- package/node_modules/assemblyscript/std/assembly/util/hash.ts +117 -0
- package/node_modules/assemblyscript/std/assembly/util/math.ts +1922 -0
- package/node_modules/assemblyscript/std/assembly/util/memory.ts +290 -0
- package/node_modules/assemblyscript/std/assembly/util/number.ts +873 -0
- package/node_modules/assemblyscript/std/assembly/util/sort.ts +313 -0
- package/node_modules/assemblyscript/std/assembly/util/string.ts +1202 -0
- package/node_modules/assemblyscript/std/assembly/util/uri.ts +275 -0
- package/node_modules/assemblyscript/std/assembly/vector.ts +4 -0
- package/node_modules/assemblyscript/std/assembly.json +16 -0
- package/node_modules/assemblyscript/std/portable/index.d.ts +462 -0
- package/node_modules/assemblyscript/std/portable/index.js +416 -0
- package/node_modules/assemblyscript/std/portable.json +11 -0
- package/node_modules/assemblyscript/std/types/assembly/index.d.ts +1 -0
- package/node_modules/assemblyscript/std/types/assembly/package.json +3 -0
- package/node_modules/assemblyscript/std/types/portable/index.d.ts +1 -0
- package/node_modules/assemblyscript/std/types/portable/package.json +3 -0
- package/node_modules/assemblyscript/tsconfig-base.json +13 -0
- package/package.json +112 -0
- package/runtime/deps/assemblyscript/LICENSE +201 -0
- package/runtime/deps/assemblyscript/NOTICE +93 -0
- package/runtime/deps/assemblyscript/bin/asc.js +35 -0
- package/runtime/deps/assemblyscript/dist/asc.js +25035 -0
- package/runtime/deps/assemblyscript/dist/assemblyscript.js +337 -0
- package/runtime/deps/assemblyscript/node_modules/binaryen/LICENSE +201 -0
- package/runtime/deps/assemblyscript/node_modules/binaryen/index.js +28905 -0
- package/runtime/deps/assemblyscript/node_modules/binaryen/package.json +50 -0
- package/runtime/deps/assemblyscript/node_modules/long/LICENSE +202 -0
- package/runtime/deps/assemblyscript/node_modules/long/index.js +1581 -0
- package/runtime/deps/assemblyscript/node_modules/long/package.json +58 -0
- package/runtime/deps/assemblyscript/package.json +114 -0
- package/runtime/host/amxts.inc +85 -0
- package/runtime/licenses/AMXX-LICENSE.txt +34 -0
- package/runtime/licenses/AssemblyScript-LICENSE +201 -0
- package/runtime/licenses/AssemblyScript-NOTICE +93 -0
- package/runtime/licenses/Binaryen-LICENSE +201 -0
- package/runtime/licenses/Bun-LICENSE.md +84 -0
- package/runtime/licenses/GPL-3.0.txt +674 -0
- package/runtime/licenses/LLVM-LICENSE.TXT +279 -0
- package/runtime/licenses/README.md +25 -0
- package/runtime/licenses/WAMR-LICENSE +219 -0
- package/runtime/natives.txt +1095 -0
- package/runtime/patches/README.md +59 -0
- package/runtime/patches/assemblyscript-0.28.20-amxts.patch +14174 -0
- package/runtime/patches/wamr-2.4.5-amxts.patch +364 -0
- package/scripts/apply-docs.ts +508 -0
- package/scripts/asc.ts +27 -0
- package/scripts/auto-imports.ts +258 -0
- package/scripts/build-wasm.ts +595 -0
- package/scripts/check.ts +93 -0
- package/scripts/compile-cache.ts +179 -0
- package/scripts/compile.ts +401 -0
- package/scripts/docker-server.ts +73 -0
- package/scripts/docs/as/amxts.ts +210 -0
- package/scripts/docs/as/effects.ts +1684 -0
- package/scripts/docs/as/facade.ts +3302 -0
- package/scripts/docs/as/fs.ts +173 -0
- package/scripts/docs/as/lib/check.ts +68 -0
- package/scripts/docs/as/modules/http.ts +66 -0
- package/scripts/docs/as/os.ts +16 -0
- package/scripts/docs/as/promise.ts +132 -0
- package/scripts/docs/as/promise.types.ts +63 -0
- package/scripts/docs/as/vector.ts +48 -0
- package/scripts/docs/entities.ts +2338 -0
- package/scripts/docs/events.ts +245 -0
- package/scripts/docs/game.ts +497 -0
- package/scripts/docs/messages.ts +148 -0
- package/scripts/file-contents.ts +74 -0
- package/scripts/includes.ts +134 -0
- package/scripts/player-fields.ts +866 -0
- package/scripts/plugin-cache.ts +92 -0
- package/scripts/plugin-natives.ts +1157 -0
- package/scripts/prebuilt.ts +268 -0
- package/scripts/prepare.ts +134 -0
- package/scripts/project.ts +973 -0
- package/scripts/run.ts +28 -0
- package/scripts/shared-modules.ts +906 -0
- package/scripts/system.ts +33 -0
- package/scripts/tracked-fs.ts +115 -0
- package/scripts/typed-configs.ts +788 -0
- package/scripts/ui.ts +77 -0
- package/src/cli-api.mjs +175 -0
- package/src/parser/include-parser.ts +506 -0
- package/src/system.mjs +155 -0
- package/src/testing/compile-cache.ts +31 -0
- package/src/testing/compile.ts +222 -0
- package/src/testing/coroutines.ts +191 -0
- package/src/testing/index.ts +39 -0
- package/src/testing/kits.ts +55 -0
- package/src/testing/memory.ts +125 -0
- package/src/testing/natives.ts +925 -0
- package/src/testing/server.ts +1874 -0
- package/src/testing/setup.ts +63 -0
- package/src/testing/tables.ts +139 -0
- package/src/types.ts +51 -0
|
@@ -0,0 +1,422 @@
|
|
|
1
|
+
/* Float arithmetic
|
|
2
|
+
*
|
|
3
|
+
* (c) Copyright 1999, Artran, Inc.
|
|
4
|
+
* Written by Greg Garner (gmg@artran.com)
|
|
5
|
+
* Modified in March 2001 to include user defined
|
|
6
|
+
* operators for the floating point functions.
|
|
7
|
+
*
|
|
8
|
+
* This file is provided as is (no warranties).
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
#if defined _float_included
|
|
12
|
+
#endinput
|
|
13
|
+
#endif
|
|
14
|
+
#define _float_included
|
|
15
|
+
|
|
16
|
+
#pragma rational Float
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Different methods of rounding
|
|
20
|
+
*/
|
|
21
|
+
enum floatround_method {
|
|
22
|
+
floatround_round = 0,
|
|
23
|
+
floatround_floor,
|
|
24
|
+
floatround_ceil,
|
|
25
|
+
floatround_tozero
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Different units of measurement for angles
|
|
30
|
+
*/
|
|
31
|
+
enum anglemode {
|
|
32
|
+
radian = 0,
|
|
33
|
+
degrees,
|
|
34
|
+
grades
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Converts an integer into a floating point value.
|
|
39
|
+
*
|
|
40
|
+
* @param value Value to be converted
|
|
41
|
+
*
|
|
42
|
+
* @return Converted value
|
|
43
|
+
*/
|
|
44
|
+
native Float:float(value);
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Converts a string into a floating point value.
|
|
48
|
+
*
|
|
49
|
+
* @param string Input string to be converted
|
|
50
|
+
*
|
|
51
|
+
* @return Converted value
|
|
52
|
+
*/
|
|
53
|
+
native Float:floatstr(const string[]);
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Returns the fractional part of a floating point value
|
|
57
|
+
*
|
|
58
|
+
* @param string Floating point value to get the fractional part from
|
|
59
|
+
*
|
|
60
|
+
* @return The fractional part
|
|
61
|
+
*/
|
|
62
|
+
native Float:floatfract(Float:value);
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Rounds a floating point value to an integer value
|
|
66
|
+
*
|
|
67
|
+
* @note For the list of available rounding methods look at
|
|
68
|
+
* floatround_method enumeration.
|
|
69
|
+
*
|
|
70
|
+
* @param value Floating point value to be rounded
|
|
71
|
+
* @param method Rounding method
|
|
72
|
+
*
|
|
73
|
+
* @return Converted value
|
|
74
|
+
*/
|
|
75
|
+
native floatround(Float:value, floatround_method:method=floatround_round);
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Compares two floating point values.
|
|
79
|
+
*
|
|
80
|
+
* @param fOne First value to be compared
|
|
81
|
+
* @param fTwo Second value to be compared
|
|
82
|
+
*
|
|
83
|
+
* @return If arguments are equal, returns 0.
|
|
84
|
+
* If the first one is greater, returns 1.
|
|
85
|
+
* If the second one is greater, returns -1.
|
|
86
|
+
*/
|
|
87
|
+
native floatcmp(Float:fOne, Float:fTwo);
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Returns the square root of a floating point value
|
|
91
|
+
*
|
|
92
|
+
* @note Same as floatpower(value, 0.5)
|
|
93
|
+
*
|
|
94
|
+
* @param value Floating point value to get square root from
|
|
95
|
+
*
|
|
96
|
+
* @return Square root of the input value
|
|
97
|
+
*/
|
|
98
|
+
native Float:floatsqroot(Float:value);
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Returns the value raised to the power of the exponent
|
|
102
|
+
*
|
|
103
|
+
* @param value Floating point value to be raised
|
|
104
|
+
* @param exponent The exponent
|
|
105
|
+
*
|
|
106
|
+
* @return Value raised to the power of the exponent
|
|
107
|
+
*/
|
|
108
|
+
native Float:floatpower(Float:value, Float:exponent);
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Returns the logarithm of value
|
|
112
|
+
*
|
|
113
|
+
* @param value Floating point value to calculate the logarithm for
|
|
114
|
+
* @param base The optional logarithmic base to use.
|
|
115
|
+
* Defaults to 10, or the natural logarithm
|
|
116
|
+
*
|
|
117
|
+
* @return Square root of the input value
|
|
118
|
+
*/
|
|
119
|
+
native Float:floatlog(Float:value, Float:base=10.0);
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Returns the sine of a given angle
|
|
123
|
+
*
|
|
124
|
+
* @note For available units of measurements(modes) look at the anglemode enum
|
|
125
|
+
*
|
|
126
|
+
* @param value The angle to calculate the sine from
|
|
127
|
+
* @param mode What unit of measurement is the angle specified in
|
|
128
|
+
* Defaults to radians
|
|
129
|
+
*
|
|
130
|
+
* @return The sine of a given angle
|
|
131
|
+
*/
|
|
132
|
+
native Float:floatsin(Float:value, anglemode:mode=radian);
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Returns the cosine of a given angle
|
|
136
|
+
*
|
|
137
|
+
* @note For available units of measurements(modes) look at the anglemode enum
|
|
138
|
+
*
|
|
139
|
+
* @param value The angle to calculate the cosine from
|
|
140
|
+
* @param mode What unit of measurement is the angle specified in
|
|
141
|
+
* Defaults to radians
|
|
142
|
+
*
|
|
143
|
+
* @return The cosine of a given angle
|
|
144
|
+
*/
|
|
145
|
+
native Float:floatcos(Float:value, anglemode:mode=radian);
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Returns the tangent of a given angle
|
|
149
|
+
*
|
|
150
|
+
* @note For available units of measurements(modes) look at the anglemode enum
|
|
151
|
+
*
|
|
152
|
+
* @param value The angle to calculate the tangent from
|
|
153
|
+
* @param mode What unit of measurement is the angle specified in
|
|
154
|
+
* Defaults to radians
|
|
155
|
+
*
|
|
156
|
+
* @return The tangent of a given angle
|
|
157
|
+
*/
|
|
158
|
+
native Float:floattan(Float:value, anglemode:mode=radian);
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Returns the hyperbolic sine of a given angle
|
|
162
|
+
*
|
|
163
|
+
* @note For available units of measurements(modes) look at the anglemode enum
|
|
164
|
+
*
|
|
165
|
+
* @param value The angle to calculate the hyperbolic sine from
|
|
166
|
+
* @param mode What unit of measurement is the angle specified in
|
|
167
|
+
* Defaults to radians
|
|
168
|
+
*
|
|
169
|
+
* @return The hyperbolic sine of a given angle
|
|
170
|
+
*/
|
|
171
|
+
native Float:floatsinh(Float:angle, anglemode:mode=radian);
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Returns the hyperbolic cosine of a given angle
|
|
175
|
+
*
|
|
176
|
+
* @note For available units of measurements(modes) look at the anglemode enum
|
|
177
|
+
*
|
|
178
|
+
* @param value The angle to calculate the hyperbolic cosine from
|
|
179
|
+
* @param mode What unit of measurement is the angle specified in
|
|
180
|
+
* Defaults to radians
|
|
181
|
+
*
|
|
182
|
+
* @return The hyperbolic cosine of a given angle
|
|
183
|
+
*/
|
|
184
|
+
native Float:floatcosh(Float:angle, anglemode:mode=radian);
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Returns the hyperbolic tangent of a given angle
|
|
188
|
+
*
|
|
189
|
+
* @note For available units of measurements(modes) look at the anglemode enum
|
|
190
|
+
*
|
|
191
|
+
* @param value The angle to calculate the hyperbolic tangent from
|
|
192
|
+
* @param mode What unit of measurement is the angle specified in
|
|
193
|
+
* Defaults to radians
|
|
194
|
+
*
|
|
195
|
+
* @return The hyperbolic tangent of a given angle
|
|
196
|
+
*/
|
|
197
|
+
native Float:floattanh(Float:angle, anglemode:mode=radian);
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Returns the absolute value of a floating point value
|
|
201
|
+
*
|
|
202
|
+
* @param value The floating point value to get the absolute value from
|
|
203
|
+
*
|
|
204
|
+
* @return The absolute value
|
|
205
|
+
*/
|
|
206
|
+
native Float:floatabs(Float:value);
|
|
207
|
+
|
|
208
|
+
/* Return the angle of a sine, cosine or tangent.
|
|
209
|
+
* The output angle may be in radians, degrees, or grades. */
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Returns the angle of the given tangent
|
|
213
|
+
*
|
|
214
|
+
* @note For available units of measurements(modes) look at the anglemode enum
|
|
215
|
+
*
|
|
216
|
+
* @param value The tangent to calculate the angle from
|
|
217
|
+
* @param mode What unit of measurement should the output angle be in
|
|
218
|
+
*
|
|
219
|
+
* @return The angle of a tangent
|
|
220
|
+
*/
|
|
221
|
+
native Float:floatatan(Float:angle, {anglemode,_}:radix);
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Returns the angle of the given cosine
|
|
225
|
+
*
|
|
226
|
+
* @note For available units of measurements(modes) look at the anglemode enum
|
|
227
|
+
*
|
|
228
|
+
* @param value The cosine to calculate the angle from
|
|
229
|
+
* @param mode What unit of measurement should the output angle be in
|
|
230
|
+
*
|
|
231
|
+
* @return The angle of a cosine
|
|
232
|
+
*/
|
|
233
|
+
native Float:floatacos(Float:angle, {anglemode,_}:radix);
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* Returns the angle of the given sine
|
|
237
|
+
*
|
|
238
|
+
* @note For available units of measurements(modes) look at the anglemode enum
|
|
239
|
+
*
|
|
240
|
+
* @param value The sine to calculate the angle from
|
|
241
|
+
* @param mode What unit of measurement should the output angle be in
|
|
242
|
+
*
|
|
243
|
+
* @return The angle of a sine
|
|
244
|
+
*/
|
|
245
|
+
native Float:floatasin(Float:angle, {anglemode,_}:radix);
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Computes the principal value of arctangent of y/x
|
|
249
|
+
*
|
|
250
|
+
* @note Someone should verify this native, not sure what it actually does.
|
|
251
|
+
* @note For available units of measurements(modes) look at the anglemode enum
|
|
252
|
+
*
|
|
253
|
+
* @param x Value representing the proportion of the x-coordinate.
|
|
254
|
+
* @param y Value representing the proportion of the x-coordinate.
|
|
255
|
+
* @param mode What unit of measurement should the output angle be in
|
|
256
|
+
*
|
|
257
|
+
* @return Arctangent of y/x
|
|
258
|
+
*/
|
|
259
|
+
native Float:floatatan2(Float:x, Float:y, {anglemode,_}:radix);
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
/* Multiply two floats together */
|
|
264
|
+
native Float:floatmul(Float:oper1, Float:oper2);
|
|
265
|
+
|
|
266
|
+
/* Divide the dividend float by the divisor float */
|
|
267
|
+
native Float:floatdiv(Float:dividend, Float:divisor);
|
|
268
|
+
|
|
269
|
+
/* Add two floats together */
|
|
270
|
+
native Float:floatadd(Float:dividend, Float:divisor);
|
|
271
|
+
|
|
272
|
+
/* Subtract oper2 float from oper1 float */
|
|
273
|
+
native Float:floatsub(Float:oper1, Float:oper2);
|
|
274
|
+
|
|
275
|
+
/* user defined operators */
|
|
276
|
+
native Float:operator*(Float:oper1, Float:oper2) = floatmul;
|
|
277
|
+
native Float:operator/(Float:oper1, Float:oper2) = floatdiv;
|
|
278
|
+
native Float:operator+(Float:oper1, Float:oper2) = floatadd;
|
|
279
|
+
native Float:operator-(Float:oper1, Float:oper2) = floatsub;
|
|
280
|
+
|
|
281
|
+
stock Float:operator++(Float:oper)
|
|
282
|
+
return oper+1.0;
|
|
283
|
+
|
|
284
|
+
stock Float:operator--(Float:oper)
|
|
285
|
+
return oper-1.0;
|
|
286
|
+
|
|
287
|
+
stock Float:operator-(Float:oper)
|
|
288
|
+
return oper^Float:cellmin; /* IEEE values are sign/magnitude */
|
|
289
|
+
|
|
290
|
+
stock Float:operator*(Float:oper1, oper2)
|
|
291
|
+
return floatmul(oper1, float(oper2)); /* "*" is commutative */
|
|
292
|
+
|
|
293
|
+
stock Float:operator/(Float:oper1, oper2)
|
|
294
|
+
return floatdiv(oper1, float(oper2));
|
|
295
|
+
|
|
296
|
+
stock Float:operator/(oper1, Float:oper2)
|
|
297
|
+
return floatdiv(float(oper1), oper2);
|
|
298
|
+
|
|
299
|
+
stock Float:operator+(Float:oper1, oper2)
|
|
300
|
+
return floatadd(oper1, float(oper2)); /* "+" is commutative */
|
|
301
|
+
|
|
302
|
+
stock Float:operator-(Float:oper1, oper2)
|
|
303
|
+
return floatsub(oper1, float(oper2));
|
|
304
|
+
|
|
305
|
+
stock Float:operator-(oper1, Float:oper2)
|
|
306
|
+
return floatsub(float(oper1), oper2);
|
|
307
|
+
|
|
308
|
+
stock bool:operator==(Float:oper1, Float:oper2)
|
|
309
|
+
return floatcmp(oper1, oper2) == 0;
|
|
310
|
+
|
|
311
|
+
stock bool:operator==(Float:oper1, oper2)
|
|
312
|
+
return floatcmp(oper1, float(oper2)) == 0; /* "==" is commutative */
|
|
313
|
+
|
|
314
|
+
stock bool:operator!=(Float:oper1, Float:oper2)
|
|
315
|
+
return floatcmp(oper1, oper2) != 0;
|
|
316
|
+
|
|
317
|
+
stock bool:operator!=(Float:oper1, oper2)
|
|
318
|
+
return floatcmp(oper1, float(oper2)) != 0; /* "==" is commutative */
|
|
319
|
+
|
|
320
|
+
stock bool:operator>(Float:oper1, Float:oper2)
|
|
321
|
+
return floatcmp(oper1, oper2) > 0;
|
|
322
|
+
|
|
323
|
+
stock bool:operator>(Float:oper1, oper2)
|
|
324
|
+
return floatcmp(oper1, float(oper2)) > 0;
|
|
325
|
+
|
|
326
|
+
stock bool:operator>(oper1, Float:oper2)
|
|
327
|
+
return floatcmp(float(oper1), oper2) > 0;
|
|
328
|
+
|
|
329
|
+
stock bool:operator>=(Float:oper1, Float:oper2)
|
|
330
|
+
return floatcmp(oper1, oper2) >= 0;
|
|
331
|
+
|
|
332
|
+
stock bool:operator>=(Float:oper1, oper2)
|
|
333
|
+
return floatcmp(oper1, float(oper2)) >= 0;
|
|
334
|
+
|
|
335
|
+
stock bool:operator>=(oper1, Float:oper2)
|
|
336
|
+
return floatcmp(float(oper1), oper2) >= 0;
|
|
337
|
+
|
|
338
|
+
stock bool:operator<(Float:oper1, Float:oper2)
|
|
339
|
+
return floatcmp(oper1, oper2) < 0;
|
|
340
|
+
|
|
341
|
+
stock bool:operator<(Float:oper1, oper2)
|
|
342
|
+
return floatcmp(oper1, float(oper2)) < 0;
|
|
343
|
+
|
|
344
|
+
stock bool:operator<(oper1, Float:oper2)
|
|
345
|
+
return floatcmp(float(oper1), oper2) < 0;
|
|
346
|
+
|
|
347
|
+
stock bool:operator<=(Float:oper1, Float:oper2)
|
|
348
|
+
return floatcmp(oper1, oper2) <= 0;
|
|
349
|
+
|
|
350
|
+
stock bool:operator<=(Float:oper1, oper2)
|
|
351
|
+
return floatcmp(oper1, float(oper2)) <= 0;
|
|
352
|
+
|
|
353
|
+
stock bool:operator<=(oper1, Float:oper2)
|
|
354
|
+
return floatcmp(float(oper1), oper2) <= 0;
|
|
355
|
+
|
|
356
|
+
stock bool:operator!(Float:oper)
|
|
357
|
+
return (_:oper & ((-1)/2)) == 0; /* -1 = all bits to 1; /2 = remove most significant bit (sign)
|
|
358
|
+
works on both 32bit and 64bit systems; no constant required */
|
|
359
|
+
/* forbidden operations */
|
|
360
|
+
forward operator%(Float:oper1, Float:oper2);
|
|
361
|
+
forward operator%(Float:oper1, oper2);
|
|
362
|
+
forward operator%(oper1, Float:oper2);
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* Returns whichever value is the smaller one
|
|
367
|
+
*
|
|
368
|
+
* @param ValueA The first value
|
|
369
|
+
* @param ValueB The second value
|
|
370
|
+
*
|
|
371
|
+
* @return ValueA if it is smaller than ValueB, and vice versa
|
|
372
|
+
*/
|
|
373
|
+
stock Float:floatmin(Float:ValueA, Float:ValueB)
|
|
374
|
+
{
|
|
375
|
+
if (ValueA<=ValueB)
|
|
376
|
+
{
|
|
377
|
+
return ValueA;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
return ValueB;
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
/**
|
|
384
|
+
* Returns whichever value is the greater one
|
|
385
|
+
*
|
|
386
|
+
* @param ValueA The first value
|
|
387
|
+
* @param ValueB The second value
|
|
388
|
+
*
|
|
389
|
+
* @return ValueA if it is greater than ValueB, and vice versa
|
|
390
|
+
*/
|
|
391
|
+
stock Float:floatmax(Float:ValueA, Float:ValueB)
|
|
392
|
+
{
|
|
393
|
+
if (ValueA>=ValueB)
|
|
394
|
+
{
|
|
395
|
+
return ValueA;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
return ValueB;
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
/**
|
|
402
|
+
* Clamps a value between a minimum and a maximum floating point value
|
|
403
|
+
*
|
|
404
|
+
* @param Value The value to be clamped
|
|
405
|
+
* @param MinValue Minimum value
|
|
406
|
+
* @param MaxValue Maximum value
|
|
407
|
+
*
|
|
408
|
+
* @return The Value clamped between MinValue and MaxValue
|
|
409
|
+
*/
|
|
410
|
+
stock Float:floatclamp(Float:Value, Float:MinValue, Float:MaxValue)
|
|
411
|
+
{
|
|
412
|
+
if (Value<=MinValue)
|
|
413
|
+
{
|
|
414
|
+
return MinValue;
|
|
415
|
+
}
|
|
416
|
+
if (Value>=MaxValue)
|
|
417
|
+
{
|
|
418
|
+
return MaxValue;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
return Value;
|
|
422
|
+
}
|