Free Hero Mesh

Check-in [ad65a30a4b]
Login
This is a mirror of the main repository for Free Hero Mesh. New tickets and changes will not be accepted at this mirror.
Overview
Comment:Fix documentation of CLASS_DATA function
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: ad65a30a4b668c619e91bf837ec2c54ac09d33bf
User & Date: user on 2021-05-22 23:10:17
Other Links: manifest | tags
Context
2021-05-23
02:22
Implement a key binding command to record the solution even if auto recording solutions is not enabled. check-in: 1a2fee8a44 user: user tags: trunk
2021-05-22
23:10
Fix documentation of CLASS_DATA function check-in: ad65a30a4b user: user tags: trunk
2021-05-20
00:47
Change Four and Eight to Rook and Queen; also add Bishop check-in: e3c2fc3bcb user: user tags: trunk
Changes

Modified TODO from [9feb084340] to [f6f521f828].

12
13
14
15
16
17
18

19
20
21
22
23
24
25
  * A ,PopUp command to use a popup with arguments starting from a mark
  * "Goto message" instruction (?)
  * Returning a class from COLLIDE/COLLIDEBY to transform
* Editor
  * Mouse dragging
  * Level index editor
  * Bizarro world

* Table of contents for levels
  * Can define your own columns
  * User can write SQL queries on them
* Deal better with allowing to skip past corrupted levels
* Picture editor/loading
  * Allowing more altimages
* Puzzle set catalog format (using with internet; a separate program)







>







12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  * A ,PopUp command to use a popup with arguments starting from a mark
  * "Goto message" instruction (?)
  * Returning a class from COLLIDE/COLLIDEBY to transform
* Editor
  * Mouse dragging
  * Level index editor
  * Bizarro world
  * Selection rectangles
* Table of contents for levels
  * Can define your own columns
  * User can write SQL queries on them
* Deal better with allowing to skip past corrupted levels
* Picture editor/loading
  * Allowing more altimages
* Puzzle set catalog format (using with internet; a separate program)
33
34
35
36
37
38
39

* VCR mode
* Portable mode, not needing installing files in home directory
  * Maybe not needed? You can override the HOME environment variable
  * An alternative is to check argv[0]; if it contains / then don't use HOME
* Command-line switch for batch import/export levels
* SQL
  * Implement the GROUP column in the CLASSES table








>
34
35
36
37
38
39
40
41
* VCR mode
* Portable mode, not needing installing files in home directory
  * Maybe not needed? You can override the HOME environment variable
  * An alternative is to check argv[0]; if it contains / then don't use HOME
* Command-line switch for batch import/export levels
* SQL
  * Implement the GROUP column in the CLASSES table
  * Allow multiple SQL statements in one binding

Modified function.c from [9e56554eb9] to [3f86e6b7e6].

46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
    if(classes[a] && !(classes[a]->cflags&CF_NOCLASS2) && !strcmp(s,classes[a]->name)) goto found;
  }
  return;
  found: sqlite3_result_int(cxt,a);
}

static void fn_class_data(sqlite3_context*cxt,int argc,sqlite3_value**argv) {
  int id=sqlite3_value_int(argv[0]);
  Class*cl;
  if(id<0 || id>=0x4000 || !classes[id]) return;
  cl=classes[id];
  switch(sqlite3_value_int(argv[1])&255) {
    case 0: sqlite3_result_int(cxt,id); break;
    case 1: sqlite3_result_int64(cxt,cl->temperature); break;
    case 2: sqlite3_result_int(cxt,cl->shape); break;







|







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
    if(classes[a] && !(classes[a]->cflags&CF_NOCLASS2) && !strcmp(s,classes[a]->name)) goto found;
  }
  return;
  found: sqlite3_result_int(cxt,a);
}

static void fn_class_data(sqlite3_context*cxt,int argc,sqlite3_value**argv) {
  int id=sqlite3_value_int(argv[0])&0xFFFF;
  Class*cl;
  if(id<0 || id>=0x4000 || !classes[id]) return;
  cl=classes[id];
  switch(sqlite3_value_int(argv[1])&255) {
    case 0: sqlite3_result_int(cxt,id); break;
    case 1: sqlite3_result_int64(cxt,cl->temperature); break;
    case 2: sqlite3_result_int(cxt,cl->shape); break;

Modified sql.doc from [dcec016e62] to [05f8679276].

14
15
16
17
18
19
20
























21
22
23
24
25
26
27
CL(text)
  Returns the class number, given the class name. If there is no such
  class, then the result is null. (This may be useful as a shortcut when
  used with the "OBJECTS" or "CLASSES" table.)

CLASS_DATA(id,info)
  Returns data about a class.

























CVALUE(number)
  Makes a game value of type 'class', given the class number. You can also
  specify the class name instead of the number.

HEROMESH_ESCAPE(blob)
  Converts blob representation of a game string into escaped format.







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
CL(text)
  Returns the class number, given the class name. If there is no such
  class, then the result is null. (This may be useful as a shortcut when
  used with the "OBJECTS" or "CLASSES" table.)

CLASS_DATA(id,info)
  Returns data about a class.
   0 = ID
   1 = Temperature
   2 = Shape
   7 = First usable image
   12 = Misc4
   13 = Misc5
   14 = Misc6
   15 = Misc7
   18 = Arrivals
   19 = Departures
   33 = Invisible
   35 = UserState
   37 = Player
   39 = Stealthy
   40 = VisualOnly
   64 = Density
   65 = Volume
   66 = Strength
   67 = Weight
   69 = Height
   70 = Climb
   128 = Volume fraction
   130 = CollisionLayers
   132 = Compatible

CVALUE(number)
  Makes a game value of type 'class', given the class number. You can also
  specify the class name instead of the number.

HEROMESH_ESCAPE(blob)
  Converts blob representation of a game string into escaped format.