@@ -73,7 +73,7 @@ void campaign_editor::DoDataExchange(CDataExchange* pDX)
7373 DDX_CBIndex (pDX, IDC_CAMPAIGN_TYPE, m_type);
7474 DDX_Text (pDX, IDC_NUM_PLAYERS, m_num_players);
7575 DDX_Text (pDX, IDC_DESC2, m_desc);
76- DDV_MaxChars (pDX, m_desc, MISSION_DESC_LENGTH - 1 );
76+ // DDV_MaxChars(pDX, m_desc, MISSION_DESC_LENGTH - 1);
7777 DDX_Text (pDX, IDC_MISSION_LOOP_DESC, m_branch_desc);
7878 DDV_MaxChars (pDX, m_branch_desc, MISSION_DESC_LENGTH - 1 );
7979 DDX_Text (pDX, IDC_LOOP_BRIEF_ANIM, m_branch_brief_anim);
@@ -251,8 +251,8 @@ void campaign_editor::initialize( bool init_files, bool clear_path )
251251 m_type = Campaign.type ;
252252 m_num_players.Format (" %d" , Campaign.num_players );
253253
254- if (Campaign.desc ) {
255- convert_multiline_string (m_desc, Campaign.desc );
254+ if (! Campaign.description . empty () ) {
255+ convert_multiline_string (m_desc, Campaign.description );
256256 } else {
257257 m_desc = _T (" " );
258258 }
@@ -303,8 +303,6 @@ void campaign_editor::mission_selected(int num)
303303
304304void campaign_editor::update ()
305305{
306- char buf[MISSION_DESC_LENGTH];
307-
308306 // get data from dlog box
309307 UpdateData (TRUE );
310308
@@ -317,15 +315,11 @@ void campaign_editor::update()
317315 Campaign.type = m_type;
318316
319317 // update campaign desc
320- deconvert_multiline_string (buf, m_desc, MISSION_DESC_LENGTH - 1 );
321- if (Campaign.desc ) {
322- free (Campaign.desc );
323- }
318+ SCP_string desc_buf;
319+ deconvert_multiline_string (desc_buf, m_desc);
324320
325- Campaign.desc = NULL ;
326- if (strlen (buf)) {
327- Campaign.desc = strdup (buf);
328- }
321+ Campaign.description .clear ();
322+ Campaign.description = desc_buf;
329323
330324 // update flags
331325 Campaign.flags = CF_DEFAULT_VALUE;
0 commit comments