@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.
Files changed (247) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +162 -0
  3. package/README.ru.md +162 -0
  4. package/amxmodx/base/include/amxconst.inc +594 -0
  5. package/amxmodx/base/include/amxmisc.inc +902 -0
  6. package/amxmodx/base/include/amxmodx.inc +3447 -0
  7. package/amxmodx/base/include/amxmodx_version.inc +20 -0
  8. package/amxmodx/base/include/cellarray.inc +525 -0
  9. package/amxmodx/base/include/cellstack.inc +166 -0
  10. package/amxmodx/base/include/celltrie.inc +412 -0
  11. package/amxmodx/base/include/core.inc +202 -0
  12. package/amxmodx/base/include/csstats.inc +298 -0
  13. package/amxmodx/base/include/csstats_const.inc +29 -0
  14. package/amxmodx/base/include/cstrike.inc +1287 -0
  15. package/amxmodx/base/include/cstrike_const.inc +521 -0
  16. package/amxmodx/base/include/csx.inc +259 -0
  17. package/amxmodx/base/include/cvars.inc +547 -0
  18. package/amxmodx/base/include/datapack.inc +161 -0
  19. package/amxmodx/base/include/dbi.inc +154 -0
  20. package/amxmodx/base/include/dodconst.inc +152 -0
  21. package/amxmodx/base/include/dodfun.inc +152 -0
  22. package/amxmodx/base/include/dodstats.inc +69 -0
  23. package/amxmodx/base/include/dodx.inc +161 -0
  24. package/amxmodx/base/include/engine.inc +1343 -0
  25. package/amxmodx/base/include/engine_const.inc +310 -0
  26. package/amxmodx/base/include/engine_stocks.inc +248 -0
  27. package/amxmodx/base/include/esf.inc +70 -0
  28. package/amxmodx/base/include/esf_const.inc +74 -0
  29. package/amxmodx/base/include/fakemeta.inc +1127 -0
  30. package/amxmodx/base/include/fakemeta_const.inc +793 -0
  31. package/amxmodx/base/include/fakemeta_stocks.inc +395 -0
  32. package/amxmodx/base/include/fakemeta_util.inc +882 -0
  33. package/amxmodx/base/include/file.inc +666 -0
  34. package/amxmodx/base/include/float.inc +422 -0
  35. package/amxmodx/base/include/fun.inc +333 -0
  36. package/amxmodx/base/include/gameconfig.inc +93 -0
  37. package/amxmodx/base/include/geoip.inc +264 -0
  38. package/amxmodx/base/include/ham_const.inc +4352 -0
  39. package/amxmodx/base/include/hamsandwich.inc +439 -0
  40. package/amxmodx/base/include/hlsdk_const.inc +808 -0
  41. package/amxmodx/base/include/json.inc +777 -0
  42. package/amxmodx/base/include/lang.inc +119 -0
  43. package/amxmodx/base/include/message_const.inc +1130 -0
  44. package/amxmodx/base/include/message_stocks.inc +161 -0
  45. package/amxmodx/base/include/messages.inc +604 -0
  46. package/amxmodx/base/include/newmenus.inc +387 -0
  47. package/amxmodx/base/include/ns.inc +754 -0
  48. package/amxmodx/base/include/ns_const.inc +196 -0
  49. package/amxmodx/base/include/nvault.inc +154 -0
  50. package/amxmodx/base/include/regex.inc +348 -0
  51. package/amxmodx/base/include/sockets.inc +183 -0
  52. package/amxmodx/base/include/sorting.inc +107 -0
  53. package/amxmodx/base/include/sqlx.inc +582 -0
  54. package/amxmodx/base/include/string.inc +786 -0
  55. package/amxmodx/base/include/string_const.inc +156 -0
  56. package/amxmodx/base/include/string_stocks.inc +325 -0
  57. package/amxmodx/base/include/textparse_ini.inc +214 -0
  58. package/amxmodx/base/include/textparse_smc.inc +261 -0
  59. package/amxmodx/base/include/tfcconst.inc +84 -0
  60. package/amxmodx/base/include/tfcstats.inc +62 -0
  61. package/amxmodx/base/include/tfcx.inc +148 -0
  62. package/amxmodx/base/include/time.inc +118 -0
  63. package/amxmodx/base/include/tsconst.inc +154 -0
  64. package/amxmodx/base/include/tsfun.inc +198 -0
  65. package/amxmodx/base/include/tsstats.inc +65 -0
  66. package/amxmodx/base/include/tsx.inc +88 -0
  67. package/amxmodx/base/include/vault.inc +60 -0
  68. package/amxmodx/base/include/vector.inc +131 -0
  69. package/amxmodx/base/include/xs.inc +1570 -0
  70. package/as/amxts.d.ts +153 -0
  71. package/as/constants.ts +4730 -0
  72. package/as/effects.ts +1449 -0
  73. package/as/entities.ts +5482 -0
  74. package/as/events.ts +3054 -0
  75. package/as/facade.ts +4639 -0
  76. package/as/flags.ts +299 -0
  77. package/as/fs.ts +287 -0
  78. package/as/hooks.ts +18536 -0
  79. package/as/kit.ts +25 -0
  80. package/as/lib/check.ts +86 -0
  81. package/as/modules/http.ts +184 -0
  82. package/as/natives.ts +11845 -0
  83. package/as/os.ts +30 -0
  84. package/as/promise.ts +1392 -0
  85. package/as/promise.types.d.ts +82 -0
  86. package/as/remote.ts +288 -0
  87. package/as/tsconfig.json +22 -0
  88. package/as/vector.ts +65 -0
  89. package/bin/amxts.mjs +10 -0
  90. package/includes/menu_core.inc +355 -0
  91. package/includes/order.txt +54 -0
  92. package/includes/sources.json +27 -0
  93. package/includes/universal_config.inc +355 -0
  94. package/lint/oxlint-plugin.mjs +77 -0
  95. package/node_modules/assemblyscript/LICENSE +201 -0
  96. package/node_modules/assemblyscript/NOTICE +93 -0
  97. package/node_modules/assemblyscript/package.json +63 -0
  98. package/node_modules/assemblyscript/std/README.md +6 -0
  99. package/node_modules/assemblyscript/std/assembly/array.ts +526 -0
  100. package/node_modules/assemblyscript/std/assembly/arraybuffer.ts +77 -0
  101. package/node_modules/assemblyscript/std/assembly/atomics.ts +127 -0
  102. package/node_modules/assemblyscript/std/assembly/bindings/asyncify.ts +16 -0
  103. package/node_modules/assemblyscript/std/assembly/bindings/dom.ts +291 -0
  104. package/node_modules/assemblyscript/std/assembly/bindings/node.ts +6 -0
  105. package/node_modules/assemblyscript/std/assembly/builtins.ts +2631 -0
  106. package/node_modules/assemblyscript/std/assembly/compat.ts +2 -0
  107. package/node_modules/assemblyscript/std/assembly/console.ts +42 -0
  108. package/node_modules/assemblyscript/std/assembly/crypto.ts +9 -0
  109. package/node_modules/assemblyscript/std/assembly/dataview.ts +181 -0
  110. package/node_modules/assemblyscript/std/assembly/date.ts +373 -0
  111. package/node_modules/assemblyscript/std/assembly/diagnostics.ts +11 -0
  112. package/node_modules/assemblyscript/std/assembly/error.ts +44 -0
  113. package/node_modules/assemblyscript/std/assembly/function.ts +38 -0
  114. package/node_modules/assemblyscript/std/assembly/index.d.ts +2822 -0
  115. package/node_modules/assemblyscript/std/assembly/iterator.ts +35 -0
  116. package/node_modules/assemblyscript/std/assembly/map.ts +260 -0
  117. package/node_modules/assemblyscript/std/assembly/math.ts +3289 -0
  118. package/node_modules/assemblyscript/std/assembly/memory.ts +123 -0
  119. package/node_modules/assemblyscript/std/assembly/number.ts +388 -0
  120. package/node_modules/assemblyscript/std/assembly/object.ts +36 -0
  121. package/node_modules/assemblyscript/std/assembly/performance.ts +9 -0
  122. package/node_modules/assemblyscript/std/assembly/polyfills.ts +27 -0
  123. package/node_modules/assemblyscript/std/assembly/process.ts +50 -0
  124. package/node_modules/assemblyscript/std/assembly/reference.ts +48 -0
  125. package/node_modules/assemblyscript/std/assembly/regexp.ts +12 -0
  126. package/node_modules/assemblyscript/std/assembly/rt/README.md +83 -0
  127. package/node_modules/assemblyscript/std/assembly/rt/common.ts +81 -0
  128. package/node_modules/assemblyscript/std/assembly/rt/index-incremental.ts +2 -0
  129. package/node_modules/assemblyscript/std/assembly/rt/index-minimal.ts +2 -0
  130. package/node_modules/assemblyscript/std/assembly/rt/index-stub.ts +1 -0
  131. package/node_modules/assemblyscript/std/assembly/rt/index.d.ts +37 -0
  132. package/node_modules/assemblyscript/std/assembly/rt/itcms.ts +419 -0
  133. package/node_modules/assemblyscript/std/assembly/rt/rtrace.ts +15 -0
  134. package/node_modules/assemblyscript/std/assembly/rt/stub.ts +133 -0
  135. package/node_modules/assemblyscript/std/assembly/rt/tcms.ts +254 -0
  136. package/node_modules/assemblyscript/std/assembly/rt/tlsf.ts +592 -0
  137. package/node_modules/assemblyscript/std/assembly/rt.ts +87 -0
  138. package/node_modules/assemblyscript/std/assembly/set.ts +220 -0
  139. package/node_modules/assemblyscript/std/assembly/shared/feature.ts +65 -0
  140. package/node_modules/assemblyscript/std/assembly/shared/runtime.ts +11 -0
  141. package/node_modules/assemblyscript/std/assembly/shared/target.ts +11 -0
  142. package/node_modules/assemblyscript/std/assembly/shared/tsconfig.json +11 -0
  143. package/node_modules/assemblyscript/std/assembly/shared/typeinfo.ts +72 -0
  144. package/node_modules/assemblyscript/std/assembly/staticarray.ts +401 -0
  145. package/node_modules/assemblyscript/std/assembly/string.ts +847 -0
  146. package/node_modules/assemblyscript/std/assembly/symbol.ts +114 -0
  147. package/node_modules/assemblyscript/std/assembly/table.ts +16 -0
  148. package/node_modules/assemblyscript/std/assembly/tsconfig.json +6 -0
  149. package/node_modules/assemblyscript/std/assembly/typedarray.ts +1945 -0
  150. package/node_modules/assemblyscript/std/assembly/uri.ts +17 -0
  151. package/node_modules/assemblyscript/std/assembly/util/bytes.ts +107 -0
  152. package/node_modules/assemblyscript/std/assembly/util/casemap.ts +497 -0
  153. package/node_modules/assemblyscript/std/assembly/util/error.ts +54 -0
  154. package/node_modules/assemblyscript/std/assembly/util/hash.ts +117 -0
  155. package/node_modules/assemblyscript/std/assembly/util/math.ts +1922 -0
  156. package/node_modules/assemblyscript/std/assembly/util/memory.ts +290 -0
  157. package/node_modules/assemblyscript/std/assembly/util/number.ts +873 -0
  158. package/node_modules/assemblyscript/std/assembly/util/sort.ts +313 -0
  159. package/node_modules/assemblyscript/std/assembly/util/string.ts +1202 -0
  160. package/node_modules/assemblyscript/std/assembly/util/uri.ts +275 -0
  161. package/node_modules/assemblyscript/std/assembly/vector.ts +4 -0
  162. package/node_modules/assemblyscript/std/assembly.json +16 -0
  163. package/node_modules/assemblyscript/std/portable/index.d.ts +462 -0
  164. package/node_modules/assemblyscript/std/portable/index.js +416 -0
  165. package/node_modules/assemblyscript/std/portable.json +11 -0
  166. package/node_modules/assemblyscript/std/types/assembly/index.d.ts +1 -0
  167. package/node_modules/assemblyscript/std/types/assembly/package.json +3 -0
  168. package/node_modules/assemblyscript/std/types/portable/index.d.ts +1 -0
  169. package/node_modules/assemblyscript/std/types/portable/package.json +3 -0
  170. package/node_modules/assemblyscript/tsconfig-base.json +13 -0
  171. package/package.json +112 -0
  172. package/runtime/deps/assemblyscript/LICENSE +201 -0
  173. package/runtime/deps/assemblyscript/NOTICE +93 -0
  174. package/runtime/deps/assemblyscript/bin/asc.js +35 -0
  175. package/runtime/deps/assemblyscript/dist/asc.js +25035 -0
  176. package/runtime/deps/assemblyscript/dist/assemblyscript.js +337 -0
  177. package/runtime/deps/assemblyscript/node_modules/binaryen/LICENSE +201 -0
  178. package/runtime/deps/assemblyscript/node_modules/binaryen/index.js +28905 -0
  179. package/runtime/deps/assemblyscript/node_modules/binaryen/package.json +50 -0
  180. package/runtime/deps/assemblyscript/node_modules/long/LICENSE +202 -0
  181. package/runtime/deps/assemblyscript/node_modules/long/index.js +1581 -0
  182. package/runtime/deps/assemblyscript/node_modules/long/package.json +58 -0
  183. package/runtime/deps/assemblyscript/package.json +114 -0
  184. package/runtime/host/amxts.inc +85 -0
  185. package/runtime/licenses/AMXX-LICENSE.txt +34 -0
  186. package/runtime/licenses/AssemblyScript-LICENSE +201 -0
  187. package/runtime/licenses/AssemblyScript-NOTICE +93 -0
  188. package/runtime/licenses/Binaryen-LICENSE +201 -0
  189. package/runtime/licenses/Bun-LICENSE.md +84 -0
  190. package/runtime/licenses/GPL-3.0.txt +674 -0
  191. package/runtime/licenses/LLVM-LICENSE.TXT +279 -0
  192. package/runtime/licenses/README.md +25 -0
  193. package/runtime/licenses/WAMR-LICENSE +219 -0
  194. package/runtime/natives.txt +1095 -0
  195. package/runtime/patches/README.md +59 -0
  196. package/runtime/patches/assemblyscript-0.28.20-amxts.patch +14174 -0
  197. package/runtime/patches/wamr-2.4.5-amxts.patch +364 -0
  198. package/scripts/apply-docs.ts +508 -0
  199. package/scripts/asc.ts +27 -0
  200. package/scripts/auto-imports.ts +258 -0
  201. package/scripts/build-wasm.ts +595 -0
  202. package/scripts/check.ts +93 -0
  203. package/scripts/compile-cache.ts +179 -0
  204. package/scripts/compile.ts +401 -0
  205. package/scripts/docker-server.ts +73 -0
  206. package/scripts/docs/as/amxts.ts +210 -0
  207. package/scripts/docs/as/effects.ts +1684 -0
  208. package/scripts/docs/as/facade.ts +3302 -0
  209. package/scripts/docs/as/fs.ts +173 -0
  210. package/scripts/docs/as/lib/check.ts +68 -0
  211. package/scripts/docs/as/modules/http.ts +66 -0
  212. package/scripts/docs/as/os.ts +16 -0
  213. package/scripts/docs/as/promise.ts +132 -0
  214. package/scripts/docs/as/promise.types.ts +63 -0
  215. package/scripts/docs/as/vector.ts +48 -0
  216. package/scripts/docs/entities.ts +2338 -0
  217. package/scripts/docs/events.ts +245 -0
  218. package/scripts/docs/game.ts +497 -0
  219. package/scripts/docs/messages.ts +148 -0
  220. package/scripts/file-contents.ts +74 -0
  221. package/scripts/includes.ts +134 -0
  222. package/scripts/player-fields.ts +866 -0
  223. package/scripts/plugin-cache.ts +92 -0
  224. package/scripts/plugin-natives.ts +1157 -0
  225. package/scripts/prebuilt.ts +268 -0
  226. package/scripts/prepare.ts +134 -0
  227. package/scripts/project.ts +973 -0
  228. package/scripts/run.ts +28 -0
  229. package/scripts/shared-modules.ts +906 -0
  230. package/scripts/system.ts +33 -0
  231. package/scripts/tracked-fs.ts +115 -0
  232. package/scripts/typed-configs.ts +788 -0
  233. package/scripts/ui.ts +77 -0
  234. package/src/cli-api.mjs +175 -0
  235. package/src/parser/include-parser.ts +506 -0
  236. package/src/system.mjs +155 -0
  237. package/src/testing/compile-cache.ts +31 -0
  238. package/src/testing/compile.ts +222 -0
  239. package/src/testing/coroutines.ts +191 -0
  240. package/src/testing/index.ts +39 -0
  241. package/src/testing/kits.ts +55 -0
  242. package/src/testing/memory.ts +125 -0
  243. package/src/testing/natives.ts +925 -0
  244. package/src/testing/server.ts +1874 -0
  245. package/src/testing/setup.ts +63 -0
  246. package/src/testing/tables.ts +139 -0
  247. package/src/types.ts +51 -0
@@ -0,0 +1,387 @@
1
+ // vim: set ts=4 sw=4 tw=99 noet:
2
+ //
3
+ // AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO").
4
+ // Copyright (C) The AMX Mod X Development Team.
5
+ //
6
+ // This software is licensed under the GNU General Public License, version 3 or higher.
7
+ // Additional exceptions apply. For full license details, see LICENSE.txt or visit:
8
+ // https://alliedmods.net/amxmodx-license
9
+
10
+ #if defined _newmenus_included
11
+ #endinput
12
+ #endif
13
+ #define _newmenus_included
14
+
15
+ /**
16
+ * @section Menu properties for using in menu_setprop
17
+ */
18
+
19
+ /**
20
+ * Menu will have an exit option (default)
21
+ */
22
+ #define MEXIT_ALL 1
23
+
24
+ /**
25
+ * Menu will have an exit option, even when pagination is disabled.
26
+ * There have to be less than 10 items in the menu or it won't appear. The exit
27
+ * option will be appended to the last item with no extra slot padding. If you
28
+ * want it in the 10th slot you have to pad it manually with menu_addblank2
29
+ */
30
+ #define MEXIT_FORCE 2
31
+
32
+ /**
33
+ * Menu will not have an exit option
34
+ */
35
+ #define MEXIT_NEVER -1
36
+
37
+ /**
38
+ * Number of items per page (param1 = number, 0=no paginating, 7=default)
39
+ */
40
+ #define MPROP_PERPAGE 1
41
+
42
+ /**
43
+ * Name of the back button (param1 = string)
44
+ */
45
+ #define MPROP_BACKNAME 2
46
+
47
+ /**
48
+ * Name of the next button (param1 = string)
49
+ */
50
+ #define MPROP_NEXTNAME 3
51
+
52
+ /**
53
+ * Name of the exit button (param1 = string)
54
+ */
55
+ #define MPROP_EXITNAME 4
56
+
57
+ /**
58
+ * Menu title text (param1 = string)
59
+ */
60
+ #define MPROP_TITLE 5
61
+
62
+ /**
63
+ * Exit functionality (param1 = number, see MEXIT constants)
64
+ */
65
+ #define MPROP_EXIT 6
66
+
67
+ /**
68
+ * Sets whether colors are not auto (param1 = number, 0=default)
69
+ */
70
+ #define MPROP_NOCOLORS 8
71
+
72
+ /**
73
+ * Color indicator to use for numbers (param1 = string, "\r"=default)
74
+ */
75
+ #define MPROP_NUMBER_COLOR 10
76
+
77
+ /**
78
+ * Function to be called on Back and Next (param1 = string)
79
+ * public function(id, status, menu); where status is either MENU_BACK or MENU_MORE
80
+ * Pass NULL_STRING to disable the callback
81
+ */
82
+ #define MPROP_PAGE_CALLBACK 11
83
+
84
+ /**
85
+ * Whether to show the page number in menu title (param1 = bool, true = default)
86
+ */
87
+ #define MPROP_SHOWPAGE 12
88
+
89
+ /**
90
+ * @deprecated
91
+ */
92
+ #define MEXIT_NORMAL 0 /* DEPRECATED, do not use (has no effect) */
93
+ #define MENUPAD_NONE 0 /* DEPRECATED, do not use (has no effect) */
94
+ #define MENUPAD_PAGE 1 /* DEPRECATED, do not use (has no effect) */
95
+ #define MPROP_ORDER 7 /* DEPRECATED, do not use (has no effect) */
96
+ #define MPROP_PADMENU 9 /* DEPRECATED, do not use (has no effect) */
97
+
98
+ /** @endsection */
99
+
100
+ /**
101
+ * Creates a new menu object.
102
+ *
103
+ * @note The handler function should be prototyped as:
104
+ *
105
+ * public <function>(id, menu, item)
106
+ * id - Client the menu is being acted upon.
107
+ * menu - Menu resource identifier.
108
+ * item - Item the client selected. If less than 0, the menu was
109
+ * cancelled and the item is a status code. menu_display
110
+ * should never be called immediately if the item is a status
111
+ * code, for re-entrancy reasons.
112
+ *
113
+ * @note The handler function should always return PLUGIN_HANDLED to block
114
+ * any old menu handlers from potentially feeding on the menu, unless
115
+ * that is the desired functionality.
116
+ *
117
+ * @param title Title the menu should use.
118
+ * @param handler Name of the handler function. The function will be invoked
119
+ * once and only once to every menu_display() call.
120
+ * @param ml If true, the menu title and items will be looked up as multilingual keys
121
+ * when the menu displays.
122
+ * @return Menu resource identifier which must be destroyed via
123
+ * menu_destroy(). All menus are destroyed when the plugin
124
+ * unloads.
125
+ * @error Function name not found.
126
+ */
127
+ native menu_create(const title[], const handler[], bool:ml = false);
128
+
129
+ /**
130
+ * Creates a menu item callback handler.
131
+ *
132
+ * @note The handler function should be prototyped as:
133
+ *
134
+ * public <function>(id, menu, item)
135
+ * id - Client index being displayed to.
136
+ * menu - Menu resource identifier.
137
+ * item - Item being drawn.
138
+ * <return> - ITEM_IGNORE to use the default functionality.
139
+ * ITEM_ENABLED to explicitly enable or ITEM_DISABLED to explicitly disable.
140
+ *
141
+ * @param function Function name.
142
+ * @return Menu callback ID.
143
+ */
144
+ native menu_makecallback(const function[]);
145
+
146
+ /**
147
+ * Adds an item to a menu.
148
+ *
149
+ * @param menu Menu resource identifier.
150
+ * @param name Item text to display.
151
+ * @param info Item info string for internal information.
152
+ * @param paccess Access required by the player viewing the menu.
153
+ * @param callback If set to a valid ID from menu_makecallback(), the
154
+ * callback will be invoked before drawing the item.
155
+ * @noreturn
156
+ * @error Invalid menu resource.
157
+ */
158
+ native menu_additem(menu, const name[], const info[]="", paccess=0, callback=-1);
159
+
160
+ /**
161
+ * Returns the number of pages in a menu.
162
+ *
163
+ * @param menu Menu resource identifier.
164
+ * @return Number of pages in the menu.
165
+ * @error Invalid menu resource.
166
+ */
167
+ native menu_pages(menu);
168
+
169
+ /**
170
+ * Returns the number of items in a menu.
171
+ *
172
+ * @param menu Menu resource identifier.
173
+ * @return Number of items in the menu.
174
+ * @error Invalid menu resource.
175
+ */
176
+ native menu_items(menu);
177
+
178
+ /**
179
+ * Displays a menu to one client. This should never be called from a handler
180
+ * when the item is less than 0 (i.e. calling this from a cancelled menu will
181
+ * result in an error).
182
+ *
183
+ * Starting with 1.8.3 this allows to specify a menu timeout similar to the
184
+ * show_menu native. If the menu exists on the client past the timeout *any*
185
+ * further action will send the MENU_TIMEOUT status code to the menu handler.
186
+ * That includes actions which would otherwise send MENU_EXIT, such as the
187
+ * client selecting an item or disconnecting and calling menu_cancel or
188
+ * menu_destroy on a live menu.
189
+ *
190
+ * @param id Client index.
191
+ * @param menu Menu resource identifier.
192
+ * @param page Page to start from (starting from 0).
193
+ * @param time If >=0 menu will timeout after this many seconds
194
+ * @noreturn
195
+ * @error Invalid menu resource or client index.
196
+ */
197
+ native menu_display(id, menu, page=0, time=-1);
198
+
199
+ /**
200
+ * Given a page on a menu and a keypress on that page, returns the item id selected.
201
+ * If the item is less than 0, a special option was chosen (such as MENU_EXIT).
202
+ *
203
+ * @param menu Menu resource identifier.
204
+ * @param page Page on the menu.
205
+ * @param key Key pressed (from 1 to 10).
206
+ * @return Item identifier, or <0 for a special selection code.
207
+ * @error Invalid menu resource.
208
+ */
209
+ native menu_find_id(menu, page, key);
210
+
211
+ /**
212
+ * Retrieves info about a menu item.
213
+ *
214
+ * @param menu Menu resource identifier.
215
+ * @param item Item identifier.
216
+ * @param access Variable to store access value.
217
+ * @param info Buffer to store item info.
218
+ * @param infolen Item info buffer length.
219
+ * @param name Buffer to store item display text.
220
+ * @param namelen Item name buffer length.
221
+ * @param callback Callback ID.
222
+ * @return 1 on success, 0 on failure.
223
+ * @error Invalid menu resource.
224
+ */
225
+ native menu_item_getinfo(menu, item, &access = 0, info[] = "", infolen = 0, name[]="", namelen=0, &callback = 0);
226
+
227
+ /**
228
+ * Sets an item's display text.
229
+ *
230
+ * @param menu Menu resource identifier.
231
+ * @param item Item identifier.
232
+ * @param name New item display text.
233
+ * @return 1 on success, 0 on failure.
234
+ * @error Invalid menu resource.
235
+ */
236
+ native menu_item_setname(menu, item, const name[]);
237
+
238
+ /**
239
+ * Sets an item's info string.
240
+ *
241
+ * @param menu Menu resource identifier.
242
+ * @param item Item identifier.
243
+ * @param info New item info string.
244
+ * @return 1 on success, 0 on failure.
245
+ * @error Invalid menu resource.
246
+ */
247
+ native menu_item_setcmd(menu, item, const info[]);
248
+
249
+ /**
250
+ * Sets an item's callback.
251
+ *
252
+ * @param menu Menu resource identifier.
253
+ * @param item Item identifier.
254
+ * @param callback New callback from menu_makecallback(), or -1 to clear.
255
+ * @return 1 on success, 0 on failure.
256
+ * @error Invalid menu resource.
257
+ */
258
+ native menu_item_setcall(menu, item, callback=-1);
259
+
260
+ /**
261
+ * Sets an item's access.
262
+ *
263
+ * @param menu Menu resource identifier.
264
+ * @param item Item identifier.
265
+ * @param access New access required by the player for access to the item.
266
+ * @return 1 on success, 0 on failure.
267
+ * @error Invalid menu resource.
268
+ */
269
+ native menu_item_setaccess(menu, item, access=0);
270
+
271
+ /**
272
+ * Destroys a menu. Player menus will be cancelled (although may still linger
273
+ * on the HUD), and future attempts to access the menu resource will result in
274
+ * an error.
275
+ *
276
+ * This must be called if you create menus dynamically, otherwise you will
277
+ * leak memory. For normal dynamic menus, you will destroy the menu in the
278
+ * handler function (remembering to handle the case of a menu being cancelled,
279
+ * it must still be destroyed).
280
+ *
281
+ * @param menu Menu resource identifier.
282
+ * @noreturn
283
+ * @error Invalid menu resource.
284
+ */
285
+ native menu_destroy(menu);
286
+
287
+ /**
288
+ * Returns information about a menu (if any) the client is currently viewing.
289
+ *
290
+ * @note If newmenu is valid, then the menu will refer to the menuid associated with
291
+ * the title. If newmenu is not valid, and the menu is valid, then the player
292
+ * is viewing a menu displayed with show_menu().
293
+ *
294
+ * @note Both may be invalid if the player is not viewing a menu.
295
+ *
296
+ * @param id Client index.
297
+ * @param menu Variable to store old menu id. If none, then <1 will be
298
+ * stored.
299
+ * @param newmenu Variable to store new menu id. If none, then -1 will be
300
+ * stored.
301
+ * @param menupage Variable to store current page of the new menu, if any.
302
+ * @return 1 if the player is viewing a menu, 0 otherwise.
303
+ * @error Invalid client.
304
+ */
305
+ native player_menu_info(id, &menu, &newmenu, &menupage=0);
306
+
307
+ /**
308
+ * Adds a blank line to a menu.
309
+ *
310
+ * @note When using slot=1 this might break your menu. To achieve this functionality
311
+ * menu_addblank2 should be used.
312
+ *
313
+ * @param menu Menu resource identifier.
314
+ * @param slot 1 (default) if the line should shift the numbering down.
315
+ * 0 if the line should be a visual shift only.
316
+ * @noreturn
317
+ * @error Invalid menu resource.
318
+ */
319
+ native menu_addblank(menu, slot=1);
320
+
321
+ /**
322
+ * Adds a text line to a menu.
323
+ *
324
+ * @note When using slot=1 this might break your menu. To achieve this functionality
325
+ * menu_addtext2 should be used.
326
+ *
327
+ * @param menu Menu resource identifier.
328
+ * @param text Text to add.
329
+ * @param slot 1 (default) if the line should shift the numbering down.
330
+ * 0 if the line should be a visual shift only.
331
+ * @noreturn
332
+ * @error Invalid menu resource.
333
+ */
334
+ native menu_addtext(menu, const text[], slot=1);
335
+
336
+ /**
337
+ * Adds a blank line to a menu, always shifting the numbering down.
338
+ *
339
+ * @note This will add a special item to create a blank line. It will affect the menu
340
+ * item count and pagination. These items can be modified later but will ignore
341
+ * access and item callback results.
342
+ *
343
+ * @param menu Menu resource identifier.
344
+ *
345
+ * @return 1 on success, 0 on failure.
346
+ * @error Invalid menu resource.
347
+ * Too many items on non-paginated menu (max is 10)
348
+ */
349
+ native menu_addblank2( menu );
350
+
351
+ /**
352
+ * Adds a text line to a menu, always shifting the numbering down.
353
+ *
354
+ * @note This will add a special item to create a blank line. It will affect the menu
355
+ * item count and pagination. These items can be modified later but will ignore
356
+ * access and item callback results.
357
+ *
358
+ * @param menu Menu resource identifier.
359
+ * @param text Text to add.
360
+ *
361
+ * @return 1 on success, 0 on failure.
362
+ * @error Invalid menu resource.
363
+ * Too many items on non-paginated menu (max is 10)
364
+ */
365
+ native menu_addtext2( menu, const text[] );
366
+
367
+ /**
368
+ * Sets a menu property.
369
+ *
370
+ * @param menu Menu resource identifier.
371
+ * @param prop MPROP_ constant.
372
+ * @param ... Property parameters.
373
+ * @return 1 on success, 0 on failure.
374
+ * @error Invalid menu resource or property.
375
+ */
376
+ native menu_setprop(menu, prop, ...);
377
+
378
+ /**
379
+ * Cancels a player's menu, effectively forcing the player to select MENU_EXIT.
380
+ * The menu will still exist on their screen but any results are invalidated,
381
+ * and the callback is invoked.
382
+ *
383
+ * @param player Client index.
384
+ * @noreturn
385
+ * @error Invalid client index.
386
+ */
387
+ native menu_cancel(player);