/*===========================================================================
 *
 * File:	Dfblocks.H
 * Author:	Dave Humphrey (uesp@m0use.net)
 * Created On:	Friday, June 29, 2001
 *
 * Defines the CDFBlocksFile for manipulating Daggerfall's BLOCKS.BSA
 * file, containing 3D building block information.
 *
 *=========================================================================*/
#ifndef __DFBLOCKS_H
#define __DFBLOCKS_H


/*===========================================================================
 *+
 * Begin Required Include Files
 *
 *=========================================================================*/
  #include "uesp/dagger/bsa/dfrmb.h"
  #include "uesp/dagger/bsa/dfbsa.h"
  #include "file/file3ds.h"
/*===========================================================================
 *		End of Required Include Files
 *=========================================================================*/


/*===========================================================================
 *
 * Begin Definitions
 *
 *=========================================================================*/

 	/* Number of records in the Blocks.BSA file */
  #define DFBLK_MAX_RECORDS  1400

/*===========================================================================
 *		End of Definitions
 *=========================================================================*/


/*===========================================================================
 *
 * Begin Type and Structure Definitions
 *
 *=========================================================================*/
#pragma pack(push, 1)

#pragma pack(pop)
/*===========================================================================
 *		End of Structure and Type Definitions
 *=========================================================================*/


/*===========================================================================
 *
 * Class CDFBlocksFile Definition
 *
 * Handles the input/output of records from Daggerfall's BLOCKS.BSA file.
 *
 *=========================================================================*/
class CDFBlocksFile : public CDFBsaFile {

  /*---------- Begin Protected Class Members --------------------*/
protected:


  /*---------- Begin Protected Class Methods --------------------*/
protected:


  /*---------- Begin Public Class Methods -----------------------*/
public:

	/* Class constructor/destructor */
  CDFBlocksFile();
  virtual ~CDFBlocksFile() { Destroy(); }
  virtual void Destroy (void);

	/* Checks a directory entry for filename types */
  boolean IsRMBFile (const int Index) const;
  boolean IsRDIFile (const int Index) const;
  boolean IsRDBFile (const int Index) const;
 
  	/* Create and load an RMB object */
  boolean LoadRMB (CDFRmbFile** ppObject, const int   Index);
  boolean LoadRMB (CDFRmbFile** ppObject, const char* pFilename);
  boolean LoadRMB (CDFRmbFile** ppObject, const int   FileIndex, 
		   const int CharIndex,   const int Number);

 };
/*===========================================================================
 *		End of Class CDFBlocksFile Definition
 *=========================================================================*/


/*===========================================================================
 *
 * Begin Function Prototypes
 *
 *=========================================================================*/



/*===========================================================================
 *		End of Function Prototypes
 *=========================================================================*/


#endif
/*===========================================================================
 *		End of File DFBlocks.H
 *=========================================================================*/