Small TODO, CODINGSTYLE update
[supertux.git] / TODO
1 Note: Controversial list of things currently broken and controversial
2 solutions for them.
3
4 Coding Standard
5 ===============
6
7 * use SCons instead of CMake
8
9 * make code clean: "-O2", "-g3",
10                      "-ansi",
11                      "-pedantic",
12                      "-Wall",
13                      "-Wextra",
14                      "-Wnon-virtual-dtor",
15                      "-Weffc++",
16                      "-Wconversion",
17                      "-Werror",
18                      "-Wshadow",
19                      "-Wcast-qual",
20                      "-Winit-self", # only works with >= -O1
21                      "-Wno-unused-parameter",
22
23 * do not use raw pointer, especially not for Sprite and Surface
24
25 * only do one variable initialization per line, not multiple as its
26   currently often done in initialization list
27
28 * remove overuse of multi-inheritance 
29
30 * remove overuse of friend'ship
31
32 * maybe mark interfaces as interfaces (ISerializable or SerializableInterface)
33
34 * split files with multiple classes into multiple files with one class each
35
36
37 TODO
38 ====
39
40 * GameObject::RemoveListenerListEntry: Ughs, somebody trying to
41   implement a list class within in the GameObject?!
42
43 * replace random generator with mersene twister and/or move to external/
44
45 * check the code with Valgrind
46
47 * static vs anonymous namespace
48
49 * use Vector in Physics for 'a' and 'v'
50
51 * add --datadir DIR (data/) and --userdir DIR (~/.supertux/)
52
53 * make gravity a constant
54
55 * funky side effect of too much global variables: when having a
56   savegame with large or firetux and then starting that game, Tux in
57   the menu background will grow and be visible that way for a fraction
58   of a second
59
60 * write scripts for include sorting and include guard checking that
61   can be run automatically
62
63 * md5.hpp and random_generator.hpp could go to external/
64
65 * rename Vector -> Vector2f
66
67 * get rid of global SDL_Screen* screen variable
68
69 * identify all global variables and make them ugly (g_ or globals::)
70
71 * get rid of SCREEN_WIDTH/SCREEN_HEIGHT
72
73 * is version.h actually needed?
74
75 * resolution menu entry moves the wrong way around
76
77 * write scripts to automatically check for:
78
79   - all includes are relative to top level dir
80
81   - include guards are proper
82
83 * move SVN to http://code.google.com (maybe one day)
84
85 * move bugtracker to http://code.google.com (much simpler, less useless)
86
87 * having dictionary_manager in Lisp is extremely ugly
88
89 * enforce proper naming of files to match their class
90
91 * get rid of DEBUG and conditional compilation, these should be
92   reserved for a few tiny cases, not spread all over the code
93
94 * split particlesystem_interactive
95
96 * Renderer::apply_config() needs to handle fullscreen switching
97
98 * collect all manager classe into globals.hpp
99
100 * more moving directories around?
101
102 addon/  
103 audio/  
104 control/
105 gui/    
106 lisp/   
107 math/
108 physfs/ 
109 sprite/ 
110 util/
111 video/
112 supertux/
113   worldmap/
114   trigger/
115   scripting/
116   badguy/
117   object/
118
119 * implement PNG screenshot
120
121 # EOF #