/*=========================================================================
* GameEng.h : Engine of Game Header
*             It is in this file that the SuperObject Tree is explored.
* This is a part of the Game project.
*
* Version                      1.0
* Creation date        22/08/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
 
#if !defined(__GAMEENG_H__)
#define __GAMEENG_H__
 
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
 
#include "GAM/Header.h"
 
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
 
/*
 * variables of the above types are here
 */
 
/* Global pointer on the current world  */
EXTERN HIE_tdxHandleToSuperObject gp_stActualWorld; 
 
EXTERN HIE_tdxHandleToSuperObject gp_stDynamicWorld;
EXTERN HIE_tdxHandleToSuperObject SECT_hFatherSector;
EXTERN HIE_tdxHandleToSuperObject gp_stInactiveDynamicWorld;
 
EXTERN unsigned char g_ucIsEdInGhostMode;
EXTERN struct GLI_tdstLight_ *gp_stLight;
 
EXTERN HIE_tdxHandleToSuperObject g_hSOCurrentMainSector;
EXTERN HIE_tdxHandleToSuperObject g_hSOPreviousMainSector;
 
 
void fn_vDisplayAll();
void fn_vBuildWorldTree();
void fn_vEngine();
 
extern CPA_EXPORT void fn_vReputCharacterSuperObjectAtTheWorld(HIE_tdxHandleToSuperObject h_SupObject);
extern CPA_EXPORT void fn_vDestructAllFatherSonLinks(void);
extern CPA_EXPORT ACP_tdxBool fn_bMoveCharacterAtPosition(HIE_tdxHandleToSuperObject _hCharacter,MTH_tdxReal _xX,MTH_tdxReal _xY,MTH_tdxReal _xZ);
extern CPA_EXPORT ACP_tdxBool GAM_fn_bIsPersoUnderWater(HIE_tdxHandleToSuperObject _hCharacter);
extern CPA_EXPORT void GAM_fn_vMoveCharacterOneAtCharacterTwoPosition(HIE_tdxHandleToSuperObject _hCharacterOne,HIE_tdxHandleToSuperObject _hCharacterTwo);
/* Special for E3 and shadows (to be removed)*/
/*extern CPA_EXPORT ACP_tdxBool GAM_fn_bThisCharacterIsED(HIE_tdxHandleToSuperObject _hCharacter);*/
/*extern CPA_EXPORT ACP_tdxBool GAM_fn_bIsPersoUnderWater2(HIE_tdxHandleToSuperObject _hCharacter,MTH3D_tdstVector * p_stVector);*/
 
extern CPA_EXPORT void fn_vTreatCameraHierarchy(HIE_tdxHandleToSuperObject hSuperObj,ACP_tdxBool bForcedActivity);
 
/*ANNECY CT 02/03/98{*/
extern CPA_EXPORT long GAM_fn_lGetNbPersoActive();
extern CPA_EXPORT unsigned char GAM_fn_bIsCharacterActive(HIE_tdxHandleToSuperObject hSuperObj);
/*ENDANNECY CT}*/
 
#if defined(USE_PROFILER)
extern void GAM_fn_vShowRasters();
#endif
 
#if defined(ACTIVE_EDITOR)
extern CPA_EXPORT void GAM_fn_vFillHierarchyBeforeEditor(void);
extern CPA_EXPORT void GAM_fn_vFillHierarchyAfterEditor(void);
#endif /* ACTIVE_EDITOR */
 
#if defined(__cplusplus)
}
#endif /* __cplusplus */
 
#endif /* __GAMEENG_H__ */
