#pragma region CPL License /* Nuclex Unreal Module Copyright (C) 2014-2021 Nuclex Development Labs This library is free software; you can redistribute it and/or modify it under the terms of the IBM Common Public License as published by the IBM Corporation; either version 1.0 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the IBM Common Public License for more details. You should have received a copy of the IBM Common Public License along with this library */ #pragma endregion // CPL License #pragma once #include #include "VisualNovel/ParagraphBoxAnimationState.h" // --------------------------------------------------------------------------------------------- // /// Animation state of the currently tracked paragraph box struct TrackedParagraphBoxState { /// Whether the tracked state has been dropped by the story controller /// @remarks /// Causes any active latent actions to exit and drop the tracked state, too public: bool Detached; /// Location at which the paragraph box will be shown public: FTransform Anchor; /// Speaker for the paragraph box being brought up public: FString Speaker; /// Text that will be in the paragraph being brought up /// @remarks /// This is also the decision variable for when to bring up a new paragraph box /// during the Tick() method - if non-empty, it's assumed a paragraph is scheduled. public: FString Paragraph; /// Choices that will be available in the paragraph being brought up public: TArray Choices; /// Whether the latent action should conclude without closing the paragraph box public: bool KeepOpen; /// Current animation state of the paragraph box public: EParagraphBoxAnimationState AnimationState; /// Index of the choice selected by the player (-1 for choiceless boxes) public: int32 SelectedChoiceIndex; /// Whether the paragraph box has been confirmed by the user public: bool Confirmed; /// Whether the latent action is still running (to block concurrent use) public: bool IsLatentActionRunning; /* /// Whether the latent action observed the paragraph box in an open state /// @remarks /// Defensive programming: if the latent action would check the paragraph box /// immediately after ShowParagraph(), it might still have the 'Hidden' state /// and this should not cause the latent action to assume it's finished & closed. public: bool SeenUnconfirmedUnhidden; */ }; // --------------------------------------------------------------------------------------------- //