reman3/Rayman_X/cpa/public/GAM/PlayAnim/Interpol/a3x_mem.h

129 lines
4.6 KiB
C

/* ***********************************************************************************/
/* * "a3x_mem.h" **/
/* * Written by : Sébastien Rubens **/
/* * Tabulations : 4 char **/
/* ***********************************************************************************/
#ifndef A3X_MEM_H
#define A3X_MEM_H
#include "a3x_glob.h"
/* ***********************************************************************************/
/* Defines*/
enum
{ eStackA3dGENERAL,
eStackVertexes,
eStackQuaternions,
eStackHierarchies,
eStackNTTO,
eStackOnlyFrames,
eStackChannels,
eStackFrames,
eStackFramesKF,
eStackKeyFrames,
eStackEvents,
eStackMorphData,
/* the following stack are not affected by fn_v_UnclearPreviousLoadedAnims*/
/*eStackFrame3d, */
/*eStackElement3d,*/
eStackNbMax
};
/* ***********************************************************************************/
/* Defines*/
#define M_v_ResetOneStack( uwNumStack ) \
tdstStacks[ (uwNumStack) ].ulPosAlloc= \
tdstStacks[ (uwNumStack) ].ulStackPos= \
tdstStacks[ (uwNumStack) ].ulResetPos
/* ***********************************************************************************/
/* Externs*/
extern tdstStackInfos tdstStacks[];
/*extern tdstAnimLights stAnimLights;*/
extern tdstA3dGENERAL *p_stA3dGENERAL;
extern tdxVector3 *p_a3_xVectors;
extern tdxSShortQuater4 *p_a4_xQuaternions;
extern tdstHierarchy *p_stHierarchies;
extern tdstNTTO *p_stNTTO;
extern tdstOnlyFrame *p_stOnlyFrames;
extern tdstChannel *p_stChannels;
extern tdstFrame *p_stFrames;
extern tdstFrameKF *p_stFramesKF;
extern tdstKeyFrame *p_stKeyFrames;
extern tdstEvent *p_stEvents;
extern tdstMorphData *p_stMorphData; /*AR9803*/
/*extern tdstFrame3d *p_stFrame3d;*/
/*extern tdstElement3d **p_p_stElement3d;*/
extern MTH3D_tdstMatrix *p_stAngularSpeedMatrix;
extern tdstPLA_Hierarchy *p_stHierarchy;
extern tdstElement3d *p_stElement3d;
extern POS_tdstCompletePosition *p_stPosMatrix;
#ifdef U64
extern tdstCuttedAnim *p_stCuttedAnim;
#endif
#ifndef A3X_MEM_C
/* ***********************************************************************************/
extern unsigned long fn_ul_GetStackAlloc( unsigned short _uwNumStack );
extern unsigned long fn_ul_GetStackPos( unsigned short _uwNumStack );
extern void fn_v_AllocateOnStack( unsigned short uwNumStack,
unsigned short uwWantedSize );
extern unsigned long fn_ul_AllocateOnStack( unsigned short _uwNumStack,
unsigned short _uwWantedSize );
extern void fn_v_DeAllocateOnStack( unsigned short _uwNumStack,
unsigned short _uwSize );
/* ************************************************** fn_v_UnclearPreviousLoadedAnims*/
/* Allow to keep the N First Anims when clear*/
/* Must be call after loading the N anims*/
/* 03/07/98 Carlos Torres*/
/* ***********************************************************************************/
extern void fn_v_UnclearPreviousLoadedAnims( void );
/* ************************************************************ fn_v_ClearLoadedAnims*/
/* Clear Loaded Anims depending on parameter ucClearAll*/
/* False : Until the position set by fn_v_UnclearPreviousLoadedAnims*/
/* True : ALL anims*/
/* 03/07/98 Carlos Torres*/
/* ***********************************************************************************/
extern void fn_v_ClearLoadedAnims(unsigned char ucClearAll);
/* **************************************************************** fn_v_InitInterpol*/
/* Make allocation and init structure for anim management*/
/* Must be called only once*/
/* 03/07/98 Carlos Torres*/
/* ***********************************************************************************/
extern void fn_v_InitInterpol( void );
/* **************************************************************** fn_vSetStackSize*/
/* Set the stack size */
/* Must be called only once for all stack to configure it*/
/**/
/* 27/10/98 Carlos Torres*/
/* ***********************************************************************************/
extern void fn_vSetStackSize(unsigned short uwNumStack,unsigned long ulSize);
#ifndef RETAIL
/* ***************************************************************** fn_vAnimStackLog*/
/* Make a log of Memory used for each stack in an open file*/
/**/
/* 11/12/98 Carlos Torres*/
/* ***********************************************************************************/
extern void fn_vAnimStackLog(FILE * fLogFile);
#endif /* RETAIL */
/* ***********************************************************************************/
#endif
#endif