void InterlevelScene::returnTo() { Actor::fixTime(); Dungeon::saveLevel(); Dungeon::depth = returnDepth; Level* level = Dungeon::loadLevel(Dungeon::hero->heroClass); Dungeon::switchLevel(level, Level::resizingNeeded ? level->adjustPos(returnPos) : returnPos); }
void InterlevelScene::restore() { Actor::fixTime(); GameLog::wipe(); Dungeon::loadGame(StartScene::curClass); if (Dungeon::depth == -1) { Dungeon::depth = Statistics::deepestFloor; Dungeon::switchLevel(Dungeon::loadLevel(StartScene::curClass), -1); } else { Level* level = Dungeon::loadLevel(StartScene::curClass); Dungeon::switchLevel(level, Level::resizingNeeded ? level->adjustPos(Dungeon::hero->pos) : Dungeon::hero->pos); } }