void OgreApp::setPause(bool value) { if (value) { pause = value; player->pause(); OgreFramework::getSingletonPtr()->m_pSoundMgr->pauseAllSounds(); if (predictSessionOver()) { if (player->getName() == "subject999") globals.setMessage("Training is complete!\nPlease check in.\n\nDouble tap to exit.", MESSAGE_FINAL); else globals.setMessage("That's it for Today!\nPlease check in before you leave.\n\nYou completed: " + Util::toStringInt(player->getNumStagesWon()) + " stages!\n\nDouble tap to exit.", MESSAGE_FINAL); endGame(); } else { globals.appendMessage("\n\nSwipe to Continue", MESSAGE_NORMAL); #ifdef DEBUG_MODE globals.appendMessage("\n\n" + player->getSkillLevel().getCurrentStats(), MESSAGE_NORMAL); globals.appendMessage("\n\n" + Util::toStringInt(globals.sessionTime - getTotalElapsed()), MESSAGE_NORMAL); #endif } Ogre::ControllerManager::getSingleton().setTimeFactor(0); } else if (!sessionOver) { pause = value; player->unpause(); OgreFramework::getSingletonPtr()->m_pSoundMgr->resumeAllPausedSounds(); globals.clearMessage(); Ogre::ControllerManager::getSingleton().setTimeFactor(1); } }
void EngineStage::setPause(bool value, bool targetAllSounds) { if (value) { if (targetAllSounds) OgreFramework::getSingletonPtr()->m_pSoundMgr->pauseAllSounds(); player->pause(); // Display current level index LevelSet* levels = player->getLevels(); std::string msg = "Level: "; msg += Util::toStringInt(player->getLevelRequestRow() + 1); msg += "-"; msg += (char)('A' + player->getLevelRequestCol()); globals.setMessage(msg, MESSAGE_NORMAL); Ogre::ControllerManager::getSingleton().setTimeFactor(0); } else { player->unpause(); if (targetAllSounds) OgreFramework::getSingletonPtr()->m_pSoundMgr->resumeAllPausedSounds(); globals.clearMessage(); Ogre::ControllerManager::getSingleton().setTimeFactor(1); } }
void OgreApp::endLevel(Evaluation forced) { globals.clearMessage(); if (tunnel) { tunnel->setCleaning(true); if (levelMgr->levelFinished(tunnel, forced)) { gameState = STATE_PROMPT; globals.setMessage("Play Again?\n\n\n(Yes / No)\n\n\n<--- Swipe --->", MESSAGE_NORMAL); } else gameState = STATE_PLAY; } }
void OgreApp::setupDemoScene() { bool isSynced = false; globals.initPaths(); #if defined(NETWORKING) #if defined(OGRE_IS_IOS) isSynced = syncConfig(); #endif #endif seed = time(0); srand(seed); sessionOver = false; Util::generateMaterials(); Util::createSphere(OgreFramework::getSingletonPtr()->m_pSceneMgrMain, "sphereMesh", 1.0, 8, 8); Util::createCylinder(OgreFramework::getSingletonPtr()->m_pSceneMgrMain, "cylinderMesh", 1.0, 1.0, 8); Util::createDiamond(OgreFramework::getSingletonPtr()->m_pSceneMgrMain, "diamondMesh", 1.0, 1.0); Util::createBox(OgreFramework::getSingletonPtr()->m_pSceneMgrMain, "boxMesh", 1.0, 1.0, 1.0); Util::createPlane(OgreFramework::getSingletonPtr()->m_pSceneMgrMain, "planeMesh", 1.0, 1.0); Util::createDefaultSegments(OgreFramework::getSingletonPtr()->m_pSceneMgrMain); origin = Vector3(0, 0, 0); OgreFramework::getSingletonPtr()->m_pCameraMain->setPosition(Vector3(origin.x, origin.y, origin.z + globals.tunnelSegmentDepth / 2)); OgreFramework::getSingletonPtr()->m_pCameraMain->lookAt(origin); globals.initPaths(); if (!configStageType(globals.configPath, globals.configBackup, "globalConfig")) globals.setMessage("WARNING: Failed to read configuration", MESSAGE_ERROR); player = new Player( globals.playerName, OgreFramework::getSingletonPtr()->m_pCameraMain->getPosition(), OgreFramework::getSingletonPtr()->m_pCameraMain->getOrientation(), globals.initCamSpeed, globals.vineTOffset, SPEED_CONTROL_AUTO, seed, "vinezors" + Util::toStringInt(seed) + ".csv"); player->addVine(new Vine(OgreFramework::getSingletonPtr()->m_pSceneMgrMain->getRootSceneNode(), player->getCamPos(), globals.vineRadius)); player->setSounds(true); player->setRunningSpeed(globals.set1StartingSpeed, globals.set2StartingSpeed, globals.set3StartingSpeed, globals.trialStartingSpeed, globals.startingNav); if (!player->loadProgress(globals.savePath)) std::cout << "WARNING: Save File could not be loaded correctly" << std::endl; globals.initLogs(player->getSkillLevel().sessionID); tunnel = NULL; hud = new Hud(); // Determine length of time globals.sessionTime = globals.sessionTimeMin; if (player->getSkillLevel().sessionID >= 1) globals.sessionTime += ((globals.sessionTimeMax - globals.sessionTimeMin) / globals.expectedNumSessions) * (player->getSkillLevel().sessionID - 1); std::cout << "Session Length: " << globals.sessionTime << std::endl; levelMgr = new LevelManager(player, globals.scheduleMain, globals.scheduleRepeat, globals.scheduleRepeatRandomPool); setLevel(EVEN); Light* lightMain = OgreFramework::getSingletonPtr()->m_pSceneMgrMain->createLight("Light"); lightMain->setDiffuseColour(1.0, 1.0, 1.0); lightMain->setSpecularColour(1.0, 1.0, 1.0); //lightMain->setAttenuation(3250, 1.0, 0.0014, 0.000007); lightNodeMain = OgreFramework::getSingletonPtr()->m_pSceneMgrMain->getRootSceneNode()->createChildSceneNode("lightNode"); lightNodeMain->attachObject(lightMain); lightNodeMain->setPosition(OgreFramework::getSingletonPtr()->m_pCameraMain->getPosition()); if (!isSynced) { globals.setMessage("ERROR: Could not connect for updates.\nPlease contact the RA", MESSAGE_ERROR); } #if defined(NETWORKING) #if defined(OGRE_IS_IOS) syncLogs(); #endif #endif }
void EngineStage::setup() { globals.clearMessage(); // Dealloc data dealloc(); // Retrieve player skill and gen new tunnel PlayerLevel skillLevel = player->getSkillLevel(); // Setup player and tunnel params Vector3 origin = Vector3::ZERO; Vector3 forward = globals.tunnelReferenceForward; Quaternion rot = Quaternion(1, 0, 0, 0); //if (!configStageType(globals.configPath, globals.configBackup, "globalConfig")) // globals.setMessage("WARNING: Failed to read configuration", MESSAGE_ERROR); globals.maxCamSpeed = skillLevel.maxSpeed; globals.stageTotalTargets1 = globals.stageTotalSignals * (globals.podNBackChance / 100.0); globals.stageTotalTargets2 = globals.stageTotalSignals * (globals.podNBackChance / 100.0); globals.stageTotalTargets3 = globals.stageTotalSignals * (globals.podNBackChance / 100.0); StageMode nmode = STAGE_MODE_PROFICIENCY; StageRequest level = player->getLevels()->retrieveLevel(player->getLevelRequestRow(), player->getLevelRequestCol()); int nlevel = level.nback; switch (level.phase) { case 'A': { nmode = STAGE_MODE_COLLECTION; globals.signalTypes = std::vector<std::vector<PodInfo> >(4); globals.signalTypes[POD_SIGNAL_1].push_back(PodInfo(POD_SIGNAL_1, POD_FUEL, POD_COLOR_BLUE, POD_SHAPE_UNKNOWN, POD_SOUND_1)); globals.signalTypes[POD_SIGNAL_2].push_back(PodInfo(POD_SIGNAL_2, POD_FUEL, POD_COLOR_GREEN, POD_SHAPE_UNKNOWN, POD_SOUND_2)); globals.signalTypes[POD_SIGNAL_3].push_back(PodInfo(POD_SIGNAL_3, POD_FUEL, POD_COLOR_PINK, POD_SHAPE_UNKNOWN, POD_SOUND_3)); globals.signalTypes[POD_SIGNAL_4].push_back(PodInfo(POD_SIGNAL_4, POD_FUEL, POD_COLOR_YELLOW, POD_SHAPE_UNKNOWN, POD_SOUND_4)); //globals.setBigMessage(Util::toStringInt(nlevel) + "-Back"); globals.appendMessage("\nObtain matches by Color!", MESSAGE_NORMAL); break; } case 'B': { nmode = STAGE_MODE_COLLECTION; globals.signalTypes = std::vector<std::vector<PodInfo> >(4); globals.signalTypes[POD_SIGNAL_1].push_back(PodInfo(POD_SIGNAL_1, POD_FUEL, POD_COLOR_UNKNOWN, POD_SHAPE_DIAMOND, POD_SOUND_1)); globals.signalTypes[POD_SIGNAL_2].push_back(PodInfo(POD_SIGNAL_2, POD_FUEL, POD_COLOR_UNKNOWN, POD_SHAPE_SPHERE, POD_SOUND_2)); globals.signalTypes[POD_SIGNAL_3].push_back(PodInfo(POD_SIGNAL_3, POD_FUEL, POD_COLOR_UNKNOWN, POD_SHAPE_CONE, POD_SOUND_3)); globals.signalTypes[POD_SIGNAL_4].push_back(PodInfo(POD_SIGNAL_4, POD_FUEL, POD_COLOR_UNKNOWN, POD_SHAPE_TRIANGLE, POD_SOUND_4)); //globals.setBigMessage(Util::toStringInt(nlevel) + "-Back"); globals.appendMessage("Obtain matches by Shape!", MESSAGE_NORMAL); break; } case 'C': { nmode = STAGE_MODE_COLLECTION; globals.signalTypes = std::vector<std::vector<PodInfo> >(4); globals.signalTypes[POD_SIGNAL_1].push_back(PodInfo(POD_SIGNAL_1, POD_FUEL, POD_COLOR_HOLDOUT, POD_SHAPE_UNKNOWN, POD_SOUND_1)); globals.signalTypes[POD_SIGNAL_2].push_back(PodInfo(POD_SIGNAL_2, POD_FUEL, POD_COLOR_HOLDOUT, POD_SHAPE_UNKNOWN, POD_SOUND_2)); globals.signalTypes[POD_SIGNAL_3].push_back(PodInfo(POD_SIGNAL_3, POD_FUEL, POD_COLOR_HOLDOUT, POD_SHAPE_UNKNOWN, POD_SOUND_3)); globals.signalTypes[POD_SIGNAL_4].push_back(PodInfo(POD_SIGNAL_4, POD_FUEL, POD_COLOR_HOLDOUT, POD_SHAPE_UNKNOWN, POD_SOUND_4)); //globals.setBigMessage(Util::toStringInt(nlevel) + "-Back"); globals.setMessage("Obtain matches by only sound!", MESSAGE_NORMAL); break; } case 'D': nmode = STAGE_MODE_COLLECTION; globals.signalTypes = std::vector<std::vector<PodInfo> >(4); globals.signalTypes[POD_SIGNAL_1].push_back(PodInfo(POD_SIGNAL_1, POD_FUEL, POD_COLOR_BLUE, POD_SHAPE_DIAMOND, POD_SOUND_1)); globals.signalTypes[POD_SIGNAL_2].push_back(PodInfo(POD_SIGNAL_2, POD_FUEL, POD_COLOR_GREEN, POD_SHAPE_SPHERE, POD_SOUND_2)); globals.signalTypes[POD_SIGNAL_3].push_back(PodInfo(POD_SIGNAL_3, POD_FUEL, POD_COLOR_PINK, POD_SHAPE_CONE, POD_SOUND_3)); globals.signalTypes[POD_SIGNAL_4].push_back(PodInfo(POD_SIGNAL_4, POD_FUEL, POD_COLOR_YELLOW, POD_SHAPE_TRIANGLE, POD_SOUND_4)); //globals.setBigMessage(Util::toStringInt(nlevel) + "-Back"); globals.setMessage("Obtain matching signals!", MESSAGE_NORMAL); break; case 'E': nmode = STAGE_MODE_RECESS; globals.signalTypes.clear(); if (level.initCamSpeed <= 15) // For starting slower stages, be nicer globals.stageTotalCollections = (level.minCamSpeed + level.maxCamSpeed) / 3.0 * level.stageTime / Util::getModdedLengthByNumSegments(globals, globals.tunnelSegmentsPerPod); else globals.stageTotalCollections = (level.minCamSpeed + level.maxCamSpeed) / 2.5 * level.stageTime / Util::getModdedLengthByNumSegments(globals, globals.tunnelSegmentsPerPod); //globals.setBigMessage("Recess!"); globals.setMessage("Reach the end! Grab Fuel Cells!", MESSAGE_NORMAL); break; case 'F': nmode = STAGE_MODE_TEACHING; globals.signalTypes.clear(); //globals.setBigMessage("Training!"); globals.setMessage("Grab Fuel Cells!", MESSAGE_NORMAL); break; } globals.initCamSpeed = level.initCamSpeed; globals.minCamSpeed = level.minCamSpeed; globals.maxCamSpeed = level.maxCamSpeed; tunnel = new Tunnel( OgreFramework::getSingletonPtr()->m_pSceneMgrMain->getRootSceneNode(), origin + forward * (globals.tunnelSegmentWidth / 2), rot, globals.tunnelSegmentWidth, globals.tunnelSegmentDepth, globals.tunnelMinAngleTurn, globals.tunnelMaxAngleTurn, 1, // replace or remove... nmode, level.phase, // replace or remove... nlevel, level.stageTime, SOUTH, globals.tunnelSegmentsPerSection, globals.tunnelSegmentsPerPod, globals.tunnelSegmentsPerDistractors, globals.tunnelSegmentsPerPowerup, globals.signalTypes, level.powerups); tunnel->link(player); player->link(tunnel); tunnel->setHoldout(level.hasHoldout,level.holdoutFrequency); if (tunnel->getMode() == STAGE_MODE_RECESS) { // Assign nav levels in an incremental order specified by Liam's formula if the mode is recess // Therefore, the level parameter provided looks at the nav level provided as the starting index tunnel->setNavigationLevels(level.navLevels[0].level, globals.navMap.size() - 1, level.tunnelSectionsPerNavLevel); } else { // Otherwise, nav levels provided by the parameters tunnel->setNavigationLevels(level.navLevels, level.tunnelSectionsPerNavLevel); } tunnel->setCollectionCriteria(level.collectionCriteria); tunnel->constructTunnel(level.nameTunnelTile, globals.tunnelSections); player->newTunnel(level.nameMusic); player->setSpeedParameters(globals.initCamSpeed, globals.minCamSpeed, globals.maxCamSpeed); Util::setSkyboxAndFog(level.nameSkybox); /* if (skillLevel.set1Notify) globals.setBigMessage("Congratulations! You earned " + Util::toStringInt(nlevel) + "-Back!"); else { if (skillLevel.set1Rep >= 2) globals.setBigMessage(Util::toStringInt(nlevel) + "-Back. Challenge Round!"); else globals.setBigMessage(Util::toStringInt(nlevel) + "-Back"); } globals.setMessage("Match by Color!", MESSAGE_NORMAL); */ hud = new HudStage(player, tunnel); Quaternion camRot = player->getCombinedRotAndRoll(); // Set lighting lightMain = OgreFramework::getSingletonPtr()->m_pSceneMgrMain->createLight("StageLight"); lightMain->setDiffuseColour(1.0, 1.0, 1.0); lightMain->setSpecularColour(1.0, 1.0, 1.0); //lightMain->setAttenuation(10, 1.0, 0.0001, 0.0); lightNode = OgreFramework::getSingletonPtr()->m_pSceneMgrMain->getRootSceneNode()->createChildSceneNode("lightNode"); lightNode->attachObject(lightMain); // Set initial transformations for camera, light, skynode OgreFramework::getSingletonPtr()->m_pCameraMain->setPosition(player->getCamPos()); OgreFramework::getSingletonPtr()->m_pCameraMain->setOrientation(camRot); if (OgreFramework::getSingletonPtr()->m_pSceneMgrMain->getSkyPlaneNode()) OgreFramework::getSingletonPtr()->m_pSceneMgrMain->getSkyPlaneNode()->setOrientation(player->getCombinedRotAndRoll()); if (lightNode) lightNode->setPosition(OgreFramework::getSingletonPtr()->m_pCameraMain->getPosition()); // Set tutorial slides for certain thingies if (tunnel->getMode() == STAGE_MODE_RECESS || tunnel->getMode() == STAGE_MODE_TEACHING || tunnel->getHighestCriteria() <= 0) player->getTutorialMgr()->setSlides(TutorialManager::TUTORIAL_SLIDES_ZERO_BACK); if (tunnel->getHighestCriteria() == 1) player->getTutorialMgr()->setSlides(TutorialManager::TUTORIAL_SLIDES_ONE_BACK); if (tunnel->getHighestCriteria() == 2) player->getTutorialMgr()->setSlides(TutorialManager::TUTORIAL_SLIDES_TWO_BACK); if (tunnel->getPhase() == 'A') player->getTutorialMgr()->setSlides(TutorialManager::TUTORIAL_SLIDES_COLOR_SOUND); if (tunnel->getPhase() == 'B') player->getTutorialMgr()->setSlides(TutorialManager::TUTORIAL_SLIDES_SHAPE_SOUND); if (tunnel->getPhase() == 'C') player->getTutorialMgr()->setSlides(TutorialManager::TUTORIAL_SLIDES_SOUND_ONLY); if (tunnel->getPhase() == 'D') player->getTutorialMgr()->setSlides(TutorialManager::TUTORIAL_SLIDES_HOLDOUT); spinVelocity = 0.0f; spinVelocityTarget = 0.0f; damping = 0.0f; freeMotion = false; }
void OgreApp::setupDemoScene() { seed = time(0); srand(seed); sessionOver = false; Util::generateMaterials(); Util::createSphere(OgreFramework::getSingletonPtr()->m_pSceneMgrMain, "sphereMesh", 1.0, 256, 4); Util::createCylinder(OgreFramework::getSingletonPtr()->m_pSceneMgrMain, "cylinderMesh", 1.0, 1.0, 8); Util::createDiamond(OgreFramework::getSingletonPtr()->m_pSceneMgrMain, "diamondMesh", 1.0, 1.0); Util::createBox(OgreFramework::getSingletonPtr()->m_pSceneMgrMain, "boxMesh", 1.0, 1.0, 1.0); Util::createPlane(OgreFramework::getSingletonPtr()->m_pSceneMgrMain, "planeMesh", 1.0, 1.0); Util::createDefaultSegments(OgreFramework::getSingletonPtr()->m_pSceneMgrMain); origin = Vector3(0, 0, 0); OgreFramework::getSingletonPtr()->m_pCameraMain->setPosition(Vector3(origin.x, origin.y, origin.z + globals.tunnelSegmentDepth / 2)); OgreFramework::getSingletonPtr()->m_pCameraMain->lookAt(origin); globals.initPaths(); if (!configStageType(globals.configPath, globals.configBackup, "globalConfig")) globals.setMessage("WARNING: Failed to read configuration", MESSAGE_ERROR); player = new Player( globals.playerName, OgreFramework::getSingletonPtr()->m_pCameraMain->getPosition(), OgreFramework::getSingletonPtr()->m_pCameraMain->getOrientation(), globals.initCamSpeed, globals.vineTOffset, SPEED_CONTROL_AUTO, seed, "vinezors" + Util::toStringInt(seed) + ".csv"); player->addVine(new Vine(OgreFramework::getSingletonPtr()->m_pSceneMgrMain->getRootSceneNode(), player->getCamPos(), globals.vineRadius)); player->setSounds(true); player->setRunningSpeed(globals.set1StartingSpeed, globals.set2StartingSpeed, globals.set3StartingSpeed, globals.trialStartingSpeed, globals.startingNav); if (player->getName() != "subject999") { if (!player->loadProgress(globals.savePath)) std::cout << "WARNING: Save File could not be loaded correctly" << std::endl; } else { // Special training session for space game PlayerLevel skill = player->getSkillLevel(); skill.sessionID = 0; skill.set1 = 1; skill.set2 = 1; skill.set3 = 1; skill.set1Rep = 0; skill.set2Rep = 1; skill.set3Rep = 2; player->setSkillLevel(skill); } globals.initLogs(player->getSkillLevel().sessionID); tunnel = NULL; hud = new Hud(); // Determine length of time globals.sessionTime = (globals.sessionTimeMin + ((globals.sessionTimeMax - globals.sessionTimeMin) / globals.expectedNumSessions) * player->getSkillLevel().sessionID); std::cout << "Session Length: " << globals.sessionTime << std::endl; levelMgr = new LevelManager(player, globals.scheduleMain, globals.scheduleRepeat, globals.scheduleRepeatRandomPool); setLevel(EVEN); // OgreFramework::getSingletonPtr()->m_pCameraMain backSphere = OgreFramework::getSingletonPtr()->m_pSceneMgrMain->getRootSceneNode()->createChildSceneNode("backSphereNode"); Entity* backContentEntity = backSphere->getCreator()->createEntity("backSphereEntity", "sphereMesh"); backContentEntity->setMaterialName("General/PodUnknown"); backSphere->attachObject(backContentEntity); backSphere->scale(globals.podHeadRadius * 4, globals.podHeadRadius * 4, globals.podHeadRadius); backSphere->translate(Vector3(0, 0, -globals.tunnelSegmentDepth * 20)); }
// This version follows a schedule specified when LevelManager was initialized // // Very big function... // Hardcoded settings for five different area. Until the json files are implemented, this will // be more modular. For now, it'll do. Tunnel* LevelManager::getNextLevel(Tunnel* previousTunnel) { // Extract previous information as the previous tunnel still exists Vector3 newOrigin = Vector3(0, 0, 0) + globals.tunnelReferenceForward * (globals.tunnelSegmentWidth / 2); Quaternion newRot = Quaternion(1, 0, 0, 0); Vector3 newForward = globals.tunnelReferenceForward; int oldNBack = previousTunnel ? previousTunnel->getNBack() : 0; GameMode oldGameMode = previousTunnel ? previousTunnel->getMode() : GAME_TIMED; if (previousTunnel) { delete previousTunnel; } GameMode nmode = GAME_PROFICIENCY; int nlevel = 0; int ncontrol = 1; if (!configStageType(globals.configPath, globals.configBackup, "globalConfig")) globals.setMessage("WARNING: Failed to read configuration", MESSAGE_ERROR); PlayerLevel skillLevel = player->getSkillLevel(); // Updated in previous tunnel and referenced for new tunnel nlevel = skillLevel.set1; ncontrol = 1; nmode = GAME_PROFICIENCY; globals.initCamSpeed = skillLevel.runSpeed1; globals.maxCamSpeed = skillLevel.maxSpeed; if (skillLevel.set1Rep <= 0) { if (!configStageType(globals.configPath, globals.configBackup, "Arep1")) globals.setMessage("WARNING: Failed to read configuration", MESSAGE_ERROR); } else if (skillLevel.set1Rep <= 1) { if (!configStageType(globals.configPath, globals.configBackup, "Arep2")) globals.setMessage("WARNING: Failed to read configuration", MESSAGE_ERROR); } else { if (!configStageType(globals.configPath, globals.configBackup, "Arep3")) globals.setMessage("WARNING: Failed to read configuration", MESSAGE_ERROR); } globals.stageTotalTargets1 = globals.stageTotalSignals * (globals.podNBackChance / 100.0); globals.stageTotalTargets2 = globals.stageTotalSignals * (globals.podNBackChance / 100.0); globals.stageTotalTargets3 = globals.stageTotalSignals * (globals.podNBackChance / 100.0); globals.signalTypes = std::vector<std::vector<PodInfo> >(4); globals.signalTypes[POD_SIGNAL_1].push_back(PodInfo(POD_SIGNAL_1, POD_BASIC, POD_COLOR_BLUE, POD_SHAPE_SPHERE, POD_SOUND_1)); globals.signalTypes[POD_SIGNAL_2].push_back(PodInfo(POD_SIGNAL_2, POD_BASIC, POD_COLOR_GREEN, POD_SHAPE_SPHERE, POD_SOUND_2)); globals.signalTypes[POD_SIGNAL_3].push_back(PodInfo(POD_SIGNAL_3, POD_BASIC, POD_COLOR_PINK, POD_SHAPE_SPHERE, POD_SOUND_3)); globals.signalTypes[POD_SIGNAL_4].push_back(PodInfo(POD_SIGNAL_4, POD_BASIC, POD_COLOR_YELLOW, POD_SHAPE_SPHERE, POD_SOUND_4)); if (skillLevel.set1Notify) globals.setBigMessage("Congratulations! You earned " + Util::toStringInt(nlevel) + "-Back!"); else { if (skillLevel.set1Rep >= 2) globals.setBigMessage(Util::toStringInt(nlevel) + "-Back. Challenge Round!"); else globals.setBigMessage(Util::toStringInt(nlevel) + "-Back"); } globals.setMessage("Match by Color!", MESSAGE_NORMAL); Tunnel* ret = new Tunnel( OgreFramework::getSingletonPtr()->m_pSceneMgrMain->getRootSceneNode(), newOrigin + newForward * (globals.tunnelSegmentWidth / 2), newRot, globals.tunnelSegmentWidth, globals.tunnelSegmentDepth, globals.tunnelMinAngleTurn, globals.tunnelMaxAngleTurn, getSchedNo(), nmode, getScheduleValue(), nlevel, ncontrol, SOUTH, globals.tunnelSegmentsPerSection, globals.tunnelSegmentsPerPod, globals.tunnelSegmentsPerDistractors, globals.signalTypes); return ret; }
float LevelManager::extractTime(char c) const { PlayerLevel skillLevel = player->getSkillLevel(); switch (c) { case 'A': { if (skillLevel.set1Rep <= 0) { if (!configStageType(globals.configPath, globals.configBackup, "Arep1")) globals.setMessage("WARNING: Failed to read configuration", MESSAGE_ERROR); } else if (skillLevel.set1Rep <= 1) { if (!configStageType(globals.configPath, globals.configBackup, "Arep2")) globals.setMessage("WARNING: Failed to read configuration", MESSAGE_ERROR); } else { if (!configStageType(globals.configPath, globals.configBackup, "Arep3")) globals.setMessage("WARNING: Failed to read configuration", MESSAGE_ERROR); } break; } case 'B': { if (skillLevel.set2Rep <= 0) { if (!configStageType(globals.configPath, globals.configBackup, "Brep1")) globals.setMessage("WARNING: Failed to read configuration", MESSAGE_ERROR); } else if (skillLevel.set2Rep <= 1) { if (!configStageType(globals.configPath, globals.configBackup, "Brep2")) globals.setMessage("WARNING: Failed to read configuration", MESSAGE_ERROR); } else { if (!configStageType(globals.configPath, globals.configBackup, "Brep3")) globals.setMessage("WARNING: Failed to read configuration", MESSAGE_ERROR); } break; } case 'C': { if (skillLevel.set3Rep <= 0) { if (!configStageType(globals.configPath, globals.configBackup, "Crep1")) globals.setMessage("WARNING: Failed to read configuration", MESSAGE_ERROR); } else if (skillLevel.set3Rep <= 1) { if (!configStageType(globals.configPath, globals.configBackup, "Crep2")) globals.setMessage("WARNING: Failed to read configuration", MESSAGE_ERROR); } else { if (!configStageType(globals.configPath, globals.configBackup, "Crep3")) globals.setMessage("WARNING: Failed to read configuration", MESSAGE_ERROR); } break; } case 'D': { if (!configStageType(globals.configPath, globals.configBackup, "D")) globals.setMessage("WARNING: Failed to read configuration", MESSAGE_ERROR); break; } case 'E': { // Ignore Speed Trial... return 0.0; } case 'F': { if (!configStageType(globals.configPath, globals.configBackup, "F")) globals.setMessage("WARNING: Failed to read configuration", MESSAGE_ERROR); break; } case 'G': { if (!configStageType(globals.configPath, globals.configBackup, "G")) globals.setMessage("WARNING: Failed to read configuration", MESSAGE_ERROR); break; } case 'H': { if (!configStageType(globals.configPath, globals.configBackup, "H")) globals.setMessage("WARNING: Failed to read configuration", MESSAGE_ERROR); break; } } return globals.stageTime; }