author | rubidium |
Sat, 29 Nov 2008 01:28:13 +0000 | |
changeset 10390 | 0c2cc4c7b91f |
parent 9943 | ccea23aec951 |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
9111
48ce04029fe4
(svn r12971) -Documentation: add @file in files that missed them and add something more than whitespace as description of files that don't have a description.
rubidium
parents:
8962
diff
changeset
|
3 |
/** @file roadveh_gui.cpp GUI for road vehicles. */ |
6393
e1e4939d19b5
(svn r9523) -Cleanup: doxygen changes. Time to take care of "R"
belugas
parents:
6206
diff
changeset
|
4 |
|
0 | 5 |
#include "stdafx.h" |
1891
862800791170
(svn r2397) - CodeChange: rename all "ttd" files to "openttd" files.
Darkvater
parents:
1820
diff
changeset
|
6 |
#include "openttd.h" |
1299
39c06aba09aa
(svn r1803) Move debugging stuff into files of it's own
tron
parents:
1294
diff
changeset
|
7 |
#include "debug.h" |
3959 | 8 |
#include "roadveh.h" |
0 | 9 |
#include "gui.h" |
8107
bb7deea89175
(svn r11668) -Codechange: more refactoring aimed at reducing compile time and making it more logic where function definitions can be found.
rubidium
parents:
8106
diff
changeset
|
10 |
#include "window_gui.h" |
8224
c5a64d87cc54
(svn r11787) -Codechange: more header rewrites. This time related to viewport.h.
rubidium
parents:
8214
diff
changeset
|
11 |
#include "viewport_func.h" |
c5a64d87cc54
(svn r11787) -Codechange: more header rewrites. This time related to viewport.h.
rubidium
parents:
8214
diff
changeset
|
12 |
#include "gfx_func.h" |
8116
8da76dcb3287
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
8114
diff
changeset
|
13 |
#include "command_func.h" |
2159
f6284cf5fab0
(svn r2669) Shuffle some more stuff around to reduce dependencies
tron
parents:
2113
diff
changeset
|
14 |
#include "vehicle_gui.h" |
2962
f0a49b646c48
(svn r3524) - Split newgrf features from engine.[ch] into newgrf_engine.[ch], and add the new files to project files.
peter1138
parents:
2958
diff
changeset
|
15 |
#include "newgrf_engine.h" |
8114
dd6d21dc99c1
(svn r11675) -Codechange: split the string types from the string functions.
rubidium
parents:
8107
diff
changeset
|
16 |
#include "strings_func.h" |
8144
65cec0877b78
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium
parents:
8131
diff
changeset
|
17 |
#include "vehicle_func.h" |
8214
971f861d5543
(svn r11777) -Codechange: split the string header and make do not include it when it's not necessary.
rubidium
parents:
8144
diff
changeset
|
18 |
#include "string_func.h" |
8784
c2e9d649a9ce
(svn r12488) -Codechange: split order.h into order_base.h and order_func.h.
rubidium
parents:
8264
diff
changeset
|
19 |
#include "order_func.h" |
0 | 20 |
|
8264
b1e85998c7d3
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8224
diff
changeset
|
21 |
#include "table/sprites.h" |
b1e85998c7d3
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8224
diff
changeset
|
22 |
#include "table/strings.h" |
7530
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
23 |
|
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
24 |
void DrawRoadVehDetails(const Vehicle *v, int x, int y) |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
25 |
{ |
9585
0165043bb758
(svn r13623) -Codechange: only show the 'load' of articulated RV parts that have a capacity instead of showing 'empty' parts when a vehicle is completely full.
rubidium
parents:
9111
diff
changeset
|
26 |
uint y_offset = RoadVehHasArticPart(v) ? 15 : 0; |
7530
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
27 |
StringID str; |
9943
ccea23aec951
(svn r14098) -Fix: Make the 'Transfer Credit' display aware of the entire consist, not only the first vehicle
celestar
parents:
9770
diff
changeset
|
28 |
Money feeder_share = 0; |
7530
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
29 |
|
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
30 |
SetDParam(0, v->engine_type); |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
31 |
SetDParam(1, v->build_year); |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
32 |
SetDParam(2, v->value); |
7824
5a63d41b59ea
(svn r11374) -Codechange: Give meaning to the magical number that specifies the color of the text in a DrawString call.
belugas
parents:
7653
diff
changeset
|
33 |
DrawString(x, y + y_offset, STR_9011_BUILT_VALUE, TC_FROMSTRING); |
7530
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
34 |
|
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
35 |
if (RoadVehHasArticPart(v)) { |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
36 |
AcceptedCargo max_cargo; |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
37 |
char capacity[512]; |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
38 |
|
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
39 |
memset(max_cargo, 0, sizeof(max_cargo)); |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
40 |
|
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
41 |
for (const Vehicle *u = v; u != NULL; u = u->Next()) { |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
42 |
max_cargo[u->cargo_type] += u->cargo_cap; |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
43 |
} |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
44 |
|
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
45 |
GetString(capacity, STR_ARTICULATED_RV_CAPACITY, lastof(capacity)); |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
46 |
|
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
47 |
bool first = true; |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
48 |
for (CargoID i = 0; i < NUM_CARGO; i++) { |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
49 |
if (max_cargo[i] > 0) { |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
50 |
char buffer[128]; |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
51 |
|
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
52 |
SetDParam(0, i); |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
53 |
SetDParam(1, max_cargo[i]); |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
54 |
GetString(buffer, STR_BARE_CARGO, lastof(buffer)); |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
55 |
|
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
56 |
if (!first) strecat(capacity, ", ", lastof(capacity)); |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
57 |
strecat(capacity, buffer, lastof(capacity)); |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
58 |
first = false; |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
59 |
} |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
60 |
} |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
61 |
|
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
62 |
SetDParamStr(0, capacity); |
9648
c79160082c0f
(svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
rubidium
parents:
9585
diff
changeset
|
63 |
DrawStringTruncated(x, y + 10 + y_offset, STR_JUST_RAW_STRING, TC_BLUE, 380 - x); |
7530
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
64 |
|
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
65 |
for (const Vehicle *u = v; u != NULL; u = u->Next()) { |
9585
0165043bb758
(svn r13623) -Codechange: only show the 'load' of articulated RV parts that have a capacity instead of showing 'empty' parts when a vehicle is completely full.
rubidium
parents:
9111
diff
changeset
|
66 |
if (u->cargo_cap == 0) continue; |
0165043bb758
(svn r13623) -Codechange: only show the 'load' of articulated RV parts that have a capacity instead of showing 'empty' parts when a vehicle is completely full.
rubidium
parents:
9111
diff
changeset
|
67 |
|
7530
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
68 |
str = STR_8812_EMPTY; |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
69 |
if (!u->cargo.Empty()) { |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
70 |
SetDParam(0, u->cargo_type); |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
71 |
SetDParam(1, u->cargo.Count()); |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
72 |
SetDParam(2, u->cargo.Source()); |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
73 |
str = STR_8813_FROM; |
9943
ccea23aec951
(svn r14098) -Fix: Make the 'Transfer Credit' display aware of the entire consist, not only the first vehicle
celestar
parents:
9770
diff
changeset
|
74 |
feeder_share += u->cargo.FeederShare(); |
7530
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
75 |
} |
7824
5a63d41b59ea
(svn r11374) -Codechange: Give meaning to the magical number that specifies the color of the text in a DrawString call.
belugas
parents:
7653
diff
changeset
|
76 |
DrawString(x, y + 21 + y_offset, str, TC_FROMSTRING); |
7530
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
77 |
|
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
78 |
y_offset += 11; |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
79 |
} |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
80 |
|
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
81 |
y_offset -= 11; |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
82 |
} else { |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
83 |
SetDParam(0, v->cargo_type); |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
84 |
SetDParam(1, v->cargo_cap); |
7824
5a63d41b59ea
(svn r11374) -Codechange: Give meaning to the magical number that specifies the color of the text in a DrawString call.
belugas
parents:
7653
diff
changeset
|
85 |
DrawString(x, y + 10 + y_offset, STR_9012_CAPACITY, TC_FROMSTRING); |
7530
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
86 |
|
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
87 |
str = STR_8812_EMPTY; |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
88 |
if (!v->cargo.Empty()) { |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
89 |
SetDParam(0, v->cargo_type); |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
90 |
SetDParam(1, v->cargo.Count()); |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
91 |
SetDParam(2, v->cargo.Source()); |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
92 |
str = STR_8813_FROM; |
9943
ccea23aec951
(svn r14098) -Fix: Make the 'Transfer Credit' display aware of the entire consist, not only the first vehicle
celestar
parents:
9770
diff
changeset
|
93 |
feeder_share += v->cargo.FeederShare(); |
7530
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
94 |
} |
7824
5a63d41b59ea
(svn r11374) -Codechange: Give meaning to the magical number that specifies the color of the text in a DrawString call.
belugas
parents:
7653
diff
changeset
|
95 |
DrawString(x, y + 21 + y_offset, str, TC_FROMSTRING); |
7530
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
96 |
} |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
97 |
|
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
98 |
/* Draw Transfer credits text */ |
9943
ccea23aec951
(svn r14098) -Fix: Make the 'Transfer Credit' display aware of the entire consist, not only the first vehicle
celestar
parents:
9770
diff
changeset
|
99 |
SetDParam(0, feeder_share); |
7824
5a63d41b59ea
(svn r11374) -Codechange: Give meaning to the magical number that specifies the color of the text in a DrawString call.
belugas
parents:
7653
diff
changeset
|
100 |
DrawString(x, y + 33 + y_offset, STR_FEEDER_CARGO_VALUE, TC_FROMSTRING); |
7530
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
101 |
} |
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
102 |
|
bfeada535347
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium
parents:
7492
diff
changeset
|
103 |
|
6857
60130753e595
(svn r10097) -Feature: Add support for articulated road vehicles, or callbacks 11 and 17 for
maedhros
parents:
6691
diff
changeset
|
104 |
static inline int RoadVehLengthToPixels(int length) |
0 | 105 |
{ |
6857
60130753e595
(svn r10097) -Feature: Add support for articulated road vehicles, or callbacks 11 and 17 for
maedhros
parents:
6691
diff
changeset
|
106 |
return (length * 28) / 8; |
60130753e595
(svn r10097) -Feature: Add support for articulated road vehicles, or callbacks 11 and 17 for
maedhros
parents:
6691
diff
changeset
|
107 |
} |
0 | 108 |
|
8144
65cec0877b78
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium
parents:
8131
diff
changeset
|
109 |
void DrawRoadVehImage(const Vehicle *v, int x, int y, VehicleID selection, int count) |
6857
60130753e595
(svn r10097) -Feature: Add support for articulated road vehicles, or callbacks 11 and 17 for
maedhros
parents:
6691
diff
changeset
|
110 |
{ |
60130753e595
(svn r10097) -Feature: Add support for articulated road vehicles, or callbacks 11 and 17 for
maedhros
parents:
6691
diff
changeset
|
111 |
/* Road vehicle lengths are measured in eighths of the standard length, so |
60130753e595
(svn r10097) -Feature: Add support for articulated road vehicles, or callbacks 11 and 17 for
maedhros
parents:
6691
diff
changeset
|
112 |
* count is the number of standard vehicles that should be drawn. If it is |
60130753e595
(svn r10097) -Feature: Add support for articulated road vehicles, or callbacks 11 and 17 for
maedhros
parents:
6691
diff
changeset
|
113 |
* 0, we draw enough vehicles for 10 standard vehicle lengths. */ |
60130753e595
(svn r10097) -Feature: Add support for articulated road vehicles, or callbacks 11 and 17 for
maedhros
parents:
6691
diff
changeset
|
114 |
int max_length = (count == 0) ? 80 : count * 8; |
60130753e595
(svn r10097) -Feature: Add support for articulated road vehicles, or callbacks 11 and 17 for
maedhros
parents:
6691
diff
changeset
|
115 |
|
8828
28784a133c57
(svn r12576) -Feature(tte) [FS#337]: highlight vehicle chain when dragging in the group and depot GUI if appropriate
smatz
parents:
8784
diff
changeset
|
116 |
/* Width of highlight box */ |
28784a133c57
(svn r12576) -Feature(tte) [FS#337]: highlight vehicle chain when dragging in the group and depot GUI if appropriate
smatz
parents:
8784
diff
changeset
|
117 |
int highlight_w = 0; |
28784a133c57
(svn r12576) -Feature(tte) [FS#337]: highlight vehicle chain when dragging in the group and depot GUI if appropriate
smatz
parents:
8784
diff
changeset
|
118 |
|
28784a133c57
(svn r12576) -Feature(tte) [FS#337]: highlight vehicle chain when dragging in the group and depot GUI if appropriate
smatz
parents:
8784
diff
changeset
|
119 |
for (int dx = 0; v != NULL && dx < max_length ; v = v->Next()) { |
28784a133c57
(svn r12576) -Feature(tte) [FS#337]: highlight vehicle chain when dragging in the group and depot GUI if appropriate
smatz
parents:
8784
diff
changeset
|
120 |
int width = v->u.road.cached_veh_length; |
28784a133c57
(svn r12576) -Feature(tte) [FS#337]: highlight vehicle chain when dragging in the group and depot GUI if appropriate
smatz
parents:
8784
diff
changeset
|
121 |
|
28784a133c57
(svn r12576) -Feature(tte) [FS#337]: highlight vehicle chain when dragging in the group and depot GUI if appropriate
smatz
parents:
8784
diff
changeset
|
122 |
if (dx + width > 0 && dx <= max_length) { |
6857
60130753e595
(svn r10097) -Feature: Add support for articulated road vehicles, or callbacks 11 and 17 for
maedhros
parents:
6691
diff
changeset
|
123 |
SpriteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v); |
7134
5b2d47128d05
(svn r10408) -Codechange: make GetImage a class method of Vehicle instead of Get(Aircraft|RoadVeh|Ship|Train)Image.
rubidium
parents:
7063
diff
changeset
|
124 |
DrawSprite(v->GetImage(DIR_W), pal, x + 14 + RoadVehLengthToPixels(dx), y + 6); |
6857
60130753e595
(svn r10097) -Feature: Add support for articulated road vehicles, or callbacks 11 and 17 for
maedhros
parents:
6691
diff
changeset
|
125 |
|
60130753e595
(svn r10097) -Feature: Add support for articulated road vehicles, or callbacks 11 and 17 for
maedhros
parents:
6691
diff
changeset
|
126 |
if (v->index == selection) { |
8828
28784a133c57
(svn r12576) -Feature(tte) [FS#337]: highlight vehicle chain when dragging in the group and depot GUI if appropriate
smatz
parents:
8784
diff
changeset
|
127 |
/* Set the highlight position */ |
28784a133c57
(svn r12576) -Feature(tte) [FS#337]: highlight vehicle chain when dragging in the group and depot GUI if appropriate
smatz
parents:
8784
diff
changeset
|
128 |
highlight_w = RoadVehLengthToPixels(width); |
28784a133c57
(svn r12576) -Feature(tte) [FS#337]: highlight vehicle chain when dragging in the group and depot GUI if appropriate
smatz
parents:
8784
diff
changeset
|
129 |
} else if (_cursor.vehchain && highlight_w != 0) { |
28784a133c57
(svn r12576) -Feature(tte) [FS#337]: highlight vehicle chain when dragging in the group and depot GUI if appropriate
smatz
parents:
8784
diff
changeset
|
130 |
highlight_w += RoadVehLengthToPixels(width); |
6857
60130753e595
(svn r10097) -Feature: Add support for articulated road vehicles, or callbacks 11 and 17 for
maedhros
parents:
6691
diff
changeset
|
131 |
} |
60130753e595
(svn r10097) -Feature: Add support for articulated road vehicles, or callbacks 11 and 17 for
maedhros
parents:
6691
diff
changeset
|
132 |
} |
8828
28784a133c57
(svn r12576) -Feature(tte) [FS#337]: highlight vehicle chain when dragging in the group and depot GUI if appropriate
smatz
parents:
8784
diff
changeset
|
133 |
|
28784a133c57
(svn r12576) -Feature(tte) [FS#337]: highlight vehicle chain when dragging in the group and depot GUI if appropriate
smatz
parents:
8784
diff
changeset
|
134 |
dx += width; |
28784a133c57
(svn r12576) -Feature(tte) [FS#337]: highlight vehicle chain when dragging in the group and depot GUI if appropriate
smatz
parents:
8784
diff
changeset
|
135 |
} |
28784a133c57
(svn r12576) -Feature(tte) [FS#337]: highlight vehicle chain when dragging in the group and depot GUI if appropriate
smatz
parents:
8784
diff
changeset
|
136 |
|
28784a133c57
(svn r12576) -Feature(tte) [FS#337]: highlight vehicle chain when dragging in the group and depot GUI if appropriate
smatz
parents:
8784
diff
changeset
|
137 |
if (highlight_w != 0) { |
9770
8c260fb382f8
(svn r13907) -Codechange: Replace a number with Colours enum on DrawFrameRect usage
belugas
parents:
9648
diff
changeset
|
138 |
DrawFrameRect(x - 1, y - 1, x - 1 + highlight_w, y + 12, COLOUR_WHITE, FR_BORDERONLY); |
0 | 139 |
} |
140 |
} |
|
141 |
||
1977
37bbebf94434
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1962
diff
changeset
|
142 |
void CcBuildRoadVeh(bool success, TileIndex tile, uint32 p1, uint32 p2) |
0 | 143 |
{ |
4171 | 144 |
const Vehicle *v; |
0 | 145 |
|
146 |
if (!success) return; |
|
147 |
||
3948
a09379beffd5
(svn r5094) Remove _new_{aircraft,roadveh,ship,train,wagon}_id. _new_vehicle_id is enough.
tron
parents:
3887
diff
changeset
|
148 |
v = GetVehicle(_new_vehicle_id); |
0 | 149 |
if (v->tile == _backup_orders_tile) { |
150 |
_backup_orders_tile = 0; |
|
7653
dd252420d9c2
(svn r11184) -Codechange: cleanup the code related to backup orders.
rubidium
parents:
7530
diff
changeset
|
151 |
RestoreVehicleOrders(v); |
0 | 152 |
} |
7486
bf6a94009823
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium
parents:
7484
diff
changeset
|
153 |
ShowVehicleViewWindow(v); |
0 | 154 |
} |