/*=========================================================================
*
* SprObj.h	- Super Object Structure
*
* Version			1.0
* Revision date
*
*=======================================================================*/
#ifndef SPROBJ_H
#define SPROBJ_H


//--- Includes --------------------------------------------------------

#include "typedef.h"

#include "matrix.h"
#include "sctobj.h"


//--- Enums ---------------------------------------------------------

typedef enum 
{	
	MAYBE_MIRROR	= 0x01, 
	IS_MIRROR		= 0x02, 
	MAYBE_ALTIMAP	= 0x04, 
	MAYBE_SYM		= 0x08, 
	IS_LOOKAT		= 0x10, 
	IS_SEMI_LA		= 0x20,
	MAYBE_SPH		= 0x40, 
	IS_NOT_ALTIMAP	= 0x80
} 
eFlags;


//--- Structures ---------------------------------------------------------

typedef struct MLT_tdstSprObj_ *MLT_tdxHandleToSuperObject;
typedef struct MLT_tdstSector_ MLT_tdstSector;

// super object
typedef struct MLT_tdstSprObj_
{
	// name
	xString						sName;
	// linked object
	MLT_tdstSector				stSector;
	xString						sLinkedObject;
	xString						sGeometric;
	// children
	long						lNbChild;
	MLT_tdxHandleToSuperObject	d_hChild[500];
	// matrix
	MLT_tdstMatrix				*p_stMatrix;
	// flags
	unsigned					long ulSPOFlags;
	// transparency
	float						fTransparency;
	// geometric properties
	int							iFlags;
	int							iGeomProp;
	char						cGeom;
	double						fGeom;
	char						sConstraintAxis[7];
} 
MLT_tdstSprObj;


// submap
typedef struct MLT_tdstSubMaps_
{ 
  xString	sName;
  xString	sSoundEvent[20];
  int		iN;
} 
MLT_tdstSubMaps;


#endif // SPROBJ_H 