]> icculus.org git repositories - taylor/freespace2.git/blob - include/multi_campaign.h
rendering functions mostly done; more complete shader setup
[taylor/freespace2.git] / include / multi_campaign.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/Network/multi_campaign.h $
11  * $Revision$
12  * $Date$
13  * $Author$
14  *
15  * $Log$
16  * Revision 1.2  2002/06/09 04:41:14  relnev
17  * added copyright header
18  *
19  * Revision 1.1.1.1  2002/05/03 03:28:12  root
20  * Initial import.
21  * 
22  * 
23  * 3     11/05/98 5:55p Dave
24  * Big pass at reducing #includes
25  * 
26  * 2     10/07/98 10:53a Dave
27  * Initial checkin.
28  * 
29  * 1     10/07/98 10:50a Dave
30  * 
31  * 7     5/21/98 12:14a Allender
32  * fix ingame join problems
33  * 
34  * 6     5/19/98 8:35p Dave
35  * Revamp PXO channel listing system. Send campaign goals/events to
36  * clients for evaluation. Made lock button pressable on all screens. 
37  * 
38  * 5     5/05/98 5:02p Dave
39  * Fix end-of-campaign sequencing to work right. Make all individual
40  * missions of a campaign replayable.
41  * 
42  * 4     5/05/98 2:10p Dave
43  * Verify campaign support for testing. More new tracker code.
44  * 
45  * 3     2/23/98 11:09p Dave
46  * Finished up multiplayer campaign support. Seems bug-free.
47  * 
48  * 2     2/22/98 2:53p Dave
49  * Put in groundwork for advanced multiplayer campaign  options.
50  * 
51  * 1     2/20/98 4:39p Dave
52  * Split up mp campaign functionality into its own module.
53  *  
54  * $NoKeywords: $
55  */
56
57 #ifndef _MULTIPLAYER_CAMPAIGN_HEADER_FILE
58 #define _MULTIPLAYER_CAMPAIGN_HEADER_FILE
59
60
61 // ------------------------------------------------------------------------------------
62 // MULTIPLAYER CAMPAIGN DEFINES/VARS
63 //
64
65 struct net_player;
66
67 // ------------------------------------------------------------------------------------
68 // MULTIPLAYER CAMPAIGN FUNCTIONS
69 //
70
71 // load a new campaign file or notify the standalone if we're not the server
72 void multi_campaign_start(char *filename);
73
74 // client-side start of a campaign
75 void multi_campaign_client_start();
76
77 // move everything and eveyrone into the next mission state
78 void multi_campaign_next_mission();
79
80 // flush all important data between missions
81 void multi_campaign_flush_data();
82
83 // call in the debriefing stage to evaluate what we should be doing in regards to the campaign
84 // if player_status == 0, nothing should be done
85 //                  == 1, players want to continue to the next mission
86 //                  == 2, players want to repeat the previous mission
87 void multi_campaign_do_debrief(int player_status);
88
89 // display the done popup
90 void multi_campaign_done_popup();
91
92 // evaluate post mission goal stuff for the campaign and send all relevant stuff to clients
93 void multi_campaign_eval_debrief();
94
95
96 // ------------------------------------------------------------------------------------
97 // MULTIPLAYER CAMPAIGN PACKET HANDLERS
98 //
99
100 // process a campaign update packet
101 void multi_campaign_process_update(ubyte *data, header *hinfo);
102
103 // send a "campaign finished" packet
104 void multi_campaign_send_done();
105
106 // send a campaign pool status packet
107 void multi_campaign_send_pool_status();
108
109 // send a campaign debrief update packet
110 void multi_campaign_send_debrief_info();
111
112 // send a "start campaign" packet
113 void multi_campaign_send_start(net_player *pl = NULL);
114
115 // campaign information for ingame joiners
116 void multi_campaign_send_ingame_start(net_player *pl);
117 void multi_campaign_process_ingame_start( ubyte *data, header *hinfo );
118
119 #endif
120