/*=========================================================================
*
* Levels.h	- Level conversion
*
* Version			1.0
* Revision date
*
*=======================================================================*/
#ifndef __LEVEL_H__
#define __LEVEL_H__



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

#include "typedef.h"

#include "matrix.h"
#include "sprobj.h"

//----------------------------------------------------------------------

#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus 
/********************************************************/
#endif //_WINDOWS


//--- Globals --------------------------------------------------------

extern MLT_tdxHandleToSuperObject	g_hRoot;
extern MLT_tdstMatrix				g_stMatrixCenter;
extern xString						g_sLevelFileIn;

extern BOOL							g_bLevel;



//--- Functions --------------------------------------------------------

// level
extern void MLT_vComputeAllLevels	(char *RawData, char *GameData);
extern void MLT_vComputeOneLevel	(char *LevelName, char *RawData, char *GameData);
extern void MLT_vComputeOneSpo		(char *sLevelName, char *sFileSpo, char *sRawData, char *sGameData);
// files
extern void MLT_vUpdateLevelWorld			(char *sGameLevel, char *sLevelName, char *sGameData);
extern void MLT_vUpdateLevelStaticFiles		(char *sGameLevel);
extern void MLT_vUpdateLevelDynamicFiles	(char *sGameLevel, char *sRawLevel, char *sLevelName);
extern void MLT_vRemoveLevelTemporaryFiles	(char *sGameLevel);
// hierarchy : first level
extern void MLT_vSearchAllSector		 (MLT_tdxHandleToSuperObject hRoot);
extern void MLT_vMatrixIdentityHierarchy (MLT_tdxHandleToSuperObject hRoot);
extern void MLT_vMatrixIdentitySector	 (MLT_tdxHandleToSuperObject hSprObj);
extern void MLT_vMatrixIdentityFronteer	 (MLT_tdxHandleToSuperObject hSprObj);
// sectors
extern void MLT_vMakeSectorInHierarchy	(MLT_tdxHandleToSuperObject hSprObj);
extern void MLT_vCreateSector			(MLT_tdxHandleToSuperObject hSector);
extern void MLT_vCreateUniversSector	(MLT_tdxHandleToSuperObject hSprObj, xString sSubmapName);
// physical
extern void MLT_vMakeIpoInHierarchy		(MLT_tdxHandleToSuperObject hSprObj);
extern void MLT_vMakePhysicalInLib		(void);
// options
extern void MLT_vEraseDuplicatedPoints	(void);
extern void MLT_vEraseUnusedPoints		(void);

// multitextures
extern void MLT_vSearch (char *sRead, FILE *file);




#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
}
#endif // __cplusplus 
/********************************************************/
#endif //_WINDOWS

#endif // __LEVEL_H__ 
