/*========================================================================= * Model.h : Define the engine object model structure. * This is a part of the Game project. * * Version 1.0 * Creation date 09/08/96 * Revision date * * That file needs to be compatible for all platforms. * * (c) Ubi Studios 1996 *=======================================================================*/ #if !defined(__Family_H__) #define __Family_H__ #ifdef __cplusplus extern "C" { #endif #include "GAM/Header.h" /* * this structure is for all objects of the same type. * it is to be stored in an array indexed by type values. */ typedef struct tdstFamilyList_ { LST2_M_DynamicElementDeclaration(tdxHandleToFamilyList) tdObjectType otObjectFamilyType; /**** -1 (C_InvalidObjectType) is a invalid type ****/ /**** Number of states ****/ /*unsigned short wNumberOfStates;*/ /**** Dynamic array of states ****/ LST2_M_StaticAnchorDeclaration(tdxHandleToState) hForStateArray; /**** Number Of Objects Tables for this Family*/ /*unsigned short wNumberOfObjectsTables;*/ tdxHandleToObjectsTablesList h_DefaultObjectsTable; /**** Dynamic array For All Objects Tables for this Family*/ LST2_M_StaticAnchorDeclaration(tdxHandleToObjectsTablesList) hForObjectsTablesList; /* Jourdan 23/01/97*/ /*unsigned short wNumberOfCollSet;*/ /*struct tdstPhysicalCollSet_ * d_stCollSet;*/ /* Jourdan fin*/ /*ANNECY TQ 02/06/98{*/ GEO_tdxHandleToBoundingSphere hBoundingSphere; #if defined(ACTIVE_EDITOR) ACP_tdxHandleOfObject hGeometricSphere; #endif /*ACTIVE_EDITOR*/ /*ENDANNECY TQ}*/ /* AR971211*/ /* char* p_cPositionsBloc; // pointer to the bloc of animation positions (used by a3c)*/ unsigned long ulNumberOfChannels; unsigned char ucPriority; // Shaitan => module list in the level unsigned char ucOptimized; // End Shaitan => module list in the level } tdstFamily; extern CPA_EXPORT void fn_vLastDesinitFamilyStructure(); extern CPA_EXPORT void fn_vDesinitFamilyStructureForPriority(unsigned char ucPriority); extern CPA_EXPORT tdxHandleToFamilyList fn_hFindOrAddFAmily(tdObjectType otFamilyType); extern CPA_EXPORT tdxHandleToFamilyList fn_hFindFamily(tdObjectType otFamilyType); /* CGHT 28/05/97*/ extern CPA_EXPORT GEO_tdxHandleToBoundingSphere fn_vGetBoundingVolumeOfFamily(tdxHandleToFamilyList h_Family); extern CPA_EXPORT void fn_vSetBoundingVolumeOfFamily(tdxHandleToFamilyList h_Family,GEO_tdxHandleToBoundingSphere hBV); #if defined (ACTIVE_EDITOR) extern CPA_EXPORT ACP_tdxHandleOfObject fn_vGetGeometricSphereOfFamily(tdxHandleToFamilyList h_Family); extern CPA_EXPORT void fn_vSetGeometricSphereOfFamily(tdxHandleToFamilyList h_Family,ACP_tdxHandleOfObject hBV); #endif /*ACTIVE_EDITOR*/ /* debut GIZMO NEW 07/06/97*/ extern CPA_EXPORT tdxHandleToObjectsTablesList fn_vGetDefaultObjectsTableOfFamily(tdxHandleToFamilyList h_Family); extern CPA_EXPORT void fn_vSetDefaultObjectsTableOfFamily(tdxHandleToFamilyList h_Family,tdxHandleToObjectsTablesList h_DefaultObjectsTable); /* fin GIZMO NEW 07/06/97*/ /*ANNECY BBB {*/ extern CPA_EXPORT tdxHandleToObjectsTablesList fn_hGetObjectsTableOfFamilyByIndex(tdxHandleToFamilyList _hFamily, ACP_tdxIndex _xIndex); /*ANNECY BBB }*/ #ifdef _TMP_FAMILY_HANDLE_ /* ############# FOR EDITORS ONLY ############### */ extern CPA_EXPORT tdxHandleToState AddNewStateToStateArrayOfFamily(tdxHandleToFamily,tdxHandleToAnim3d); extern CPA_EXPORT void RemoveStateInStateArrayOfFamily(tdxHandleToState); #endif #ifdef __cplusplus }/* extern "C" */ #endif #endif /* __Family_H__ */