Narya Notes -*- mode: outline -*-

* Media framework
Make sure the animation and sprite stuff is general purpose.

Fix all the code that presently loads up tiles from tilesets by id which
should really be loading the tilesets by path.

* General
Remove dependencies of nodemap on miso.

Perhaps provide an application identifier to the resource manager so that
it can cache resource sets in a unique directory in the event that
multiple Narya using applications are run on the same machine.

Make Object{Input|Output}Stream which manages mapping from Streamable
class to two-byte identifier wherein the class name is only transmitted
the first time the class is seen on the stream and is subsequently
identified by the two-byte identifier. The client and server can use these
streams on either end to efficiently transport serializables. They will
need to be reset when the client loses connection. Check to see if
Serializable support already does this (in which case we can just use it
directly).

* 6/18/2002
** Hot tileset action
! Refactor ObjectTileSet so that it doesn't have to extends
  SwissArmyTileSet, but instead the object information can be supplied as
  augmentation to a SwissArmyTileSet or a TrimmedTileSet

- Make component bundling stuff use a short path name for the component
  action tile image since we have to put it into the serialized tileset
  instance anyway.

** Image vs. BufferedImage
- Sort out the whole Image vs. BufferedImage fiasco in the media package.
  We're casting Image objects to BufferedImage objects willy nilly and we
  should rearrange things so that we're usually passing around
  BufferedImage objects until the time comes to convert them for display
  on the screen.

* 6/19/2002
** Virtual media stuff
X Add "keepPathableVisible" or somesuch which like setFollowsPathable will
  scroll the screen but will only do so to keep the pathable in the
  visible bounds rather than centered.

* 6/21/2002
** Parlor enhancements
- Support rematches and "best two out of three" style play

* 7/24/2002
** Cast enhancements
- Eventually make BundledComponentRepository use ImageManager cache on the
  images it loads in ResourceBundleProvider.loadImage

* 9/5/2002
** Character component enhancement
- Add support for component "aliasing" (in the Macintosh sense) whereby
  the same image data can be used for multiple character components,
  possibly with different (x,y) origins. Perhaps this means that in the
  action definition we do something like:

  <action name="on_hips" extends="standing" offsetOverride="0, 0">
    <framesPerSecond>5</framesPerSecond>
    <origin>50,112</origin>
    <orients>SW, W, NW, N, NE, E, SE, S</orients>
    <tileset>
      <heights>160, 160, 160, 160, 160, 160, 160, 160</heights>
      <widths>100, 100, 100, 100, 100, 100, 100, 100</widths>
      <tileCounts>1, 1, 1, 1, 1, 1, 1, 1</tileCounts>
      <offsetPos>0, 0</offsetPos>
      <gapSize>0, 0</gapSize>
    </tileset>
  </action>

  Where the 'extends="standing"' indicates that any component not
  specifically defined for the "on_hips" action should fall back to using
  the corresponding component in the "standing" action (with an overridden
  offsetPos specified by 'offsetOverride').

* 10/2/2002
** DashO client munging
- Classes that can't be renamed
  implements Streamable
  extends GameConfig (due to MiCasa lobby) (caught by Streamable)
  extends MessageBundle
  implements ImageLoader

- Classes whose fields can't be renamed
  extends DObject

- Classes whose methods can't be renamed
  extends Controller (they look up handle<foo> methods by name)
