123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- #include "gui/guiscenemanager.h"
- #include "ui/about_us/aboutus.h"
- #include "ui/dialog_form/dialogform.h"
- #include "ui/main_menu/mainmenu.h"
- #include "ui/main_menu/mainmenubackground.h"
- #include "ui/hotseat_recruitment/recruitmentscene.h"
- #include "ui/hotseat_intro/playervsplayerintro.h"
- #include "ui/hotseat_prebattle/prebattlescene.h"
- #include "ui/hotseat_game/hotseatgame.h"
- #include <QResource>
- #include <QApplication>
- #include <QFontDatabase>
- #include <QTimer>
- GuiSceneManager::GuiSceneManager(QObject *parent) : QObject(parent) {
- window_ = new QMainWindow(nullptr, Qt::Window | Qt::FramelessWindowHint);
- window_->setWindowTitle("Супер-мега-клёвая-игрушка-название-которой-мы-ещё-не-придумали");
- window_->setWindowState(Qt::WindowFullScreen);
- window_->show();
- current_scene_ = "none";
- QResource::registerResource(QApplication::applicationDirPath() + "/res/data000.gtr");
- QResource::registerResource(QApplication::applicationDirPath() + "/res/data001.gtr");
- QResource::registerResource(QApplication::applicationDirPath() + "/res/data002.gtr");
- QResource::registerResource(QApplication::applicationDirPath() + "/res/data003.gtr");
- QResource::registerResource(QApplication::applicationDirPath() + "/res/data004.gtr");
- QResource::registerResource(QApplication::applicationDirPath() + "/res/data005.gtr");
- QResource::registerResource(QApplication::applicationDirPath() + "/res/data006.gtr");
- QResource::registerResource(QApplication::applicationDirPath() + "/res/data007.gtr");
- QResource::registerResource(QApplication::applicationDirPath() + "/res/data008.gtr");
- QResource::registerResource(QApplication::applicationDirPath() + "/res/data009.gtr");
- QFontDatabase::addApplicationFont(":/assets/fonts/barocco-initial.ttf");
- QFontDatabase::addApplicationFont(":/assets/fonts/viking-cyr.ttf");
- QFontDatabase::addApplicationFont(":/assets/fonts/pixel.otf");
- registerScene("main_menu", new MainMenu(window_));
- registerScene("main_menu_background", new MainMenuBackground(window_));
- registerScene("pvp_intro", new PlayerVsPlayerIntro(window_));
- registerScene("recruit_army", new RecruitmentScene(window_));
- registerScene("prebattle", new PreBattleScene(window_));
- registerScene("hotseatgame", new HotSeatGame(window_));
- registerScene("about_us", new AboutUs(window_));
- registerScene("dialog_form", new DialogForm(window_));
- QTimer::singleShot(100, [=] {
- changeScene("main_menu");
- });
- }
- GuiSceneManager::~GuiSceneManager() {}
- bool GuiSceneManager::registerScene(QString scene_name, Scene* scene) {
- if (scene_name == "none")
- return false;
- if (scenes_.count(scene_name) != 0) {
- delete scene;
- return false;
- }
- scenes_[scene_name] = scene;
- return true;
- }
- bool GuiSceneManager::changeScene(QString scene_name, QString args) {
- if (scene_name == "main_window") {
- return false;
- }
- if (current_scene_ != "none") {
- scenes_[current_scene_]->deinit();
- scenes_[current_scene_]->hide();
- window_->takeCentralWidget();
- }
- scenes_[scene_name]->parseArgs(args);
- scenes_[scene_name]->init();
- window_->setCentralWidget(scenes_[scene_name]);
- scenes_[scene_name]->show();
- current_scene_ = scene_name;
- return true;
- }
- Scene *GuiSceneManager::getScene(QString scene_name)
- {
- return scenes_[scene_name];
- }
- bool GuiSceneManager::show(QString scene_name)
- {
- if (scenes_.count(scene_name) == 0)
- return false;
- scenes_[scene_name]->resize(window_->size());
- scenes_[scene_name]->show();
- return true;
- }
- bool GuiSceneManager::hide(QString scene_name)
- {
- if (scenes_.count(scene_name) == 0)
- return true;
- scenes_[scene_name]->hide();
- return false;
- }
|