+----------------------------------------------------------------------------+
|                            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.6 | Urgent Things 
+-------+

- clean the class hierarchy
    - remove Armyset_army (merge with army)
    - remove armyset (put in armysetlist; along the way one could identify armysets
      by id instead of the name)
    - action.cpp update and weeping
- fix some of the most annoying bugs
- adjust the code to avoid translation graphic problems (cut phrases or similar)
- update Italian translation (only Editor Manual)
- a small label showing the current position of the mouse cursor as in the editor
- port all game events to the new event system 
- fixes and improvements for the fighting code
- 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
- implement usage of unicode
    - language selection dialog
    - loading/saving in utf-8
- Savefile needs a rewrite; merge all changes into a single description
- tileset and rendering description file. Slowly but surely the stuff becomes
  too complex
- editor improvements:
    - fix the problem with PG_MultilineEdit (propably this one needs to be fixed),
      especially segfaults in the event editor when the comment edit is used
      (currently commented out)


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

IMPLEMENTATION DETAILS

- various improvements to the editor
- check for use of variations of tiles
- excessive use of PG_Application::SetBulkMode
- proper handling of game winnings and losses in w_edit (needs images for
  winning/loosing)
- getting quests should be a property of the player class
- 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 epic battles (with units attacking etc.)
- 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

- epic battles
- use 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?
- improve smallmap (better symbols, more flexible sizes)
- 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.
- either find a use or remove the vitality status of units
- update the action handling + copy construtor
- remove the case of a player being of type "neutral"
- use associative containers for lists? (key = id/position, value = object)
- maybe (not checked) use some STL a bit more (e.g. find instead of iterating,
  use const_iterator if applicable etc.)
- review movement boni (should they be applied to the whole stack?)
- 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)
- remove most of the macros and structs from defs.h to more appropriate places
- add persistent players (i.e. players that can never be killed) and a maniac AI
  for wandering monsters (attack + raze cities etc.)
- add some information for enemy stacks (by right-clicking or so)?

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


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