X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=TODO;h=ff546a032cf7257719b48333c4afff81e0bbc274;hb=d9ec4134c6d3a1c444199ba894bf5e9c084185f3;hp=67212cfbed89dd23def0c61ab53df39f73419b63;hpb=2e121f31a99d92bca66dc851cd11510e475a8d0e;p=supertux.git diff --git a/TODO b/TODO index 67212cfbe..ff546a032 100644 --- a/TODO +++ b/TODO @@ -1,74 +1,109 @@ +Note: Controversial list of things currently broken and controversial +solutions for them. -- To do for Milestone1 - -http://super-tux.sf.net/ - -Last update: May 3, 2004 - -These are mostly bugs: - -Todo ----- -H: high priority -L: low priority - -[H] The scrollstart position still isn't the same as before the changes. -[H] Frame ratio code has been changed and so the animation may need tuning. - Somebody do some testing and change the definitions regarding this. -[M] When aborting a level, lives and score should remain the same as they - were before. Solution: make more dependency between the game engine and worldmap - or just backup those variables before starting a level. -[L] Backscroll is really messed up right now :) -[L] change lispreader to throw exceptions instead of simply assert() on - syntax error -[L] tux sometimes makes short jumps in the endsequence, mostly when - going through the goal with a small jump, might be old_up related -[L] fadein/out for intro/extro would be nice -[L] when bumping a special with 2 blocks at once, it won't change direction -[L] tux get killed if he kicks a iceblock while at the same time - bouncing on the roof -[L] tux can be killed by back bouncing iceblocks in the exit sequence - (all enemies should be removed/turned to coins once the exit - sequence started) -[L] in the "Welcome to Antarctica" level, the blocks next to the first growup - look like there are 2 blocks above each other when bumping against them as - small tux... -[L] Life counter should be decreased once the die-animation starts, - not when it ends -[L] Enemies should turn upside down after being hit by an kicked - iceblock -- leveleditor crashs when pressing the button with the levelsettings - - -Stuff for past milestone1: --------------------------- -Note that this list is far from complete, but lists some bugs that we don't want -to touch before milestone1 at the moment. -- You shouldn't be able to stand on invisible blocks, before you bumped them -- bombs should explode directly when hit by another bomb or a mr.iceblock -- we only have a global counter for multiple coin blocks. This should be handled - per block. -- We should reduced the width of tux collision rectangle so that he falls easier - between 1 tile wide holes. -- The enabled/disabled icon in the options shouldn't be a cross. Some people - think the options are disabled because they're crossed. Better use a green - check mark. - -Fixed ------ - -- leveleditor lacks enemies support (will be fixed soon by Tobias) -- points aren't reset when gameover -- when jumping into the exit with a star, the endgame music will change back to - levelmusic after a short time -- when jupming against the 2nd multiple coin block in a level only 1 coin will - come out. -- when you interrupted the intro (by going to credits for example) and go back - to it, tux doesn't jump anymore -- supertux crashs from time to time - fixed -- mriceblock doesn't fall down when being squished in the air - fixed -- It's not possible to duck while jumping - fixed -- Intro/Extro textspeed is CPU dependent - fixed -- sometimes the level restarts/you die after collecing a growup - fixed -- mriceblock doesn't disapear after being kicked my another iceblock, - not sure when exactly it happens, might depend on direction or so - fixed +Coding Standard +=============== +* no external libraries in src/, they go to external/ + +* proper separation between engine and game specific code (especially + sound and video handling) + +* normalize #include directives (all refer to top level dir) + +* use SCons instead of CMake + +* make code clean: "-O2", "-g3", + "-ansi", + "-pedantic", + "-Wall", + "-Wextra", + "-Wnon-virtual-dtor", + "-Weffc++", + "-Wconversion", + "-Werror", + "-Wshadow", + "-Wcast-qual", + "-Winit-self", # only works with >= -O1 + "-Wno-unused-parameter", + +* do not use raw pointer, especially not for Sprite and Surface + +* properly separate data members and member functions, don't mix them + in the same section + +* write namespaces like: "namespace NameSpace {", no newline before the { + +* only do one variable initialization per line, not multiple as its + currently often done in initialization list + +* conditional includes should be indended (makes it easier to handle + in include optimization): + +#ifdef FOOBAR +# include "foobar.hpp" +#endif + +* remove overuse of multi-inheritance + +* remove overuse of friend'ship + +* maybe mark interfaces as interfaces (ISerializable or SerializableInterface) + +* split files with multiple classes into multiple files with one class each + + +TODO +==== + +* GameObject::RemoveListenerListEntry: Ughs, somebody trying to + implement a list class within in the GameObject?! + +* replace random generator with mersene twister and/or move to external/ + +* check the code with Valgrind + +* cleanup doxygen comments, use /** */, nothing else + +* static vs anonymous namespace + +* use Vector in Physics for 'a' and 'v' + +* add --datadir DIR (data/) and --userdir DIR (~/.supertux/) + +* make gravity a constant + +* funky side effect of too much global variables: when having a + savegame with large or firetux and then starting that game, Tux in + the menu background will grow and be visible that way for a fraction + of a second + +* write scripts for include sorting and include guard checking that + can be run automatically + +* md5.hpp and random_generator.hpp could go to external/ + +* rename Vector -> Vector2f + +* get rid of global SDL_Screen* screen variable + +* identify all global variables and make them ugly (g_ or globals::) + +* get rid of SCREEN_WIDTH/SCREEN_HEIGHT + +* is version.h actually needed? + +* resolution menu entry moves the wrong way around + +* write scripts to automatically check for: + + - all includes are relative to top level dir + + - include guards are proper + +* move SVN to http://code.google.com (maybe one day) + +* move bugtracker to http://code.google.com (much simpler, less useless) + + +# EOF #