int CMessageEditorDlg::query_modified() { char *ptr, buf[MESSAGE_LENGTH]; int i; UpdateData(TRUE); if (modified) return 1; if (m_cur_msg < 0) return 0; ptr = (char *) (LPCTSTR) m_message_name; for (i=0; i<Num_messages; i++) if ((i != m_cur_msg) && (!stricmp(ptr, Messages[i].name))) break; if (i < Num_messages) if (stricmp(ptr, Messages[m_cur_msg].name)) return 1; // name is different and allowed to update string_copy(buf, m_message_text, MESSAGE_LENGTH - 1); if (stricmp(buf, Messages[m_cur_msg].message)) return 1; ptr = (char *) (LPCTSTR) m_avi_filename; if (advanced_stricmp(ptr, Messages[m_cur_msg].avi_info.name)) return 1; ptr = (char *) (LPCTSTR) m_wave_filename; if (advanced_stricmp(ptr, Messages[m_cur_msg].wave_info.name)) return 1; // check to see if persona changed. use -1 since we stuck a "None" for persona // at the beginning of the list. if ( (m_persona - 1 ) != Messages[m_cur_msg].persona_index ) return 1; if (m_tree.query_false()) { if (m_event_num >= 0) return 1; } else { if (m_event_num < 0) return 1; } return 0; }
int event_editor::query_modified() { int i; char *ptr, buf[MESSAGE_LENGTH]; UpdateData(TRUE); if (modified) return 1; if (Num_mission_events != m_num_events) return 1; for (i=0; i<m_num_events; i++) { if (stricmp(m_events[i].name, Mission_events[i].name)) return 1; if (m_events[i].repeat_count != Mission_events[i].repeat_count) return 1; if (m_events[i].trigger_count != Mission_events[i].trigger_count) return 1; if (m_events[i].interval != Mission_events[i].interval) return 1; if (m_events[i].score != Mission_events[i].score) return 1; if (m_events[i].chain_delay != Mission_events[i].chain_delay) return 1; if (advanced_stricmp(m_events[i].objective_text, Mission_events[i].objective_text)) return 1; if (advanced_stricmp(m_events[i].objective_key_text, Mission_events[i].objective_key_text)) return 1; if (m_events[i].mission_log_flags != Mission_events[i].mission_log_flags) return 1; } if (m_cur_msg < 0) return 0; if (m_num_messages != Num_messages) return 1; ptr = (char *) (LPCTSTR) m_message_name; for (i=0; i<Num_builtin_messages; i++) if (!stricmp(ptr, Messages[i].name)) return 1; for (i=0; i<m_num_messages; i++) { if ((i != m_cur_msg) && (!stricmp(ptr, m_messages[m_cur_msg].name))) return 1; } if (stricmp(ptr, m_messages[m_cur_msg].name)) return 1; // name is different and allowed to update string_copy(buf, m_message_text, MESSAGE_LENGTH - 1); if (stricmp(buf, m_messages[m_cur_msg].message)) return 1; ptr = (char *) (LPCTSTR) m_avi_filename; if (advanced_stricmp(ptr, m_messages[m_cur_msg].avi_info.name)) return 1; ptr = (char *) (LPCTSTR) m_wave_filename; if (advanced_stricmp(ptr, m_messages[m_cur_msg].wave_info.name)) return 1; // check to see if persona changed. use -1 since we stuck a "None" for persona // at the beginning of the list. if ( (m_persona - 1 ) != m_messages[m_cur_msg].persona_index ) return 1; return 0; }