#ifndef __EXTHEADE_H__
#define __EXTHEADE_H__
 
#ifdef __cplusplus
extern "C" {
#endif
 
/* Return the number of collisions */
/*extern long COL_lHaveITakeSThgIntoTheMug(
                        DNM_tdstObstacle *_p_stResultObstacle,
                        HIE_tdxHandleToSuperObject _hSupObj,
                        POS_tdstCompletePosition *_p_stAbsoluteStartPosition,
                        POS_tdstCompletePosition *_p_stAbsoluteEndSPosition);
*/
extern ACP_tdxBool COL_fn_bHaveITakeSThgIntoTheMugStatic (
                                                          DNM_tdstMecObstacle *_p_stResultObstacle,
                                                          HIE_tdxHandleToSuperObject _p_stSupObj,
                                                          struct POS_stCompletePosition *_p_stPosition );
 
/* Average velocity */
/*extern void fn_vAverageSpeed(HIE_tdxHandleToSuperObject p_stSuperObj,MTH_tdxReal xTimeWindow,MTH3D_tdstVector *p_result);*/
 
/* break the FSL link */
/*void fn_vReputCharacterSuperObjectAtTheWorld(HIE_tdxHandleToSuperObject h_SupObject);*/
 
 
/*extern void fn_vReputCharacterSuperObjectAtTheWorld(HIE_tdxHandleToSuperObject p_stSupObject);*/
 
/*extern void GAM_fn_vChangeFather(HIE_tdxHandleToSuperObject _hSprObj, HIE_tdxHandleToSuperObject _hNewFather);*/
 
/* To compute Fluid Speed due to Streams in sector */
extern MTH3D_tdstVector *ComputeStreamSpeedForActiveSector(HIE_tdxHandleToSuperObject hChar,HIE_tdxHandleToSuperObject hActiveSector,MTH3D_tdstVector *p_stFinalSpeed);
 
 
extern CPA_EXPORT HIE_tdxHandleToSuperObject GAM_fn_hGetCurrentSector(HIE_tdxHandleToSuperObject);
 
/*extern ACP_tdxBool fn_bStandardGameIsAPlatform (HIE_tdxHandleToSuperObject hSupObj);*/
/*extern struct DNM_stDynamics* fn_p_stDynamGetDynamicsSO (HIE_tdxHandleToSuperObject hSupObj);*/
extern CPA_EXPORT unsigned long fn_ulStandardGameGetCustomBitsSO (HIE_tdxHandleToSuperObject hSupObj);
/*extern CPA_EXPORT ACP_tdxBool fn_bBrainWaterCollideSO (HIE_tdxHandleToSuperObject hSupObj);*/
extern CPA_EXPORT unsigned char fn_ucCollSetGetCollComputeFrequencySO(HIE_tdxHandleToSuperObject hSuperObj);
extern CPA_EXPORT long COL_fn_lFindNormal (HIE_tdxHandleToSuperObject _hSuperObject,MTH3D_tdstVector *_p_stPoint,MTH3D_tdstVector *_p_a2_stNormal);
extern CPA_EXPORT ACP_tdxBool fn_bGetCharacterNoCollisionWithMap (HIE_tdxHandleToSuperObject _hSuperObject);
extern CPA_EXPORT ACP_tdxBool fn_bGetCharacterForceCollisionWhenNotMoving (HIE_tdxHandleToSuperObject _hSuperObject);
extern CPA_EXPORT void fn_vSetCharacterNoCollisionWithMap (HIE_tdxHandleToSuperObject _hSuperObject, ACP_tdxBool _bValue);
extern CPA_EXPORT unsigned char fn_ucCollSetGetColliderPrioritySO (HIE_tdxHandleToSuperObject _hSuperObject);
 
extern CPA_EXPORT char* AI_fn_pszGetActorName (HIE_tdxHandleToSuperObject hSupObj);
extern CPA_EXPORT char* AI_fn_pszGetFamilyName (HIE_tdxHandleToSuperObject hSupObj, char* szBuffer);
extern CPA_EXPORT unsigned char fn_ucIsAnAlwaysObject(struct tdstEngineObject_ *p_stEngineObject);
/* XB 05/05/99 : it is an inline function !!!  */
#ifndef U64
extern CPA_EXPORT tdxHandleToState fn_h3dDataGetInitialStateSO (HIE_tdxHandleToSuperObject hSuperObj);
#endif /* U64 */
/* End XB 05/05/99 */
 
#ifdef __cplusplus
}
#endif
 
#endif
