Probably there will be some optimisations in loadAll() method, which will malloc one big chunk of those vars, and since we have their keys as ''const char *'', then it can alloc one big chunk for variables name as well and then pass pointers inside of it to respective members. Of course, that will be specially flagged as it will not be possible to free() any of those chunks deliberately.
== Launcher hints ==
On June 27th 2007 12:45 -- 14:10) on #scummvm [http://ircbrowse.com/channel/scummvm/20070627 (Log is here)] there was a discussion about implementing launcher hints to our detector.
The main idea behind this is that engines will hint launcher on available per-game options. Say, it will provide lists of languages, supported sound formats. Also this could be used for those rarely used options which we miss now in GUI, such as turning on or off copy protection or selection of different intro.
To this end, query the responsible engine plugin when the user hits the 'Edit Game' button. Then it returns back a structure (or just a StringMap) describing the capabilities of the game. This structure could contain:
* the native resolution of the game (320x200, 320x240, 640x480) etc. -- this info can be used to select an appropriate default scaler (could also be used on-the-fly when starting a game)
* Whether copyprotection can be toggled
* Whether aspect ratio correction makes sense for that game
List of rarely used options which aren't reflected in GUI:
* alsa_port (or any other midi driver config stuff, there is an open FR for adding better MIDI config options, too, of course)
* tempo (do we still need/want that, anyway?)
** This was [http://sourceforge.net/mailarchive/message.php?msg_id=CA502952-47F2-4E65-A90D-769C4F0D6B99%40quendi.de discussed briefly] on the scummvm-devel mailing list in 2006.
* debuglevel (could help with bug reports)
* music_mute and sfx_mute
* alt_intro (For Beneath a Steel Sky)
* demo_mode (For Maniac Mansion)
* object_labels (For Broken Sword 2 and COMI)
* reverse_stereo (For Broken Sword 2)
* walkspeed (For The Legend of Kyrandia)
List of values which are currently showed in GUI:
* Platform (do we really need to allow user to change that?)
* Graphics mode (640x480 games with 2x selected now behave incorrectly)
* Render mode (only few games support CGA or Hercules rendering)
* Aspect ratio (FM-TOWNS games run in 320x240, NES MM doesn't use aspect correction too)
* Music driver
* Text and speech (for subtitle-less games or games without voice-overs)
* Subtitle speed (disable in Simon1 CD)
* Volume --> closely related to text and speech, so perhaps just disable speech volume for text-only games
* SoundFont (no need to enable if game doesn't have MIDI music)
** This should probably also depend on the music driver, since only a few of them implement it.
* Mixed AdLib/MIDI (only couple games feature that)
* True Roland (supported only by games with MT-32 tracks)
* Roland GS (same as above)
* current GUI theme
* GUI Language