main.cpp, client.dtd: simplify client.conf parsing
[Tsunagari.git] / TODO.txt
blobf46b07c29950cd4f99a936d64d56081b1a9bb53b
1 ITEMS
4 * Command line interface using popt.
5 * Investigate whether switching from DTDs to Schemas would be worth it.
6 * Sprite doesn't support animations.
7 * Finish Area parsing code, integrate.
9 * Give World::player an Entity descriptor file.
10   What does an Entity descriptor file contain? What is an Entity?
11   ->    Entity is the most complicated descriptor. It will take a while to
12         design. It's the only descriptor with multiple types which are each
13         different. It's possible that each type of entity will require a
14         different DTD.
16 * Avoid window damage when another window moves on top.
17   We have an optimization that makes our window only redraw itself if something
18   in the game world changed. This causes redraw requests when another window is
19   passing over us to be ignored.
21   Gosu might be forked to be explicit about the difference between timer-based
22   redraw requests and ones spawned by window damage.
24 * Rewrite Area parser for TMX format.
25   Though it's a bit more complex, using the TMX map format (XML based) will
26   allow ourselves and our users to edit areas with the excellent Tiled generic
27   map editor.
28   
29   UPDATE June 9, 2011: Attribute data, layers and tilesets load.
31 * Area drawing shouldn't use Sprite.
32   Now that the TMX map format handles tilesets, this is especially true.
33   Tilesets were a bit different from Sprites in the first place, and we simply
34   handled them under the Sprite class for convenience, even though this method
35   was a bit hackish. Now that they're defined in full inside the Area
36   descriptor, Area should probably handle them. This means that tiles are no
37   longer Sprites. Area will also handle the tile animations. This should be
38   cleaner in the long run.
39   
40   UPDATE June 9, 2011: Sprites are no longer used, but we still need to
41   implement animations.
43 * Diagonal movement in roguelike mode.
45 * Doors imply "npc_nowalk" flag.
47 * Doors should be activated only after player is on them.
49 FINISHED ITEMS
51 X Player movement is not correctly centered. The player should be absolutely 
52   centered (until they reach a wall), even if tiles on the side of the viewport 
53   have to be clipped.
54   (Fixed on June 16, 2011 in commit 53ed5291)
56 X Map should center around player.
57   Viewport now centers around player!
58   (Fixed on June 11, 2011 in commit ec2c2736)
60 X Remove arbitrary test values inside the code.
61   With layer and tileset parsing on TMX maps done, we can now load data from
62   there, making arbitrary test values obsolete.
63   (Fixed on June 9, 2011 in commit 2da906a3)
65 X Find a way to pass the error "domain" to XML's error message function.
66   libxml2 provides a userData variable in the validator context.
67   (Fixed on May 28, 2011 in commit cf6bcbe3)
69 X Switch from JSON to XML completely.
70   Although JSON is an expressive less-verbose-than-XML format, after
71   investigating a few JSON parsers, we have decided that none of them are up to
72   our expectations.
73   (Fixed on May 25, 2011 in commit 5e1c08b7)
75 X Implement "nowalk" flags to prevent player from moving off map.
76   (Fixed on June 12, 2011 in commit 3a6e3890)