/* MODULE : PRT (Particle system Library) AUTHOR : Frederic PHILIPPE UBI R&D FILE : PRT.h (Principal header file) */ #ifndef D_THROW_PRT #ifndef PRT_SPRTPRT_H #define PRT_SPRTPRT_H #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include "cpa_expt.h" /* For Global declaration in C files : */ #ifdef PRT_GLOBALS #define PRT_EXTERN extern #else /* !PRT_GLOBALS */ #define PRT_EXTERN #endif /* !PRT_GLOBALS */ /* ----------------------------------------------------------------------------- INCLUDES FILES ----------------------------------------------------------------------------- */ #include "PrtSyst.h" #include "PrtSrc.h" #include "PrtEnv.h" #define D_MSPrtSrc_StructureDefine #include "Gam\Actions\MsPrtSrc.h" /* ----------------------------------------------------------------------------- CONSTANT DECLARATION ----------------------------------------------------------------------------- */ /* ----------------------------------------------------------------------------- TYPES DEFINITION ----------------------------------------------------------------------------- */ /* bubble structure */ typedef struct PRT_tdstSpriteParticle_ { MTH_tdxReal xDeathDate; MTH_tdxReal xChangeSpriteDate; char cNextSpriteIndex; MTH2D_tdstVector stSize; char a2_cRotateSpeed[2]; unsigned char a2_ucRotateAngle[2]; } PRT_tdstSpriteParticle; typedef struct PRT_tdstSpriteData_ { ACP_tdxHandleOfSprite hSprite; MTH_tdxReal xTime; char cProba; char cNextSprite; } PRT_tdstSpriteData; typedef struct PRT_tdstSpriteCommonData_ { ACP_tdxIndex xNumberOfSprites; /*ACP_tdxHandleOfSprite *d_hSprite;*/ PRT_tdstSpriteData *d_stSpriteData; ACP_tdxHandleOfSprite hSprite; GMT_tdxHandleToGameMaterial hMaterial; } PRT_tdstSpriteCommonData; /* ----------------------------------------------------------------------------- GLOBAL VARIABLE DECLARATION ----------------------------------------------------------------------------- */ /* ----------------------------------------------------------------------------- FUNCTIONS DECLARATION ----------------------------------------------------------------------------- */ extern CPA_EXPORT void PRT_fn_vCreateSpriteParticles( PRT_tdstParticlesSystem *_p_stParticlesSystem, ACP_tdxHandleOfSprite _hSprite ); extern CPA_EXPORT void PRT_fn_vDestructSpriteParticles( PRT_tdstParticlesSystem *_p_stParticlesSystem ); extern CPA_EXPORT void PRT_fn_vSetGameMaterialSpriteParticles ( PRT_tdstParticlesSystem *_p_stParticlesSystem, GMT_tdxHandleToGameMaterial _hGameMaterial ); extern CPA_EXPORT void PRT_fn_vGenerateSpriteParticle ( MTH3D_tdstVector *_p_stParticlePosition, MTH3D_tdstVector *_p_stParticleSpeed, PRT_tdstSpriteParticle *_p_stSpriteParticle, PRT_tdstSpriteCommonData *_p_stSpriteCommonData, PRT_tdstParticlesSource *_p_stParticlesSource, struct POS_stCompletePosition *_p_stSourceMatrix, MTH_tdxReal _xTimeT ); extern CPA_EXPORT void PRT_fn_vMecaSpriteParticlesSystem ( tdstParticleGenerator *_p_stPrtGen,MTH_tdxReal _xTimeT,MTH_tdxReal _xDeltaT ); extern CPA_EXPORT void PRT_fn_vSourceGenerateSpriteParticle ( PRT_tdstParticlesSystem *_p_stParticlesSystem, PRT_tdstParticlesSource *_p_stParticlesSource, struct POS_stCompletePosition *_p_stSourceMatrix, MTH_tdxReal _xTimeT ); extern CPA_EXPORT void PRT_fn_vPreDrawSpriteParticlesSystem ( PRT_tdstParticlesSystem *_p_stParticlesSystem ); /*ANNECY VL PRT 30/03/98{*/ extern CPA_EXPORT void PRT_fn_vCreateMultipleSpritesParticles( PRT_tdstParticlesSystem *_p_stPrtSys, ACP_tdxIndex _xNbSprites ); extern CPA_EXPORT void PRT_fn_vEndCreateMultipleSpritesParticles( PRT_tdstParticlesSystem *_p_stPrtSys ); extern CPA_EXPORT char PRT_fn_cSystemIsMultipleSprites( PRT_tdstParticlesSystem *_p_stPrtSys ); extern CPA_EXPORT void PRT_fn_vAddSprite( PRT_tdstParticlesSystem *_p_stPrtSys, ACP_tdxHandleOfSprite _hSprite ); /*ENDANNECY VL}*/ #ifdef __cplusplus }; #endif /* __cplusplus */ #endif /* PRT_SPRTPRT_H */ #endif /* D_THROW_PRT */