2 * Copyright (C) Volition, Inc. 1999. All rights reserved.
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
10 * $Logfile: /Freespace2/code/Network/multi_campaign.h $
16 * Revision 1.2 2002/06/09 04:41:14 relnev
17 * added copyright header
19 * Revision 1.1.1.1 2002/05/03 03:28:12 root
23 * 3 11/05/98 5:55p Dave
24 * Big pass at reducing #includes
26 * 2 10/07/98 10:53a Dave
29 * 1 10/07/98 10:50a Dave
31 * 7 5/21/98 12:14a Allender
32 * fix ingame join problems
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.
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.
42 * 4 5/05/98 2:10p Dave
43 * Verify campaign support for testing. More new tracker code.
45 * 3 2/23/98 11:09p Dave
46 * Finished up multiplayer campaign support. Seems bug-free.
48 * 2 2/22/98 2:53p Dave
49 * Put in groundwork for advanced multiplayer campaign options.
51 * 1 2/20/98 4:39p Dave
52 * Split up mp campaign functionality into its own module.
57 #ifndef _MULTIPLAYER_CAMPAIGN_HEADER_FILE
58 #define _MULTIPLAYER_CAMPAIGN_HEADER_FILE
61 // ------------------------------------------------------------------------------------
62 // MULTIPLAYER CAMPAIGN DEFINES/VARS
67 // ------------------------------------------------------------------------------------
68 // MULTIPLAYER CAMPAIGN FUNCTIONS
71 // load a new campaign file or notify the standalone if we're not the server
72 void multi_campaign_start(char *filename);
74 // client-side start of a campaign
75 void multi_campaign_client_start();
77 // move everything and eveyrone into the next mission state
78 void multi_campaign_next_mission();
80 // flush all important data between missions
81 void multi_campaign_flush_data();
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);
89 // display the done popup
90 void multi_campaign_done_popup();
92 // evaluate post mission goal stuff for the campaign and send all relevant stuff to clients
93 void multi_campaign_eval_debrief();
96 // ------------------------------------------------------------------------------------
97 // MULTIPLAYER CAMPAIGN PACKET HANDLERS
100 // process a campaign update packet
101 void multi_campaign_process_update(ubyte *data, header *hinfo);
103 // send a "campaign finished" packet
104 void multi_campaign_send_done();
106 // send a campaign pool status packet
107 void multi_campaign_send_pool_status();
109 // send a campaign debrief update packet
110 void multi_campaign_send_debrief_info();
112 // send a "start campaign" packet
113 void multi_campaign_send_start(net_player *pl = NULL);
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 );