reman3/Rayman_X/cpa/public/GAM/Family.h

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__ */