Difference between revisions of "Gob/TODO"

From ScummVM :: Wiki
< Gob
Jump to navigation Jump to search
(Add general section)
(Reformat show stoppers a little)
Line 3: Line 3:


== Show stoppers ==
== Show stoppers ==
* Convert it to C++ classes. This should be done on per-file basis. Big note. You don't need full game to accomplish this task, demo is enough since it is full-featured.
* Implement opcodes overloading


   Add possibility for overloading opcode tables. Right now they're made with use of '''switch()'''
   Right now they're made with use of '''switch()''' statements which isn't suitable for gob2 addition.
  statements which isn't suitable for gob2 addition. In gob2 they inserted several opcodes right in the
  In gob2 they inserted several opcodes right in the middle of the table which makes code really really
  middle of the table which makes code really really ugly and cumbersome.
  ugly and cumbersome.
   Consult SAGA or better SCUMM engine on how to do that properly
   Consult SAGA or better SCUMM engine on how to do that properly



Revision as of 01:10, 4 January 2006

Status

Gobliiins 1 is completable. Gobliins 2 progress is stalled. We need developers for this.

Show stoppers

  • Implement opcodes overloading
 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.
 Consult SAGA or better SCUMM engine on how to do that properly
  • Alignment fixes (done?)

General

  • All class variables should be prefixed with underscore ('_')

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