Changeset - r8898:2a6a3b21c679
[Not reviewed]
master
0 1 0
rubidium - 16 years ago 2008-04-12 10:00:52
rubidium@openttd.org
(svn r12665) -Codechange: make the internal speed <-> display speed conversions available to a bigger part of the code.
1 file changed with 21 insertions and 1 deletions:
0 comments (0 inline, 0 general)
src/strings.cpp
Show inline comments
 
@@ -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)
 
{
 
	extern const char _openttd_revision[];
 
@@ -581,7 +601,7 @@ static char* FormatString(char* buff, co
 
			case SCC_VELOCITY: {// {VELOCITY}
 
				int64 args[1];
 
				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);
 
				modifier = 0;
 
				break;
0 comments (0 inline, 0 general)