X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=TODO;h=ff546a032cf7257719b48333c4afff81e0bbc274;hb=204f9bc97cc6c12033623100bc20b26d867c6822;hp=429c4ca1b0fd91c15b15847264220b1cb8307696;hpb=6c259503c8ac6c6a8f8a7a06243942529ccad6cc;p=supertux.git diff --git a/TODO b/TODO index 429c4ca1b..ff546a032 100644 --- a/TODO +++ b/TODO @@ -1,69 +1,109 @@ +Note: Controversial list of things currently broken and controversial +solutions for them. -- To do for Milestone2 - -http://super-tux.sf.net/ - -High priority: milestone goals that should be implemented for next milestone -Medium priority: would be nice to have for next milestone, but should - be secondary to high priority goals -Low priority: things that should be fixed sometime -?: Things that need to be discussed to determine whether or not they should be - implemented - -Todo ----- -H: high priority -M: medium priority -L: low priority -?: bug or feature? - - needs discussion - -[?] When jumping into a brick and there is a powerup, it should change - direction or not, depending where the collision was. It currently sucks. - - Discuss this, is that really what we want? -[?] Default keyboard setup should change. Up will be needed for other features - like going through doors and looking up, etc. - -[H] Make sure there are no invalid tile numbers in the level files - - Tile 6 occurs in world1/level5.stl as well as other levels -[H] Worldmap needs to allow multiple maps -[H] Change resolution to 800x600 - - Levels need to be updated to resolution - (half of the levels have been already updated) -[H] Buttjump related things - ? Right now only breaks bricks beneath tux - what else should it break - - Should kill enemies with a certain range - - Done--now needs to be tweaked - - Animation (need images) - ? Should disable Tux's movement temporarily (1 second?) -[H] Tux should fall while walking in tiles that have a space between. - - Possible solution: reduce Tux's width when checking collision with tiles - -[M] Save score on per-level basis to make high-score -[M] Save time on per-level basis to make low-time-score -[M] Add bonus score for extra time left when finishing a level -[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. - fixed? -[M] when bumping a special with 2 blocks at once, it won't change direction -[M] tux get killed if he kicks a iceblock while at the same time bouncing on -[M] You shouldn't be able to stand on invisible blocks, before you bumped them - the roof -[M] bombs should explode directly when hit by another bomb or a mr.iceblock - - right now they transform into a "squished mrbomb" - -[L] Allow any object to be inside of a [?] box, ie. trampoline or badguy -[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] time runs while being in in-game menu, at least a bit (jump, go to - menu, wait a bit, leave menu, Tux will 'flip' to the ground, - instead of fall, pause mode doesn't seem to have this problem, only - menu) -[L] catch exceptions thrown by lispreader -[L] fadein/out for intro/extro would be nice -[L] we only have a global counter for multiple coin blocks. This should be handled - per block. - -Beyond Milestone2 ------------------ -- More things than just levels on the worldmap (similar to SMB3) +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 #