LevelSelect::LevelSelect() : mySelectedX(0) , mySelectedY(0) , myFrameCounter(0) , myLevelSelected(false) , myPlayingBossLevel(false) , myBossLevelUnlocked(false) , myRunFirstDialogue(false) , myRunBossUnlockedDialogue(false) { myFont = Resource::getFont("data/images/font.bmp"); myBackground = Resource::getAnimation("data/images/level_select.bmp", 1); mySelectedLevelBackground = Resource::getAnimation("data/images/selected_level_background.bmp", 6); myUnselectedLevelBackground = Resource::getAnimation("data/images/unselected_level_background.bmp", 1); myIcons = Resource::getAnimation("data/images/icons.bmp", 9); myCompletedIconBackground = Resource::getAnimation("data/images/completed_level.bmp", 1); for (int i = 0; i < 200; i++) { myParticles.push_back(Particle(frand() * 320, frand()* 240, frand()* 3 + 1)); } PrivSetLevelDesc(0, 0, LevelDesc("GRAPPLIN' HEAVEN", "data/rooms/olof2.tmx", 0, "data/music/olof9.xm")); PrivSetLevelDesc(1, 0, LevelDesc("CAVERNOUS", "data/rooms/per4.tmx", 1, "data/music/olof8.xm")); PrivSetLevelDesc(2, 0, LevelDesc("HARRY U.P.", "data/rooms/level1.tmx", 7, "data/music/olof2-rmx.xm")); PrivSetLevelDesc(0, 1, LevelDesc("GLIDER", "data/rooms/per1.tmx", 3, "data/music/olof12.xm")); PrivSetLevelDesc(1, 1, LevelDesc("FINAL CORE", "data/rooms/olof.tmx", 5, "data/music/spooky.xm")); PrivSetLevelDesc(2, 1, LevelDesc("UNSTABLE", "data/rooms/breaktilelevel.tmx", 4, "data/music/olof8.xm")); PrivSetLevelDesc(0, 2, LevelDesc("THE TOWER", "data/rooms/per2.tmx", 2, "data/music/olof12.xm")); PrivSetLevelDesc(1, 2, LevelDesc("WALL OF DEATH", "data/rooms/per3.tmx", 6, "data/music/olof2-rmx.xm")); PrivSetLevelDesc(2, 2, LevelDesc("LAVA LAND", "data/rooms/levellava.tmx", 8, "data/music/olof2-rmx.xm")); myFirstDialogue = new Dialogue("data/dialogues/level_select.txt"); myFirstDialogue->setRunWithoutHero(); myBossUnlockedDialogue = new Dialogue("data/dialogues/boss_unlocked.txt"); myBossUnlockedDialogue->setRunWithoutHero(); }
void Title::onLogic() { myFrameCounter++; if (myGameStart) { if (myFrameCounter > 100) { ScreenManager::add(new LevelSelect()); if (mySelected == 0) { ScreenManager::add(new Level(LevelDesc("tutorial", "data/rooms/tutorial.tmx", 0, "data/music/olof9.xm"))); } } return; } if (Input::isPressed(Button_Down)) { mySelected++; if (mySelected > 1 && !myContinue) mySelected = 1; else if (mySelected > 2) mySelected = 2; else Sound::playSample("data/sounds/select.wav"); } if (Input::isPressed(Button_Up)) { mySelected--; if (mySelected < 0) mySelected = 0; else Sound::playSample("data/sounds/select.wav"); } if (Input::isPressed(Button_Fire)) { if (mySelected == 0) { myGameStart = true; myFrameCounter = 0; Music::stop(); Sound::playSample("data/sounds/start.wav"); GameState::clear(); } if (mySelected == 1 && myContinue) { myGameStart = true; myFrameCounter = 0; Music::stop(); Sound::playSample("data/sounds/start.wav"); GameState::loadFromFile(); } if (mySelected == 1 && !myContinue) exit(); if (mySelected == 2 && myContinue) exit(); } }