Cargo payment rate graph: Use minutes for x-axis if in minutes mode
See: #541
This commit is contained in:
@@ -1199,22 +1199,36 @@ struct PaymentRatesGraphWindow : BaseGraphWindow {
|
||||
this->x_values_increment = x_scale;
|
||||
}
|
||||
|
||||
uint GetXAxisDecimals() const
|
||||
{
|
||||
if (_cargo_payment_x_mode) return 0;
|
||||
if ((10 % _settings_game.economy.day_length_factor) == 0) return 0;
|
||||
if (_settings_game.economy.day_length_factor > 50) return 2;
|
||||
return 1;
|
||||
}
|
||||
|
||||
std::pair<uint, uint> ProcessXAxisValue(uint16 label) const
|
||||
{
|
||||
uint val = label;
|
||||
uint decimals = this->GetXAxisDecimals();
|
||||
for (uint i = 0; i < decimals; i++) {
|
||||
uint decimals;
|
||||
if (_cargo_payment_x_mode) {
|
||||
decimals = 0;
|
||||
} else if (_settings_time.time_in_minutes) {
|
||||
if (_settings_time.ticks_per_minute <= 350 || 740 % _settings_time.ticks_per_minute == 0) {
|
||||
decimals = 0;
|
||||
} else if (_settings_time.ticks_per_minute > 7400) {
|
||||
val *= 100;
|
||||
decimals = 2;
|
||||
} else {
|
||||
val *= 10;
|
||||
decimals = 1;
|
||||
}
|
||||
val *= 74;
|
||||
val /= _settings_time.ticks_per_minute;
|
||||
} else {
|
||||
if ((10 % _settings_game.economy.day_length_factor) == 0) {
|
||||
decimals = 0;
|
||||
} else if (_settings_game.economy.day_length_factor > 50) {
|
||||
decimals = 2;
|
||||
val *= 100;
|
||||
} else {
|
||||
decimals = 1;
|
||||
val *= 10;
|
||||
}
|
||||
val /= _settings_game.economy.day_length_factor;
|
||||
}
|
||||
return { val, decimals };
|
||||
}
|
||||
|
||||
@@ -1408,9 +1422,13 @@ struct PaymentRatesGraphWindow : BaseGraphWindow {
|
||||
if (_cargo_payment_x_mode) {
|
||||
SetDParam(0, STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL_SPEED);
|
||||
SetDParam(1, STR_UNIT_NAME_VELOCITY_IMPERIAL + _settings_game.locale.units_velocity);
|
||||
} else {
|
||||
if (_settings_time.time_in_minutes) {
|
||||
SetDParam(0, STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL_MINUTES);
|
||||
} else {
|
||||
SetDParam(0, STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case WID_CPR_HEADER:
|
||||
@@ -1420,6 +1438,14 @@ struct PaymentRatesGraphWindow : BaseGraphWindow {
|
||||
SetDParam(0, STR_GRAPH_CARGO_PAYMENT_RATES_TITLE);
|
||||
}
|
||||
break;
|
||||
|
||||
case WID_CPR_DAYS:
|
||||
if (_settings_time.time_in_minutes) {
|
||||
SetDParam(0, STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL_MINUTES);
|
||||
} else {
|
||||
SetDParam(0, STR_GRAPH_CARGO_DAYS_MODE);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -1440,7 +1466,7 @@ static const NWidgetPart _nested_cargo_payment_rates_widgets[] = {
|
||||
NWidget(WWT_EMPTY, COLOUR_BROWN, WID_CPR_GRAPH), SetMinimalSize(495, 0), SetFill(1, 1), SetResize(1, 1),
|
||||
NWidget(NWID_VERTICAL),
|
||||
NWidget(NWID_SPACER), SetMinimalSize(0, 4),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_BROWN, WID_CPR_DAYS), SetDataTip(STR_GRAPH_CARGO_DAYS_MODE, STR_GRAPH_CARGO_TOOLTIP_DAYS_MODE), SetFill(1, 0),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_BROWN, WID_CPR_DAYS), SetDataTip(STR_JUST_STRING, STR_GRAPH_CARGO_TOOLTIP_DAYS_MODE), SetFill(1, 0),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_BROWN, WID_CPR_SPEED), SetDataTip(STR_GRAPH_CARGO_SPEED_MODE, STR_GRAPH_CARGO_TOOLTIP_SPEED_MODE), SetFill(1, 0),
|
||||
NWidget(NWID_SPACER), SetMinimalSize(0, 16), SetFill(0, 1),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_CPR_ENABLE_CARGOES), SetDataTip(STR_GRAPH_CARGO_ENABLE_ALL, STR_GRAPH_CARGO_TOOLTIP_ENABLE_ALL), SetFill(1, 0),
|
||||
|
@@ -118,6 +118,7 @@ STR_VEHICLE_TYPE_AIRCRAFT :Aircraft
|
||||
|
||||
STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL_SPEED :{TINY_FONT}{BLACK}Average transit speed ({STRING})
|
||||
STR_GRAPH_CARGO_PAYMENT_RATES_TITLE_AVG_SPEED :{TINY_FONT}{BLACK}Payment for delivering 1 unit (or 1,000 litres) of cargo a distance of 200 squares
|
||||
STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL_MINUTES :{TINY_FONT}{BLACK}Minutes in transit
|
||||
STR_GRAPH_STATION_CARGO_CAPTION :{WHITE}{STATION} - Waiting Cargo History
|
||||
STR_GRAPH_STATION_CARGO_X_LABEL :{TINY_FONT}{BLACK}Development over the last {NUM} days
|
||||
STR_GRAPH_STATION_CARGO_TITLE :{TINY_FONT}{BLACK}Units of cargo waiting at the station
|
||||
|
@@ -1275,6 +1275,7 @@ static void UpdateTimeSettings(int32 new_value)
|
||||
InvalidateWindowData(WC_STATUS_BAR, 0, SBI_REINIT);
|
||||
InvalidateWindowClassesData(WC_GAME_OPTIONS);
|
||||
InvalidateWindowClassesData(WC_DEPARTURES_BOARD, 1);
|
||||
InvalidateWindowClassesData(WC_PAYMENT_RATES);
|
||||
MarkWholeScreenDirty();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user