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