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