Add minimal dashboard support for pitting to simuv3, part 2.

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

Former-commit-id: 172855ddb7102ee1e6278575616610f5c88a5346
Former-commit-id: 1f0498fcefa05dd6858c468dc8c51ced94c88a4e
This commit is contained in:
kakukri 2015-12-29 00:53:22 +00:00
parent e1510d8240
commit 2ddc6d96c0

View file

@ -160,6 +160,44 @@ SimCarConfig(tCar *car)
car->corner[REAR_LFT].pos.y = (tdble)(overallwidth * .5 - car->statGC.y); car->corner[REAR_LFT].pos.y = (tdble)(overallwidth * .5 - car->statGC.y);
car->corner[REAR_LFT].pos.z = 0; car->corner[REAR_LFT].pos.z = 0;
car->upside_down_timer = 0.0f; car->upside_down_timer = 0.0f;
/* 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;
}
} }
@ -642,6 +680,14 @@ SimCarUpdate(tCar *car, tSituation * /* s */)
CHECK(car); CHECK(car);
SimCarCollideXYScene(car); SimCarCollideXYScene(car);
CHECK(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 void