void CMainGameWindow::draw() { if (_gameManager) { if (!_gameView->_surface) { CViewItem *view = _gameManager->getView(); if (view) setActiveView(view); } CScreenManager *scrManager = CScreenManager::setCurrent(); scrManager->clearSurface(SURFACE_BACKBUFFER, &_gameManager->_bounds); switch (_gameManager->_gameState._mode) { case GSMODE_PENDING_LOAD: // Pending savegame to load _gameManager->_gameState.setMode(GSMODE_INTERACTIVE); _project->loadGame(_pendingLoadSlot); _pendingLoadSlot = -1; // Deliberate fall-through to draw loaded game case GSMODE_INTERACTIVE: case GSMODE_CUTSCENE: if (_gameManager->_gameState._petActive) drawPet(scrManager); drawView(); drawViewContents(scrManager); scrManager->drawCursors(); break; case GSMODE_INSERT_CD: scrManager->drawCursors(); _vm->_filesManager->insertCD(scrManager); break; default: break; } } }