|
@@ -162,13 +162,14 @@ struct ValuesInterval {
|
|
|
/* BASE OF GRAPHS */
|
|
|
/*****************/
|
|
|
|
|
|
struct BaseGraphWindow : Window {
|
|
|
protected:
|
|
|
static const int GRAPH_MAX_DATASETS = 64;
|
|
|
static const int GRAPH_AXIS_LINE_COLOUR = PC_BLACK;
|
|
|
static const int GRAPH_AXIS_LINE_COLOUR = GREY_SCALE(1);
|
|
|
static const int GRAPH_ZERO_LINE_COLOUR = GREY_SCALE(8);
|
|
|
static const int GRAPH_NUM_MONTHS = 24; ///< Number of months displayed in the graph.
|
|
|
|
|
|
static const int MIN_GRAPH_NUM_LINES_Y = 9; ///< Minimal number of horizontal lines to draw.
|
|
|
static const int MIN_GRID_PIXEL_SIZE = 20; ///< Minimum distance between graph lines.
|
|
|
|
|
|
uint64 excluded_data; ///< bitmask of the datasets that shouldn't be displayed.
|
|
@@ -289,13 +290,13 @@ protected:
|
|
|
|
|
|
/* the colours and cost array of GraphDrawer must accommodate
|
|
|
* both values for cargo and companies. So if any are higher, quit */
|
|
|
static_assert(GRAPH_MAX_DATASETS >= (int)NUM_CARGO && GRAPH_MAX_DATASETS >= (int)MAX_COMPANIES);
|
|
|
assert(this->num_vert_lines > 0);
|
|
|
|
|
|
byte grid_colour = _colour_gradient[COLOUR_GREY][4];
|
|
|
byte grid_colour = GREY_SCALE(3);
|
|
|
|
|
|
/* Rect r will be adjusted to contain just the graph, with labels being
|
|
|
* placed outside the area. */
|
|
|
r.top += 5 + GetCharacterHeight(FS_SMALL) / 2;
|
|
|
r.bottom -= (this->month == 0xFF ? 1 : 3) * GetCharacterHeight(FS_SMALL) + 4;
|
|
|
r.left += 9;
|
|
@@ -349,13 +350,13 @@ protected:
|
|
|
|
|
|
/* Draw the y axis. */
|
|
|
GfxFillRect(r.left, r.top, r.left, r.bottom, GRAPH_AXIS_LINE_COLOUR);
|
|
|
|
|
|
/* Draw the x axis. */
|
|
|
y = x_axis_offset + r.top;
|
|
|
GfxFillRect(r.left, y, r.right, y, GRAPH_AXIS_LINE_COLOUR);
|
|
|
GfxFillRect(r.left, y, r.right, y, GRAPH_ZERO_LINE_COLOUR);
|
|
|
|
|
|
/* Find the largest value that will be drawn. */
|
|
|
if (this->num_on_x_axis == 0) return;
|
|
|
|
|
|
assert(this->num_on_x_axis > 0);
|
|
|
assert(this->num_dataset > 0);
|