/*=========================================================================
*
* SctObj.h	- Sector Structure
*
* Version			1.0
* Revision date
*
*=======================================================================*/
#ifndef SCTOBJ_H
#define SCTOBJ_H


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

#include "MTH.h"

#include "typedef.h"

#include "matrix.h"



//--- Defines ---------------------------------------------------------

#define MLT_C_MaxNbEnvAndSurfInSector	200
#define MLT_C_MaxNbSectorLinksInSector	200
#define MLT_C_MaxNbStaticLightInSector	200


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

// surfaces
typedef struct MLT_tdstSurface_
{
	xString			sGeometric;
	MLT_tdstMatrix	stMatrix;
} 
MLT_tdstSurface;

// sector
typedef struct MLT_tdstSector_
{
	// name
	xString					sName;
	// old sector
	struct MLT_tdstSector_	*p_stOldSector;
	struct MLT_tdstSector_	*p_stSubmapOldSector;
	// parameters
	BOOL					bHasCameraType;
	BOOL					bHasPriority;
	long					lCameraType;
	long					lPriority;
	// border
	BOOL					bIsVirtual;
	MTH3D_tdstVector		stPointMin;
	MTH3D_tdstVector		stPointMax;
	double					fZMax;
	BOOL					bExistZMax;
	int						iFlag;
	// env&surf
	long					lNbSurface;
	MLT_tdstSurface			a_stSurface[MLT_C_MaxNbEnvAndSurfInSector];
	xString					a_sEnv[MLT_C_MaxNbEnvAndSurfInSector];
	// sector links
	long					lNbSecteurCollision;
	long					lNbSecteurActivity;
	long					lNbSecteurGraphic;
	long					lNbSecteurSound;
	long					lNbSoundEvent;
	xString					a_sSecteurCollision[MLT_C_MaxNbSectorLinksInSector];
	xString					a_sSecteurActivity[MLT_C_MaxNbSectorLinksInSector];
	xString					a_sSecteurGraphic[MLT_C_MaxNbSectorLinksInSector];
	xString					a_sSecteurSound[MLT_C_MaxNbSectorLinksInSector];
	xString					a_sSoundEvent1[MLT_C_MaxNbSectorLinksInSector];
	xString					a_sSoundEvent2[MLT_C_MaxNbSectorLinksInSector];
	long					a_lSecteurGraphicLook[MLT_C_MaxNbSectorLinksInSector];
	long					a_lSecteurGraphic[MLT_C_MaxNbSectorLinksInSector];
	long					a_lSecteurSound[MLT_C_MaxNbSectorLinksInSector];
	// submap links
	long					lNbSubmapSecteurGraphic;
	long					lNbSubmapSecteurActivity;
	long					lNbSubmapSecteurCollision;
	long					lNbSubmapSecteurSound;
	long					lNbSubmapSoundEvent;
	xString					a_sSubmapSecteurCollision[MLT_C_MaxNbSectorLinksInSector];
	xString					a_sSubmapSecteurActivity[MLT_C_MaxNbSectorLinksInSector];
	xString					a_sSubmapSecteurGraphic[MLT_C_MaxNbSectorLinksInSector];
	xString					a_sSubmapSecteurSound[MLT_C_MaxNbSectorLinksInSector];
	xString					a_sSubmapSoundEvent1[MLT_C_MaxNbSectorLinksInSector];
	xString					a_sSubmapSoundEvent2[MLT_C_MaxNbSectorLinksInSector];
	long					a_lSubmapSecteurGraphicLook[MLT_C_MaxNbSectorLinksInSector];
	long					a_lSubmapSecteurGraphic[MLT_C_MaxNbSectorLinksInSector];
	long					a_lSubmapSecteurSound[MLT_C_MaxNbSectorLinksInSector];
	// static lights
	long					lNbStaticLights;
	xString					a_sStaticLights[MLT_C_MaxNbStaticLightInSector];
	// submap lights
	long					lNbSubmapStaticLights;
	xString					a_sSubmapStaticLights[MLT_C_MaxNbStaticLightInSector];
} 
MLT_tdstSector;


#endif // SCTOBJ_H 