reman3/Rayman_X/cpa/public/mor/specif/morph.h

55 lines
2.4 KiB
C

/* *********************************************/
/* Specific header file for Rayman2 PC*/
/* (c) Ubi R&D 1998*/
/* See Alain Robin for any comment or question*/
/* *********************************************/
#ifndef __MORPH_H__
#define __MORPH_H__
#ifdef __cplusplus
extern "C" {
#endif
/* For DLLs who are using this module : */
#undef CPA_EXPORT
#if defined(CPA_WANTS_IMPORT)
#define CPA_EXPORT __declspec(dllimport)
#elif defined(CPA_WANTS_EXPORT)
#define CPA_EXPORT __declspec(dllexport)
#else
#define CPA_EXPORT
#endif
/***********************************************
PUBLIC STRUCTURES
**********************************************/
typedef struct MOR_stMorphStruct_ {
ACP_tdxBool bInUse; /* Say if this element of the list is used or not.*/
/* If not, all the other variables are unused*/
/* Parameter part*/
HIE_tdxHandleToSuperObject hActorSuperObject; /* The super object of the actor*/
ACP_tdxIndex xStartIndexInObjectTable; /* The index in the object table of the 'start' physical object for the morphing*/
ACP_tdxIndex xEndIndexInObjectTable; /* The index in the object table of the 'end' physical object for the morphing*/
unsigned char ucMorphType; /* Can be MORPH_STOPATEND, MORPH_WAITATEND or MORPH_ROLLBACKATEND*/
int iNbMillisecond; /* The duration of the morphing (if the morphing loop*/
int iStart; /* For the moment: = 0*/
int iEnd; /* For the moment: = iNbMillisecond*/
/* Internal part*/
int iStep; /* Is 1 (morph from 'start' to 'end') or -1 (morph from 'end' to 'start')*/
int iCurrent; /* Current ratio (must be between start and end)*/
ACP_tdxIndex xChannelIndex; /* The channel in the animation where the morphing takes place*/
/* Specific part*/
PO_tdxHandleToPhysicalObject pOriginalPhysicalObject; /* The physical object that was in the channnel before the morphing*/
PO_tdxHandleToPhysicalObject pMorphedPhysicalObject; /* The created physical object*/
} MOR_tdstMorphStruct;
#ifdef __cplusplus
}/* extern "C" */
#endif
#endif /* __MORPH_H__*/