// Copyright (c) 2022 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT #pragma once #include "scenes/PixelVNScene.hpp" #include "scenes/Scene_2.hpp" #include "prefabs/characters/DeathPrefab.hpp" namespace Dawn { class Scene_1 : public PixelVNScene { protected: DeathPrefab *death; void vnStage() override { PixelVNScene::vnStage(); this->death = DeathPrefab::create(this); // this->death->vnCharacter.setOpacity(0); } void onSceneEnded() { auto scene = new SubSceneRendererScene(this->game); game->assetManager.queueSwap( scene->getRequiredAssets(), this->getRequiredAssets() ); game->assetManager.syncLoad(); scene->stage(); this->game->sceneCutover(scene); } IVisualNovelEvent * getVNEvent() override { auto start = new VisualNovelPauseEvent(vnManager, 1.0f); start ->then(new VisualNovelTextboxEvent(vnManager, nullptr, "scene.1.1")) ->then(new VisualNovelCallbackEvent(vnManager, this, &Scene_1::onSceneEnded)) ; return start; } public: Scene_1(DawnGame *game) : PixelVNScene(game) { } std::vector getRequiredAssets() override { auto man = &this->game->assetManager; std::vector assets = PixelVNScene::getRequiredAssets(); vectorAppend(&assets, DeathPrefab::getRequiredAssets(man)); return assets; } }; }