Use latest simapi to improve tyre slip effects

This commit is contained in:
Paul Dino Jones 2024-11-19 11:55:55 -05:00
parent ecf3a59d6b
commit 2b6812b3a9
3 changed files with 17 additions and 8 deletions

View File

@ -295,9 +295,9 @@ void getTyreDiameter(SimData* simdata)
{ {
if(simdata->velocity > minvelocity && simdata->brake <= maxbrake && simdata->gas <= maxthrottle) 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++) for(int i = 0; i < 4; i++)
{ {
simdata->tyrediameter[i] = Speedms / simdata->tyreRPS[i] * 2; 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"); slogd("Unknown effect type");
} }
if(simdata->Yvelocity <= 0)
{
return 0;
}
if(simdata->Zvelocity > 1 || simdata->Zvelocity < -1)
{
return 0;
}
switch (effecttype) switch (effecttype)
{ {
case (EFFECT_TYRESLIP): case (EFFECT_TYRESLIP):

View File

@ -252,7 +252,7 @@ void shmdatamapcallback(uv_timer_t* handle)
//appstate = 2; //appstate = 2;
if (appstate == 2) if (appstate == 2)
{ {
simdatamap(simdata, simmap, f->sim, false, NULL); simdatamap(simdata, simmap, NULL, f->sim, false, NULL);
looprun(ms, f, simdata); 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) if (appstate == 2)
{ {
simdatamap(simdata, simmap, f->sim, true, a); simdatamap(simdata, simmap, NULL, f->sim, true, a);
looprun(ms, f, simdata); looprun(ms, f, simdata);
} }
@ -399,7 +399,7 @@ void udpstart(MonocoqueSettings* sms, loop_data* f, SimData* simdata, SimMap* si
{ {
if (appstate == 2) if (appstate == 2)
{ {
simdatamap(simdata, simmap, f->sim, true, NULL); simdatamap(simdata, simmap, NULL, f->sim, true, NULL);
if (doui == true) if (doui == true)
{ {
looprun(sms, f, simdata); looprun(sms, f, simdata);
@ -491,7 +491,7 @@ int monocoque_mainloop(MonocoqueSettings* ms)
{ {
SimData* simdata = malloc(sizeof(SimData)); SimData* simdata = malloc(sizeof(SimData));
SimMap* simmap = malloc(sizeof(SimMap)); SimMap* simmap = createSimMap();
struct termios newsettings, canonicalmode; struct termios newsettings, canonicalmode;
tcgetattr(0, &canonicalmode); tcgetattr(0, &canonicalmode);
@ -548,7 +548,7 @@ int monocoque_mainloop(MonocoqueSettings* ms)
free(baton); free(baton);
free(simdata); free(simdata);
free(simmap); freesimmap(simmap);
return 0; return 0;
} }

@ -1 +1 @@
Subproject commit a046905215feb9dd09b8c88c95d6ae6adb50ee35 Subproject commit 9ba82cf3908c497e206149bbe6def2a1760895cd