132 lines
3.9 KiB
C
132 lines
3.9 KiB
C
/* (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__*/
|