/*=========================================================================
* LoadLvl.h   : This module contain all functions used to load 
*               a level.
* This is a part of the Game project.
*
* Version              1.0
* Creation date        28/08/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
 
#if !defined(__LOADLVL_H__)
#define __LOADLVL_H__
 
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
 
#include "GAM/Header.h"
 
/**** Levels scripts ****/
#define C_SectionLevelDescription                 "LevelDescription"
#define C_SectionLevelOptions						"LevelOptions"
#define C_EntryInitNumberOfAlways                 "NumberOfAlways"
/* MR2808*/
#define C_EntryReserveString					"ReserveString"
 
#define C_EntryInitNumberOfTurningSectors         "NumberOfTurningSectors"
 
#define C_SectionLevelCharacters		                   "InsertCharacter"
#define C_SectionLevelAlways    		                   "InsertAlways"
#define C_SectionUseSAIWithEditor    		               "UseSAIWithEditor"
 
 
#define C_LevelPrincipalCharacter                    "PrincipalActor"
#define C_LevelStandardCamera                        "StandardCamera"
 
/* Keeping it for ascendant compatibility*/
#define C_LevelCharacterLauchingSounds               "ActorLauchingSounds"
#define C_LevelCharacterLaunchingSounds              "ActorLaunchingSounds"
 
#define C_LevelLinkCharacters                        "LinkCharacter"
#define C_LevelCharacterMatrixTranslation            "MatrixTranslation"
#define C_LevelCharacterMatrixRotation               "MatrixRotation"
#define C_LevelCharacterMatrixScale                  "MatrixScale"
#define C_LevelCharacterInitialState                 "InitialState"
#define C_LevelCharacterIsAlwaysActive               "CharacterIsAlwaysActive"
#define C_LevelCharacterFlags						 "CharacterFlags"
#define C_LevelCharacterTransparency						 "Transparency"
 
/* ANNECY MT - 19/11/98 {*/
#define C_LevelCharacterIsInAllSubmap				"CharacterIsInAllSubmaps"
/* END ANNECY MT }*/
 
void fn_vLoadLevel(char *szLevelName,long _lSubMapNumber);

/**************** FabPerez SectorAnalyse  ************/
/*****************************************************/
#if defined (WIN32) && defined(_DEBUG)
	//extern void fn_InitMapSectorStruct(HIE_tdxHandleToSuperObject g_hLoadedSuperObjectRoot);	
	extern void fn_InitMapSectorStruct(void);	
	
	typedef struct _StructInfoSectorTrame{
		//char	a256_SectorName[255];
		char			*p_a256_SectorName;
		int				i_NbSectorMap;
		unsigned long	ul_UneTrame;
		unsigned long	ul_DeuxTrames;
		unsigned long	ul_TroisTrames;
	}StructInfoSectorTrame;
#endif /*WIN32 & _DEBUG*/
/************** Fin FabPerez SectorAnalyse  ***********/
/******************************************************/


#if !defined(U64)
void fn_vLoadTheMap(char *szLevelName,long _lSubMapNumber);
#else /* U64 */
#include "Rom64.h"
void fn_vLoadTheMap(U64_tdxIndex xIndex,long _lSubMapNumber);
#endif /* U64 */
 
#if !defined(U64)
SCR_tde_Anl_ReturnValue fn_eScriptCallBackLevelDescription(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action	_eAction);
SCR_tde_Anl_ReturnValue fn_eScriptCallBackLevelOptions(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action	_eAction);
SCR_tde_Anl_ReturnValue fn_eScriptCallBackLevelCharacters(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action	_eAction);
SCR_tde_Anl_ReturnValue fn_eScriptCallBackLevelAlways(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action	_eAction);
SCR_tde_Anl_ReturnValue fn_eScriptCallBackLevelSoundBank(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action	_eAction);
SCR_tde_Anl_ReturnValue fn_eScriptCallBackLevelSoundBankBlock(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action	_eAction);
SCR_tde_Anl_ReturnValue fn_eScriptCallBackLevelUseSAIWithEditor(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action	_eAction);
#endif /* U64 */
 
void fn_vDeleteAllLevelReUsableSections(void);
 
/*AR980812*/
void fn_vUpdateWithMatrixIdentityConst(HIE_tdxHandleToSuperObject h_SuperObject);
void fn_vRecurUpdateWithMatrixIdentityConst(HIE_tdxHandleToSuperObject h_SuperObject);
 
#ifndef _FIRE_DEADCODE_U64_
EXTERN HIE_tdxHandleToSuperObject g_p_stLoadedEngineSuperObject
#if defined(D_GameGlobals)
= NULL
#endif /* D_GameGlobals */
;
#endif /* _FIRE_DEADCODE_U64_ */
 
 
#endif /* __LOADLVL_H__ */
