32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
<verbatim-1>CREATE TABLE "MESSAGES"("ID" INTEGER PRIMARY KEY, "NAME" TEXT, "TRACE" INT);</verbatim-1>
List of all built-in and user-defined messages. The "TRACE" column initially stores zero, but you may store either zero or one. If zero, tracing this message is suppressed; if one, tracing this message is enabled if tracing has been enabled.
<h2>MOVES *</h2>
<h2>OBJECTS *</h2>
<verbatim-1>CREATE TABLE "OBJECTS"("ID" INTEGER PRIMARY KEY, "CLASS" INT, "MISC1" INT, "MISC2" INT, "MISC3" INT,
"IMAGE" INT, "DIR" INT, "X" INT, "Y" INT, "UP" INT, "DOWN" INT, "DENSITY" INT HIDDEN);</verbatim-1>
List of all objects. Meaning of columns:
* ID: The object ID number. Use the OVALUE() function to create the game value representing a pointer to this object.
* CLASS: Class number (the ID from the CLASSES table).
* MISC1, MISC2, MISC3: The Misc1, Misc2, and Misc3 values (which are 64-bit game values). When setting these values, use the CVALUE(), MVALUE(), and OVALUE() functions. Note that numeric values are limited to 16-bits when setting them in the editor. (In the game play, these values are read-only but are not limited to the values specified here.)
* IMAGE: Zero-based image number. Valid range depends on the class.
* DIR: Direction from 0 (east) to 7 (southeast).
* X, Y: The one-based X and Y coordinates of this object. If these values are updated, the object is automatically unlinked and relinked into the board, changing the UP and DOWN values of not only this but also other objects, too.
* UP, DOWN: The object above and below this one; null if there isn't any.
* DENSITY: The density of the object (lower numbers are on top). If you use ORDER BY DENSITY or ORDER BY DENSITY DESC it will automatically order objects with the same density correctly relative to each other too (according to the UP and DOWN values).
This table is read-only in game mode; it can be written in edit mode.
Note: SQLite currently does not implement the truncate optimization for virtual tables. This means that a "DELETE FROM OBJECTS;" SQL statement will not be as efficient as using Free Hero Mesh's "clear level" command.
<h2>PICTURES</h2>
<verbatim-1>CREATE TEMPORARY TABLE "PICTURES"("ID" INTEGER PRIMARY KEY, "NAME" TEXT COLLATE NOCASE, "OFFSET" INT);</verbatim-1>
A list of all of the pictures that are available; loaded from the .xclass file. Probably only the NAME column is useful to the user; it is the lump name without the .IMG suffix.
While it is possible to write to this table, there is probably no use to do so.
|