diff options
Diffstat (limited to 'gui/EventRecorder.cpp')
-rw-r--r-- | gui/EventRecorder.cpp | 43 |
1 files changed, 28 insertions, 15 deletions
diff --git a/gui/EventRecorder.cpp b/gui/EventRecorder.cpp index d8cb0b8830..fd0093d266 100644 --- a/gui/EventRecorder.cpp +++ b/gui/EventRecorder.cpp @@ -77,6 +77,19 @@ EventRecorder::EventRecorder() { _initialized = false; _needRedraw = false; _fastPlayback = false; + + _fakeTimer = 0; + _savedState = false; + _needcontinueGame = false; + _temporarySlot = 0; + _realSaveManager = 0; + _realMixerManager = 0; + _controlPanel = 0; + _lastMillis = 0; + _lastScreenshotTime = 0; + _screenshotPeriod = 0; + _playbackFile = 0; + DebugMan.addDebugChannel(kDebugLevelEventRec, "EventRec", "Event recorder debug level"); } @@ -96,8 +109,8 @@ void EventRecorder::deinit() { _recordMode = kPassthrough; delete _fakeMixerManager; _fakeMixerManager = NULL; - controlPanel->close(); - delete controlPanel; + _controlPanel->close(); + delete _controlPanel; debugC(1, kDebugLevelEventRec, "playback:action=stopplayback"); g_system->getEventManager()->getEventDispatcher()->unregisterSource(this); _recordMode = kPassthrough; @@ -127,7 +140,7 @@ void EventRecorder::processMillis(uint32 &millis, bool skipRecord) { millisDelay = millis - _lastMillis; _lastMillis = millis; _fakeTimer += millisDelay; - controlPanel->setReplayedTime(_fakeTimer); + _controlPanel->setReplayedTime(_fakeTimer); timerEvent.recordedtype = Common::kRecorderEventTypeTimer; timerEvent.time = _fakeTimer; _playbackFile->writeEvent(timerEvent); @@ -150,7 +163,7 @@ void EventRecorder::processMillis(uint32 &millis, bool skipRecord) { } } millis = _fakeTimer; - controlPanel->setReplayedTime(_fakeTimer); + _controlPanel->setReplayedTime(_fakeTimer); break; case kRecorderPlaybackPause: millis = _fakeTimer; @@ -173,7 +186,7 @@ void EventRecorder::checkForKeyCode(const Common::Event &event) { bool EventRecorder::pollEvent(Common::Event &ev) { if ((_recordMode != kRecorderPlayback) || !_initialized) return false; - + if ((_nextEvent.recordedtype == Common::kRecorderEventTypeTimer) || (_nextEvent.type == Common::EVENT_INVALID)) { return false; } @@ -209,12 +222,12 @@ void EventRecorder::togglePause() { case kRecorderRecord: oldState = _recordMode; _recordMode = kRecorderPlaybackPause; - controlPanel->runModal(); + _controlPanel->runModal(); _recordMode = oldState; _initialized = true; break; case kRecorderPlaybackPause: - controlPanel->close(); + _controlPanel->close(); break; default: break; @@ -277,7 +290,7 @@ void EventRecorder::init(Common::String recordFileName, RecordMode mode) { return; } if (_recordMode != kPassthrough) { - controlPanel = new GUI::OnScreenDialog(_recordMode == kRecorderRecord); + _controlPanel = new GUI::OnScreenDialog(_recordMode == kRecorderRecord); } if (_recordMode == kRecorderPlayback) { applyPlaybackSettings(); @@ -318,7 +331,7 @@ bool EventRecorder::openRecordFile(const Common::String &fileName) { } bool EventRecorder::checkGameHash(const ADGameDescription *gameDesc) { - if ((gameDesc == NULL) && (_playbackFile->getHeader().hashRecords.size() != 0)) { + if (_playbackFile->getHeader().hashRecords.size() != 0) { warning("Engine doesn't contain description table"); return false; } @@ -439,8 +452,8 @@ Common::List<Common::Event> EventRecorder::mapEvent(const Common::Event &ev, Com return Common::DefaultEventMapper::mapEvent(ev, source); break; case kRecorderRecord: - g_gui.processEvent(evt, controlPanel); - if (((evt.type == Common::EVENT_LBUTTONDOWN) || (evt.type == Common::EVENT_LBUTTONUP) || (evt.type == Common::EVENT_MOUSEMOVE)) && controlPanel->isMouseOver()) { + g_gui.processEvent(evt, _controlPanel); + if (((evt.type == Common::EVENT_LBUTTONDOWN) || (evt.type == Common::EVENT_LBUTTONUP) || (evt.type == Common::EVENT_MOUSEMOVE)) && _controlPanel->isMouseOver()) { return Common::List<Common::Event>(); } else { Common::RecorderEvent e; @@ -453,13 +466,13 @@ Common::List<Common::Event> EventRecorder::mapEvent(const Common::Event &ev, Com break; case kRecorderPlaybackPause: { Common::Event dialogEvent; - if (controlPanel->isEditDlgVisible()) { + if (_controlPanel->isEditDlgVisible()) { dialogEvent = ev; } else { dialogEvent = evt; } - g_gui.processEvent(dialogEvent, controlPanel->getActiveDlg()); - if (((dialogEvent.type == Common::EVENT_LBUTTONDOWN) || (dialogEvent.type == Common::EVENT_LBUTTONUP) || (dialogEvent.type == Common::EVENT_MOUSEMOVE)) && controlPanel->isMouseOver()) { + g_gui.processEvent(dialogEvent, _controlPanel->getActiveDlg()); + if (((dialogEvent.type == Common::EVENT_LBUTTONDOWN) || (dialogEvent.type == Common::EVENT_LBUTTONUP) || (dialogEvent.type == Common::EVENT_MOUSEMOVE)) && _controlPanel->isMouseOver()) { return Common::List<Common::Event>(); } return Common::DefaultEventMapper::mapEvent(dialogEvent, source); @@ -549,7 +562,7 @@ void EventRecorder::preDrawOverlayGui() { g_system->showOverlay(); g_gui.theme()->clearAll(); g_gui.theme()->openDialog(true, GUI::ThemeEngine::kShadingNone); - controlPanel->drawDialog(); + _controlPanel->drawDialog(); g_gui.theme()->finishBuffering(); g_gui.theme()->updateScreen(); _recordMode = oldMode; |