(svn r9170) [gamebalance] -Feature: Show the economic status of the town in the view window gamebalance
authorcelestar
Wed, 14 Mar 2007 11:15:58 +0000
branchgamebalance
changeset 9890 37b56728c471
parent 9889 cfd2278f9099
child 9891 7d3a5979a733
(svn r9170) [gamebalance] -Feature: Show the economic status of the town in the view window
src/lang/english.txt
src/town.h
src/town_gui.cpp
--- a/src/lang/english.txt	Wed Mar 14 10:00:56 2007 +0000
+++ b/src/lang/english.txt	Wed Mar 14 11:15:58 2007 +0000
@@ -1686,6 +1686,13 @@
 STR_205B_TEAPOT_HOUSE                                           :Teapot-House
 STR_205C_PIGGY_BANK                                             :Piggy-Bank
 
+STR_TOWN_ECONOMY_STATUS                                         :{BLACK}Economic Status: {ORANGE} {STRING} ({COMMA}%)
+STR_TOWN_ECONOMY_POOR                                           :Poor
+STR_TOWN_ECONOMY_MEDIOCRE                                       :Mediocre
+STR_TOWN_ECONOMY_AVERAGE                                        :Average
+STR_TOWN_ECONOMY_WEALTHY                                        :Wealthy
+STR_TOWN_ECONOMY_RICH                                           :Rich
+
 STR_INDUSTRY                                                    :{INDUSTRY}
 STR_TOWN                                                        :{TOWN}
 STR_INDUSTRY_FORMAT                                             :{TOWN} {STRING}
--- a/src/town.h	Wed Mar 14 10:00:56 2007 +0000
+++ b/src/town.h	Wed Mar 14 11:15:58 2007 +0000
@@ -91,6 +91,16 @@
 		DEBUG(eco, 7, "Setting EAL of town %d [0x%x] to %f", index, xy, (double)level);
 		m_activity_level = level;
 	}
+
+	byte GetWealthLevel() const
+	{
+		FixedT<int32, 16> level = GetActivity() * 10;
+		if (level <  7) return 0;
+		if (level <  9) return 1;
+		if (level < 12) return 2;
+		if (level < 15) return 3;
+		return 4;
+	}
 };
 
 uint32 GetWorldPopulation(void);
--- a/src/town_gui.cpp	Wed Mar 14 10:00:56 2007 +0000
+++ b/src/town_gui.cpp	Wed Mar 14 11:15:58 2007 +0000
@@ -252,6 +252,14 @@
 		SetDParam(1, t->max_mail);
 		DrawString(2, 127, STR_200E_MAIL_LAST_MONTH_MAX, 0);
 
+		{
+			int activity = t->GetActivity() * 100;
+
+			SetDParam(0, STR_TOWN_ECONOMY_POOR + t->GetWealthLevel());
+			SetDParam(1, activity);
+			DrawString(2, 137, STR_TOWN_ECONOMY_STATUS, 0);
+		}
+
 		DrawWindowViewport(w);
 		break;
 
@@ -297,15 +305,15 @@
 {  WWT_STICKYBOX,   RESIZE_NONE,    13,   248,   259,     0,    13, 0x0,                      STR_STICKY_BUTTON},
 {      WWT_PANEL,   RESIZE_NONE,    13,     0,   259,    14,   105, 0x0,                      STR_NULL},
 {      WWT_INSET,   RESIZE_NONE,    13,     2,   257,    16,   103, 0x0,                      STR_NULL},
-{      WWT_PANEL,   RESIZE_NONE,    13,     0,   259,   106,   137, 0x0,                      STR_NULL},
-{ WWT_PUSHTXTBTN,   RESIZE_NONE,    13,     0,    85,   138,   149, STR_00E4_LOCATION,        STR_200B_CENTER_THE_MAIN_VIEW_ON},
-{ WWT_PUSHTXTBTN,   RESIZE_NONE,    13,    86,   171,   138,   149, STR_2020_LOCAL_AUTHORITY, STR_2021_SHOW_INFORMATION_ON_LOCAL},
-{ WWT_PUSHTXTBTN,   RESIZE_NONE,    13,   172,   259,   138,   149, STR_0130_RENAME,          STR_200C_CHANGE_TOWN_NAME},
+{      WWT_PANEL,   RESIZE_NONE,    13,     0,   259,   106,   147, 0x0,                      STR_NULL},
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    13,     0,    85,   148,   159, STR_00E4_LOCATION,        STR_200B_CENTER_THE_MAIN_VIEW_ON},
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    13,    86,   171,   148,   159, STR_2020_LOCAL_AUTHORITY, STR_2021_SHOW_INFORMATION_ON_LOCAL},
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    13,   172,   259,   148,   159, STR_0130_RENAME,          STR_200C_CHANGE_TOWN_NAME},
 {   WIDGETS_END},
 };
 
 static const WindowDesc _town_view_desc = {
-	WDP_AUTO, WDP_AUTO, 260, 150,
+	WDP_AUTO, WDP_AUTO, 260, 160,
 	WC_TOWN_VIEW, WC_NONE,
 	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON,
 	_town_view_widgets,
@@ -318,17 +326,17 @@
 {  WWT_STICKYBOX,   RESIZE_NONE,    13,   248,   259,     0,    13, 0x0,               STR_STICKY_BUTTON},
 {      WWT_PANEL,   RESIZE_NONE,    13,     0,   259,    14,   105, 0x0,               STR_NULL},
 {      WWT_INSET,   RESIZE_NONE,    13,     2,   257,    16,   103, 0x0,               STR_NULL},
-{      WWT_PANEL,   RESIZE_NONE,    13,     0,   259,   106,   137, 0x0,               STR_NULL},
-{ WWT_PUSHTXTBTN,   RESIZE_NONE,    13,     0,    85,   138,   149, STR_00E4_LOCATION, STR_200B_CENTER_THE_MAIN_VIEW_ON},
+{      WWT_PANEL,   RESIZE_NONE,    13,     0,   259,   106,   147, 0x0,               STR_NULL},
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    13,     0,    85,   148,   159, STR_00E4_LOCATION, STR_200B_CENTER_THE_MAIN_VIEW_ON},
 {      WWT_EMPTY,   RESIZE_NONE,     0,     0,     0,     0,     0, 0x0,               STR_NULL},
 { WWT_PUSHTXTBTN,   RESIZE_NONE,    13,   173,   247,     0,    13, STR_0130_RENAME,   STR_200C_CHANGE_TOWN_NAME},
-{ WWT_PUSHTXTBTN,   RESIZE_NONE,    13,    86,   171,   138,   149, STR_023C_EXPAND,   STR_023B_INCREASE_SIZE_OF_TOWN},
-{ WWT_PUSHTXTBTN,   RESIZE_NONE,    13,   172,   259,   138,   149, STR_0290_DELETE,   STR_0291_DELETE_THIS_TOWN_COMPLETELY},
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    13,    86,   171,   148,   159, STR_023C_EXPAND,   STR_023B_INCREASE_SIZE_OF_TOWN},
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    13,   172,   259,   148,   159, STR_0290_DELETE,   STR_0291_DELETE_THIS_TOWN_COMPLETELY},
 {   WIDGETS_END},
 };
 
 static const WindowDesc _town_view_scen_desc = {
-	WDP_AUTO, WDP_AUTO, 260, 150,
+	WDP_AUTO, WDP_AUTO, 260, 160,
 	WC_TOWN_VIEW, WC_NONE,
 	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON,
 	_town_view_scen_widgets,