X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=TODO;h=e3c17ac9f8c5e1c8e3525273248c4b3b2415681e;hb=e32f4c542103d9c85bacd022aaea1c416ad172f7;hp=b8c522bb734bf1723034678af2868dde2d76873e;hpb=08e4a023d400a4fec7a93c5c2dea4efeceb887e1;p=supertux.git diff --git a/TODO b/TODO index b8c522bb7..e3c17ac9f 100644 --- a/TODO +++ b/TODO @@ -1,10 +1,17 @@ -Note: Controversial list of things currently broken and controversial -solutions for them. +SuperTux TODO +============= -Coding Standard -=============== +This is a list of tasks and issues that might be worth to implement or +fix. This list is however not an authorative list of things that must +be done, its a collection of random things that pop up during +development, therefore not everything in here might be well thought +out or worth to implement. Use your brain before implementing anything +on this list and always think about how useful a new feature would be +in the context of the whole game or if a potential performance +enhanchment, actually enhanchmes anything at all. -* use SCons instead of CMake +Coding Standard Stuff +===================== * make code clean: "-O2", "-g3", "-ansi", @@ -20,11 +27,6 @@ Coding Standard "-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 @@ -33,20 +35,30 @@ Coding Standard * split files with multiple classes into multiple files with one class each +* static vs anonymous namespace -TODO -==== +* check the code with Valgrind -* GameObject::RemoveListenerListEntry: Ughs, somebody trying to - implement a list class within in the GameObject?! +* use Vector in Physics for 'a' and 'v' * replace random generator with mersene twister and/or move to external/ -* check the code with Valgrind +* write/finish scripts for include sorting and include guard checking that + can be run automatically -* static vs anonymous namespace +* md5.hpp and random_generator.hpp could go to external/ -* use Vector in Physics for 'a' and 'v' +* write scripts to automatically check for: + + - all includes are relative to top level dir + + - include guards are proper + +TODO +==== + +* GameObject::RemoveListenerListEntry: Ughs, somebody trying to + implement a list class within in the GameObject?! * add --datadir DIR (data/) and --userdir DIR (~/.supertux/) @@ -57,11 +69,6 @@ TODO 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 @@ -74,29 +81,167 @@ TODO * resolution menu entry moves the wrong way around -* write scripts to automatically check for: +* having dictionary_manager in Lisp is extremely ugly - - all includes are relative to top level dir +* enforce proper naming of files to match their class - - include guards are proper +* get rid of NDEBUG and conditional compilation, these should be + reserved for a few tiny cases, not spread all over the code -* move SVN to http://code.google.com (maybe one day) +* split particlesystem_interactive -* move bugtracker to http://code.google.com (much simpler, less useless) +* Renderer::apply_config() needs to handle fullscreen switching -* convert worldmap from const lisp::Lisp* lisp to "const Reader&" +* collect all manager classe into globals.hpp -* having dictionary_manager in Lisp is extremely ugly +* more moving directories around? -* enforce proper naming of files to match their class +addon/ +audio/ +control/ +gui/ +lisp/ +math/ +physfs/ +sprite/ +util/ +video/ +squirrel/ + for generic squirrel code +supertux/ + worldmap/ + trigger/ + scripting/ + for scripting wrapper code + badguy/ + object/ -* get rid of DEBUG and conditional compilation, these should be - reserved for a few tiny cases, not spread all over the code +* implement PNG screenshot -* split particlesystem_interactive +* GL_ARB_texture_non_power_of_two returns 1 on MatroxG450, while it + returns "Missing" in glewinfo, something wrong + +* having hitbox in Sprite is fugly + +* write decal object + +* implement surface and/or sprite scaling (MipMaps?) + +* add code that compares the last Log line with the current, if they + are the same reject them and just output something like: + + * last line has been repeated X times + +* file naming is inconsistent: some times we use '_' to separate + words, sometimes we don't + +* implement: http://standards.freedesktop.org/menu-spec/menu-spec-latest.html + +* workaround for Ubuntu pulseaudio/OpenAL brokeness: + +$ cat ~/.alsoftrc +drivers = oss + +* peaking up/down doesn't work properly + +* peaking left/right should make Tux look into that direction (up/down to, needs new sprites) + +* add pipe graphics that makes a 90 degree turn + +* keep possible future SDL1.3 upgrade in mind + +* cleanup scripting interface + +* remove cloud tiles, replace with decal + + +Subversion->Git/Mercurial/Bzr Move +================================== + +* right now a switch doesn't seem to be worth it + +* core issue right now isn't SVN, but old SVN version on lethargik.org + (lacks merge tracking and issues with viewvc) + +* cleanup SVN to make import into other version control systems possible: + + - Should we merge trunk/supertux-milestone1 and trunk/supertux when switching to Git/Hg/...? + +Mistakes: incorrect branch creation: r5201-5207 + +tags/start # unknown +tags/supertux # unknown +tags/supertux_0_1_0 +tags/supertux_0_1_1 +tags/supertux_0_1_2 +tags/supertux_0_1_3 + +branches/cobble # unknown +branches/milestone1 # unknown +branches/new-collision-detection # unknown +branches/README # documentation that will be lost in conversion +branches/supertux # unknown +branches/supertux_0_1_1_branch +branches/supertux-box2d # mathnerd (trash) +branches/supertux-editor-newdrawing # editor +branches/supertux-editor-newdrawing2 # editor +branches/supertux-milestone1-olpc # supertux-milestone1 +branches/supertux-milestone2-grumbel # supertux +branches/supertux-nogl # supertux(?) +branches/supertux-sharp # another supertux editor +branches/unison-video # ??? +branches/vendor # ??? CVS crap + +trunk/cobble # some editor? +trunk/CVSROOT # ??? CVS crap +trunk/htdocs # htdocs +trunk/jnrcol +trunk/media +trunk/SDL_tty +trunk/setup2x +trunk/supertux +trunk/supertux-editor +trunk/supertux-milestone1 +trunk/supertux-portable +trunk/supertux-sharp +trunk/wiz-test + + +Potential Git Issues +==================== + +* lack of sparse/narrow/shallow checkout, this means initial checkout + will be 200MB instead of 100MB + +* no free hoster that allows >1GB repositories (haven't checked all, + but those I did came out way short) -> could use lethargik.org + +* some free hosters that might allow >1GB repositories don't allow + having multiple repositories + +* git submodule doesn't seem to be quite ready to replace our + trunk/supertux, trunk/supertux-editor, trunk/media/, ... layout as + it for example doesn't support automatic tracking of HEAD from the + remote repositories, it also feels rather hacky and not properly + integrated into git + +* lack of metadata versioning, if you delete a branch in git that you + haven't merged, then its gone after the next gc/repack (+ two weeks + time limit it seems), in SVN on the other side you can checkout the + way the tree was at a specific date, its impossible to lose history + unless you hack the repository + + +Random Notes +============ + +* calculate the size of an background image: -* centralize menus + (parallax - 1) * screen_size + level_size + ----------------------------------------- = image_size + parallax -* make a proper class out of supertux/resources.hpp +* how to calculate the exact position of a background image so that it + looks correct on different magnifications? # EOF #