/*
 * showanim.c by Christian Ludwig & Carolyn Schppner (CATS)
 * decompression code based on Jim Kent code
 * requires at least V39 IFF modules
 *
 * This is a preliminary example of using iffparse and the NewIFF39 modules,
 * plus some new ANIM modules, to load and display an ANIM.
 *
 * The example has many shortcomings:
 *
 *    - Since all memory allocations are done before parsing the ANIM,
 *      more memory than necessary may be allocated for XOR ANIMs
 *      (i.e. a second alternate buffer bitmap is allocated).
 *      Note also that apparently many older XOR brush ANIMs do not
 *      properly state that they are XOR.  This code kludegs by
 *      assuming that all interleave=1 bits=0 anims are actually XOR.
 *
 *    - IFFParse parsing does not allow seeking back to a file position
 *      such as would be desirable for looping an ANIM.  Looping is
 *      not implemented in this example.
 *
 *    - Playing of the the ANIM is not optimal for screens since the
 *      ANIM changes are being done in offscreen buffers and the whole
 *      resulting image is blitted to the screen for each frame.
 *      For V39, a more optimal method would be to use the V39
 *      double-buffered screen routines, and for V37 and earlier
 *      to use some older method for swappinga screen's bitmap.
 *
 *    - Playing of an ANIM in a window does not allocate or remap colors,
 *      and just shows the ANIM as-is in the screen's colors.
 *
 *    - This example streams but does not spool - i.e. it plays the ANIM
 *      from disk, but does not have any code to load up additional
 *      deltas ahead of time.
 *
 *    - This example uses no timing - it just plays the ANIM as fast
 *      as it can.
 */
