Free Hero Mesh

Check-in [ba571cb343]
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:TODO features; not implemented yet
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: ba571cb343bcf006547e06d9752979636453ce38
User & Date: user on 2022-09-08 05:15:39
Other Links: manifest | tags
Context
2022-09-14
23:14
Do not hard code number of pictures per row in the internal representation; use macros instead. This number is increased from 16 to 128 in order to avoid coordinate overflows for puzzle sets with large number of pictures if a large picture size is selected. check-in: 0a234d4210 user: user tags: trunk
2022-09-08
05:15
TODO features; not implemented yet check-in: ba571cb343 user: user tags: trunk
2022-09-01
21:59
Enhancements to (PopUp) to use arrays; new Quiz and ,Quiz commands to set quiz_obj; bug fix for the case where quiz_obj has been destroyed. check-in: cb281b5818 user: user tags: trunk
Changes

Modified TODO from [e902bf57fd] to [1647a6cfce].

1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
16
17
18
19
20
21
22
1
2
3
4
5
6
7
8
9
10
11

12
13
14

15
16
17
18
19
20
21








+


-



-







* Sound effects
  * Compressed wave sounds (?)
  * Numeric sounds (?)
* Game engine features
  * String data (partially implemented)
  * A ,PopUp command to use a popup with arguments starting from a mark
  * Returning a class from COLLIDE/COLLIDEBY to transform
  * Possibility to define auto-generation levels mode
  * Popup inventory list (with optional possibility of choice)
* Editor
  * Mouse dragging
  * Level index editor
* Deal better with allowing to skip past corrupted levels
* Picture editor/loading
  * Allowing more altimages
  * Batch insert multiple dependent image lumps
* Puzzle set catalog format (using with internet; a separate program)
* Inventory/replay hybrid view
* Scrollable playfield view
  * Auto scroll option (using Player flag)
  * Configurable auto scroll option
  * Manual scroll option
* Bookmarks
42
43
44
45
46
47
48

49
50
51
52
53
54
55
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55







+







* Cache database option to be keyed by hash
* Composite puzzle set format (implemented)
  * Optional hypertext help
  * Compressed class definitions (?)
* Option to auto display level titles
* Option to use a separate solution file
* Multiuser scoring within one computer system (optional capability)
* Launcher menu (optional; separate program)
* Testing
  * Bizarro world
  * Connection movement (it is partially tested, already)
  * Sweep, SweepEx, HitMe
  * Overriding order of execution (partially tested)
* Conversion from other games
  * DOS Hero Hearts

Modified comconfig.doc from [30bb8b0e6b] to [f356e676ad].

64
65
66
67
68
69
70









71
72
73
74
75
76
77
78
79
80




81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97




98
99
100
101
102
103
104
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121







+
+
+
+
+
+
+
+
+










+
+
+
+

















+
+
+
+







  processing. Some calculations are not affected by this option.

CONFIG_ERROR_CHECKING
  Define error checking level, where 9 is maximum. Lower numbers might
  improve speed but may make the program crash in some cases and may also
  cause security vulnerabilities.

CONFIG_FUNCTION_ASK_TEXT
  Should be a function or macro taking four arguments, which will ask for
  and accept a single line of text. The first argument is the SDL screen
  object, the second is the prompt text, the third is the code page number
  for the prompt text, and the fourth is the code page number for the
  input. The result is a pointer to a buffer (which the caller need not
  free, and will not write to) containing the null-terminated text, or a
  null pointer if the prompt has been cancelled by the user.

CONFIG_LAUNCHER_PATH
  If defined, then it is the full path to a file to execute if Free Hero
  Mesh has been invoked with no command-line arguments, or if it is given
  the flag to run the launcher program instead. (Maybe this should not be
  implemented; you can run the separate launcher program directly instead.
  Maybe it will be the other way around, if compiled to use AppImage.)

CONFIG_MULTIUSER_SCORES
  (Meant for storing scores on a multiuser system, somehow)

CONFIG_OMIT_CODEPAGE
  If defined, omit capability of code pages; only PC character set will
  be available. (This also implies CONFIG_OMIT_MBCS.)

CONFIG_OMIT_EDITOR
  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.

CONFIG_OMIT_MBCS
  If defined, omit the capability of multibyte character encodings. (This
  only affects displaying text, not the behaviour of the game.)

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
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171







+
+
+
+
+















+
+
+











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
  still necessary to use a C compiler with GNU extensions though, even if
  the GNU library is not available.)

CONFIG_USING_DOS_FILENAMES
  If defined, then the program only uses valid DOS file names (8.3). This
  affects how configuration files are found by default, and it affects how
  non-composite puzzle sets are read. Composite puzzle sets are unaffected.

CONFIG_USING_SDL12_COMPAT
  Define this if the program is to be compiled for use with the
  "sdl12-compat" SDL compatibility layer. (This does not affect linking,
  but it may change some parts of the program to improve compatibility.)

CONFIG_USING_SDLCL
  Define this if the program is to be compiled for use with the "sdlcl"
  SDL compatibility layer. (This does not affect linking, but it may change
  some parts of the program to improve compatibility.)

CONFIG_USING_X86_BMI2
  If defined, use PDEP and PEXT instructions. This only works on x86 and
  only on some processor models. (Apparently this is fast on Intel but slow
  on AMD, so it should not be used on AMD, even if it is available.)

CONFIG_WITH_MENU
  If defined, include a menu bar with commands.

CONFIG_WITH_NETWORK
  If defined, include code for network/internet access. Even if this is
  defined, it must still be enabled by the end user; it will not connect
  to any remote services unless the user explicitly commands it to do so.

CONFIG_WITH_VIDEO_RECORDING
  If defined, then include code to implement video recording, which will
  override some of the SDL functions (and some other functions), and might
  make them more slowly even if the video recording is not enabled.