Difference between revisions of "Gob/TODO"

From ScummVM :: Wiki
< Gob
Jump to navigation Jump to search
(Added mouse cursor issue)
(Elaborate on objectizing)
Line 4: Line 4:
== Long-term goals ==
== Long-term goals ==
* Convert it to C++ classes. This should be done on per-file basis.
* Convert it to C++ classes. This should be done on per-file basis.
* Alignment fixes
 
  Take a look how work was done with SAGA engine. No big thinking is required, just determine where is
  initializer and how data structures should be cleaned up. Main goal here is to add possibility for
  overloading. Of course if you see that some code could be put into '''real''' objects, feel free to
  do it but will take much more time. With SAGA engine we did it much later.
 
  Another important thing here is to add possibility for overloading opcode tables. Right now they're made
  with use of '''switch()''' statements which isn't suitable for gob2 addition. In gob2 they inserted
  several opcodes right in the middle of the table which makes code really really ugly and cumbersome.
  Again, consult SAGA or better SCUMM engine on how to do that properly
 
* Alignment fixes (done?)


== File-specific tasks ==
== File-specific tasks ==

Revision as of 22:56, 25 December 2005

Status

Gobliiins 1 is completable. Gobliins 2 is in progress.

Long-term goals

  • Convert it to C++ classes. This should be done on per-file basis.
 Take a look how work was done with SAGA engine. No big thinking is required, just determine where is
 initializer and how data structures should be cleaned up. Main goal here is to add possibility for
 overloading. Of course if you see that some code could be put into real objects, feel free to
 do it but will take much more time. With SAGA engine we did it much later.
 Another important thing here is to add possibility for overloading opcode tables. Right now they're made
 with use of switch() statements which isn't suitable for gob2 addition. In gob2 they inserted
 several opcodes right in the middle of the table which makes code really really ugly and cumbersome.
 Again, consult SAGA or better SCUMM engine on how to do that properly
  • Alignment fixes (done?)

File-specific tasks

draw.cpp

  • Use the ScummVM backend for handling the mouse cursor. Right now it's drawn as a sprite.

interp.cpp

  • Since neither VGA nor CD versions of gob1 have protection screen we may skip it in EGA version too

text.cpp

  • This file should be removed and is not currently required for compilation but we need to inspect which variables does it set and to which values and convert them to our Config Manager. We should support all video outputs and at least PC speaker and Adlib.

video.cpp

  • Add support for other rendering modes (EGA/CGA/Hercules) lega.gdr, l360.gdr, lcga.gdr