N64: if user has inserted a rumble-pak, rumble with shaking screen

svn-id: r47289
This commit is contained in:
Fabio Battaglia 2010-01-13 13:53:31 +00:00
parent 7db58ae29e
commit 6c6604d589
3 changed files with 13 additions and 6 deletions

View file

@ -53,12 +53,12 @@ USE_RGB_COLOR=0
ENABLED=STATIC_PLUGIN
ENABLE_SCUMM=$(ENABLED)
#ENABLE_SKY=$(ENABLED)
#ENABLE_SCI=$(ENABLED)
#ENABLE_GOB=$(ENABLED)
#ENABLE_PARALLACTION=$(ENABLED)
#ENABLE_KYRA=$(ENABLED)
ENABLE_SCUMM = $(ENABLED)
#ENABLE_SKY = $(ENABLED)
#ENABLE_SCI = $(ENABLED)
#ENABLE_GOB = $(ENABLED)
#ENABLE_PARALLACTION = $(ENABLED)
#ENABLE_KYRA = $(ENABLED)
#ENABLE_AGOS = $(ENABLED)
#ENABLE_AGI = $(ENABLED)
#ENABLE_QUEEN = $(ENABLED)

View file

@ -117,6 +117,7 @@ protected:
int _mouseHotspotX, _mouseHotspotY;
controller_data_buttons *_ctrlData; // Controller data read from the N64 serial interface
bool _controllerHasRumble;
bool _dirtyOffscreen;

View file

@ -135,6 +135,7 @@ OSystem_N64::OSystem_N64() {
_dirtyOffscreen = false;
_ctrlData = (controller_data_buttons*)memalign(8, sizeof(controller_data_buttons));
_controllerHasRumble = (identifyPak(0) == 2);
_fsFactory = new N64FilesystemFactory();
@ -602,6 +603,11 @@ 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, 0);
else if(!shakeOffset && _controllerHasRumble) rumblePakEnable(0, 0);
_shakeOffset = shakeOffset;
_dirtyOffscreen = true;