105 lines
3.5 KiB
C
105 lines
3.5 KiB
C
/*=========================================================================
|
|
* 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__ */
|
|
|