Refactored wheel diameters config logic
This commit is contained in:
parent
6c66c8880e
commit
2e538b0855
|
|
@ -43,14 +43,15 @@ int loadtyreconfig(SimData* simdata, char* configfile)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
config_cars = config_lookup(&cfg, "cars");
|
config_cars = config_lookup(&cfg, "cars");
|
||||||
|
|
||||||
if(config_cars == NULL)
|
if(config_cars == NULL)
|
||||||
{
|
{
|
||||||
|
slogd("diameters config file corrupted");
|
||||||
config_destroy(&cfg);
|
config_destroy(&cfg);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
slogt("parsing diameters config file");
|
||||||
|
|
||||||
int cars = config_setting_length(config_cars);
|
int cars = config_setting_length(config_cars);
|
||||||
|
|
||||||
|
|
@ -183,7 +184,7 @@ int loadtyreconfig(SimData* simdata, char* configfile)
|
||||||
// json_decref(cararray);
|
// json_decref(cararray);
|
||||||
//}
|
//}
|
||||||
|
|
||||||
void savetyreconfig(SimData* simdata, char* configfile)
|
int savetyreconfig(SimData* simdata, char* configfile)
|
||||||
{
|
{
|
||||||
config_t cfg;
|
config_t cfg;
|
||||||
config_setting_t* root;
|
config_setting_t* root;
|
||||||
|
|
@ -204,6 +205,7 @@ void savetyreconfig(SimData* simdata, char* configfile)
|
||||||
array = config_lookup(&cfg, "cars");
|
array = config_lookup(&cfg, "cars");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO add check to not add same car-sim combination twice
|
||||||
carobject = config_setting_add(array, "cars", CONFIG_TYPE_GROUP);
|
carobject = config_setting_add(array, "cars", CONFIG_TYPE_GROUP);
|
||||||
|
|
||||||
setting = config_setting_add(carobject, "car", CONFIG_TYPE_STRING);
|
setting = config_setting_add(carobject, "car", CONFIG_TYPE_STRING);
|
||||||
|
|
@ -227,6 +229,8 @@ void savetyreconfig(SimData* simdata, char* configfile)
|
||||||
slogi("New configuration successfully written to: %s\n", configfile);
|
slogi("New configuration successfully written to: %s\n", configfile);
|
||||||
|
|
||||||
config_destroy(&cfg);
|
config_destroy(&cfg);
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//void savetyreconfig(SimData* simdata, char* configfile)
|
//void savetyreconfig(SimData* simdata, char* configfile)
|
||||||
|
|
@ -310,34 +314,29 @@ double slipeffect(SimData* simdata, int effecttype, int tyre, double threshold,
|
||||||
case (EFFECT_TYRESLIP):
|
case (EFFECT_TYRESLIP):
|
||||||
case (EFFECT_TYRELOCK):
|
case (EFFECT_TYRELOCK):
|
||||||
case (EFFECT_ABSBRAKES):
|
case (EFFECT_ABSBRAKES):
|
||||||
if(hasTyreDiameter(simdata)==false)
|
|
||||||
|
if(useconfig == 1 && configfile != NULL)
|
||||||
{
|
{
|
||||||
// check for saved tyre diameter in config file
|
// check for saved tyre diameter in config file
|
||||||
// if not saved version exists get tyre diameter and save it
|
// if not saved version exists get tyre diameter and save it
|
||||||
// use config check variable to track if the config check has been performed
|
// use config check variable to track if the config check has been performed
|
||||||
// avoid many opens of the same file
|
// avoid many opens of the same file
|
||||||
if(useconfig == 1 && configfile != NULL && *configcheck == 0)
|
int error = 0;
|
||||||
|
if(hasTyreDiameter(simdata)==false && *configcheck == 0)
|
||||||
{
|
{
|
||||||
slogt("loading tyre config");
|
slogi("attempting load of tyre diameter config");
|
||||||
int error = loadtyreconfig(simdata, configfile);
|
error = loadtyreconfig(simdata, configfile);
|
||||||
*configcheck = 1;
|
*configcheck = 1;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
slogd("Skipping config check");
|
|
||||||
}
|
|
||||||
|
|
||||||
if(hasTyreDiameter(simdata)==false)
|
if(hasTyreDiameter(simdata)==false)
|
||||||
{
|
{
|
||||||
|
slogt("could not find tyre diameter in config file, attempting to calculate new");
|
||||||
getTyreDiameter(simdata);
|
getTyreDiameter(simdata);
|
||||||
if(useconfig == 1 && hasTyreDiameter(simdata)==true)
|
if(hasTyreDiameter(simdata)==true)
|
||||||
{
|
{
|
||||||
slogt("saving tyre config");
|
slogi("saving tyre config");
|
||||||
savetyreconfig(simdata, configfile);
|
error = savetyreconfig(simdata, configfile);
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
slogd("Skipping tyre diameter save");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -364,7 +363,7 @@ double slipeffect(SimData* simdata, int effecttype, int tyre, double threshold,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
slogt("Unknown effect type");
|
slogd("Unknown effect type");
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (effecttype)
|
switch (effecttype)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue