]> icculus.org git repositories - taylor/freespace2.git/blob - include/hudartillery.h
rendering functions mostly done; more complete shader setup
[taylor/freespace2.git] / include / hudartillery.h
1 /*
2  * Copyright (C) Volition, Inc. 1999.  All rights reserved.
3  *
4  * All source code herein is the property of Volition, Inc. You may not sell 
5  * or otherwise commercially exploit the source or things you created based on
6  * the source.
7  */
8
9 /*
10  * $Logfile: /Freespace2/code/Hud/HudArtillery.h $
11  * $Revision$
12  * $Date$
13  * $Author$
14  * 
15  *
16  * $Log$
17  * Revision 1.3  2002/06/09 04:41:13  relnev
18  * added copyright header
19  *
20  * Revision 1.2  2002/05/03 13:34:33  theoddone33
21  * More stuff compiles
22  *
23  * Revision 1.1.1.1  2002/05/03 03:28:12  root
24  * Initial import.
25  *  
26  * 
27  * 2     4/20/99 6:39p Dave
28  * Almost done with artillery targeting. Added support for downloading
29  * images on the PXO screen.
30  * 
31  * 1     4/20/99 12:00a Dave
32  * 
33  * 
34  * $NoKeywords: $
35  */
36
37 #ifndef _FS2_HUD_ARTILLERY_HEADER_FILE
38 #define _FS2_HUD_ARTILLERY_HEADER_FILE
39
40 // -----------------------------------------------------------------------------------------------------------------------
41 // ARTILLERY DEFINES/VARS
42 //
43
44
45 // -----------------------------------------------------------------------------------------------------------------------
46 // ARTILLERY FUNCTIONS
47 //
48
49 #include "parselo.h"
50
51 #define MAX_SSM_TYPES                   10
52 #define MAX_SSM_STRIKES                 10
53 #define MAX_SSM_COUNT                   10
54
55 // global ssm types
56 typedef struct ssm_info {
57         char                    name[NAME_LENGTH+1];                            // strike name
58         int                     count;                                                          // # of missiles in this type of strike
59         int                     weapon_info_index;                              // missile type
60         float                   warp_radius;                                            // radius of associated warp effect     
61         float                   warp_time;                                                      // how long the warp effect lasts
62         float                   radius;                                                         // radius around the shooting ship      
63         float                   offset;                                                         // offset in front of the shooting ship
64 } ssm_info;
65
66 // creation info for the strike (useful for multiplayer)
67 typedef struct ssm_firing_info {
68         int                     delay_stamp[MAX_SSM_COUNT];     // timestamps
69         vector          start_pos[MAX_SSM_COUNT];               // start positions
70         
71         int                     ssm_index;                                                      // index info ssm_info array
72         vector          target;                                                         // target for the strike        
73 } ssm_firing_info;
74
75 // the strike itself
76 typedef struct ssm_strike {
77         int                     fireballs[MAX_SSM_COUNT];               // warpin effect fireballs
78         int                     done_flags[MAX_SSM_COUNT];              // when we've fired off the individual missiles
79         
80         // this is the info that controls how the strike behaves (just like for beam weapons)
81         ssm_firing_info         sinfo;
82
83         ssm_strike      *next, *prev;                                           // for list
84 } ssm_strike;
85
86
87 // level init
88 void hud_init_artillery();
89
90 // update all hud artillery related stuff
91 void hud_artillery_update();
92
93 // render all hud artillery related stuff
94 void hud_artillery_render();
95
96 #endif
97