TickHook: Fix crash when TickHook isn't set.
[gemrb.git] / TODO
blob2f1af016ad673b0c3aff806a496fbdd5d676af41
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. (PARTLY) fix combat round timings
11 2. implement customisable combat calculation, it should be general enough to
12 simulate all games, without any hardcoded parts
14 Items:
15 1. (DONE-almost) Break items, count charges
16 2. (PARTLY) Implement switching weapon abilities
17 3. (DONE-almost) Implement item usage (similar to spells)
19 Effects:
20 1. (DONE-almost) Implement common effects
21 2. (PARTLY) Implement IWD2 effects
22 3. (DONE-almost) Implement TOB effects
23 4. (PARTLY) Implement PST effects
24 5. (DONE-almost) Implement area/non-living affecting effects 
26 Area:
27 1. (PARTLY) Don't load scripts for pile items? (research when a script is unused)
28 2. (DONE) Create real streaming ambients (do not preload them, just use them when needed)
29 3. (DONE) in pathfinder, calculate with the actor's feet circle size (npc blocking still needed)
30 4. (DONE-almost) fix overlaid tiles - bug #1623839
32 Store:
33 1.  Store caching (especially bags)
35 Animation:
36 1. (PARTLY) fix char animation sequences
37 2. stanceID is still fuzzy. Fix it. (FIXED?)
38 3. (PARTLY) Implement projectile animations (area, cone, fragments, hardcoded features)
40 Actor:
41 1. (PARTLY) 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 bg1 chargen for a complete solution
47 2. Move position of actor (and ground circle) to the center of a searchmap cell
48 3. (PARTLY) Actually handle the iwd2 spelllists. Exporter is still needed.
50 Game GUI:
51 1. (PARTLY) implement class based (but customisable) action button bar. Generally port
52    the IWD2 system to all engines
53 2. implement grabbing mouse pointer by a control to fix dragging of PST Float menu window
54 3. (PARTLY) Fix drop capitals (initials) Calculate text height/width correctly, display
55    it correctly too.
56 4. (PARTLY) Fix unwanted screen shake (especially when on bottom of area)
57 5. (DONE-almost) Level up code, this should be written mostly in GuiScript!!!
58 6. (PARTLY) Contingency, spell trigger setup windows
59 7. (PARTLY) Customize windows (part of character record window)
61 General:
62 1. The Cache and Variables classes could be rewritten to incorporate the release 
63    function more smoothly (use templates?)
64 2. various directories (GemRB override, game override ...) should be resolved 
65    right after loading config files and remain static afterwards. Maybe define 
66    some PATH variable describing all the directories searched for files
67 3. valgrind reports a big heap of unreleased python objects
68 4. Implement at least all the options accessible from the GUI options setup,
69    rewrite baldur|torment|icewind.ini
71 Graphics:
72 1. use scaling in Video::SpriteScaleDown() instead of in Video::GetPreview() 
73    and in BMPImporter
74 2. move SDLVideoDriver sprite functions to their own file, rename them to 
75    SpriteIsPixelTransparent etc.
76 3. (PARTLY) Add PNG support? (still image done)
77 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)
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
84 4. implement sound handles so looping, moving sound, stopping sound is possible
85 5. fix sound settings (currently the volumes get reset on area change, for example)
86 6. implement and use as much from EAX (echo, damping, etc) as possible
88 Release:
89 2. Get a sample game with some free license which could be distributed
90    with GemRB.
93 Documentation:
94 1. (PARTLY) make tool to scan source files for those with non-standard
95    copyright notices
96 2. Add Doxygen doc comments to more objects
97 3. Write GemRB overview, structure and high-level flow docs
100 Community:
101 2. Move this todo to bug/task tracker at Sourceforge :-)