/* (c) Ubi R&D 1996*/ /* See Alain Robin for any comment or question*/ #ifndef __GAMEMAT_H__ #define __GAMEMAT_H__ #ifdef __cplusplus extern "C" { #endif /****************************************************************************/ /* STRUCTURES */ /****************************************************************************/ /* typedef struct GMT_tdstCollideMaterial_ { short wTypeOfZone; // GMT_C_wZDM or GMT_C_wZDR or GMT_C_wZDE or GMT_C_ZDD GMT_tdxMask xIdentifier; } GMT_tdstCollideMaterial; typedef struct GMT_tdstGameMaterial_ { ACP_tdxHandleOfMaterial hVisualMaterial ; DNM_tdxHandleToMecMatCharacteristics hMechanicsMaterial ; SND_tdxHandleToSoundMaterial hSoundMaterial; GMT_tdxHandleToCollideMaterial hCollideMaterial ; struct GMT_tdstGameMaterial_* p_stInitialValues; // To be filled with the loaded values #ifdef SECTOR_IN_GMT HIE_tdxHandleToSuperObject hSectorMaterial ; #endif } GMT_tdstGameMaterial ; */ /****************************************************************************/ /* MACROS */ /****************************************************************************/ /* Definition of the accessor macros for the friend modules*/ /* Rem: handles are pointers*/ #define GMT_M_hGetVisualMaterial(_handle) \ ((_handle)->hVisualMaterial) #define GMT_M_vSetVisualMaterial(_hGameMat,_hVisualMat) \ { (_hGameMat)->hVisualMaterial=(_hVisualMat); } #define GMT_M_hGetMechanicsMaterial(_handle) \ ((_handle)->hMechanicsMaterial) #define GMT_M_vSetMechanicsMaterial(_hGameMat,_hMechanicsMat) \ { (_hGameMat)->hMechanicsMaterial=(_hMechanicsMat); } #define GMT_M_hGetSoundMaterial(_handle) \ ((_handle)->hSoundMaterial) #define GMT_M_vSetSoundMaterial(_hGameMat,_hSoundMat) \ { (_hGameMat)->hSoundMaterial=(_hSoundMat); } #define GMT_M_hGetCollideMaterial(_handle) \ ((_handle)->hCollideMaterial) #define GMT_M_vSetCollideMaterial(_hGameMat,_hCollideMat) \ { (_hGameMat)->hCollideMaterial=(_hCollideMat); } #ifdef SECTOR_IN_GMT #define GMT_M_hGetSectorMaterial(_handle) \ ((_handle)->hSectorMaterial) #define GMT_M_vSetSectorMaterial(_hGameMat,_hSectorMat) \ { (_hGameMat)->hSectorMaterial=(_hSectorMat); } #endif /* SECTOR_IN_GMT*/ #define GMT_M_wGetTypeOfCollideMaterial(_handle) \ ((_handle)->wTypeOfZone) #define GMT_M_vSetTypeOfCollideMaterial(_hCollideMat,_wType) \ { (_hCollideMat)->wTypeOfZone=(_wType); } #define GMT_M_wGetCollideMaterialIdentifier(_hCollideMat) \ ((_hCollideMat)->xIdentifier) #define GMT_M_vSetCollideMaterialIdentifier(_hCollideMat,_wIdentifier) \ { (_hCollideMat)->xIdentifier=(_wIdentifier); } /****************************************************************************/ /* FUNCTION POINTERS */ /****************************************************************************/ #undef __GMTFUNCTIONPOINTERS_EXTERN #ifndef __DeclareGlobalFunctionPointersVariableGmt_h__ #define __GMTFUNCTIONPOINTERS_EXTERN extern /*external declaration*/ #else /*__DeclareGlobalFunctionPointersVariableGmt_h__*/ #define __GMTFUNCTIONPOINTERS_EXTERN /*replace by nothing : we have to declare*/ #endif /*__DeclareGlobalFunctionPointersVariableGmt_h__*/ __GMTFUNCTIONPOINTERS_EXTERN GMT_tdxHandleToGameMaterial (* GMT_p_fn_hVirtualCreate)(void) #ifdef __DeclareGlobalFunctionPointersVariableGmt_h__ =NULL #endif ; /*XB 22/06/99*/ #ifndef U64 __GMTFUNCTIONPOINTERS_EXTERN void (* GMT_p_fn_vVirtualDestroy)(GMT_tdxHandleToGameMaterial _hOld) #ifdef __DeclareGlobalFunctionPointersVariableGmt_h__ =NULL #endif ; #endif /* U64 */ /*End XB 22/06/99*/ __GMTFUNCTIONPOINTERS_EXTERN void (* GMT_p_fn_vVirtualCopy)(GMT_tdxHandleToGameMaterial _hDst, GMT_tdxHandleToGameMaterial _hSrc) #ifdef __DeclareGlobalFunctionPointersVariableGmt_h__ =NULL #endif ; __GMTFUNCTIONPOINTERS_EXTERN void (* GMT_p_fn_vVirtualInitLoadGameMaterial)(void) #ifdef __DeclareGlobalFunctionPointersVariableGmt_h__ =NULL #endif ; #ifdef __cplusplus }/* extern "C" */ #endif #endif /* __GAMEMAT_H__*/