reman3/Rayman_X/cpa/public/MEC/macdpid.h

159 lines
7.3 KiB
C

/* Module Allowing the Communication of Datas from the Player or the Intelligence to the Dynamics */
#ifndef __MACDPID_H__
#define __MACDPID_H__
#include "acp_base.h"
#include "mth.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Define the structure stMACDPID */
typedef struct stMACDPID
{
MTH_tdxReal m_xData0;
MTH3D_tdstVector m_stData1;
MTH3D_tdstVector m_stData2;
MTH3D_tdstVector m_stData3;
MTH_tdxReal m_xData3;
MTH_tdxReal m_xData4;
MTH_tdxReal m_xData5;
struct
{
MTH_tdxReal m_xAngle;
MTH3D_tdstVector m_stAxis;
} m_stData6;
struct
{
MTH_tdxReal m_xAngle;
MTH3D_tdstVector m_stAxis;
} m_stData7;
char m_cData8;
unsigned short m_uwData9;
MTH3D_tdstVector m_stData10;
MTH_tdxReal m_xData11;
MTH3D_tdstVector m_stData12;
MTH_tdxReal m_xData13;
ACP_tdxBool m_bData14;
} tdstMACDPID;
/* For stone dynamics */
#define M_xMACDPIDGetStiffness(_p_stMACDPID) M_xMACDPIDGetImpetus(_p_stMACDPID)
#define M_xMACDPIDSetStiffness(_p_stMACDPID,_xValue) M_xMACDPIDSetImpetus(_p_stMACDPID,_xValue)
#define M_p_stMACDPIDGetCenteredForce(_p_stMACDPID) M_p_stMACDPIDGetTranslation(_p_stMACDPID)
#define M_vMACDPIDSetCenteredForce(_p_stMACDPID,_p_stVector) M_vMACDPIDSetTranslation(_p_stMACDPID,_p_stVector)
/* End stone dynamics */
/* For shooting dynamics */
#define M_xMACDPIDGetHeight(_p_stMACDPID) M_xMACDPIDGetImpetus(_p_stMACDPID)
#define M_xMACDPIDSetHeight(_p_stMACDPID,_xValue) M_xMACDPIDSetImpetus(_p_stMACDPID,_xValue)
/* End shooting dynamics */
#define M_p_stMACDPIDGetTrackingDirection(_p_stMACDPID) (&(_p_stMACDPID)->m_stData3)
#define M_vMACDPIDSetTrackingDirection(_p_stMACDPID,_p_stVector) MTH3D_M_vCopyVector(M_p_stMACDPIDGetTrackingDirection(_p_stMACDPID),_p_stVector)
#define M_p_stMACDPIDGetStartPoint(_p_stMACDPID) (&(_p_stMACDPID)->m_stData1)
#define M_vMACDPIDSetStartPoint(_p_stMACDPID,_p_stVector) MTH3D_M_vCopyVector(M_p_stMACDPIDGetStartPoint(_p_stMACDPID),_p_stVector)
#define M_p_stMACDPIDGetArrivalPoint(_p_stMACDPID) (&(_p_stMACDPID)->m_stData2)
#define M_vMACDPIDSetArrivalPoint(_p_stMACDPID,_p_stVector) MTH3D_M_vCopyVector(M_p_stMACDPIDGetArrivalPoint(_p_stMACDPID),_p_stVector)
#define M_xMACDPIDGetAlphaAngle(_p_stMACDPID) ((_p_stMACDPID)->m_xData11)
#define M_xMACDPIDSetAlphaAngle(_p_stMACDPID,_xValue) (M_xMACDPIDGetAlphaAngle(_p_stMACDPID) = (_xValue))
#define M_xMACDPIDGetThetaAngle(_p_stMACDPID) ((_p_stMACDPID)->m_xData4)
#define M_xMACDPIDSetThetaAngle(_p_stMACDPID,_xValue) (M_xMACDPIDGetThetaAngle(_p_stMACDPID) = (_xValue))
#define M_xMACDPIDGetImpetus(_p_stMACDPID) ((_p_stMACDPID)->m_xData0)
#define M_xMACDPIDSetImpetus(_p_stMACDPID,_xValue) (M_xMACDPIDGetImpetus(_p_stMACDPID) = (_xValue))
#define M_xMACDPIDGetType(_p_stMACDPID) ((_p_stMACDPID)->m_xData4)
#define M_xMACDPIDSetType(_p_stMACDPID,_xValue) (M_xMACDPIDGetType(_p_stMACDPID) = (_xValue))
#define M_xMACDPIDGetDistance(_p_stMACDPID) ((_p_stMACDPID)->m_xData0)
#define M_xMACDPIDSetDistance(_p_stMACDPID,_xValue) (M_xMACDPIDGetDistance(_p_stMACDPID) = (_xValue))
#define M_xMACDPIDGetScalar(_p_stMACDPID) ((_p_stMACDPID)->m_xData0)
#define M_xMACDPIDSetScalar(_p_stMACDPID,_xValue) (M_xMACDPIDGetDistance(_p_stMACDPID) = (_xValue))
#define M_xMACDPIDGetSpeedIntensity(_p_stMACDPID) ((_p_stMACDPID)->m_xData3)
#define M_xMACDPIDSetSpeedIntensity(_p_stMACDPID,_xValue) (M_xMACDPIDGetSpeedIntensity(_p_stMACDPID) = (_xValue))
#define M_xMACDPIDGetCoef(_p_stMACDPID) ((_p_stMACDPID)->m_xData0)
#define M_xMACDPIDSetCoef(_p_stMACDPID,_xValue) (M_xMACDPIDGetCoef(_p_stMACDPID) = (_xValue))
#define M_p_stMACDPIDGetTranslation(_p_stMACDPID) (&(_p_stMACDPID)->m_stData1)
#define M_vMACDPIDSetTranslation(_p_stMACDPID,_p_stVector) MTH3D_M_vCopyVector(M_p_stMACDPIDGetTranslation(_p_stMACDPID),_p_stVector)
#define M_p_stMACDPIDGetSpeed(_p_stMACDPID) (&(_p_stMACDPID)->m_stData2)
#define M_vMACDPIDSetSpeed(_p_stMACDPID,_p_stVector) MTH3D_M_vCopyVector(M_p_stMACDPIDGetSpeed(_p_stMACDPID),_p_stVector)
#define M_xMACDPIDGetEulerAngleI(_p_stMACDPID) ((_p_stMACDPID)->m_xData3)
#define M_xMACDPIDSetEulerAngleI(_p_stMACDPID,_xValue) (M_xMACDPIDGetEulerAngleI(_p_stMACDPID) = (_xValue))
#define M_xMACDPIDGetEulerAngleJ(_p_stMACDPID) ((_p_stMACDPID)->m_xData4)
#define M_xMACDPIDSetEulerAngleJ(_p_stMACDPID,_xValue) (M_xMACDPIDGetEulerAngleJ(_p_stMACDPID) = (_xValue))
#define M_xMACDPIDGetEulerAngleK(_p_stMACDPID) ((_p_stMACDPID)->m_xData5)
#define M_xMACDPIDSetEulerAngleK(_p_stMACDPID,_xValue) (M_xMACDPIDGetEulerAngleK(_p_stMACDPID) = (_xValue))
#define M_xMACDPIDGetOrientationAngle(_p_stMACDPID) ((_p_stMACDPID)->m_stData6.m_xAngle)
#define M_p_stMACDPIDGetOrientationAxis(_p_stMACDPID) (&(_p_stMACDPID)->m_stData6.m_stAxis)
#define M_vMACDPIDSetOrientation(_p_stMACDPID,_xAngle,_p_stAxis) \
(M_xMACDPIDGetOrientationAngle(_p_stMACDPID) = (_xAngle),\
memcpy(M_p_stMACDPIDGetOrientationAxis(_p_stMACDPID),_p_stAxis, sizeof(MTH3D_tdstVector)))
#define M_xMACDPIDGetSpeedAngle(_p_stMACDPID) ((_p_stMACDPID)->m_stData7.m_xAngle)
#define M_p_stMACDPIDGetSpeedAxis(_p_stMACDPID) (&(_p_stMACDPID)->m_stData7.m_stAxis)
#define M_vMACDPIDSetSpeedOrientation(_p_stMACDPID,_xAngle,_p_stAxis) \
(M_xMACDPIDGetSpeedAngle(_p_stMACDPID) = (_xAngle),\
memcpy(M_p_stMACDPIDGetSpeedAxis(_p_stMACDPID), _p_stAxis, sizeof(MTH3D_tdstVector)))
#define M_cMACDPIDGetMode(_p_stMACDPID) ((_p_stMACDPID)->m_cData8)
#define M_cMACDPIDSetMode(_p_stMACDPID,_ucValue) (M_cMACDPIDGetMode(_p_stMACDPID) = (_ucValue))
/*
* Camera
*----------------
*/
#define M_xMACDPIDGetTheta(_p_stMACDPID) ((_p_stMACDPID)->m_xData0)
#define M_xMACDPIDSetTheta(_p_stMACDPID,_xValue) (M_xMACDPIDGetImpetus(_p_stMACDPID) = (_xValue))
#define M_p_stMACDPIDGetTarget(_p_stMACDPID) (&(_p_stMACDPID)->m_stData1)
#define M_vMACDPIDSetTarget(_p_stMACDPID,_p_stVector) {MTH3D_M_vCopyVector(M_p_stMACDPIDGetTarget(_p_stMACDPID),_p_stVector)}
#define M_xMACDPIDGetTargetSpeed(_p_stMACDPID) ((_p_stMACDPID)->m_stData3.xX)
#define M_xMACDPIDGetTargetIncreaseSpeed(_p_stMACDPID) ((_p_stMACDPID)->m_stData3.xY)
#define M_xMACDPIDGetTargetDecreaseSpeed(_p_stMACDPID) ((_p_stMACDPID)->m_stData3.xZ)
#define M_p_stMACDPIDGetMovePos(_p_stMACDPID) (&(_p_stMACDPID)->m_stData2)
#define M_xMACDPIDGetLinearSpeed(_p_stMACDPID) ((_p_stMACDPID)->m_stData6.m_stAxis.xX)
#define M_xMACDPIDGetLinearIncreaseSpeed(_p_stMACDPID) ((_p_stMACDPID)->m_stData6.m_stAxis.xY)
#define M_xMACDPIDGetLinearDecreaseSpeed(_p_stMACDPID) ((_p_stMACDPID)->m_stData6.m_stAxis.xZ)
#define M_xMACDPIDGetAngularSpeed(_p_stMACDPID) ((_p_stMACDPID)->m_stData7.m_stAxis.xX)
#define M_xMACDPIDGetAngularIncreaseSpeed(_p_stMACDPID) ((_p_stMACDPID)->m_stData7.m_stAxis.xY)
#define M_xMACDPIDGetAngularDecreaseSpeed(_p_stMACDPID) ((_p_stMACDPID)->m_stData7.m_stAxis.xZ)
#define M_uwMACDPIDGetFlags(_p_stMACDPID) ((_p_stMACDPID)->m_uwData9)
#define M_p_stMACDPIDGetPosReferencePoint(_p_stMACDPID) (&(_p_stMACDPID)->m_stData10)
#define M_xMACDPIDGetCutAngleFactorPos(_p_stMACDPID) ((_p_stMACDPID)->m_xData11)
#define M_p_stMACDPIDGetRefAxisZ(_p_stMACDPID) (&(_p_stMACDPID)->m_stData12)
#define M_xMACDPIDGetCutAngleFactorTgt(_p_stMACDPID) ((_p_stMACDPID)->m_xData13)
/*
* End for camera
*----------------
*/
/* Public clone */
#define M_vMACDPIDCopyClone(_p_stDst,_p_stSrc) memcpy(_p_stDst,_p_stSrc,sizeof(tdstMACDPID))
#ifdef __cplusplus
}
#endif
#endif