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::SnesMouse: device.reset(new SnesMouse(console, port)); break;
|
||||||
case ControllerType::SuperScope: device.reset(new SuperScope(console, port, cfg.Controllers[port].Keys)); 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::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;
|
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, 0x00111111, true, 1, frameNumber);
|
||||||
hud->DrawRectangle(pos.X - 1, pos.Y - 1, 3, 3, 0x80CCCCCC, false, 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]) {
|
if(cfg.DisplayInputPort[i]) {
|
||||||
SnesMouse mouse(_console, 0);
|
SnesMouse mouse(_console, 0);
|
||||||
mouse.SetRawState(controllerData[i].State);
|
mouse.SetRawState(controllerData[i].State);
|
||||||
|
|
|
@ -28,7 +28,8 @@ const vector<string> ControllerTypeNames = {
|
||||||
"SnesController",
|
"SnesController",
|
||||||
"SnesMouse",
|
"SnesMouse",
|
||||||
"SuperScope",
|
"SuperScope",
|
||||||
"Multitap"
|
"Multitap",
|
||||||
|
"SnesMouseButtonsOnly"
|
||||||
};
|
};
|
||||||
|
|
||||||
const vector<string> RamStateNames = {
|
const vector<string> RamStateNames = {
|
||||||
|
|
|
@ -157,7 +157,8 @@ enum class ControllerType
|
||||||
SnesController = 1,
|
SnesController = 1,
|
||||||
SnesMouse = 2,
|
SnesMouse = 2,
|
||||||
SuperScope = 3,
|
SuperScope = 3,
|
||||||
Multitap = 4
|
Multitap = 4,
|
||||||
|
SnesMouseButtonsOnly = 5
|
||||||
};
|
};
|
||||||
|
|
||||||
struct KeyMapping
|
struct KeyMapping
|
||||||
|
|
|
@ -132,7 +132,8 @@ namespace Mesen.GUI.Config
|
||||||
SnesController = 1,
|
SnesController = 1,
|
||||||
SnesMouse = 2,
|
SnesMouse = 2,
|
||||||
SuperScope = 3,
|
SuperScope = 3,
|
||||||
Multitap = 4
|
Multitap = 4,
|
||||||
|
SnesMouseButtonsOnly = 5
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum InputDisplayPosition
|
public enum InputDisplayPosition
|
||||||
|
|
|
@ -862,6 +862,7 @@
|
||||||
<Value ID="SnesMouse">SNES Mouse</Value>
|
<Value ID="SnesMouse">SNES Mouse</Value>
|
||||||
<Value ID="SuperScope">Super Scope</Value>
|
<Value ID="SuperScope">Super Scope</Value>
|
||||||
<Value ID="Multitap">Super Multitap</Value>
|
<Value ID="Multitap">Super Multitap</Value>
|
||||||
|
<Value ID="SnesMouseButtonsOnly">SNES Mouse (buttons only)</Value>
|
||||||
</Enum>
|
</Enum>
|
||||||
<Enum ID="VideoAspectRatio">
|
<Enum ID="VideoAspectRatio">
|
||||||
<Value ID="NoStretching">Default (No Stretching)</Value>
|
<Value ID="NoStretching">Default (No Stretching)</Value>
|
||||||
|
|
|
@ -165,6 +165,7 @@ namespace Mesen.GUI.Emulation
|
||||||
switch(ConfigApi.GetControllerType(i)) {
|
switch(ConfigApi.GetControllerType(i)) {
|
||||||
case ControllerType.SnesMouse:
|
case ControllerType.SnesMouse:
|
||||||
return true;
|
return true;
|
||||||
|
// Do not allow mouse capture on SnesMouseButtonsOnly because that's the whole point of that input method
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Add table
Reference in a new issue