diff --git a/src/monocoque/devices/hapticeffect.c b/src/monocoque/devices/hapticeffect.c index ace8dea..9f1ce13 100644 --- a/src/monocoque/devices/hapticeffect.c +++ b/src/monocoque/devices/hapticeffect.c @@ -295,9 +295,9 @@ void getTyreDiameter(SimData* simdata) { if(simdata->velocity > minvelocity && simdata->brake <= maxbrake && simdata->gas <= maxthrottle) { - if (simdata->velocityX/simdata->velocity < maxXvelocity) + double Speedms = kmhtoms * simdata->velocity; + if (simdata->Xvelocity/Speedms < maxXvelocity) { - double Speedms = kmhtoms * simdata->velocity; for(int i = 0; i < 4; i++) { simdata->tyrediameter[i] = Speedms / simdata->tyreRPS[i] * 2; @@ -387,6 +387,15 @@ double slipeffect(SimData* simdata, int effecttype, int tyre, double threshold, slogd("Unknown effect type"); } + if(simdata->Yvelocity <= 0) + { + return 0; + } + if(simdata->Zvelocity > 1 || simdata->Zvelocity < -1) + { + return 0; + } + switch (effecttype) { case (EFFECT_TYRESLIP): diff --git a/src/monocoque/gameloop/gameloop.c b/src/monocoque/gameloop/gameloop.c index ee21457..98a6bd6 100644 --- a/src/monocoque/gameloop/gameloop.c +++ b/src/monocoque/gameloop/gameloop.c @@ -252,7 +252,7 @@ void shmdatamapcallback(uv_timer_t* handle) //appstate = 2; if (appstate == 2) { - simdatamap(simdata, simmap, f->sim, false, NULL); + simdatamap(simdata, simmap, NULL, f->sim, false, NULL); looprun(ms, f, simdata); } @@ -328,7 +328,7 @@ static void on_udp_recv(uv_udp_t* handle, ssize_t nread, const uv_buf_t* rcvbuf, if (appstate == 2) { - simdatamap(simdata, simmap, f->sim, true, a); + simdatamap(simdata, simmap, NULL, f->sim, true, a); looprun(ms, f, simdata); } @@ -399,7 +399,7 @@ void udpstart(MonocoqueSettings* sms, loop_data* f, SimData* simdata, SimMap* si { if (appstate == 2) { - simdatamap(simdata, simmap, f->sim, true, NULL); + simdatamap(simdata, simmap, NULL, f->sim, true, NULL); if (doui == true) { looprun(sms, f, simdata); @@ -491,7 +491,7 @@ int monocoque_mainloop(MonocoqueSettings* ms) { SimData* simdata = malloc(sizeof(SimData)); - SimMap* simmap = malloc(sizeof(SimMap)); + SimMap* simmap = createSimMap(); struct termios newsettings, canonicalmode; tcgetattr(0, &canonicalmode); @@ -548,7 +548,7 @@ int monocoque_mainloop(MonocoqueSettings* ms) free(baton); free(simdata); - free(simmap); + freesimmap(simmap); return 0; } diff --git a/src/monocoque/simulatorapi/simapi b/src/monocoque/simulatorapi/simapi index a046905..9ba82cf 160000 --- a/src/monocoque/simulatorapi/simapi +++ b/src/monocoque/simulatorapi/simapi @@ -1 +1 @@ -Subproject commit a046905215feb9dd09b8c88c95d6ae6adb50ee35 +Subproject commit 9ba82cf3908c497e206149bbe6def2a1760895cd