Various bits, in no particular order.  This is far from a complete list.

- Rewrite all variables, using own typedefs of type:
  int8, int16, int32    : Variables that should be exactly this size.
  int8u, int16u, int32u : Variables that can be larger to increase speed.
  Add stuff about this in config.h or other place.
  (The needed #ifdefs will need some debugging...)
- Try to get down to using only one select each loop.
- Expand the features of parse_message():
  Regular regexps (*?) [HAH! -Frank] and support for AND (&) as well as or(|)
  Support for state-variables in messages.
  Support for button-effect from messages (ie, say the right thing, and
  something actually _happens_!).
- Fix security problem with editor / text-editor.
- #define decrease_ob(xyz) decrease_ob_nr(xyz,1)
- Display-bug is probably due to bags.  Investigate draw_all_inventory().
- Fix bug that makes game crash on HP-computer (hplos) if it can't fix the font.
- When two players using pixmaps enters the game at the same time, the
  first player will be freezed while the pixmaps are loaded for the second.
  The other players won't notice anything though, so don't know if this is
  worth fixing.  (Shouldn't be noticable without debug option)
- Remove the bonus variable from objects.
- Delete oldest swapped map in case the TMPDIR disk fills up while
  swapping out a map.
- Fix throw, and make giants throw boulders (medium size)
- The game can crash when a part of a monster is killed by a fire-wall.
  (There is a temporary fix for this though, so the chance of crash is small)
- Debug all use of the friendly flag.
- Maybe improve the way speed is used on spells (ie, getting disturbed, etc).
- Is it worth it to make the blocks_view routines more perfect?
  They way they are now they are very fast, and works 99.9% of the time.
  (100% if all maps were designed correctly right)
- When dropping items onto objects that blocks view, make them "fall beneath".
- Pedestals activated like buttons when specific objects are dropped.
  (And opposite when they are picked up)
  (object->race == pedestal->slaying)
- Statues turning into golems when activated (like doors).
- Finish converting to general object-windows.  These could also be
  used from the editor, to get a list of all objects at a place, and to
  get a list of objects within another object at that place, and then
  being able to edit any specific object.
- The game craches when I put D_LOCK/D_UNLOCK into sell_item() to avoid
  drawing the inventory of the player when selling from a sack.
- More options should probably be checked before reading mapindex, maps,
  archetypes, etc.
- Get rid of the freeing and loading of objects when saving a map in the
  editor.  The new save-map routines always frees the objects it saves,
  but this doesn't work very well with the editor.
- Make all .c files less than 50Kb.  If neccesary, split them up.
  (comp.sources.games postings must be a shar-arkive where all files
  are that small (the names must also be max 13 chars if I remember right))
- IDEA: Make spells be objects.  One object for each spell you know.  Same
  system for the monsters.  For now let the objects be invisible.
  Then later create a spellbook into which the spells can be "put".
  Thus knowing a spell consists of having the spell-object in some
  spellbook.
- Make a better time-scheme.  For instance using an integer as a counter,
  and compare this to the variable next_move in each object.  Thus a
  float doesn't have to be increased in *each* object *each* round.
  Of course, to get a resolution larger than 1/x, another variable, time_debt,
  must be made.
- SPEED_GAME still isn't working pefrectly (though close).
- Make push-keys not take effect when writing
- Get rid of color.h (Get rid of backgrounds and the .om file)
- If an object is killed (removed/freed) while its firebreath (or other
  objects owned by it) are still moving, the game used to generate warnings.
  I'll try to make a system that uses refcounts in objects when freeing them.
  When an object is killed, it's speed is set to 0, and free_object() will
  decrease the refcount.  The refcount is increased for each pointer pointing
  at the object, ie each time set_owner() is called.
  When the refcount reaches 0, the object will be freed for good.
- make it possible to output hiscores for one class/player only, e.g. -s mage
- Move the editor into a separate program
- Find and fix the bugs that create the invisible walls.  (The bug sets
  the omap instead of the map in the editor somewhere).
- Find and fix the bugs which makes buttons behave strangely sometimes.
- Use map->difficulty for more things than bonuses in treasure.c
- Fix some bugs so that it is possible to malloc instead of calloc everywhere.
  (Right now, it seems some pieces of code rely upon the fact that
  calloc clears what is allocated, those pieces must be hunted down.  I've
  managed to pin down that the problem is in the calloc() in player.c).
- Put some security and user-friendliness in the map-editor.
- Use X-resources more extensively (colors, etc)
- Make maps have filepaths instead of levels.  Incorporate absolute and
  relative path.  Remember security.
- Move the colors out of the big array and into each object.
- Find and fix the bug that sometimes makes icecubes move to 0,0
- Fix the bugs in the above mentioned improvements

At this point I'll post v1.0.beta to alt.sources and later v1.0 to
comp.sources.games.  But the TODO list will never stop...:

- Change the speed variables from float to long to save speed in
  computers that lack floating-point co-processorc.
- Maybe add light/darkness and moving light-sources to the game.
  (if it can be made fast enough)
- make more items!  Imagine _all_ the items from nethack/umoria/ularn/omega!
  (We're getting very close now, though!)
- make more graphics.
- make more spells.
- Figurine (when a figurine pet dies, it becomes a figurine, and can be reused)
- make/get more *good* maps, and get rid of some bad maps.
- make a client/server system (tcp/ip)
- make easier to make new object-types.
- maybe even make a simple interpreting programming language to be used by
  the objects. [object ob;ob=environment();set_speed(ob,3);sleep(30);
  set_speed(ob,default_speed(ob));destruct(this_object());]
  (sleep(30) is the easy part: speed_left=-1,speed=1/30.0)
- make (more) DOCS!
- make even more items/graphics...
- Some levels should contain a few tough monsters instead of 1000
  easy monsters.
- Make some general variable structures, try to get rid of the current
  mess where some variables are used for other things than they
  were meant to (union won't do either).
- Expand the TODO list.


CD

* The editor should handle stacks of objects, i.e. an earthwall
  may cover a chest.

* Parse the arguments with getopt in begining of main.

* Diffrent speeds, animate speed, generation speed, movement speed,
  attack speed, ?
[It can be changed by the maxsp variable (Generation speed=speed/maxsp)]
