|
|
@ -246,24 +246,23 @@ static void DrawGraph(const GraphDrawer *gw)
|
|
|
|
|
|
|
|
|
|
|
|
static void GraphLegendWndProc(Window *w, WindowEvent *e)
|
|
|
|
static void GraphLegendWndProc(Window *w, WindowEvent *e)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
const Player* p;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
switch (e->event) {
|
|
|
|
switch (e->event) {
|
|
|
|
case WE_CREATE: {
|
|
|
|
case WE_CREATE:
|
|
|
|
uint i;
|
|
|
|
for (uint i = 3; i < w->widget_count; i++) {
|
|
|
|
for (i = 3; i < w->widget_count; i++) {
|
|
|
|
|
|
|
|
if (!HASBIT(_legend_excluded_players, i - 3)) LowerWindowWidget(w, i);
|
|
|
|
if (!HASBIT(_legend_excluded_players, i - 3)) LowerWindowWidget(w, i);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case WE_PAINT:
|
|
|
|
case WE_PAINT: {
|
|
|
|
|
|
|
|
const Player *p;
|
|
|
|
|
|
|
|
|
|
|
|
FOR_ALL_PLAYERS(p) {
|
|
|
|
FOR_ALL_PLAYERS(p) {
|
|
|
|
if (!p->is_active) {
|
|
|
|
if (p->is_active) continue;
|
|
|
|
|
|
|
|
|
|
|
|
SETBIT(_legend_excluded_players, p->index);
|
|
|
|
SETBIT(_legend_excluded_players, p->index);
|
|
|
|
RaiseWindowWidget(w, p->index + 3);
|
|
|
|
RaiseWindowWidget(w, p->index + 3);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
DrawWindowWidgets(w);
|
|
|
|
DrawWindowWidgets(w);
|
|
|
|
|
|
|
|
|
|
|
|
FOR_ALL_PLAYERS(p) {
|
|
|
|
FOR_ALL_PLAYERS(p) {
|
|
|
@ -277,9 +276,11 @@ static void GraphLegendWndProc(Window *w, WindowEvent *e)
|
|
|
|
DrawString(21, 17 + p->index * 12, STR_7021, HASBIT(_legend_excluded_players, p->index) ? 0x10 : 0xC);
|
|
|
|
DrawString(21, 17 + p->index * 12, STR_7021, HASBIT(_legend_excluded_players, p->index) ? 0x10 : 0xC);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
case WE_CLICK:
|
|
|
|
case WE_CLICK:
|
|
|
|
if (IS_INT_INSIDE(e->we.click.widget, 3, 11)) {
|
|
|
|
if (!IS_INT_INSIDE(e->we.click.widget, 3, 11)) return;
|
|
|
|
|
|
|
|
|
|
|
|
TOGGLEBIT(_legend_excluded_players, e->we.click.widget - 3);
|
|
|
|
TOGGLEBIT(_legend_excluded_players, e->we.click.widget - 3);
|
|
|
|
ToggleWidgetLoweredState(w, e->we.click.widget);
|
|
|
|
ToggleWidgetLoweredState(w, e->we.click.widget);
|
|
|
|
SetWindowDirty(w);
|
|
|
|
SetWindowDirty(w);
|
|
|
@ -288,7 +289,6 @@ static void GraphLegendWndProc(Window *w, WindowEvent *e)
|
|
|
|
InvalidateWindow(WC_DELIVERED_CARGO, 0);
|
|
|
|
InvalidateWindow(WC_DELIVERED_CARGO, 0);
|
|
|
|
InvalidateWindow(WC_PERFORMANCE_HISTORY, 0);
|
|
|
|
InvalidateWindow(WC_PERFORMANCE_HISTORY, 0);
|
|
|
|
InvalidateWindow(WC_COMPANY_VALUE, 0);
|
|
|
|
InvalidateWindow(WC_COMPANY_VALUE, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -341,11 +341,11 @@ static void SetupGraphDrawerForPlayers(GraphDrawer *gd)
|
|
|
|
|
|
|
|
|
|
|
|
nums = 0;
|
|
|
|
nums = 0;
|
|
|
|
FOR_ALL_PLAYERS(p) {
|
|
|
|
FOR_ALL_PLAYERS(p) {
|
|
|
|
if (p->is_active) nums = max(nums,p->num_valid_stat_ent);
|
|
|
|
if (p->is_active) nums = max(nums, p->num_valid_stat_ent);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
gd->num_on_x_axis = min(nums,24);
|
|
|
|
gd->num_on_x_axis = min(nums, 24);
|
|
|
|
|
|
|
|
|
|
|
|
mo = (_cur_month/3-nums)*3;
|
|
|
|
mo = (_cur_month / 3 - nums) * 3;
|
|
|
|
yr = _cur_year;
|
|
|
|
yr = _cur_year;
|
|
|
|
while (mo < 0) {
|
|
|
|
while (mo < 0) {
|
|
|
|
yr--;
|
|
|
|
yr--;
|
|
|
@ -362,8 +362,6 @@ static void OperatingProfitWndProc(Window *w, WindowEvent *e)
|
|
|
|
case WE_PAINT: {
|
|
|
|
case WE_PAINT: {
|
|
|
|
GraphDrawer gd;
|
|
|
|
GraphDrawer gd;
|
|
|
|
const Player* p;
|
|
|
|
const Player* p;
|
|
|
|
int i,j;
|
|
|
|
|
|
|
|
int numd;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DrawWindowWidgets(w);
|
|
|
|
DrawWindowWidgets(w);
|
|
|
|
|
|
|
|
|
|
|
@ -375,11 +373,11 @@ static void OperatingProfitWndProc(Window *w, WindowEvent *e)
|
|
|
|
|
|
|
|
|
|
|
|
SetupGraphDrawerForPlayers(&gd);
|
|
|
|
SetupGraphDrawerForPlayers(&gd);
|
|
|
|
|
|
|
|
|
|
|
|
numd = 0;
|
|
|
|
int numd = 0;
|
|
|
|
FOR_ALL_PLAYERS(p) {
|
|
|
|
FOR_ALL_PLAYERS(p) {
|
|
|
|
if (p->is_active) {
|
|
|
|
if (p->is_active) {
|
|
|
|
gd.colors[numd] = _colour_gradient[p->player_color][6];
|
|
|
|
gd.colors[numd] = _colour_gradient[p->player_color][6];
|
|
|
|
for (j = gd.num_on_x_axis, i = 0; --j >= 0;) {
|
|
|
|
for (int j = gd.num_on_x_axis, i = 0; --j >= 0;) {
|
|
|
|
gd.cost[numd][i] = (j >= p->num_valid_stat_ent) ? INVALID_DATAPOINT : (p->old_economy[j].income + p->old_economy[j].expenses);
|
|
|
|
gd.cost[numd][i] = (j >= p->num_valid_stat_ent) ? INVALID_DATAPOINT : (p->old_economy[j].income + p->old_economy[j].expenses);
|
|
|
|
i++;
|
|
|
|
i++;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -390,10 +388,12 @@ static void OperatingProfitWndProc(Window *w, WindowEvent *e)
|
|
|
|
gd.num_dataset = numd;
|
|
|
|
gd.num_dataset = numd;
|
|
|
|
|
|
|
|
|
|
|
|
DrawGraph(&gd);
|
|
|
|
DrawGraph(&gd);
|
|
|
|
} break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
case WE_CLICK:
|
|
|
|
case WE_CLICK:
|
|
|
|
if (e->we.click.widget == 2) /* Clicked on Legend */
|
|
|
|
/* Clicked on legend? */
|
|
|
|
ShowGraphLegend();
|
|
|
|
if (e->we.click.widget == 2) ShowGraphLegend();
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -433,8 +433,6 @@ static void IncomeGraphWndProc(Window *w, WindowEvent *e)
|
|
|
|
case WE_PAINT: {
|
|
|
|
case WE_PAINT: {
|
|
|
|
GraphDrawer gd;
|
|
|
|
GraphDrawer gd;
|
|
|
|
const Player* p;
|
|
|
|
const Player* p;
|
|
|
|
int i,j;
|
|
|
|
|
|
|
|
int numd;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DrawWindowWidgets(w);
|
|
|
|
DrawWindowWidgets(w);
|
|
|
|
|
|
|
|
|
|
|
@ -445,11 +443,11 @@ static void IncomeGraphWndProc(Window *w, WindowEvent *e)
|
|
|
|
gd.format_str_y_axis = STR_CURRCOMPACT;
|
|
|
|
gd.format_str_y_axis = STR_CURRCOMPACT;
|
|
|
|
SetupGraphDrawerForPlayers(&gd);
|
|
|
|
SetupGraphDrawerForPlayers(&gd);
|
|
|
|
|
|
|
|
|
|
|
|
numd = 0;
|
|
|
|
int numd = 0;
|
|
|
|
FOR_ALL_PLAYERS(p) {
|
|
|
|
FOR_ALL_PLAYERS(p) {
|
|
|
|
if (p->is_active) {
|
|
|
|
if (p->is_active) {
|
|
|
|
gd.colors[numd] = _colour_gradient[p->player_color][6];
|
|
|
|
gd.colors[numd] = _colour_gradient[p->player_color][6];
|
|
|
|
for (j = gd.num_on_x_axis, i = 0; --j >= 0;) {
|
|
|
|
for (int j = gd.num_on_x_axis, i = 0; --j >= 0;) {
|
|
|
|
gd.cost[numd][i] = (j >= p->num_valid_stat_ent) ? INVALID_DATAPOINT : p->old_economy[j].income;
|
|
|
|
gd.cost[numd][i] = (j >= p->num_valid_stat_ent) ? INVALID_DATAPOINT : p->old_economy[j].income;
|
|
|
|
i++;
|
|
|
|
i++;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -464,8 +462,7 @@ static void IncomeGraphWndProc(Window *w, WindowEvent *e)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
case WE_CLICK:
|
|
|
|
case WE_CLICK:
|
|
|
|
if (e->we.click.widget == 2)
|
|
|
|
if (e->we.click.widget == 2) ShowGraphLegend();
|
|
|
|
ShowGraphLegend();
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -503,8 +500,6 @@ static void DeliveredCargoGraphWndProc(Window *w, WindowEvent *e)
|
|
|
|
case WE_PAINT: {
|
|
|
|
case WE_PAINT: {
|
|
|
|
GraphDrawer gd;
|
|
|
|
GraphDrawer gd;
|
|
|
|
const Player* p;
|
|
|
|
const Player* p;
|
|
|
|
int i,j;
|
|
|
|
|
|
|
|
int numd;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DrawWindowWidgets(w);
|
|
|
|
DrawWindowWidgets(w);
|
|
|
|
|
|
|
|
|
|
|
@ -515,11 +510,11 @@ static void DeliveredCargoGraphWndProc(Window *w, WindowEvent *e)
|
|
|
|
gd.format_str_y_axis = STR_7024;
|
|
|
|
gd.format_str_y_axis = STR_7024;
|
|
|
|
SetupGraphDrawerForPlayers(&gd);
|
|
|
|
SetupGraphDrawerForPlayers(&gd);
|
|
|
|
|
|
|
|
|
|
|
|
numd = 0;
|
|
|
|
int numd = 0;
|
|
|
|
FOR_ALL_PLAYERS(p) {
|
|
|
|
FOR_ALL_PLAYERS(p) {
|
|
|
|
if (p->is_active) {
|
|
|
|
if (p->is_active) {
|
|
|
|
gd.colors[numd] = _colour_gradient[p->player_color][6];
|
|
|
|
gd.colors[numd] = _colour_gradient[p->player_color][6];
|
|
|
|
for (j = gd.num_on_x_axis, i = 0; --j >= 0;) {
|
|
|
|
for (int j = gd.num_on_x_axis, i = 0; --j >= 0;) {
|
|
|
|
gd.cost[numd][i] = (j >= p->num_valid_stat_ent) ? INVALID_DATAPOINT : p->old_economy[j].delivered_cargo;
|
|
|
|
gd.cost[numd][i] = (j >= p->num_valid_stat_ent) ? INVALID_DATAPOINT : p->old_economy[j].delivered_cargo;
|
|
|
|
i++;
|
|
|
|
i++;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -534,8 +529,7 @@ static void DeliveredCargoGraphWndProc(Window *w, WindowEvent *e)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
case WE_CLICK:
|
|
|
|
case WE_CLICK:
|
|
|
|
if (e->we.click.widget == 2)
|
|
|
|
if (e->we.click.widget == 2) ShowGraphLegend();
|
|
|
|
ShowGraphLegend();
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -573,8 +567,6 @@ static void PerformanceHistoryWndProc(Window *w, WindowEvent *e)
|
|
|
|
case WE_PAINT: {
|
|
|
|
case WE_PAINT: {
|
|
|
|
GraphDrawer gd;
|
|
|
|
GraphDrawer gd;
|
|
|
|
const Player* p;
|
|
|
|
const Player* p;
|
|
|
|
int i,j;
|
|
|
|
|
|
|
|
int numd;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DrawWindowWidgets(w);
|
|
|
|
DrawWindowWidgets(w);
|
|
|
|
|
|
|
|
|
|
|
@ -585,11 +577,11 @@ static void PerformanceHistoryWndProc(Window *w, WindowEvent *e)
|
|
|
|
gd.format_str_y_axis = STR_7024;
|
|
|
|
gd.format_str_y_axis = STR_7024;
|
|
|
|
SetupGraphDrawerForPlayers(&gd);
|
|
|
|
SetupGraphDrawerForPlayers(&gd);
|
|
|
|
|
|
|
|
|
|
|
|
numd = 0;
|
|
|
|
int numd = 0;
|
|
|
|
FOR_ALL_PLAYERS(p) {
|
|
|
|
FOR_ALL_PLAYERS(p) {
|
|
|
|
if (p->is_active) {
|
|
|
|
if (p->is_active) {
|
|
|
|
gd.colors[numd] = _colour_gradient[p->player_color][6];
|
|
|
|
gd.colors[numd] = _colour_gradient[p->player_color][6];
|
|
|
|
for (j = gd.num_on_x_axis, i = 0; --j >= 0;) {
|
|
|
|
for (int j = gd.num_on_x_axis, i = 0; --j >= 0;) {
|
|
|
|
gd.cost[numd][i] = (j >= p->num_valid_stat_ent) ? INVALID_DATAPOINT : p->old_economy[j].performance_history;
|
|
|
|
gd.cost[numd][i] = (j >= p->num_valid_stat_ent) ? INVALID_DATAPOINT : p->old_economy[j].performance_history;
|
|
|
|
i++;
|
|
|
|
i++;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -604,10 +596,8 @@ static void PerformanceHistoryWndProc(Window *w, WindowEvent *e)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
case WE_CLICK:
|
|
|
|
case WE_CLICK:
|
|
|
|
if (e->we.click.widget == 2)
|
|
|
|
if (e->we.click.widget == 2) ShowGraphLegend();
|
|
|
|
ShowGraphLegend();
|
|
|
|
if (e->we.click.widget == 3) ShowPerformanceRatingDetail();
|
|
|
|
if (e->we.click.widget == 3)
|
|
|
|
|
|
|
|
ShowPerformanceRatingDetail();
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -646,8 +636,6 @@ static void CompanyValueGraphWndProc(Window *w, WindowEvent *e)
|
|
|
|
case WE_PAINT: {
|
|
|
|
case WE_PAINT: {
|
|
|
|
GraphDrawer gd;
|
|
|
|
GraphDrawer gd;
|
|
|
|
const Player* p;
|
|
|
|
const Player* p;
|
|
|
|
int i,j;
|
|
|
|
|
|
|
|
int numd;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DrawWindowWidgets(w);
|
|
|
|
DrawWindowWidgets(w);
|
|
|
|
|
|
|
|
|
|
|
@ -658,11 +646,11 @@ static void CompanyValueGraphWndProc(Window *w, WindowEvent *e)
|
|
|
|
gd.format_str_y_axis = STR_CURRCOMPACT;
|
|
|
|
gd.format_str_y_axis = STR_CURRCOMPACT;
|
|
|
|
SetupGraphDrawerForPlayers(&gd);
|
|
|
|
SetupGraphDrawerForPlayers(&gd);
|
|
|
|
|
|
|
|
|
|
|
|
numd = 0;
|
|
|
|
int numd = 0;
|
|
|
|
FOR_ALL_PLAYERS(p) {
|
|
|
|
FOR_ALL_PLAYERS(p) {
|
|
|
|
if (p->is_active) {
|
|
|
|
if (p->is_active) {
|
|
|
|
gd.colors[numd] = _colour_gradient[p->player_color][6];
|
|
|
|
gd.colors[numd] = _colour_gradient[p->player_color][6];
|
|
|
|
for (j = gd.num_on_x_axis, i = 0; --j >= 0;) {
|
|
|
|
for (int j = gd.num_on_x_axis, i = 0; --j >= 0;) {
|
|
|
|
gd.cost[numd][i] = (j >= p->num_valid_stat_ent) ? INVALID_DATAPOINT : p->old_economy[j].company_value;
|
|
|
|
gd.cost[numd][i] = (j >= p->num_valid_stat_ent) ? INVALID_DATAPOINT : p->old_economy[j].company_value;
|
|
|
|
i++;
|
|
|
|
i++;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -677,8 +665,7 @@ static void CompanyValueGraphWndProc(Window *w, WindowEvent *e)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
case WE_CLICK:
|
|
|
|
case WE_CLICK:
|
|
|
|
if (e->we.click.widget == 2)
|
|
|
|
if (e->we.click.widget == 2) ShowGraphLegend();
|
|
|
|
ShowGraphLegend();
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -714,14 +701,12 @@ static void CargoPaymentRatesWndProc(Window *w, WindowEvent *e)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
switch (e->event) {
|
|
|
|
switch (e->event) {
|
|
|
|
case WE_PAINT: {
|
|
|
|
case WE_PAINT: {
|
|
|
|
int j, x, y;
|
|
|
|
|
|
|
|
uint i = 0;
|
|
|
|
|
|
|
|
GraphDrawer gd;
|
|
|
|
GraphDrawer gd;
|
|
|
|
|
|
|
|
|
|
|
|
DrawWindowWidgets(w);
|
|
|
|
DrawWindowWidgets(w);
|
|
|
|
|
|
|
|
|
|
|
|
x = 495;
|
|
|
|
int x = 495;
|
|
|
|
y = 24;
|
|
|
|
int y = 24;
|
|
|
|
|
|
|
|
|
|
|
|
gd.excluded_data = _legend_excluded_cargo;
|
|
|
|
gd.excluded_data = _legend_excluded_cargo;
|
|
|
|
gd.left = 2;
|
|
|
|
gd.left = 2;
|
|
|
@ -735,6 +720,7 @@ static void CargoPaymentRatesWndProc(Window *w, WindowEvent *e)
|
|
|
|
gd.x_values_start = 10;
|
|
|
|
gd.x_values_start = 10;
|
|
|
|
gd.x_values_increment = 10;
|
|
|
|
gd.x_values_increment = 10;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
uint i = 0;
|
|
|
|
for (CargoID c = 0; c != NUM_CARGO; c++) {
|
|
|
|
for (CargoID c = 0; c != NUM_CARGO; c++) {
|
|
|
|
const CargoSpec *cs = GetCargo(c);
|
|
|
|
const CargoSpec *cs = GetCargo(c);
|
|
|
|
if (!cs->IsValid()) continue;
|
|
|
|
if (!cs->IsValid()) continue;
|
|
|
@ -757,7 +743,7 @@ static void CargoPaymentRatesWndProc(Window *w, WindowEvent *e)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
gd.colors[i] = cs->legend_colour;
|
|
|
|
gd.colors[i] = cs->legend_colour;
|
|
|
|
for (j = 0; j != 20; j++) {
|
|
|
|
for (uint j = 0; j != 20; j++) {
|
|
|
|
gd.cost[i][j] = GetTransportedGoodsIncome(10, 20, j * 6 + 6, c);
|
|
|
|
gd.cost[i][j] = GetTransportedGoodsIncome(10, 20, j * 6 + 6, c);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -769,15 +755,16 @@ static void CargoPaymentRatesWndProc(Window *w, WindowEvent *e)
|
|
|
|
|
|
|
|
|
|
|
|
DrawString(2 + 46, 24 + gd.height + 7, STR_7062_DAYS_IN_TRANSIT, 0);
|
|
|
|
DrawString(2 + 46, 24 + gd.height + 7, STR_7062_DAYS_IN_TRANSIT, 0);
|
|
|
|
DrawString(2 + 84, 24 - 9, STR_7063_PAYMENT_FOR_DELIVERING, 0);
|
|
|
|
DrawString(2 + 84, 24 - 9, STR_7063_PAYMENT_FOR_DELIVERING, 0);
|
|
|
|
} break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
case WE_CLICK: {
|
|
|
|
case WE_CLICK:
|
|
|
|
if (e->we.click.widget >= 3 && e->we.click.widget < (int)w->widget_count) {
|
|
|
|
if (e->we.click.widget >= 3) {
|
|
|
|
TOGGLEBIT(_legend_excluded_cargo, e->we.click.widget - 3);
|
|
|
|
TOGGLEBIT(_legend_excluded_cargo, e->we.click.widget - 3);
|
|
|
|
ToggleWidgetLoweredState(w, e->we.click.widget);
|
|
|
|
ToggleWidgetLoweredState(w, e->we.click.widget);
|
|
|
|
SetWindowDirty(w);
|
|
|
|
SetWindowDirty(w);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -876,17 +863,15 @@ static void CompanyLeagueWndProc(Window *w, WindowEvent *e)
|
|
|
|
case WE_PAINT: {
|
|
|
|
case WE_PAINT: {
|
|
|
|
const Player* plist[MAX_PLAYERS];
|
|
|
|
const Player* plist[MAX_PLAYERS];
|
|
|
|
const Player* p;
|
|
|
|
const Player* p;
|
|
|
|
uint pl_num;
|
|
|
|
|
|
|
|
uint i;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DrawWindowWidgets(w);
|
|
|
|
DrawWindowWidgets(w);
|
|
|
|
|
|
|
|
|
|
|
|
pl_num = 0;
|
|
|
|
uint pl_num = 0;
|
|
|
|
FOR_ALL_PLAYERS(p) if (p->is_active) plist[pl_num++] = p;
|
|
|
|
FOR_ALL_PLAYERS(p) if (p->is_active) plist[pl_num++] = p;
|
|
|
|
|
|
|
|
|
|
|
|
qsort((void*)plist, pl_num, sizeof(*plist), PerfHistComp);
|
|
|
|
qsort((void*)plist, pl_num, sizeof(*plist), PerfHistComp);
|
|
|
|
|
|
|
|
|
|
|
|
for (i = 0; i != pl_num; i++) {
|
|
|
|
for (uint i = 0; i != pl_num; i++) {
|
|
|
|
p = plist[i];
|
|
|
|
p = plist[i];
|
|
|
|
SetDParam(0, i + STR_01AC_1ST);
|
|
|
|
SetDParam(0, i + STR_01AC_1ST);
|
|
|
|
SetDParam(1, p->name_1);
|
|
|
|
SetDParam(1, p->name_1);
|
|
|
@ -1083,11 +1068,10 @@ static void PerformanceRatingDetailWndProc(Window *w, WindowEvent *e)
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
case WE_CREATE: {
|
|
|
|
case WE_CREATE: {
|
|
|
|
PlayerID i;
|
|
|
|
|
|
|
|
Player *p2;
|
|
|
|
Player *p2;
|
|
|
|
|
|
|
|
|
|
|
|
/* Disable the players who are not active */
|
|
|
|
/* Disable the players who are not active */
|
|
|
|
for (i = PLAYER_FIRST; i < MAX_PLAYERS; i++) {
|
|
|
|
for (PlayerID i = PLAYER_FIRST; i < MAX_PLAYERS; i++) {
|
|
|
|
SetWindowWidgetDisabledState(w, i + 13, !GetPlayer(i)->is_active);
|
|
|
|
SetWindowWidgetDisabledState(w, i + 13, !GetPlayer(i)->is_active);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/* Update all player stats with the current data
|
|
|
|
/* Update all player stats with the current data
|
|
|
@ -1105,7 +1089,7 @@ static void PerformanceRatingDetailWndProc(Window *w, WindowEvent *e)
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
case WE_TICK: {
|
|
|
|
case WE_TICK:
|
|
|
|
/* Update the player score every 5 days */
|
|
|
|
/* Update the player score every 5 days */
|
|
|
|
if (--w->custom[0] == 0) {
|
|
|
|
if (--w->custom[0] == 0) {
|
|
|
|
w->custom[0] = DAY_TICKS;
|
|
|
|
w->custom[0] = DAY_TICKS;
|
|
|
@ -1123,7 +1107,6 @@ static void PerformanceRatingDetailWndProc(Window *w, WindowEvent *e)
|
|
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static const Widget _performance_rating_detail_widgets[] = {
|
|
|
|
static const Widget _performance_rating_detail_widgets[] = {
|
|
|
|