12 #ifndef _MISSION_CAMPAIGN_H 
   13 #define _MISSION_CAMPAIGN_H 
   20 #define BUILTIN_CAMPAIGN                "FreeSpace2" 
   22 #define MAX_CAMPAIGN_MISSIONS   100                     // maximum number of missions in a campaign 
   24 #define CAMPAIGN_ERROR_CORRUPT                  -1 
   25 #define CAMPAIGN_ERROR_SEXP_EXHAUSTED   -2 
   26 #define CAMPAIGN_ERROR_MISSING                  -3 
   27 #define CAMPAIGN_ERROR_SAVEFILE                 -4 
   28 #define CAMPAIGN_ERROR_IGNORED                  -5 
   33 #define CAMPAIGN_TYPE_SINGLE                    0 
   34 #define CAMPAIGN_TYPE_MULTI_COOP                1 
   35 #define CAMPAIGN_TYPE_MULTI_TEAMS               2 
   37 #define MAX_CAMPAIGN_TYPES                              3 
   40 #define CAMPAIGN_MOVIE_PRE_MISSION              1 
   41 #define CMAPAIGN_MOVIE_POST_MISSION             2 
   43 #define CAMPAIGN_SINGLE_PLAYER_SIG     0xddddeeee 
   44 #define CAMPAIGN_MULTI_PLAYER_SIG      0xeeeeffff 
   47 #define CAMPAIGN_PERSISTENT_SHIP                        1 
   48 #define CAMPAIGN_PERSISTENT_WEAPON              2 
   52 #define CMISSION_FLAG_BASTION   (1<<0)  // set if stationed on Bastion, else Galatea 
   54 #define CMISSION_FLAG_SKIPPED   (1<<1)  // set if skipped, else not 
   55 #define CMISSION_FLAG_HAS_LOOP  (1<<2)  // mission loop, e.g. FS2 SOC loops 
   56 #define CMISSION_FLAG_HAS_FORK  (1<<3)  // campaign fork, e.g. Scroll or BWO (mutually exclusive with loop) 
   58 #define CAMPAIGN_LOOP_MISSION_UNINITIALIZED     -2 
   64 #define CF_DEFAULT_VALUE                        0 
   65 #define CF_CUSTOM_TECH_DATABASE         (1 << 0)        // Goober5000 
  133                 : desc(NULL), num_missions(0), variables(NULL)
 
  157 #define MAX_CAMPAIGNS   128 
void mission_campaign_clear(void)
 
void mission_campaign_store_goals_and_events()
 
void mission_campaign_free_list()
 
void mission_campaign_skip_to_next(int start_game=1)
 
void mission_campaign_maybe_play_movie(int type)
 
void player_loadout_init()
 
#define MAX_CAMPAIGN_TYPES
 
char * mission_branch_desc
 
struct campaign_info campaign_info
 
int Campaign_file_missing
 
ubyte debrief_persona_index
 
void mission_campaign_mission_over(bool do_next_mission=true)
 
char * Campaign_names[MAX_CAMPAIGNS]
 
char briefing_cutscene[NAME_LENGTH]
 
int Campaign_names_inited
 
SCP_vector< SCP_string > Ignored_campaigns
 
int mission_campaign_get_mission_list(const char *filename, char **list, int max)
 
int mission_campaign_get_info(const char *filename, char *name, int *type, int *max_players, char **desc=NULL)
 
std::basic_string< char, std::char_traits< char >, std::allocator< char > > SCP_string
 
ubyte ships_allowed[MAX_SHIP_CLASSES]
 
int num_missions_completed
 
void mission_campaign_end_close()
 
int mission_campaign_next_mission(void)
 
sexp_variable * redalert_variables
 
void mission_campaign_exit_loop()
 
int mission_campaign_load_by_name_csfe(char *filename, char *callsign)
 
ubyte weapons_allowed[MAX_WEAPON_TYPES]
 
int mission_campaign_parse_is_multi(char *filename, char *name)
 
char * Campaign_descs[MAX_CAMPAIGNS]
 
void campaign_delete_save(char *cfn, char *pname)
 
void mission_campaign_store_variables()
 
ubyte missions_completed[MAX_CAMPAIGN_MISSIONS]
 
int Campaign_ending_via_supernova
 
void read_mission_goal_list(int num)
 
char * Campaign_file_names[MAX_CAMPAIGNS]
 
int campaign_savefile_save(char *pname)
 
char Default_campaign_file_name[MAX_FILENAME_LEN-4]
 
char * mission_branch_brief_anim
 
void mission_campaign_savefile_generate_root(char *filename, player *pl=NULL)
 
int mission_campaign_save(void)
 
sexp_variable * variables
 
char filename[NAME_LENGTH]
 
char * campaign_types[MAX_CAMPAIGN_TYPES]
 
void mission_campaign_end_init()
 
int mission_campaign_load_by_name(char *filename)
 
void mission_campaign_save_player_persistent_variables()
 
GLuint const GLchar * name
 
void mission_campaign_jump_to_mission(char *name, bool no_skip=false)
 
char * mission_branch_brief_sound
 
void mission_campaign_delete_all_savefiles(char *pilot_name)
 
void mission_campaign_build_list(bool desc=false, bool sort=true, bool multiplayer=false)
 
void mission_campaign_savefile_delete(char *cfilename)
 
int mission_campaign_load_fred(char *filename, char *name_verify=NULL)
 
void mission_campaign_store_goals_and_events_and_variables()
 
void mission_campaign_eval_next_mission()
 
int mission_campaign_find_mission(char *name)
 
#define MAX_CAMPAIGN_MISSIONS
 
void mission_campaign_end_do()
 
void campaign_savefile_load(char *fname, char *pname)
 
char filename[MAX_FILENAME_LEN]
 
void mission_campaign_load_failure_popup()
 
int mission_load_up_campaign(player *p=NULL)
 
int num_missions_completed
 
sexp_variable * variables
 
int mission_campaign_load(char *filename, player *pl=NULL, int load_savefile=1, bool reset_stats=true)
 
void mission_campaign_init(void)
 
int mission_campaign_previous_mission()
 
int mission_campaign_savefile_save()
 
void mission_campaign_save_persistent(int type, int index)
 
cmission missions[MAX_CAMPAIGN_MISSIONS]
 
int redalert_num_variables