Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/frontend/StarMainInterface.cpp
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2023-07-20 15:00:59 +1000
committerKae <80987908+Novaenia@users.noreply.github.com>2023-07-20 15:00:59 +1000
commitc1ae23808677028ef6ac1b7f0b19b298d78affc2 (patch)
tree0310c9d5e4673ea49add9791713fdd83b81ed87f /source/frontend/StarMainInterface.cpp
parent9d66acde2ae6896607da953e20ba5bbfc23948f6 (diff)
parent043db1841ee46ace0f6919bfdf6ac20a539faaca (diff)
Merge branch 'voice'
Diffstat (limited to 'source/frontend/StarMainInterface.cpp')
-rw-r--r--source/frontend/StarMainInterface.cpp26
1 files changed, 18 insertions, 8 deletions
diff --git a/source/frontend/StarMainInterface.cpp b/source/frontend/StarMainInterface.cpp
index 9f335b6..0dc3a01 100644
--- a/source/frontend/StarMainInterface.cpp
+++ b/source/frontend/StarMainInterface.cpp
@@ -62,8 +62,8 @@ namespace Star {
GuiMessage::GuiMessage() : message(), cooldown(), springState() {}
-GuiMessage::GuiMessage(String const& message, float cooldown)
- : message(message), cooldown(cooldown), springState(0) {}
+GuiMessage::GuiMessage(String const& message, float cooldown, float spring)
+ : message(message), cooldown(cooldown), springState(spring) {}
MainInterface::MainInterface(UniverseClientPtr client, WorldPainterPtr painter, CinematicPtr cinematicOverlay) {
m_state = Running;
@@ -369,6 +369,9 @@ bool MainInterface::handleInputEvent(InputEvent const& event) {
player->endTrigger();
}
+ for (auto& pair : m_canvases)
+ pair.second->sendEvent(event);
+
return true;
}
@@ -863,11 +866,15 @@ void MainInterface::doChat(String const& chat, bool addToHistory) {
m_chat->addHistory(chat);
}
-void MainInterface::queueMessage(String const& message) {
- auto guiMessage = make_shared<GuiMessage>(message, m_config->messageTime);
+void MainInterface::queueMessage(String const& message, Maybe<float> cooldown, float spring) {
+ auto guiMessage = make_shared<GuiMessage>(message, cooldown.value(m_config->messageTime), spring);
m_messages.append(guiMessage);
}
+void MainInterface::queueMessage(String const& message) {
+ queueMessage(message, m_config->messageTime, 0.0f);
+}
+
void MainInterface::queueJoinRequest(pair<String, RpcPromiseKeeper<P2PJoinRequestReply>> request)
{
m_queuedJoinRequests.push_back(request);
@@ -927,18 +934,21 @@ void MainInterface::warpTo(WarpAction const& warpAction) {
}
CanvasWidgetPtr MainInterface::fetchCanvas(String const& canvasName, bool ignoreInterfaceScale) {
+ CanvasWidgetPtr canvas;
+
if (auto canvasPtr = m_canvases.ptr(canvasName))
- return *canvasPtr;
+ canvas = *canvasPtr;
else {
- CanvasWidgetPtr canvas = m_canvases.emplace(canvasName, make_shared<CanvasWidget>()).first->second;
+ m_canvases.emplace(canvasName, canvas = make_shared<CanvasWidget>());
canvas->setPosition(Vec2I());
if (ignoreInterfaceScale)
canvas->setSize(Vec2I(m_guiContext->windowSize()));
else
canvas->setSize(Vec2I(m_guiContext->windowInterfaceSize()));
- canvas->setIgnoreInterfaceScale(ignoreInterfaceScale);
- return canvas;
}
+
+ canvas->setIgnoreInterfaceScale(ignoreInterfaceScale);
+ return canvas;
}
PanePtr MainInterface::createEscapeDialog() {