takes mouse input. Binding not working yet.

This commit is contained in:
LT-Schmiddy 2025-05-29 23:26:21 -04:00
parent 4ec02642af
commit d54adaf5c1
5 changed files with 12 additions and 4 deletions

View file

@ -31,8 +31,7 @@
"cmakeCommandArgs": "", "cmakeCommandArgs": "",
"buildCommandArgs": "", "buildCommandArgs": "",
"ctestCommandArgs": "", "ctestCommandArgs": "",
"inheritEnvironments": [ "clang_cl_x64" ], "inheritEnvironments": [ "clang_cl_x64" ]
"variables": []
} }
] ]
} }

BIN
CONTRIB-Zelda64Recomp.zip Normal file

Binary file not shown.

View file

@ -0,0 +1,3 @@
./N64Recomp us.rev1.toml
./RSPRecomp aspMain.us.rev1.toml
./RSPRecomp njpgdspMain.us.rev1.toml

View file

@ -14,7 +14,7 @@
#elif defined(__linux__) #elif defined(__linux__)
#include <unistd.h> #include <unistd.h>
#include <pwd.h> #include <pwd.h>
#elif defined(__APPLE__) #elif defined(__APPLE__)
#include "apple/rt64_apple.h" #include "apple/rt64_apple.h"
#endif #endif

View file

@ -1,5 +1,6 @@
#include <atomic> #include <atomic>
#include <mutex> #include <mutex>
#include <iostream>
#include "ultramodern/ultramodern.hpp" #include "ultramodern/ultramodern.hpp"
#include "recomp.h" #include "recomp.h"
@ -27,6 +28,7 @@ static struct {
const Uint8* keys = nullptr; const Uint8* keys = nullptr;
SDL_Keymod keymod = SDL_Keymod::KMOD_NONE; SDL_Keymod keymod = SDL_Keymod::KMOD_NONE;
int numkeys = 0; int numkeys = 0;
unsigned int mouse_button_state;
std::atomic_int32_t mouse_wheel_pos = 0; std::atomic_int32_t mouse_wheel_pos = 0;
std::mutex cur_controllers_mutex; std::mutex cur_controllers_mutex;
std::vector<SDL_GameController*> cur_controllers{}; std::vector<SDL_GameController*> cur_controllers{};
@ -334,7 +336,7 @@ const recomp::DefaultN64Mappings recomp::default_n64_keyboard_mappings = {
{.input_type = (uint32_t)InputType::Keyboard, .input_id = SDL_SCANCODE_SPACE} {.input_type = (uint32_t)InputType::Keyboard, .input_id = SDL_SCANCODE_SPACE}
}, },
.b = { .b = {
{.input_type = (uint32_t)InputType::Keyboard, .input_id = SDL_SCANCODE_LSHIFT} {.input_type = (uint32_t)InputType::Mouse, .input_id = 0}
}, },
.l = { .l = {
{.input_type = (uint32_t)InputType::Keyboard, .input_id = SDL_SCANCODE_E} {.input_type = (uint32_t)InputType::Keyboard, .input_id = SDL_SCANCODE_E}
@ -467,6 +469,8 @@ const recomp::DefaultN64Mappings recomp::default_n64_controller_mappings = {
}; };
void recomp::poll_inputs() { void recomp::poll_inputs() {
InputState.mouse_button_state = SDL_GetMouseState(NULL, NULL);
InputState.keys = SDL_GetKeyboardState(&InputState.numkeys); InputState.keys = SDL_GetKeyboardState(&InputState.numkeys);
InputState.keymod = SDL_GetModState(); InputState.keymod = SDL_GetModState();
@ -654,6 +658,8 @@ bool recomp::get_input_digital(const recomp::InputField& field) {
// TODO adjustable threshold // TODO adjustable threshold
return controller_axis_state(field.input_id, true) >= axis_threshold; return controller_axis_state(field.input_id, true) >= axis_threshold;
case InputType::Mouse: case InputType::Mouse:
//std::cout << "Mouse State: " << InputState.mouse_button_state << "\n";
return InputState.mouse_button_state & (1 << field.input_id);
// TODO mouse support // TODO mouse support
return false; return false;
case InputType::None: case InputType::None: