annotate src/graph_gui.cpp @ 7954:38bb7c45688f draft

(svn r11510) -Codechange: merge the IS_*INSIDE* functions and rename them fitting to the naming style
author skidd13 <skidd13@openttd.org>
date Sat, 24 Nov 2007 10:38:43 +0000
parents 712f252f0d4d
children d109780d515b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1 /* $Id$ */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
3 /** @file graph_gui.cpp */
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
4
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
5 #include "stdafx.h"
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
6 #include "openttd.h"
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
7 #include "table/strings.h"
7266
550b96f71f7f (svn r10587) -Codechange: move the string/dparam related stuff from variables.h to strings.h
rubidium <rubidium@openttd.org>
parents: 7058
diff changeset
8 #include "strings.h"
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
9 #include "table/sprites.h"
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
10 #include "functions.h"
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
11 #include "window.h"
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
12 #include "gui.h"
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
13 #include "gfx.h"
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
14 #include "player.h"
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
15 #include "economy.h"
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
16 #include "variables.h"
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
17 #include "date.h"
5587
c44c070c5032 (svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium <rubidium@openttd.org>
parents: 5584
diff changeset
18 #include "helpers.hpp"
6091
17ebeb5a2c37 (svn r8826) -Codechange: Replace _cargoc's separate arrays with a regular struct array (with accessor) and implement new initialization method using cargo labels.
peter1138 <peter1138@openttd.org>
parents: 5946
diff changeset
19 #include "cargotype.h"
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
20
5806
4f5e2ea123e8 (svn r8368) -Cleanup: [Graphs] Rename the variables relating to whether datasets should be drawn, and use HASBIT for testing against them.
maedhros <maedhros@openttd.org>
parents: 5805
diff changeset
21 /* Bitmasks of player and cargo indices that shouldn't be drawn. */
4f5e2ea123e8 (svn r8368) -Cleanup: [Graphs] Rename the variables relating to whether datasets should be drawn, and use HASBIT for testing against them.
maedhros <maedhros@openttd.org>
parents: 5805
diff changeset
22 static uint _legend_excluded_players;
4f5e2ea123e8 (svn r8368) -Cleanup: [Graphs] Rename the variables relating to whether datasets should be drawn, and use HASBIT for testing against them.
maedhros <maedhros@openttd.org>
parents: 5805
diff changeset
23 static uint _legend_excluded_cargo;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
24
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
25 /************************/
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
26 /* GENERIC GRAPH DRAWER */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
27 /************************/
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
28
5768
cb58a39476fd (svn r8319) -Codechange: Remove the remaining colours from GraphDrawer as they're also the same everywhere.
maedhros <maedhros@openttd.org>
parents: 5766
diff changeset
29 enum {
6463
0315af802158 (svn r9638) -Feature: Increase cargo types from 12 to 32 and enable newcargo flag in NewGRF loader.
peter1138 <peter1138@openttd.org>
parents: 6372
diff changeset
30 GRAPH_MAX_DATASETS = 32,
7824
7ae5bda4e8dd (svn r11374) -Codechange: Give meaning to the magical number that specifies the color of the text in a DrawString call.
belugas <belugas@openttd.org>
parents: 7763
diff changeset
31 GRAPH_AXIS_LABEL_COLOUR = TC_BLACK,
5768
cb58a39476fd (svn r8319) -Codechange: Remove the remaining colours from GraphDrawer as they're also the same everywhere.
maedhros <maedhros@openttd.org>
parents: 5766
diff changeset
32 GRAPH_AXIS_LINE_COLOUR = 215,
5776
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
33
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
34 GRAPH_X_POSITION_BEGINNING = 44, ///< Start the graph 44 pixels from gw->left
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
35 GRAPH_X_POSITION_SEPARATION = 22, ///< There are 22 pixels between each X value
5776
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
36
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
37 GRAPH_NUM_LINES_Y = 9, ///< How many horizontal lines to draw.
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
38 /* 9 is convenient as that means the distance between them is the height of the graph / 8,
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
39 * which is the same
5776
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
40 * as height >> 3. */
5768
cb58a39476fd (svn r8319) -Codechange: Remove the remaining colours from GraphDrawer as they're also the same everywhere.
maedhros <maedhros@openttd.org>
parents: 5766
diff changeset
41 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
42
5805
b7c3a94ff74e (svn r8367) -Fix: [Graphs] Don't try to use the same value to mean something is invalid for both an int64 and a uint.
maedhros <maedhros@openttd.org>
parents: 5804
diff changeset
43 /* Apparently these don't play well with enums. */
7763
b66a3cb83e69 (svn r11312) -Codechange: implement a overflow safe integer and use that for money and don't misuses CommandCost to have a overflow safe integer. Based on a patch by Noldo.
rubidium <rubidium@openttd.org>
parents: 7520
diff changeset
44 static const OverflowSafeInt64 INVALID_DATAPOINT = INT64_MAX; // Value used for a datapoint that shouldn't be drawn.
b66a3cb83e69 (svn r11312) -Codechange: implement a overflow safe integer and use that for money and don't misuses CommandCost to have a overflow safe integer. Based on a patch by Noldo.
rubidium <rubidium@openttd.org>
parents: 7520
diff changeset
45 static const uint INVALID_DATAPOINT_POS = UINT_MAX; // Used to determine if the previous point was drawn.
5805
b7c3a94ff74e (svn r8367) -Fix: [Graphs] Don't try to use the same value to mean something is invalid for both an int64 and a uint.
maedhros <maedhros@openttd.org>
parents: 5804
diff changeset
46
6248
0789677a15a0 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents: 6247
diff changeset
47 struct GraphDrawer {
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
48 uint excluded_data; ///< bitmask of the datasets that shouldn't be displayed.
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
49 byte num_dataset;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
50 byte num_on_x_axis;
5807
1fc48d5f47d5 (svn r8369) -Cleanup: [Graphs] Rename include_neg and adj_height to more descriptive names, and add some more comments.
maedhros <maedhros@openttd.org>
parents: 5806
diff changeset
51 bool has_negative_values;
5771
ee8916154ac7 (svn r8322) -Codechange: Rename unk61A and unk61C to something a little more descriptive.
maedhros <maedhros@openttd.org>
parents: 5768
diff changeset
52 byte num_vert_lines;
ee8916154ac7 (svn r8322) -Codechange: Rename unk61A and unk61C to something a little more descriptive.
maedhros <maedhros@openttd.org>
parents: 5768
diff changeset
53
ee8916154ac7 (svn r8322) -Codechange: Rename unk61A and unk61C to something a little more descriptive.
maedhros <maedhros@openttd.org>
parents: 5768
diff changeset
54 /* The starting month and year that values are plotted against. If month is
ee8916154ac7 (svn r8322) -Codechange: Rename unk61A and unk61C to something a little more descriptive.
maedhros <maedhros@openttd.org>
parents: 5768
diff changeset
55 * 0xFF, use x_values_start and x_values_increment below instead. */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
56 byte month;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
57 Year year;
5771
ee8916154ac7 (svn r8322) -Codechange: Rename unk61A and unk61C to something a little more descriptive.
maedhros <maedhros@openttd.org>
parents: 5768
diff changeset
58
ee8916154ac7 (svn r8322) -Codechange: Rename unk61A and unk61C to something a little more descriptive.
maedhros <maedhros@openttd.org>
parents: 5768
diff changeset
59 /* These values are used if the graph is being plotted against values
ee8916154ac7 (svn r8322) -Codechange: Rename unk61A and unk61C to something a little more descriptive.
maedhros <maedhros@openttd.org>
parents: 5768
diff changeset
60 * rather than the dates specified by month and year. */
ee8916154ac7 (svn r8322) -Codechange: Rename unk61A and unk61C to something a little more descriptive.
maedhros <maedhros@openttd.org>
parents: 5768
diff changeset
61 uint16 x_values_start;
ee8916154ac7 (svn r8322) -Codechange: Rename unk61A and unk61C to something a little more descriptive.
maedhros <maedhros@openttd.org>
parents: 5768
diff changeset
62 uint16 x_values_increment;
ee8916154ac7 (svn r8322) -Codechange: Rename unk61A and unk61C to something a little more descriptive.
maedhros <maedhros@openttd.org>
parents: 5768
diff changeset
63
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
64 int left, top; ///< Where to start drawing the graph, in pixels.
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
65 uint height; ///< The height of the graph in pixels.
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
66 StringID format_str_y_axis;
5768
cb58a39476fd (svn r8319) -Codechange: Remove the remaining colours from GraphDrawer as they're also the same everywhere.
maedhros <maedhros@openttd.org>
parents: 5766
diff changeset
67 byte colors[GRAPH_MAX_DATASETS];
6991
68c101a3230f (svn r10247) -Fix (r10210): *always* call SetDParamMoney when you want to place money in some string.
rubidium <rubidium@openttd.org>
parents: 6491
diff changeset
68 Money cost[GRAPH_MAX_DATASETS][24]; ///< last 2 years
6248
0789677a15a0 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents: 6247
diff changeset
69 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
70
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
71 static void DrawGraph(const GraphDrawer *gw)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
72 {
7763
b66a3cb83e69 (svn r11312) -Codechange: implement a overflow safe integer and use that for money and don't misuses CommandCost to have a overflow safe integer. Based on a patch by Noldo.
rubidium <rubidium@openttd.org>
parents: 7520
diff changeset
73 uint x, y; ///< Reused whenever x and y coordinates are needed.
b66a3cb83e69 (svn r11312) -Codechange: implement a overflow safe integer and use that for money and don't misuses CommandCost to have a overflow safe integer. Based on a patch by Noldo.
rubidium <rubidium@openttd.org>
parents: 7520
diff changeset
74 OverflowSafeInt64 highest_value; ///< Highest value to be drawn.
b66a3cb83e69 (svn r11312) -Codechange: implement a overflow safe integer and use that for money and don't misuses CommandCost to have a overflow safe integer. Based on a patch by Noldo.
rubidium <rubidium@openttd.org>
parents: 7520
diff changeset
75 int x_axis_offset; ///< Distance from the top of the graph to the x axis.
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
76
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
77 /* the colors and cost array of GraphDrawer must accomodate
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
78 * both values for cargo and players. So if any are higher, quit */
5768
cb58a39476fd (svn r8319) -Codechange: Remove the remaining colours from GraphDrawer as they're also the same everywhere.
maedhros <maedhros@openttd.org>
parents: 5766
diff changeset
79 assert(GRAPH_MAX_DATASETS >= (int)NUM_CARGO && GRAPH_MAX_DATASETS >= (int)MAX_PLAYERS);
5776
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
80 assert(gw->num_vert_lines > 0);
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
81
5766
9c7c1e291514 (svn r8317) -Codechange: Remove GraphDrawer::bg_line_color since it was the same everywhere it was set.
maedhros <maedhros@openttd.org>
parents: 5761
diff changeset
82 byte grid_colour = _colour_gradient[14][4];
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
83
5807
1fc48d5f47d5 (svn r8369) -Cleanup: [Graphs] Rename include_neg and adj_height to more descriptive names, and add some more comments.
maedhros <maedhros@openttd.org>
parents: 5806
diff changeset
84 /* The coordinates of the opposite edges of the graph. */
5776
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
85 int bottom = gw->top + gw->height - 1;
5807
1fc48d5f47d5 (svn r8369) -Cleanup: [Graphs] Rename include_neg and adj_height to more descriptive names, and add some more comments.
maedhros <maedhros@openttd.org>
parents: 5806
diff changeset
86 int right = gw->left + GRAPH_X_POSITION_BEGINNING + gw->num_vert_lines * GRAPH_X_POSITION_SEPARATION - 1;
5776
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
87
5807
1fc48d5f47d5 (svn r8369) -Cleanup: [Graphs] Rename include_neg and adj_height to more descriptive names, and add some more comments.
maedhros <maedhros@openttd.org>
parents: 5806
diff changeset
88 /* Draw the vertical grid lines. */
5776
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
89
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
90 /* Don't draw the first line, as that's where the axis will be. */
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
91 x = gw->left + GRAPH_X_POSITION_BEGINNING + GRAPH_X_POSITION_SEPARATION;
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
92
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
93 for (int i = 0; i < gw->num_vert_lines; i++) {
5766
9c7c1e291514 (svn r8317) -Codechange: Remove GraphDrawer::bg_line_color since it was the same everywhere it was set.
maedhros <maedhros@openttd.org>
parents: 5761
diff changeset
94 GfxFillRect(x, gw->top, x, bottom, grid_colour);
5776
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
95 x += GRAPH_X_POSITION_SEPARATION;
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
96 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
97
5807
1fc48d5f47d5 (svn r8369) -Cleanup: [Graphs] Rename include_neg and adj_height to more descriptive names, and add some more comments.
maedhros <maedhros@openttd.org>
parents: 5806
diff changeset
98 /* Draw the horizontal grid lines. */
5776
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
99 x = gw->left + GRAPH_X_POSITION_BEGINNING;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
100 y = gw->height + gw->top;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
101
5776
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
102 for (int i = 0; i < GRAPH_NUM_LINES_Y; i++) {
5766
9c7c1e291514 (svn r8317) -Codechange: Remove GraphDrawer::bg_line_color since it was the same everywhere it was set.
maedhros <maedhros@openttd.org>
parents: 5761
diff changeset
103 GfxFillRect(x, y, right, y, grid_colour);
5776
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
104 y -= (gw->height / (GRAPH_NUM_LINES_Y - 1));
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
105 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
106
5807
1fc48d5f47d5 (svn r8369) -Cleanup: [Graphs] Rename include_neg and adj_height to more descriptive names, and add some more comments.
maedhros <maedhros@openttd.org>
parents: 5806
diff changeset
107 /* Draw the y axis. */
5768
cb58a39476fd (svn r8319) -Codechange: Remove the remaining colours from GraphDrawer as they're also the same everywhere.
maedhros <maedhros@openttd.org>
parents: 5766
diff changeset
108 GfxFillRect(x, gw->top, x, bottom, GRAPH_AXIS_LINE_COLOUR);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
109
5807
1fc48d5f47d5 (svn r8369) -Cleanup: [Graphs] Rename include_neg and adj_height to more descriptive names, and add some more comments.
maedhros <maedhros@openttd.org>
parents: 5806
diff changeset
110 /* Find the distance from the top of the graph to the x axis. */
1fc48d5f47d5 (svn r8369) -Cleanup: [Graphs] Rename include_neg and adj_height to more descriptive names, and add some more comments.
maedhros <maedhros@openttd.org>
parents: 5806
diff changeset
111 x_axis_offset = gw->height;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
112
5807
1fc48d5f47d5 (svn r8369) -Cleanup: [Graphs] Rename include_neg and adj_height to more descriptive names, and add some more comments.
maedhros <maedhros@openttd.org>
parents: 5806
diff changeset
113 /* The graph is currently symmetrical about the x axis. */
1fc48d5f47d5 (svn r8369) -Cleanup: [Graphs] Rename include_neg and adj_height to more descriptive names, and add some more comments.
maedhros <maedhros@openttd.org>
parents: 5806
diff changeset
114 if (gw->has_negative_values) x_axis_offset /= 2;
1fc48d5f47d5 (svn r8369) -Cleanup: [Graphs] Rename include_neg and adj_height to more descriptive names, and add some more comments.
maedhros <maedhros@openttd.org>
parents: 5806
diff changeset
115
1fc48d5f47d5 (svn r8369) -Cleanup: [Graphs] Rename include_neg and adj_height to more descriptive names, and add some more comments.
maedhros <maedhros@openttd.org>
parents: 5806
diff changeset
116 /* Draw the x axis. */
1fc48d5f47d5 (svn r8369) -Cleanup: [Graphs] Rename include_neg and adj_height to more descriptive names, and add some more comments.
maedhros <maedhros@openttd.org>
parents: 5806
diff changeset
117 y = x_axis_offset + gw->top;
5768
cb58a39476fd (svn r8319) -Codechange: Remove the remaining colours from GraphDrawer as they're also the same everywhere.
maedhros <maedhros@openttd.org>
parents: 5766
diff changeset
118 GfxFillRect(x, y, right, y, GRAPH_AXIS_LINE_COLOUR);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
119
5807
1fc48d5f47d5 (svn r8369) -Cleanup: [Graphs] Rename include_neg and adj_height to more descriptive names, and add some more comments.
maedhros <maedhros@openttd.org>
parents: 5806
diff changeset
120 /* Find the largest value that will be drawn. */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
121 if (gw->num_on_x_axis == 0)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
122 return;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
123
5776
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
124 assert(gw->num_on_x_axis > 0);
5778
f4886921514f (svn r8330) -Codechange: Remove num_x and num_dataset from DrawGraph.
maedhros <maedhros@openttd.org>
parents: 5777
diff changeset
125 assert(gw->num_dataset > 0);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
126
5804
07c4b670fcda (svn r8366) -Codechange: [Graphs] Make the scaling code less cryptic, and fix two longstanding bugs.
maedhros <maedhros@openttd.org>
parents: 5796
diff changeset
127 /* Start of with a value of twice the height of the graph in pixels. It's a
07c4b670fcda (svn r8366) -Codechange: [Graphs] Make the scaling code less cryptic, and fix two longstanding bugs.
maedhros <maedhros@openttd.org>
parents: 5796
diff changeset
128 * bit arbitrary, but it makes the cargo payment graph look a little nicer,
07c4b670fcda (svn r8366) -Codechange: [Graphs] Make the scaling code less cryptic, and fix two longstanding bugs.
maedhros <maedhros@openttd.org>
parents: 5796
diff changeset
129 * and prevents division by zero when calculating where the datapoint
07c4b670fcda (svn r8366) -Codechange: [Graphs] Make the scaling code less cryptic, and fix two longstanding bugs.
maedhros <maedhros@openttd.org>
parents: 5796
diff changeset
130 * should be drawn. */
5807
1fc48d5f47d5 (svn r8369) -Cleanup: [Graphs] Rename include_neg and adj_height to more descriptive names, and add some more comments.
maedhros <maedhros@openttd.org>
parents: 5806
diff changeset
131 highest_value = x_axis_offset * 2;
5796
54b69ef4b352 (svn r8356) -Codechange: [Graphs] Rename mx to highest_value, and fix the scaling for negative values.
maedhros <maedhros@openttd.org>
parents: 5793
diff changeset
132
5778
f4886921514f (svn r8330) -Codechange: Remove num_x and num_dataset from DrawGraph.
maedhros <maedhros@openttd.org>
parents: 5777
diff changeset
133 for (int i = 0; i < gw->num_dataset; i++) {
7928
4e8dfd103163 (svn r11481) -Codechange: Rename the HASBIT function to fit with the naming style
skidd13 <skidd13@openttd.org>
parents: 7923
diff changeset
134 if (!HasBit(gw->excluded_data, i)) {
5791
4fd992bac142 (svn r8347) -Codechange: [Graphs] Make some more variables local to the loops they're used in, and remove some assumptions about the size of an array.
maedhros <maedhros@openttd.org>
parents: 5778
diff changeset
135 for (int j = 0; j < gw->num_on_x_axis; j++) {
6991
68c101a3230f (svn r10247) -Fix (r10210): *always* call SetDParamMoney when you want to place money in some string.
rubidium <rubidium@openttd.org>
parents: 6491
diff changeset
136 Money datapoint = gw->cost[i][j];
5791
4fd992bac142 (svn r8347) -Codechange: [Graphs] Make some more variables local to the loops they're used in, and remove some assumptions about the size of an array.
maedhros <maedhros@openttd.org>
parents: 5778
diff changeset
137
5805
b7c3a94ff74e (svn r8367) -Fix: [Graphs] Don't try to use the same value to mean something is invalid for both an int64 and a uint.
maedhros <maedhros@openttd.org>
parents: 5804
diff changeset
138 if (datapoint != INVALID_DATAPOINT) {
5796
54b69ef4b352 (svn r8356) -Codechange: [Graphs] Rename mx to highest_value, and fix the scaling for negative values.
maedhros <maedhros@openttd.org>
parents: 5793
diff changeset
139 /* For now, if the graph has negative values the scaling is
54b69ef4b352 (svn r8356) -Codechange: [Graphs] Rename mx to highest_value, and fix the scaling for negative values.
maedhros <maedhros@openttd.org>
parents: 5793
diff changeset
140 * symmetrical about the x axis, so take the absolute value
54b69ef4b352 (svn r8356) -Codechange: [Graphs] Rename mx to highest_value, and fix the scaling for negative values.
maedhros <maedhros@openttd.org>
parents: 5793
diff changeset
141 * of each data point. */
7923
504d4b2ecc6c (svn r11476) -Codechange: rename the function myabs to abs to get rid of an unneeded define
skidd13 <skidd13@openttd.org>
parents: 7922
diff changeset
142 highest_value = max(highest_value, abs(datapoint));
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
143 }
5778
f4886921514f (svn r8330) -Codechange: Remove num_x and num_dataset from DrawGraph.
maedhros <maedhros@openttd.org>
parents: 5777
diff changeset
144 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
145 }
5778
f4886921514f (svn r8330) -Codechange: Remove num_x and num_dataset from DrawGraph.
maedhros <maedhros@openttd.org>
parents: 5777
diff changeset
146 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
147
5804
07c4b670fcda (svn r8366) -Codechange: [Graphs] Make the scaling code less cryptic, and fix two longstanding bugs.
maedhros <maedhros@openttd.org>
parents: 5796
diff changeset
148 /* Round up highest_value so that it will divide cleanly into the number of
07c4b670fcda (svn r8366) -Codechange: [Graphs] Make the scaling code less cryptic, and fix two longstanding bugs.
maedhros <maedhros@openttd.org>
parents: 5796
diff changeset
149 * axis labels used. */
07c4b670fcda (svn r8366) -Codechange: [Graphs] Make the scaling code less cryptic, and fix two longstanding bugs.
maedhros <maedhros@openttd.org>
parents: 5796
diff changeset
150 int round_val = highest_value % (GRAPH_NUM_LINES_Y - 1);
07c4b670fcda (svn r8366) -Codechange: [Graphs] Make the scaling code less cryptic, and fix two longstanding bugs.
maedhros <maedhros@openttd.org>
parents: 5796
diff changeset
151 if (round_val != 0) highest_value += (GRAPH_NUM_LINES_Y - 1 - round_val);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
152
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
153 /* draw text strings on the y axis */
5804
07c4b670fcda (svn r8366) -Codechange: [Graphs] Make the scaling code less cryptic, and fix two longstanding bugs.
maedhros <maedhros@openttd.org>
parents: 5796
diff changeset
154 int64 y_label = highest_value;
07c4b670fcda (svn r8366) -Codechange: [Graphs] Make the scaling code less cryptic, and fix two longstanding bugs.
maedhros <maedhros@openttd.org>
parents: 5796
diff changeset
155 int64 y_label_separation = highest_value / (GRAPH_NUM_LINES_Y - 1);
07c4b670fcda (svn r8366) -Codechange: [Graphs] Make the scaling code less cryptic, and fix two longstanding bugs.
maedhros <maedhros@openttd.org>
parents: 5796
diff changeset
156
07c4b670fcda (svn r8366) -Codechange: [Graphs] Make the scaling code less cryptic, and fix two longstanding bugs.
maedhros <maedhros@openttd.org>
parents: 5796
diff changeset
157 /* If there are negative values, the graph goes from highest_value to
07c4b670fcda (svn r8366) -Codechange: [Graphs] Make the scaling code less cryptic, and fix two longstanding bugs.
maedhros <maedhros@openttd.org>
parents: 5796
diff changeset
158 * -highest_value, not highest_value to 0. */
5807
1fc48d5f47d5 (svn r8369) -Cleanup: [Graphs] Rename include_neg and adj_height to more descriptive names, and add some more comments.
maedhros <maedhros@openttd.org>
parents: 5806
diff changeset
159 if (gw->has_negative_values) y_label_separation *= 2;
5804
07c4b670fcda (svn r8366) -Codechange: [Graphs] Make the scaling code less cryptic, and fix two longstanding bugs.
maedhros <maedhros@openttd.org>
parents: 5796
diff changeset
160
5776
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
161 x = gw->left + GRAPH_X_POSITION_BEGINNING + 1;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
162 y = gw->top - 3;
5776
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
163
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
164 for (int i = 0; i < GRAPH_NUM_LINES_Y; i++) {
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
165 SetDParam(0, gw->format_str_y_axis);
7002
fa75522e0249 (svn r10258) -Codechange: as we are now using int64 all over the place, it's better to use int64 variables in the string generating too instead of packing them into two int32s.
rubidium <rubidium@openttd.org>
parents: 6991
diff changeset
166 SetDParam(1, y_label);
5768
cb58a39476fd (svn r8319) -Codechange: Remove the remaining colours from GraphDrawer as they're also the same everywhere.
maedhros <maedhros@openttd.org>
parents: 5766
diff changeset
167 DrawStringRightAligned(x, y, STR_0170, GRAPH_AXIS_LABEL_COLOUR);
5804
07c4b670fcda (svn r8366) -Codechange: [Graphs] Make the scaling code less cryptic, and fix two longstanding bugs.
maedhros <maedhros@openttd.org>
parents: 5796
diff changeset
168
07c4b670fcda (svn r8366) -Codechange: [Graphs] Make the scaling code less cryptic, and fix two longstanding bugs.
maedhros <maedhros@openttd.org>
parents: 5796
diff changeset
169 y_label -= y_label_separation;
5776
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
170 y += (gw->height / (GRAPH_NUM_LINES_Y - 1));
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
171 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
172
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
173 /* draw strings on the x axis */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
174 if (gw->month != 0xFF) {
5776
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
175 x = gw->left + GRAPH_X_POSITION_BEGINNING;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
176 y = gw->top + gw->height + 1;
5777
d889b4c8d326 (svn r8329) -Codechange: Remove the the horribly abused j and k variables completely, and make i local to each loop it's used in.
maedhros <maedhros@openttd.org>
parents: 5776
diff changeset
177 byte month = gw->month;
d889b4c8d326 (svn r8329) -Codechange: Remove the the horribly abused j and k variables completely, and make i local to each loop it's used in.
maedhros <maedhros@openttd.org>
parents: 5776
diff changeset
178 Year year = gw->year;
d889b4c8d326 (svn r8329) -Codechange: Remove the the horribly abused j and k variables completely, and make i local to each loop it's used in.
maedhros <maedhros@openttd.org>
parents: 5776
diff changeset
179 for (int i = 0; i < gw->num_on_x_axis; i++) {
d889b4c8d326 (svn r8329) -Codechange: Remove the the horribly abused j and k variables completely, and make i local to each loop it's used in.
maedhros <maedhros@openttd.org>
parents: 5776
diff changeset
180 SetDParam(0, month + STR_0162_JAN);
d889b4c8d326 (svn r8329) -Codechange: Remove the the horribly abused j and k variables completely, and make i local to each loop it's used in.
maedhros <maedhros@openttd.org>
parents: 5776
diff changeset
181 SetDParam(1, month + STR_0162_JAN + 2);
d889b4c8d326 (svn r8329) -Codechange: Remove the the horribly abused j and k variables completely, and make i local to each loop it's used in.
maedhros <maedhros@openttd.org>
parents: 5776
diff changeset
182 SetDParam(2, year);
d889b4c8d326 (svn r8329) -Codechange: Remove the the horribly abused j and k variables completely, and make i local to each loop it's used in.
maedhros <maedhros@openttd.org>
parents: 5776
diff changeset
183 DrawString(x, y, month == 0 ? STR_016F : STR_016E, GRAPH_AXIS_LABEL_COLOUR);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
184
5777
d889b4c8d326 (svn r8329) -Codechange: Remove the the horribly abused j and k variables completely, and make i local to each loop it's used in.
maedhros <maedhros@openttd.org>
parents: 5776
diff changeset
185 month += 3;
d889b4c8d326 (svn r8329) -Codechange: Remove the the horribly abused j and k variables completely, and make i local to each loop it's used in.
maedhros <maedhros@openttd.org>
parents: 5776
diff changeset
186 if (month >= 12) {
d889b4c8d326 (svn r8329) -Codechange: Remove the the horribly abused j and k variables completely, and make i local to each loop it's used in.
maedhros <maedhros@openttd.org>
parents: 5776
diff changeset
187 month = 0;
d889b4c8d326 (svn r8329) -Codechange: Remove the the horribly abused j and k variables completely, and make i local to each loop it's used in.
maedhros <maedhros@openttd.org>
parents: 5776
diff changeset
188 year++;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
189 }
5776
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
190 x += GRAPH_X_POSITION_SEPARATION;
5777
d889b4c8d326 (svn r8329) -Codechange: Remove the the horribly abused j and k variables completely, and make i local to each loop it's used in.
maedhros <maedhros@openttd.org>
parents: 5776
diff changeset
191 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
192 } else {
5793
50846c721bda (svn r8350) -Codechange: [Graphs] Use DrawStringCentered instead of a hardcoded offset to make the string appear centred.
maedhros <maedhros@openttd.org>
parents: 5791
diff changeset
193 /* Draw the label under the data point rather than on the grid line. */
50846c721bda (svn r8350) -Codechange: [Graphs] Use DrawStringCentered instead of a hardcoded offset to make the string appear centred.
maedhros <maedhros@openttd.org>
parents: 5791
diff changeset
194 x = gw->left + GRAPH_X_POSITION_BEGINNING + (GRAPH_X_POSITION_SEPARATION / 2) + 1;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
195 y = gw->top + gw->height + 1;
5771
ee8916154ac7 (svn r8322) -Codechange: Rename unk61A and unk61C to something a little more descriptive.
maedhros <maedhros@openttd.org>
parents: 5768
diff changeset
196 uint16 label = gw->x_values_start;
ee8916154ac7 (svn r8322) -Codechange: Rename unk61A and unk61C to something a little more descriptive.
maedhros <maedhros@openttd.org>
parents: 5768
diff changeset
197
ee8916154ac7 (svn r8322) -Codechange: Rename unk61A and unk61C to something a little more descriptive.
maedhros <maedhros@openttd.org>
parents: 5768
diff changeset
198 for (int i = 0; i < gw->num_on_x_axis; i++) {
ee8916154ac7 (svn r8322) -Codechange: Rename unk61A and unk61C to something a little more descriptive.
maedhros <maedhros@openttd.org>
parents: 5768
diff changeset
199 SetDParam(0, label);
5793
50846c721bda (svn r8350) -Codechange: [Graphs] Use DrawStringCentered instead of a hardcoded offset to make the string appear centred.
maedhros <maedhros@openttd.org>
parents: 5791
diff changeset
200 DrawStringCentered(x, y, STR_01CB, GRAPH_AXIS_LABEL_COLOUR);
50846c721bda (svn r8350) -Codechange: [Graphs] Use DrawStringCentered instead of a hardcoded offset to make the string appear centred.
maedhros <maedhros@openttd.org>
parents: 5791
diff changeset
201
5771
ee8916154ac7 (svn r8322) -Codechange: Rename unk61A and unk61C to something a little more descriptive.
maedhros <maedhros@openttd.org>
parents: 5768
diff changeset
202 label += gw->x_values_increment;
5776
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
203 x += GRAPH_X_POSITION_SEPARATION;
5771
ee8916154ac7 (svn r8322) -Codechange: Rename unk61A and unk61C to something a little more descriptive.
maedhros <maedhros@openttd.org>
parents: 5768
diff changeset
204 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
205 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
206
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
207 /* draw lines and dots */
5777
d889b4c8d326 (svn r8329) -Codechange: Remove the the horribly abused j and k variables completely, and make i local to each loop it's used in.
maedhros <maedhros@openttd.org>
parents: 5776
diff changeset
208 for (int i = 0; i < gw->num_dataset; i++) {
7928
4e8dfd103163 (svn r11481) -Codechange: Rename the HASBIT function to fit with the naming style
skidd13 <skidd13@openttd.org>
parents: 7923
diff changeset
209 if (!HasBit(gw->excluded_data, i)) {
5776
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
210 /* Centre the dot between the grid lines. */
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
211 x = gw->left + GRAPH_X_POSITION_BEGINNING + (GRAPH_X_POSITION_SEPARATION / 2);
5791
4fd992bac142 (svn r8347) -Codechange: [Graphs] Make some more variables local to the loops they're used in, and remove some assumptions about the size of an array.
maedhros <maedhros@openttd.org>
parents: 5778
diff changeset
212
5805
b7c3a94ff74e (svn r8367) -Fix: [Graphs] Don't try to use the same value to mean something is invalid for both an int64 and a uint.
maedhros <maedhros@openttd.org>
parents: 5804
diff changeset
213 byte color = gw->colors[i];
b7c3a94ff74e (svn r8367) -Fix: [Graphs] Don't try to use the same value to mean something is invalid for both an int64 and a uint.
maedhros <maedhros@openttd.org>
parents: 5804
diff changeset
214 uint prev_x = INVALID_DATAPOINT_POS;
b7c3a94ff74e (svn r8367) -Fix: [Graphs] Don't try to use the same value to mean something is invalid for both an int64 and a uint.
maedhros <maedhros@openttd.org>
parents: 5804
diff changeset
215 uint prev_y = INVALID_DATAPOINT_POS;
5776
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
216
5791
4fd992bac142 (svn r8347) -Codechange: [Graphs] Make some more variables local to the loops they're used in, and remove some assumptions about the size of an array.
maedhros <maedhros@openttd.org>
parents: 5778
diff changeset
217 for (int j = 0; j < gw->num_on_x_axis; j++) {
6991
68c101a3230f (svn r10247) -Fix (r10210): *always* call SetDParamMoney when you want to place money in some string.
rubidium <rubidium@openttd.org>
parents: 6491
diff changeset
218 Money datapoint = gw->cost[i][j];
5791
4fd992bac142 (svn r8347) -Codechange: [Graphs] Make some more variables local to the loops they're used in, and remove some assumptions about the size of an array.
maedhros <maedhros@openttd.org>
parents: 5778
diff changeset
219
5805
b7c3a94ff74e (svn r8367) -Fix: [Graphs] Don't try to use the same value to mean something is invalid for both an int64 and a uint.
maedhros <maedhros@openttd.org>
parents: 5804
diff changeset
220 if (datapoint != INVALID_DATAPOINT) {
5807
1fc48d5f47d5 (svn r8369) -Cleanup: [Graphs] Rename include_neg and adj_height to more descriptive names, and add some more comments.
maedhros <maedhros@openttd.org>
parents: 5806
diff changeset
221 /* XXX: This can overflow if x_axis_offset * datapoint is
1fc48d5f47d5 (svn r8369) -Cleanup: [Graphs] Rename include_neg and adj_height to more descriptive names, and add some more comments.
maedhros <maedhros@openttd.org>
parents: 5806
diff changeset
222 * too big to fit in an int64. */
1fc48d5f47d5 (svn r8369) -Cleanup: [Graphs] Rename include_neg and adj_height to more descriptive names, and add some more comments.
maedhros <maedhros@openttd.org>
parents: 5806
diff changeset
223 y = gw->top + x_axis_offset - (x_axis_offset * datapoint) / highest_value;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
224
5805
b7c3a94ff74e (svn r8367) -Fix: [Graphs] Don't try to use the same value to mean something is invalid for both an int64 and a uint.
maedhros <maedhros@openttd.org>
parents: 5804
diff changeset
225 /* Draw the point. */
6491
696f0e1b046e (svn r9672) -Cleanup: lots of coding style fixes around operands.
rubidium <rubidium@openttd.org>
parents: 6463
diff changeset
226 GfxFillRect(x - 1, y - 1, x + 1, y + 1, color);
5805
b7c3a94ff74e (svn r8367) -Fix: [Graphs] Don't try to use the same value to mean something is invalid for both an int64 and a uint.
maedhros <maedhros@openttd.org>
parents: 5804
diff changeset
227
b7c3a94ff74e (svn r8367) -Fix: [Graphs] Don't try to use the same value to mean something is invalid for both an int64 and a uint.
maedhros <maedhros@openttd.org>
parents: 5804
diff changeset
228 /* Draw the line connected to the previous point. */
b7c3a94ff74e (svn r8367) -Fix: [Graphs] Don't try to use the same value to mean something is invalid for both an int64 and a uint.
maedhros <maedhros@openttd.org>
parents: 5804
diff changeset
229 if (prev_x != INVALID_DATAPOINT_POS) GfxDrawLine(prev_x, prev_y, x, y, color);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
230
5805
b7c3a94ff74e (svn r8367) -Fix: [Graphs] Don't try to use the same value to mean something is invalid for both an int64 and a uint.
maedhros <maedhros@openttd.org>
parents: 5804
diff changeset
231 prev_x = x;
b7c3a94ff74e (svn r8367) -Fix: [Graphs] Don't try to use the same value to mean something is invalid for both an int64 and a uint.
maedhros <maedhros@openttd.org>
parents: 5804
diff changeset
232 prev_y = y;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
233 } else {
5805
b7c3a94ff74e (svn r8367) -Fix: [Graphs] Don't try to use the same value to mean something is invalid for both an int64 and a uint.
maedhros <maedhros@openttd.org>
parents: 5804
diff changeset
234 prev_x = INVALID_DATAPOINT_POS;
b7c3a94ff74e (svn r8367) -Fix: [Graphs] Don't try to use the same value to mean something is invalid for both an int64 and a uint.
maedhros <maedhros@openttd.org>
parents: 5804
diff changeset
235 prev_y = INVALID_DATAPOINT_POS;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
236 }
5805
b7c3a94ff74e (svn r8367) -Fix: [Graphs] Don't try to use the same value to mean something is invalid for both an int64 and a uint.
maedhros <maedhros@openttd.org>
parents: 5804
diff changeset
237
5776
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
238 x += GRAPH_X_POSITION_SEPARATION;
b820f9df1f2d (svn r8328) -Codechange: Remove some magic numbers in the graph drawing code.
maedhros <maedhros@openttd.org>
parents: 5771
diff changeset
239 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
240 }
5777
d889b4c8d326 (svn r8329) -Codechange: Remove the the horribly abused j and k variables completely, and make i local to each loop it's used in.
maedhros <maedhros@openttd.org>
parents: 5776
diff changeset
241 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
242 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
243
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
244 /****************/
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
245 /* GRAPH LEGEND */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
246 /****************/
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
247
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
248 static void GraphLegendWndProc(Window *w, WindowEvent *e)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
249 {
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
250 switch (e->event) {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
251 case WE_CREATE:
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
252 for (uint i = 3; i < w->widget_count; i++) {
7928
4e8dfd103163 (svn r11481) -Codechange: Rename the HASBIT function to fit with the naming style
skidd13 <skidd13@openttd.org>
parents: 7923
diff changeset
253 if (!HasBit(_legend_excluded_players, i - 3)) LowerWindowWidget(w, i);
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
254 }
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
255 break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
256
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
257 case WE_PAINT: {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
258 const Player *p;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
259
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
260 FOR_ALL_PLAYERS(p) {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
261 if (p->is_active) continue;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
262
7931
44ff7a6d801f (svn r11484) -Codechange: Remove the doubled function SetBitT and rename the remaining to fit with the naming style
skidd13 <skidd13@openttd.org>
parents: 7928
diff changeset
263 SetBit(_legend_excluded_players, p->index);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
264 RaiseWindowWidget(w, p->index + 3);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
265 }
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
266
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
267 DrawWindowWidgets(w);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
268
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
269 FOR_ALL_PLAYERS(p) {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
270 if (!p->is_active) continue;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
271
6491
696f0e1b046e (svn r9672) -Cleanup: lots of coding style fixes around operands.
rubidium <rubidium@openttd.org>
parents: 6463
diff changeset
272 DrawPlayerIcon(p->index, 4, 18 + p->index * 12);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
273
7058
74d401c66902 (svn r10323) -Codechange: reference company name, number and player (president) name
peter1138 <peter1138@openttd.org>
parents: 7002
diff changeset
274 SetDParam(0, p->index);
74d401c66902 (svn r10323) -Codechange: reference company name, number and player (president) name
peter1138 <peter1138@openttd.org>
parents: 7002
diff changeset
275 SetDParam(1, p->index);
7928
4e8dfd103163 (svn r11481) -Codechange: Rename the HASBIT function to fit with the naming style
skidd13 <skidd13@openttd.org>
parents: 7923
diff changeset
276 DrawString(21, 17 + p->index * 12, STR_7021, HasBit(_legend_excluded_players, p->index) ? TC_BLACK : TC_WHITE);
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
277 }
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
278 break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
279 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
280
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
281 case WE_CLICK:
7954
38bb7c45688f (svn r11510) -Codechange: merge the IS_*INSIDE* functions and rename them fitting to the naming style
skidd13 <skidd13@openttd.org>
parents: 7932
diff changeset
282 if (!IsInsideMM(e->we.click.widget, 3, 11)) return;
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
283
7932
712f252f0d4d (svn r11485) -Codechange: Remove the doubled function ToggleBitT and rename the remaining to fit with the naming style
skidd13 <skidd13@openttd.org>
parents: 7931
diff changeset
284 ToggleBit(_legend_excluded_players, e->we.click.widget - 3);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
285 ToggleWidgetLoweredState(w, e->we.click.widget);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
286 SetWindowDirty(w);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
287 InvalidateWindow(WC_INCOME_GRAPH, 0);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
288 InvalidateWindow(WC_OPERATING_PROFIT, 0);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
289 InvalidateWindow(WC_DELIVERED_CARGO, 0);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
290 InvalidateWindow(WC_PERFORMANCE_HISTORY, 0);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
291 InvalidateWindow(WC_COMPANY_VALUE, 0);
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
292 break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
293 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
294 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
295
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
296 static const Widget _graph_legend_widgets[] = {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
297 { WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
298 { WWT_CAPTION, RESIZE_NONE, 14, 11, 249, 0, 13, STR_704E_KEY_TO_COMPANY_GRAPHS, STR_018C_WINDOW_TITLE_DRAG_THIS},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
299 { WWT_PANEL, RESIZE_NONE, 14, 0, 249, 14, 113, 0x0, STR_NULL},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
300 { WWT_PANEL, RESIZE_NONE, 14, 2, 247, 16, 27, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
301 { WWT_PANEL, RESIZE_NONE, 14, 2, 247, 28, 39, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
302 { WWT_PANEL, RESIZE_NONE, 14, 2, 247, 40, 51, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
303 { WWT_PANEL, RESIZE_NONE, 14, 2, 247, 52, 63, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
304 { WWT_PANEL, RESIZE_NONE, 14, 2, 247, 64, 75, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
305 { WWT_PANEL, RESIZE_NONE, 14, 2, 247, 76, 87, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
306 { WWT_PANEL, RESIZE_NONE, 14, 2, 247, 88, 99, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
307 { WWT_PANEL, RESIZE_NONE, 14, 2, 247, 100, 111, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
308 { WIDGETS_END},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
309 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
310
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
311 static const WindowDesc _graph_legend_desc = {
7341
549c757023fc (svn r10704) -Codechange: provide an infrastructure to have resizable windows that are smaller than the default window size.
rubidium <rubidium@openttd.org>
parents: 7266
diff changeset
312 WDP_AUTO, WDP_AUTO, 250, 114, 250, 114,
5893
8547517ef719 (svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents: 5812
diff changeset
313 WC_GRAPH_LEGEND, WC_NONE,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
314 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
315 _graph_legend_widgets,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
316 GraphLegendWndProc
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
317 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
318
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6203
diff changeset
319 static void ShowGraphLegend()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
320 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
321 AllocateWindowDescFront(&_graph_legend_desc, 0);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
322 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
323
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
324 /********************/
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
325 /* OPERATING PROFIT */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
326 /********************/
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
327
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
328 static void SetupGraphDrawerForPlayers(GraphDrawer *gd)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
329 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
330 const Player* p;
5806
4f5e2ea123e8 (svn r8368) -Cleanup: [Graphs] Rename the variables relating to whether datasets should be drawn, and use HASBIT for testing against them.
maedhros <maedhros@openttd.org>
parents: 5805
diff changeset
331 uint excluded_players = _legend_excluded_players;
5601
ca6b459bf488 (svn r8055) -Codechange: Replace the different max, dmax, maxu whatever macros by a simple template function max(), that requires two arguments of the same type. While I'm at it change a variable called "max" to "maxval" in a function that calls max().
celestar <celestar@openttd.org>
parents: 5587
diff changeset
332 byte nums;
6491
696f0e1b046e (svn r9672) -Cleanup: lots of coding style fixes around operands.
rubidium <rubidium@openttd.org>
parents: 6463
diff changeset
333 int mo, yr;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
334
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
335 /* Exclude the players which aren't valid */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
336 FOR_ALL_PLAYERS(p) {
7931
44ff7a6d801f (svn r11484) -Codechange: Remove the doubled function SetBitT and rename the remaining to fit with the naming style
skidd13 <skidd13@openttd.org>
parents: 7928
diff changeset
337 if (!p->is_active) SetBit(excluded_players, p->index);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
338 }
5806
4f5e2ea123e8 (svn r8368) -Cleanup: [Graphs] Rename the variables relating to whether datasets should be drawn, and use HASBIT for testing against them.
maedhros <maedhros@openttd.org>
parents: 5805
diff changeset
339 gd->excluded_data = excluded_players;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
340 gd->num_vert_lines = 24;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
341
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
342 nums = 0;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
343 FOR_ALL_PLAYERS(p) {
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
344 if (p->is_active) nums = max(nums, p->num_valid_stat_ent);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
345 }
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
346 gd->num_on_x_axis = min(nums, 24);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
347
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
348 mo = (_cur_month / 3 - nums) * 3;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
349 yr = _cur_year;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
350 while (mo < 0) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
351 yr--;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
352 mo += 12;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
353 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
354
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
355 gd->year = yr;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
356 gd->month = mo;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
357 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
358
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
359 static void OperatingProfitWndProc(Window *w, WindowEvent *e)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
360 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
361 switch (e->event) {
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
362 case WE_PAINT: {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
363 GraphDrawer gd;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
364 const Player* p;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
365
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
366 DrawWindowWidgets(w);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
367
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
368 gd.left = 2;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
369 gd.top = 18;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
370 gd.height = 136;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
371 gd.has_negative_values = true;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
372 gd.format_str_y_axis = STR_CURRCOMPACT;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
373
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
374 SetupGraphDrawerForPlayers(&gd);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
375
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
376 int numd = 0;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
377 FOR_ALL_PLAYERS(p) {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
378 if (p->is_active) {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
379 gd.colors[numd] = _colour_gradient[p->player_color][6];
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
380 for (int j = gd.num_on_x_axis, i = 0; --j >= 0;) {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
381 gd.cost[numd][i] = (j >= p->num_valid_stat_ent) ? INVALID_DATAPOINT : (p->old_economy[j].income + p->old_economy[j].expenses);
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
382 i++;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
383 }
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
384 }
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
385 numd++;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
386 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
387
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
388 gd.num_dataset = numd;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
389
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
390 DrawGraph(&gd);
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
391 break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
392 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
393
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
394 case WE_CLICK:
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
395 /* Clicked on legend? */
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
396 if (e->we.click.widget == 2) ShowGraphLegend();
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
397 break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
398 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
399 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
400
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
401 static const Widget _operating_profit_widgets[] = {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
402 { WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
403 { WWT_CAPTION, RESIZE_NONE, 14, 11, 525, 0, 13, STR_7025_OPERATING_PROFIT_GRAPH, STR_018C_WINDOW_TITLE_DRAG_THIS},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
404 { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 526, 575, 0, 13, STR_704C_KEY, STR_704D_SHOW_KEY_TO_GRAPHS},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
405 { WWT_PANEL, RESIZE_NONE, 14, 0, 575, 14, 173, 0x0, STR_NULL},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
406 { WIDGETS_END},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
407 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
408
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
409 static const WindowDesc _operating_profit_desc = {
7341
549c757023fc (svn r10704) -Codechange: provide an infrastructure to have resizable windows that are smaller than the default window size.
rubidium <rubidium@openttd.org>
parents: 7266
diff changeset
410 WDP_AUTO, WDP_AUTO, 576, 174, 576, 174,
5893
8547517ef719 (svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents: 5812
diff changeset
411 WC_OPERATING_PROFIT, WC_NONE,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
412 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
413 _operating_profit_widgets,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
414 OperatingProfitWndProc
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
415 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
416
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
417
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6203
diff changeset
418 void ShowOperatingProfitGraph()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
419 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
420 if (AllocateWindowDescFront(&_operating_profit_desc, 0)) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
421 InvalidateWindow(WC_GRAPH_LEGEND, 0);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
422 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
423 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
424
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
425
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
426 /****************/
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
427 /* INCOME GRAPH */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
428 /****************/
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
429
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
430 static void IncomeGraphWndProc(Window *w, WindowEvent *e)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
431 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
432 switch (e->event) {
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
433 case WE_PAINT: {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
434 GraphDrawer gd;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
435 const Player* p;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
436
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
437 DrawWindowWidgets(w);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
438
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
439 gd.left = 2;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
440 gd.top = 18;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
441 gd.height = 104;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
442 gd.has_negative_values = false;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
443 gd.format_str_y_axis = STR_CURRCOMPACT;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
444 SetupGraphDrawerForPlayers(&gd);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
445
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
446 int numd = 0;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
447 FOR_ALL_PLAYERS(p) {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
448 if (p->is_active) {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
449 gd.colors[numd] = _colour_gradient[p->player_color][6];
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
450 for (int j = gd.num_on_x_axis, i = 0; --j >= 0;) {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
451 gd.cost[numd][i] = (j >= p->num_valid_stat_ent) ? INVALID_DATAPOINT : p->old_economy[j].income;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
452 i++;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
453 }
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
454 }
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
455 numd++;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
456 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
457
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
458 gd.num_dataset = numd;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
459
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
460 DrawGraph(&gd);
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
461 break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
462 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
463
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
464 case WE_CLICK:
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
465 if (e->we.click.widget == 2) ShowGraphLegend();
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
466 break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
467 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
468 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
469
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
470 static const Widget _income_graph_widgets[] = {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
471 { WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
472 { WWT_CAPTION, RESIZE_NONE, 14, 11, 525, 0, 13, STR_7022_INCOME_GRAPH, STR_018C_WINDOW_TITLE_DRAG_THIS},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
473 { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 526, 575, 0, 13, STR_704C_KEY, STR_704D_SHOW_KEY_TO_GRAPHS},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
474 { WWT_PANEL, RESIZE_NONE, 14, 0, 575, 14, 141, 0x0, STR_NULL},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
475 { WIDGETS_END},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
476 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
477
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
478 static const WindowDesc _income_graph_desc = {
7341
549c757023fc (svn r10704) -Codechange: provide an infrastructure to have resizable windows that are smaller than the default window size.
rubidium <rubidium@openttd.org>
parents: 7266
diff changeset
479 WDP_AUTO, WDP_AUTO, 576, 142, 576, 142,
5893
8547517ef719 (svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents: 5812
diff changeset
480 WC_INCOME_GRAPH, WC_NONE,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
481 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
482 _income_graph_widgets,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
483 IncomeGraphWndProc
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
484 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
485
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6203
diff changeset
486 void ShowIncomeGraph()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
487 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
488 if (AllocateWindowDescFront(&_income_graph_desc, 0)) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
489 InvalidateWindow(WC_GRAPH_LEGEND, 0);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
490 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
491 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
492
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
493 /*******************/
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
494 /* DELIVERED CARGO */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
495 /*******************/
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
496
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
497 static void DeliveredCargoGraphWndProc(Window *w, WindowEvent *e)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
498 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
499 switch (e->event) {
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
500 case WE_PAINT: {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
501 GraphDrawer gd;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
502 const Player* p;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
503
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
504 DrawWindowWidgets(w);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
505
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
506 gd.left = 2;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
507 gd.top = 18;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
508 gd.height = 104;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
509 gd.has_negative_values = false;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
510 gd.format_str_y_axis = STR_7024;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
511 SetupGraphDrawerForPlayers(&gd);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
512
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
513 int numd = 0;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
514 FOR_ALL_PLAYERS(p) {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
515 if (p->is_active) {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
516 gd.colors[numd] = _colour_gradient[p->player_color][6];
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
517 for (int j = gd.num_on_x_axis, i = 0; --j >= 0;) {
7763
b66a3cb83e69 (svn r11312) -Codechange: implement a overflow safe integer and use that for money and don't misuses CommandCost to have a overflow safe integer. Based on a patch by Noldo.
rubidium <rubidium@openttd.org>
parents: 7520
diff changeset
518 gd.cost[numd][i] = (j >= p->num_valid_stat_ent) ? INVALID_DATAPOINT : (OverflowSafeInt64)p->old_economy[j].delivered_cargo;
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
519 i++;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
520 }
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
521 }
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
522 numd++;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
523 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
524
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
525 gd.num_dataset = numd;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
526
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
527 DrawGraph(&gd);
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
528 break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
529 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
530
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
531 case WE_CLICK:
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
532 if (e->we.click.widget == 2) ShowGraphLegend();
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
533 break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
534 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
535 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
536
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
537 static const Widget _delivered_cargo_graph_widgets[] = {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
538 { WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
539 { WWT_CAPTION, RESIZE_NONE, 14, 11, 525, 0, 13, STR_7050_UNITS_OF_CARGO_DELIVERED, STR_018C_WINDOW_TITLE_DRAG_THIS},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
540 { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 526, 575, 0, 13, STR_704C_KEY, STR_704D_SHOW_KEY_TO_GRAPHS},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
541 { WWT_PANEL, RESIZE_NONE, 14, 0, 575, 14, 141, 0x0, STR_NULL},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
542 { WIDGETS_END},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
543 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
544
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
545 static const WindowDesc _delivered_cargo_graph_desc = {
7341
549c757023fc (svn r10704) -Codechange: provide an infrastructure to have resizable windows that are smaller than the default window size.
rubidium <rubidium@openttd.org>
parents: 7266
diff changeset
546 WDP_AUTO, WDP_AUTO, 576, 142, 576, 142,
5893
8547517ef719 (svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents: 5812
diff changeset
547 WC_DELIVERED_CARGO, WC_NONE,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
548 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
549 _delivered_cargo_graph_widgets,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
550 DeliveredCargoGraphWndProc
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
551 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
552
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6203
diff changeset
553 void ShowDeliveredCargoGraph()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
554 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
555 if (AllocateWindowDescFront(&_delivered_cargo_graph_desc, 0)) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
556 InvalidateWindow(WC_GRAPH_LEGEND, 0);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
557 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
558 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
559
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
560 /***********************/
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
561 /* PERFORMANCE HISTORY */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
562 /***********************/
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
563
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
564 static void PerformanceHistoryWndProc(Window *w, WindowEvent *e)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
565 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
566 switch (e->event) {
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
567 case WE_PAINT: {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
568 GraphDrawer gd;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
569 const Player* p;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
570
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
571 DrawWindowWidgets(w);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
572
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
573 gd.left = 2;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
574 gd.top = 18;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
575 gd.height = 200;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
576 gd.has_negative_values = false;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
577 gd.format_str_y_axis = STR_7024;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
578 SetupGraphDrawerForPlayers(&gd);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
579
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
580 int numd = 0;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
581 FOR_ALL_PLAYERS(p) {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
582 if (p->is_active) {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
583 gd.colors[numd] = _colour_gradient[p->player_color][6];
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
584 for (int j = gd.num_on_x_axis, i = 0; --j >= 0;) {
7763
b66a3cb83e69 (svn r11312) -Codechange: implement a overflow safe integer and use that for money and don't misuses CommandCost to have a overflow safe integer. Based on a patch by Noldo.
rubidium <rubidium@openttd.org>
parents: 7520
diff changeset
585 gd.cost[numd][i] = (j >= p->num_valid_stat_ent) ? INVALID_DATAPOINT : (OverflowSafeInt64)p->old_economy[j].performance_history;
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
586 i++;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
587 }
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
588 }
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
589 numd++;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
590 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
591
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
592 gd.num_dataset = numd;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
593
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
594 DrawGraph(&gd);
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
595 break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
596 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
597
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
598 case WE_CLICK:
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
599 if (e->we.click.widget == 2) ShowGraphLegend();
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
600 if (e->we.click.widget == 3) ShowPerformanceRatingDetail();
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
601 break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
602 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
603 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
604
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
605 static const Widget _performance_history_widgets[] = {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
606 { WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
607 { WWT_CAPTION, RESIZE_NONE, 14, 11, 475, 0, 13, STR_7051_COMPANY_PERFORMANCE_RATINGS, STR_018C_WINDOW_TITLE_DRAG_THIS},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
608 { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 526, 575, 0, 13, STR_704C_KEY, STR_704D_SHOW_KEY_TO_GRAPHS},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
609 { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 476, 525, 0, 13, STR_PERFORMANCE_DETAIL_KEY, STR_704D_SHOW_KEY_TO_GRAPHS},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
610 { WWT_PANEL, RESIZE_NONE, 14, 0, 575, 14, 237, 0x0, STR_NULL},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
611 { WIDGETS_END},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
612 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
613
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
614 static const WindowDesc _performance_history_desc = {
7341
549c757023fc (svn r10704) -Codechange: provide an infrastructure to have resizable windows that are smaller than the default window size.
rubidium <rubidium@openttd.org>
parents: 7266
diff changeset
615 WDP_AUTO, WDP_AUTO, 576, 238, 576, 238,
5893
8547517ef719 (svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents: 5812
diff changeset
616 WC_PERFORMANCE_HISTORY, WC_NONE,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
617 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
618 _performance_history_widgets,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
619 PerformanceHistoryWndProc
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
620 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
621
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6203
diff changeset
622 void ShowPerformanceHistoryGraph()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
623 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
624 if (AllocateWindowDescFront(&_performance_history_desc, 0)) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
625 InvalidateWindow(WC_GRAPH_LEGEND, 0);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
626 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
627 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
628
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
629 /*****************/
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
630 /* COMPANY VALUE */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
631 /*****************/
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
632
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
633 static void CompanyValueGraphWndProc(Window *w, WindowEvent *e)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
634 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
635 switch (e->event) {
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
636 case WE_PAINT: {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
637 GraphDrawer gd;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
638 const Player* p;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
639
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
640 DrawWindowWidgets(w);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
641
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
642 gd.left = 2;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
643 gd.top = 18;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
644 gd.height = 200;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
645 gd.has_negative_values = false;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
646 gd.format_str_y_axis = STR_CURRCOMPACT;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
647 SetupGraphDrawerForPlayers(&gd);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
648
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
649 int numd = 0;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
650 FOR_ALL_PLAYERS(p) {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
651 if (p->is_active) {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
652 gd.colors[numd] = _colour_gradient[p->player_color][6];
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
653 for (int j = gd.num_on_x_axis, i = 0; --j >= 0;) {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
654 gd.cost[numd][i] = (j >= p->num_valid_stat_ent) ? INVALID_DATAPOINT : p->old_economy[j].company_value;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
655 i++;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
656 }
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
657 }
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
658 numd++;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
659 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
660
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
661 gd.num_dataset = numd;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
662
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
663 DrawGraph(&gd);
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
664 break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
665 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
666
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
667 case WE_CLICK:
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
668 if (e->we.click.widget == 2) ShowGraphLegend();
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
669 break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
670 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
671 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
672
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
673 static const Widget _company_value_graph_widgets[] = {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
674 { WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
675 { WWT_CAPTION, RESIZE_NONE, 14, 11, 525, 0, 13, STR_7052_COMPANY_VALUES, STR_018C_WINDOW_TITLE_DRAG_THIS},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
676 { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 526, 575, 0, 13, STR_704C_KEY, STR_704D_SHOW_KEY_TO_GRAPHS},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
677 { WWT_PANEL, RESIZE_NONE, 14, 0, 575, 14, 237, 0x0, STR_NULL},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
678 { WIDGETS_END},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
679 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
680
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
681 static const WindowDesc _company_value_graph_desc = {
7341
549c757023fc (svn r10704) -Codechange: provide an infrastructure to have resizable windows that are smaller than the default window size.
rubidium <rubidium@openttd.org>
parents: 7266
diff changeset
682 WDP_AUTO, WDP_AUTO, 576, 238, 576, 238,
5893
8547517ef719 (svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents: 5812
diff changeset
683 WC_COMPANY_VALUE, WC_NONE,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
684 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
685 _company_value_graph_widgets,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
686 CompanyValueGraphWndProc
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
687 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
688
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6203
diff changeset
689 void ShowCompanyValueGraph()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
690 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
691 if (AllocateWindowDescFront(&_company_value_graph_desc, 0)) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
692 InvalidateWindow(WC_GRAPH_LEGEND, 0);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
693 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
694 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
695
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
696 /*****************/
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
697 /* PAYMENT RATES */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
698 /*****************/
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
699
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
700 static void CargoPaymentRatesWndProc(Window *w, WindowEvent *e)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
701 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
702 switch (e->event) {
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
703 case WE_PAINT: {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
704 GraphDrawer gd;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
705
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
706 DrawWindowWidgets(w);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
707
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
708 int x = 495;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
709 int y = 24;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
710
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
711 gd.excluded_data = _legend_excluded_cargo;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
712 gd.left = 2;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
713 gd.top = 24;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
714 gd.height = w->height - 38;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
715 gd.has_negative_values = false;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
716 gd.format_str_y_axis = STR_CURRCOMPACT;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
717 gd.num_on_x_axis = 20;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
718 gd.num_vert_lines = 20;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
719 gd.month = 0xFF;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
720 gd.x_values_start = 10;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
721 gd.x_values_increment = 10;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
722
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
723 uint i = 0;
6350
8132258640be (svn r9388) -Codechange: variable scope and type, and standardify all CargoID loops.
peter1138 <peter1138@openttd.org>
parents: 6270
diff changeset
724 for (CargoID c = 0; c < NUM_CARGO; c++) {
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
725 const CargoSpec *cs = GetCargo(c);
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
726 if (!cs->IsValid()) continue;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
727
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
728 /* Only draw labels for widgets that exist. If the widget doesn't
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
729 * exist then the local player has used the climate cheat or
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
730 * changed the NewGRF configuration with this window open. */
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
731 if (i + 3 < w->widget_count) {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
732 /* Since the buttons have no text, no images,
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
733 * both the text and the colored box have to be manually painted.
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
734 * clk_dif will move one pixel down and one pixel to the right
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
735 * when the button is clicked */
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
736 byte clk_dif = IsWindowWidgetLowered(w, i + 3) ? 1 : 0;
6192
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
737
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
738 GfxFillRect(x + clk_dif, y + clk_dif, x + 8 + clk_dif, y + 5 + clk_dif, 0);
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
739 GfxFillRect(x + 1 + clk_dif, y + 1 + clk_dif, x + 7 + clk_dif, y + 4 + clk_dif, cs->legend_colour);
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
740 SetDParam(0, cs->name);
7824
7ae5bda4e8dd (svn r11374) -Codechange: Give meaning to the magical number that specifies the color of the text in a DrawString call.
belugas <belugas@openttd.org>
parents: 7763
diff changeset
741 DrawString(x + 14 + clk_dif, y + clk_dif, STR_7065, TC_FROMSTRING);
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
742 y += 8;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
743 }
6192
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
744
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
745 gd.colors[i] = cs->legend_colour;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
746 for (uint j = 0; j != 20; j++) {
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
747 gd.cost[i][j] = GetTransportedGoodsIncome(10, 20, j * 6 + 6, c);
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
748 }
6192
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
749
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
750 i++;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
751 }
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
752 gd.num_dataset = i;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
753
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
754 DrawGraph(&gd);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
755
7824
7ae5bda4e8dd (svn r11374) -Codechange: Give meaning to the magical number that specifies the color of the text in a DrawString call.
belugas <belugas@openttd.org>
parents: 7763
diff changeset
756 DrawString(2 + 46, 24 + gd.height + 7, STR_7062_DAYS_IN_TRANSIT, TC_FROMSTRING);
7ae5bda4e8dd (svn r11374) -Codechange: Give meaning to the magical number that specifies the color of the text in a DrawString call.
belugas <belugas@openttd.org>
parents: 7763
diff changeset
757 DrawString(2 + 84, 24 - 9, STR_7063_PAYMENT_FOR_DELIVERING, TC_FROMSTRING);
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
758 break;
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
759 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
760
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
761 case WE_CLICK:
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
762 if (e->we.click.widget >= 3) {
7932
712f252f0d4d (svn r11485) -Codechange: Remove the doubled function ToggleBitT and rename the remaining to fit with the naming style
skidd13 <skidd13@openttd.org>
parents: 7931
diff changeset
763 ToggleBit(_legend_excluded_cargo, e->we.click.widget - 3);
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
764 ToggleWidgetLoweredState(w, e->we.click.widget);
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
765 SetWindowDirty(w);
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
766 }
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
767 break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
768 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
769 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
770
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
771 static const Widget _cargo_payment_rates_widgets[] = {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
772 { WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
773 { WWT_CAPTION, RESIZE_NONE, 14, 11, 567, 0, 13, STR_7061_CARGO_PAYMENT_RATES, STR_018C_WINDOW_TITLE_DRAG_THIS},
6192
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
774 { WWT_PANEL, RESIZE_BOTTOM, 14, 0, 567, 14, 45, 0x0, STR_NULL},
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
775 { WIDGETS_END},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
776 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
777
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
778 static const WindowDesc _cargo_payment_rates_desc = {
7341
549c757023fc (svn r10704) -Codechange: provide an infrastructure to have resizable windows that are smaller than the default window size.
rubidium <rubidium@openttd.org>
parents: 7266
diff changeset
779 WDP_AUTO, WDP_AUTO, 568, 46, 568, 46,
5893
8547517ef719 (svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents: 5812
diff changeset
780 WC_PAYMENT_RATES, WC_NONE,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
781 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
782 _cargo_payment_rates_widgets,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
783 CargoPaymentRatesWndProc
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
784 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
785
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
786
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6203
diff changeset
787 void ShowCargoPaymentRates()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
788 {
6192
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
789 Window *w = AllocateWindowDescFront(&_cargo_payment_rates_desc, 0);
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
790 if (w == NULL) return;
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
791
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
792 /* Count the number of active cargo types */
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
793 uint num_active = 0;
6350
8132258640be (svn r9388) -Codechange: variable scope and type, and standardify all CargoID loops.
peter1138 <peter1138@openttd.org>
parents: 6270
diff changeset
794 for (CargoID c = 0; c < NUM_CARGO; c++) {
6192
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
795 if (GetCargo(c)->IsValid()) num_active++;
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
796 }
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
797
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
798 /* Resize the window to fit the cargo types */
6372
b530477bd247 (svn r9435) -Fix (r8972): ensure the cargo payment graph is at least 12 "items" high
peter1138 <peter1138@openttd.org>
parents: 6350
diff changeset
799 ResizeWindow(w, 0, max(num_active, 12U) * 8);
6192
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
800
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
801 /* Add widgets for each cargo type */
6270
60de27078397 (svn r9079) -Codechange: add WWT_LAST widget when dynamically building cargo payment graph
peter1138 <peter1138@openttd.org>
parents: 6248
diff changeset
802 w->widget_count += num_active;
60de27078397 (svn r9079) -Codechange: add WWT_LAST widget when dynamically building cargo payment graph
peter1138 <peter1138@openttd.org>
parents: 6248
diff changeset
803 w->widget = ReallocT(w->widget, w->widget_count + 1);
60de27078397 (svn r9079) -Codechange: add WWT_LAST widget when dynamically building cargo payment graph
peter1138 <peter1138@openttd.org>
parents: 6248
diff changeset
804 w->widget[w->widget_count].type = WWT_LAST;
6192
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
805
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
806 /* Set the properties of each widget */
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
807 for (uint i = 0; i != num_active; i++) {
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
808 Widget *wi = &w->widget[3 + i];
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
809 wi->type = WWT_PANEL;
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
810 wi->display_flags = RESIZE_NONE;
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
811 wi->color = 12;
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
812 wi->left = 493;
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
813 wi->right = 562;
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
814 wi->top = 24 + i * 8;
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
815 wi->bottom = wi->top + 7;
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
816 wi->data = 0;
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
817 wi->tooltips = STR_7064_TOGGLE_GRAPH_FOR_CARGO;
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
818
7928
4e8dfd103163 (svn r11481) -Codechange: Rename the HASBIT function to fit with the naming style
skidd13 <skidd13@openttd.org>
parents: 7923
diff changeset
819 if (!HasBit(_legend_excluded_cargo, i)) LowerWindowWidget(w, i + 3);
6192
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
820 }
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
821
44da08e7d3d1 (svn r8972) -Codechange: Dynamically add buttons on the cargo payment graph. This lets us remove the gaps and allow more than 12 cargo types later.
peter1138 <peter1138@openttd.org>
parents: 6179
diff changeset
822 SetWindowDirty(w);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
823 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
824
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
825 /************************/
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
826 /* COMPANY LEAGUE TABLE */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
827 /************************/
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
828
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
829 static const StringID _performance_titles[] = {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
830 STR_7066_ENGINEER,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
831 STR_7066_ENGINEER,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
832 STR_7067_TRAFFIC_MANAGER,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
833 STR_7067_TRAFFIC_MANAGER,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
834 STR_7068_TRANSPORT_COORDINATOR,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
835 STR_7068_TRANSPORT_COORDINATOR,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
836 STR_7069_ROUTE_SUPERVISOR,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
837 STR_7069_ROUTE_SUPERVISOR,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
838 STR_706A_DIRECTOR,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
839 STR_706A_DIRECTOR,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
840 STR_706B_CHIEF_EXECUTIVE,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
841 STR_706B_CHIEF_EXECUTIVE,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
842 STR_706C_CHAIRMAN,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
843 STR_706C_CHAIRMAN,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
844 STR_706D_PRESIDENT,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
845 STR_706E_TYCOON,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
846 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
847
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
848 static inline StringID GetPerformanceTitleFromValue(uint value)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
849 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
850 return _performance_titles[minu(value, 1000) >> 6];
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
851 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
852
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
853 static int CDECL PerfHistComp(const void* elem1, const void* elem2)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
854 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
855 const Player* p1 = *(const Player* const*)elem1;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
856 const Player* p2 = *(const Player* const*)elem2;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
857
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
858 return p2->old_economy[1].performance_history - p1->old_economy[1].performance_history;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
859 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
860
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
861 static void CompanyLeagueWndProc(Window *w, WindowEvent *e)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
862 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
863 switch (e->event) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
864 case WE_PAINT: {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
865 const Player* plist[MAX_PLAYERS];
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
866 const Player* p;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
867
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
868 DrawWindowWidgets(w);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
869
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
870 uint pl_num = 0;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
871 FOR_ALL_PLAYERS(p) if (p->is_active) plist[pl_num++] = p;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
872
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
873 qsort((void*)plist, pl_num, sizeof(*plist), PerfHistComp);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
874
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
875 for (uint i = 0; i != pl_num; i++) {
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
876 p = plist[i];
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
877 SetDParam(0, i + STR_01AC_1ST);
7058
74d401c66902 (svn r10323) -Codechange: reference company name, number and player (president) name
peter1138 <peter1138@openttd.org>
parents: 7002
diff changeset
878 SetDParam(1, p->index);
74d401c66902 (svn r10323) -Codechange: reference company name, number and player (president) name
peter1138 <peter1138@openttd.org>
parents: 7002
diff changeset
879 SetDParam(2, p->index);
74d401c66902 (svn r10323) -Codechange: reference company name, number and player (president) name
peter1138 <peter1138@openttd.org>
parents: 7002
diff changeset
880 SetDParam(3, GetPerformanceTitleFromValue(p->old_economy[1].performance_history));
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
881
7824
7ae5bda4e8dd (svn r11374) -Codechange: Give meaning to the magical number that specifies the color of the text in a DrawString call.
belugas <belugas@openttd.org>
parents: 7763
diff changeset
882 DrawString(2, 15 + i * 10, i == 0 ? STR_7054 : STR_7055, TC_FROMSTRING);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
883 DrawPlayerIcon(p->index, 27, 16 + i * 10);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
884 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
885
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
886 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
887 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
888 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
889 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
890
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
891
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
892 static const Widget _company_league_widgets[] = {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
893 { WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
894 { WWT_CAPTION, RESIZE_NONE, 14, 11, 387, 0, 13, STR_7053_COMPANY_LEAGUE_TABLE, STR_018C_WINDOW_TITLE_DRAG_THIS},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
895 { WWT_STICKYBOX, RESIZE_NONE, 14, 388, 399, 0, 13, STR_NULL, STR_STICKY_BUTTON},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
896 { WWT_PANEL, RESIZE_NONE, 14, 0, 399, 14, 96, 0x0, STR_NULL},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
897 { WIDGETS_END},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
898 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
899
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
900 static const WindowDesc _company_league_desc = {
7341
549c757023fc (svn r10704) -Codechange: provide an infrastructure to have resizable windows that are smaller than the default window size.
rubidium <rubidium@openttd.org>
parents: 7266
diff changeset
901 WDP_AUTO, WDP_AUTO, 400, 97, 400, 97,
5893
8547517ef719 (svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents: 5812
diff changeset
902 WC_COMPANY_LEAGUE, WC_NONE,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
903 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_STICKY_BUTTON,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
904 _company_league_widgets,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
905 CompanyLeagueWndProc
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
906 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
907
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6203
diff changeset
908 void ShowCompanyLeagueTable()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
909 {
6491
696f0e1b046e (svn r9672) -Cleanup: lots of coding style fixes around operands.
rubidium <rubidium@openttd.org>
parents: 6463
diff changeset
910 AllocateWindowDescFront(&_company_league_desc, 0);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
911 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
912
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
913 /*****************************/
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
914 /* PERFORMANCE RATING DETAIL */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
915 /*****************************/
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
916
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
917 static void PerformanceRatingDetailWndProc(Window *w, WindowEvent *e)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
918 {
5946
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
919 static PlayerID _performance_rating_detail_player = INVALID_PLAYER;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
920
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
921 switch (e->event) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
922 case WE_PAINT: {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
923 byte x;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
924 uint16 y = 14;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
925 int total_score = 0;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
926 int color_done, color_notdone;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
927
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
928 /* Draw standard stuff */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
929 DrawWindowWidgets(w);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
930
5946
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
931 /* Check if the currently selected player is still active. */
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
932 if (_performance_rating_detail_player == INVALID_PLAYER || !GetPlayer(_performance_rating_detail_player)->is_active) {
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
933 if (_performance_rating_detail_player != INVALID_PLAYER) {
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
934 /* Raise and disable the widget for the previous selection. */
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
935 RaiseWindowWidget(w, _performance_rating_detail_player + 13);
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
936 DisableWindowWidget(w, _performance_rating_detail_player + 13);
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
937 SetWindowDirty(w);
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
938
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
939 _performance_rating_detail_player = INVALID_PLAYER;
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
940 }
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
941
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
942 for (PlayerID i = PLAYER_FIRST; i < MAX_PLAYERS; i++) {
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
943 if (GetPlayer(i)->is_active) {
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
944 /* Lower the widget corresponding to this player. */
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
945 LowerWindowWidget(w, i + 13);
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
946 SetWindowDirty(w);
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
947
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
948 _performance_rating_detail_player = i;
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
949 break;
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
950 }
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
951 }
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
952 }
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
953
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
954 /* If there are no active players, don't display anything else. */
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
955 if (_performance_rating_detail_player == INVALID_PLAYER) break;
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
956
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
957 /* Paint the player icons */
5587
c44c070c5032 (svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium <rubidium@openttd.org>
parents: 5584
diff changeset
958 for (PlayerID i = PLAYER_FIRST; i < MAX_PLAYERS; i++) {
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
959 if (!GetPlayer(i)->is_active) {
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
960 /* Check if we have the player as an active player */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
961 if (!IsWindowWidgetDisabled(w, i + 13)) {
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
962 /* Bah, player gone :( */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
963 DisableWindowWidget(w, i + 13);
5946
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
964
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
965 /* We need a repaint */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
966 SetWindowDirty(w);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
967 }
5946
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
968 continue;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
969 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
970
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
971 /* Check if we have the player marked as inactive */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
972 if (IsWindowWidgetDisabled(w, i + 13)) {
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
973 /* New player! Yippie :p */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
974 EnableWindowWidget(w, i + 13);
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
975 /* We need a repaint */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
976 SetWindowDirty(w);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
977 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
978
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
979 x = (i == _performance_rating_detail_player) ? 1 : 0;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
980 DrawPlayerIcon(i, i * 37 + 13 + x, 16 + x);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
981 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
982
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
983 /* The colors used to show how the progress is going */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
984 color_done = _colour_gradient[COLOUR_GREEN][4];
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
985 color_notdone = _colour_gradient[COLOUR_RED][4];
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
986
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
987 /* Draw all the score parts */
5587
c44c070c5032 (svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium <rubidium@openttd.org>
parents: 5584
diff changeset
988 for (ScoreID i = SCORE_BEGIN; i < SCORE_END; i++) {
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
989 int val = _score_part[_performance_rating_detail_player][i];
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
990 int needed = _score_info[i].needed;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
991 int score = _score_info[i].score;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
992
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
993 y += 20;
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
994 /* SCORE_TOTAL has his own rulez ;) */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
995 if (i == SCORE_TOTAL) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
996 needed = total_score;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
997 score = SCORE_MAX;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
998 } else {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
999 total_score += score;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1000 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1001
7824
7ae5bda4e8dd (svn r11374) -Codechange: Give meaning to the magical number that specifies the color of the text in a DrawString call.
belugas <belugas@openttd.org>
parents: 7763
diff changeset
1002 DrawString(7, y, STR_PERFORMANCE_DETAIL_VEHICLES + i, TC_FROMSTRING);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1003
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
1004 /* Draw the score */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1005 SetDParam(0, score);
7824
7ae5bda4e8dd (svn r11374) -Codechange: Give meaning to the magical number that specifies the color of the text in a DrawString call.
belugas <belugas@openttd.org>
parents: 7763
diff changeset
1006 DrawStringRightAligned(107, y, SET_PERFORMANCE_DETAIL_INT, TC_FROMSTRING);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1007
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
1008 /* Calculate the %-bar */
7922
ff1975ced735 (svn r11475) -Codechange: rename clamp and clampu to Clamp and ClampU to fit with the coding style
skidd13 <skidd13@openttd.org>
parents: 7824
diff changeset
1009 x = Clamp(val, 0, needed) * 50 / needed;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1010
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
1011 /* SCORE_LOAN is inversed */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1012 if (val < 0 && i == SCORE_LOAN) x = 0;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1013
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
1014 /* Draw the bar */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1015 if (x != 0) GfxFillRect(112, y - 2, 112 + x, y + 10, color_done);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1016 if (x != 50) GfxFillRect(112 + x, y - 2, 112 + 50, y + 10, color_notdone);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1017
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
1018 /* Calculate the % */
7922
ff1975ced735 (svn r11475) -Codechange: rename clamp and clampu to Clamp and ClampU to fit with the coding style
skidd13 <skidd13@openttd.org>
parents: 7824
diff changeset
1019 x = Clamp(val, 0, needed) * 100 / needed;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1020
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
1021 /* SCORE_LOAN is inversed */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1022 if (val < 0 && i == SCORE_LOAN) x = 0;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1023
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
1024 /* Draw it */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1025 SetDParam(0, x);
7824
7ae5bda4e8dd (svn r11374) -Codechange: Give meaning to the magical number that specifies the color of the text in a DrawString call.
belugas <belugas@openttd.org>
parents: 7763
diff changeset
1026 DrawStringCentered(137, y, STR_PERFORMANCE_DETAIL_PERCENT, TC_FROMSTRING);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1027
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
1028 /* SCORE_LOAN is inversed */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1029 if (i == SCORE_LOAN) val = needed - val;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1030
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
1031 /* Draw the amount we have against what is needed
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
1032 * For some of them it is in currency format */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1033 SetDParam(0, val);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1034 SetDParam(1, needed);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1035 switch (i) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1036 case SCORE_MIN_PROFIT:
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1037 case SCORE_MIN_INCOME:
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1038 case SCORE_MAX_INCOME:
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1039 case SCORE_MONEY:
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1040 case SCORE_LOAN:
7824
7ae5bda4e8dd (svn r11374) -Codechange: Give meaning to the magical number that specifies the color of the text in a DrawString call.
belugas <belugas@openttd.org>
parents: 7763
diff changeset
1041 DrawString(167, y, STR_PERFORMANCE_DETAIL_AMOUNT_CURRENCY, TC_FROMSTRING);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1042 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1043 default:
7824
7ae5bda4e8dd (svn r11374) -Codechange: Give meaning to the magical number that specifies the color of the text in a DrawString call.
belugas <belugas@openttd.org>
parents: 7763
diff changeset
1044 DrawString(167, y, STR_PERFORMANCE_DETAIL_AMOUNT_INT, TC_FROMSTRING);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1045 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1046 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1047
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1048 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1049 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1050
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1051 case WE_CLICK:
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
1052 /* Check which button is clicked */
7954
38bb7c45688f (svn r11510) -Codechange: merge the IS_*INSIDE* functions and rename them fitting to the naming style
skidd13 <skidd13@openttd.org>
parents: 7932
diff changeset
1053 if (IsInsideMM(e->we.click.widget, 13, 21)) {
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
1054 /* Is it no on disable? */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1055 if (!IsWindowWidgetDisabled(w, e->we.click.widget)) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1056 RaiseWindowWidget(w, _performance_rating_detail_player + 13);
5587
c44c070c5032 (svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium <rubidium@openttd.org>
parents: 5584
diff changeset
1057 _performance_rating_detail_player = (PlayerID)(e->we.click.widget - 13);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1058 LowerWindowWidget(w, _performance_rating_detail_player + 13);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1059 SetWindowDirty(w);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1060 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1061 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1062 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1063
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1064 case WE_CREATE: {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1065 Player *p2;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1066
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1067 /* Disable the players who are not active */
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
1068 for (PlayerID i = PLAYER_FIRST; i < MAX_PLAYERS; i++) {
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1069 SetWindowWidgetDisabledState(w, i + 13, !GetPlayer(i)->is_active);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1070 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1071 /* Update all player stats with the current data
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1072 * (this is because _score_info is not saved to a savegame) */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1073 FOR_ALL_PLAYERS(p2) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1074 if (p2->is_active) UpdateCompanyRatingAndValue(p2, false);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1075 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1076
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1077 w->custom[0] = DAY_TICKS;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1078 w->custom[1] = 5;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1079
5946
1dc5b0b8fe69 (svn r8612) -Fix (r117) [FS#582]: When the currently selected player in the performance
maedhros <maedhros@openttd.org>
parents: 5893
diff changeset
1080 if (_performance_rating_detail_player != INVALID_PLAYER) LowerWindowWidget(w, _performance_rating_detail_player + 13);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1081 SetWindowDirty(w);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1082
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1083 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1084 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1085
6203
60d5fce9d6b0 (svn r8989) -Fix: more indenting and variable scoping
peter1138 <peter1138@openttd.org>
parents: 6192
diff changeset
1086 case WE_TICK:
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
1087 /* Update the player score every 5 days */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1088 if (--w->custom[0] == 0) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1089 w->custom[0] = DAY_TICKS;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1090 if (--w->custom[1] == 0) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1091 Player *p2;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1092
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1093 w->custom[1] = 5;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1094 FOR_ALL_PLAYERS(p2) {
6179
e3e61b92574b (svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6091
diff changeset
1095 /* Skip if player is not active */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1096 if (p2->is_active) UpdateCompanyRatingAndValue(p2, false);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1097 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1098 SetWindowDirty(w);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1099 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1100 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1101
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1102 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1103 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1104 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1105
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1106 static const Widget _performance_rating_detail_widgets[] = {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1107 { WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1108 { WWT_CAPTION, RESIZE_NONE, 14, 11, 298, 0, 13, STR_PERFORMANCE_DETAIL, STR_018C_WINDOW_TITLE_DRAG_THIS},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1109 { WWT_PANEL, RESIZE_NONE, 14, 0, 298, 14, 27, 0x0, STR_NULL},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1110
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1111 { WWT_PANEL, RESIZE_NONE, 14, 0, 298, 28, 47, 0x0, STR_PERFORMANCE_DETAIL_VEHICLES_TIP},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1112 { WWT_PANEL, RESIZE_NONE, 14, 0, 298, 48, 67, 0x0, STR_PERFORMANCE_DETAIL_STATIONS_TIP},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1113 { WWT_PANEL, RESIZE_NONE, 14, 0, 298, 68, 87, 0x0, STR_PERFORMANCE_DETAIL_MIN_PROFIT_TIP},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1114 { WWT_PANEL, RESIZE_NONE, 14, 0, 298, 88, 107, 0x0, STR_PERFORMANCE_DETAIL_MIN_INCOME_TIP},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1115 { WWT_PANEL, RESIZE_NONE, 14, 0, 298, 108, 127, 0x0, STR_PERFORMANCE_DETAIL_MAX_INCOME_TIP},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1116 { WWT_PANEL, RESIZE_NONE, 14, 0, 298, 128, 147, 0x0, STR_PERFORMANCE_DETAIL_DELIVERED_TIP},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1117 { WWT_PANEL, RESIZE_NONE, 14, 0, 298, 148, 167, 0x0, STR_PERFORMANCE_DETAIL_CARGO_TIP},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1118 { WWT_PANEL, RESIZE_NONE, 14, 0, 298, 168, 187, 0x0, STR_PERFORMANCE_DETAIL_MONEY_TIP},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1119 { WWT_PANEL, RESIZE_NONE, 14, 0, 298, 188, 207, 0x0, STR_PERFORMANCE_DETAIL_LOAN_TIP},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1120 { WWT_PANEL, RESIZE_NONE, 14, 0, 298, 208, 227, 0x0, STR_PERFORMANCE_DETAIL_TOTAL_TIP},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1121
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1122 { WWT_PANEL, RESIZE_NONE, 14, 2, 38, 14, 26, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1123 { WWT_PANEL, RESIZE_NONE, 14, 39, 75, 14, 26, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1124 { WWT_PANEL, RESIZE_NONE, 14, 76, 112, 14, 26, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1125 { WWT_PANEL, RESIZE_NONE, 14, 113, 149, 14, 26, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1126 { WWT_PANEL, RESIZE_NONE, 14, 150, 186, 14, 26, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1127 { WWT_PANEL, RESIZE_NONE, 14, 187, 223, 14, 26, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1128 { WWT_PANEL, RESIZE_NONE, 14, 224, 260, 14, 26, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1129 { WWT_PANEL, RESIZE_NONE, 14, 261, 297, 14, 26, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1130 { WIDGETS_END},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1131 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1132
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1133 static const WindowDesc _performance_rating_detail_desc = {
7341
549c757023fc (svn r10704) -Codechange: provide an infrastructure to have resizable windows that are smaller than the default window size.
rubidium <rubidium@openttd.org>
parents: 7266
diff changeset
1134 WDP_AUTO, WDP_AUTO, 299, 228, 299, 228,
5893
8547517ef719 (svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents: 5812
diff changeset
1135 WC_PERFORMANCE_DETAIL, WC_NONE,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1136 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1137 _performance_rating_detail_widgets,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1138 PerformanceRatingDetailWndProc
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1139 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1140
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6203
diff changeset
1141 void ShowPerformanceRatingDetail()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1142 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1143 AllocateWindowDescFront(&_performance_rating_detail_desc, 0);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1144 }