home *** CD-ROM | disk | FTP | other *** search
/ Freelog 42 / Freelog042.iso / BestOf / Heroes / doc / TODO < prev   
Text File  |  2002-03-30  |  5KB  |  121 lines

  1. Tasks for Heroes.  If you think something is missing here,
  2. please send a note to <heroes-discuss@lists.sourceforge.net>.
  3.  
  4. * Use the level-loading library in the level editor, so as to get rid
  5.   of most struct in src/struct.h (and their ugly ATTRIBUTE_PACKED).
  6.   This require makeing the level editor work with libhlvl (see
  7.   src/lvl/README for more details).
  8.  
  9. * Add `FIXME: obscure' comments at will, so I know where comments or
  10.   rewrite is really important.  (Actually this can be done by anyone
  11.   reading the code.)
  12.  
  13. * Check dependencies.  Heroes >= 0.11 requires heroes-data >= 1.1,
  14.   Heroes >= 0.18 requires heroes-data >= 1.4.  Heroes will abort with a
  15.   "cannot open file X" message on error.  These is definitely some room
  16.   for improvement here.
  17.  
  18. * The code is VERY UGLY and needs to be cleaned up.
  19.  
  20. * hedlite.c should be cleaned.
  21.  
  22. * If possible, Get rid of GETWORD, SETWORD and Cie, see src/endian.h.
  23.  
  24. * The default installation path on BeOS should not be /usr/local (?).  I need
  25.   some more input about this.
  26.  
  27. * There are several comments in French.  They should be translated.
  28.  
  29. * Check every place were filenames are used, use buffer allocated dynamically.
  30.  
  31. * Split heroes.c
  32.  
  33. * Split hedlite.c
  34.  
  35. * const.[ch] should not exist.
  36.  
  37. * Use {u,s}{8,16,32}_t types where it's important.
  38.  
  39. * __attribute__ ((packed)) is a gcc-isms, something must be done to avoid
  40.   them. `something' may be using a different level format, in which case
  41.   the `heroeslvl' above would be helpful.
  42.  
  43. * Add an option that add a new life each time you start a new level.
  44.   Suggested by Samuel Tardieu (sam@infres.enst.fr).
  45.  
  46. * Programmable vehicles (for CPU controlled ones) would be nice.  It
  47.   would be fun to link with Guile and control the vehicles in scheme.
  48.   Or in Python.  Or in C (using shared libraries like pluggins).
  49.  
  50. * The external editor could be ported too, this
  51.   would need many many more work.  (It's probably easier to rewrite it
  52.   from scratch or from hedlite.c.)
  53.  
  54. * Network support.
  55.  
  56. * Direct X11 support would be nice.
  57.  
  58. * What is the effect of removing the DMODE_SOFT_MUSIC from MikMod options ?
  59.  
  60. * Would Hermes be faster than LibGGI's crossblit ?
  61.  
  62. * Redesign the way menus are handled internally.
  63.  
  64. * Write assembly routines for stretching code.
  65.  
  66. * Use makeheaders ? (provided I can get in touch with its maintainer)
  67.  
  68. * Load GGI, SDL, and MikMod libraries dymically (i.e. select
  69.   available library at run-time versus configure-time).  This is probably
  70.   easier to do now, with the new way media libraries are handled.
  71.  
  72. * Proof-read the documentation.
  73.  
  74. * Full screen support with Allegro.  Is it possible?
  75.  
  76. * It would be nice to have the argument processing and argument
  77.   documentation of `heroes' and `heroeslvl' generated automatically
  78.   from a definition file (well, two definition files, one for each
  79.   program) using AutoGen.  AutoGen ships with a tools called AutoOpts
  80.   that performs a similar task, but I find the result horrible.  Our
  81.   command line parsing code should follow the Gnits standards and use
  82.   getopt_long.  (Such alternate tool is on the TODO list of AutoGen,
  83.   so it might be contribued back.)
  84.  
  85. * The end-scroller used to be an end-scroller :) Now it's just a
  86.   screen that display "THE END".  That's not really rewarding for the
  87.   player.  It would be nice to have something more delighting here.
  88.  
  89. * Heroes-data should ships with 100 levels, shouldn't it? (There is
  90.   only 94 levels, IIRC.)
  91.  
  92. * There are some "extra" levels in heroes/src/extralvl/ on CVS.  Do
  93.   they deserve some packaging?
  94.  
  95. * There are some hq modules packaged in http://heroes.sf.net/dl/misc/
  96.   Should they be packaged in a more "official" way?
  97.  
  98. * Some files #include too much headers (for historical reasons), this
  99.   slows down compilation times.  That's quite unrelated to Heroes, but
  100.   a tool that can figure which #include are superfluous would be
  101.   appreciated by several people I have talked to.
  102.  
  103. * The "AI", if I may call this "AI" (see `ia_*' functions in heroes.c, but
  104.   have some aspirin handy) is ABSOLUTELY HORRIBLE.  It's using a very
  105.   stupid and inefficient recursive algorithm.  `A*' is not usable as-is
  106.   with the current path evaluation functions, but maybe these heuristics
  107.   can be changed too.  A better "AI" have been required several times in
  108.   the comments about Heroes on www.happypenguin.org.
  109.  
  110. * Heroes is relocatable (the manual explains that), but heroeslvl isn't.
  111.  
  112. * The paragraph formater (parafmt.c), has two minor issues: it does
  113.   not handle a paragraph with leading spaces (i.e. first line is
  114.   indented) properly, and will probably fail to format a paragraph where
  115.   one word is larger than one of the line (even if that's not the line
  116.   the word is finally put on).
  117.  
  118. * Improve the test suite (whatever you think it can mean).
  119.  
  120. * Add more items to this TODO list.
  121.