From 74cdc66814516d6a22d5b3f828bd17981a20ff61 Mon Sep 17 00:00:00 2001 From: Dominic Masters Date: Sun, 21 May 2023 15:11:51 -0700 Subject: [PATCH] VN textbox event --- assets/games/liminal/fonts/Ysabeau-Medium.ttf | Bin 0 -> 129232 bytes assets/games/liminal/prefabs/VNTextbox.xml | 8 ++-- .../games/liminal/scenes/Scene1Prologue.xml | 4 -- .../games/liminal/scenes/Scene1Prologue0.xml | 35 ++++++++++++++++++ assets/games/liminal/scenes/SceneBase.xml | 4 ++ .../games/vn/components/VNTextboxScroller.cpp | 27 +++++--------- .../games/vn/components/VNTextboxScroller.hpp | 8 ++-- src/dawn/games/vn/events/VNTextEvent.hpp | 15 +++++++- src/dawn/scene/SceneItem.hpp | 2 +- src/dawn/scene/components/ui/UILabel.cpp | 4 ++ src/dawn/scene/components/ui/UILabel.hpp | 1 + src/dawnliminal/CMakeLists.txt | 4 +- src/dawnopengl/display/Texture.cpp | 8 ++-- src/dawnshared/util/Xml.cpp | 2 +- src/dawntools/vnscenetool/VNSceneGen.cpp | 4 +- .../events/VNSceneEventsParser.cpp | 2 - 16 files changed, 85 insertions(+), 43 deletions(-) create mode 100644 assets/games/liminal/fonts/Ysabeau-Medium.ttf delete mode 100644 assets/games/liminal/scenes/Scene1Prologue.xml create mode 100644 assets/games/liminal/scenes/Scene1Prologue0.xml diff --git a/assets/games/liminal/fonts/Ysabeau-Medium.ttf b/assets/games/liminal/fonts/Ysabeau-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8ece58ebc6f77a781f9cc1cf49035e54461a8746 GIT binary patch literal 129232 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 z diff --git a/assets/games/liminal/scenes/Scene1Prologue.xml b/assets/games/liminal/scenes/Scene1Prologue.xml deleted file mode 100644 index c6862dfe..00000000 --- a/assets/games/liminal/scenes/Scene1Prologue.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/assets/games/liminal/scenes/Scene1Prologue0.xml b/assets/games/liminal/scenes/Scene1Prologue0.xml new file mode 100644 index 00000000..7923922e --- /dev/null +++ b/assets/games/liminal/scenes/Scene1Prologue0.xml @@ -0,0 +1,35 @@ + + + + There is a bucket. + + + + It sways above your head like the mouth of a god. You are on Angelwood's best stage, and they are cheering for you, calling you their Queen, their Prom Queen. + + + + And you are dead soon. + + + + It's Prom Day. The metal bucket is swaying. Over you. Drenching your white pristine dress in guts and gore red. They aren't cheering anymore. They're gasping. But not screaming: oh, no, not in respectable Angelwood. + + + + God. You didn't think a pig's intestines could feel so cold. + + + + You are dead when the bucket falls — crushes your skull — caves you open — drenches you and drenches you, drowns you, fells you and kills, kills, kills you. + + + + And the last thing you see --- + + + + Is their eyes. + + + \ No newline at end of file diff --git a/assets/games/liminal/scenes/SceneBase.xml b/assets/games/liminal/scenes/SceneBase.xml index 583e4c19..490e63a7 100644 --- a/assets/games/liminal/scenes/SceneBase.xml +++ b/assets/games/liminal/scenes/SceneBase.xml @@ -26,6 +26,10 @@ + + + + useEvent([&]{ assertNotNull(camTexture); diff --git a/src/dawn/games/vn/components/VNTextboxScroller.cpp b/src/dawn/games/vn/components/VNTextboxScroller.cpp index f7f85084..48184cae 100644 --- a/src/dawn/games/vn/components/VNTextboxScroller.cpp +++ b/src/dawn/games/vn/components/VNTextboxScroller.cpp @@ -22,17 +22,21 @@ void VNTextboxScroller::onStart() { this->timeCharacter = 0; this->label->startQuad = 0; this->label->quadCount = 0; + this->readyToClose = false; }; x(); + useEvent(x, this->label->eventTextChanged); + useEvent([&](float_t delta){ auto game = this->getGame(); this->timeCharacter += delta; if(this->hasRevealedAllCurrentCharacters()) { if(this->hasRevealedAllCharacters()) { - if(game->inputManager.isPressed(INPUT_BIND_ACCEPT)) { - std::cout << "HIDE" << std::endl; + if(!this->readyToClose) { + this->readyToClose = true; + this->eventReadyToClose.invoke(); } } else { if(game->inputManager.isPressed(INPUT_BIND_ACCEPT)) { @@ -43,21 +47,6 @@ void VNTextboxScroller::onStart() { } this->label->quadCount = 0; this->timeCharacter = 0.0f; - - // this->label.setTransform( - // UI_COMPONENT_ALIGN_STRETCH, - // UI_COMPONENT_ALIGN_STRETCH, - // glm::vec4( - // glm::vec2( - // this->border.getBorderSize().x + this->labelPadding.x, - // this->border.getBorderSize().y + this->labelPadding.y - - // this->label.measure.getHeightOfLineCount(this->lineCurrent) - // ), - // this->border.getBorderSize() + this->labelPadding - // ), - // 5.0f - // ); - // this->eventNewPage.invoke(); } } @@ -71,8 +60,10 @@ void VNTextboxScroller::onStart() { this->timeCharacter += game->timeManager.delta * VN_TEXTBOX_SPEED; } + auto newCount = mathFloor(this->timeCharacter); + if(newCount == this->label->quadCount) return; this->label->quadCount = mathFloor(this->timeCharacter); - // this->eventCharacterRevealed.invoke(); + this->eventCharacterRevealed.invoke(); }, getScene()->eventSceneUpdate); } diff --git a/src/dawn/games/vn/components/VNTextboxScroller.hpp b/src/dawn/games/vn/components/VNTextboxScroller.hpp index 40a679b4..636157ee 100644 --- a/src/dawn/games/vn/components/VNTextboxScroller.hpp +++ b/src/dawn/games/vn/components/VNTextboxScroller.hpp @@ -13,17 +13,19 @@ namespace Dawn { class VNTextboxScroller : public SceneItemComponent { - protected: - public: // @optional StateProperty label; + StateEvent<> eventReadyToClose; + StateEvent<> eventCharacterRevealed; + + bool_t readyToClose = false; + size_t lineCurrent = 0; float_t timeCharacter = 0.0f; VNTextboxScroller(SceneItem *item); - virtual void onStart() override; /** diff --git a/src/dawn/games/vn/events/VNTextEvent.hpp b/src/dawn/games/vn/events/VNTextEvent.hpp index d5890c1d..ab7a367c 100644 --- a/src/dawn/games/vn/events/VNTextEvent.hpp +++ b/src/dawn/games/vn/events/VNTextEvent.hpp @@ -5,6 +5,8 @@ #pragma once #include "VNEvent.hpp" +#include "scene/Scene.hpp" +#include "games/vn/components/VNTextboxScroller.hpp" namespace Dawn { class VNTextEvent : public VNEvent { @@ -12,8 +14,19 @@ namespace Dawn { std::string text; protected: + VNTextboxScroller *scroller = nullptr; + void onStart() override { - std::cout << "TEXT: " << text << std::endl; + scroller = this->getScene()->findComponent(); + assertNotNull(scroller); + + scroller->label->text = text; + + useEvent([&](inputbind_t bind){ + if(bind != INPUT_BIND_ACCEPT) return; + if(!scroller->readyToClose) return; + this->next(); + }, this->getScene()->game->inputManager.eventBindPressed); } }; } \ No newline at end of file diff --git a/src/dawn/scene/SceneItem.hpp b/src/dawn/scene/SceneItem.hpp index 37489e97..8b544765 100644 --- a/src/dawn/scene/SceneItem.hpp +++ b/src/dawn/scene/SceneItem.hpp @@ -12,7 +12,7 @@ namespace Dawn { class SceneItemComponent; - class SceneItem { + class SceneItem : public StateOwner { private: std::vector components; diff --git a/src/dawn/scene/components/ui/UILabel.cpp b/src/dawn/scene/components/ui/UILabel.cpp index 7e8dc69b..a1dcd378 100644 --- a/src/dawn/scene/components/ui/UILabel.cpp +++ b/src/dawn/scene/components/ui/UILabel.cpp @@ -111,6 +111,10 @@ void UILabel::onStart() { alignmentNeedsUpdating = true; }, { &fontSize, &font, &text, &maxWidth, &startQuad, &quadCount }); + useEffect([&]{ + eventTextChanged.invoke(); + }, text); + useEffect([&]{ needsRebuffering = true; }, alignmentNeedsUpdating); diff --git a/src/dawn/scene/components/ui/UILabel.hpp b/src/dawn/scene/components/ui/UILabel.hpp index c06b025c..7037fa03 100644 --- a/src/dawn/scene/components/ui/UILabel.hpp +++ b/src/dawn/scene/components/ui/UILabel.hpp @@ -45,6 +45,7 @@ namespace Dawn { StateProperty quadCount; StateEvent<> eventFontRebuffered; + StateEvent<> eventTextChanged; struct FontMeasure measure; diff --git a/src/dawnliminal/CMakeLists.txt b/src/dawnliminal/CMakeLists.txt index 6da8524a..c0224a20 100644 --- a/src/dawnliminal/CMakeLists.txt +++ b/src/dawnliminal/CMakeLists.txt @@ -19,12 +19,12 @@ add_subdirectory(save) # Assets set(LIMINAL_ASSETS_DIR ${DAWN_ASSETS_DIR}/games/liminal) -tool_truetype(font_main ${DAWN_ASSETS_DIR}/ark-pixel.ttf) +tool_truetype(font_main ${LIMINAL_ASSETS_DIR}/fonts/Ysabeau-Medium.ttf) tool_texture(texture_eth ${LIMINAL_ASSETS_DIR}/textures/eth.png) tool_texture(texture_border ${LIMINAL_ASSETS_DIR}/textures/texture_test.png) tool_scene(${LIMINAL_ASSETS_DIR}/scenes/SceneBase.xml) -tool_vnscene(${LIMINAL_ASSETS_DIR}/scenes/Scene1Prologue.xml) +tool_vnscene(${LIMINAL_ASSETS_DIR}/scenes/Scene1Prologue0.xml) tool_prefab(${LIMINAL_ASSETS_DIR}/prefabs/EthPrefab.xml) tool_prefab(${LIMINAL_ASSETS_DIR}/prefabs/VNTextbox.xml) \ No newline at end of file diff --git a/src/dawnopengl/display/Texture.cpp b/src/dawnopengl/display/Texture.cpp index dc8f5e92..60809e86 100644 --- a/src/dawnopengl/display/Texture.cpp +++ b/src/dawnopengl/display/Texture.cpp @@ -36,10 +36,10 @@ void Texture::setSize(int32_t width, int32_t height) { // Setup our preferred texture params, later this will be configurable. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - // glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - // glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + // glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + // glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); // Initialize the texture to blank glTexImage2D( diff --git a/src/dawnshared/util/Xml.cpp b/src/dawnshared/util/Xml.cpp index 5626bf58..5a4bf1cb 100644 --- a/src/dawnshared/util/Xml.cpp +++ b/src/dawnshared/util/Xml.cpp @@ -134,7 +134,7 @@ void Xml::load(Xml *xml, std::string data, size_t *j) { case XML_PARSE_STATE_PARSING_VALUE: // Keep parsing child until we find a < for an opening/closing tag. - if(c == '<') { + if(c == '<' && !(data[i] == '<' || data[i-2] == '<')) { // In HTML Spec there could be a child here but not in XML spec. doing = XML_PARSE_STATE_PARSING_CLOSE; xml->value = buffer; diff --git a/src/dawntools/vnscenetool/VNSceneGen.cpp b/src/dawntools/vnscenetool/VNSceneGen.cpp index f05629c6..372f395f 100644 --- a/src/dawntools/vnscenetool/VNSceneGen.cpp +++ b/src/dawntools/vnscenetool/VNSceneGen.cpp @@ -168,10 +168,8 @@ void VNSceneGen::generate( // Events - classInfo.includes.push_back("games/vn/components/VNManager.hpp"); classInfo.includes.push_back("games/vn/events/VNDummyEvent.hpp"); - line(&methodInit.body, "auto vnItem = this->createSceneItem();", ""); - line(&methodInit.body, "auto vnManager = vnItem->addComponent();", ""); + line(&methodInit.body, "assertNotNull(vnManager);", ""); line(&methodInit.body, "VNEvent *previous = vnManager->createEvent();", ""); line(&methodInit.body, "auto eventStart = previous;", ""); diff --git a/src/dawntools/vnscenetool/events/VNSceneEventsParser.cpp b/src/dawntools/vnscenetool/events/VNSceneEventsParser.cpp index 0f7ef58a..383144dc 100644 --- a/src/dawntools/vnscenetool/events/VNSceneEventsParser.cpp +++ b/src/dawntools/vnscenetool/events/VNSceneEventsParser.cpp @@ -29,8 +29,6 @@ int32_t VNSceneEventsParser::onParse( Xml *child = *itChildren; struct VNSceneEvent event; - std::cout << "CHILD: " << child->node << std::endl; - // Parse event(s) if(child->node == "text") { event.type = VN_SCENE_EVENT_TYPE_TEXT;