Free Hero Mesh

Check-in [8ad7607451]
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:Add the ^? command (which is used only for debugging and may be changed in future).
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 8ad7607451f18ced05a41c817f557ad82bbc9bb9
User & Date: user on 2023-10-13 04:11:26
Other Links: manifest | tags
Context
2023-10-16
00:12
Implement save state slots, including loading personal best solutions. check-in: cc0df8402f user: user tags: trunk
2023-10-13
04:11
Add the ^? command (which is used only for debugging and may be changed in future). check-in: 8ad7607451 user: user tags: trunk
2023-09-03
23:39
Implement shift+leftclick to try to move Hero the number of steps toward where it is clicked, similar to the MESH:Hero. check-in: 215e7bbe96 user: user tags: trunk
Changes

Modified bindings.doc from [968d2604de] to [2d7260727a].

69
70
71
72
73
74
75





76
77
78
79
80
81
82
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87







+
+
+
+
+







'^-'
  Delete one move.

'^+'
  Toggle insertion mode. Insertion mode is automatically reset when
  restarting a level or when accessing a different level.

'^?'
  Displays some debugging information. (What information is displayed and
  how it is formatted may be changed (or possibly removed entirely) in
  future; you should rely on it.)

'^D'
  Delete all moves forward.

'^I'
  Toggle the inventory/move-list display.

'^L'

Modified comconfig.doc from [40fa378679] to [014c92b498].

9
10
11
12
13
14
15
16



17
18
19
20
21
22
23
9
10
11
12
13
14
15

16
17
18
19
20
21
22
23
24
25







-
+
+
+







CONFIG_APPLICATION_ID
  Application ID for SQLite database files (if not defined, then the
  default value will be used). Should be a 32-bit integer represented in
  decimal notation, as a string token (not as a numeric token).

CONFIG_DEFAULT_RESOURCES
  If defined, read resource configuration from the specified file if
  it cannot find the configuration file in the home directory.
  it cannot find the configuration file in the home directory. (If
  CONFIG_USING_APPIMAGE is also defined, then the path is relative to
  AppDir; otherwise, it should be an absolute path.)

CONFIG_EXTRA_SCREEN_INIT
  Can be a C code to be executed after the video mode is set, but before
  any other screen initialization is done.

CONFIG_FUNCTION_ASK_TEXT
  Should be a function or macro taking four arguments, which will ask for
102
103
104
105
106
107
108

109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126


127
128
129
130
131
132
133
134
135


136
137
138
139
140
141
142
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128

129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148







+

















-
+
+









+
+







  If defined, omit the level editor and picture editor, as well as the
  ability to import and export levels and pictures.

CONFIG_OMIT_GUI
  If defined, omit the GUI. Autotest mode can still be used, and the
  batch import/export works if CONFIG_OMIT_EDITOR is not defined. Any
  other feature which does not require the GUI also can still be used.
  (This implies CONFIG_OMIT_CODEPAGE, CONFIG_OMIT_SOUND, and others.)

CONFIG_OMIT_MUSIC
  If defined, omit background music playback capabilities. (Even if this
  is not defined, it can still be disabled at runtime.)

CONFIG_OMIT_PIPE
  If defined, then any features that use popen are omitted. Some operating
  systems may require this; otherwise, you should avoid using this.

CONFIG_RANDOM_SOURCE
  Device to read random numbers from instead of using the random number
  generator built in to SQLite. (This will override the definition of the
  SQL RANDOM() function if it is defined.)

CONFIG_USERCACHE_PERMISSIONS
  If defined as a octal number, set the default file permissions of the
  user cache database when creating it. (The user can still change them
  afterward by using chmod.)
  afterward by using chmod; this only applies if the file does not already
  exist and needs to be created.)

CONFIG_USING_32BIT_COORDINATES
  If defined, allow 32-bit coordinates in SDL_Rect and in other graphics
  functions of SDL.

CONFIG_USING_APPIMAGE
  If defined, it will check the environment variables having to do with
  AppImage and will be able to load the default resources from there, as
  well as allow the configuration file to reference the AppImage directory.
  (You should probably also define CONFIG_NO_PORTABLE, since AppImage has
  its own way of implementing portable mode.)

CONFIG_USING_ARM_NEON
  If defined, use ARM NEON extensions. This only works on ARM.

CONFIG_USING_BSD_FUNCTIONS
  If defined, use BSD functions (such as funopen) instead of GNU functions
  (such as fopencookie), by adding emulations into the program. (It is

Modified game.c from [b5e694ad5d] to [8b747a8794].

1296
1297
1298
1299
1300
1301
1302








1303
1304
1305
1306
1307
1308
1309
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317







+
+
+
+
+
+
+
+







      if(replay_mark>replay_pos) replay_mark--;
      return 0;
    case '^+': // Insert moves
      if(solution_replay) return 0;
      inputs_count=0;
      inserting^=1;
      return 0;
    case '^?': // Debug information
      printf("timerflag=%d  exam_scroll=%d  inputs_size=%d  inputs_count=%d\n",timerflag,exam_scroll,(int)inputs_size,inputs_count);
      printf("side_mode=%d  replay_speed=%d  replay_time=%d  solved=%d\n",side_mode,replay_speed,replay_time,solved);
      printf("should_record_solution=%d  should_record_private_solution=%d\n",should_record_solution,should_record_private_solution);
      printf("autowin=%p  inserting=%d  saved_inserting=%d  solution_replay=%d\n",autowin,inserting,saved_inserting,solution_replay);
      printf("replay_size=%d  replay_count=%d  replay_pos=%d  replay_mark=%d\n",(int)replay_size,replay_count,replay_pos,replay_mark);
      printf("best_list=%p  strlen(best_list)=%d  best_score=%d\n",best_list,(int)strlen(best_list?:""),best_score);
      return -3;
    case '^D': // Delete all moves forward
      inputs_count=0;
      if(solution_replay) {
        screen_message("You cannot delete moves during the solution replay");
        return -3;
      }
      if(replay_pos==replay_count) return 0;