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