Fix issue with tyre effects on sound devices

This commit is contained in:
Paul Dino Jones 2024-07-27 20:09:24 -04:00
parent 73d739fb20
commit bc6b4825e9
2 changed files with 13 additions and 6 deletions

View File

@ -340,6 +340,7 @@ double slipeffect(SimData* simdata, int effecttype, int tyre, double threshold,
wheelslip[i] = 0; wheelslip[i] = 0;
} }
} }
slogt("wheelslip values are %f %f %f %f", simdata->tyrediameter[0], simdata->tyrediameter[1], simdata->tyrediameter[2], simdata->tyrediameter[3]);
} }
break; break;
@ -357,6 +358,7 @@ double slipeffect(SimData* simdata, int effecttype, int tyre, double threshold,
if(wheelslip[0] < -threshold) if(wheelslip[0] < -threshold)
{ {
play += fabs(wheelslip[0]) - fabs(threshold); play += fabs(wheelslip[0]) - fabs(threshold);
slogt("slip is %f", play);
} }
} }
if (tyre == FRONTRIGHT || tyre == FRONTS || tyre == ALLFOUR) if (tyre == FRONTRIGHT || tyre == FRONTS || tyre == ALLFOUR)
@ -364,6 +366,7 @@ double slipeffect(SimData* simdata, int effecttype, int tyre, double threshold,
if(wheelslip[1] < -threshold) if(wheelslip[1] < -threshold)
{ {
play += fabs(wheelslip[1]) - fabs(threshold); play += fabs(wheelslip[1]) - fabs(threshold);
slogt("slip is %f", play);
} }
} }
if (tyre == REARLEFT || tyre == REARS || tyre == ALLFOUR) if (tyre == REARLEFT || tyre == REARS || tyre == ALLFOUR)
@ -371,6 +374,7 @@ double slipeffect(SimData* simdata, int effecttype, int tyre, double threshold,
if(wheelslip[2] < -threshold) if(wheelslip[2] < -threshold)
{ {
play += fabs(wheelslip[2]) - fabs(threshold); play += fabs(wheelslip[2]) - fabs(threshold);
slogt("slip is %f", play);
} }
} }
if (tyre == REARRIGHT || tyre == REARS || tyre == ALLFOUR) if (tyre == REARRIGHT || tyre == REARS || tyre == ALLFOUR)
@ -378,11 +382,11 @@ double slipeffect(SimData* simdata, int effecttype, int tyre, double threshold,
if(wheelslip[3] < -threshold) if(wheelslip[3] < -threshold)
{ {
play += fabs(wheelslip[3]) - fabs(threshold); play += fabs(wheelslip[3]) - fabs(threshold);
slogt("slip is %f", play);
} }
} }
break; break;
case (EFFECT_TYRELOCK): case (EFFECT_TYRELOCK):
if (tyre == FRONTLEFT || tyre == FRONTS || tyre == ALLFOUR) if (tyre == FRONTLEFT || tyre == FRONTS || tyre == ALLFOUR)
{ {

View File

@ -42,7 +42,8 @@ int sounddev_tyreslip_update(SimDevice* this, SimData* simdata)
{ {
SoundDevice* sounddevice = (void *) this->derived; SoundDevice* sounddevice = (void *) this->derived;
int play = slipeffect(simdata, this->hapticeffect.effecttype, this->hapticeffect.tyre, this->hapticeffect.threshold, this->hapticeffect.useconfig, this->hapticeffect.configcheck, this->hapticeffect.tyrediameterconfig); double play = slipeffect(simdata, this->hapticeffect.effecttype, this->hapticeffect.tyre, this->hapticeffect.threshold, this->hapticeffect.useconfig, this->hapticeffect.configcheck, this->hapticeffect.tyrediameterconfig);
slogt("Updating sound device frequency from original effect %f", play);
if (play > 0) if (play > 0)
{ {
@ -54,13 +55,14 @@ int sounddev_tyreslip_update(SimDevice* this, SimData* simdata)
sounddevice->sounddata.curr_frequency = 0; sounddevice->sounddata.curr_frequency = 0;
sounddevice->sounddata.curr_duration = 0; sounddevice->sounddata.curr_duration = 0;
} }
} }
int sounddev_tyrelock_update(SimDevice* this, SimData* simdata) int sounddev_tyrelock_update(SimDevice* this, SimData* simdata)
{ {
SoundDevice* sounddevice = (void *) this->derived; SoundDevice* sounddevice = (void *) this->derived;
int play = slipeffect(simdata, this->hapticeffect.effecttype, this->hapticeffect.tyre, this->hapticeffect.threshold, this->hapticeffect.useconfig, this->hapticeffect.configcheck, this->hapticeffect.tyrediameterconfig); double play = slipeffect(simdata, this->hapticeffect.effecttype, this->hapticeffect.tyre, this->hapticeffect.threshold, this->hapticeffect.useconfig, this->hapticeffect.configcheck, this->hapticeffect.tyrediameterconfig);
if (play > 0) if (play > 0)
{ {
@ -77,10 +79,11 @@ int sounddev_tyrelock_update(SimDevice* this, SimData* simdata)
int sounddev_absbrakes_update(SimDevice* this, SimData* simdata) int sounddev_absbrakes_update(SimDevice* this, SimData* simdata)
{ {
SoundDevice* sounddevice = (void *) this->derived; SoundDevice* sounddevice = (void *) this->derived;
double play = slipeffect(simdata, this->hapticeffect.effecttype, this->hapticeffect.tyre, this->hapticeffect.threshold, this->hapticeffect.useconfig, this->hapticeffect.configcheck, this->hapticeffect.tyrediameterconfig);
if (simdata->abs > 0) if (play > 0)
{ {
sounddevice->sounddata.curr_frequency = sounddevice->sounddata.frequency; sounddevice->sounddata.curr_frequency = sounddevice->sounddata.frequency * play;
sounddevice->sounddata.curr_duration = sounddevice->sounddata.duration; sounddevice->sounddata.curr_duration = sounddevice->sounddata.duration;
} }
else else