* Show "Release Date" on download page
* Use AJAX for screenshot display?
=== Savefile manager ===
* Consider replacing "const char *"
usages with "Common::String". This might or might not be a good idea, though -- don't just do it blindly! === File code === * several backends #define fopen, fread etc. -- this is bad, try to get rid of these hacks * to get rid of all usages of fopen, etc. we could add backends/file and move the current file.cpp to backends/file/stdc (this is just a rough idea, mind you) * at the same time, finally change File to read-only, and add a DumpFile class, which can be used for script dumps, screenshots etc.; ports can simply provide an "empty" implementations if they don't support dumping large files * To enforce that no code uses fopen etc. directly, we could add our own #define's to scummsys.h to trigger errors in code doing it
=== GUI ===
* The options dialog may show a button for configuring the savepath even on systems where it is fixed -> not good. This button should be hidden/removed for these systems
* make a shared "main menu dialog", based on the SCUMM one
** accessible via the same hotkey in all engines
** Provides the following buttons/features in *all* games & engines: Resume, About, Quit
** Ideally also provides an options dialog based on the generic option dialogs in the launcher
** Engines can provide a subclass, which adds buttons/functions, like "save/load", or "help"
** For backends that need it (or maybe even for all), provide access to the "key remapper" and "virtual keyboard", once/if we add those globally
** Sugar on the cake: Display the engine name at the top, maybe also "ScummVM 0.x.y", and other goodies (ScummVM logo anyone?)
* Highlight the "default" button in dialogs (e.g. the classic MacOS way, drawing a fat border around it; or by using different coloring; or a combination). This falls under "usability", too.
=== OSystem ===
* get to rid of the evil global gBitFormat!
* Add getOverlayBitFormat() method, so we can avoid using RGBToColor, colorToRGB, ARGBToColor, colorToARGB in tight loops (it would return a value of 8 to indicate palette mode, otherwise a bitformat value compatible to those used in graphics/colormasks.h)
* Remove slack in OSystem
** move getScreenChangeID functionality to EventManager
** what are these for (and can we remove them)?: screenToOverlayX, screenToOverlayY, overlayToScreenX, overlayToScreenY
** remove getOutputSampleRate -- instead, add a private API to the mixer code to setup the sample rate (like, a param to the Mixer constructor)
* Implement the [https://sourceforge.net/mailarchive/forum.php?thread_name=41C50AFD-4544-4465-BD00-C058F04BC386%40quendi.de&forum_name=scummvm-devel RFC: Flexible keymapping via new EVENT_ (post 0.10)]
* Further work on the [[Modular Backends|modularization]] of OSystem
* Change backends to use namespaces ?! (Not really that useful, I guess, except for the Doxygen pages)
=== Misc ===
* Remove the 'addDefaultDirectory' calls from runGame in base/main.cpp. Reason: Their presence causes an asymmetry between the "detect a game" and "run a game" use cases, as different files are "seen" in each case. This can lead to subtle bugs, and also causes ugly code duplication in the AdvancedDetector code right now (there to work around asymmetries like this one)
* add plugin API to fetch a fresh desc string for a given target ?!?