void CMainGameWindow::applicationStarting() { // Set the video mode CScreenManager *screenManager = CScreenManager::setCurrent(); screenManager->setMode(640, 480, 16, 0, true); #if 0 // Show the initial copyright & info screen for the game if (gDebugLevel <= 0) { Image image; image.load("Bitmap/TITANIC"); _vm->_screen->blitFrom(image, Point( SCREEN_WIDTH / 2 - image.w / 2, SCREEN_HEIGHT / 2 - image.h / 2 )); _vm->_events->sleep(5000); } #endif // Set up the game project, and get game slot int saveSlot = getSavegameSlot(); if (saveSlot == -2) return; // Create game view and manager _gameView = new CSTGameView(this); _gameManager = new CGameManager(_project, _gameView, g_vm->_mixer); _gameView->setGameManager(_gameManager); // Load either a new game or selected existing save _project->loadGame(saveSlot); _inputAllowed = true; _gameManager->_gameState.setMode(GSMODE_INTERACTIVE); // TODO: Cursor/image // Generate starting messages for entering the view, node, and room. // Note the old fields are nullptr, since there's no previous view/node/room CViewItem *view = _gameManager->_gameState._gameLocation.getView(); CEnterViewMsg enterViewMsg(nullptr, view); enterViewMsg.execute(view, nullptr, MSGFLAG_SCAN); CNodeItem *node = view->findNode(); CEnterNodeMsg enterNodeMsg(nullptr, node); enterNodeMsg.execute(node, nullptr, MSGFLAG_SCAN); CRoomItem *room = view->findRoom(); CEnterRoomMsg enterRoomMsg(nullptr, room); enterRoomMsg.execute(room, nullptr, MSGFLAG_SCAN); _gameManager->initBounds(); }