/*=========================================================================
* MSSound.h : MSSound's functions
*
*
*         MSSound MUST BE REPLACE BY THE HEADER FILENAME
*
*
* Version              1.0
* Creation date        01/10/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
 
#if !defined(__MSSound_H__)
#define __MSSound_H__
 
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000*/
/******************************************/
 
#include "GAM/Header.h"
 
#undef EXTERN
#undef extern
#if !defined(D_MSSound_VariableDefine)
#define EXTERN extern
#else
#define EXTERN
#endif /* D_MSSound_VariableDefine */
 
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
 
#if defined(D_MSSound_StructureDefine)
struct tdstMSSound_
{
	RollOffParam stRollOff;
 
};
#endif /* D_MSSound_StructureDefine */
 
/***********************/
/**** Handle define ****/
/***********************/
typedef struct tdstMSSound_ * MS_tdxHandleToMSSound;
 
/**** MSSound scripts ****/
#define C_SectionMSSoundDescription                "MSSound"
#define C_EntryMSSoundSaturationDistance           "SaturationDistance"
#define C_EntryMSSoundBackGroundDistance           "BackGroundDistance"
 
/**** Put here all globals variables : ****/
/****    EXTERN typeofvar  variable;   ****/
 
/*******************************/
/**** Base functions define ****/
/*******************************/
#if !defined(U64)
extern CPA_EXPORT SCR_tde_Anl_ReturnValue fn_eMSSoundScriptCallback(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action	_eAction);
#endif /* U64 */
/*extern CPA_EXPORT void fn_vMSSoundSaveMiniStructure(SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject);*/
extern CPA_EXPORT unsigned long fn_ulMSSoundSizeOf();
extern CPA_EXPORT void fn_vMSSoundAlloc(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT MS_tdxHandleToMSSound fn_h_MSSoundRealAlloc();
extern CPA_EXPORT void fn_vMSSoundFree(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT void fn_vMSSoundInit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vMSSoundDesinit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vMSSoundCopyClone(struct tdstEngineObject_ * _p_stObjectDest,struct tdstEngineObject_ * _p_stObjectSrc);
/*********************************/
/**** Access functions define ****/
/*********************************/
extern CPA_EXPORT SndReal fn_xMSSoundGetSaturationDistance(MS_tdxHandleToMSSound h_MSSound);
extern CPA_EXPORT void fn_vMSSoundSetSaturationDistance(MS_tdxHandleToMSSound h_MSSound,SndReal _xSaturationDistance);
extern CPA_EXPORT SndReal fn_xMSSoundGetBackGroundDistance(MS_tdxHandleToMSSound h_MSSound);
extern CPA_EXPORT void fn_vMSSoundSetBackGroundDistance(MS_tdxHandleToMSSound h_MSSound,SndReal _xBackGroundDistance);
 
/**********************************/
/**** Special functions define ****/
/**********************************/
extern CPA_EXPORT SndBool fn_bRetRollOffFactor(long obj,RollOffParam* rolloff);
 
/**********************/
/**** SAI function ****/
/**********************/
extern CPA_EXPORT void fn_vMSSoundInitValueSAI(MS_tdxHandleToMSSound h_MSSound);
extern CPA_EXPORT void fn_vMSSoundSavedValueSAI(MS_tdxHandleToMSSound h_MSSound);
extern CPA_EXPORT void fn_vMSSoundFreeInitValueSAI(MS_tdxHandleToMSSound h_MSSound);
 
/*************************************/
/**** Access functions for Editor ****/
/*************************************/
#if defined(ACTIVE_EDITOR)
extern CPA_EXPORT SndReal *fn_p_xMSSoundGetSaturationDistanceInit(MS_tdxHandleToMSSound h_MSSound);
extern CPA_EXPORT SndReal *fn_p_xMSSoundGetBackGroundDistanceInit(MS_tdxHandleToMSSound h_MSSound);
#endif /* ACTIVE_EDITOR */
 
#if defined(__cplusplus)
}
#endif /* __cplusplus */
 
#endif /* __MSSound_H__ */
 
