This commit was manufactured by cvs2svn to create branch
[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 } __pack__ 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 #ifdef FAST_FILE_IO
56 #define vclip_read_n(vc, n, fp) cfread(vc, sizeof(vclip), n, fp)
57 #else
58 /*
59  * reads n vclip structs from a CFILE
60  */
61 extern int vclip_read_n(vclip *vc, int n, CFILE *fp);
62 #endif
63
64 #endif