8 #include "VoiceActingManager.h"
21 static char THIS_FILE[] = __FILE__;
24 #define INVALID_MESSAGE ((MMessage*)0xFFFFFFFF)
69 CDialog::DoDataExchange(pDX);
101 ON_EN_CHANGE(IDC_ABBREV_BRIEFING, OnChangeAbbrevBriefing)
102 ON_EN_CHANGE(IDC_ABBREV_CAMPAIGN, OnChangeAbbrevCampaign)
103 ON_EN_CHANGE(IDC_ABBREV_COMMAND_BRIEFING, OnChangeAbbrevCommandBriefing)
104 ON_EN_CHANGE(IDC_ABBREV_DEBRIEFING, OnChangeAbbrevDebriefing)
105 ON_EN_CHANGE(IDC_ABBREV_MESSAGE, OnChangeAbbrevMessage)
106 ON_EN_CHANGE(IDC_ABBREV_MISSION, OnChangeAbbrevMission)
107 ON_CBN_SELCHANGE(IDC_SUFFIX, OnChangeOtherSuffix)
125 CComboBox *box = ((CComboBox *) GetDlgItem(IDC_SUFFIX));
126 box->AddString(
".WAV");
127 box->AddString(
".OGG");
141 m_export_everything = m_export_command_briefings = m_export_briefings = m_export_debriefings = m_export_messages =
FALSE;
143 m_export_command_briefings =
TRUE;
145 m_export_briefings =
TRUE;
147 m_export_debriefings =
TRUE;
149 m_export_messages =
TRUE;
151 m_export_everything =
TRUE;
155 button->EnableWindow(m_export_everything || m_export_messages);
195 if (((CComboBox *) GetDlgItem(
IDC_SUFFIX))->GetCurSel() == 1)
205 else if (size >= 1000)
207 else if (size >= 100)
257 num.Format(
"%d", number);;
258 digits -= num.GetLength();
259 for (i = 0; i < digits; i++)
270 size_t allow_to_copy =
NAME_LENGTH - suffix.GetLength() - str.GetLength();
279 sender[allow_to_copy] =
'\0';
281 for( j = 0; sender[j] !=
'\0'; j++ ) {
283 sender[j] = (char)tolower(sender[j]);
286 if ( !isalnum( sender[j] ) )
292 while( sender[j] !=
'\0' ) {
293 if ( sender[j-1] ==
'_' && sender[j] ==
'_' ) {
295 for (k = j + 1; sender[k] !=
'\0'; k++ )
296 sender[k - 1] = sender[k];
297 sender[k - 1] =
'\0';
318 size_t modified_filenames = 0;
333 modified_filenames++;
347 modified_filenames++;
361 modified_filenames++;
376 if (filename != NULL)
381 modified_filenames++;
385 if ( modified_filenames > 0 ) {
392 snprintf(message,
sizeof(message)-1,
"File name generation complete. Modified %u messages.", modified_filenames);
404 CFileDialog dlg(
FALSE,
"txt", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
"Text files (*.txt)|*.txt||");
405 if (dlg.DoModal() != IDOK)
408 CString dlgPathName = dlg.GetPathName( );
413 MessageBox(
"Can't open file to save.",
"Error!");
422 fout(
"\n\nCommand Briefings\n-----------------\n\n");
427 entry.Replace(
"\r\n",
"\n");
431 entry.Replace(
"$message", stage->
text.c_str());
432 entry.Replace(
"$persona",
"<no persona specified>");
433 entry.Replace(
"$sender",
"<no sender specified>");
435 fout(
"%s\n\n\n", (
char *) (LPCTSTR) entry);
441 fout(
"\n\nBriefings\n---------\n\n");
446 entry.Replace(
"\r\n",
"\n");
449 entry.Replace(
"$filename", stage->
voice);
450 entry.Replace(
"$message", stage->
text.c_str());
451 entry.Replace(
"$persona",
"<no persona specified>");
452 entry.Replace(
"$sender",
"<no sender specified>");
454 fout(
"%s\n\n\n", (
char *) (LPCTSTR) entry);
460 fout(
"\n\nDebriefings\n-----------\n\n");
465 entry.Replace(
"\r\n",
"\n");
468 entry.Replace(
"$filename", stage->
voice);
469 entry.Replace(
"$message", stage->
text.c_str());
470 entry.Replace(
"$persona",
"<no persona specified>");
471 entry.Replace(
"$sender",
"<no sender specified>");
473 fout(
"%s\n\n\n", (
char *) (LPCTSTR) entry);
479 fout(
"\n\nMessages\n--------\n\n");
485 message_indexes.push_back(
i + Num_builtin_messages);
508 MessageBox(
"Script generation complete.",
"Woohoo!");
514 entry.Replace(
"\r\n",
"\n");
520 entry.Replace(
"$message", message->
message);
524 entry.Replace(
"$persona",
"<none>");
533 entry.Replace(
"$sender", &sender[1]);
535 entry.Replace(
"$sender", sender);
537 fout(
"%s\n\n\n", (
char *) (LPCTSTR) entry);
544 Assert( message != NULL );
549 if ( sender[0] ==
'#' ) {
551 for(; sender[
i] !=
'\0'; i++ ) {
552 sender[i-1] = sender[
i];
717 va_start(args, format);
780 return "Training Message";
790 size_t initial_size = message_indexes.size();
794 message_indexes.clear();
805 message_indexes.push_back(temp_message_indexes[
index]);
808 if (initial_size > message_indexes.size())
812 else if (initial_size < message_indexes.size())
841 for (
size_t i = 0;
i < source_list.size();
i++)
846 destination_list.push_back(source_list[
i]);
847 source_list.erase(source_list.begin() +
i);
866 for (
size_t i = 0;
i < source_list.size();
i++)
871 destination_list.push_back(source_list[
i]);
872 source_list.erase(source_list.begin() +
i);
892 button->EnableWindow(
TRUE);
898 button->EnableWindow(
FALSE);
904 button->EnableWindow(
FALSE);
910 button->EnableWindow(
FALSE);
916 button->EnableWindow(
TRUE);
GLenum GLsizei GLenum format
int fout(char *format,...)
CString m_abbrev_campaign
afx_msg void OnChangeNoReplace()
afx_msg void OnGenerateScript()
char Voice_abbrev_briefing[NAME_LENGTH]
CString m_script_entry_format
CString generate_filename(CString section, int number, int digits, MMessage *message=NULL)
brief_stage stages[MAX_BRIEF_STAGES]
void _cdecl void void _cdecl void _cdecl Warning(char *filename, int line, SCP_FORMAT_STRING const char *format,...) SCP_FORMAT_STRING_ARGS(3
char Voice_script_entry_format[NOTES_LENGTH]
char message[MESSAGE_LENGTH]
CString m_abbrev_briefing
afx_msg void OnSetfocusSuffix()
#define IDC_INCLUDE_SENDER
#define IDC_EXPORT_BRIEFINGS
#define OP_SEND_RANDOM_MESSAGE
afx_msg void OnSetfocusAbbrevCampaign()
GLenum GLuint GLenum GLsizei const GLchar * message
#define IDC_ABBREV_COMMAND_BRIEFING
std::basic_string< char, std::char_traits< char >, std::allocator< char > > SCP_string
cmd_brief Cmd_briefs[MAX_TVT_TEAMS]
void get_valid_sender(char *sender, size_t sender_size, MMessage *message)
afx_msg void OnChangeAbbrevBriefing()
#define IDC_EXPORT_MESSAGES
briefing Briefings[MAX_TVT_TEAMS]
BOOL m_export_debriefings
#define IDC_EXPORT_DEBRIEFINGS
afx_msg void OnSetfocusAbbrevBriefing()
VoiceActingManager(CWnd *pParent=NULL)
iff_info Iff_info[MAX_IFFS]
afx_msg void OnSetfocusAbbrevCommandBriefing()
BOOL m_export_command_briefings
SCP_vector< MMessage > Messages
afx_msg void OnExportEverything()
char * get_message_sender(char *message)
char voice[MAX_FILENAME_LEN]
#define IDC_ABBREV_DEBRIEFING
afx_msg void OnSetfocusAbbrevMission()
#define IDC_ABBREV_BRIEFING
void vsprintf(SCP_string &dest, const char *format, va_list ap)
mission_event Mission_events[MAX_MISSION_EVENTS]
#define SF2_HIDE_SHIP_NAME
CString m_abbrev_command_briefing
afx_msg void OnGenerateFileNames()
#define IDC_ABBREV_CAMPAIGN
afx_msg void OnChangeAbbrevCommandBriefing()
char Mission_filename[80]
#define IDC_GENERATE_FILE_NAMES
CString m_abbrev_debriefing
cmd_brief_stage stage[CMD_BRIEF_STAGES_MAX]
afx_msg void OnBnClickedIncludeSender()
char voice[MAX_FILENAME_LEN]
void group_message_indexes_in_tree(int node, SCP_vector< int > &source_list, SCP_vector< int > &destination_list)
#define IDC_ABBREV_MISSION
void string_copy(char *dest, const CString &src, int max_len, int modify)
afx_msg void OnChangeOtherSuffix()
afx_msg void OnChangeAbbrevMission()
bool end_string_at_first_hash_symbol(char *src)
BOOL m_use_sender_in_filename
char Voice_abbrev_command_briefing[NAME_LENGTH]
virtual void DoDataExchange(CDataExchange *pDX)
void set_modified(BOOL arg)
GLuint const GLchar * name
union MissionMessage::@255 wave_info
afx_msg void OnExportBriefings()
afx_msg void OnExportDebriefings()
char Voice_abbrev_message[NAME_LENGTH]
debrief_stage stages[MAX_DEBRIEF_STAGES]
int calc_digits(int size)
afx_msg void OnChangeAbbrevCampaign()
#define IDC_GROUP_MESSAGES
#define OP_SEND_MESSAGE_LIST
afx_msg void OnSetfocusAbbrevMessage()
afx_msg void OnExportMessages()
int cfputs(const char *str, CFILE *cfile)
bool Voice_group_messages
afx_msg void OnExportCommandBriefings()
bool message_filename_is_generic(char *filename)
char Voice_abbrev_mission[NAME_LENGTH]
int MessageBox(HWND h, const char *s1, const char *s2, int i)
int get_operator_const(const char *token)
char wave_filename[MAX_FILENAME_LEN]
#define IDC_EXPORT_COMMAND_BRIEFINGS
#define IDC_ABBREV_MESSAGE
char Voice_abbrev_debriefing[NAME_LENGTH]
afx_msg void OnSetfocusAbbrevDebriefing()
void group_message_indexes(SCP_vector< int > &message_indexes)
debriefing Debriefings[MAX_TVT_TEAMS]
void hud_stuff_ship_class(char *ship_class_text, ship *shipp)
void export_one_message(MMessage *message)
#define IFFF_WING_NAME_HIDDEN
int ship_name_lookup(const char *name, int inc_players)
int Voice_export_selection
void hud_stuff_ship_callsign(char *ship_callsign_text, ship *shipp)
char Fred_callsigns[MAX_SHIPS][NAME_LENGTH+1]
int cfclose(CFILE *cfile)
bool Voice_no_replace_filenames
#define IDC_EXPORT_EVERYTHING
afx_msg void OnChangeAbbrevMessage()
#define IDC_GENERATE_SCRIPT
char Voice_abbrev_campaign[NAME_LENGTH]
afx_msg void OnChangeAbbrevDebriefing()