mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r12665) -Codechange: make the internal speed <-> display speed conversions available to a bigger part of the code.
This commit is contained in:
parent
8226c92c8a
commit
e9014c99b3
|
@ -536,6 +536,26 @@ static const Units units[] = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert the given (internal) speed to the display speed.
|
||||||
|
* @param speed the speed to convert
|
||||||
|
* @return the converted speed.
|
||||||
|
*/
|
||||||
|
uint ConvertSpeedToDisplaySpeed(uint speed)
|
||||||
|
{
|
||||||
|
return (speed * units[_opt_ptr->units].s_m) >> units[_opt_ptr->units].s_s;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert the given display speed to the (internal) speed.
|
||||||
|
* @param speed the speed to convert
|
||||||
|
* @return the converted speed.
|
||||||
|
*/
|
||||||
|
uint ConvertDisplaySpeedToSpeed(uint speed)
|
||||||
|
{
|
||||||
|
return ((speed << units[_opt_ptr->units].s_s) + units[_opt_ptr->units].s_m / 2) / units[_opt_ptr->units].s_m;
|
||||||
|
}
|
||||||
|
|
||||||
static char* FormatString(char* buff, const char* str, const int64* argv, uint casei, const char* last)
|
static char* FormatString(char* buff, const char* str, const int64* argv, uint casei, const char* last)
|
||||||
{
|
{
|
||||||
extern const char _openttd_revision[];
|
extern const char _openttd_revision[];
|
||||||
|
@ -581,7 +601,7 @@ static char* FormatString(char* buff, const char* str, const int64* argv, uint c
|
||||||
case SCC_VELOCITY: {// {VELOCITY}
|
case SCC_VELOCITY: {// {VELOCITY}
|
||||||
int64 args[1];
|
int64 args[1];
|
||||||
assert(_opt_ptr->units < lengthof(units));
|
assert(_opt_ptr->units < lengthof(units));
|
||||||
args[0] = GetInt32(&argv) * units[_opt_ptr->units].s_m >> units[_opt_ptr->units].s_s;
|
args[0] = ConvertSpeedToDisplaySpeed(GetInt32(&argv));
|
||||||
buff = FormatString(buff, GetStringPtr(units[_opt_ptr->units].velocity), args, modifier >> 24, last);
|
buff = FormatString(buff, GetStringPtr(units[_opt_ptr->units].velocity), args, modifier >> 24, last);
|
||||||
modifier = 0;
|
modifier = 0;
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue