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(); }
void CMagneticView::Animate(void) { CMagneticApp* pApp = (CMagneticApp*)AfxGetApp(); if (m_bAnimate && (pApp->GetShowGraphics() != CMagneticApp::ShowGraphics::NoGraphics)) { struct ms_position * Positions; type16 Count, Width, Height; type8 * pMask; if (ms_animate(&Positions,&Count) == 0) { m_bAnimate = false; return; } ClearAnims(); for (int i = 0; i < Count; i++) { type8* pPictureData = ms_get_anim_frame(Positions[i].number,&Width,&Height,&pMask); if (pPictureData) { CMagneticPic* pFrame = new CMagneticPic(); pFrame->NewPicture(Width,Height,pPictureData,m_Palette); pFrame->SetOrigin(CPoint(Positions[i].x,Positions[i].y)); pFrame->SetMask(pMask); m_AnimFrames.Add(pFrame); } } switch (pApp->GetShowGraphics()) { case CMagneticApp::ShowGraphics::SeparateWindow: if (m_PicWnd.GetSafeHwnd()) m_PicWnd.Invalidate(); break; case CMagneticApp::ShowGraphics::MainWindow: Invalidate(); break; } } }