Mercurial > hg > openttd
changeset 3489:a3cbd05a75da draft
(svn r4340) Add force {FORCE} to the units system. This is currently unused.
author | peter1138 <peter1138@openttd.org> |
---|---|
date | Sun, 09 Apr 2006 18:25:31 +0000 |
parents | 45c2f6ba0ba5 |
children | 1f9cfbde101b |
files | lang/english.txt strgen/strgen.c strings.c |
diffstat | 3 files changed, 24 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/lang/english.txt +++ b/lang/english.txt @@ -334,6 +334,10 @@ STR_UNITS_VOLUME_LONG_METRIC :{COMMA} litre{P "" s} STR_UNITS_VOLUME_LONG_SI :{COMMA} m³ +STR_UNITS_FORCE_IMPERIAL :{COMMA}x10^3 lbf +STR_UNITS_FORCE_METRIC :{COMMA} ton force +STR_UNITS_FORCE_SI :{COMMA} kN + ############ range for menu starts STR_0154_OPERATING_PROFIT_GRAPH :Operating profit graph STR_0155_INCOME_GRAPH :Income graph
--- a/strgen/strgen.c +++ b/strgen/strgen.c @@ -450,6 +450,7 @@ {"VOLUME_S", EmitEscapedByte, 17, 1, 0}, {"WEIGHT", EmitEscapedByte, 18, 1, 0}, {"WEIGHT_S", EmitEscapedByte, 19, 1, 0}, + {"FORCE", EmitEscapedByte, 20, 1, 0}, {"P", EmitPlural, 0, 0, C_DONTCOUNT}, // plural specifier {"G", EmitGender, 0, 0, C_DONTCOUNT}, // gender specifier
--- a/strings.c +++ b/strings.c @@ -495,26 +495,33 @@ int v_s; ///< Shift for volume StringID s_volume; ///< Short string for volume StringID l_volume; ///< Long string for volume + int f_m; ///< Multiplier for force + int f_s; ///< Shift for force + StringID force; ///< String for force } Units; +/* Unit conversions */ static const Units units[] = { - { // Imperial (Original) + { // Imperial (Original, mph, hp, metric ton, litre, metric ton force) 10, 4, STR_UNITS_VELOCITY_IMPERIAL, 1, 0, STR_UNITS_POWER_IMPERIAL, 1, 0, STR_UNITS_WEIGHT_SHORT_METRIC, STR_UNITS_WEIGHT_LONG_METRIC, 1000, 0, STR_UNITS_VOLUME_SHORT_METRIC, STR_UNITS_VOLUME_LONG_METRIC, + 835, 13, STR_UNITS_FORCE_METRIC, }, - { // Metric + { // Metric (km/h, hp, metric ton, litre, metric ton force) 1, 0, STR_UNITS_VELOCITY_METRIC, 1, 0, STR_UNITS_POWER_METRIC, 1, 0, STR_UNITS_WEIGHT_SHORT_METRIC, STR_UNITS_WEIGHT_LONG_METRIC, 1000, 0, STR_UNITS_VOLUME_SHORT_METRIC, STR_UNITS_VOLUME_LONG_METRIC, + 835, 13, STR_UNITS_FORCE_METRIC, }, - { // SI + { // SI (m/s, kilowatt, kilogram, cubic metres, kilonewton) 284, 10, STR_UNITS_VELOCITY_SI, 764, 10, STR_UNITS_POWER_SI, 1000, 0, STR_UNITS_WEIGHT_SHORT_SI, STR_UNITS_WEIGHT_LONG_SI, 1, 0, STR_UNITS_VOLUME_SHORT_SI, STR_UNITS_VOLUME_LONG_SI, + 1, 0, STR_UNITS_FORCE_SI, }, }; @@ -725,6 +732,15 @@ break; } + case 20: { // {FORCE} + int32 args[1]; + assert(_opt_ptr->units < lengthof(units)); + args[0] = GetInt32(&argv) * units[_opt_ptr->units].f_m >> units[_opt_ptr->units].f_s; + buff = FormatString(buff, GetStringPtr(units[_opt_ptr->units].force), args, modifier >> 24); + modifier = 0; + break; + } + default: error("!invalid escape sequence in string"); }