Polyphase Game Engine
Loading...
Searching...
No Matches
LoadingMenu.h
Go to the documentation of this file.
1#pragma once
2
3#include "PolyphaseAPI.h"
4#include "SmartPointer.h"
5#include "Datum.h"
6#include "Nodes/Node.h"
7
8#include <string>
9#include <vector>
10
11class World;
12
13enum class LoadingState : uint8_t
14{
15 Idle,
16 Loading,
17 Closing,
18};
19
21{
22public:
23
24 void SetMenuScene(const std::string& sceneName);
25 const std::string& GetMenuScene() const;
26
27 bool Open(const std::string& targetSceneName, int32_t worldIndex = 0);
28 void Close();
29 void ForceClose();
30
31 bool IsActive() const;
32 LoadingState GetState() const;
33 const std::string& GetTargetScene() const;
34
35 void Update(float deltaTime, int32_t worldIndex);
36
37 bool ShouldInterceptLoadScene() const;
38
39private:
40
41 static Datum OnLoadingFinishedSignal(Node* listener, const std::vector<Datum>& args);
42
43 void NotifyFinished();
44 std::string ResolveLoadingSceneName() const;
45 void TeardownMenuRoot();
46
47 std::string mMenuSceneOverride;
48 std::string mActiveLoadingScene;
49 std::string mTargetScene;
50 NodePtr mMenuRoot;
51 int32_t mWorldIndex = 0;
53 float mElapsed = 0.0f;
54 bool mFinishedSignalReceived = false;
55 bool mMinDisplayElapsedEmitted = false;
56 bool mCloseRequested = false;
57 bool mInternalLoad = false;
58};
59
bool Update()
Definition Engine.cpp:790
LoadingState
Definition LoadingMenu.h:14
POLYPHASE_API LoadingMenu * GetLoadingMenu()
Definition LoadingMenu.cpp:14
Export macros for Polyphase Engine symbols.
#define POLYPHASE_API
Definition PolyphaseAPI.h:31
Definition Datum.h:169
Definition LoadingMenu.h:21
Definition Node.h:67
Definition World.h:24