void event_editor::OnDeleteMsg() { char buf[256]; // handle this case somewhat gracefully Assert((m_cur_msg >= 0) && (m_cur_msg < m_num_messages)); if((m_cur_msg < 0) || (m_cur_msg >= m_num_messages)){ return; } if (m_messages[m_cur_msg].avi_info.name){ free(m_messages[m_cur_msg].avi_info.name); } if (m_messages[m_cur_msg].wave_info.name){ free(m_messages[m_cur_msg].wave_info.name); } ((CListBox *) GetDlgItem(IDC_MESSAGE_LIST))->DeleteString(m_cur_msg); sprintf(buf, "<%s>", m_messages[m_cur_msg].name); update_sexp_references(m_messages[m_cur_msg].name, buf, OPF_MESSAGE); update_sexp_references(m_messages[m_cur_msg].name, buf, OPF_MESSAGE_OR_STRING); m_messages.erase(m_messages.begin() + m_cur_msg); m_num_messages--; if (m_cur_msg >= m_num_messages){ m_cur_msg = m_num_messages - 1; } GetDlgItem(IDC_NEW_MSG)->EnableWindow(TRUE); modified = 1; update_cur_message(); }
void CMessageEditorDlg::OnDelete() { char buf[256]; int i; Assert((m_cur_msg >= 0) && (m_cur_msg < Num_messages)); if (Messages[m_cur_msg].avi_info.name) free(Messages[m_cur_msg].avi_info.name); if (Messages[m_cur_msg].wave_info.name) free(Messages[m_cur_msg].wave_info.name); ((CListBox *) GetDlgItem(IDC_MESSAGE_LIST))->DeleteString(m_cur_msg); sprintf(buf, "<%s>", Messages[m_cur_msg].name); update_sexp_references(Messages[m_cur_msg].name, buf, OPF_MESSAGE); for (i=m_cur_msg; i<Num_messages-1; i++) Messages[i] = Messages[i + 1]; Num_messages--; if (m_cur_msg >= Num_messages) m_cur_msg = Num_messages - 1; GetDlgItem(IDC_NEW)->EnableWindow(TRUE); modified = 1; update_cur_message(); }
void event_editor::OnSelchangeMessageList() { static int flag = 0; if (flag) return; /* if (save_message(m_cur_msg)) { flag = 1; ((CListBox *) GetDlgItem(IDC_MESSAGE_LIST)) -> SetCurSel(old); m_cur_msg = old; flag = 0; return; }*/ save(); update_cur_message(); }
void CMessageEditorDlg::OnSelchangeMessageList() { int old = m_cur_msg; static flag = 0; if (flag) return; if (update(m_cur_msg)) { flag = 1; ((CListBox *) GetDlgItem(IDC_MESSAGE_LIST)) -> SetCurSel(old); m_cur_msg = old; flag = 0; return; } update_cur_message(); }
void event_editor::OnNewMsg() { MMessage msg; save(); strcpy_s(msg.name, "<new message>"); ((CListBox *) GetDlgItem(IDC_MESSAGE_LIST))->AddString("<new message>"); strcpy_s(msg.message, "<put description here>"); msg.avi_info.name = NULL; msg.wave_info.name = NULL; msg.persona_index = -1; msg.multi_team = -1; m_messages.push_back(msg); m_cur_msg = m_num_messages++; modified = 1; update_cur_message(); }
void CMessageEditorDlg::OnNew() { if (update(m_cur_msg)) return; Assert(Num_messages < MAX_MISSION_MESSAGES); strcpy(Messages[Num_messages].name, "<new message>"); ((CListBox *) GetDlgItem(IDC_MESSAGE_LIST))->AddString("<new message>"); strcpy(Messages[Num_messages].message, "<put description here>"); Messages[Num_messages].avi_info.name = NULL; Messages[Num_messages].wave_info.name = NULL; Messages[Num_messages].persona_index = -1; m_cur_msg = Num_messages++; if (Num_messages >= MAX_MISSION_MESSAGES) GetDlgItem(IDC_NEW)->EnableWindow(FALSE); modified = 1; update_cur_message(); }
void event_editor::OnNewMsg() { // if (save_message(m_cur_msg)) // return; save(); Assert(m_num_messages + Num_builtin_messages < MAX_MISSION_MESSAGES); strcpy(m_messages[m_num_messages].name, "<new message>"); ((CListBox *) GetDlgItem(IDC_MESSAGE_LIST))->AddString("<new message>"); strcpy(m_messages[m_num_messages].message, "<put description here>"); m_messages[m_num_messages].avi_info.name = NULL; m_messages[m_num_messages].wave_info.name = NULL; m_messages[m_num_messages].persona_index = -1; m_messages[m_num_messages].multi_team = -1; m_cur_msg = m_num_messages++; if (m_num_messages + Num_builtin_messages >= MAX_MISSION_MESSAGES){ GetDlgItem(IDC_NEW_MSG)->EnableWindow(FALSE); } modified = 1; update_cur_message(); }
BOOL event_editor::OnInitDialog() { int i, adjust = 0; BOOL r = TRUE; CListBox *list; CComboBox *box; MMessage msg; CDialog::OnInitDialog(); // let the base class do the default work m_play_bm.LoadBitmap(IDB_PLAY); ((CButton *) GetDlgItem(IDC_PLAY)) -> SetBitmap(m_play_bm); if (!Show_sexp_help) adjust = -SEXP_HELP_BOX_SIZE; theApp.init_window(&Events_wnd_data, this, adjust); m_event_tree.setup((CEdit *) GetDlgItem(IDC_HELP_BOX)); load_tree(); create_tree(); if (m_num_events >= MAX_MISSION_EVENTS){ GetDlgItem(IDC_BUTTON_NEW_EVENT)->EnableWindow(FALSE); } update_cur_event(); i = m_event_tree.select_sexp_node; if (i != -1) { GetDlgItem(IDC_EVENT_TREE) -> SetFocus(); m_event_tree.hilite_item(i); r = FALSE; } m_num_messages = Num_messages - Num_builtin_messages; for (i=0; i<m_num_messages; i++) { msg = Messages[i + Num_builtin_messages]; m_messages.push_back(msg); if (m_messages[i].avi_info.name){ m_messages[i].avi_info.name = strdup(m_messages[i].avi_info.name); } if (m_messages[i].wave_info.name){ m_messages[i].wave_info.name = strdup(m_messages[i].wave_info.name); } } ((CEdit *) GetDlgItem(IDC_MESSAGE_NAME))->LimitText(NAME_LENGTH - 1); ((CEdit *) GetDlgItem(IDC_MESSAGE_TEXT))->LimitText(MESSAGE_LENGTH - 1); ((CComboBox *) GetDlgItem(IDC_AVI_FILENAME))->LimitText(MAX_FILENAME_LEN - 1); ((CComboBox *) GetDlgItem(IDC_WAVE_FILENAME))->LimitText(MAX_FILENAME_LEN - 1); list = (CListBox *) GetDlgItem(IDC_MESSAGE_LIST); list->ResetContent(); for (i=0; i<m_num_messages; i++) { list->AddString(m_messages[i].name); } box = (CComboBox *) GetDlgItem(IDC_AVI_FILENAME); box->ResetContent(); box->AddString("<None>"); for (i=0; i<Num_messages; i++) { if (Messages[i].avi_info.name) { maybe_add_head(box, Messages[i].avi_info.name); } } // add new heads, if not already in maybe_add_head(box, "Head-TP2"); maybe_add_head(box, "Head-VC2"); maybe_add_head(box, "Head-TP4"); maybe_add_head(box, "Head-TP5"); maybe_add_head(box, "Head-TP6"); maybe_add_head(box, "Head-TP7"); maybe_add_head(box, "Head-TP8"); maybe_add_head(box, "Head-VP2"); maybe_add_head(box, "Head-VP2"); maybe_add_head(box, "Head-CM2"); maybe_add_head(box, "Head-CM3"); maybe_add_head(box, "Head-CM4"); maybe_add_head(box, "Head-CM5"); maybe_add_head(box, "Head-BSH"); /* box->AddString("Head-VC"); // force it in, since Sandeep wants it and it's not used in built-in messages box->AddString("Head-VC2"); // add terran pilot heads box->AddString("Head-TP4"); box->AddString("Head-TP5"); box->AddString("Head-TP6"); box->AddString("Head-TP7"); box->AddString("Head-TP8"); // add vasudan pilot heads box->AddString("Head-VP2"); // BSH and CM2 box->AddString("Head-CM2"); box->AddString("Head-BSH"); */ box = (CComboBox *) GetDlgItem(IDC_WAVE_FILENAME); box->ResetContent(); box->AddString("<None>"); for (i=0; i<Num_messages; i++){ if (Messages[i].wave_info.name){ if (box->FindStringExact(i, Messages[i].wave_info.name) == CB_ERR){ box->AddString(Messages[i].wave_info.name); } } } // add the persona names into the combo box box = (CComboBox *) GetDlgItem(IDC_PERSONA_NAME); box->ResetContent(); box->AddString("<None>"); for (i = 0; i < Num_personas; i++ ){ box->AddString( Personas[i].name ); } // set the first message to be the first non-builtin message (if it exists) if ( Num_messages > Num_builtin_messages ){ m_cur_msg = 0; } else { m_cur_msg = -1; } update_cur_message(); return r; }
BOOL CMessageEditorDlg::OnInitDialog() { int i; CListBox *list; CComboBox *box; CDialog::OnInitDialog(); theApp.init_window(&Messages_wnd_data, this); m_tree.setup(); ((CEdit *) GetDlgItem(IDC_NAME))->LimitText(NAME_LENGTH - 1); ((CEdit *) GetDlgItem(IDC_MESSAGE_TEXT))->LimitText(MESSAGE_LENGTH - 1); ((CComboBox *) GetDlgItem(IDC_AVI_FILENAME))->LimitText(MAX_FILENAME_LEN - 1); ((CComboBox *) GetDlgItem(IDC_WAVE_FILENAME))->LimitText(MAX_FILENAME_LEN - 1); list = (CListBox *) GetDlgItem(IDC_MESSAGE_LIST); list->ResetContent(); for (i=0; i<Num_messages; i++) { //Assert(list->FindStringExact(-1, Messages[i].name) == CB_ERR); // mwa we should probably not include builtin messages into this list! list->AddString(Messages[i].name); } box = (CComboBox *) GetDlgItem(IDC_AVI_FILENAME); for (i=0; i<Num_messages; i++) if (Messages[i].avi_info.name) if (box->FindStringExact(-1, Messages[i].avi_info.name) == CB_ERR) box->AddString(Messages[i].avi_info.name); box = (CComboBox *) GetDlgItem(IDC_WAVE_FILENAME); for (i=0; i<Num_messages; i++) if (Messages[i].wave_info.name) if (box->FindStringExact(i, Messages[i].wave_info.name) == CB_ERR) box->AddString(Messages[i].wave_info.name); // add the persona names into the combo box box = (CComboBox *)GetDlgItem(IDC_PERSONA_NAME); box->ResetContent(); box->AddString("<None>"); for (i = 0; i < Num_personas; i++ ) box->AddString( Personas[i].name ); box = (CComboBox *) GetDlgItem(IDC_SENDER); for (i=0; i<MAX_SHIPS; i++) if ((Ships[i].objnum >= 0) && (Objects[Ships[i].objnum].type == OBJ_SHIP)) box->AddString(Ships[i].ship_name); for (i=0; i<MAX_WINGS; i++) if (Wings[i].wave_count) box->AddString(Wings[i].name); box->AddString("<Any wingman>"); // MWA 4/7/98 -- removed any allied //box->AddString("<Any allied>"); // set the first message to be the first non-builtin message (if it exists) if ( Num_messages > Num_builtin_messages ) m_cur_msg = Num_builtin_messages; else if (Num_messages) m_cur_msg = 0; else m_cur_msg = -1; if (Num_messages >= MAX_MISSION_MESSAGES) GetDlgItem(IDC_NEW)->EnableWindow(FALSE); update_cur_message(); return TRUE; }