Open main menu
969 bytes removed ,  19:13, 4 November 2008
Updated my personal TODO list
(Updated my personal TODO list)
Line 22: Line 22:
* Show "Release Date" on download page
* Show "Release Date" on download page
* Use AJAX for screenshot display?
* Use AJAX for screenshot display?
* Use AJAX to improve the downloads page, by only showing the most important ports/downloads by default, and then uncovering the rest upon a click by the user (with gracious fallback if Javascript is disabled).


=== Savefile manager ===
=== 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!
* Consider replacing "const char *" with "Common::String" in method parameters. 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 ===
=== 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
* 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.
* 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.
* Global Main Menu
** Allow engines to extend this more freely. E.g. for the SCUMM engine, we would want to add a "Help" button
** Make it possible to reach the  "key remapper" and "virtual keyboard" from the GMM, if available?
** Sugar on the cake: In addition to the ScummVM logo and version, how about showing the engine name and game title at the top of the GMM?


=== OSystem ===
=== OSystem ===
* get to rid of the evil global gBitFormat!
* 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
* Remove slack in OSystem
** move getScreenChangeID functionality to EventManager
** 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)]
* 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)
* Change backends to use namespaces ?! (Not really that useful, I guess, except for the Doxygen pages)


Line 72: Line 60:


=== Misc ===
=== Misc ===
* It might be quite helpful if we followed some consistent naming patterns for functions/methods. For example, a method which return an object pointer and expects the calling code to delete the object after use, should be named makeFOO; so for example, FSNode::openForReading() would become FSNode::makeReadStream()
* 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)
* 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 ?!?
* add plugin API to fetch a fresh desc string for a given target ?!?
1,079

edits