158 lines
6.0 KiB
C
158 lines
6.0 KiB
C
/*=========================================================================
|
|
* ObjsTbls.h : Define the engine state structure.
|
|
* This is a part of the Game project.
|
|
*
|
|
* Version 1.0
|
|
* Creation date 25/03/97
|
|
* Revision date
|
|
* Author Sebastien DAVID
|
|
*
|
|
* That file needs to be compatible for all platforms.
|
|
* (c) Ubi Studios 1997
|
|
*=======================================================================*/
|
|
#if !defined(__OBJSTBLS_H__)
|
|
#define __OBJSTBLS_H__
|
|
|
|
/******************************************/
|
|
#if _MSC_VER >= 1000
|
|
#pragma once
|
|
#endif /* _MSC_VER >= 1000 */
|
|
/******************************************/
|
|
|
|
#include "GAM/Header.h"
|
|
#include "GAM/GAMHandl.h"
|
|
|
|
#if defined(__cplusplus)
|
|
extern "C"
|
|
{
|
|
#endif /* __cplusplus */
|
|
|
|
#define C_wTdO_Undefined 0xffff
|
|
#define C_wTdO_PhysicalObject 0
|
|
#define C_wTdO_Animation 1
|
|
#define C_wTdO_Light 2
|
|
#define C_wTdO_Camera 3
|
|
#define C_wTdO_Mirror 4
|
|
|
|
#define C_wTdO_Event 5
|
|
|
|
/* ANNECY AV {*/
|
|
#define C_wObjectTableHasZdd 0x0001
|
|
#define C_wObjectTableHasZde 0x0002
|
|
/* END ANNECY AV }*/
|
|
|
|
/**************************/
|
|
/**** Structure define ****/
|
|
/**************************/
|
|
#if defined(D_ObjsTbls_Define)
|
|
|
|
typedef struct tdstObjectsTableElement_
|
|
{
|
|
MTH3D_tdstVector * p_stCustomZoom; /* AR971014 Changed for alignment*/
|
|
|
|
/* to create an Array of POs ...*/
|
|
tdxHandleToVoid h_Target;
|
|
|
|
unsigned long uwChannelNumber; /* AR971107 Warning ! Bad prefix !!!*/
|
|
unsigned short wTypeOfTarget; /* AR971014 Changed for alignment*/
|
|
#ifndef U64
|
|
unsigned char ucPhoneme;
|
|
unsigned char ucIntensity;
|
|
unsigned char ucExpression;
|
|
#endif //U64
|
|
|
|
#ifdef _DEBUG
|
|
unsigned short wCounter;
|
|
#endif
|
|
|
|
} tdstObjectsTableElement;
|
|
|
|
typedef struct tdstObjectsTablesList_
|
|
{
|
|
/* to use a List of Objects Tables ...*/
|
|
LST2_M_StaticElementDeclaration(tdxHandleToObjectsTablesList)
|
|
|
|
/*BOOL bDuplicateTable; // MR0707*/
|
|
struct tdstObjectsTableElement_ * d_stObjectsTable;
|
|
#ifndef U64 //AR9904 Useless !
|
|
struct tdstObjectsTableElement_ * d_stInitObjectsTable;
|
|
#endif //U64
|
|
/* to access to an Objects Table ...*/
|
|
unsigned short wNumberOfElement; /* AR971014 Changed for alignment*/
|
|
|
|
/* ANNECY AV {*/
|
|
unsigned short wZDxUsed; /* can be C_wObjectTableHasZdd | C_wObjectTableHasZde*/
|
|
/* END ANNECY AV }*/
|
|
|
|
} tdstObjectsTablesList;
|
|
|
|
|
|
#endif /* D_ObjsTbls_Define */
|
|
|
|
/*******************************/
|
|
/**** Base functions define ****/
|
|
/*******************************/
|
|
|
|
/* ************* ObjectsTablesList *************/
|
|
extern CPA_EXPORT tdxHandleToObjectsTablesList fn_hObjectsTablesListAlloc();
|
|
extern CPA_EXPORT void fn_hObjectsTablesListFree(tdxHandleToObjectsTablesList h_ObjectsTableElement);
|
|
|
|
|
|
/**********************************/
|
|
/**** Special functions define ****/
|
|
/**********************************/
|
|
extern CPA_EXPORT void fn_vInitObjectsTablesList(struct tdstFamilyList_ *p_stFamily);
|
|
extern CPA_EXPORT void fn_vAddAnObjectsTablesInList( struct tdstFamilyList_ *p_stFamily
|
|
, tdxHandleToObjectsTablesList h_ObjectsTablesListElement);
|
|
extern CPA_EXPORT void fn_vObjectsTablesAlloc(tdxHandleToObjectsTablesList h_ObjectsTablesListElement,unsigned short wNumberOfElement);
|
|
|
|
extern CPA_EXPORT void fn_vChangeObjectsTableForCharacter(HIE_tdxHandleToSuperObject p_stSuperObject, long l_Number);
|
|
extern CPA_EXPORT void fn_vExchangeTwoObjectsInCurrentObjectsTable(HIE_tdxHandleToSuperObject p_stSuperObject
|
|
,unsigned short w_ObjectA ,unsigned short w_ObjectB);
|
|
extern CPA_EXPORT void fn_vCopyObjectDestFromSourceOfObjectsTable(HIE_tdxHandleToSuperObject p_stSuperObject
|
|
,unsigned short w_ObjectDest ,unsigned short w_ObjectSource);
|
|
|
|
extern CPA_EXPORT void fn_vCopyObjectFromObjectTabletoAnother(tdxHandleToObjectsTablesList, tdxHandleToObjectsTablesList, unsigned short, unsigned short);
|
|
extern CPA_EXPORT unsigned short fn_uwGetObjectTableNumberOfelements(tdxHandleToObjectsTablesList _hTargetTable);
|
|
|
|
/* ANNECY AV {*/
|
|
extern CPA_EXPORT ACP_tdxBool fn_bObjectTableHasZdd (tdxHandleToObjectsTablesList _hObjectTableList);
|
|
extern CPA_EXPORT ACP_tdxBool fn_bObjectTableHasZde (tdxHandleToObjectsTablesList _hObjectTableList);
|
|
/* END ANNECY AV }*/
|
|
|
|
/* ***** ACCESS FUNCTIONS BY HANDLES ***** */
|
|
|
|
extern CPA_EXPORT tdxHandleToObjectsTableElement fn_d_hGetObjectsTable(tdxHandleToObjectsTablesList h_ObjectsTablesListElement);
|
|
extern CPA_EXPORT tdxHandleToObjectsTableElement fn_d_hGetInitObjectsTable(tdxHandleToObjectsTablesList h_ObjectsTablesListElement);
|
|
|
|
extern CPA_EXPORT tdxHandleToObjectsTableElement fn_d_hGetElementByNumberInObjectsTable(tdxHandleToObjectsTablesList h_ObjectsTablesListElement
|
|
,unsigned short wNumberInTable);
|
|
|
|
extern CPA_EXPORT unsigned short fn_wObjectsTableGetTypeOfTarget(tdxHandleToObjectsTableElement h_ObjectsTablesElement);
|
|
extern CPA_EXPORT void fn_vObjectsTableSetTypeOfTarget(tdxHandleToObjectsTableElement h_ObjectsTablesElement
|
|
,unsigned short wTypeOfTarget);
|
|
extern CPA_EXPORT tdxHandleToVoid fn_hObjectsTableGetTarget(tdxHandleToObjectsTableElement h_ObjectsTablesElement);
|
|
extern CPA_EXPORT void fn_vObjectsTableSetTarget(tdxHandleToObjectsTableElement h_ObjectsTablesElement
|
|
,tdxHandleToVoid h_Target);
|
|
|
|
extern CPA_EXPORT void fn_vDuplicateObjectTable(tdxHandleToObjectsTablesList hObjTableList);
|
|
extern CPA_EXPORT void fn_vReInitObjectTable(tdxHandleToObjectsTablesList hObjTableList);
|
|
|
|
#ifndef U64
|
|
// Shaitan => module list in the level
|
|
extern CPA_EXPORT void fn_vFindUsedIndexes(short *wArrayOfIndexes, short wMaxElements, struct tdstAnim3d_ *p_stAnim, struct tdst3dData_ * h3dData);
|
|
// End Shaitan => module list in the level
|
|
#endif
|
|
/*
|
|
extern CPA_EXPORT void fn_vSetObjectTableListDuplicate(tdxHandleToObjectsTablesList hObjTableList,BOOL bDuplicate);
|
|
extern CPA_EXPORT BOOL fn_bGetObjectTableListDuplicate(tdxHandleToObjectsTablesList hObjTableList);
|
|
*/
|
|
|
|
extern void fn_vCheckObjectsTables(struct tdstEngineObject_ *p_stEngineObject);
|
|
|
|
#if defined(__cplusplus)
|
|
}
|
|
#endif /* __cplusplus */
|
|
|
|
#endif /* !__OBJSTBLS_H__ */
|