+----------------------------------------------------------------------------+
|                            F R E E L O R D S                               |
|                            -   TODO LIST   -                               |
+----------------------------------------------------------------------------+

This todo list is a guide for the developers as to what needs to be done
to make FreeLords a complete game. Although this todo list is segmented 
version wise, it is still a guide. So, if you want, you can still work on 
a version 0.6 feature while the version 0.4 is still under way. If you have
questions regarding an item, feel free to ask.

The brackets behind some of the items tell who has shown some interest in a
topic. This does not mean this item is owned by the person, it is just a help
if you look for items not yet to be done.


+-------+
| 0.3.7 |
+-------+

- update documentation (editor)
- update German translation

+-----+
| 0.4 |
+-----+

IMPLEMENTATION DETAILS

- more user-friendly access to scenarios (e.g. replace "Tutorial" button with
  "scenario" button)
- separate class for music so we don't have to put #ifdef's etc. everywhere
- vector dialog improvements:
    - should look good with every map size, not only standard ones (i.e. dynamic
      resizing vs. static optimized size)
    - stacking of sent armies (will this feature be useful?)
- adjust the code to avoid translation graphic problems (cut phrases or similar)
- add some information for enemy stacks (by right-clicking or so)?
- perhaps one could implement the enums in a more robust fashion (i.e. use
  (unsigned) integers which only have definite values); this saves a lot
  of ugly casts
- clean the class hierarchy and overall improve the code
    - misc stuff (callback functions private, excessive usage of const,
      STL classes, use SDL types (Uint etc.) and such things)
    - todo: graphical classes + editor
    - Rewrite ItemDialog and implement Item action
- small notes:
    - AI_Analysis/Allocation: consider ruins as threats
    - implement hardware surfaces
    - remove Maptile::TerrainMalus; can be replaced by 2 ** (Tile::Type)
    - GameMap should store the variation of the single maptiles
    - when clicking on "small" or "very small" map in the game preferences, the
      number of cities etc. should be adjusted
    - armies that take part in a fight should loose a lot of movement points (1/3 or so)
- editor improvements:
    - fix the problem with PG_MultilineEdit (probably this one needs to be fixed),
      especially segfaults in the event editor when the comment edit is used
      (currently commented out)
    - use PG_SpinnerBox instead of hand-crafted placing
- implementation of lose game drawing

- request by knutters: 
    - larger dialogs with 1600x1200 resolution 
    - more shortcuts
    - "sleep" mode for units

- fog of war: things to be done (more or less in this order):
    - add copy constructor to FogMap
    - status (no FoW, simple FoW, advanced FoW) must be somehow "globally" available
    - player must update FoW at beginning of turn (open->uncovered etc.)
    - implement advanced sight calculation (tiles have sight properties that determines how
      far a unit can see)
    - path calculation in unknown terrain, must be checked at each step
    - drawing code in bigmap
- more complex line shuffling in fight (?), i.e. if front line breaches, send best
  fighters to protect the ranged units
- check for use of variations of tiles
- excessive use of PG_Application::SetBulkMode
- localization in some more languages
(- implement hardware surfaces (with freelordsrc and command line option)
        (need to look for the advantages of a hardware surface and how to switch
        them on))
- implement maptiles which block every movement (like e.g. cave walls)
(- lock all hardware surfaces when drawing!)
- improve the configure script (user reports problem with SDL installed in /usr/,
    SDL_Image in /usr/local, configure doesn't complain, make does; configure
    doesn't check for paragui compiled with SDL_Image support etc.)
    check for paragui compiled with unicode support
- In the random game the Map is created and then reloaded. We can fix it.

GAMEPLAY

- implement epic battles (with units attacking etc.)
- use yet some more interesting events in the tutorial
- improve the AI (search ruins, different characters, update)
- implement use of keyboard everywhere
- experience points and levels      (favorite topic of Andrea)
  * choose a good function to calculate levels (now is linear)
  * choose a decent ai behaviour when an army advances a level
  * implement new extra bonuses
- add unit transportation (boats)
- implement abilities of heroes
- implement different rewards, maybe by associating reactions to a ruin?
- Add stop button for "computer only" mode of play to save or quit.
- add a "replay" function so past turns of the other players can be repeated
  after the other players has finished their turns.
- fix at least some of the TODO's, TBD's and FIXME's in the code
- report for temples and ruins
- perhaps query the user before entering a ruin and give some vague details about
  the occupants
- show city names as labels on the bigmap (should be turned on/off as option)

yet more reactions and events:
    - modification of objects on the map (remove ruins/temples, change their
      names and such)
    - improved messages (using icons or something like this, don't know yet)
    - scroll_to reaction (as opposed to "jump to")
    - connect events to quests and temples

MAP

- more normalization (Vibhu wants to care for this task)
- Implement different map styles ( island, inland sea, etc ..)

HELP

- Ingame help browser (XML based so can be reused for the HTML pages).

GRAPHICS

- a new freelords paragui theme
- more graphics for the game (at least try to find some other people that can help with graphics)
- add pictures for move bonuses
- rewrite the armyInfo dialog    
- Water animation
- add new terrain types
- add new armysets
- shields ( or Unit flags)
- implement pictures for pressed buttons


Evergreen

- update translation

+-----+
| 0.5 |
+-----+

GAMEPLAY

- scripting AI('s)
- Implement campaigns
- add sounds
- finish fog of war
- Implement multiplayer

MISC

- create a campaign

+-----+
| 0.6 |
+-----+

GRAPHICS

- a paragui theme

+-----+
| 1.0 |
+-----+

Relax. Play FL against the AI or using multiplayer.
Perhaps start off on making a WarcraftIII clone. ;-)
