This commit was generated by cvs2svn to compensate for changes in r2,
[btb/d2x.git] / main / effects.h
1 /*
2 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
3 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
4 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
5 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
6 IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
7 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
8 FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
9 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
10 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.  
11 COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
12 */
13
14
15
16 #ifndef _EFFECTS_H
17 #define _EFFECTS_H
18
19 #include "vclip.h"
20
21 #define MAX_EFFECTS 110
22
23 //flags for eclips.  If no flags are set, always plays
24
25 #define EF_CRITICAL             1               //this doesn't get played directly (only when mine critical)
26 #define EF_ONE_SHOT             2               //this is a special that gets played once
27 #define EF_STOPPED              4               //this has been stopped
28
29 typedef struct eclip {
30         vclip           vc;                             //imbedded vclip
31         fix                     time_left;              //for sequencing
32         int                     frame_count;    //for sequencing
33         short                   changing_wall_texture;                  //Which element of Textures array to replace.
34         short                   changing_object_texture;                //Which element of ObjBitmapPtrs array to replace.
35         int                     flags;                  //see above
36         int                     crit_clip;              //use this clip instead of above one when mine critical
37         int                     dest_bm_num;    //use this bitmap when monitor destroyed
38         int                     dest_vclip;             //what vclip to play when exploding
39         int                     dest_eclip;             //what eclip to play when exploding
40         fix                     dest_size;              //3d size of explosion
41         int                     sound_num;              //what sound this makes
42         int                     segnum,sidenum; //what seg & side, for one-shot clips
43 } __pack__ eclip;
44
45 extern int Num_effects;
46 extern eclip Effects[MAX_EFFECTS];
47
48 // Set up special effects.
49 extern void init_special_effects(); 
50
51 // Clear any active one-shots
52 void reset_special_effects();
53
54 // Function called in game loop to do effects.
55 extern void do_special_effects();
56
57 // Restore bitmap
58 extern void restore_effect_bitmap_icons();
59
60 //stop an effect from animating.  Show first frame.
61 void stop_effect(int effect_num);
62
63 //restart a stopped effect
64 void restart_effect(int effect_num);
65
66 #endif