diff options
author | Fabio Battaglia | 2010-01-20 18:51:22 +0000 |
---|---|---|
committer | Fabio Battaglia | 2010-01-20 18:51:22 +0000 |
commit | bbc2ec095802421f221046a3882792da52037eab (patch) | |
tree | cb2c6c50f076371444df7966cdcbba4eca80f777 /backends/platform/n64/osys_n64_base.cpp | |
parent | 0b2453aed8f49840ed275ebb5e13f9215a4c19ff (diff) | |
download | scummvm-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.cpp | 16 |
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; } } |