]> icculus.org git repositories - taylor/freespace2.git/blob - include/awacs.h
rendering functions mostly done; more complete shader setup
[taylor/freespace2.git] / include / awacs.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/Ship/AWACS.h $
11  * $Revision$
12  * $Date$
13  * $Author$
14  *
15  * all sorts of cool stuff about ships
16  *
17  * $Log$
18  * Revision 1.2  2002/06/09 04:41:12  relnev
19  * added copyright header
20  *
21  * Revision 1.1.1.1  2002/05/03 03:28:12  root
22  * Initial import.
23  *
24  * 
25  * 4     6/02/99 12:52p Andsager
26  * Added team-wide ship visibility.  Implemented for player.
27  * 
28  * 3     1/25/99 5:03a Dave
29  * First run of stealth, AWACS and TAG missile support. New mission type
30  * :)
31  * 
32  * 2     1/08/99 2:08p Dave
33  * Fixed software rendering for pofview. Super early support for AWACS and
34  * beam weapons.
35  * 
36  * 
37  * $NoKeywords: $
38  */
39
40 #ifndef __FS2_AWACS_HEADER_FILE
41 #define __FS2_AWACS_HEADER_FILE
42
43 // ----------------------------------------------------------------------------------------------------
44 // AWACS DEFINES/VARS
45 //
46
47 // DAVE'S OFFICIAL DEFINITION OF AWACS
48
49 // total awacs levels for all teams
50 extern float Awacs_team[MAX_TEAMS];     // total AWACS capabilities for each team
51 extern float Awacs_level;                               // Awacs_friendly - Awacs_hostile
52
53 // ----------------------------------------------------------------------------------------------------
54 // AWACS FUNCTIONS
55 //
56
57 // call when initializing level, before parsing mission
58 void awacs_level_init();
59
60 // call every frame to process AWACS details
61 void awacs_process();
62
63 // get the total AWACS level for target to viewer
64 // < 0.0f               : untargetable
65 // 0.0 - 1.0f   : marginally targetable
66 // 1.0f                 : fully targetable as normal
67 float awacs_get_level(object *target, ship *viewer, int use_awacs=1);
68
69 // Determine if ship is visible by team
70 // return 1 if ship is fully visible
71 // return 0 if ship is only partly visible
72 int ship_is_visible_by_team(int ship_num, int team);
73
74
75 #endif
76