From c88784a669c3f0066a41246d3560f5635e76aa00 Mon Sep 17 00:00:00 2001 From: Vladislav Khorev Date: Tue, 10 Mar 2026 11:38:16 +0300 Subject: [PATCH] Added inverse, fixing server bug --- resources/config/ui.json | 16 ++++++++++++++++ server/server.cpp | 4 ++-- src/MenuManager.cpp | 10 ++++++++++ src/Space.cpp | 38 +++++++++++++++++++++++++++++++------- 4 files changed, 59 insertions(+), 9 deletions(-) diff --git a/resources/config/ui.json b/resources/config/ui.json index 1dc861d..cd93cb6 100644 --- a/resources/config/ui.json +++ b/resources/config/ui.json @@ -41,6 +41,22 @@ "disabled": "resources/button_players.png" } }, + { + "type": "Button", + "name": "inverseMouseButton", + "x": 0, + "y": 100, + "width": 150, + "height": 150, + "horizontal_gravity": "right", + "vertical_gravity": "top", + "textures": { + "normal": "resources/fire.png", + "hover": "resources/fire.png", + "pressed": "resources/fire2.png", + "disabled": "resources/fire.png" + } + }, { "type": "Button", "name": "shootButton", diff --git a/server/server.cpp b/server/server.cpp index b72487e..716cb65 100644 --- a/server/server.cpp +++ b/server/server.cpp @@ -125,8 +125,6 @@ void Session::sendBoxesToClient() { void Session::init() { - sendBoxesToClient(); - auto timer = std::make_shared(ws_.get_executor()); timer->expires_after(std::chrono::milliseconds(100)); timer->async_wait([self = shared_from_this(), timer](const boost::system::error_code& ec) { @@ -135,6 +133,8 @@ void Session::init() uint64_t now_ms = static_cast( std::chrono::duration_cast(now_tp.time_since_epoch()).count()); + self->sendBoxesToClient(); + self->send_message("ID:" + std::to_string(self->id_) + ":" + std::to_string(now_ms)); self->do_read(); } diff --git a/src/MenuManager.cpp b/src/MenuManager.cpp index 955324e..3f82f1d 100644 --- a/src/MenuManager.cpp +++ b/src/MenuManager.cpp @@ -3,6 +3,8 @@ namespace ZL { + extern bool inverseVertical; + MenuManager::MenuManager(Renderer& iRenderer) : renderer(iRenderer) { @@ -189,6 +191,14 @@ namespace ZL { if (onShowPlayersPressed) onShowPlayersPressed(); }); + //inverseMouseButton + + uiManager.setButtonPressCallback("inverseMouseButton", [this](const std::string&) { + inverseVertical = !inverseVertical; + std::cout << "Inverse mouse: " << (inverseVertical ? "ON" : "OFF") << std::endl; + }); + + /* uiManager.setSliderCallback("velocitySlider", [this](const std::string&, float value) { diff --git a/src/Space.cpp b/src/Space.cpp index 5b865fc..a3222a1 100644 --- a/src/Space.cpp +++ b/src/Space.cpp @@ -36,6 +36,8 @@ namespace ZL extern float y; extern float z; + bool inverseVertical = true; + Eigen::Quaternionf generateRandomQuaternion(std::mt19937& gen) { @@ -2079,11 +2081,22 @@ namespace ZL Environment::tapDownHold = true; - Environment::tapDownStartPos(0) = mx; - Environment::tapDownStartPos(1) = my; + if (inverseVertical) + { + Environment::tapDownStartPos(0) = mx; + Environment::tapDownStartPos(1) = my; - Environment::tapDownCurrentPos(0) = mx; - Environment::tapDownCurrentPos(1) = my; + Environment::tapDownCurrentPos(0) = mx; + Environment::tapDownCurrentPos(1) = my; + } + else + { + Environment::tapDownStartPos(0) = mx; + Environment::tapDownStartPos(1) = -my; + + Environment::tapDownCurrentPos(0) = mx; + Environment::tapDownCurrentPos(1) = -my; + } } void Space::handleUp(int mx, int my) @@ -2096,9 +2109,20 @@ namespace ZL { if (playerListVisible) return; - if (Environment::tapDownHold) { - Environment::tapDownCurrentPos(0) = mx; - Environment::tapDownCurrentPos(1) = my; + + if (inverseVertical) + { + if (Environment::tapDownHold) { + Environment::tapDownCurrentPos(0) = mx; + Environment::tapDownCurrentPos(1) = my; + } + } + else + { + if (Environment::tapDownHold) { + Environment::tapDownCurrentPos(0) = mx; + Environment::tapDownCurrentPos(1) = -my; + } } }