forked from speed-dreams/speed-dreams-code
Re #924: final graphics for the dashboard
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@6238 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: e0b1a689f532a8a2240e9145aebc88a636bcd708 Former-commit-id: dd8382734b3baa0a1a29af66c0b18b8a7322ed46
This commit is contained in:
parent
7f3b37d0a0
commit
9a180c82c2
2 changed files with 98 additions and 25 deletions
|
@ -192,8 +192,7 @@ cGrBoard::selectBoard(int val)
|
|||
GfParmSetNum(grHandle, path, GR_ATT_ARCADE, (char*)NULL, (tdble)arcadeFlag);
|
||||
break;
|
||||
case 6:
|
||||
//dashboardFlag = 1 - dashboardFlag;
|
||||
dashboardFlag = (dashboardFlag + 1) % 5;
|
||||
dashboardFlag = (dashboardFlag + 1) % 3;
|
||||
GfParmSetNum(grHandle, path, GR_ATT_DASHBOARD, (char*)NULL, (tdble)dashboardFlag);
|
||||
break;
|
||||
}
|
||||
|
@ -1778,29 +1777,100 @@ void
|
|||
cGrBoard::grDispDashboard()
|
||||
{
|
||||
char buf1[17], buf2[9], buf3[9];
|
||||
|
||||
//TEST: for a quick test of the look, replace this later
|
||||
switch (dashboardFlag) {
|
||||
case 1:
|
||||
case 3:
|
||||
snprintf(buf1, sizeof(buf1), "%s", "F/R Brake Rep.");
|
||||
snprintf(buf2, sizeof(buf2), "%.1f%%", 53.02);
|
||||
break;
|
||||
case 2:
|
||||
case 4:
|
||||
snprintf(buf1, sizeof(buf1), "%s", "Fuel");
|
||||
snprintf(buf2, sizeof(buf2), "%.1fl", car_->_fuel);
|
||||
snprintf(buf3, sizeof(buf3), "%.1fl", car_->_tank);
|
||||
}
|
||||
//end of TEST
|
||||
|
||||
int dym = GfuiFontHeight(GFUI_FONT_MEDIUM_C);
|
||||
int y1;
|
||||
int dx = GfuiFontWidth(GFUI_FONT_LARGE_C, "0");
|
||||
int x1 = (leftAnchor + rightAnchor) / 2 - 16 * dx;
|
||||
int dy = GfuiFontHeight(GFUI_FONT_LARGE_C);
|
||||
const tDashboardItem *item;
|
||||
|
||||
if (dashboardFlag > 2) {
|
||||
// Setup information string
|
||||
if (car_->_dashboardActiveItem < car_->_dashboardInstantNb) {
|
||||
item = &(car_->_dashboardInstant[car_->_dashboardActiveItem]);
|
||||
switch (item->type) {
|
||||
case DI_BRAKE_REPARTITION:
|
||||
snprintf(buf1, sizeof(buf1), "%s", "F/R Brake Rep.");
|
||||
snprintf(buf2, sizeof(buf2), "%.1f %%", 100.0*item->setup->value);
|
||||
break;
|
||||
case DI_FRONT_ANTIROLLBAR:
|
||||
snprintf(buf1, sizeof(buf1), "%s", "Front ARB");
|
||||
snprintf(buf2, sizeof(buf2), "%.0f kN/m", item->setup->value/1000.0);
|
||||
break;
|
||||
case DI_REAR_ANTIROLLBAR:
|
||||
snprintf(buf1, sizeof(buf1), "%s", "Rear ARB");
|
||||
snprintf(buf2, sizeof(buf2), "%.0f kN/m", item->setup->value/1000.0);
|
||||
break;
|
||||
case DI_FRONT_DIFF_MAX_SLIP_BIAS:
|
||||
snprintf(buf1, sizeof(buf1), "%s", "F Pow Max Slip");
|
||||
snprintf(buf2, sizeof(buf2), "%.0f %%", 100.0*item->setup->value);
|
||||
break;
|
||||
case DI_FRONT_DIFF_COAST_MAX_SLIP_BIAS:
|
||||
snprintf(buf1, sizeof(buf1), "%s", "F Coa Max Slip");
|
||||
snprintf(buf2, sizeof(buf2), "%.0f %%", 100.0*item->setup->value);
|
||||
break;
|
||||
case DI_REAR_DIFF_MAX_SLIP_BIAS:
|
||||
snprintf(buf1, sizeof(buf1), "%s", "R Pow Max Slip");
|
||||
snprintf(buf2, sizeof(buf2), "%.0f %%", 100.0*item->setup->value);
|
||||
break;
|
||||
case DI_REAR_DIFF_COAST_MAX_SLIP_BIAS:
|
||||
snprintf(buf1, sizeof(buf1), "%s", "R Coa Max Slip");
|
||||
snprintf(buf2, sizeof(buf2), "%.0f %%", 100.0*item->setup->value);
|
||||
break;
|
||||
case DI_CENTRAL_DIFF_MAX_SLIP_BIAS:
|
||||
snprintf(buf1, sizeof(buf1), "%s", "C Pow Max Slip");
|
||||
snprintf(buf2, sizeof(buf2), "%.0f %%", 100.0*item->setup->value);
|
||||
break;
|
||||
case DI_CENTRAL_DIFF_COAST_MAX_SLIP_BIAS:
|
||||
snprintf(buf1, sizeof(buf1), "%s", "C Coa Max Slip");
|
||||
snprintf(buf2, sizeof(buf2), "%.0f %%", 100.0*item->setup->value);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
item = &(car_->_dashboardRequest[car_->_dashboardActiveItem - car_->_dashboardInstantNb]);
|
||||
switch (item->type) {
|
||||
case DI_FUEL:
|
||||
snprintf(buf1, sizeof(buf1), "%s", "Fuel");
|
||||
snprintf(buf2, sizeof(buf2), "%.1f l", item->setup->desired_value);
|
||||
snprintf(buf3, sizeof(buf3), "%.1f l", car_->_fuel);
|
||||
break;
|
||||
case DI_REPAIR:
|
||||
snprintf(buf1, sizeof(buf1), "%s", "Repair");
|
||||
snprintf(buf2, sizeof(buf2), "%.0f", item->setup->desired_value);
|
||||
snprintf(buf3, sizeof(buf3), "%d", car_->_dammage);
|
||||
break;
|
||||
case DI_TYRE_SET:
|
||||
snprintf(buf1, sizeof(buf1), "%s", "New tires");
|
||||
if (item->setup->desired_value > 0.9) {
|
||||
snprintf(buf2, sizeof(buf2), "%s", "YES");
|
||||
} else {
|
||||
snprintf(buf2, sizeof(buf2), "%s", "NO");
|
||||
}
|
||||
snprintf(buf3, sizeof(buf3), "%s", "");
|
||||
break;
|
||||
case DI_FRONT_WING_ANGLE:
|
||||
snprintf(buf1, sizeof(buf1), "%s", "Front wing");
|
||||
snprintf(buf2, sizeof(buf2), "%.1f", RAD2DEG(item->setup->desired_value));
|
||||
snprintf(buf3, sizeof(buf3), "%.1f", RAD2DEG(item->setup->value));
|
||||
break;
|
||||
case DI_REAR_WING_ANGLE:
|
||||
snprintf(buf1, sizeof(buf1), "%s", "Rear wing");
|
||||
snprintf(buf2, sizeof(buf2), "%.1f", RAD2DEG(item->setup->desired_value));
|
||||
snprintf(buf3, sizeof(buf3), "%.1f", RAD2DEG(item->setup->value));
|
||||
break;
|
||||
case DI_PENALTY:
|
||||
snprintf(buf1, sizeof(buf1), "%s", "Next pit type");
|
||||
if (item->setup->desired_value > 0.9) {
|
||||
snprintf(buf2, sizeof(buf2), "%s", "PENALTY");
|
||||
} else {
|
||||
snprintf(buf2, sizeof(buf2), "%s", "REPAIR");
|
||||
}
|
||||
snprintf(buf3, sizeof(buf3), "%s", "");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Background
|
||||
if (dashboardFlag == 2) {
|
||||
y1 = TOP_ANCHOR - dym; //bottom of scrolling line leaderboard
|
||||
} else {
|
||||
y1 = 128 + dy; //in top of speedo
|
||||
|
@ -1808,7 +1878,8 @@ cGrBoard::grDispDashboard()
|
|||
grSetupDrawingArea(x1, y1, x1 + 32 * dx, y1 - dy);
|
||||
|
||||
// Write information
|
||||
if (dashboardFlag % 2) {//TEST condition
|
||||
//if (dashboardFlag % 2) {//TEST condition
|
||||
if (car_->_dashboardActiveItem < car_->_dashboardInstantNb) {
|
||||
GfuiDrawString(buf1, normal_color_, GFUI_FONT_LARGE_C, x1, y1 - dy, 16 * dx, GFUI_ALIGN_HR);
|
||||
GfuiDrawString(buf2, danger_color_, GFUI_FONT_LARGE_C, x1 + 16 * dx, y1 - dy, 8 * dx, GFUI_ALIGN_HR);
|
||||
} else {
|
||||
|
|
|
@ -328,7 +328,7 @@ SimCarConfig(tCar *car)
|
|||
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 first, 1.0 means serve penalty first
|
||||
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;
|
||||
|
||||
|
@ -392,14 +392,16 @@ for(i=0; i<MAX_GEARS;i++){printf("%g ",car->transmission.overallRatio[i]);}
|
|||
printf("\n");
|
||||
printf("Dashboard Instant Nr = %d\n ",priv->dashboardInstantNb);
|
||||
for (i = 0; i < NR_DI_INSTANT; i++) {
|
||||
printf("%d ",priv->dashboardInstant[i].type);
|
||||
if (priv->dashboardInstant[i].type!=DI_NONE)
|
||||
printf(" %d %g\n",priv->dashboardInstant[i].type,priv->dashboardInstant[i].setup->value);
|
||||
else printf(" %d\n",priv->dashboardInstant[i].type);
|
||||
}
|
||||
printf("\n");
|
||||
printf("Dashboard Request Nr = %d\n ",priv->dashboardRequestNb);
|
||||
for (i = 0; i < NR_DI_REQUEST; i++) {
|
||||
printf("%d ",priv->dashboardRequest[i].type);
|
||||
if (priv->dashboardRequest[i].type!=DI_NONE)
|
||||
printf(" %d %g\n",priv->dashboardRequest[i].type,priv->dashboardRequest[i].setup->value);
|
||||
else printf(" %d\n",priv->dashboardRequest[i].type);
|
||||
}
|
||||
printf("\n");
|
||||
*/
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue