First go at supporting mods.
[gemrb.git] / TODO
blob71e2cc748f3ebf003237c31f00c50db5be5f2d15
1 Scripts:
2 1. (DONE?) ToB specific actions/triggers, like pocketplane (so ToB will work)
3 2. (PARTLY) Properly detect the play mode (sp/mp, normal/extended)
5 Strings:
6 1. fix (finish implementation of) talk table override
7 2. implement feature: "<GENDER?stref1:strref2>" (or even more ambitious stat specific strref tokens)
9 Combat:
10 1. (DONE?) fix combat round timings
11 2. implement customisable combat calculation, it should be general enough to
12 simulate all games, without any hardcoded parts
13 3. (PARTLY) implement wspatck.2da and wspecial.2da handling
15 Items:
16 1. (DONE-almost) Break items, count charges
17 2. (PARTLY) Implement switching weapon abilities
18 3. (DONE-almost) Implement item usage (similar to spells)
20 Effects:
21 1. (DONE-almost) Implement common effects
22 2. (PARTLY) Implement IWD2 effects
23 3. (DONE-almost) Implement TOB effects
24 4. (PARTLY) Implement PST effects
25 5. (DONE-almost) Implement area/non-living affecting effects 
27 Area:
28 1. (PARTLY) Don't load scripts for pile items? (research when a script is unused)
29 2. (DONE) Create real streaming ambients (do not preload them, just use them when needed)
30 3. (DONE) in pathfinder, calculate with the actor's feet circle size (npc blocking still needed)
31 4. (DONE-almost) fix overlaid tiles - bug #1623839
33 Store:
34 1.  Store caching (especially bags)
36 Animation:
37 1. (PARTLY) fix char animation sequences
38 2. stanceID is still fuzzy. Fix it. (FIXED?)
39 3. (PARTLY) Implement projectile animations (area, cone, fragments, hardcoded features)
41 Actor:
42 1. (PARTLY) Use the character sheet (Actor.cpp) itself to store attributes of the character 
43    during character generation. 
44    Benefits: data is already stored in the destination, data constraints and relations 
45    are easily implemented.
46    How to: replace GemRB.SetVar with GemRB.SetPlayerStat. Don't forget to create
47    the character first. - see bg1 chargen for a complete solution
48 2. Move position of actor (and ground circle) to the center of a searchmap cell
49 3. (PARTLY) Actually handle the iwd2 spelllists. Exporter is still needed.
51 Game GUI:
52 1. (PARTLY) implement class based (but customisable) action button bar. Generally port
53    the IWD2 system to all engines
54 2. implement grabbing mouse pointer by a control to fix dragging of PST Float menu window
55 3. (PARTLY) Fix drop capitals (initials) Calculate text height/width correctly, display
56    it correctly too.
57 4. (PARTLY) Fix unwanted screen shake (especially when on bottom of area)
58 5. (DONE-almost) Level up code, this should be written mostly in GuiScript!!!
59 6. (PARTLY) Contingency, spell trigger setup windows
60 7. (PARTLY) 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 3. valgrind reports a big heap of unreleased python objects
69 4. 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)
78 4. Fog of war: fully visible squares with one corner neighbour invisible need alpha of the adjacent corner to the invisible square tuned down (uh, i hope it is clear what to do, look for artifacts in the fog of war edge)
80 Sound:
81 1. valgrind reports invalid memory access due to Unqueueing buffers and using 
82    them in another thread (openal weirdness?)
83 2. (PARTLY) sounds get sometimes distorted, might be connected to problem #1
84 3. (PARTLY) Separate OpenAL interface from ACM loader and MVE player
85 4. implement sound handles so looping, moving sound, stopping sound is possible
86 5. fix sound settings (currently the volumes get reset on area change, for example)
87 6. implement and use as much from EAX (echo, damping, etc) as possible
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 1. (PARTLY) make tool to scan source files for those with non-standard
98    copyright notices
99 2. Add Doxygen doc comments to more objects
100 3. Write GemRB overview, structure and high-level flow docs
103 Community:
104 1. (DONE-needs more work) Update the web page, get rid of postnuke
105 2. Move this todo to bug/task tracker at Sourceforge :-)