Source

zorkish / ZorkishGame.cpp

/*
 * ZorkishGame.cpp
 *
 *  Created on: 24/08/2012
 *      Author: rhys
 */

#include "ZorkishGame.hpp"
#include "stages/MainMenuStage.hpp"

ZorkishGame::ZorkishGame() {
    this->smgr.set_next_stage(this->main_menu().get());
}

ZorkishGame::~ZorkishGame() = default;

ActiveStageManager& ZorkishGame::stage_manager() {
    return this->smgr;
}

const std::unique_ptr<AboutStage>& ZorkishGame::about() {
    if (!this->about_stg) {
        this->about_stg.reset(new AboutStage(*this));
    }
    return this->about_stg;
}

const std::unique_ptr<HallOfFameStage>& ZorkishGame::hall_of_fame() {
    if (!this->hall_of_fame_stg) {
        this->hall_of_fame_stg.reset(new HallOfFameStage(*this));
    }
    return this->hall_of_fame_stg;
}

const std::unique_ptr<HelpStage>& ZorkishGame::help() {
    if (!this->help_stg) {
        this->help_stg.reset(new HelpStage(*this));
    }
    return this->help_stg;
}

const std::unique_ptr<HighScoreStage>& ZorkishGame::high_score() {
    if (!this->high_score_stg) {
        this->high_score_stg.reset(new HighScoreStage(*this));
    }
    return this->high_score_stg;
}

const std::unique_ptr<MainMenuStage>& ZorkishGame::main_menu() {
    if (!this->main_menu_stg) {
        this->main_menu_stg.reset(new MainMenuStage(*this));
    }
    return this->main_menu_stg;
}

const std::unique_ptr<SelectAdventureStage>& ZorkishGame::select_adventure() {
    if (!this->select_adv_stg) {
        this->select_adv_stg.reset(new SelectAdventureStage(*this));
    }
    return this->select_adv_stg;
}

const std::unique_ptr<AdventureStage>& ZorkishGame::adventure() {
    if (!this->test_adv_stg) {
        this->test_adv_stg.reset(new AdventureStage(*this));
    }
    return this->test_adv_stg;
}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.