diff --git a/src/monocoque/devices/sounddevice.c b/src/monocoque/devices/sounddevice.c index 04e5dea..3b8bfb7 100644 --- a/src/monocoque/devices/sounddevice.c +++ b/src/monocoque/devices/sounddevice.c @@ -80,32 +80,45 @@ int sounddev_tyrelock_update(SimDevice* this, SimData* simdata) { if (this->tyre == FRONTLEFT || this->tyre == FRONTS || this->tyre == ALLFOUR) { - play += simdata->wheelspeed[0]; + if(simdata->wheelspeed[0]) + { + play++; + } } if (this->tyre == FRONTRIGHT || this->tyre == FRONTS || this->tyre == ALLFOUR) { + if(simdata->wheelspeed[1]) + { + play++; + } play += simdata->wheelspeed[1]; } if (this->tyre == REARLEFT || this->tyre == REARS || this->tyre == ALLFOUR) { + if(simdata->wheelspeed[2]) + { + play++; + } play += simdata->wheelspeed[2]; } if (this->tyre == REARRIGHT || this->tyre == REARS || this->tyre == ALLFOUR) { - play += simdata->wheelspeed[3]; + if(simdata->wheelspeed[3]) + { + play++; + } } } if (play > 0) { - sounddevice->sounddata.curr_frequency = 0; - sounddevice->sounddata.curr_duration = 0; - + sounddevice->sounddata.curr_frequency = sounddevice->sounddata.frequency * play; + sounddevice->sounddata.curr_duration = sounddevice->sounddata.duration; } else { - sounddevice->sounddata.curr_frequency = sounddevice->sounddata.frequency * play; - sounddevice->sounddata.curr_duration = sounddevice->sounddata.duration; + sounddevice->sounddata.curr_frequency = 0; + sounddevice->sounddata.curr_duration = 0; } } diff --git a/src/monocoque/devices/usbhapticdevice.c b/src/monocoque/devices/usbhapticdevice.c index 62845dd..04dcb26 100644 --- a/src/monocoque/devices/usbhapticdevice.c +++ b/src/monocoque/devices/usbhapticdevice.c @@ -16,24 +16,21 @@ int usbhapticdev_update(USBGenericHapticDevice* usbhapticdevice, SimData* simdat { case (EFFECT_TYRESLIP): playthreshhold = .4; - if (usbhapticdevice->effecttype == EFFECT_TYRESLIP) + if (usbhapticdevice->tyre == FRONTLEFT || usbhapticdevice->tyre == FRONTS || usbhapticdevice->tyre == ALLFOUR) { - if (usbhapticdevice->tyre == FRONTLEFT || usbhapticdevice->tyre == FRONTS || usbhapticdevice->tyre == ALLFOUR) - { - play += (1.0 - simdata->wheelslip[0]); - } - if (usbhapticdevice->tyre == FRONTRIGHT || usbhapticdevice->tyre == FRONTS || usbhapticdevice->tyre == ALLFOUR) - { - play += (1.0 - simdata->wheelslip[1]); - } - if (usbhapticdevice->tyre == REARLEFT || usbhapticdevice->tyre == REARS || usbhapticdevice->tyre == ALLFOUR) - { - play += (1.0 - simdata->wheelslip[2]); - } - if (usbhapticdevice->tyre == REARRIGHT || usbhapticdevice->tyre == REARS || usbhapticdevice->tyre == ALLFOUR) - { - play += (1.0 - simdata->wheelslip[3]); - } + play += (1.0 - simdata->wheelslip[0]); + } + if (usbhapticdevice->tyre == FRONTRIGHT || usbhapticdevice->tyre == FRONTS || usbhapticdevice->tyre == ALLFOUR) + { + play += (1.0 - simdata->wheelslip[1]); + } + if (usbhapticdevice->tyre == REARLEFT || usbhapticdevice->tyre == REARS || usbhapticdevice->tyre == ALLFOUR) + { + play += (1.0 - simdata->wheelslip[2]); + } + if (usbhapticdevice->tyre == REARRIGHT || usbhapticdevice->tyre == REARS || usbhapticdevice->tyre == ALLFOUR) + { + play += (1.0 - simdata->wheelslip[3]); } break; case (EFFECT_TYRELOCK): @@ -42,38 +39,31 @@ int usbhapticdev_update(USBGenericHapticDevice* usbhapticdevice, SimData* simdat { if (usbhapticdevice->tyre == FRONTLEFT || usbhapticdevice->tyre == FRONTS || usbhapticdevice->tyre == ALLFOUR) { - play += simdata->wheelspeed[0]; + if(simdata->wheelspeed[0]) + { + play++; + } } if (usbhapticdevice->tyre == FRONTRIGHT || usbhapticdevice->tyre == FRONTS || usbhapticdevice->tyre == ALLFOUR) { - play += simdata->wheelspeed[1]; + if(simdata->wheelspeed[1]) + { + play++; + } } if (usbhapticdevice->tyre == REARLEFT || usbhapticdevice->tyre == REARS || usbhapticdevice->tyre == ALLFOUR) { - play += simdata->wheelspeed[2]; + if(simdata->wheelspeed[2]) + { + play++; + } } if (usbhapticdevice->tyre == REARRIGHT || usbhapticdevice->tyre == REARS || usbhapticdevice->tyre == ALLFOUR) { - play += simdata->wheelspeed[3]; - } - } - if (usbhapticdevice->effecttype == EFFECT_TYRELOCK) - { - if (usbhapticdevice->tyre == FRONTLEFT || usbhapticdevice->tyre == FRONTS || usbhapticdevice->tyre == ALLFOUR) - { - play += (1.0 - simdata->wheelslip[0]); - } - if (usbhapticdevice->tyre == FRONTRIGHT || usbhapticdevice->tyre == FRONTS || usbhapticdevice->tyre == ALLFOUR) - { - play += (1.0 - simdata->wheelslip[1]); - } - if (usbhapticdevice->tyre == REARLEFT || usbhapticdevice->tyre == REARS || usbhapticdevice->tyre == ALLFOUR) - { - play += (1.0 - simdata->wheelslip[2]); - } - if (usbhapticdevice->tyre == REARRIGHT || usbhapticdevice->tyre == REARS || usbhapticdevice->tyre == ALLFOUR) - { - play += (1.0 - simdata->wheelslip[3]); + if(simdata->wheelspeed[3]) + { + play++; + } } } break; diff --git a/src/monocoque/helper/confighelper.c b/src/monocoque/helper/confighelper.c index 1235302..3634468 100644 --- a/src/monocoque/helper/confighelper.c +++ b/src/monocoque/helper/confighelper.c @@ -72,6 +72,10 @@ int strtoeffecttype(const char* effect, DeviceSettings* ds) { ds->effect_type = EFFECT_TYRESLIP; } + if ((strcicmp(effect, "LOCK") == 0) || (strcicmp(effect, "TYRELOCK") == 0) || (strcicmp(effect, "TIRELOCK") == 0)) + { + ds->effect_type = EFFECT_TYRELOCK; + } ds->is_valid = true; return MONOCOQUE_ERROR_NONE;