1 #ifndef _included_sfx_h_ /* Is this your first time? */ 2 #define _included_sfx_h_ 1 3 4 #define MAX_NO_OF_SFX_BLOCKS 10 5 enum SFX_ID 6 { 7 SFX_NONE, 8 SFX_MUZZLE_FLASH_SMARTGUN, 9 SFX_MUZZLE_FLASH_AMORPHOUS, 10 SFX_PREDATOR_PLASMA_BOLT, 11 SFX_SMALL_PREDATOR_PLASMA_BOLT, 12 SFX_FRISBEE_PLASMA_BOLT, 13 SFX_MUZZLE_FLASH_SKEETER, 14 MAX_NO_OF_SFXS, 15 }; 16 17 typedef struct sfxblock 18 { 19 enum SFX_ID SfxID; 20 21 unsigned int EffectDrawnLastFrame:1; // useful for strobing effects 22 23 24 } SFXBLOCK; 25 26 #define SFXFLAG_ISAFFECTEDBYHEAT 0x1 27 #define SFXFLAG_MELTINGINTOGROUND 0x2 28 #define SFXFLAG_ONFIRE 0x4 29 #define SFXFLAG_SPARKING 0x8 30 31 typedef struct forcefield 32 { 33 VECTORCH Corner; 34 VECTORCH Scale; 35 int ModuleIndex; 36 37 } FORCEFIELD; 38 39 40 41 extern void InitialiseSfxBlocks(void); 42 extern SFXBLOCK* AllocateSfxBlock(void); 43 extern void DeallocateSfxBlock(SFXBLOCK *sfxPtr); 44 DISPLAYBLOCK *CreateSFXObject(enum SFX_ID sfxID); 45 46 47 extern struct displayblock *CreateSFXObject(enum SFX_ID sfxID); 48 extern void DrawSfxObject(struct displayblock *dispPtr); 49 50 extern void HandleSfxForObject(DISPLAYBLOCK *dispPtr); 51 void HandleObjectOnFire(DISPLAYBLOCK *dispPtr); 52 53 #endif 54