X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=TODO;h=b8c522bb734bf1723034678af2868dde2d76873e;hb=53209e9747f4c830eeeb926d3a44918ed86621ba;hp=861ec07b186d19db9b1a43f54d64d54843a61ab6;hpb=2d3ea57eee00c52e7f8c14068594935770bf3c70;p=supertux.git diff --git a/TODO b/TODO index 861ec07b1..b8c522bb7 100644 --- a/TODO +++ b/TODO @@ -1,82 +1,102 @@ +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 - -[?] 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] Adding objects should be done by adding them into a queue and then - physically added at the end of Sector::action() - - may cause crashes otherwise (due to iterators) - - see world1/level7.stl, killing the bombs -[H] Worldmap needs to allow multiple maps - - or just one big map with multiple worlds? -[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 -[H] stdint.h isn't a part of FreeBSD. We should probably use SDL integer - types instead. -[H] Dead Tux/badguys should be drawn on top of the foreground layer -[H] Graphics - - New forest tileset - - Badguy sprites - - Tux's buttjump animation -[H] When bumping powerups, they should bounce away from the centre of Tux -[H] Backgrounds should be square tiles instead of just tiling one image - - Useful for vertical scrolling when we only want a sky background on the - top of the level - -[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 +=============== + +* 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 + +* only do one variable initialization per line, not multiple as its + currently often done in initialization list + +* 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 + +* 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) + +* convert worldmap from const lisp::Lisp* lisp to "const Reader&" + +* having dictionary_manager in Lisp is extremely ugly + +* enforce proper naming of files to match their class + +* get rid of DEBUG and conditional compilation, these should be + reserved for a few tiny cases, not spread all over the code + +* split particlesystem_interactive + +* centralize menus + +* make a proper class out of supertux/resources.hpp + +# EOF #