Changeset - r16292:7d6b013bfa78
[Not reviewed]
master
0 2 0
rubidium - 14 years ago 2010-10-22 16:33:07
rubidium@openttd.org
(svn r21010) -Fix [FS#4102]: the detailed performance rating window would occasionally be too narrow. Based on a patch by Krille
2 files changed with 20 insertions and 3 deletions:
0 comments (0 inline, 0 general)
src/graph_gui.cpp
Show inline comments
 
@@ -24,6 +24,7 @@
 
#include "sortlist_type.h"
 
#include "core/geometry_func.hpp"
 
#include "math.h"
 
#include "currency.h"
 

	
 
#include "table/strings.h"
 
#include "table/sprites.h"
 
@@ -1354,8 +1355,24 @@ struct PerformanceRatingDetailWindow : W
 

	
 
				/* At this number we are roughly at the max; it can become wider,
 
				 * but then you need at 1000 times more money. At that time you're
 
				 * not that interested anymore in the last few digits anyway. */
 
				uint max = 999999999; // nine 9s
 
				 * not that interested anymore in the last few digits anyway.
 
				 * The 500 is because 999 999 500 to 999 999 999 are rounded to
 
				 * 1 000 M, and not 999 999 k. Use negative numbers to account for
 
				 * the negative income/amount of money etc. as well. */
 
				int max = -(999999999 - 500);
 

	
 
				/* Scale max for the display currency. Prior to rendering the value
 
				 * is converted into the display currency, which may cause it to
 
				 * raise significantly. We need to compensate for that since {{CURRCOMPACT}}
 
				 * is used, which can produce quite short renderings of very large
 
				 * values. Otherwise the calculated width could be too narrow.
 
				 * Note that it doesn't work if there was a currency with an exchange
 
				 * rate greater than max.
 
				 * When the currency rate is more than 1000, the 999 999 k becomes at
 
				 * least 999 999 M which roughly is equally long. Furthermore if the
 
				 * exchange rate is that high, 999 999 k is usually not enough anymore
 
				 * to show the different currency numbers. */
 
				if (_currency->rate < 1000) max /= _currency->rate;
 
				SetDParam(0, max);
 
				SetDParam(1, max);
 
				uint score_detail_width = GetStringBoundingBox(STR_PERFORMANCE_DETAIL_AMOUNT_CURRENCY).width;
src/settings_gui.cpp
Show inline comments
 
@@ -383,7 +383,7 @@ struct GameOptionsWindow : Window {
 
			case GOW_CURRENCY_DROPDOWN: // Currency
 
				if (index == CUSTOM_CURRENCY_ID) ShowCustCurrency();
 
				this->opt->locale.currency = index;
 
				MarkWholeScreenDirty();
 
				ReInitAllWindows();
 
				break;
 

	
 
			case GOW_DISTANCE_DROPDOWN: // Measuring units
0 comments (0 inline, 0 general)