aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/n64/osys_n64_base.cpp
diff options
context:
space:
mode:
authorFabio Battaglia2010-01-20 18:51:22 +0000
committerFabio Battaglia2010-01-20 18:51:22 +0000
commitbbc2ec095802421f221046a3882792da52037eab (patch)
treecb2c6c50f076371444df7966cdcbba4eca80f777 /backends/platform/n64/osys_n64_base.cpp
parent0b2453aed8f49840ed275ebb5e13f9215a4c19ff (diff)
downloadscummvm-rg350-bbc2ec095802421f221046a3882792da52037eab.tar.gz
scummvm-rg350-bbc2ec095802421f221046a3882792da52037eab.tar.bz2
scummvm-rg350-bbc2ec095802421f221046a3882792da52037eab.zip
N64: Initial support for n64 mouse, tweaking needed
svn-id: r47408
Diffstat (limited to 'backends/platform/n64/osys_n64_base.cpp')
-rw-r--r--backends/platform/n64/osys_n64_base.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/backends/platform/n64/osys_n64_base.cpp b/backends/platform/n64/osys_n64_base.cpp
index 59733107a3..2784bfc235 100644
--- a/backends/platform/n64/osys_n64_base.cpp
+++ b/backends/platform/n64/osys_n64_base.cpp
@@ -137,7 +137,7 @@ OSystem_N64::OSystem_N64() {
detectControllers();
_ctrlData = (controller_data_buttons*)memalign(8, sizeof(controller_data_buttons));
- _controllerHasRumble = (identifyPak(_controllerNumber) == 2);
+ _controllerHasRumble = (identifyPak(_controllerPort) == 2);
_fsFactory = new N64FilesystemFactory();
@@ -607,8 +607,8 @@ void OSystem_N64::unlockScreen() {
void OSystem_N64::setShakePos(int shakeOffset) {
// If a rumble pak is plugged in and screen shakes, rumble!
- if (shakeOffset && _controllerHasRumble) rumblePakEnable(1, _controllerNumber);
- else if (!shakeOffset && _controllerHasRumble) rumblePakEnable(0, _controllerNumber);
+ if (shakeOffset && _controllerHasRumble) rumblePakEnable(1, _controllerPort);
+ else if (!shakeOffset && _controllerHasRumble) rumblePakEnable(0, _controllerPort);
_shakeOffset = shakeOffset;
_dirtyOffscreen = true;
@@ -880,12 +880,14 @@ void OSystem_N64::detectControllers(void) {
controller_data_status *ctrl_status = (controller_data_status*)memalign(8, sizeof(controller_data_status));
controller_Read_Status(ctrl_status);
- _controllerNumber = 0; // Use first controller as default
- for (uint8 ctrl_port = 0; ctrl_port < 4; ctrl_port++) {
+ _controllerPort = 0; // Use first controller as default
+ _mousePort = -1; // Default no mouse
+ for (int8 ctrl_port = 3; ctrl_port >= 0; ctrl_port--) {
// Found a standard pad, use this by default.
if (ctrl_status->c[ctrl_port].type == CTRL_PAD_STANDARD) {
- _controllerNumber = ctrl_port;
- break;
+ _controllerPort = ctrl_port;
+ } else if (ctrl_status->c[ctrl_port].type == CTRL_N64_MOUSE) {
+ _mousePort = ctrl_port;
}
}