TrustedUser
2,147
edits
(→SDL backend: kFeatureAutoComputeDirtyRects is long-gone) |
m (Text replacement - "</source>" to "</syntaxhighlight>") |
||
(22 intermediate revisions by 10 users not shown) | |||
Line 23: | Line 23: | ||
* Add port specific user documentation (dreamcast/palm especially). That would include things like: | * Add port specific user documentation (dreamcast/palm especially). That would include things like: | ||
** How to use ScummVM on system XYZ | ** How to use ScummVM on system XYZ | ||
* Update/enhance man page | * Update/enhance man page | ||
* Write a high level overview of how ScummVM and its engines work? | * Write a high level overview of how ScummVM and its engines work? | ||
Line 39: | Line 38: | ||
== Web sites == | == Web sites == | ||
=== General === | |||
* Move all sites to the new host | |||
* Update outdated software | |||
* Use HTTPS everywhere | |||
* Make a consistent and reusable visual look across all sub-sites | |||
=== Primary website === | === Primary website === | ||
* Add big (green?) shiny buttons in the middle of the page for (1) Donations and (2) Downloads ? | * Add big (green?) shiny buttons in the middle of the page for (1) Donations and (2) Downloads ? | ||
* Show "Release Date" on download page | * Show "Release Date" on download page | ||
* Change all screenshot filenames to match our rules as described [[Screenshots|here]]. E.g. rename <code>data/screenshots/agos/simon/scummvm_2_4_0.jpg</code> to <code>data/screenshots/agos/simon/simon-0.jpg</code> etc.; also some stuff should maybe be moved to other directories. | * Change all screenshot filenames to match our rules as described [[Screenshots|here]]. E.g. rename <code>data/screenshots/agos/simon/scummvm_2_4_0.jpg</code> to <code>data/screenshots/agos/simon/simon-0.jpg</code> etc.; also some stuff should maybe be moved to other directories. | ||
* Introduce build tools to handle website updates | |||
* Update the template engine | |||
=== [[Buildbot]] === | === [[Buildbot]] === | ||
* Track the size of the resulting binaries. | * Track the size of the resulting binaries. | ||
** This would greatly help in tracking down when and why the size of the ScummVM binary increased. | ** This would greatly help in tracking down when and why the size of the ScummVM binary increased. | ||
Line 56: | Line 59: | ||
** For bonus points, allow the user of that webpage to dynamically change it using javascript: i.e. selecting which ports to show, which range of revisions; mousing over a data point shows a little box with details on the commit; clicking on a revision number jumps to the corresponding page in our SVN repository viewer; etc. ;). | ** For bonus points, allow the user of that webpage to dynamically change it using javascript: i.e. selecting which ports to show, which range of revisions; mousing over a data point shows a little box with details on the commit; clicking on a revision number jumps to the corresponding page in our SVN repository viewer; etc. ;). | ||
* Install the new required dependencies (libpng and libtheora for [[Sword25]]) into the cross compiler environments of all ports that have a chance of supporting [[Sword25]]. | * Install the new required dependencies (libpng and libtheora for [[Sword25]]) into the cross compiler environments of all ports that have a chance of supporting [[Sword25]]. | ||
* Install the new required dependencies (libpng, libfreetype, boost and wx-widgets) into the cross compiler environments of all desktop ports to support building of tools. | |||
* Fix the console page | |||
=== [[Doxygen]] === | === [[Doxygen]] === | ||
* | * Update the visual theme to better match the site | ||
=== [[Forums]] === | === [[Forums]] === | ||
* Upgrade to phpBB 3 | * Upgrade to phpBB 3 | ||
* Update the theme to phpBB3 | |||
=== [[Planet]] === | === [[Planet]] === | ||
Line 67: | Line 73: | ||
=== [[Wiki]] === | === [[Wiki]] === | ||
* | * Update the theme to match the updated website | ||
* Update to the latest Wiki version | |||
* Add a ScummVM style guide | |||
* Add content to [[Special:Wantedpages|Wanted Pages]] | * Add content to [[Special:Wantedpages|Wanted Pages]] | ||
* Add some content to [[Help:Editing]], which is shown when editing a page | * Add some content to [[Help:Editing]], which is shown when editing a page | ||
Line 79: | Line 87: | ||
./scummvm --add new_target --path=/foo monkey2 | ./scummvm --add new_target --path=/foo monkey2 | ||
./scummvm --remove new_target | ./scummvm --remove new_target | ||
* The following things should be put into namespaces: | * The following things should be put into namespaces: | ||
** MIDI related classes either to Audio, or a new "MIDI" namespace | ** MIDI related classes either to Audio, or a new "MIDI" namespace | ||
** backend specific stuff into ??? (maybe new namespace "Backends" ?) not sure about this one. | ** backend specific stuff into ??? (maybe new namespace "Backends" ?) not sure about this one. | ||
* Get rid of getenv in as many places as possible. Ideally, we'd only use it to query HOME on Unix systems. | * Get rid of getenv in as many places as possible. Ideally, we'd only use it to query HOME on Unix systems. | ||
=== Events === | === Events === | ||
Line 98: | Line 100: | ||
is valid for which event type. Implementation wise, we might want to use | is valid for which event type. Implementation wise, we might want to use | ||
the classic union-of-structs trick. It goes roughly like this: | the classic union-of-structs trick. It goes roughly like this: | ||
< | <syntaxhighlight lang="cpp"> | ||
struct BasicEvent { | struct BasicEvent { | ||
EventType type; | EventType type; | ||
Line 119: | Line 121: | ||
... | ... | ||
}; | }; | ||
</ | </syntaxhighlight> | ||
However, this approach is contrary to classic OO paradigms. Indeed, its | However, this approach is contrary to classic OO paradigms. Indeed, its | ||
Line 130: | Line 132: | ||
casting in code using events. The passing around of pointers could be | casting in code using events. The passing around of pointers could be | ||
mitigated by using | mitigated by using | ||
< | <syntaxhighlight lang="cpp"> | ||
typedef Common::SharedPtr<BasicEvent> Event | typedef Common::SharedPtr<BasicEvent> Event | ||
</ | </syntaxhighlight> | ||
or something like that. Yet this would mean increased overhead in all | or something like that. Yet this would mean increased overhead in all | ||
our code, yet the gain is unclear. In conclusion, we probably are best | our code, yet the gain is unclear. In conclusion, we probably are best | ||
off by staying with the existing monolithic struct Event, we should just | off by staying with the existing monolithic struct Event, we should just | ||
enhance its documentation. | enhance its documentation. | ||
=== Build System === | === Build System === | ||
Line 211: | Line 194: | ||
* Game edit dialog: Consider adding some warnings to the platform/language fields ("Don't mess with these unless you know what you are doing"), or move them to an "advanced" tab | * Game edit dialog: Consider adding some warnings to the platform/language fields ("Don't mess with these unless you know what you are doing"), or move them to an "advanced" tab | ||
* Make the gameid editable via an "advanced" tab entry? | * Make the gameid editable via an "advanced" tab entry? | ||
* There is no way to reset the save/extra/theme paths. Adding a tiny button labeled "c" for clearing them (like for the soundfont path button) is not the way to solve this, I think. One approach would be to extend the Browser dialog, to allow an (optional) extra button, with customizable label. When pressed, the browser dialog closes and returns a special code. Well, and we'd use labels like "Use default savepath" or "Reset extrapath", or just always "Use default value". | * <s>There is no way to reset the save/extra/theme paths. Adding a tiny button labeled "c" for clearing them (like for the soundfont path button) is not the way to solve this, I think. One approach would be to extend the Browser dialog, to allow an (optional) extra button, with customizable label. When pressed, the browser dialog closes and returns a special code. Well, and we'd use labels like "Use default savepath" or "Reset extrapath", or just always "Use default value".</s> | ||
* The global 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 global 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 | ||
* separate launcher code even more from rest of ScummVM, to make custom launchers easier? | * separate launcher code even more from rest of ScummVM, to make custom launchers easier? | ||
Line 230: | Line 213: | ||
* Make it possible to reach the "key remapper" and "virtual keyboard" from the GMM, if available? | * 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? | * 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? | ||
=== Error handling === | |||
Sometimes, bugs are reported that are not easily reproducible, e.g. [https://sourceforge.net/p/scummvm/bugs/6751/ Bug #6751]. In such cases, it would be useful to have the error handler in ScummVM generate (and, optionally, automatically send) minidumps that can be used by us to successfully examine crashed ScummVM processes. Integration of something like [https://chromium.googlesource.com/breakpad/breakpad/ Google Breakpad] is one reasonable option. While it is not likely to be able to get such crash handling into all ports, just supporting the most popular platforms would be enough to make this feature very useful. | |||
== Engines / frontends == | == Engines / frontends == | ||
Line 257: | Line 244: | ||
=== [[Groovie]] === | === [[Groovie]] === | ||
* see [[Groovie/TODO|Groovie TODO]] list | * see [[Groovie/TODO|Groovie TODO]] list | ||
=== [[Hopkins]] === | |||
* see [[Hopkins/TODO|Hopkins TODO]] list | |||
=== [[Hugo]] === | === [[Hugo]] === | ||
Line 288: | Line 278: | ||
=== [[Sword2|Broken Sword 2]] === | === [[Sword2|Broken Sword 2]] === | ||
* Fix the credits so they look more like the original. (Did we ever get the source code for that?) | * Fix the credits so they look more like the original. (Did we ever get the source code for that?) | ||
* Maybe work around script bug which causes the mop to disappear briefly when trying to pick it up from the top of the boat at the London docks. (The event to hide the mop is sent too early.) {{ | * Maybe work around script bug which causes the mop to disappear briefly when trying to pick it up from the top of the boat at the London docks. (The event to hide the mop is sent too early.) {{Tracker|id=2058}}. | ||
* Maybe (but probably not) work around a graphics glitch where George can be drawn partially in front of a metal beam he's walking behind. (He's obscured properly by the beam sprite, but part of the beam is only background.) {{ | * Maybe (but probably not) work around a graphics glitch where George can be drawn partially in front of a metal beam he's walking behind. (He's obscured properly by the beam sprite, but part of the beam is only background.) {{Tracker|id=4483}}. | ||
* Unify some of the code with Broken Sword 1 (e.g. in router.cpp). | * Unify some of the code with Broken Sword 1 (e.g. in router.cpp). | ||
Line 297: | Line 287: | ||
=== [[Tinsel]] === | === [[Tinsel]] === | ||
* see [[Tinsel/TODO|Tinsel TODO]] list | * see [[Tinsel/TODO|Tinsel TODO]] list | ||
=== [[Tony]] === | |||
* see [[Tony/TODO|Tony TODO]] list | |||
=== [[Toon]] === | === [[Toon]] === | ||
Line 309: | Line 302: | ||
=== [[Tucker]] === | === [[Tucker]] === | ||
* see [[Tucker/TODO|Tucker TODO]] list | * see [[Tucker/TODO|Tucker TODO]] list | ||
=== [[Wintermute]] === | |||
* see [[Wintermute/TODO|Wintermute TODO]] list | |||
== Backends and ports == | == Backends and ports == | ||
Line 318: | Line 314: | ||
=== SDL backend === | === SDL backend === | ||
* Right now, the WinCE and the Symbian backend subclasses the regular SDL backend. They both overload a lot of methods (mostly the graphics stuff). Since graphics.cpp uses the scalers (e.g. hq3x), these derived backends carry that baggage around, too, even though they don't need that code. Idea: split the SDL backend into two classes, one base class which only has the code which is used by all subclasses; and a "desktop" subclass, which implements the rest. Then WinCE/Symbian would only subclass the "base" SDL class. | * Right now, the WinCE and the Symbian backend subclasses the regular SDL backend. They both overload a lot of methods (mostly the graphics stuff). Since graphics.cpp uses the scalers (e.g. hq3x), these derived backends carry that baggage around, too, even though they don't need that code. Idea: split the SDL backend into two classes, one base class which only has the code which is used by all subclasses; and a "desktop" subclass, which implements the rest. Then WinCE/Symbian would only subclass the "base" SDL class. | ||
=== Windows === | === Windows === |