reman3/Rayman_X/cpa/public/GAM/STRUCTUR/Objects.h

161 lines
6.8 KiB
C

/*=========================================================================
* Objects.h : Define the engine object structure.
* This is a part of the Game project.
*
* Version 1.0
* Creation date 20/08/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__OBJECTS_H__)
#define __OBJECTS_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#include "GAM/Actions/Animfx.h"
#include "GAM/actions/allacts.h"
#include "GAM/actions/3ddata.h"
/*
* this structure is for each object in a level (ie all events)
* when a structure pointer is added, not forget to add its handle's functions (see below)
*/
typedef struct tdstEngineObject_
{
/* pointer to the 3d datas, animations ... */
MS_tdxHandleTo3dData h_3dData;
/* pointer to the standard game structure (hitpoints ...) */
MS_tdxHandleToStandardGame h_StandardGame;
/***********************************************************************************/
/**** All next fields are structures pointer and must be in alphabetical order. ****/
/***********************************************************************************/
/*** pointer to the dynamic system ***/
MS_tdxHandleToDynam h_Dynam;
/*** pointer to intelligence structure ***/
MS_tdxHandleToBrain h_Brain;
/*** pointer to the cineinfo structure ***/
MS_tdxHandleToCineinfo h_Cineinfo;
/*** pointer to the Collide Set structure ***/
MS_tdxHandleToCollSet h_CollSet;
/*** pointer to the way structure ***/
MS_tdxHandleToMSWay h_MSWay;
/*** pointer to the light structure ***/
MS_tdxHandleToMSLight h_MSLight;
/*** pointer to the Sector structure ***/
MS_tdxHandleToSectInfo h_SectInfo;
/*** pointer to the Micro structure ***/
MS_tdxHandleToMicro h_Micro;
#ifndef D_THROW_PRT
/*** pointer to the particle source structure JO 10/09/97 ***/
MS_tdxHandleToMSPrtSrc h_MSPrtSrc;
#endif /* D_THROW_PRT */
/*** pointer to the sound structure JO 08/12/97 ***/
MS_tdxHandleToMSSound h_MSSound;
#ifndef D_THROW_ANIM_EFFECT
/*** pointer to the anim effect structure ***/
MS_tdxHandleToAnimEffect h_AnimEffect;
#endif /* D_THROW_ANIM_EFFECT */
/*XB980824*/
#ifndef D_THROW_MGT
/*** pointer to the magnet structure ***/
MS_tdxHandleToMSMagnet h_MSMagnet;
#endif /* D_THROW_MGT */
} tdstEngineObject;
/* a basic handler function used to load the objects structures */
#if !defined(U64)
typedef SCR_tde_Anl_ReturnValue (tdfn_eScriptCallBackHandleFunction)(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /* U64 */
/* a basic handler function used to alloc the objects structures */
/*typedef void (tdfn_vSaveMSFunction)(SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject);*/
typedef void (tdfn_vCopyCloneMSFunction)(struct tdstEngineObject_ * _p_stObjectDest,struct tdstEngineObject_ * _p_stObjectSrc);
/* a basic handler function used to size of the objects mini-structures */
typedef unsigned long (tdfn_ulSizeofHandleFunction)();
/* a basic handler function used to alloc the objects structures */
typedef void (tdfn_vAllocHandleFunction)(struct tdstEngineObject_ *p_stObject);
/* a basic handler function used to init the objects structures */
typedef void (tdfn_vInitHandleFunction)(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
unsigned long fn_ulEmptySizeOf();
void fn_vEmptyAlloc(struct tdstEngineObject_ *p_stObject);
void fn_vEmptyFree(struct tdstEngineObject_ *p_stObject);
void fn_vEmptyInit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
void fn_vEmptyDesinit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
void fn_vEmptyCopyClone(struct tdstEngineObject_ * _p_stObjectDest,struct tdstEngineObject_ * _p_stObjectSrc);
typedef struct tdstStructureHandleFunction_
{
tdfn_vCopyCloneMSFunction *p_fn_vCopyCloneMSFunction;
tdfn_ulSizeofHandleFunction *p_fn_ulSizeOfFunction;
tdfn_vAllocHandleFunction *p_fn_vAllocFunction;
tdfn_vAllocHandleFunction *p_fn_vFreeFunction;
tdfn_vInitHandleFunction *p_fn_vInitFunction;
tdfn_vInitHandleFunction *p_fn_vDesinitFunction;
} tdstStructureHandleFunction;
EXTERN tdstStructureHandleFunction g_a_stStructureHandleFunction[]
#if defined(D_GameGlobals)
=
{
/*h_3dData*/
{fn_v3dDataCopyClone,fn_ul3dDataSizeOf,fn_v3dDataAlloc,fn_v3dDataFree,fn_v3dDataInit,fn_v3dDataDesinit},
/*h_StandardGame*/
{fn_vStdGameCopyClone,fn_ulStdGameSizeOf,fn_vStdGameAlloc,fn_vStdGameFree,fn_vStdGameInit,fn_vStdGameDesinit},
/*h_Dynamics*/
{fn_vDynamCopyClone,fn_ulDynamSizeOf,fn_vDynamAlloc,fn_vDynamFree,fn_vDynamInit,fn_vDynamDesinit},
/*h_Brain*/
{fn_vBrainCopyClone,fn_ulBrainSizeOf,fn_vBrainAlloc,fn_vBrainFree,fn_vBrainInit,fn_vBrainDesinit},
/*h_Cineinfo*/
{CAM_fn_vCineinfoCopyClone,CAM_fn_ulCineinfoSizeOf,CAM_fn_vCineinfoAlloc,CAM_fn_vCineinfoFree,CAM_fn_vCineinfoInit,CAM_fn_vCineinfoDesinit},
/*h_CollSet*/
{fn_vCollSetCopyClone,fn_ulCollSetSizeOf,fn_vCollSetAlloc,fn_vCollSetFree,fn_vCollSetInit,fn_vCollSetDesinit},
/*h_MSWay*/
{fn_vMSWayCopyClone,fn_ulMSWaySizeOf,fn_vMSWayAlloc,fn_vMSWayFree,fn_vMSWayInit,fn_vMSWayDesinit},
/*h_Light*/
{fn_vLightCopyClone,fn_ulLightSizeOf,fn_vLightAlloc,fn_vLightFree,fn_vLightInit,fn_vLightDesinit},
/*h_SectInfo*/
{fn_vSectInfoCopyClone,fn_ulSectInfoSizeOf,fn_vSectInfoAlloc,fn_vSectInfoFree,fn_vSectInfoInit,fn_vSectInfoDesinit},
/*h_Micro*/
{fn_vMicroCopyClone,fn_ulMicroSizeOf,fn_vMicroAlloc,fn_vMicroFree,fn_vMicroInit,fn_vMicroDesinit},
#ifndef D_THROW_PRT
/*h_MSPrtSrc*/
{fn_vMSPrtSrcCopyClone,fn_ulMSPrtSrcSizeOf,fn_vMSPrtSrcAlloc,fn_vMSPrtSrcFree,fn_vMSPrtSrcInit,fn_vMSPrtSrcDesinit},
#endif /* D_THROW_PRT */
/*h_MSSound JO 08/12/97*/
{fn_vMSSoundCopyClone,fn_ulMSSoundSizeOf,fn_vMSSoundAlloc,fn_vMSSoundFree,fn_vMSSoundInit,fn_vMSSoundDesinit},
#ifndef D_THROW_ANIM_EFFECT
/*h_AnimEffect*/
{fn_vAnimEffectCopyClone,fn_ulAnimEffectSizeOf,fn_vAnimEffectAlloc,fn_vAnimEffectFree,fn_vAnimEffectInit,fn_vAnimEffectDesinit},
#endif /* D_THROW_ANIM_EFFECT */
/*XB980824*/
#ifndef D_THROW_MGT
/*** pointer to the magnet structure ***/
/*h_MSMagnet*/
{fn_vMSMagnetCopyClone,fn_ulMSMagnetSizeOf,fn_vMSMagnetAlloc,fn_vMSMagnetFree,fn_vMSMagnetInit,fn_vMSMagnetDesinit},
#endif /* D_THROW_MGT */
/*End XB*/
/*End structure*/
{(tdfn_vCopyCloneMSFunction*)0x00000001,(tdfn_ulSizeofHandleFunction *)0x00000002,(tdfn_vAllocHandleFunction *)0x00000003,(tdfn_vAllocHandleFunction *)0x00000004,(tdfn_vInitHandleFunction *)0x00000005,(tdfn_vInitHandleFunction *)0x00000006}
}
#endif /* D_GameGlobals */
;
#endif /* __OBJECTS_H__ */