From: <mk...@us...> - 2003-07-24 04:41:49
|
Update of /cvsroot/csp/APPLICATIONS/CSPSim/Source In directory sc8-pr-cvs1:/tmp/cvs-serv1209/Source Modified Files: GameScreen.cpp Log Message: Index: GameScreen.cpp =================================================================== RCS file: /cvsroot/csp/APPLICATIONS/CSPSim/Source/GameScreen.cpp,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** GameScreen.cpp 30 Jun 2003 22:27:58 -0000 1.21 --- GameScreen.cpp 24 Jul 2003 04:41:46 -0000 1.22 *************** *** 79,82 **** --- 79,83 ---- BIND_ACTION("QUIT", on_Quit); BIND_ACTION("PAUSE", on_Pause); + BIND_ACTION("TOGGLE_RECORDER", on_ToggleRecorder); BIND_ACTION("STATS", on_Stats); BIND_ACTION("CONSOLE", on_Console); *************** *** 210,213 **** --- 211,215 ---- m_ScreenInfoManager->setName("ScreenInfoManager"); m_ScreenInfoManager->setStatus("PAUSE", CSPSim::theSim->isPaused()); + m_ScreenInfoManager->setStatus("RECORD", false); m_Console = new PyConsole(ScreenWidth, ScreenHeight); *************** *** 237,240 **** --- 239,243 ---- scene->setNearObject(m_ActiveObject, false); } + setRecorder(false); } m_ActiveObject = object; *************** *** 285,290 **** static short i = 0; setCamera(dt); ! if ((++i)%3 == 0) m_InfoView->update(); } --- 288,297 ---- static short i = 0; setCamera(dt); ! if ((++i)%3 == 0) { m_InfoView->update(); + } + if (m_DataRecorder.valid()) { + m_DataRecorder->timeStamp(dt); + } } *************** *** 416,419 **** --- 423,448 ---- CSPSim::theSim->togglePause(); m_ScreenInfoManager->setStatus("PAUSE", !m_ScreenInfoManager->getStatus("PAUSE")); + } + + void GameScreen::setRecorder(bool on) { + if (on && !m_DataRecorder && m_ActiveObject.valid()) { + static int n = 0; + char fn[128]; + sprintf(fn, "data-%03d.rec", n); + m_DataRecorder = new DataRecorder(fn); + m_ActiveObject->setDataRecorder(m_DataRecorder.get()); + } else + if (!on && m_DataRecorder.valid()) { + if (m_ActiveObject.valid()) { + m_ActiveObject->setDataRecorder(NULL); + } + m_DataRecorder->close(); + m_DataRecorder = NULL; + } + m_ScreenInfoManager->setStatus("RECORD", m_DataRecorder.valid()); + } + + void GameScreen::on_ToggleRecorder() { + setRecorder(!m_DataRecorder); } |