#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 */