]> icculus.org git repositories - taylor/freespace2.git/blob - include/missionbrief.h
Initial revision
[taylor/freespace2.git] / include / missionbrief.h
1 /*
2  * $Logfile: /Freespace2/code/MissionUI/MissionBrief.h $
3  * $Revision$
4  * $Date$
5  * $Author$
6  *
7  * Header file for code to display the mission briefing to the player
8  *
9  * $Log$
10  * Revision 1.1  2002/05/03 03:28:12  root
11  * Initial revision
12  *
13  * 
14  * 3     9/07/99 6:53p Jefff
15  * functionality to break out of a loop
16  * 
17  * 2     10/07/98 10:53a Dave
18  * Initial checkin.
19  * 
20  * 1     10/07/98 10:49a Dave
21  * 
22  * 7     5/19/98 8:35p Dave
23  * Revamp PXO channel listing system. Send campaign goals/events to
24  * clients for evaluation. Made lock button pressable on all screens. 
25  * 
26  * 6     4/20/98 3:53p Lawrance
27  * Fix various bugs with auto-advancing through briefings.
28  * 
29  * 5     3/30/98 5:16p Lawrance
30  * centralize a check for disabled loadout screens
31  * 
32  * 4     3/11/98 10:28a Lawrance
33  * Add 'skip training' button
34  * 
35  * 3     1/13/98 5:35p Lawrance
36  * Added brief_turn_off_closeup_icon()
37  * 
38  * 2     12/05/97 2:39p Lawrance
39  * added some different sounds to main hall, add support for looping
40  * ambient sounds
41  * 
42  * 1     9/30/97 10:16a Lawrance
43  * move files from Mission lib to MissionUI lib
44  * 
45  * 39    9/24/97 5:29p Lawrance
46  * add voice playback of briefing text
47  * 
48  * 38    9/24/97 5:03p Dave
49  * Spliced a bunch of stuff into MissionScreenCommon.[h,cpp]
50  * 
51  * 37    9/22/97 5:12p Dave
52  * Added stats transfer game _mode_. Started work on multiplayer chat
53  * screens for weapon and ship select
54  * 
55  * 36    9/18/97 11:11p Lawrance
56  * extern Brief_background_bitmap
57  * 
58  * 35    8/19/97 1:33p Dave
59  * Enhancements to multi brief chat screen (sounds, scrolling, etc.)
60  * 
61  * 34    8/17/97 2:41p Lawrance
62  * improving interface
63  * 
64  * 33    8/15/97 8:25p Lawrance
65  * fix bug with freeing input box on briefing screens
66  * 
67  * 32    8/15/97 7:58p Lawrance
68  * integrate new art for the briefing screens
69  * 
70  * 31    8/14/97 5:21p Dave
71  * Added multiplayer briefing chat system.
72  * 
73  * 30    7/31/97 1:38p Lawrance
74  * show multiplayer chat window in all screens (blited from common_render)
75  * 
76  * 29    7/20/97 6:59p Lawrance
77  * changed name of some anim functions to be more consistent
78  * 
79  * 28    7/14/97 3:58p Lawrance
80  * limit frametime to 33 ms for animation timing
81  * 
82  * 27    6/26/97 12:12a Lawrance
83  * supporting anti-aliased bitmap animations
84  * 
85  * 26    6/24/97 11:46p Lawrance
86  * supporting icon text and rotating models
87  * 
88  * 25    6/18/97 11:00a Lawrance
89  * add in ship icons, move briefing render code into MissionBriefCommon
90  * 
91  * 24    6/12/97 11:09p Lawrance
92  * getting map and text integrated into briefing
93  * 
94  * 23    6/12/97 5:15p Lawrance
95  * added hook for ambient sound in briefing/ship select
96  * 
97  * 22    6/12/97 11:27a Lawrance
98  * separating FRED dependant briefing code
99  * 
100  * 21    6/12/97 9:58a Lawrance
101  * Move grid header stuff to separate file
102  * 
103  * 20    6/12/97 2:48a Lawrance
104  * integrating briefing into ship select / weapon loadout screen
105  * 
106  * 19    6/11/97 11:55a Lawrance
107  * added new data structures to hold briefing/debriefing info
108  * 
109  * 18    4/02/97 11:57a Lawrance
110  * pre-load buffer for briefing music so no delay when briefing starts
111  * 
112  * 17    3/31/97 5:45p Lawrance
113  * supporting changes to allow multiple streamed audio files
114  * 
115  * 16    2/05/97 10:35a Lawrance
116  * supporting spooled music at menus, briefings, credits etc.
117  * 
118  *
119  * $NoKeywords: $
120  *
121  */
122
123 #ifndef _MISSIONBRIEF_H
124 #define _MISSIONBRIEF_H
125
126 #include "ui.h"
127
128 // #defines to identify which screen we are on
129 #define ON_BRIEFING_SELECT                      1
130 #define ON_SHIP_SELECT                          2
131 #define ON_WEAPON_SELECT                        3
132
133 // briefing buttons
134 #define BRIEF_BUTTON_LAST_STAGE         0
135 #define BRIEF_BUTTON_NEXT_STAGE         1
136 #define BRIEF_BUTTON_PREV_STAGE         2
137 #define BRIEF_BUTTON_FIRST_STAGE                3
138 #define BRIEF_BUTTON_SCROLL_UP          4
139 #define BRIEF_BUTTON_SCROLL_DOWN                5
140 #define BRIEF_BUTTON_SKIP_TRAINING      6
141 #define BRIEF_BUTTON_PAUSE                              7
142 #define BRIEF_BUTTON_MULTI_LOCK         8
143 #define BRIEF_BUTTON_EXIT_LOOP          9
144
145
146 #define NUM_BREIFING_REGIONS    (NUM_COMMON_REGIONS + 8)
147
148 extern int      Brief_multitext_bitmap; // bitmap for multiplayer chat window
149 extern int      Brief_background_bitmap;
150 extern UI_INPUTBOX      Common_multi_text_inputbox[3];
151
152 // Sounds
153 #define         BRIEFING_MUSIC_DELAY    2500            // 650 ms delay before breifing music starts
154 extern int      Briefing_music_handle;
155 extern int      Briefing_music_begin_timestamp;
156
157 void brief_init();
158 void brief_close();
159 void brief_do_frame(float frametime);
160 void brief_unhide_buttons();
161 uint brief_get_closeup_icon();
162 void brief_turn_off_closeup_icon();
163
164 void briefing_stop_music();
165 void briefing_start_music();
166 void briefing_load_music(char* fname);
167 void brief_stop_voices();
168
169 int brief_only_allow_briefing();
170
171 #endif // don't add anything past this line
172