aboutsummaryrefslogtreecommitdiff
path: root/engines/neverhood/todo.txt
blob: abf8f27f84d52020c1f91a2dea24a07db8986878 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
NOTE:
-------
Some of the TODOs should be done AFTER the whole game logic is implemented
else the game disasm and reimplemtation code become even more different
(unless I decide it's ok to do it :) 

TODOs which can be done any time:
-----------------------------------
- Give placeholder stuff (e.g. sub?????, _flag??? etc.) better fitting names
- Use CursorMan for the mouse cursor (instead of using it like a normal sprite)
	- This whould make it neccessary to call _system->updateScreen more often else 
		the mouse movement would be choppy
- Cleanup
- Clean up staticdata structs to look more like the ones in create_neverhood
	(e.g. by using template classes etc.)
	- Or use a common base class and manage all stuff in one single table and cast stuff accordingly 

TODOs which should be done only after the game logic is finished:
-------------------------------------------------------------------
- Implement clever sprite redrawing code (dirty rectangles, microtiles etc.), only redraw what's neccessary
- Rework sound system (I don't like that SoundResources need to be explicitly initialized in Scene constructors)
	- Should be just a handle object which initializes itself
	- Play routine should fill the handle so it can be stopped/queried later
	- Basically like ScummVM own sound handles
- Rework the resource system
	- The current system can be simplified a lot
	- Also resource purging needs to be implemented
- RE and implement yet unknown music/sound stuff
- Implement game menus
- Maybe rework organization of files (e.g. put ALL Sprites into one separate file, same with Modules and Scenes)
	- This would solve the problem of how to organize stuff which is used several times, and less headers would have to be included
	- The move special scenes (SmackerScene) into the scenes file
- Maybe merge CollisionMan with Scene (since it's so far never used independently)

TODOs which are experimental:
-------------------------------
NOTE: Since they affect the whole game, they really should be only implemented once the full game logic is implemented.
These are nothing more than wild ideas for now, any might never be implemented. 
- Use states instead of separate callback methods
- Try to move more stuff to neverhood.dat
- Try to use more template functions instead of manually creating functions
	(Can be coupled with the above to move parameters to the dat and only use IDs)