0.4.0
[gemrb.git] / TODO
blobb152e4beb870113737c815c14b5b9948f0cf99ab
1 Scripts:
2 1. (PARTLY) ToB specific actions/triggers, like pocketplane (so ToB will work)
3 2. (PARTLY) Properly detect the play mode (sp/mp, normal/extended)
5 Combat:
6 1. fix combat round timings
7 2. implement customisable combat calculation, it should be general enough to
8 simulate all games, without any hardcoded parts
9 3. implement wspatck.2da and wspecial.2da handling
11 Items:
12 6. (PARTLY) Break items, count charges
13 7. Implement switching weapon abilities
14 8. (PARTLY) Implement item usage (similar to spells)
16 Effects:
17 1. (DONE) Create base system for effect blocks
18 2. (DONE-almost) Implement common effects
19 3. (PARTLY) Implement IWD2 effects
20 4. (DONE-almost) Implement TOB effects
21 5. (PARTLY) Implement PST effects
22 6. (DONE-almost) Implement area/non-living affecting effects 
24 Area:
25 2. (PARTLY) Don't load scripts for pile items? (research when a script is unused)
26 3. (DONE) Create real streaming ambients (do not preload them, just use them when needed)
27 4. (DONE) in pathfinder, calculate with the actor's feet circle size (npc blocking still needed)
28 5. (DONE) fix door wallgroups and tiles (some problems with overlays still exist)
29 6. (DONE) Handle extended night flag (alternate lightmap, tileset, minimap)
31 Store:
32 no tasks
34 Animation:
35 1. (PARTLY) fix char animation sequences
36 5. (DONE) Handle equipment animations (armourlevel, weapons) - this seems to be done by wjp/avenger
37 7. stanceID is still fuzzy. Fix it. (FIXED?)
38 8. (PARTLY) Implement projectile animations (area, cone, fragments)
40 Actor:
41 2. Use the character sheet (Actor.cpp) itself to store attributes of the character 
42    during character generation. 
43    Benefits: data is already stored in the destination, data constraints and relations 
44    are easily implemented.
45    How to: replace GemRB.SetVar with GemRB.SetPlayerStat. Don't forget to create
46    the character first. - see iwd2 chargen for a partially implemented solution
47 3. Move position of actor (and ground circle) to the center of a searchmap cell
50 Game GUI:
51 2. (PARTLY) implement class based (but customisable) action button bar. Generally port
52    the IWD2 system to all engines
53 3. implement grabbing mouse pointer by a control to fix dragging of PST Float menu window
54 4. (DONE) Fix multi line editboxes. Allow attaching of scrollbar. - Avenger, i think it is done
55 5. (PARTLY) Fix drop capitals (initials) Calculate text height/width correctly, display
56    it correctly too.
57 6. (PARTLY) Fix unwanted screen shake (especially when on bottom of area)
58 7. (PARTLY) Level up code, this should be written mostly in GuiScript!!!
59 8. Contingency, spell trigger setup windows
60 9. Customize windows (part of character record window)
62 General:
63 1. The Cache and Variables classes could be rewritten to incorporate the release 
64    function more smoothly (use templates?)
65 2. various directories (GemRB override, game override ...) should be resolved 
66    right after loading config files and remain static afterwards. Maybe define 
67    some PATH variable describing all the directories searched for files
68 4. valgrind reports a big heap of unreleased python objects
69 5. Implement at least all the options accessible from the GUI options setup,
70    rewrite baldur|torment|icewind.ini
72 Graphics:
73 1. use scaling in Video::SpriteScaleDown() instead of in Video::GetPreview() 
74    and in BMPImporter
75 2. move SDLVideoDriver sprite functions to their own file, rename them to 
76    SpriteIsPixelTransparent etc.
77 3. (PARTLY) Add PNG support? (still image done)
79 Sound:
80 1. valgrind reports invalid memory access due to Unqueueing buffers and using 
81    them in another thread (openal weirdness?)
82 2. (PARTLY) sounds get sometimes distorted, might be connected to problem #1
83 3. (PARTLY) Separate OpenAL interface from ACM loader and MVE player
85 Building:
86 1. fix include paths during compilation, so the files do not 
87    use #include "../../Core/something.h" etc.
89 Release:
90 1. Create packages for various distros and get them to distributions. Requires
91    maintainers.
92 2. Get a sample game with some free license which could be distributed
93    with GemRB.
96 Documentation:
97 2. (PARTLY) make tool to scan source files for those with non-standard
98    copyright notices
99 3. Add Doxygen doc comments to more objects
100 4. Write GemRB overview, structure and high-level flow docs
101 5. (PARTLY) Automate the wikification of guiscript docs
102 6. Update guiscript docs with metaclass info
103 7. Add missing guiscript function docs
106 Community:
107 2. (DONE-needs more work) Update the web page, get rid of postnuke
108 3. Move this todo to bug/task tracker at Sourceforge :-)