// ------------------------------------------------------------------------ bool isFirstTime() const { return m_game_slot->isFirstTime(); }
void MainMenuScreen::eventCallback(Widget* widget, const std::string& name, const int playerID) { // most interesting stuff is in the ribbons, so start there RibbonWidget* ribbon = dynamic_cast<RibbonWidget*>(widget); if (ribbon == NULL) return; // what's that event?? // ---- A ribbon icon was clicked std::string selection = ribbon->getSelectionIDString(PLAYER_ID_GAME_MASTER); /* if (selection == "story") { StateManager::get()->enterGameState(); race_manager->setMinorMode(RaceManager::MINOR_MODE_CUTSCENE); race_manager->setNumKarts( 0 ); race_manager->setNumPlayers(0); race_manager->setNumLocalPlayers(0); race_manager->startSingleRace("endcutscene", 999, false); std::vector<std::string> parts; parts.push_back("introcutscene"); parts.push_back("introcutscene2"); ((CutsceneWorld*)World::getWorld())->setParts(parts); //race_manager->startSingleRace("introcutscene2", 999, false); return; } */ #if DEBUG_MENU_ITEM if (selection == "options") { // The DEBUG item FeatureUnlockedCutScene* scene = FeatureUnlockedCutScene::getInstance(); scene->addTrophy(RaceManager::DIFFICULTY_EASY); StateManager::get()->pushScreen(scene); /* static int i = 1; i++; if (i % 4 == 0) { // the passed kart will not be modified, that's why I allow myself // to use const_cast scene->addUnlockedKart( const_cast<KartProperties*>( kart_properties_manager->getKart("tux") ), L"Unlocked" ); StateManager::get()->pushScreen(scene); } else if (i % 4 == 1) { std::vector<video::ITexture*> textures; textures.push_back(irr_driver->getTexture( track_manager->getTrack("lighthouse") ->getScreenshotFile().c_str())); textures.push_back(irr_driver->getTexture( track_manager->getTrack("crescentcrossing") ->getScreenshotFile().c_str())); textures.push_back(irr_driver->getTexture( track_manager->getTrack("sandtrack") ->getScreenshotFile().c_str())); textures.push_back(irr_driver->getTexture( track_manager->getTrack("snowmountain") ->getScreenshotFile().c_str())); scene->addUnlockedPictures(textures, 1.0, 0.75, L"You did it"); StateManager::get()->pushScreen(scene); } else if (i % 4 == 2) { GrandPrixWin* scene = GrandPrixWin::getInstance(); const std::string winners[] = { "elephpant", "nolok", "pidgin" }; StateManager::get()->pushScreen(scene); scene->setKarts( winners ); } else { GrandPrixLose* scene = GrandPrixLose::getInstance(); StateManager::get()->pushScreen(scene); std::vector<std::string> losers; losers.push_back("nolok"); losers.push_back("elephpant"); losers.push_back("wilber"); scene->setKarts( losers ); } */ } else #endif if (selection == "new") { KartSelectionScreen* s = KartSelectionScreen::getInstance(); s->setMultiplayer(false); s->setFromOverworld(false); StateManager::get()->pushScreen( s ); } else if (selection == "multiplayer") { KartSelectionScreen* s = KartSelectionScreen::getInstance(); s->setMultiplayer(true); s->setFromOverworld(false); StateManager::get()->pushScreen( s ); } else if (selection == "options") { StateManager::get()->pushScreen( OptionsScreenVideo::getInstance() ); } else if (selection == "quit") { StateManager::get()->popMenu(); return; } else if (selection == "about") { StateManager::get()->pushScreen(CreditsScreen::getInstance()); } else if (selection == "help") { StateManager::get()->pushScreen(HelpScreen1::getInstance()); } else if (selection == "story") { GameSlot* slot = unlock_manager->getCurrentSlot(); if (slot->isFirstTime()) { StateManager::get()->enterGameState(); race_manager->setMinorMode(RaceManager::MINOR_MODE_CUTSCENE); race_manager->setNumKarts( 0 ); race_manager->setNumPlayers(0); race_manager->setNumLocalPlayers(0); race_manager->startSingleRace("introcutscene", 999, false); std::vector<std::string> parts; parts.push_back("introcutscene"); parts.push_back("introcutscene2"); ((CutsceneWorld*)World::getWorld())->setParts(parts); //race_manager->startSingleRace("introcutscene2", 999, false); return; } else { OverWorld::enterOverWorld(); } } else if (selection == "tutorial") { StateManager::get()->pushScreen(TutorialScreen::getInstance()); } else if (selection == "addons") { StateManager::get()->pushScreen(AddonsScreen::getInstance()); } } // eventCallback