BOOL CMUSHclientDoc::OnNewDocument() { if (!CDocument::OnNewDocument()) return FALSE; SetDefaults (false); // set up numeric/boolean defaults SetAlphaDefaults (false); // set up alpha defaults // if defaults are wanted, overwrite what we loaded with them :) if (m_bLoaded) OnFileReloaddefaults (); else { if (!App.m_strDefaultColoursFile.IsEmpty ()) { m_bUseDefaultColours = true; Load_Set (COLOUR, App.m_strDefaultColoursFile, &Frame); } if (!App.m_strDefaultTriggersFile.IsEmpty ()) { m_bUseDefaultTriggers = true; Load_Set (TRIGGER, App.m_strDefaultTriggersFile, &Frame); } if (!App.m_strDefaultAliasesFile.IsEmpty ()) { m_bUseDefaultAliases = true; Load_Set (ALIAS, App.m_strDefaultAliasesFile, &Frame); } if (!App.m_strDefaultTimersFile.IsEmpty ()) { m_bUseDefaultTimers = true; Load_Set (TIMER, App.m_strDefaultTimersFile, &Frame); } if (!App.m_strDefaultMacrosFile.IsEmpty ()) { m_bUseDefaultMacros = true; Load_Set (MACRO, App.m_strDefaultMacrosFile, &Frame); } if (!App.m_strDefaultInputFont.IsEmpty ()) { m_bUseDefaultInputFont = true; m_input_font_height = App.m_iDefaultInputFontHeight; m_input_font_name = App.m_strDefaultInputFont; m_input_font_italic = App.m_iDefaultInputFontItalic; m_input_font_weight = App.m_iDefaultInputFontWeight; m_input_font_charset = App.m_iDefaultInputFontCharset; } // end of input font override if (!App.m_strDefaultOutputFont.IsEmpty ()) { m_bUseDefaultOutputFont = true; m_font_height = App.m_iDefaultOutputFontHeight; m_font_name = App.m_strDefaultOutputFont; m_font_weight = FW_NORMAL; m_font_charset = App.m_iDefaultOutputFontCharset; } // end of output font override } // end of not loading an existing world m_bLoaded = false; // not really loaded - effectively a new world // get name and IP address, give up if cancelled if (App.m_TypeOfNewDocument == App.eQuickConnect) // pop up nice simple dialog box { CQuickConnectDlg dlg; dlg.m_iPort = 4000; dlg.m_strWorldName = "Untitled world"; dlg.m_strAddress = ""; if (dlg.DoModal () != IDOK) return FALSE; m_server = dlg.m_strAddress; m_port = dlg.m_iPort; m_mush_name = dlg.m_strWorldName; // save auto connect flag, then set to true, to make sure we connect unsigned int savebAutoConnectWorlds = App.m_bAutoConnectWorlds; App.m_bAutoConnectWorlds = TRUE; SetUpOutputWindow (); OpenSession (); App.m_bAutoConnectWorlds = savebAutoConnectWorlds; SetModifiedFlag (); return TRUE; } // end of quick connect if (App.m_TypeOfNewDocument == App.eTelnetFromNetscape) // just do it { // get rid of telnet stuff CString strCommandLine = ::Replace (App.m_lpCmdLine, "telnet://", ""); int iSpace = strCommandLine.FindOneOf (" :"); if (iSpace == -1) { m_server = strCommandLine; m_mush_name = strCommandLine; m_port = 23; } else { m_server = strCommandLine.Left (iSpace); m_mush_name = m_server; m_port = atoi (strCommandLine.Mid (iSpace + 1)); } // save auto connect flag, then set to true, to make sure we connect unsigned int savebAutoConnectWorlds = App.m_bAutoConnectWorlds; App.m_bAutoConnectWorlds = TRUE; SetUpOutputWindow (); OpenSession (); App.m_bAutoConnectWorlds = savebAutoConnectWorlds; SetModifiedFlag (); return TRUE; } // end of telnet called from netscape navigator // we have to do this *before* getting the preferences SetUpOutputWindow (); if (!GamePreferences (ePageGeneral)) return FALSE; if(m_mush_name.IsEmpty ()) { ::TMessageBox("Your world name cannot be blank.", MB_ICONEXCLAMATION); return FALSE; } if(m_server.IsEmpty ()) { ::TMessageBox("The world TCP/IP address cannot be blank.", MB_ICONEXCLAMATION); return FALSE; } OpenSession (); return TRUE; }
BOOL CMUSHclientDoc::OnNewDocument() { if (!CDocument::OnNewDocument()) return FALSE; SetDefaults (false); // set up numeric/boolean defaults SetAlphaDefaults (false); // set up alpha defaults if (App.m_TypeOfNewDocument == App.eNormalNewDocument) // only ask on normal new world { int i = ::TMessageBox ("Preload world defaults from an existing world?", MB_YESNOCANCEL | MB_ICONQUESTION); if (i == IDCANCEL) return FALSE; if (i == IDYES) while (TRUE) // loop until successful read of file, or cancel { // Get file CString strFilter(MAKEINTRESOURCE(IDS_OPEN_WORLD_FILTER)); CString strTitle(MAKEINTRESOURCE(IDS_OPEN_WORLD_TITLE)); CFileDialog dlg(TRUE, // TRUE for FileOpen NULL, // default extension NULL, // no initial file name OFN_HIDEREADONLY|OFN_FILEMUSTEXIST, strFilter); dlg.m_ofn.lpstrTitle = strTitle; // use default world file directory dlg.m_ofn.lpstrInitialDir = Make_Absolute_Path (App.m_strDefaultWorldFileDirectory); ChangeToFileBrowsingDirectory (); int nResult = dlg.DoModal(); ChangeToStartupDirectory (); if (nResult != IDOK) break; CString strFileName = dlg.GetPathName(); CWaitCursor wait; try { // Open existing world file CFile fileWorld(strFileName, CFile::modeRead|CFile::shareDenyWrite); CArchive ar(&fileWorld, CArchive::load); try { Serialize (ar); } catch(CException* e) { ::TMessageBox ("Unexpected file format - invalid world file", MB_ICONEXCLAMATION); e->Delete(); ar.Close(); continue; } ar.Close(); } catch(CException* e) { ::TMessageBox ("Unable to open world file", MB_ICONEXCLAMATION); e->Delete(); continue; } // if we got here, we successfully loaded the world! SetModifiedFlag (); m_strWorldID = GetUniqueID (); // new world ID break; } // end of preloading defaults } // end of normal new world // if defaults are wanted, overwrite what we loaded with them :) if (m_bLoaded) OnFileReloaddefaults (); else { if (!App.m_strDefaultColoursFile.IsEmpty ()) { m_bUseDefaultColours = true; Load_Set (COLOUR, App.m_strDefaultColoursFile, &Frame); } if (!App.m_strDefaultTriggersFile.IsEmpty ()) { m_bUseDefaultTriggers = true; Load_Set (TRIGGER, App.m_strDefaultTriggersFile, &Frame); } if (!App.m_strDefaultAliasesFile.IsEmpty ()) { m_bUseDefaultAliases = true; Load_Set (ALIAS, App.m_strDefaultAliasesFile, &Frame); } if (!App.m_strDefaultTimersFile.IsEmpty ()) { m_bUseDefaultTimers = true; Load_Set (TIMER, App.m_strDefaultTimersFile, &Frame); } if (!App.m_strDefaultMacrosFile.IsEmpty ()) { m_bUseDefaultMacros = true; Load_Set (MACRO, App.m_strDefaultMacrosFile, &Frame); } if (!App.m_strDefaultInputFont.IsEmpty ()) { m_bUseDefaultInputFont = true; m_input_font_height = App.m_iDefaultInputFontHeight; m_input_font_name = App.m_strDefaultInputFont; m_input_font_italic = App.m_iDefaultInputFontItalic; m_input_font_weight = App.m_iDefaultInputFontWeight; m_input_font_charset = App.m_iDefaultInputFontCharset; } // end of input font override if (!App.m_strDefaultOutputFont.IsEmpty ()) { m_bUseDefaultOutputFont = true; m_font_height = App.m_iDefaultOutputFontHeight; m_font_name = App.m_strDefaultOutputFont; m_font_weight = FW_NORMAL; m_font_charset = App.m_iDefaultOutputFontCharset; } // end of output font override } // end of not loading an existing world m_bLoaded = false; // not really loaded - effectively a new world // get name and IP address, give up if cancelled if (App.m_TypeOfNewDocument == App.eQuickConnect) // pop up nice simple dialog box { CQuickConnectDlg dlg; dlg.m_iPort = 4000; dlg.m_strWorldName = "Untitled world"; dlg.m_strAddress = ""; if (dlg.DoModal () != IDOK) return FALSE; m_server = dlg.m_strAddress; m_port = dlg.m_iPort; m_mush_name = dlg.m_strWorldName; // save auto connect flag, then set to true, to make sure we connect unsigned int savebAutoConnectWorlds = App.m_bAutoConnectWorlds; App.m_bAutoConnectWorlds = TRUE; SetUpOutputWindow (); OpenSession (); App.m_bAutoConnectWorlds = savebAutoConnectWorlds; SetModifiedFlag (); return TRUE; } // end of quick connect if (App.m_TypeOfNewDocument == App.eTelnetFromNetscape) // just do it { // get rid of telnet stuff CString strCommandLine = ::Replace (App.m_lpCmdLine, "telnet://", ""); int iSpace = strCommandLine.FindOneOf (" :"); if (iSpace == -1) { m_server = strCommandLine; m_mush_name = strCommandLine; m_port = 23; } else { m_server = strCommandLine.Left (iSpace); m_mush_name = m_server; m_port = atoi (strCommandLine.Mid (iSpace + 1)); } // save auto connect flag, then set to true, to make sure we connect unsigned int savebAutoConnectWorlds = App.m_bAutoConnectWorlds; App.m_bAutoConnectWorlds = TRUE; SetUpOutputWindow (); OpenSession (); App.m_bAutoConnectWorlds = savebAutoConnectWorlds; SetModifiedFlag (); return TRUE; } // end of telnet called from netscape navigator // we have to do this *before* getting the preferences SetUpOutputWindow (); if (!GamePreferences (ePageGeneral)) return FALSE; if(m_mush_name.IsEmpty ()) { ::TMessageBox("Your world name cannot be blank.", MB_ICONEXCLAMATION); return FALSE; } if(m_server.IsEmpty ()) { ::TMessageBox("The world TCP/IP address cannot be blank.", MB_ICONEXCLAMATION); return FALSE; } OpenSession (); return TRUE; }