/
backup/
bin/
clans/
gmc/
logs/
players/
todo/
Wishlist for the new 0.5.x tree
(! = closed, * = normal, l = lower priority)


* use XML extensively, use dynamic storage of properties in objects

  - player & area files: dynamic storage of "modifcation" specific data
    in an associative array, possibly with callbacks/triggers when
    new data is stored, see below for description of "modifications"
   
  - server configuration: store known server-side variables and
    introduce new ones, such as experience formulas, experience per level, 
    damage formulas, number of stats, stat maximums, etc.   
    
  - GHL (working title): Grendel Help Language, use XML to describe
    help/manual content, in cooperation with system configuration elements
    to describe visual properties (colors, etc.)
    
* revise grouping system: generalize GObject to some form of object 'list'
  (possibly named GItem), which can contain 1 or more GItems or subsets
  of GItem, something along those lines
  
  -> do not group objects solely on basic stats, two objects must be an
     *exact* match if they are to be grouped
     
  -> Bags and containers should be saveable
    
* get rid of a lot of obsolete smaug/diku/emlen-inspired code, this
  only helps in keeping the system unstable and hard to manage. 
  
  - rewrite position code, instead of mutual exclusive POS_XXX identifiers
    use flags to describe a combination of states
    
  - possibly rewrite/rename the fighting & magic code, this will break
    compatibility but improve code re-usage and stability

  - remove special timer states, unify as action timer

  - generally clean up code according to new coding standard,
    remove obsolete stuff like GObjectIndex etc.
  
* generalize races & clans to configurable character "modifications",
  with some form of plugin architecture to add specific behaviours to
  a character (access to commands, properties, etc.)
  
  - modifications possible for areas as well, enables "dynamic" areas,
    such as randomizing mazes etc.
    
  - give races unique 'wear' locations; dragons should wear armor on their wings
    instead of their arms

* use coordinates and mpfindpath code to make NPCs more intelligent

  - generalize current experimental coordgen code to generate multiple
    "coordinate spaces", each space allocated for a disjunct, unlinked set
    of areas (usually, a new space begins when a portal is reached)
    
  - move towards 'true' AI by using the findpath code to allow NPCs
    to find particular targets or locations in the game world

* better damage/experience calculus

  - unusually difficult task, maybe worth the time to investigate 
    the possibility of auto-balancing tools or algorithms
    
  - relies extensively on configurability of server-side variables (see above)
  
* gmc specific features/extensions:

  - extracting matching parts from a string (possibly using full regexps instead
    of the fastmatch used now)
  
  - global/mudwide (static) variables
  
* area loader
  
  - auto linewrap, filter out hard line breaks

* shops

  - opening times
  
  - out-of-stock possibility
  
  - shopkeepers must be able to carry their own gear

* string matching
  "Goto orc"; first complete match, then names that *start* with orc, and then
   a full search on '*orc*'


l implement isPlayerName(), isObjectName(), isMobName() and (perhaps)
  isSpellName() and enforce their use throughout the code
  
l IMC (intermud communication): both channels *and* noteboards
  (perhaps separate server for noteboard, or whatever)

l (optional) "real life" sleep - players need sleep to keep from falling 
             down after 2 days, some rooms (with beds) have better sleep ratios etc.,
             possibly as a demonstration of the "modification" system
             
l (optional) mud police, implemented as a series of gmc scripts