X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=TODO;h=ff546a032cf7257719b48333c4afff81e0bbc274;hb=c1277f5b7db9f55d1d28f658b4e804f32b76f0ce;hp=4625da56735daf6e7cca9e44bc67a6e6f4f9d96e;hpb=4bd2a8ec524f55ce8146c029629b1409c90edc9c;p=supertux.git diff --git a/TODO b/TODO index 4625da567..ff546a032 100644 --- a/TODO +++ b/TODO @@ -1,110 +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 - ---Scons-- - * [H] Add an install target - * [H] Generate the config.h file - * [M] improve opengl check to work on win32 and eventually more strange - systems again - * [H] Make sure compilation on win32 and cross-compilation works - * [M] compile some test executables to test for SDL, SDL_mixer and SDL_image. - Also test for version of SDL_mixer and SDL_image - * [M] Create a distclean target - * [M] Create a dist target - * [M] Add instructions to the README - * [L] If all of the [H] and [M] issues are fixed, remove autoconf/automake - * [L] Take a look if it is possible to make it a bit more quiet. (Similar to - linux kernel, samba or jam output would be optimum, ie. - C++ build/linux/src/bla.o - C++ build/linux/src/blup.o - C++ build/linux/src/error.o - Error on line xx in error.o: This source contained an error - - g++ -Wall .... -o build/linux/src/error.o src/error.cpp - ---Miscelaneous-- -[?] Default keyboard setup should change. Up will be needed for other features - like going through doors and looking up, etc. - Up arrow - Look up / activate - Down arrow - Look down / duck - Left arrow - Left move - Right arrow - Right move - Ctrl - Run / Power - Space - Jump - -[H] Worldmap should have a flag to allow to go to another map after finishing - a level from that one. - It might be cool to have a (place group in the worldmap file that would - allow such stuff as: levels, messages, wrapping and worldmap changing - (or even combinations). -[H] Change resolution to 800x600 - - Levels need to be updated to resolution - - half of the levels have been already updated - - some fixed levels still have "glitches". See the menu level where - some of the tiles are "wrong" and don't fit -[H] Buttjump related things - - Should kill enemies with a certain range - - Done--now needs to be tweaked - - Animation (need images) - - Should be a powerup item (still to be discussed) - - Should break bricks if Tux is on top of bricks, otherwise it should - kill enemies within a close range. - - After enemy-kill is used, powerup should be removed from Tux -[H] Icebullet related things - - we should decide on specifics -[H] Tux should fall while walking in tiles that have a space between. - - Possible solution: reduce Tux's width when checking collision with tiles -[H] Graphics - - New forest tileset - - Badguy sprites - - Tux's buttjump animation -[H] Background code have the following bugs: - - Gradient in software rendering doesn't currently work (at least here). - - Images tiling code sucks resulting in glitches and unecessary drawings. - Matze: can you give more details? The code looks perfectly fine to me - -[M] There are some weird graphical glitches when Tux bumps more than one block - at the same time -[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 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] Implement Unisolid type for tiles (where collisions from below are ignored). - - done -[M] Menu doesn't jump titles, and doesn't seem to like having menu entries - created after initialization. - Matze: what does "menu doesn't jump titles" mean? - -[L] Allow any object to be inside of a [?] box, ie. trampoline or badguy - - Not sure if this would be gameplay wise. -[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 - -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 #