void CMagneticView::ClearAll(void) { CMagneticApp* pApp = (CMagneticApp*)AfxGetApp(); m_strOutput.Empty(); m_strStatLocation.Empty(); m_strStatScore.Empty(); m_strStatCurrent.Empty(); m_Scrollback.GetScrollback().Empty(); m_PageTable.RemoveAll(); m_Input.RemoveAll(); m_History.RemoveAll(); m_iLines = 0; m_iMaxLines = 0; m_bStatusBar = false; m_bAnimate = false; pApp->SetGameLoaded(0); m_Recording = Recording::RecordingOff; if (m_pFileRecord) fclose(m_pFileRecord); m_pFileRecord = NULL; m_Scripting = Scripting::ScriptingOff; if (m_pFileScript) fclose(m_pFileScript); m_pFileScript = NULL; m_strScript.Empty(); if (m_PicWnd.GetSafeHwnd()) m_PicWnd.SendMessage(WM_CLOSE,0,0); m_Picture.ClearAll(); SetAnimate(FALSE); ClearAnims(); }
BOOL CMagneticView::OpenGame(LPCTSTR lpszPathName) { CMagneticApp* pApp = (CMagneticApp*)AfxGetApp(); CMagneticView* pView = CMagneticView::GetView(); if (pApp->GetGameLoaded() && ms_is_running()) pApp->SetRedrawStatus(CMagneticApp::Redraw::EndOpcode); if (pView) pView->ClearAll(); CString strGfxName, strHntName, strSndName; MakeFilePath(strGfxName,lpszPathName,".gfx"); MakeFilePath(strHntName,lpszPathName,".hnt"); MakeFilePath(strSndName,lpszPathName,".snd"); // Free previous game ms_freemem(); // Initialize new game pApp->SetGameLoaded(ms_init((type8s*)lpszPathName, (type8s*)((LPCTSTR)strGfxName), (type8s*)((LPCTSTR)strHntName), (type8s*)((LPCTSTR)strSndName))); // If required, make the random number generator predictable if (pApp->GetPredictable()) ms_seed(pApp->GetRandomSeed()); // Check status of loaded game if (pApp->GetGameLoaded() == 0) { CString strMessage; strMessage.Format("Failed to load game \"%s\"",lpszPathName); AfxMessageBox(strMessage,MB_ICONEXCLAMATION); } else { if (pView) { pView->m_bStatusBar = false; pView->Invalidate(); } // Show the title picture, if possible CMagneticTitleDlg Title; Title.ShowTitle(lpszPathName); if (pView) { // Set up default file names MakeFilePath(pView->m_strRecName,lpszPathName,".rec"); MakeFilePath(pView->m_strScrName,lpszPathName,".scr"); MakeFilePath(pView->m_strFileName,lpszPathName,".sav"); pView->m_bStatusBar = ms_is_magwin() ? false : true; } } if (pView) pView->Invalidate(); return (pApp->GetGameLoaded() != 0) ? TRUE : FALSE; }