Add "SNES mouse (buttons only)" input device
This is intended for use with Lua scripts that update a mouse cursor's position directly
This commit is contained in:
parent
c0e249e993
commit
7af0bbcefc
7 changed files with 10 additions and 4 deletions
|
@ -113,6 +113,7 @@ shared_ptr<BaseControlDevice> ControlManager::CreateControllerDevice(ControllerT
|
|||
case ControllerType::SnesMouse: device.reset(new SnesMouse(console, port)); break;
|
||||
case ControllerType::SuperScope: device.reset(new SuperScope(console, port, cfg.Controllers[port].Keys)); break;
|
||||
case ControllerType::Multitap: device.reset(new Multitap(console, port, cfg.Controllers[port].Keys, cfg.Controllers[2].Keys, cfg.Controllers[3].Keys, cfg.Controllers[4].Keys)); break;
|
||||
case ControllerType::SnesMouseButtonsOnly: device.reset(new SnesMouse(console, port)); break;
|
||||
}
|
||||
|
||||
return device;
|
||||
|
|
|
@ -165,7 +165,7 @@ void InputHud::DrawControllers(OverscanDimensions overscan, int frameNumber)
|
|||
hud->DrawRectangle(pos.X - 1, pos.Y - 1, 3, 3, 0x00111111, true, 1, frameNumber);
|
||||
hud->DrawRectangle(pos.X - 1, pos.Y - 1, 3, 3, 0x80CCCCCC, false, 1, frameNumber);
|
||||
}
|
||||
} else if(controllerData[i].Type == ControllerType::SnesMouse) {
|
||||
} else if(controllerData[i].Type == ControllerType::SnesMouse || controllerData[i].Type == ControllerType::SnesMouseButtonsOnly) {
|
||||
if(cfg.DisplayInputPort[i]) {
|
||||
SnesMouse mouse(_console, 0);
|
||||
mouse.SetRawState(controllerData[i].State);
|
||||
|
|
|
@ -28,7 +28,8 @@ const vector<string> ControllerTypeNames = {
|
|||
"SnesController",
|
||||
"SnesMouse",
|
||||
"SuperScope",
|
||||
"Multitap"
|
||||
"Multitap",
|
||||
"SnesMouseButtonsOnly"
|
||||
};
|
||||
|
||||
const vector<string> RamStateNames = {
|
||||
|
|
|
@ -157,7 +157,8 @@ enum class ControllerType
|
|||
SnesController = 1,
|
||||
SnesMouse = 2,
|
||||
SuperScope = 3,
|
||||
Multitap = 4
|
||||
Multitap = 4,
|
||||
SnesMouseButtonsOnly = 5
|
||||
};
|
||||
|
||||
struct KeyMapping
|
||||
|
|
|
@ -132,7 +132,8 @@ namespace Mesen.GUI.Config
|
|||
SnesController = 1,
|
||||
SnesMouse = 2,
|
||||
SuperScope = 3,
|
||||
Multitap = 4
|
||||
Multitap = 4,
|
||||
SnesMouseButtonsOnly = 5
|
||||
}
|
||||
|
||||
public enum InputDisplayPosition
|
||||
|
|
|
@ -862,6 +862,7 @@
|
|||
<Value ID="SnesMouse">SNES Mouse</Value>
|
||||
<Value ID="SuperScope">Super Scope</Value>
|
||||
<Value ID="Multitap">Super Multitap</Value>
|
||||
<Value ID="SnesMouseButtonsOnly">SNES Mouse (buttons only)</Value>
|
||||
</Enum>
|
||||
<Enum ID="VideoAspectRatio">
|
||||
<Value ID="NoStretching">Default (No Stretching)</Value>
|
||||
|
|
|
@ -165,6 +165,7 @@ namespace Mesen.GUI.Emulation
|
|||
switch(ConfigApi.GetControllerType(i)) {
|
||||
case ControllerType.SnesMouse:
|
||||
return true;
|
||||
// Do not allow mouse capture on SnesMouseButtonsOnly because that's the whole point of that input method
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
|
Loading…
Add table
Reference in a new issue