|
@@ -236,59 +236,59 @@ static void GraphLegendWndProc(Window *w
|
|
|
DrawPlayerIcon(p->index, 4, 18+p->index*12);
|
|
|
|
|
|
SetDParam(0, p->name_1);
|
|
|
SetDParam(1, p->name_2);
|
|
|
SetDParam(2, GetPlayerNameString(p->index, 3));
|
|
|
DrawString(21,17+p->index*12,STR_7021,HASBIT(_legend_excludebits, p->index) ? 0x10 : 0xC);
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
case WE_CLICK:
|
|
|
if (IS_INT_INSIDE(e->click.widget, 3, 11)) {
|
|
|
_legend_excludebits ^= (1 << (e->click.widget - 3));
|
|
|
SetWindowDirty(w);
|
|
|
InvalidateWindow(WC_INCOME_GRAPH, 0);
|
|
|
InvalidateWindow(WC_OPERATING_PROFIT, 0);
|
|
|
InvalidateWindow(WC_DELIVERED_CARGO, 0);
|
|
|
InvalidateWindow(WC_PERFORMANCE_HISTORY, 0);
|
|
|
InvalidateWindow(WC_COMPANY_VALUE, 0);
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
static const Widget _graph_legend_widgets[] = {
|
|
|
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
|
|
|
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
|
|
|
{ WWT_CAPTION, RESIZE_NONE, 14, 11, 249, 0, 13, STR_704E_KEY_TO_COMPANY_GRAPHS, STR_018C_WINDOW_TITLE_DRAG_THIS},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 249, 14, 113, 0x0,STR_NULL},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 2, 247, 16, 27, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 2, 247, 28, 39, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 2, 247, 40, 51, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 2, 247, 52, 63, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 2, 247, 64, 75, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 2, 247, 76, 87, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 2, 247, 88, 99, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 2, 247, 100, 111, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 249, 14, 113, 0x0, STR_NULL},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 2, 247, 16, 27, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 2, 247, 28, 39, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 2, 247, 40, 51, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 2, 247, 52, 63, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 2, 247, 64, 75, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 2, 247, 76, 87, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 2, 247, 88, 99, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 2, 247, 100, 111, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WIDGETS_END},
|
|
|
};
|
|
|
|
|
|
static const WindowDesc _graph_legend_desc = {
|
|
|
-1, -1, 250, 114,
|
|
|
WC_GRAPH_LEGEND,0,
|
|
|
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
|
|
|
_graph_legend_widgets,
|
|
|
GraphLegendWndProc
|
|
|
};
|
|
|
|
|
|
static void ShowGraphLegend(void)
|
|
|
{
|
|
|
AllocateWindowDescFront(&_graph_legend_desc, 0);
|
|
|
}
|
|
|
|
|
|
/********************/
|
|
|
/* OPERATING PROFIT */
|
|
|
/********************/
|
|
|
|
|
|
static void SetupGraphDrawerForPlayers(GraphDrawer *gd)
|
|
|
{
|
|
|
const Player* p;
|
|
|
uint excludebits = _legend_excludebits;
|
|
@@ -344,52 +344,52 @@ static void OperatingProfitWndProc(Windo
|
|
|
numd = 0;
|
|
|
FOR_ALL_PLAYERS(p) {
|
|
|
if (p->is_active) {
|
|
|
gd.colors[numd] = _color_list[p->player_color].window_color_bgb;
|
|
|
for (j = gd.num_on_x_axis, i = 0; --j >= 0;) {
|
|
|
gd.cost[numd][i] = (j >= p->num_valid_stat_ent) ? INVALID_VALUE : (uint64)(p->old_economy[j].income + p->old_economy[j].expenses);
|
|
|
i++;
|
|
|
}
|
|
|
}
|
|
|
numd++;
|
|
|
}
|
|
|
|
|
|
gd.num_dataset = numd;
|
|
|
|
|
|
DrawGraph(&gd);
|
|
|
} break;
|
|
|
case WE_CLICK:
|
|
|
if (e->click.widget == 2) /* Clicked on Legend */
|
|
|
ShowGraphLegend();
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
static const Widget _operating_profit_widgets[] = {
|
|
|
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
|
|
|
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
|
|
|
{ WWT_CAPTION, RESIZE_NONE, 14, 11, 525, 0, 13, STR_7025_OPERATING_PROFIT_GRAPH, STR_018C_WINDOW_TITLE_DRAG_THIS},
|
|
|
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 526, 575, 0, 13, STR_704C_KEY, STR_704D_SHOW_KEY_TO_GRAPHS},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 575, 14, 173, 0x0, STR_NULL},
|
|
|
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 526, 575, 0, 13, STR_704C_KEY, STR_704D_SHOW_KEY_TO_GRAPHS},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 575, 14, 173, 0x0, STR_NULL},
|
|
|
{ WIDGETS_END},
|
|
|
};
|
|
|
|
|
|
static const WindowDesc _operating_profit_desc = {
|
|
|
-1, -1, 576, 174,
|
|
|
WC_OPERATING_PROFIT,0,
|
|
|
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS,
|
|
|
_operating_profit_widgets,
|
|
|
OperatingProfitWndProc
|
|
|
};
|
|
|
|
|
|
|
|
|
void ShowOperatingProfitGraph(void)
|
|
|
{
|
|
|
if (AllocateWindowDescFront(&_operating_profit_desc, 0)) {
|
|
|
InvalidateWindow(WC_GRAPH_LEGEND, 0);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/****************/
|
|
|
/* INCOME GRAPH */
|
|
|
/****************/
|
|
|
|
|
@@ -419,52 +419,52 @@ static void IncomeGraphWndProc(Window *w
|
|
|
if (p->is_active) {
|
|
|
gd.colors[numd] = _color_list[p->player_color].window_color_bgb;
|
|
|
for (j = gd.num_on_x_axis, i = 0; --j >= 0;) {
|
|
|
gd.cost[numd][i] = (j >= p->num_valid_stat_ent) ? INVALID_VALUE : (uint64)p->old_economy[j].income;
|
|
|
i++;
|
|
|
}
|
|
|
}
|
|
|
numd++;
|
|
|
}
|
|
|
|
|
|
gd.num_dataset = numd;
|
|
|
|
|
|
DrawGraph(&gd);
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
case WE_CLICK:
|
|
|
if (e->click.widget == 2)
|
|
|
ShowGraphLegend();
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
static const Widget _income_graph_widgets[] = {
|
|
|
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
|
|
|
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
|
|
|
{ WWT_CAPTION, RESIZE_NONE, 14, 11, 525, 0, 13, STR_7022_INCOME_GRAPH, STR_018C_WINDOW_TITLE_DRAG_THIS},
|
|
|
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 526, 575, 0, 13, STR_704C_KEY, STR_704D_SHOW_KEY_TO_GRAPHS},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 575, 14, 141, 0x0, STR_NULL},
|
|
|
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 526, 575, 0, 13, STR_704C_KEY, STR_704D_SHOW_KEY_TO_GRAPHS},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 575, 14, 141, 0x0, STR_NULL},
|
|
|
{ WIDGETS_END},
|
|
|
};
|
|
|
|
|
|
static const WindowDesc _income_graph_desc = {
|
|
|
-1, -1, 576, 142,
|
|
|
WC_INCOME_GRAPH,0,
|
|
|
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS,
|
|
|
_income_graph_widgets,
|
|
|
IncomeGraphWndProc
|
|
|
};
|
|
|
|
|
|
void ShowIncomeGraph(void)
|
|
|
{
|
|
|
if (AllocateWindowDescFront(&_income_graph_desc, 0)) {
|
|
|
InvalidateWindow(WC_GRAPH_LEGEND, 0);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/*******************/
|
|
|
/* DELIVERED CARGO */
|
|
|
/*******************/
|
|
|
|
|
|
static void DeliveredCargoGraphWndProc(Window *w, WindowEvent *e)
|
|
|
{
|
|
@@ -492,52 +492,52 @@ static void DeliveredCargoGraphWndProc(W
|
|
|
if (p->is_active) {
|
|
|
gd.colors[numd] = _color_list[p->player_color].window_color_bgb;
|
|
|
for (j = gd.num_on_x_axis, i = 0; --j >= 0;) {
|
|
|
gd.cost[numd][i] = (j >= p->num_valid_stat_ent) ? INVALID_VALUE : (uint64)p->old_economy[j].delivered_cargo;
|
|
|
i++;
|
|
|
}
|
|
|
}
|
|
|
numd++;
|
|
|
}
|
|
|
|
|
|
gd.num_dataset = numd;
|
|
|
|
|
|
DrawGraph(&gd);
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
case WE_CLICK:
|
|
|
if (e->click.widget == 2)
|
|
|
ShowGraphLegend();
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
static const Widget _delivered_cargo_graph_widgets[] = {
|
|
|
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
|
|
|
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
|
|
|
{ WWT_CAPTION, RESIZE_NONE, 14, 11, 525, 0, 13, STR_7050_UNITS_OF_CARGO_DELIVERED, STR_018C_WINDOW_TITLE_DRAG_THIS},
|
|
|
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 526, 575, 0, 13, STR_704C_KEY, STR_704D_SHOW_KEY_TO_GRAPHS},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 575, 14, 141, 0x0, STR_NULL},
|
|
|
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 526, 575, 0, 13, STR_704C_KEY, STR_704D_SHOW_KEY_TO_GRAPHS},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 575, 14, 141, 0x0, STR_NULL},
|
|
|
{ WIDGETS_END},
|
|
|
};
|
|
|
|
|
|
static const WindowDesc _delivered_cargo_graph_desc = {
|
|
|
-1, -1, 576, 142,
|
|
|
WC_DELIVERED_CARGO,0,
|
|
|
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS,
|
|
|
_delivered_cargo_graph_widgets,
|
|
|
DeliveredCargoGraphWndProc
|
|
|
};
|
|
|
|
|
|
void ShowDeliveredCargoGraph(void)
|
|
|
{
|
|
|
if (AllocateWindowDescFront(&_delivered_cargo_graph_desc, 0)) {
|
|
|
InvalidateWindow(WC_GRAPH_LEGEND, 0);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/***********************/
|
|
|
/* PERFORMANCE HISTORY */
|
|
|
/***********************/
|
|
|
|
|
|
static void PerformanceHistoryWndProc(Window *w, WindowEvent *e)
|
|
|
{
|
|
@@ -567,53 +567,53 @@ static void PerformanceHistoryWndProc(Wi
|
|
|
for (j = gd.num_on_x_axis, i = 0; --j >= 0;) {
|
|
|
gd.cost[numd][i] = (j >= p->num_valid_stat_ent) ? INVALID_VALUE : (uint64)p->old_economy[j].performance_history;
|
|
|
i++;
|
|
|
}
|
|
|
}
|
|
|
numd++;
|
|
|
}
|
|
|
|
|
|
gd.num_dataset = numd;
|
|
|
|
|
|
DrawGraph(&gd);
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
case WE_CLICK:
|
|
|
if (e->click.widget == 2)
|
|
|
ShowGraphLegend();
|
|
|
if (e->click.widget == 3)
|
|
|
ShowPerformanceRatingDetail();
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
static const Widget _performance_history_widgets[] = {
|
|
|
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
|
|
|
{ WWT_CAPTION, RESIZE_NONE, 14, 11, 475, 0, 13, STR_7051_COMPANY_PERFORMANCE_RATINGS, STR_018C_WINDOW_TITLE_DRAG_THIS},
|
|
|
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 526, 575, 0, 13, STR_704C_KEY, STR_704D_SHOW_KEY_TO_GRAPHS},
|
|
|
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 476, 525, 0, 13, STR_PERFORMANCE_DETAIL_KEY, STR_704D_SHOW_KEY_TO_GRAPHS},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 575, 14, 237, 0x0, STR_NULL},
|
|
|
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
|
|
|
{ WWT_CAPTION, RESIZE_NONE, 14, 11, 475, 0, 13, STR_7051_COMPANY_PERFORMANCE_RATINGS, STR_018C_WINDOW_TITLE_DRAG_THIS},
|
|
|
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 526, 575, 0, 13, STR_704C_KEY, STR_704D_SHOW_KEY_TO_GRAPHS},
|
|
|
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 476, 525, 0, 13, STR_PERFORMANCE_DETAIL_KEY, STR_704D_SHOW_KEY_TO_GRAPHS},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 575, 14, 237, 0x0, STR_NULL},
|
|
|
{ WIDGETS_END},
|
|
|
};
|
|
|
|
|
|
static const WindowDesc _performance_history_desc = {
|
|
|
-1, -1, 576, 238,
|
|
|
WC_PERFORMANCE_HISTORY,0,
|
|
|
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS,
|
|
|
_performance_history_widgets,
|
|
|
PerformanceHistoryWndProc
|
|
|
};
|
|
|
|
|
|
void ShowPerformanceHistoryGraph(void)
|
|
|
{
|
|
|
if (AllocateWindowDescFront(&_performance_history_desc, 0)) {
|
|
|
InvalidateWindow(WC_GRAPH_LEGEND, 0);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/*****************/
|
|
|
/* COMPANY VALUE */
|
|
|
/*****************/
|
|
|
|
|
|
static void CompanyValueGraphWndProc(Window *w, WindowEvent *e)
|
|
|
{
|
|
@@ -641,52 +641,52 @@ static void CompanyValueGraphWndProc(Win
|
|
|
if (p->is_active) {
|
|
|
gd.colors[numd] = _color_list[p->player_color].window_color_bgb;
|
|
|
for (j = gd.num_on_x_axis, i = 0; --j >= 0;) {
|
|
|
gd.cost[numd][i] = (j >= p->num_valid_stat_ent) ? INVALID_VALUE : (uint64)p->old_economy[j].company_value;
|
|
|
i++;
|
|
|
}
|
|
|
}
|
|
|
numd++;
|
|
|
}
|
|
|
|
|
|
gd.num_dataset = numd;
|
|
|
|
|
|
DrawGraph(&gd);
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
case WE_CLICK:
|
|
|
if (e->click.widget == 2)
|
|
|
ShowGraphLegend();
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
static const Widget _company_value_graph_widgets[] = {
|
|
|
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
|
|
|
{ WWT_CAPTION, RESIZE_NONE, 14, 11, 525, 0, 13, STR_7052_COMPANY_VALUES, STR_018C_WINDOW_TITLE_DRAG_THIS},
|
|
|
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 526, 575, 0, 13, STR_704C_KEY, STR_704D_SHOW_KEY_TO_GRAPHS},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 575, 14, 237, 0x0, STR_NULL},
|
|
|
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
|
|
|
{ WWT_CAPTION, RESIZE_NONE, 14, 11, 525, 0, 13, STR_7052_COMPANY_VALUES, STR_018C_WINDOW_TITLE_DRAG_THIS},
|
|
|
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 526, 575, 0, 13, STR_704C_KEY, STR_704D_SHOW_KEY_TO_GRAPHS},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 575, 14, 237, 0x0, STR_NULL},
|
|
|
{ WIDGETS_END},
|
|
|
};
|
|
|
|
|
|
static const WindowDesc _company_value_graph_desc = {
|
|
|
-1, -1, 576, 238,
|
|
|
WC_COMPANY_VALUE,0,
|
|
|
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS,
|
|
|
_company_value_graph_widgets,
|
|
|
CompanyValueGraphWndProc
|
|
|
};
|
|
|
|
|
|
void ShowCompanyValueGraph(void)
|
|
|
{
|
|
|
if (AllocateWindowDescFront(&_company_value_graph_desc, 0)) {
|
|
|
InvalidateWindow(WC_GRAPH_LEGEND, 0);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/*****************/
|
|
|
/* PAYMENT RATES */
|
|
|
/*****************/
|
|
|
|
|
|
static const byte _cargo_legend_colors[12] = {152, 32, 15, 174, 208, 194, 191, 84, 184, 10, 202, 215};
|
|
|
|
|
@@ -731,63 +731,63 @@ static void CargoPaymentRatesWndProc(Win
|
|
|
gd.cost[i][j] = (uint64)GetTransportedGoodsIncome(10, 20, j * 6 + 6, i);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
DrawGraph(&gd);
|
|
|
|
|
|
DrawString(2 + 46, 24 + gd.height + 7, STR_7062_DAYS_IN_TRANSIT, 0);
|
|
|
DrawString(2 + 84, 24 - 9, STR_7063_PAYMENT_FOR_DELIVERING, 0);
|
|
|
} break;
|
|
|
|
|
|
case WE_CLICK: {
|
|
|
switch (e->click.widget) {
|
|
|
case 3: case 4: case 5: case 6:
|
|
|
case 7: case 8: case 9: case 10:
|
|
|
case 11: case 12: case 13: case 14:
|
|
|
_legend_cargobits ^= 1 << (e->click.widget - 3);
|
|
|
SetWindowDirty(w);
|
|
|
break;
|
|
|
}
|
|
|
} break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
static const Widget _cargo_payment_rates_widgets[] = {
|
|
|
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
|
|
|
{ WWT_CAPTION, RESIZE_NONE, 14, 11, 567, 0, 13, STR_7061_CARGO_PAYMENT_RATES, STR_018C_WINDOW_TITLE_DRAG_THIS},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 14, 0, 567, 14, 141, 0x0, STR_NULL},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 24, 31, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 32, 39, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 40, 47, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 48, 55, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 56, 63, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 64, 71, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 72, 79, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 80, 87, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 88, 95, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 96, 103, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 104, 111, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 112, 119, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
|
|
|
{ WWT_CAPTION, RESIZE_NONE, 14, 11, 567, 0, 13, STR_7061_CARGO_PAYMENT_RATES, STR_018C_WINDOW_TITLE_DRAG_THIS},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 14, 0, 567, 14, 141, 0x0, STR_NULL},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 24, 31, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 32, 39, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 40, 47, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 48, 55, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 56, 63, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 64, 71, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 72, 79, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 80, 87, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 88, 95, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 96, 103, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 104, 111, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WWT_PANEL, RESIZE_NONE, 12, 493, 562, 112, 119, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
|
|
|
{ WIDGETS_END},
|
|
|
};
|
|
|
|
|
|
static const WindowDesc _cargo_payment_rates_desc = {
|
|
|
-1, -1, 568, 142,
|
|
|
WC_PAYMENT_RATES,0,
|
|
|
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
|
|
|
_cargo_payment_rates_widgets,
|
|
|
CargoPaymentRatesWndProc
|
|
|
};
|
|
|
|
|
|
|
|
|
void ShowCargoPaymentRates(void)
|
|
|
{
|
|
|
AllocateWindowDescFront(&_cargo_payment_rates_desc, 0);
|
|
|
}
|
|
|
|
|
|
/************************/
|
|
|
/* COMPANY LEAGUE TABLE */
|
|
|
/************************/
|
|
|
|
|
|
static const StringID _performance_titles[] = {
|
|
|
STR_7066_ENGINEER,
|
|
|
STR_7066_ENGINEER,
|
|
@@ -1034,71 +1034,71 @@ static void PerformanceRatingDetailWndPr
|
|
|
}
|
|
|
|
|
|
case WE_TICK: {
|
|
|
// Update the player score every 5 days
|
|
|
if (--w->custom[0] == 0) {
|
|
|
w->custom[0] = DAY_TICKS;
|
|
|
if (--w->custom[1] == 0) {
|
|
|
Player *p2;
|
|
|
|
|
|
w->custom[1] = 5;
|
|
|
FOR_ALL_PLAYERS(p2) {
|
|
|
// Skip if player is not active
|
|
|
if (p2->is_active) UpdateCompanyRatingAndValue(p2, false);
|
|
|
}
|
|
|
SetWindowDirty(w);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
static const Widget _performance_rating_detail_widgets[] = {
|
|
|
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
|
|
|
{ WWT_CAPTION, RESIZE_NONE, 14, 11, 298, 0, 13, STR_PERFORMANCE_DETAIL, STR_018C_WINDOW_TITLE_DRAG_THIS},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 298, 14, 27, 0x0, STR_NULL},
|
|
|
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
|
|
|
{ WWT_CAPTION, RESIZE_NONE, 14, 11, 298, 0, 13, STR_PERFORMANCE_DETAIL, STR_018C_WINDOW_TITLE_DRAG_THIS},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 298, 14, 27, 0x0, STR_NULL},
|
|
|
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 298, 28, 47, 0x0,STR_PERFORMANCE_DETAIL_VEHICLES_TIP},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 298, 48, 67, 0x0,STR_PERFORMANCE_DETAIL_STATIONS_TIP},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 298, 68, 87, 0x0,STR_PERFORMANCE_DETAIL_MIN_PROFIT_TIP},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 298, 88, 107, 0x0,STR_PERFORMANCE_DETAIL_MIN_INCOME_TIP},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 298, 108, 127, 0x0,STR_PERFORMANCE_DETAIL_MAX_INCOME_TIP},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 298, 128, 147, 0x0,STR_PERFORMANCE_DETAIL_DELIVERED_TIP},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 298, 148, 167, 0x0,STR_PERFORMANCE_DETAIL_CARGO_TIP},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 298, 168, 187, 0x0,STR_PERFORMANCE_DETAIL_MONEY_TIP},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 298, 188, 207, 0x0,STR_PERFORMANCE_DETAIL_LOAN_TIP},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 298, 208, 227, 0x0,STR_PERFORMANCE_DETAIL_TOTAL_TIP},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 298, 28, 47, 0x0, STR_PERFORMANCE_DETAIL_VEHICLES_TIP},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 298, 48, 67, 0x0, STR_PERFORMANCE_DETAIL_STATIONS_TIP},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 298, 68, 87, 0x0, STR_PERFORMANCE_DETAIL_MIN_PROFIT_TIP},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 298, 88, 107, 0x0, STR_PERFORMANCE_DETAIL_MIN_INCOME_TIP},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 298, 108, 127, 0x0, STR_PERFORMANCE_DETAIL_MAX_INCOME_TIP},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 298, 128, 147, 0x0, STR_PERFORMANCE_DETAIL_DELIVERED_TIP},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 298, 148, 167, 0x0, STR_PERFORMANCE_DETAIL_CARGO_TIP},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 298, 168, 187, 0x0, STR_PERFORMANCE_DETAIL_MONEY_TIP},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 298, 188, 207, 0x0, STR_PERFORMANCE_DETAIL_LOAN_TIP},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 298, 208, 227, 0x0, STR_PERFORMANCE_DETAIL_TOTAL_TIP},
|
|
|
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 2, 38, 14, 26, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 39, 75, 14, 26, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 76, 112, 14, 26, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 113, 149, 14, 26, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 150, 186, 14, 26, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 187, 223, 14, 26, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 224, 260, 14, 26, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 261, 297, 14, 26, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 2, 38, 14, 26, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 39, 75, 14, 26, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 76, 112, 14, 26, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 113, 149, 14, 26, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 150, 186, 14, 26, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 187, 223, 14, 26, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 224, 260, 14, 26, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WWT_IMGBTN, RESIZE_NONE, 14, 261, 297, 14, 26, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
|
|
|
{ WIDGETS_END},
|
|
|
};
|
|
|
|
|
|
static const WindowDesc _performance_rating_detail_desc = {
|
|
|
-1, -1, 299, 228,
|
|
|
WC_PERFORMANCE_DETAIL,0,
|
|
|
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
|
|
|
_performance_rating_detail_widgets,
|
|
|
PerformanceRatingDetailWndProc
|
|
|
};
|
|
|
|
|
|
void ShowPerformanceRatingDetail(void)
|
|
|
{
|
|
|
AllocateWindowDescFront(&_performance_rating_detail_desc, 0);
|
|
|
}
|
|
|
|
|
|
|
|
|
static uint16 _num_sign_sort;
|
|
|
|
|
|
static char _bufcache[64];
|
|
|
static uint16 _last_sign_idx;
|
|
|
|
|
|
static int CDECL SignNameSorter(const void *a, const void *b)
|
|
|
{
|
|
@@ -1187,53 +1187,53 @@ static void SignListWndProc(Window *w, W
|
|
|
uint32 id_v = (e->click.pt.y - 15) / 10;
|
|
|
SignStruct *ss;
|
|
|
|
|
|
if (id_v >= w->vscroll.cap)
|
|
|
return;
|
|
|
|
|
|
id_v += w->vscroll.pos;
|
|
|
|
|
|
if (id_v >= w->vscroll.count)
|
|
|
return;
|
|
|
|
|
|
ss = GetSign(_sign_sort[id_v]);
|
|
|
ScrollMainWindowToTile(TileVirtXY(ss->x, ss->y));
|
|
|
} break;
|
|
|
}
|
|
|
} break;
|
|
|
|
|
|
case WE_RESIZE:
|
|
|
w->vscroll.cap += e->sizing.diff.y / 10;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
static const Widget _sign_list_widget[] = {
|
|
|
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
|
|
|
{ WWT_CAPTION, RESIZE_RIGHT, 14, 11, 345, 0, 13, STR_SIGN_LIST_CAPTION, STR_018C_WINDOW_TITLE_DRAG_THIS},
|
|
|
{ WWT_STICKYBOX, RESIZE_LR, 14, 346, 357, 0, 13, 0x0, STR_STICKY_BUTTON},
|
|
|
{ WWT_PANEL, RESIZE_RB, 14, 0, 345, 14, 137, 0x0, STR_NULL},
|
|
|
{ WWT_SCROLLBAR, RESIZE_LRB, 14, 346, 357, 14, 125, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
|
|
|
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 346, 357, 126, 137, 0x0, STR_RESIZE_BUTTON},
|
|
|
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
|
|
|
{ WWT_CAPTION, RESIZE_RIGHT, 14, 11, 345, 0, 13, STR_SIGN_LIST_CAPTION, STR_018C_WINDOW_TITLE_DRAG_THIS},
|
|
|
{ WWT_STICKYBOX, RESIZE_LR, 14, 346, 357, 0, 13, 0x0, STR_STICKY_BUTTON},
|
|
|
{ WWT_PANEL, RESIZE_RB, 14, 0, 345, 14, 137, 0x0, STR_NULL},
|
|
|
{ WWT_SCROLLBAR, RESIZE_LRB, 14, 346, 357, 14, 125, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
|
|
|
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 346, 357, 126, 137, 0x0, STR_RESIZE_BUTTON},
|
|
|
{ WIDGETS_END},
|
|
|
};
|
|
|
|
|
|
static const WindowDesc _sign_list_desc = {
|
|
|
-1, -1, 358, 138,
|
|
|
WC_SIGN_LIST,0,
|
|
|
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_STICKY_BUTTON | WDF_RESIZABLE,
|
|
|
_sign_list_widget,
|
|
|
SignListWndProc
|
|
|
};
|
|
|
|
|
|
|
|
|
void ShowSignList(void)
|
|
|
{
|
|
|
Window *w;
|
|
|
|
|
|
w = AllocateWindowDescFront(&_sign_list_desc, 0);
|
|
|
if (w != NULL) {
|
|
|
w->vscroll.cap = 12;
|
|
|
w->resize.step_height = 10;
|
|
|
w->resize.height = w->height - 10 * 7; // minimum if 5 in the list
|
|
|
}
|
|
|
}
|