1 // CampaignFilelistBox.cpp : implementation file
7 #include "campaignfilelistbox.h"
8 #include "campaigntreewnd.h"
9 #include "missioncampaign.h"
10 #include "missionparse.h"
15 static char THIS_FILE[] = __FILE__;
18 /////////////////////////////////////////////////////////////////////////////
19 // campaign_filelist_box
21 campaign_filelist_box::campaign_filelist_box()
25 campaign_filelist_box::~campaign_filelist_box()
30 BEGIN_MESSAGE_MAP(campaign_filelist_box, CListBox)
31 //{{AFX_MSG_MAP(campaign_filelist_box)
35 /////////////////////////////////////////////////////////////////////////////
36 // campaign_filelist_box message handlers
38 void campaign_filelist_box::initialize()
42 WIN32_FIND_DATA file_data;
47 memset(wild_card, 0, 256);
48 strcpy(wild_card, NOX("*"));
49 strcat(wild_card, FS_MISSION_FILE_EXT);
50 h = FindFirstFile(wild_card, &file_data);
51 if (h != INVALID_HANDLE_VALUE) {
54 // make a call to get the mission info for this mission. Passing a misison as the second
55 // parameter will prevent The_mission from getting overwritten.
56 get_mission_info( file_data.cFileName, &a_mission );
58 // only add missions of the appropriate type to the file listbox
59 if ( (Campaign.type == CAMPAIGN_TYPE_SINGLE) && (a_mission.game_type & (MISSION_TYPE_SINGLE|MISSION_TYPE_TRAINING)) )
60 AddString(file_data.cFileName);
61 else if ( (Campaign.type == CAMPAIGN_TYPE_MULTI_COOP) && (a_mission.game_type & MISSION_TYPE_MULTI_COOP) )
62 AddString(file_data.cFileName);
63 else if ( (Campaign.type == CAMPAIGN_TYPE_MULTI_TEAMS) && (a_mission.game_type & MISSION_TYPE_MULTI_TEAMS) )
64 AddString(file_data.cFileName);
66 } while (FindNextFile(h, &file_data));
71 for (i=0; i<Campaign.num_missions; i++) {
72 z = FindString(-1, Campaign.missions[i].name);
74 DeleteString(z); // take out all missions already in the campaign
75 i--; // recheck for name just in case there are two (should be impossible but can't be sure)