179 lines
7.8 KiB
C
179 lines
7.8 KiB
C
/*=========================================================================
|
||
* PlayAnim.h : Contain the CPA's animations player functions.
|
||
*
|
||
*
|
||
* Version 0.0
|
||
* Creation date 21/10/96 Sebastien DAVID
|
||
* Revision date
|
||
*
|
||
* That file needs to be compatible for all platforms.
|
||
*
|
||
* (c) Ubi Studios 1996
|
||
*=======================================================================*/
|
||
#ifndef _PLAYANIM_H_
|
||
#define _PLAYANIM_H_
|
||
|
||
/******************************************/
|
||
#if _MSC_VER >= 1000
|
||
#pragma once
|
||
#endif /* _MSC_VER >= 1000 */
|
||
/******************************************/
|
||
|
||
#include "GAM\STRUCTUR\anim_s.h"
|
||
|
||
#if defined(__cplusplus)
|
||
extern "C"
|
||
{
|
||
#endif /* __cplusplus */
|
||
|
||
|
||
#include "GAM/Header.h"
|
||
|
||
/*============*/
|
||
/* CONSTANTES */
|
||
/*============*/
|
||
#define PLA_C_NbClocks 16
|
||
/*ANNECY CT 17/02/98{*/
|
||
#define PLA_C_wRandomFrame -32768
|
||
/*ENDANNECY CT}*/
|
||
|
||
/*====================*/
|
||
/* EXTERNs of GLOBALs */
|
||
/*====================*/
|
||
|
||
/**** Put here all globals variables : ****/
|
||
/**** EXTERN typeofvar variable; ****/
|
||
#ifndef _FIRE_DEADCODE_U64_ /* Added by RUC */
|
||
EXTERN short PLA_g_a_wClock[PLA_C_NbClocks];
|
||
#endif /* _FIRE_DEADCODE_U64_ */ /* Added by RUC */
|
||
|
||
#define __PLA_NB_MAX_SUPOBJ__ 512L /* used in release to allocate heap, and in debug to set limit*/
|
||
#define __PLA_LIM_SUPOBJ_ALLOC__ 512L /* used in debug to allocate heap*/
|
||
|
||
/*===========*/
|
||
/* FONCTIONS */
|
||
/*===========*/
|
||
/* Olivier Didelot le 1 juillet 1998*/
|
||
/*void PLA_fn_vDesInitAllChildOfCharacterByEngineobject(struct tdstEngineObject_ * p_stEngineObject);*/
|
||
extern tdstFrame3d *fn_p_GetFramesAddress(tdstAnim3d *_p_stAnim3d, unsigned short _uwNumFrame, unsigned long _ulFrame,void *p_stSuperObject);
|
||
|
||
|
||
extern ACP_tdxBool PLA_fn_bDoAnimPlayerForCharacter(HIE_tdxHandleToSuperObject p_stSuperObject, ACP_tdxBool bNoDisplay , ACP_tdxBool _bHandleSkippedEventsIfRelevant);
|
||
|
||
extern CPA_EXPORT void PLA_fn_vInitAllChildInHeapNewAnim(HIE_tdxHandleToSuperObject p_stSuperObject
|
||
, struct tdstAnim3d_ *p_stCurrentAnim
|
||
, unsigned short _uwFrameNumber );
|
||
|
||
extern CPA_EXPORT void PLA_fn_vDesInitAllChildOfCharacter(HIE_tdxHandleToSuperObject p_stSuperObject,struct tdstEngineObject_ * p_stObject);
|
||
|
||
extern void PLA_fn_vRefreshGlobalMatrixUnderCharacter(HIE_tdxHandleToSuperObject _hSprObj);
|
||
extern void PLA_fn_vRefreshGlobalMatrixOfAnimsHierarchy(HIE_tdxHandleToSuperObject _hSprObj);
|
||
|
||
|
||
extern CPA_EXPORT ACP_tdxBool PLA_fn_bSetNewStateWithRandom(HIE_tdxHandleToSuperObject p_stSuperObject,tdxHandleToState h_WantedState);
|
||
extern CPA_EXPORT ACP_tdxBool PLA_fn_bSetNewState(HIE_tdxHandleToSuperObject p_stSuperObject,tdxHandleToState h_WantedState, ACP_tdxBool _bForce , ACP_tdxBool _bHandleSkippedEventsIfRelevant);
|
||
/*ANNECY CT 17/02/98{*/
|
||
extern CPA_EXPORT void PLA_fn_vSetCurrFrame(HIE_tdxHandleToSuperObject p_stSuperObject,short _wFrame);
|
||
extern CPA_EXPORT unsigned short PLA_fn_uwGetNbFrameInCurrAnim(HIE_tdxHandleToSuperObject p_stSuperObject);
|
||
extern CPA_EXPORT unsigned short PLA_fn_uwGetCurrFrameOfAnim(HIE_tdxHandleToSuperObject p_stSuperObject);
|
||
/*ENDANNECY CT}*/
|
||
|
||
/*ANNECY CT 06/02/98{*/
|
||
extern CPA_EXPORT BOOL PLA_fn_bSetNewStateFluid(HIE_tdxHandleToSuperObject p_stSuperObject,tdxHandleToState h_WantedState);
|
||
/*ENDANNECY CT}*/
|
||
|
||
extern CPA_EXPORT BOOL PLA_fn_bInitNewStateWithRandom(HIE_tdxHandleToSuperObject p_stSuperObject,tdxHandleToState h_WantedState);
|
||
extern CPA_EXPORT BOOL PLA_fn_vInitNewState(HIE_tdxHandleToSuperObject p_stSuperObject,tdxHandleToState h_State);
|
||
|
||
extern CPA_EXPORT BOOL PLA_fn_bTestNewState(HIE_tdxHandleToSuperObject p_stSuperObject,tdxHandleToState h_WantedState);
|
||
extern CPA_EXPORT BOOL PLA_fn_bTestCurrentAction(HIE_tdxHandleToSuperObject p_stSuperObject,tdxHandleToState h_FirsStateOfAction);
|
||
|
||
extern CPA_EXPORT void PLA_fn_vModifyCurrentState(HIE_tdxHandleToSuperObject p_stSuperObject,tdxHandleToState h_State);
|
||
|
||
/* tmp DVD*/
|
||
|
||
extern void PLA_fn_vInitNewAction(HIE_tdxHandleToSuperObject p_stSuperObject,unsigned short wAction);
|
||
|
||
void PLA_fn_vSetNewSubAnim(HIE_tdxHandleToSuperObject p_stSuperObject
|
||
,unsigned char ucElement3D
|
||
,tdxHandleToState h_TmpState);
|
||
void PLA_fn_vKillSubAnim(HIE_tdxHandleToSuperObject p_stSuperObject);
|
||
|
||
|
||
void PLA_fn_vAllocateSubAnimObjHeap(void);
|
||
extern void PLA_fn_vCreateSupObjHeap(void);
|
||
/*ANNECY BBB: fonctions priv<69>es qui n'ont rien <20> foutre ici!*/
|
||
/*unsigned long PLA_fn_ulFindNextFreeSupObj(void);*/
|
||
unsigned long PLA_fn_vInitNewSubAnimInHeap( unsigned char ucElement
|
||
, struct tdstState_ *p_stCurrentState );
|
||
/*void PLA_fn_vDesInitOneSubAnimInHeap(struct tdstSubAnim3d_ *p_stSubAnim);*/
|
||
|
||
void PLA_fn_vInitControlMatrix(HIE_tdxHandleToSuperObject p_stSuperObject);
|
||
/* void PLA_fn_vAbsoluteTranslationOfModule( HIE_tdxHandleToSuperObject p_stSuperObject
|
||
, MTH3D_tdstVector *p_stControlTranslationVertex ); */
|
||
|
||
/* tmp DVD*/
|
||
extern BOOL PLA_fn_bTestIfEndOfAction(HIE_tdxHandleToSuperObject p_stSuperObject);
|
||
|
||
BOOL PLA_fn_bTestIfEndOfAnim(HIE_tdxHandleToSuperObject p_stSuperObject);
|
||
|
||
/* Access Function to Speed. CGHT 12/02/97*/
|
||
struct MTH3D_tdstVector_ * PLA_fn_stGetLinearSpeedVector(HIE_tdxHandleToSuperObject p_stSuperObject,short sLastFrame);
|
||
struct MTH3D_tdstMatrix_ * PLA_fn_stGetAngularSpeedMatrix(HIE_tdxHandleToSuperObject p_stSuperObject,short sLastFrame);
|
||
|
||
void PLA_fn_vComputeNextFrame(HIE_tdxHandleToSuperObject p_stSuperObject);
|
||
ACP_tdxBool PLA_fn_bSkipCurrentFrame(HIE_tdxHandleToSuperObject p_stSuperObject);
|
||
/* MR1306*/
|
||
void PLA_fn_vMoveTakenObject(HIE_tdxHandleToSuperObject p_stSuperObject);
|
||
|
||
extern CPA_EXPORT void PLA_fn_vDoFrame(tdstAnim3d *p_stCurrentAnim,unsigned short uwCurrentFrame, HIE_tdxHandleToSuperObject p_stSuperObject);
|
||
extern CPA_EXPORT void PLA_fn_vOverWriteMatrixWithUCC(HIE_tdxHandleToSuperObject p_stSuperObject);
|
||
|
||
extern CPA_EXPORT void PLA_fn_vUpdateTransparencyForModules(HIE_tdxHandleToSuperObject p_stSuperObject) ;
|
||
|
||
/* MR3108*/
|
||
/*extern CPA_EXPORT tdstAnimLights *PLA_fn_pstGetLightsOfAnim(HIE_tdxHandleToSuperObject hCharacter);*/
|
||
|
||
extern void fn_vRemoveAllAnimLightsFromSectorList(HIE_tdxHandleToSuperObject hCharacter);
|
||
|
||
/* ONLY FOR EDITOR*/
|
||
extern CPA_EXPORT BOOL PLA_fn_bDoFirstInitOfAnimPlayerForCharacter(HIE_tdxHandleToSuperObject p_stSuperObject, tdstAnim3d *p_stNewanim);
|
||
extern CPA_EXPORT void PLA_fn_bDoOffsetFirstInitForCharacter(HIE_tdxHandleToSuperObject p_stSuperObject);
|
||
/*----------------*/
|
||
|
||
/*ANNECY BBB: fonctions priv<69>es qui n'ont rien <20> foutre ici!*/
|
||
/*void PLA_fn_vCreateMatrixHeap(void);*/
|
||
/*unsigned long PLA_fn_ulFindNextFreeMatrix(void);*/
|
||
|
||
extern CPA_EXPORT void GAM_fn_vAddMorphData(tdstAnim3d *_p_stAnim, unsigned long _ulChannelNumber,
|
||
unsigned short _uwFrameNumber,unsigned char _ucMorphingAmount,unsigned char _ucTarget);
|
||
|
||
/*AR980325 For PC compilation*/
|
||
tdstFrame3d *fn_p_GetFramesAddress(tdstAnim3d *_p_stAnim3d, unsigned short _uwNumFrame, unsigned long _ulFrame,void *p_stSuperObject);
|
||
|
||
unsigned char GAM_fn_ucGetMorphAmount(tdstAnim3d *_p_stAnim, unsigned long _ulChannelNumber, unsigned short _uwFrameNumber) ;
|
||
unsigned char GAM_fn_ucGetMorphTarget(tdstAnim3d *_p_stAnim, unsigned long _ulChannelNumber, unsigned short _uwFrameNumber) ;
|
||
|
||
void PLA_fn_vForceRegenerationWhenBlockInNoState_EndOfAction(HIE_tdxHandleToSuperObject p_stSuperObject); /*AR9805*/
|
||
void PLA_fn_vForceRegenerationWhenSkip(HIE_tdxHandleToSuperObject p_stSuperObject); /*AR9805*/
|
||
|
||
#ifdef ACTIVE_EDITOR
|
||
void fn_vCheckModuleAccessGam(HIE_tdxHandleToSuperObject hPerso, unsigned char cChannel);
|
||
#endif
|
||
|
||
|
||
/*AR9806 New heap management by gizmo*/
|
||
void PLA_fn_vInitMatrixHeap(void);
|
||
void PLA_fn_vCreateMatrixHeap(void);
|
||
void PLA_fn_vInitSupObjHeap(void);
|
||
void PLA_fn_vCreateSupObjHeap(void);
|
||
void PLA_fn_vInitHeaps(void);
|
||
void PLA_fn_vCreateAndInitHeaps(void);
|
||
|
||
#if defined(__cplusplus)
|
||
}
|
||
#endif /* __cplusplus */
|
||
|
||
|
||
#endif /* _PLAYANIM_H_ */
|