+----------------------------------------------------------------------------+
|                            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.

Note that this TODO list may not be the most recent version. You find the
ultimate reference on our wiki http://freelords.sf.net/cgi-bin/moin.cgi/TODO


+-------+
| 0.3.8 |
+-------+

- update and improve the AI
    - should buy and set production properly, not only basic ones
    - search ruins (and remember the occupant?)
    - customizable (aggressive/defensive etc.)
    - look at melee _and_ ranged combat
    - make use of the new combat system (i.e. attack with >1 stack)
    
- implement network player, i.e. a player that gets a list of actions and executes
  them step by step
- implement roads (as separate terrain type)
- switch to a font that supports non-European characters (Hindi)
- hide statistics of the other players (gold, enemy armies)
- towns should have some basic auto-defense

- more user-friendly access to scenarios (e.g. replace "Tutorial" button with
  "scenario" button)
- 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?)
- 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

    check for paragui compiled with unicode support

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

IMPLEMENTATION DETAILS

- properly implement music
    - implement sound (proper channel concept, caching)
- 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
- small notes:
    - implement hardware surfaces
    - remove Maptile::TerrainMalus; can be replaced by 2 ** (Tile::Type)
    - GameMap should store the variation of the single maptiles
    - armies that take part in a fight should loose a lot of movement points (1/3 or so)
    - the constructor in w_edit can be simplified considerably, since the items
      are reporsitioned by changeResolution afterwards anyway
- 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
- savegame converter
- improve terrain drawing; 2 ideas stolen from wesnoth:
    - transitions don't go from *terrain* to grass, but the "higher" terrain overlaps
      the "lower" one. Needs some more specification and thinking, but as basic idea...
    - multi-tile terrain. Create e.g. a mountain top that stretches over several tiles.

- 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.)
- In the random game the Map is created and then reloaded. We can fix it.

GAMEPLAY

- more advanced terrain movement (e.g. cavalry gets malus through woods etc.)?
- more army abilities: armour-piercing (defense cut off at certain limit) and siege engine?
- implement epic battles (with units attacking etc.)
- use yet some more interesting events in the tutorial
- 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
- 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. ;-)
