hpiutil2

Copyright (C) 2005 Christopher Han <xiphux@gmail.com>

Classes to read (and eventually write) Total Annihilation
HAPI resource files (*.hpi, *.ccx, *.ufo, etc)

hpiutil2 is designed to be a cross-platform solution from the
ground up.  There are no Windows-specific types, only standard
C/C++ library types.
See the comments for more information.


- hpifile.cpp is the main class for dealing with an hpi file.
- hpientry.cpp is a class to represent a file or directory block
  within the hpi
- scrambledfile.cpp is a class that acts as a stream handler
  and transparently decrypts according to a key
- substream.cpp is a class to represent a small section of a
  scrambledfile as its own stream
- sqshstream.cpp is a class that uses a substream and parses the
  SQSH chunk data from it.
- hpiutil.cpp contains some wrapper functions to make it easier
  to interface with programs already using a dll version of hpiutil


Thanks to the following people:
- Joe D (HPIUtil), for releasing the HPIUtil source code
- Wesley Hill (OpenRTS), for showing me how to deal with the
  compression algorithms
- Barry Pederson (UnHPI), for a logical class structure and
  dealing with endian issues
- and Cavedog, of course, for creating Total Annihilation


Standard disclaimer:

 hpiutil2 is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2 of the License, or
 (at your option) any later version.

 hpiutil2 is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with hpiutil2; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
