Add minimal dashboard support for pitting to simuv2.1.

git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@6319 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 44b3eee065f29aa7acd6f32013885da02071f6b5
Former-commit-id: 25a0371a336c667e8a77e2473ba6514229caa40b
This commit is contained in:
kakukri 2015-12-29 01:00:14 +00:00
parent 2ddc6d96c0
commit e7672d7b66
2 changed files with 47 additions and 0 deletions

View file

@ -137,6 +137,44 @@ SimCarConfig(tCar *car)
car->corner[REAR_LFT].pos.x = (tdble) (- car->dimension.x * .5 - car->statGC.x);
car->corner[REAR_LFT].pos.y = (tdble) (overallwidth * .5 - car->statGC.y);
car->corner[REAR_LFT].pos.z = 0;
/* minimal dashboard initialization */
tPrivCar *priv = &(car->carElt->priv);
tCarSetup *setup = &(car->carElt->setup);
priv->dashboardInstantNb = 0;
setup->fuel.min = 0.0;
setup->fuel.max = car->tank;
setup->fuel.value = car->fuel;
setup->fuel.desired_value = car->fuel;
setup->fuel.stepsize = 1.0;
setup->fuel.changed = FALSE;
setup->reqRepair.min = setup->reqRepair.value = setup->reqRepair.max = 0.0;
setup->reqRepair.desired_value = 0.0;
setup->reqRepair.stepsize = 500;
setup->reqRepair.changed = FALSE;
setup->reqPenalty.min = 0.0;
setup->reqPenalty.max = 1.0;
setup->reqPenalty.value = 0.0;
setup->reqPenalty.desired_value = 0.0; //0.0 means refuel/repair next, 1.0 means serve penalty next
setup->reqPenalty.stepsize = 1.0;
setup->reqPenalty.changed = FALSE;
priv->dashboardRequest[0].type = DI_FUEL;
priv->dashboardRequest[0].setup = &(setup->fuel);
priv->dashboardRequest[1].type = DI_REPAIR;
priv->dashboardRequest[1].setup = &(setup->reqRepair);
priv->dashboardRequest[2].type = DI_PENALTY;
priv->dashboardRequest[2].setup = &(setup->reqPenalty);
priv->dashboardRequestNb = 3;
priv->dashboardActiveItem = 0;
for (i = 3; i < NR_DI_REQUEST; i++) {
priv->dashboardRequest[i].type = DI_NONE;
priv->dashboardRequest[i].setup = NULL;
}
}
@ -434,6 +472,14 @@ SimCarUpdate(tCar *car, tSituation * /* s */)
CHECK(car);
SimCarCollideXYScene(car);
CHECK(car);
/* update car->carElt->setup.reqRepair with damage */
tCarSetupItem *repair = &(car->carElt->setup.reqRepair);
if ((repair->desired_value > 0.0) && (repair->max == repair->desired_value)) {
repair->max = repair->desired_value = car->dammage;
} else {
repair->max = car->dammage;
}
}
void

View file

@ -156,6 +156,7 @@ SimReConfig(tCarElt *carElt)
car->dammage -= carElt->pitcmd.repair;
if (car->dammage < 0) car->dammage = 0;
}
carElt->setup.reqRepair.desired_value = 0.0;
}