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

summaryrefslogtreecommitdiff
path: root/source/frontend/StarMainInterface.cpp
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2023-07-17 22:20:39 +1000
committerKae <80987908+Novaenia@users.noreply.github.com>2023-07-17 22:20:39 +1000
commit34bb0b54222c1c0f3450c56e76f89f192d77374b (patch)
tree09e119625d066d16e3a81a8f6c0c424c4159f058 /source/frontend/StarMainInterface.cpp
parent848b11399f2e34d7f1e0523e214287bfdcc5816c (diff)
Initial voice HUD indicator setup
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() {