Assigned to nicolas:
 * BUG : xmoto -replay bugs/onMacWontWork.rpl when you press forward on this scripted level, the elevator is not at the correct position.
 * script key on multiplayer : each player must have his own key
 * 2 player mode : message for the winner
 * several joypad (currently, joypack is available only for player 1)
 * when you choose keys : if a key is already attributed, it should assign it and set <unset> to the other one because it's not pleasant to have a message
 * beeing able to update the theme even if you don't download all the levels
 * BUG : if ghost is enable, then you disable it, then you play a level
    having a ghost -> cannot found entity
 * BUG : hum, about checksum, when you modify a level with f5 while
    playing, then it is not updated with the new level button (if you
    press enter, the level must be dwd)
 * PAD_5 -> to finish zoom
 * F5 while developping a level, if the level is scripted, it could crash it and required a full F5 at the menu stage
 
Assigned to manu:
 * load into the graphic card only the blocks which will be displayed depending on the selected graphic quality. DONE
 * multicamera. DONE
 * allow the head of the biker to enter in collision with the zones. DONE
 * mipmaping make the biker and the edge textures blurry. -> mimap disabled on the biker. have to add it to the edge textures
 * in 2 player mode, the text "ghost of ..." is badly formed
 * drifted layers
 * allow transparent textures for blocks

Not assigned:
 * <music name="None" /> => put levels into musical levels
 * mirror mode : the minimap is not mirrored
 * fix the mirror mode and the keys to modify the view
 * remove the typedef Vector3<int> Vector3d; from manu
 * document AddForceToPlayer
 * [10:16] <gaivota> how about a little detail: this pixel gap problem, that recently had been fixed, can also be seen in the minimap
   [10:16] <gaivota> dunno if necessary to fix it in there, just realized
 * [13:49] <gaivota> aspegic500: another bug: although I disabled engine sound in options, it remains in the game
 * joystick: mirror mode doesn't work.
 * [21:35] <gaivota> aspegic500: I have a request: It would be nice, that if you zoom in, the camera remains attached to the player, and not to a virtual point
  => in Renderer.cpp
     float normal_hoffset = 4.0;
     float normal_voffset = 2.0; 
  -> this offset should be the one between the left/right border and the player
 * in the level metallica you can see that some blocks have problems (badly drawn) -> problem with the bsp
 * after opening and closing levels, memory is consomed. -> remove unused textures from memory
 * Theme.cpp : update the old fonts with the new ones.
 * handle the all the characteres of the keyboard (and check that it works in the database): see keyboard-0.1.10.patch
 *It would be nice if you could use a separate image file for the front and the rear wheels of your bike.
 *[20:26] <Christoph> btw, I noticed a few days ago: in the level "MASTERKUD Padrinos magicos" there is something broken. the strawberry at the right end of the ground crashes the level with "Entity 'MySprite18' doesn't exist" (in the replay, too)
 * add the free textures from this website:
   http://blender-archi.tuxfamily.org/Textures  
   http://lemog.free.fr/lemog_v5/thumbnails.php?album=topn&cat=0  
 * zoom in replays
 * start game with menu music ; go in option; disable sound ; play a level ; abort -> the music start because sound is still enabled
 * add documentation of AddPenaltyTime and unallow the possibility of putting a negative value
 * Better handle of the game states
   example: syntax error in lua script -> segfault (in drawFrame, in a GS_PREPLAY case, you can change the game state -> the game want to draw a non loaded level -> segfault)
 * in replay mode, (replay 53361 for example), when you touch a strawberry in the same time as the flower, the strawberry doesn't pop.
 * feature : a replay button when you finish a level (or die) which plays Latest.rpl
 * script : disable a key (brake for example, ...)
 * [13:25] <gaivota> aspegic500: I found a bug which is the following: when letting xmoto running without doing anything for some time the game crashes, althoug it keeps running
   [13:26] <gaivota> atm it shows a blank black screen, once before it diplayed the menu althoug the ingame was running and similar strange behaviour
 * BUG : is it normal ?
         C.x=(getParent()->getDispWidth() * pArrow->ArrowPointerPos.x) / 800.0f;
         C.y=(getParent()->getDispHeight() * pArrow->ArrowPointerPos.y)
    / 600.0f;
         moreover, it doesn't work with the zoom
    and Game.PlaceScreenArrow(5, 5, 225) : doesn't respect coords
   nicolas: in fact, arrows of script are dependant of the resolution ;
    so i did not documented them while it's not clean :
        The concerned functions are :
        PlaceInGameArrow(x, y, angle)
        Place an arrow in the game to show something to the player
        PlaceScreenArrow(x, y, angle)
        Place an arrow in the game to show something to the player.
        Position is relative to the screen
        HideArrow()
        Hide the arrow

 
 ******************
 * flag sprite to add
 * two options for music : menu and ingame
 
 ====Competitions
 * dayly/weekly/monthly competition based on a few tracs , different entry levels easy medium hard
 * reset the scores once in a while
 * work on not having to validate the scores by hand
 
 ===SDL_GFX
 * when are texure is rotated we need to copy the texture mutplile times so it's always visible
 * sdlgfx with mingw: http://www.wormux.org/wiki/compile_under_mingw.php#SDL_gfx
 * SDL_GFX crashed on mac http://rafb.net/p/L95KzR62.html
 * keesj:real caching strategy, currently the SDL_gfx chooses to caches based on expected size of the image
   We need to implement a real caching strategy, for example a LRU hash table (least recently used hashtable
   Here is an article that might be of good use http://www.gamedev.net/reference/articles/article2240.asp)
   I would also like to define the max amound of memory that may be used by the system. if this limit is reachted
   leat recently used images must be throws away
 * keesj:SDL_gfx? cache static bloks of the minimap as image
 * keesj:create a on screen input system for text
 * keesj:create sensititive area's on the screen for gameplay
    -on the nokia 770 it is pretty easy to 
 * keesj:test the SDL_gfx version on windows/mac
 * keesj:faster startup , smart caching etc system must run under 64 MB :)
 * keesj:define code conventions,testing procedures,release-roadbook
 * a keyboard key for next level
 * reload theme done, require tests, and some sprites (like mouse, main menu background) are not updated i suppose
 * Optimize minimap rendering. On some levels (very smooth ones for instance) it takes much longer to
   render the minimap than the actual level.
 * Sometimes memory are leaked from the event queue in m_MotoGame
 * BUG rotation on grass of dynamic blocks on sdlgfx
 
#############################################################################################
### not important, not really necesary, very low urgency, or just makes thing more complex:
 
 * BUG ? http://forum.xmoto.free.fr/viewtopic.php?p=212#212 (not really i bug methinks)
 * script :
    add : rotation for blocks         
 * BUG : save a replay as 0.0.0.0 restart xmoto, it doesn't appear in
    the list
 * to be able to give a color to a block as parameter in a level
    (instead of a texture)
 * bug : keys 1 2 3 4 5 won't work on french keybord : allow to configure key action for script instead of allow the script to choose the key
 * OS X stuff:
         * Add Universal Binary build system to subdirectory.
         * Modify so it could run on a compile farm.
         * Use Application Support directory instead of ~/.xmoto on OS X
         * Better packaging for OS X (Readme, License, etc)
 * BUG : as you can see at the end of "the only smooth", the block is
    not correctly drawned
 * BUG :
 - start a level, press very fastly (ESC-ENTER)* ; quite easy to
    reproduce (works on windows and linux)
    try {
      m_Renderer.render();
    } in Game.cpp to catch the exception.
    in VApp.cpp, if you replace while(SDL_PollEvent(&Event)) by
    if(SDL_PollEvent(&Event)), the pb disappear.
    event order threaten is ENTER then ESC
    _RestartLevels is called
    then the ESC is managed and it fails
 * when you press o in the level list and that no level start with an
    o, it bases on the 2nd letter,...
 * themes : check the md5sum of the files ; don't display available if
    it's not really available
 * xmoto -nosound
 * use z-buffer for depth ordering
 * BUG : when you see level info in level pack ; then you click on ok
    -> it close the window and the levelpack window
 * loadness of headcrash sound should depend on head velocity 
 * themes : not more animation in .xml ? -> be able to load an animated bike ?
 * to be able to move a zone ?
 * we could make a "standard xmoto library" of lua functions :)
 * new script call :
   collision between sprites, between sprites and head
 * if a script ask for an already used key, propose an other one
 * a button "clean replays" which remove not highscore replays or
    something like it
 * check for a new version at startup
 * add 2 rooms configurations so that i can display, world highscore
    and highscore of my room (priority=low)
 * add import of players.bin (so that people playing at different location can merge their highscores) (priority=very low)
 * separate personnal highscores from others (two tabs instead of a
    button, it's easiest)
 * two possibilities to show room : one to see the world highscore, one
    to see you room (optionnal)
 * display wind
 * a block0.Touch() function
 * network game
 * freestyle mode
