reman3/Rayman_X/cpa/public/GAM/effect.h

120 lines
4.4 KiB
C

#ifndef __EFFECT_H
#define __EFFECT_H
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
/*------------------------------------------------------------------
* Handles declaration
*------------------------------------------------------------------*/
/*------------------------------------------------------------------
* Structures for effects
*------------------------------------------------------------------*/
/*** Foam effect ***/
typedef struct tdstWaterFoam_
{
MTH3D_tdstVector stPosition;
ACP_tdxBool bFoamIsActive;
long lLifeTime;
} tdstWaterFoam;
typedef struct tdstWaterStreakEffect_
{
long lNbFoams;
long lNbGraphicFoams;
tdstWaterFoam * a_stFoams;
unsigned long ulLastTimeOfShift;
MTH_tdxReal xFoamXZoom;
MTH_tdxReal xFoamYZoom;
long lFoamFrameCounter;
ACP_tdxHandleOfObject * a_hFoamObjectTable;
MTH_tdxReal xAttenuationCoeff;
MTH_tdxReal xLifeTimeFrequency;
long lLifeTime;
long lTimeBetweenTwoShifts;
MTH_tdxReal xTimeWindow;
MTH_tdxReal xGap;
} tdstWaterStreakEffect;
#define C_uwTestPointWater 2
#define C_uwTestPointBubbleEffect1 12
#define C_uwTestPointBubbleEffect2 13
#define C_uwTestPointBubbleEffect3 14
/*ANNECY VL 25/11/97{*/
/* structure for Foot Path effect*/
typedef struct tdstFootPath_
{
ACP_tdxIndex xNumberOfAlphaLevels; /* number of alpha levels (<=> number of geom object)*/
MTH_tdxReal a8_xAlphaColor[8]; /* alpha value for each level*/
ACP_tdxIndex a8_xNumberOfPoints[8]; /* number of points for each level*/
ACP_tdxIndex a8_xMaxNumberOfFaces[8]; /* max number of faces for each level*/
ACP_tdxIndex a8_xNumberOfFaces[8]; /* current number of faces for each levels*/
ACP_tdxIndex a8_xNextFaces[8]; /* next faces to change for each level*/
MTH3D_tdstVector a2_stOffset[2]; /* foot print offset (first for left, other for right foot print)*/
MTH_tdxReal a2_xScale[2]; /* dimension of a footprint*/
ACP_tdxHandleOfObject a8_hGeomObj[8]; /* pointer on geom obj that correspond for each alpha levels*/
GMT_tdxHandleToGameMaterial hFootPrintMaterial;
GMT_tdxMask xConsiderMaterial;
} tdstFootPath;
/*ENDANNECY VL }*/
/*------------------------------------------------------------------
* Accessors to structure
*------------------------------------------------------------------*/
/*** Foam effect ***/
/*------------------------------------------------------------------
* Functions for diverses effects
*------------------------------------------------------------------*/
/*** Global functions for loading effects ***/
extern CPA_EXPORT void fn_vInitEffects(void);
extern CPA_EXPORT void fn_vLoadEffects(void);
#if !defined(U64)
SCR_tde_Anl_ReturnValue fn_eCallBackEffects(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
/*** Foam effect ***/
SCR_tde_Anl_ReturnValue fn_eCallBackWaterStreakEffect(
SCR_tdst_File_Description *_p_stFile,char *_p_szName,
char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /* U64 */
extern CPA_EXPORT void fn_vWaterStreakEffect(
GLD_tdstViewportAttributes * _p_stViewportAttr,
HIE_tdxHandleToSuperObject _hCharacter,
long _lDrawMask);
extern CPA_EXPORT void fn_vInitWaterStreakEffect(void);
extern CPA_EXPORT void fn_vDisplayWaterStreak(GLD_tdstViewportAttributes * _p_stViewportAttr,GAM_tdxHandleToWaterStreakEffect _hWSE,long _lDrawMask);
/*ANNECY VL 03/11/97{*/
extern CPA_EXPORT GAM_tdxHandleToFootPathEffect fn_h_FootPath_Alloc();
extern CPA_EXPORT void fn_v_FootPath_Create( GAM_tdxHandleToFootPathEffect _hFootPath );
extern CPA_EXPORT void fn_v_FootPath_ReInit( GAM_tdxHandleToFootPathEffect _hFootPath );
extern CPA_EXPORT void fn_v_FootPath_Add( HIE_tdxHandleToSuperObject _hCharacter, ACP_tdxIndex _xFootPrintType );
extern CPA_EXPORT void fn_v_FootPath_Display(GAM_tdxHandleToFootPathEffect _hFootPath, GLD_tdstViewportAttributes * _p_stViewportAttr, long _lDrawMask);
/*ENDANNECY VL }*/
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __EFFECT_H */