D 2018-08-18T01:46:32.644
L SQL\sfunctions
P 3de61daf53d7534db064988f205a4a51043601e1
U zzo38
W 4201
This document is a list of the available SQL functions that you can use in the customization of Free Hero Mesh. In addition to the ones listed here, you can also use the [http://sqlite.org/lang_corefunc.html|core functions], [http://sqlite.org/lang_datefunc.html|date/time functions], and [http://sqlite.org/lang_aggfunc.html|aggregate functions], of SQLite, as well as any functions defined by extensions. See also: [SQL tables].
(Note: This is only a draft and is likely to change in future.)
Asterisks in the headings indicate aggregate functions.
BASENAME()
Returns the base name, which is a copy of the first command-line argument (other than switches).
CLASS_DATA(id,info)
Returns data about the class with the given ID number.
The second argument can be: 0=class ID number, 1=Temperature, 2=Shape, 7=first image number available in editor (null if none), 12=Misc4, 13=Misc5, 14=Misc6, 15=Misc7, 18=Arrivals, 19=Departures, 32=Busy, 33=Invisible, 34=UserSignal, 35=UserState, 36=KeyCleared, 37=Player, 38=Destroyed, 39=Stealthy, 40=VisualOnly, 64=Density, 65=Volume, 66=Strength, 67=Weight, 69=Height, 70=Climb, 72=Hard(E), 73=Hard(N), 74=Hard(W), 75=Hard(S), 76=Sharp(E), 77=Sharp(N), 78=Sharp(W), 79=Sharp(S), 80=Shape(E), 81=Shape(N), 82=Shape(W), 83=Shape(S), 84=Shovable, 128=fraction of volume, 129=number of user variables, 130=CollisionLayers, 132=Compatible
CVALUE(number)
Returns a 64-bit integer representing a value of type TY_CLASS; the argument is the class number.
HEROMESH_TYPE(value)
Given a Hero Mesh value (which is represented in SQL by a 64-bit integer), return a string representing its type. It can be one of:
* ???
* class
* number
* object
* sound
* string
LEVEL()
Returns the one-based order number of the current level.
LEVEL_CACHEID()
Returns the ID number of the active level file in the user cache table.
LEVEL_ID()
Returns the ID number of the current level.
LOAD_LEVEL(levelid)
Load a level by ID; returns null. Usable only if the -x [Command-line arguments|switch] is used; otherwise it is an error.
MODSTATE()
Get the current keyboard modifiers state. It is the sum of the following:
* 0x0001: Left shift
* 0x0002: Right shift
* 0x0040: Left control
* 0x0080: Right control
* 0x0100: Left alt
* 0x0200: Right alt
* 0x0400: Left meta
* 0x0800: Right meta
* 0x1000: Num lock
* 0x2000: Caps lock
* 0x4000: Mode
MOVENUMBER()
Tells you how many moves have been played so far since it has been reset.
MVALUE(number)
Returns a 64-bit integer representing a value of type TY_MESSAGE; the argument is the message number.
NVALUE(number)
Returns a 64-bit integer representing a value of type TY_NUMBER; the argument is the number. This function is actually the same as ZERO_EXTEND.
OVALUE(number)
Returns a 64-bit integer representing a object pointer value; the argument is the object ID number.
PICTURE_SIZE()
Tell you the picture size.
READ_LUMP_AT(offset,ptr)
Used internally by Free Hero Mesh. If the second argument is not a pointer to a FILE, this function does nothing. Since SQL codes cannot generate pointers, there is no way to use this in user code.
RESOURCE(...)
Given a list of strings, find the matching resource from the .heromeshrc file and command-line arguments. Result is null if there is no such resource value.
SIGN_EXTEND(num)
Sign-extend a 32-bit integer to 64-bits. The 32-bit user variables in Free Hero Mesh might or might not be signed, so when accessing them in SQL (which uses 64-bit numbers) you must use this if you want to treat it as a signed number.
SOLUTION_CACHEID()
Returns the ID number of the active level file in the user cache table.
SOLUTION_REPLAY()
Returns 1 if replaying the solution or 0 for the normal game.
ZERO_EXTEND(num)
Zero-extend a 32-bit integer to 64-bits. Can also be used to convert other types of values (such as classes, messages, and objects) into plain numbers.
Z 681f357625b06056a296127863409677