/*=========================================================================
* RND_Main.c : 
*     Variables declaration and init function
*
* (c) Ubi Studios 1997
*=======================================================================*/
 
#if !defined (__RND_Main_H__)
#define __RND_Main_H__
 
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
 
/****************************************/
#if !defined(CPA_EXPORT)
#if defined(CPA_WANTS_IMPORT)
#define CPA_EXPORT __declspec(dllimport)
#elif defined(CPA_WANTS_EXPORT)
#define CPA_EXPORT __declspec(dllexport)
#else
#define CPA_EXPORT
#endif /*CPA_WANTS_IMPORT || CPA_WANTS_EXPORT*/
#endif /*CPA_EXPORT*/
/****************************************/
 
typedef unsigned long RND_tdxHandleToRandomIndex;
 
#undef EXTERN
#undef extern
#if !defined(D_RND_Input_VariableDefine)
#define EXTERN extern
#else
#define EXTERN
#endif /* D_RND_Input_VariableDefine*/
 
#if defined (__cplusplus)
extern "C"
{
#endif /* __cplusplus */
 
extern CPA_EXPORT void RND_fn_vFirstInitRandom(void);
extern CPA_EXPORT void RND_fn_vInitRandom(void);
extern CPA_EXPORT void RND_fn_vDesinitRandom(void);
extern CPA_EXPORT void RND_PrintUsedStaticMemory(void);
 
extern CPA_EXPORT RND_tdxHandleToRandomIndex RND_fn_hReserveANewHandleIndex(void);
                           
extern CPA_EXPORT void RND_fn_vReadRandomScript(char *_szName);
 
extern CPA_EXPORT void RND_fn_vComputeRandomTable(void);
extern CPA_EXPORT void RND_fn_vReinitRandomTable(void);
 
extern CPA_EXPORT unsigned long RND_fn_ulGetUnsignedLongRandomValue(RND_tdxHandleToRandomIndex _lIndexNumber,unsigned long _ulMin,unsigned long _ulMax);
extern CPA_EXPORT unsigned char RND_fn_ulGetUnsignedCharRandomValue(RND_tdxHandleToRandomIndex _lIndexNumber,unsigned char _ucMin,unsigned char _ucMax);
extern CPA_EXPORT void RDN_fn_vSetRandomSeed(RND_tdxHandleToRandomIndex _lIndexNumber, long _lNewSeed); /*ANNECY BBB*/
extern CPA_EXPORT long RND_fn_lGetLongRandomValue(RND_tdxHandleToRandomIndex _lIndexNumber,long _lMin,long _lMax);
extern CPA_EXPORT MTH_tdxReal RND_fn_xGetRealRandomValue(RND_tdxHandleToRandomIndex _lIndexNumber,MTH_tdxReal _xMin,MTH_tdxReal _xMax);
extern CPA_EXPORT struct MTH3D_tdstVector_ *RND_fn_p_stGetVectorRandomValue(RND_tdxHandleToRandomIndex _lIndexNumber,struct MTH3D_tdstVector_ *_p_stMin,struct MTH3D_tdstVector_ *_p_stMax,struct MTH3D_tdstVector_ *_p_stReturnedVector);
extern CPA_EXPORT struct MTH3D_tdstMatrix_ *RND_fn_p_stGetMatrixRandomValue(RND_tdxHandleToRandomIndex _lIndexNumber,struct MTH3D_tdstMatrix_ *_p_stMin,struct MTH3D_tdstMatrix_ *_p_stMax,struct MTH3D_tdstMatrix_ *_p_stReturnedMatrix);
 
void RND_fn_vRemapRandomTable(void);
unsigned long RND_fn_ulGetRandomValue(RND_tdxHandleToRandomIndex _lIndexNumber);
void RND_fn_vIncIndex(RND_tdxHandleToRandomIndex _lIndexNumber);
 
#if defined (__cplusplus)
}
#endif /* __cplusplus */
 
#undef EXTERN
#undef extern
 
#endif /* __RND_Main_H__ */
