X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=TODO;h=b8c522bb734bf1723034678af2868dde2d76873e;hb=53209e9747f4c830eeeb926d3a44918ed86621ba;hp=016a60dce98ae0653ec93688b23e3283e498e07e;hpb=02411f7ea61587030533bd8f61f26250452e7e1f;p=supertux.git diff --git a/TODO b/TODO index 016a60dce..b8c522bb7 100644 --- a/TODO +++ b/TODO @@ -1,91 +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. - Ricardo: IMO, there should be the following keys for the following actions: - Up arrow - Look up - Down arrow - Look down / duck - Left arrow - Left move - Right arrow - Right move - Ctrl - Run / Power - Alt - Jump - Not sure if Open doors action would be attributed to Up or Ctrl... - -[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] 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 - - Support for this is already available using a paralax tilemap layer -[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. - -[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). - -[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 -[L] we only have a global counter for multiple coin blocks. This should be handled - per block. - Why is this a bad thing? It avoids unnecessary cpu and memory use. - -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 #