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);
}
|