portable-izing file loading routines
[btb/d2x.git] / main / vclip.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 #ifndef _VCLIP_H
15 #define _VCLIP_H
16
17 #include "gr.h"
18 #include "object.h"
19 #include "piggy.h"
20 #include "cfile.h"
21
22 #define VCLIP_SMALL_EXPLOSION           2
23 #define VCLIP_PLAYER_HIT                        1
24 #define VCLIP_MORPHING_ROBOT            10
25 #define VCLIP_PLAYER_APPEARANCE 61
26 #define VCLIP_POWERUP_DISAPPEARANCE     62
27 #define VCLIP_VOLATILE_WALL_HIT 5
28 #define VCLIP_WATER_HIT                         84
29 #define VCLIP_AFTERBURNER_BLOB  95
30 #define VCLIP_MONITOR_STATIC            99
31
32 #define VCLIP_MAXNUM                    110
33 #define VCLIP_MAX_FRAMES        30
34
35 //vclip flags
36 #define VF_ROD          1               //draw as a rod, not a blob
37
38 typedef struct {
39         fix                             play_time;                      //total time (in seconds) of clip
40         int                             num_frames;
41         fix                             frame_time;                     //time (in seconds) of each frame
42         int                             flags;
43         short                           sound_num;
44         bitmap_index    frames[VCLIP_MAX_FRAMES];
45         fix                             light_value;
46 } vclip;
47
48 extern int Num_vclips;
49 extern vclip Vclip[VCLIP_MAXNUM];
50
51 //draw an object which renders as a vclip.
52 void draw_vclip_object(object *obj,fix timeleft,int lighted, int vclip_num);
53 extern void draw_weapon_vclip(object *obj);
54
55 /*
56  * reads a vclip structure from a CFILE
57  */
58 extern void vclip_read(vclip *vc, CFILE *fp);
59
60 #endif