From 77336a24f7ba940ea61fd3f3c244a5214c60164f Mon Sep 17 00:00:00 2001 From: Rodrigo Delduca Date: Thu, 16 Jan 2025 11:20:54 -0300 Subject: [PATCH] Work in progress --- src/entity.cpp | 1 - src/eventmanager.cpp | 16 ++++++++-------- src/scriptengine.cpp | 1 + src/statemanager.cpp | 4 ++++ src/statemanager.hpp | 3 ++- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/entity.cpp b/src/entity.cpp index 3bbb71c..9d955a1 100644 --- a/src/entity.cpp +++ b/src/entity.cpp @@ -44,7 +44,6 @@ int32_t entity::y() const noexcept { void entity::move(float_t x_velocity, float_t y_velocity) noexcept { UNUSED(x_velocity); UNUSED(y_velocity); - // cpBodySetVelocity(_props.body.get(), {x_velocity, y_velocity}); } void entity::set_velocity(const algebra::vector2d &velocity) noexcept { diff --git a/src/eventmanager.cpp b/src/eventmanager.cpp index e12fe9d..fd73ff6 100644 --- a/src/eventmanager.cpp +++ b/src/eventmanager.cpp @@ -4,14 +4,14 @@ using namespace input; eventmanager::eventmanager() { - // const auto number = SDL_NumJoysticks(); - // for (auto id = 0; id < number; ++id) { - // if (SDL_IsGameController(id)) { - // if (auto controller = SDL_GameControllerOpen(id)) { - // _controllers.emplace(SDL_JoystickInstanceID(SDL_GameControllerGetJoystick(controller)), gamecontroller_ptr(controller)); - // } - // } - // } + const auto number = SDL_NumJoysticks(); + for (auto id = 0; id < number; ++id) { + if (SDL_IsGameController(id)) { + if (auto controller = SDL_GameControllerOpen(id)) { + _controllers.emplace(SDL_JoystickInstanceID(SDL_GameControllerGetJoystick(controller)), gamecontroller_ptr(controller)); + } + } + } } void eventmanager::update(float_t delta) { diff --git a/src/scriptengine.cpp b/src/scriptengine.cpp index 04f5c4d..f795d44 100644 --- a/src/scriptengine.cpp +++ b/src/scriptengine.cpp @@ -350,6 +350,7 @@ void framework::scriptengine::run() { lua.new_usertype( "StateManager", + "players", sol::property(&statemanager::players), "player", [&_p](framework::statemanager &self, input::player player) -> playerwrapper & { auto [iterator, inserted] = _p.try_emplace(player, player, self); diff --git a/src/statemanager.cpp b/src/statemanager.cpp index 0887e25..2dc89b9 100644 --- a/src/statemanager.cpp +++ b/src/statemanager.cpp @@ -14,6 +14,10 @@ bool statemanager::on(int player, const std::variant &type return false; } +int8_t statemanager::players() const noexcept { + return 0; // TODO +} + constexpr std::optional keytoctrl(const input::keyevent &event) { using namespace input; diff --git a/src/statemanager.hpp b/src/statemanager.hpp index bcc0dd1..6947741 100644 --- a/src/statemanager.hpp +++ b/src/statemanager.hpp @@ -8,9 +8,10 @@ class statemanager : public input::eventreceiver { statemanager() = default; virtual ~statemanager() = default; - // bool is_keydown(const input::keyevent &event) const; bool on(int player, const std::variant &type) const noexcept; + int8_t players() const noexcept; + protected: virtual void on_keydown(const input::keyevent &event) noexcept;