74 Num_recent_missions = j;
90 mprintf((
"MISSION LOAD: '%s'\n", filename_ext));
93 ext = strrchr(filename,
'.');
95 mprintf((
"Hmmm... Extension passed to mission_load...\n" ));
124 #define MLM_MAX_MISSIONS 256
137 static int last_recent_current = -1;
138 static int last_mlm_current = -1;
139 static int Campaign_filter_index;
150 if ( mlm_mission_list.
current() != -1 ) {
152 last_mlm_current = -1;
158 if ( recent_mission_list.
current() != -1 ) {
160 last_recent_current = -1;
169 static int Num_campaign_missions;
181 memset(wild_card, 0, 256);
189 mlm_window.
create( 100,100,500,300, 0 );
191 mlm_ok.
create( &mlm_window,
NOX(
"Ok"), 125, 420, 80, 40 );
192 mlm_cancel.
create( &mlm_window,
NOX(
"Cancel"), 250, 420, 80, 40 );
210 strcpy_s(Campaign_name_list[0],
NOX(
"All campaigns"));
211 strcpy_s(Campaign_name_list[1],
NOX(
"Player Missions"));
213 for ( i = 0; i < Num_campaigns+2; i++ ) {
218 Campaign_filter_index = 0;
219 campaign_filter.
set_current(Campaign_filter_index);
224 int selected, key_in, recent_current, mlm_current, use_recent_flag,
i;
260 if ( campaign_filter.
current() != Campaign_filter_index ) {
261 Campaign_filter_index = campaign_filter.
current();
263 if ( Campaign_filter_index > 1 ) {
266 for ( i = 0; i < Num_campaign_missions; i++ ) {
270 }
else if ( Campaign_filter_index == 0 ) {
272 }
else if ( Campaign_filter_index == 1 ) {
277 mlm_current = mlm_mission_list.
current();
278 recent_current = recent_mission_list.
current();
280 if ( mlm_current != last_mlm_current ) {
282 last_recent_current = -1;
284 last_mlm_current = mlm_current;
286 if ( recent_current != last_recent_current ) {
288 last_mlm_current = -1;
290 last_recent_current = recent_current;
300 selected = mlm_mission_list.
current();
301 if ( selected == -1 ) {
302 selected = recent_mission_list.
current();
308 selected = mlm_mission_list.
selected();
309 if ( selected == -1 ) {
310 selected = recent_mission_list.
selected();
315 char mission_name_final[512] =
"";
317 if ( selected > -1 ) {
319 if ( use_recent_flag ) {
323 if ( Campaign_filter_index == 0 ) {
325 }
else if (Campaign_filter_index == 1 ) {
328 strcpy_s(mission_name, Campaign_missions[selected]);
#define FS_MISSION_FILE_EXT
char * Campaign_names[MAX_CAMPAIGNS]
char Recent_missions[MAX_RECENT_MISSIONS][MAX_FILENAME_LEN]
char Game_current_mission_filename[MAX_FILENAME_LEN]
char * recent_missions[MAX_RECENT_MISSIONS]
UI_LISTBOX campaign_filter
int mission_load(char *filename_ext)
#define DIR_SEPARATOR_CHAR
void create(UI_WINDOW *wnd, int _x, int _y, int _w, int _h, int _numitem, char **_list, char *_check_list=NULL, int _max_items=-1)
int shifted_ascii_table[]
void mission_load_menu_close()
int mission_campaign_get_filenames(char *filename, char dest[][NAME_LENGTH], int *num)
void gr_set_color_fast(color *dst)
int create_default_player_ship(int use_last_flown)
void set_current(int _index)
UI_LISTBOX recent_mission_list
char * campaign_names[MAX_CAMPAIGNS+2]
void set_hotkey(int keycode)
char * mlm_missions[MLM_MAX_MISSIONS]
void create(UI_WINDOW *wnd, char *_text, int _x, int _y, int _w, int _h, int do_repeat=0, int ignore_focus=0)
char * jtmp_missions[MLM_MAX_MISSIONS]
void create(int _x, int _y, int _w, int _h, int _flags, int _f_id=-1)
void mission_load_menu_init()
int parse_main(const char *mission_name, int flags)
void set_new_list(int _numitems, char **_list)
#define MAX_CAMPAIGN_MISSIONS
void ml_update_recent_missions(char *filename)
void mission_campaign_build_list(bool desc, bool sort, bool multiplayer)
char * campaign_missions[MAX_CAMPAIGN_MISSIONS]
void mission_load_menu_do()
#define MAX_RECENT_MISSIONS
UI_LISTBOX mlm_mission_list
int cf_get_file_list(SCP_vector< SCP_string > &list, int pathtype, const char *filter, int sort=CF_SORT_NONE, SCP_vector< file_list_info > *info=NULL)
int process(int key_in=-1, int process_mouse=1)
void _cdecl gr_printf_menu(int x, int y, const char *format,...)
void gameseq_post_event(int event)
char * Campaign_file_names[MAX_CAMPAIGNS]