From d8df9a16bd4f4517b024c17446a94915493d7f3d Mon Sep 17 00:00:00 2001 From: german Date: Fri, 1 Jan 2021 12:32:29 -0600 Subject: Allow to return up to 16 touch inputs per engine --- src/input_common/touch_from_button.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/input_common/touch_from_button.cpp') diff --git a/src/input_common/touch_from_button.cpp b/src/input_common/touch_from_button.cpp index a07124a86..5226e70df 100644 --- a/src/input_common/touch_from_button.cpp +++ b/src/input_common/touch_from_button.cpp @@ -25,18 +25,19 @@ public: } } - std::tuple GetStatus() const override { - for (const auto& m : map) { - const bool state = std::get<0>(m)->GetStatus(); + Input::TouchStatus GetStatus() const override { + Input::TouchStatus touch_status = {}; + for (size_t id = 0; id < map.size() && id < touch_status.size(); id++) { + const bool state = std::get<0>(map[id])->GetStatus(); if (state) { - const float x = static_cast(std::get<1>(m)) / + const float x = static_cast(std::get<1>(map[id])) / static_cast(Layout::ScreenUndocked::Width); - const float y = static_cast(std::get<2>(m)) / + const float y = static_cast(std::get<2>(map[id])) / static_cast(Layout::ScreenUndocked::Height); - return {x, y, true}; + touch_status[id] = {x, y, true}; } } - return {}; + return touch_status; } private: -- cgit v1.2.3