reman3/Rayman_X/cpa/public/GAM/Actions/MS_Micro.h

157 lines
5.9 KiB
C

/*=========================================================================
* Micro.h : Micro's functions
*
*
* Micro 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(__MS_Micro_H__)
#define __MS_Micro_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#undef EXTERN
#undef extern
#if !defined(D_Micro_VariableDefine)
#define EXTERN extern
#else
#define EXTERN
#endif /* D_Micro_VariableDefine */
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
typedef struct tdstIndexMicros_ * MIC_tdxHandleToMicro;
#if defined(D_Micro_StructureDefine)
LST2_M_DynamicUseListOf(MIC_tdxHandleToMicro);
struct tdstMicro_
{
GEO_tdxHandleToMatrix hMicroMatrix;
ACP_tdxBool bIsActive;
};
typedef struct tdstIndexMicrosList_
{
LST2_M_DynamicAnchorDeclaration(MIC_tdxHandleToMicro) hMicrosList;
} tdstIndexMicrosList;
typedef struct tdstIndexMicros_
{
LST2_M_DynamicElementDeclaration(MIC_tdxHandleToMicro)
long lIndex;
struct tdstEngineObject_ * hMicroObj;
} tdstIndexMicros;
#endif /* D_Micro_StructureDefine */
/***********************/
/**** Handle define ****/
/***********************/
typedef struct tdstMicro_ * MS_tdxHandleToMicro;
/**** Micro scripts ****/
#define C_SectionMicroDescription "Micro"
#define C_EntryMicroRotationMatrix "MatrixRotation"
#define C_EntryMicroTranslationMatrix "MatrixTranslation"
#define C_EntryMicroActivation "MicroIsActive"
#define C_EntryMicroUnactivation "MicroIsInactive"
/*** Sound Volume ***/
#define C_MSMicro_MinVolume 0
#define C_MSMicro_MaxVolume 127
/**** Put here all globals variables : ****/
/**** EXTERN typeofvar variable; ****/
EXTERN struct tdstIndexMicrosList_ g_stIndexMicrosList;
/*******************************/
/**** Base functions define ****/
/*******************************/
#if !defined(U64)
extern CPA_EXPORT SCR_tde_Anl_ReturnValue fn_eMicroScriptCallback(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /* U64 */
/*extern CPA_EXPORT void fn_vMicroSaveMiniStructure(SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject);*/
extern CPA_EXPORT unsigned long fn_ulMicroSizeOf();
extern CPA_EXPORT void fn_vMicroAlloc(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT MS_tdxHandleToMicro fn_h_MicroRealAlloc();
extern CPA_EXPORT void fn_vMicroFree(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT void fn_vMicroInit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vMicroDesinit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vMicroCopyClone(struct tdstEngineObject_ * _p_stObjectDest,struct tdstEngineObject_ * _p_stObjectSrc);
/*********************************/
/**** Access functions define ****/
/*********************************/
extern CPA_EXPORT GEO_tdxHandleToMatrix fn_xMicroGetMatrix(MS_tdxHandleToMicro);
extern CPA_EXPORT void fn_vMicroSetMatrix(MS_tdxHandleToMicro,GEO_tdxHandleToMatrix);
extern CPA_EXPORT ACP_tdxBool fn_bMicroGetActivationFlag(MS_tdxHandleToMicro);
extern CPA_EXPORT void fn_vMicroSetActivationFlag(MS_tdxHandleToMicro,ACP_tdxBool);
/**********************************/
/**** Special functions define ****/
/**********************************/
extern CPA_EXPORT void fn_vAddMicro(struct tdstEngineObject_ *);
extern CPA_EXPORT void fn_vInitMicrosFunction();
extern CPA_EXPORT void fn_vActivateMicroForObject(struct tdstEngineObject_ *);
extern CPA_EXPORT void fn_vUnactivateMicroForObject(struct tdstEngineObject_ *);
extern CPA_EXPORT void fn_vRemoveMicro(struct tdstEngineObject_ * hEngObj);
extern CPA_EXPORT void fn_vRemoveAllMicros();
extern CPA_EXPORT long fn_lRetObjectSoundLinkVolumeWithMicro(long objet,long micro);
extern CPA_EXPORT BOOL td_fn_bRetObjetSoundLinkWithMicro(long objet,long micro);
/*************************************/
/**** Micro List access functions ****/
/*************************************/
extern CPA_EXPORT long fn_lGetMicroIndiceInMicroListElement(MIC_tdxHandleToMicro _hMicroListElement);
extern CPA_EXPORT struct tdstEngineObject_ * fn_p_stGetEngineObjectInMicroListElement(MIC_tdxHandleToMicro _hMicroListElement);
/*------------------------------------------------------------------
*------------------------------------------------------------------
* WARNING : these functions are to use only with the ONE micro
* version of the GamLib
*------------------------------------------------------------------
*-----------------------------------------------------------------*/
extern CPA_EXPORT void fn_vChangeCharacterForMicro(struct tdstEngineObject_ *);
extern CPA_EXPORT void GAM_fn_vChangeCharacterForMicro(HIE_tdxHandleToSuperObject);
extern CPA_EXPORT struct tdstEngineObject_ * fn_p_stGetFirstEngineObjectInMicroList(void);
/*------------------------------------------------------------------
*------------------------------------------------------------------
* End of functions for the ONE micro specific version of the GamLib
*------------------------------------------------------------------
*-----------------------------------------------------------------*/
extern CPA_EXPORT struct tdstEngineObject_ * fn_hReturnHandleMicroFromIndex(long lIndex);
/*NZO 25/09/97*/
#ifdef BIN_SaveBin
extern CPA_EXPORT unsigned long MSMicro_fn_ulWriteBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer, struct tdstEngineObject_ * p_stCharac);
#endif
/*No read function necessary.*/
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __MS_Micro_H__ */