Mercurial > hg > openttd
annotate src/vehicle_gui.cpp @ 9396:bbf7586724f4 draft
(svn r13307) -Codechange: Separate VehicleList and its two functions so only the 3 users include it, reducing dependencies on misc/smallvec.h
author | peter1138 <peter1138@openttd.org> |
---|---|
date | Wed, 28 May 2008 11:56:21 +0000 |
parents | 63db12fa3721 |
children | 512ea64da840 |
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 |
9111
d48433370037
(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 <rubidium@openttd.org>
parents:
9060
diff
changeset
|
3 /** @file vehicle_gui.cpp The base GUI for all vehicles. */ |
6423
72ac8bfaa32f
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas <belugas@openttd.org>
parents:
6350
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 "debug.h" |
8254
7d580c9c41fb
(svn r11818) -Codechange: split player.h into smaller pieces.
rubidium <rubidium@openttd.org>
parents:
8224
diff
changeset
|
8 #include "player_func.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 "gui.h" |
8107
f65cf2bc3255
(svn r11668) -Codechange: more refactoring aimed at reducing compile time and making it more logic where function definitions can be found.
rubidium <rubidium@openttd.org>
parents:
8106
diff
changeset
|
10 #include "window_gui.h" |
f65cf2bc3255
(svn r11668) -Codechange: more refactoring aimed at reducing compile time and making it more logic where function definitions can be found.
rubidium <rubidium@openttd.org>
parents:
8106
diff
changeset
|
11 #include "textbuf_gui.h" |
8116
9cc845deddfe
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium <rubidium@openttd.org>
parents:
8114
diff
changeset
|
12 #include "command_func.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
|
13 #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
|
14 #include "vehicle_gui.h" |
8224
c45446125bf0
(svn r11787) -Codechange: more header rewrites. This time related to viewport.h.
rubidium <rubidium@openttd.org>
parents:
8214
diff
changeset
|
15 #include "viewport_func.h" |
c45446125bf0
(svn r11787) -Codechange: more header rewrites. This time related to viewport.h.
rubidium <rubidium@openttd.org>
parents:
8214
diff
changeset
|
16 #include "gfx_func.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
|
17 #include "train.h" |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
18 #include "newgrf_callbacks.h" |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
19 #include "newgrf_engine.h" |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
20 #include "newgrf_text.h" |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
21 #include "ship.h" |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
22 #include "aircraft.h" |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
23 #include "roadveh.h" |
8962
322e2779f67a
(svn r12754) -Codechange: split depot.h into depot_map.h, depot_func.h and depot_base.h and remove quite a lot of unneeded (before this) includes of depot.h.
rubidium <rubidium@openttd.org>
parents:
8917
diff
changeset
|
24 #include "depot_base.h" |
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:
6056
diff
changeset
|
25 #include "cargotype.h" |
6643
18d58b36b9b3
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium <rubidium@openttd.org>
parents:
6638
diff
changeset
|
26 #include "group.h" |
8111
5475263e4cab
(svn r11672) -Codechange: refactor some stuff out of gui.h.
rubidium <rubidium@openttd.org>
parents:
8107
diff
changeset
|
27 #include "group_gui.h" |
8114
2d6af5d7a142
(svn r11675) -Codechange: split the string types from the string functions.
rubidium <rubidium@openttd.org>
parents:
8111
diff
changeset
|
28 #include "strings_func.h" |
8131
e300ac8001ae
(svn r11692) -Codechange: move some functions from 'functions.h' to a more logical place and remove about 50% of the includes of 'functions.h'
rubidium <rubidium@openttd.org>
parents:
8130
diff
changeset
|
29 #include "functions.h" |
e300ac8001ae
(svn r11692) -Codechange: move some functions from 'functions.h' to a more logical place and remove about 50% of the includes of 'functions.h'
rubidium <rubidium@openttd.org>
parents:
8130
diff
changeset
|
30 #include "window_func.h" |
8144
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
31 #include "vehicle_func.h" |
8212
11263ebe590a
(svn r11775) -Codechange: move all autoreplace/autorenew functions to a single location.
rubidium <rubidium@openttd.org>
parents:
8179
diff
changeset
|
32 #include "autoreplace_gui.h" |
8213
87c85bb42d6f
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium <rubidium@openttd.org>
parents:
8212
diff
changeset
|
33 #include "core/alloc_func.hpp" |
8214
6385dffc0b37
(svn r11777) -Codechange: split the string header and make do not include it when it's not necessary.
rubidium <rubidium@openttd.org>
parents:
8213
diff
changeset
|
34 #include "string_func.h" |
8270
5613b863190d
(svn r11834) -Codechange: only include settings_type.h if needed.
rubidium <rubidium@openttd.org>
parents:
8264
diff
changeset
|
35 #include "settings_type.h" |
8284
dbb7bfe0e95c
(svn r11848) -Codechange: New class-based drop down list functionality. Lists are now dynamically generated, and can include parameters, or be extended however needed.
peter1138 <peter1138@openttd.org>
parents:
8270
diff
changeset
|
36 #include "widgets/dropdown_func.h" |
8784
6280c0d48a6d
(svn r12488) -Codechange: split order.h into order_base.h and order_func.h.
rubidium <rubidium@openttd.org>
parents:
8771
diff
changeset
|
37 #include "order_func.h" |
9117
453c3d26f4bc
(svn r12977) -Codechange: remove quite some redundant (duplicate) function declarations.
rubidium <rubidium@openttd.org>
parents:
9116
diff
changeset
|
38 #include "timetable.h" |
9396
bbf7586724f4
(svn r13307) -Codechange: Separate VehicleList and its two functions so only the 3 users include it, reducing dependencies on misc/smallvec.h
peter1138 <peter1138@openttd.org>
parents:
9381
diff
changeset
|
39 #include "vehiclelist.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
|
40 |
8264
2495310e220f
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium <rubidium@openttd.org>
parents:
8258
diff
changeset
|
41 #include "table/sprites.h" |
2495310e220f
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium <rubidium@openttd.org>
parents:
8258
diff
changeset
|
42 #include "table/strings.h" |
2495310e220f
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium <rubidium@openttd.org>
parents:
8258
diff
changeset
|
43 |
9182
d3a153aa328d
(svn r13045) -Codechange: make list_d (now GUIList) more generic and uniform.
rubidium <rubidium@openttd.org>
parents:
9161
diff
changeset
|
44 Sorting _sorting; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
45 static bool _internal_sort_order; // descending/ascending |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
46 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
47 typedef int CDECL VehicleSortListingTypeFunction(const void*, const void*); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
48 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
49 static VehicleSortListingTypeFunction VehicleNumberSorter; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
50 static VehicleSortListingTypeFunction VehicleNameSorter; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
51 static VehicleSortListingTypeFunction VehicleAgeSorter; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
52 static VehicleSortListingTypeFunction VehicleProfitThisYearSorter; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
53 static VehicleSortListingTypeFunction VehicleProfitLastYearSorter; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
54 static VehicleSortListingTypeFunction VehicleCargoSorter; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
55 static VehicleSortListingTypeFunction VehicleReliabilitySorter; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
56 static VehicleSortListingTypeFunction VehicleMaxSpeedSorter; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
57 static VehicleSortListingTypeFunction VehicleModelSorter; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
58 static VehicleSortListingTypeFunction VehicleValueSorter; |
8974
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
59 static VehicleSortListingTypeFunction VehicleLengthSorter; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
60 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
61 static VehicleSortListingTypeFunction* const _vehicle_sorter[] = { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
62 &VehicleNumberSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
63 &VehicleNameSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
64 &VehicleAgeSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
65 &VehicleProfitThisYearSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
66 &VehicleProfitLastYearSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
67 &VehicleCargoSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
68 &VehicleReliabilitySorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
69 &VehicleMaxSpeedSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
70 &VehicleModelSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
71 &VehicleValueSorter, |
8974
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
72 &VehicleLengthSorter, |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
73 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
74 |
6643
18d58b36b9b3
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium <rubidium@openttd.org>
parents:
6638
diff
changeset
|
75 const StringID _vehicle_sort_listing[] = { |
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 STR_SORT_BY_NUMBER, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
77 STR_SORT_BY_DROPDOWN_NAME, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
78 STR_SORT_BY_AGE, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
79 STR_SORT_BY_PROFIT_THIS_YEAR, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
80 STR_SORT_BY_PROFIT_LAST_YEAR, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
81 STR_SORT_BY_TOTAL_CAPACITY_PER_CARGOTYPE, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
82 STR_SORT_BY_RELIABILITY, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
83 STR_SORT_BY_MAX_SPEED, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
84 STR_SORT_BY_MODEL, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
85 STR_SORT_BY_VALUE, |
8974
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
86 STR_SORT_BY_LENGTH, |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
87 INVALID_STRING_ID |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
88 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
89 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
90 void BuildVehicleList(VehicleListBase *vl, PlayerID owner, uint16 index, uint16 window_type) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
91 { |
9182
d3a153aa328d
(svn r13045) -Codechange: make list_d (now GUIList) more generic and uniform.
rubidium <rubidium@openttd.org>
parents:
9161
diff
changeset
|
92 if (!(vl->vehicles.flags & VL_REBUILD)) return; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
93 |
5747
61edd889181d
(svn r8295) -Cleanup: merged arguments station, order and depot_airport_index for GenerateVehicleSortList() and BuildVehicleList() into one uint16 argument
bjarni <bjarni@openttd.org>
parents:
5745
diff
changeset
|
94 DEBUG(misc, 3, "Building vehicle list for player %d at station %d", owner, 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
|
95 |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
96 GenerateVehicleSortList(&vl->vehicles, vl->vehicle_type, owner, index, window_type); |
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 |
9182
d3a153aa328d
(svn r13045) -Codechange: make list_d (now GUIList) more generic and uniform.
rubidium <rubidium@openttd.org>
parents:
9161
diff
changeset
|
98 vl->vehicles.flags &= ~VL_REBUILD; |
d3a153aa328d
(svn r13045) -Codechange: make list_d (now GUIList) more generic and uniform.
rubidium <rubidium@openttd.org>
parents:
9161
diff
changeset
|
99 vl->vehicles.flags |= VL_RESORT; |
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 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
101 |
8662
c0b1a8566280
(svn r12324) -Fix (r6789): vehicles could be sorted in a wrong order when a vehicle name changed - cached name was not invalidated
smatz <smatz@openttd.org>
parents:
8661
diff
changeset
|
102 /* cached values for VehicleNameSorter to spare many GetString() calls */ |
c0b1a8566280
(svn r12324) -Fix (r6789): vehicles could be sorted in a wrong order when a vehicle name changed - cached name was not invalidated
smatz <smatz@openttd.org>
parents:
8661
diff
changeset
|
103 static const Vehicle *_last_vehicle[2] = { NULL, NULL }; |
c0b1a8566280
(svn r12324) -Fix (r6789): vehicles could be sorted in a wrong order when a vehicle name changed - cached name was not invalidated
smatz <smatz@openttd.org>
parents:
8661
diff
changeset
|
104 static char _last_name[2][64] = { "", "" }; |
c0b1a8566280
(svn r12324) -Fix (r6789): vehicles could be sorted in a wrong order when a vehicle name changed - cached name was not invalidated
smatz <smatz@openttd.org>
parents:
8661
diff
changeset
|
105 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
106 void SortVehicleList(VehicleListBase *vl) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
107 { |
9182
d3a153aa328d
(svn r13045) -Codechange: make list_d (now GUIList) more generic and uniform.
rubidium <rubidium@openttd.org>
parents:
9161
diff
changeset
|
108 if (!(vl->vehicles.flags & VL_RESORT)) return; |
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 |
8662
c0b1a8566280
(svn r12324) -Fix (r6789): vehicles could be sorted in a wrong order when a vehicle name changed - cached name was not invalidated
smatz <smatz@openttd.org>
parents:
8661
diff
changeset
|
110 /* invalidate cached values for name sorter - vehicle names could change */ |
c0b1a8566280
(svn r12324) -Fix (r6789): vehicles could be sorted in a wrong order when a vehicle name changed - cached name was not invalidated
smatz <smatz@openttd.org>
parents:
8661
diff
changeset
|
111 _last_vehicle[0] = _last_vehicle[1] = NULL; |
c0b1a8566280
(svn r12324) -Fix (r6789): vehicles could be sorted in a wrong order when a vehicle name changed - cached name was not invalidated
smatz <smatz@openttd.org>
parents:
8661
diff
changeset
|
112 |
9182
d3a153aa328d
(svn r13045) -Codechange: make list_d (now GUIList) more generic and uniform.
rubidium <rubidium@openttd.org>
parents:
9161
diff
changeset
|
113 _internal_sort_order = (vl->vehicles.flags & VL_DESC) != 0; |
9381
63db12fa3721
(svn r13291) -Fix (r13266): qsort passed wrong sizeof data
peter1138 <peter1138@openttd.org>
parents:
9368
diff
changeset
|
114 qsort((void*)vl->vehicles.Begin(), vl->vehicles.Length(), sizeof(*vl->vehicles.Begin()), |
9182
d3a153aa328d
(svn r13045) -Codechange: make list_d (now GUIList) more generic and uniform.
rubidium <rubidium@openttd.org>
parents:
9161
diff
changeset
|
115 _vehicle_sorter[vl->vehicles.sort_type]); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
116 |
9182
d3a153aa328d
(svn r13045) -Codechange: make list_d (now GUIList) more generic and uniform.
rubidium <rubidium@openttd.org>
parents:
9161
diff
changeset
|
117 vl->vehicles.resort_timer = DAY_TICKS * PERIODIC_RESORT_DAYS; |
d3a153aa328d
(svn r13045) -Codechange: make list_d (now GUIList) more generic and uniform.
rubidium <rubidium@openttd.org>
parents:
9161
diff
changeset
|
118 vl->vehicles.flags &= ~VL_RESORT; |
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 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
120 |
9351
feaf9bae7580
(svn r13248) -Codechange: Use VehicleList for depot GUI.
peter1138 <peter1138@openttd.org>
parents:
9333
diff
changeset
|
121 void DepotSortList(VehicleList *list) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
122 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
123 _internal_sort_order = 0; |
9351
feaf9bae7580
(svn r13248) -Codechange: Use VehicleList for depot GUI.
peter1138 <peter1138@openttd.org>
parents:
9333
diff
changeset
|
124 if (list->Length() < 2) return; |
9381
63db12fa3721
(svn r13291) -Fix (r13266): qsort passed wrong sizeof data
peter1138 <peter1138@openttd.org>
parents:
9368
diff
changeset
|
125 qsort((void*)list->Begin(), list->Length(), sizeof(*list->Begin()), _vehicle_sorter[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 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
127 |
6423
72ac8bfaa32f
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas <belugas@openttd.org>
parents:
6350
diff
changeset
|
128 /** draw the vehicle profit button in the vehicle list window. */ |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
129 void DrawVehicleProfitButton(const Vehicle *v, int x, int y) |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
130 { |
5668
3d6d9bff3dd8
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138 <peter1138@openttd.org>
parents:
5609
diff
changeset
|
131 SpriteID pal; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
132 |
6423
72ac8bfaa32f
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas <belugas@openttd.org>
parents:
6350
diff
changeset
|
133 /* draw profit-based colored icons */ |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
134 if (v->age <= 365 * 2) { |
5668
3d6d9bff3dd8
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138 <peter1138@openttd.org>
parents:
5609
diff
changeset
|
135 pal = PALETTE_TO_GREY; |
8614
36bb76188638
(svn r12197) -Fix [FS#1788](r12134): show correct last year profit when the train had negative income
smatz <smatz@openttd.org>
parents:
8556
diff
changeset
|
136 } else if (v->GetDisplayProfitLastYear() < 0) { |
5668
3d6d9bff3dd8
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138 <peter1138@openttd.org>
parents:
5609
diff
changeset
|
137 pal = PALETTE_TO_RED; |
8614
36bb76188638
(svn r12197) -Fix [FS#1788](r12134): show correct last year profit when the train had negative income
smatz <smatz@openttd.org>
parents:
8556
diff
changeset
|
138 } else if (v->GetDisplayProfitLastYear() < 10000) { |
5668
3d6d9bff3dd8
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138 <peter1138@openttd.org>
parents:
5609
diff
changeset
|
139 pal = PALETTE_TO_YELLOW; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
140 } else { |
5668
3d6d9bff3dd8
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138 <peter1138@openttd.org>
parents:
5609
diff
changeset
|
141 pal = PALETTE_TO_GREEN; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
142 } |
5668
3d6d9bff3dd8
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138 <peter1138@openttd.org>
parents:
5609
diff
changeset
|
143 DrawSprite(SPR_BLOT, pal, x, 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
|
144 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
145 |
6248
0789677a15a0
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents:
6247
diff
changeset
|
146 struct RefitOption { |
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 CargoID cargo; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
148 byte subtype; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
149 uint16 value; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
150 EngineID engine; |
6248
0789677a15a0
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents:
6247
diff
changeset
|
151 }; |
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 |
6248
0789677a15a0
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents:
6247
diff
changeset
|
153 struct RefitList { |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
154 uint num_lines; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
155 RefitOption *items; |
6248
0789677a15a0
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents:
6247
diff
changeset
|
156 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
157 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
158 static RefitList *BuildRefitList(const Vehicle *v) |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
159 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
160 uint max_lines = 256; |
5609
358c07fb3212
(svn r8066) - Codechange: MallocT(), CallocT(), ReallocT() now return the pointer to allocated memory instead of modifying the pointer given as parameter
KUDr <KUDr@openttd.org>
parents:
5587
diff
changeset
|
161 RefitOption *refit = CallocT<RefitOption>(max_lines); |
358c07fb3212
(svn r8066) - Codechange: MallocT(), CallocT(), ReallocT() now return the pointer to allocated memory instead of modifying the pointer given as parameter
KUDr <KUDr@openttd.org>
parents:
5587
diff
changeset
|
162 RefitList *list = CallocT<RefitList>(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
|
163 Vehicle *u = (Vehicle*)v; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
164 uint num_lines = 0; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
165 uint i; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
166 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
167 do { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
168 uint32 cmask = EngInfo(u->engine_type)->refit_mask; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
169 byte callbackmask = EngInfo(u->engine_type)->callbackmask; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
170 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
171 /* Skip this engine if it has no capacity */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
172 if (u->cargo_cap == 0) continue; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
173 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
174 /* Loop through all cargos in the refit mask */ |
6350
8132258640be
(svn r9388) -Codechange: variable scope and type, and standardify all CargoID loops.
peter1138 <peter1138@openttd.org>
parents:
6259
diff
changeset
|
175 for (CargoID cid = 0; cid < NUM_CARGO && num_lines < max_lines; cid++) { |
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 /* Skip cargo type if it's not listed */ |
7928
4e8dfd103163
(svn r11481) -Codechange: Rename the HASBIT function to fit with the naming style
skidd13 <skidd13@openttd.org>
parents:
7846
diff
changeset
|
177 if (!HasBit(cmask, cid)) 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
|
178 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
179 /* Check the vehicle's callback mask for cargo suffixes */ |
7928
4e8dfd103163
(svn r11481) -Codechange: Rename the HASBIT function to fit with the naming style
skidd13 <skidd13@openttd.org>
parents:
7846
diff
changeset
|
180 if (HasBit(callbackmask, CBM_VEHICLE_CARGO_SUFFIX)) { |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
181 /* Make a note of the original cargo type. It has to be |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
182 * changed to test the cargo & subtype... */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
183 CargoID temp_cargo = u->cargo_type; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
184 byte temp_subtype = u->cargo_subtype; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
185 byte refit_cyc; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
186 |
6113
5cf0c6849eee
(svn r8849) -Codechange: Replace hardcoded global/climate cargo mapping tables with dynamically generated data. Change associated code to use new functions.
peter1138 <peter1138@openttd.org>
parents:
6091
diff
changeset
|
187 u->cargo_type = cid; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
188 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
189 for (refit_cyc = 0; refit_cyc < 16 && num_lines < max_lines; refit_cyc++) { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
190 bool duplicate = false; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
191 uint16 callback; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
192 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
193 u->cargo_subtype = refit_cyc; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
194 callback = GetVehicleCallback(CBID_VEHICLE_CARGO_SUFFIX, 0, 0, u->engine_type, u); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
195 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
196 if (callback == 0xFF) callback = CALLBACK_FAILED; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
197 if (refit_cyc != 0 && callback == CALLBACK_FAILED) break; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
198 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
199 /* Check if this cargo and subtype combination are listed */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
200 for (i = 0; i < num_lines && !duplicate; i++) { |
6113
5cf0c6849eee
(svn r8849) -Codechange: Replace hardcoded global/climate cargo mapping tables with dynamically generated data. Change associated code to use new functions.
peter1138 <peter1138@openttd.org>
parents:
6091
diff
changeset
|
201 if (refit[i].cargo == cid && refit[i].value == callback) duplicate = true; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
202 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
203 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
204 if (duplicate) continue; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
205 |
6113
5cf0c6849eee
(svn r8849) -Codechange: Replace hardcoded global/climate cargo mapping tables with dynamically generated data. Change associated code to use new functions.
peter1138 <peter1138@openttd.org>
parents:
6091
diff
changeset
|
206 refit[num_lines].cargo = cid; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
207 refit[num_lines].subtype = refit_cyc; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
208 refit[num_lines].value = callback; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
209 refit[num_lines].engine = u->engine_type; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
210 num_lines++; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
211 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
212 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
213 /* Reset the vehicle's cargo type */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
214 u->cargo_type = temp_cargo; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
215 u->cargo_subtype = temp_subtype; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
216 } else { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
217 /* No cargo suffix callback -- use no subtype */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
218 bool duplicate = false; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
219 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
220 for (i = 0; i < num_lines && !duplicate; i++) { |
6113
5cf0c6849eee
(svn r8849) -Codechange: Replace hardcoded global/climate cargo mapping tables with dynamically generated data. Change associated code to use new functions.
peter1138 <peter1138@openttd.org>
parents:
6091
diff
changeset
|
221 if (refit[i].cargo == cid && refit[i].value == CALLBACK_FAILED) duplicate = true; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
222 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
223 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
224 if (!duplicate) { |
6113
5cf0c6849eee
(svn r8849) -Codechange: Replace hardcoded global/climate cargo mapping tables with dynamically generated data. Change associated code to use new functions.
peter1138 <peter1138@openttd.org>
parents:
6091
diff
changeset
|
225 refit[num_lines].cargo = cid; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
226 refit[num_lines].subtype = 0; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
227 refit[num_lines].value = CALLBACK_FAILED; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
228 refit[num_lines].engine = INVALID_ENGINE; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
229 num_lines++; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
230 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
231 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
232 } |
7492
09743324277c
(svn r11003) -Codechange: replace Vehicle->next to Vehicle->Next() and Vehicle->SetNext() so we can trap instances that change a next pointer and (in the future) update the first/previous pointers based on that.
rubidium <rubidium@openttd.org>
parents:
7490
diff
changeset
|
233 } while (v->type == VEH_TRAIN && (u = u->Next()) != NULL && num_lines < max_lines); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
234 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
235 list->num_lines = num_lines; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
236 list->items = refit; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
237 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
238 return list; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
239 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
240 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
241 /** Draw the list of available refit options for a consist. |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
242 * Draw the list and highlight the selected refit option (if any) |
6484
17fdaec13730
(svn r9665) -Documentation: Doxygen corrections,errors, corrections of corrections...
belugas <belugas@openttd.org>
parents:
6423
diff
changeset
|
243 * @param *list first vehicle in consist to get the refit-options of |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
244 * @param sel selected refit cargo-type in the window |
6484
17fdaec13730
(svn r9665) -Documentation: Doxygen corrections,errors, corrections of corrections...
belugas <belugas@openttd.org>
parents:
6423
diff
changeset
|
245 * @param pos position of the selected item in caller widow |
17fdaec13730
(svn r9665) -Documentation: Doxygen corrections,errors, corrections of corrections...
belugas <belugas@openttd.org>
parents:
6423
diff
changeset
|
246 * @param rows number of rows(capacity) in caller window |
17fdaec13730
(svn r9665) -Documentation: Doxygen corrections,errors, corrections of corrections...
belugas <belugas@openttd.org>
parents:
6423
diff
changeset
|
247 * @param delta step height in caller window |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
248 * @return the refit option that is hightlighted, NULL if none |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
249 */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
250 static RefitOption *DrawVehicleRefitWindow(const RefitList *list, int sel, uint pos, uint rows, uint delta) |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
251 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
252 RefitOption *refit = list->items; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
253 RefitOption *selected = NULL; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
254 uint num_lines = list->num_lines; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
255 uint y = 31; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
256 uint i; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
257 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
258 /* Draw the list, and find the selected cargo (by its position in list) */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
259 for (i = 0; i < num_lines; i++) { |
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:
7798
diff
changeset
|
260 TextColour colour = TC_BLACK; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
261 if (sel == 0) { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
262 selected = &refit[i]; |
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:
7798
diff
changeset
|
263 colour = TC_WHITE; |
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 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
265 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
266 if (i >= pos && i < pos + rows) { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
267 /* Draw the cargo name */ |
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:
6056
diff
changeset
|
268 int last_x = DrawString(2, y, GetCargo(refit[i].cargo)->name, 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
|
269 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
270 /* If the callback succeeded, draw the cargo suffix */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
271 if (refit[i].value != CALLBACK_FAILED) { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
272 DrawString(last_x + 1, y, GetGRFStringID(GetEngineGRFID(refit[i].engine), 0xD000 + refit[i].value), colour); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
273 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
274 y += delta; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
275 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
276 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
277 sel--; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
278 } |
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 return selected; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
281 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
282 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
283 struct RefitWindow : public Window { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
284 int sel; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
285 RefitOption *cargo; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
286 RefitList *list; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
287 uint length; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
288 VehicleOrderID order; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
289 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
290 RefitWindow(const WindowDesc *desc, const Vehicle *v, VehicleOrderID order) : Window(desc, v->index) |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
291 { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
292 this->caption_color = v->owner; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
293 this->vscroll.cap = 8; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
294 this->resize.step_height = 14; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
295 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
296 this->order = order; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
297 this->sel = -1; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
298 this->list = BuildRefitList(v); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
299 if (v->type == VEH_TRAIN) this->length = CountVehiclesInChain(v); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
300 SetVScrollCount(this, this->list->num_lines); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
301 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
302 switch (v->type) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
303 case VEH_TRAIN: |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
304 this->widget[3].tooltips = STR_RAIL_SELECT_TYPE_OF_CARGO_FOR; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
305 this->widget[6].data = STR_RAIL_REFIT_VEHICLE; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
306 this->widget[6].tooltips = STR_RAIL_REFIT_TO_CARRY_HIGHLIGHTED; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
307 break; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
308 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
309 case VEH_ROAD: |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
310 this->widget[3].tooltips = STR_ROAD_SELECT_TYPE_OF_CARGO_FOR; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
311 this->widget[6].data = STR_REFIT_ROAD_VEHICLE; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
312 this->widget[6].tooltips = STR_REFIT_ROAD_VEHICLE_TO_CARRY_HIGHLIGHTED; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
313 break; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
314 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
315 case VEH_SHIP: |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
316 this->widget[3].tooltips = STR_983D_SELECT_TYPE_OF_CARGO_FOR; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
317 this->widget[6].data = STR_983C_REFIT_SHIP; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
318 this->widget[6].tooltips = STR_983E_REFIT_SHIP_TO_CARRY_HIGHLIGHTED; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
319 break; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
320 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
321 case VEH_AIRCRAFT: |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
322 this->widget[3].tooltips = STR_A03E_SELECT_TYPE_OF_CARGO_FOR; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
323 this->widget[6].data = STR_A03D_REFIT_AIRCRAFT; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
324 this->widget[6].tooltips = STR_A03F_REFIT_AIRCRAFT_TO_CARRY; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
325 break; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
326 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
327 default: NOT_REACHED(); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
328 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
329 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
330 this->FindWindowPlacementAndResize(desc); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
331 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
332 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
333 ~RefitWindow() |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
334 { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
335 free(this->list->items); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
336 free(this->list); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
337 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
338 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
339 virtual void OnPaint() |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
340 { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
341 Vehicle *v = GetVehicle(this->window_number); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
342 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
343 if (v->type == VEH_TRAIN) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
344 uint length = CountVehiclesInChain(v); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
345 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
346 if (length != this->length) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
347 /* Consist length has changed, so rebuild the refit list */ |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
348 free(this->list->items); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
349 free(this->list); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
350 this->list = BuildRefitList(v); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
351 this->length = length; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
352 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
353 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
354 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
355 SetVScrollCount(this, this->list->num_lines); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
356 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
357 SetDParam(0, v->index); |
9273
72a6d2e60834
(svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium <rubidium@openttd.org>
parents:
9262
diff
changeset
|
358 this->DrawWidgets(); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
359 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
360 this->cargo = DrawVehicleRefitWindow(this->list, this->sel, this->vscroll.pos, this->vscroll.cap, this->resize.step_height); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
361 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
362 if (this->cargo != NULL) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
363 CommandCost cost; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
364 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
365 cost = DoCommand(v->tile, v->index, this->cargo->cargo | this->cargo->subtype << 8, |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
366 DC_QUERY_COST, GetCmdRefitVeh(v->type)); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
367 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
368 if (CmdSucceeded(cost)) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
369 SetDParam(0, this->cargo->cargo); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
370 SetDParam(1, _returned_refit_capacity); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
371 SetDParam(2, cost.GetCost()); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
372 DrawString(2, this->widget[5].top + 1, STR_9840_NEW_CAPACITY_COST_OF_REFIT, TC_FROMSTRING); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
373 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
374 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
375 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
376 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
377 virtual void OnClick(Point pt, int widget) |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
378 { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
379 switch (widget) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
380 case 3: { // listbox |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
381 int y = pt.y - this->widget[3].top; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
382 if (y >= 0) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
383 this->sel = (y / (int)this->resize.step_height) + this->vscroll.pos; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
384 this->SetDirty(); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
385 } |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
386 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
|
387 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
388 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
389 case 6: // refit button |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
390 if (this->cargo != NULL) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
391 const Vehicle *v = GetVehicle(this->window_number); |
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 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
393 if (this->order == INVALID_VEH_ORDER_ID) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
394 int command = 0; |
6056
98baaa8dcbab
(svn r8786) -Cleanup: replaced a switch-case to get the right refit command for a certain vehicle type. We have a function to do that
bjarni <bjarni@openttd.org>
parents:
5955
diff
changeset
|
395 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
396 switch (v->type) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
397 default: NOT_REACHED(); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
398 case VEH_TRAIN: command = CMD_REFIT_RAIL_VEHICLE | CMD_MSG(STR_RAIL_CAN_T_REFIT_VEHICLE); break; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
399 case VEH_ROAD: command = CMD_REFIT_ROAD_VEH | CMD_MSG(STR_REFIT_ROAD_VEHICLE_CAN_T); break; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
400 case VEH_SHIP: command = CMD_REFIT_SHIP | CMD_MSG(STR_9841_CAN_T_REFIT_SHIP); break; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
401 case VEH_AIRCRAFT: command = CMD_REFIT_AIRCRAFT | CMD_MSG(STR_A042_CAN_T_REFIT_AIRCRAFT); break; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
402 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
403 if (DoCommandP(v->tile, v->index, this->cargo->cargo | this->cargo->subtype << 8, NULL, command)) delete this; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
404 } else { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
405 if (DoCommandP(v->tile, v->index, this->cargo->cargo | this->cargo->subtype << 8 | this->order << 16, NULL, CMD_ORDER_REFIT)) delete this; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
406 } |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
407 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
408 break; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
409 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
410 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
411 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
412 virtual void OnResize(Point new_size, Point delta) |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
413 { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
414 this->vscroll.cap += delta.y / (int)this->resize.step_height; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
415 this->widget[3].data = (this->vscroll.cap << 8) + 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
|
416 } |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
417 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
418 |
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 static const Widget _vehicle_refit_widgets[] = { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
421 { 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
|
422 { WWT_CAPTION, RESIZE_NONE, 14, 11, 239, 0, 13, STR_983B_REFIT, 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
|
423 { WWT_TEXTBTN, RESIZE_NONE, 14, 0, 239, 14, 27, STR_983F_SELECT_CARGO_TYPE_TO_CARRY, STR_983D_SELECT_TYPE_OF_CARGO_FOR}, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
424 { WWT_MATRIX, RESIZE_BOTTOM, 14, 0, 227, 28, 139, 0x801, STR_EMPTY}, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
425 { WWT_SCROLLBAR, RESIZE_BOTTOM, 14, 228, 239, 28, 139, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
426 { WWT_PANEL, RESIZE_TB, 14, 0, 239, 140, 161, 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
|
427 { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 227, 162, 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
|
428 { WWT_RESIZEBOX, RESIZE_TB, 14, 228, 239, 162, 173, 0x0, STR_RESIZE_BUTTON}, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
429 { 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
|
430 }; |
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 static const WindowDesc _vehicle_refit_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:
7072
diff
changeset
|
433 WDP_AUTO, WDP_AUTO, 240, 174, 240, 174, |
6491
696f0e1b046e
(svn r9672) -Cleanup: lots of coding style fixes around operands.
rubidium <rubidium@openttd.org>
parents:
6484
diff
changeset
|
434 WC_VEHICLE_REFIT, WC_VEHICLE_VIEW, |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
435 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
436 _vehicle_refit_widgets, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
437 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
438 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
439 /** Show the refit window for a vehicle |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
440 * @param *v The vehicle to show the refit window for |
6491
696f0e1b046e
(svn r9672) -Cleanup: lots of coding style fixes around operands.
rubidium <rubidium@openttd.org>
parents:
6484
diff
changeset
|
441 * @param order of the vehicle ( ? ) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
442 */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
443 void ShowVehicleRefitWindow(const Vehicle *v, VehicleOrderID order) |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
444 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
445 DeleteWindowById(WC_VEHICLE_REFIT, v->index); |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
446 new RefitWindow(&_vehicle_refit_desc, v, order); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
447 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
448 |
6423
72ac8bfaa32f
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas <belugas@openttd.org>
parents:
6350
diff
changeset
|
449 /** Display additional text from NewGRF in the purchase information window */ |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
450 uint ShowAdditionalText(int x, int y, uint w, EngineID engine) |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
451 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
452 uint16 callback = GetVehicleCallback(CBID_VEHICLE_ADDITIONAL_TEXT, 0, 0, engine, NULL); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
453 if (callback == CALLBACK_FAILED) return 0; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
454 |
6423
72ac8bfaa32f
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas <belugas@openttd.org>
parents:
6350
diff
changeset
|
455 /* STR_02BD is used to start the string with {BLACK} */ |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
456 SetDParam(0, GetGRFStringID(GetEngineGRFID(engine), 0xD000 + callback)); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
457 return DrawStringMultiLine(x, y, STR_02BD, w); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
458 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
459 |
6423
72ac8bfaa32f
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas <belugas@openttd.org>
parents:
6350
diff
changeset
|
460 /** Display list of cargo types of the engine, for the purchase information window */ |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
461 uint ShowRefitOptionsList(int x, int y, uint w, EngineID engine) |
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 /* List of cargo types of this engine */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
464 uint32 cmask = EngInfo(engine)->refit_mask; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
465 /* List of cargo types available in this climate */ |
6113
5cf0c6849eee
(svn r8849) -Codechange: Replace hardcoded global/climate cargo mapping tables with dynamically generated data. Change associated code to use new functions.
peter1138 <peter1138@openttd.org>
parents:
6091
diff
changeset
|
466 uint32 lmask = _cargo_mask; |
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 char *b = _userstring; |
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 /* Draw nothing if the engine is not refittable */ |
7832
1f9fb5d427f9
(svn r11382) -Codechange: renamed COUNTBITS to CountBits, as it is no longer a macro (skidd13)
truelight <truelight@openttd.org>
parents:
7824
diff
changeset
|
470 if (CountBits(cmask) <= 1) return 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
|
471 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
472 b = InlineString(b, STR_PURCHASE_INFO_REFITTABLE_TO); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
473 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
474 if (cmask == lmask) { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
475 /* Engine can be refitted to all types in this climate */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
476 b = InlineString(b, STR_PURCHASE_INFO_ALL_TYPES); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
477 } else { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
478 /* Check if we are able to refit to more cargo types and unable to. If |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
479 * so, invert the cargo types to list those that we can't refit to. */ |
7832
1f9fb5d427f9
(svn r11382) -Codechange: renamed COUNTBITS to CountBits, as it is no longer a macro (skidd13)
truelight <truelight@openttd.org>
parents:
7824
diff
changeset
|
480 if (CountBits(cmask ^ lmask) < CountBits(cmask)) { |
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 cmask ^= lmask; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
482 b = InlineString(b, STR_PURCHASE_INFO_ALL_BUT); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
483 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
484 |
6113
5cf0c6849eee
(svn r8849) -Codechange: Replace hardcoded global/climate cargo mapping tables with dynamically generated data. Change associated code to use new functions.
peter1138 <peter1138@openttd.org>
parents:
6091
diff
changeset
|
485 bool first = true; |
5cf0c6849eee
(svn r8849) -Codechange: Replace hardcoded global/climate cargo mapping tables with dynamically generated data. Change associated code to use new functions.
peter1138 <peter1138@openttd.org>
parents:
6091
diff
changeset
|
486 |
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 /* Add each cargo type to the list */ |
6113
5cf0c6849eee
(svn r8849) -Codechange: Replace hardcoded global/climate cargo mapping tables with dynamically generated data. Change associated code to use new functions.
peter1138 <peter1138@openttd.org>
parents:
6091
diff
changeset
|
488 for (CargoID cid = 0; cid < NUM_CARGO; cid++) { |
7928
4e8dfd103163
(svn r11481) -Codechange: Rename the HASBIT function to fit with the naming style
skidd13 <skidd13@openttd.org>
parents:
7846
diff
changeset
|
489 if (!HasBit(cmask, cid)) 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
|
490 |
8041
085c454f158b
(svn r11601) -Codechange: more strict break conditions for _userstring, assert when it overflows anyway (eg. code change without proper check change)
smatz <smatz@openttd.org>
parents:
7997
diff
changeset
|
491 if (b >= lastof(_userstring) - (2 + 2 * 4)) break; // ", " and two calls to Utf8Encode() |
085c454f158b
(svn r11601) -Codechange: more strict break conditions for _userstring, assert when it overflows anyway (eg. code change without proper check change)
smatz <smatz@openttd.org>
parents:
7997
diff
changeset
|
492 |
6113
5cf0c6849eee
(svn r8849) -Codechange: Replace hardcoded global/climate cargo mapping tables with dynamically generated data. Change associated code to use new functions.
peter1138 <peter1138@openttd.org>
parents:
6091
diff
changeset
|
493 if (!first) b = strecpy(b, ", ", lastof(_userstring)); |
5cf0c6849eee
(svn r8849) -Codechange: Replace hardcoded global/climate cargo mapping tables with dynamically generated data. Change associated code to use new functions.
peter1138 <peter1138@openttd.org>
parents:
6091
diff
changeset
|
494 first = false; |
5cf0c6849eee
(svn r8849) -Codechange: Replace hardcoded global/climate cargo mapping tables with dynamically generated data. Change associated code to use new functions.
peter1138 <peter1138@openttd.org>
parents:
6091
diff
changeset
|
495 |
5cf0c6849eee
(svn r8849) -Codechange: Replace hardcoded global/climate cargo mapping tables with dynamically generated data. Change associated code to use new functions.
peter1138 <peter1138@openttd.org>
parents:
6091
diff
changeset
|
496 b = InlineString(b, GetCargo(cid)->name); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
497 } |
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 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
500 /* Terminate and display the completed string */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
501 *b = '\0'; |
8041
085c454f158b
(svn r11601) -Codechange: more strict break conditions for _userstring, assert when it overflows anyway (eg. code change without proper check change)
smatz <smatz@openttd.org>
parents:
7997
diff
changeset
|
502 |
085c454f158b
(svn r11601) -Codechange: more strict break conditions for _userstring, assert when it overflows anyway (eg. code change without proper check change)
smatz <smatz@openttd.org>
parents:
7997
diff
changeset
|
503 /* Make sure we detect any buffer overflow */ |
085c454f158b
(svn r11601) -Codechange: more strict break conditions for _userstring, assert when it overflows anyway (eg. code change without proper check change)
smatz <smatz@openttd.org>
parents:
7997
diff
changeset
|
504 assert(b < endof(_userstring)); |
085c454f158b
(svn r11601) -Codechange: more strict break conditions for _userstring, assert when it overflows anyway (eg. code change without proper check change)
smatz <smatz@openttd.org>
parents:
7997
diff
changeset
|
505 |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
506 return DrawStringMultiLine(x, y, STR_SPEC_USERSTRING, w); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
507 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
508 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
509 |
6423
72ac8bfaa32f
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas <belugas@openttd.org>
parents:
6350
diff
changeset
|
510 /* if the sorting criteria had the same value, sort vehicle by unitnumber */ |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
511 #define VEHICLEUNITNUMBERSORTER(r, a, b) {if (r == 0) {r = a->unitnumber - b->unitnumber;}} |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
512 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
513 static int CDECL VehicleNumberSorter(const void *a, const void *b) |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
514 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
515 const Vehicle* va = *(const Vehicle**)a; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
516 const Vehicle* vb = *(const Vehicle**)b; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
517 int r = va->unitnumber - vb->unitnumber; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
518 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
519 return (_internal_sort_order & 1) ? -r : r; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
520 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
521 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
522 static int CDECL VehicleNameSorter(const void *a, const void *b) |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
523 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
524 const Vehicle* va = *(const Vehicle**)a; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
525 const Vehicle* vb = *(const Vehicle**)b; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
526 int r; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
527 |
8662
c0b1a8566280
(svn r12324) -Fix (r6789): vehicles could be sorted in a wrong order when a vehicle name changed - cached name was not invalidated
smatz <smatz@openttd.org>
parents:
8661
diff
changeset
|
528 if (va != _last_vehicle[0]) { |
c0b1a8566280
(svn r12324) -Fix (r6789): vehicles could be sorted in a wrong order when a vehicle name changed - cached name was not invalidated
smatz <smatz@openttd.org>
parents:
8661
diff
changeset
|
529 _last_vehicle[0] = va; |
8258
6017c5ebeb7e
(svn r11822) -Codechange: Replaced fixed size custom name array. Names are now attached to their object directly and there is
peter1138 <peter1138@openttd.org>
parents:
8254
diff
changeset
|
530 SetDParam(0, va->index); |
8662
c0b1a8566280
(svn r12324) -Fix (r6789): vehicles could be sorted in a wrong order when a vehicle name changed - cached name was not invalidated
smatz <smatz@openttd.org>
parents:
8661
diff
changeset
|
531 GetString(_last_name[0], STR_VEHICLE_NAME, lastof(_last_name[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
|
532 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
533 |
8662
c0b1a8566280
(svn r12324) -Fix (r6789): vehicles could be sorted in a wrong order when a vehicle name changed - cached name was not invalidated
smatz <smatz@openttd.org>
parents:
8661
diff
changeset
|
534 if (vb != _last_vehicle[1]) { |
c0b1a8566280
(svn r12324) -Fix (r6789): vehicles could be sorted in a wrong order when a vehicle name changed - cached name was not invalidated
smatz <smatz@openttd.org>
parents:
8661
diff
changeset
|
535 _last_vehicle[1] = vb; |
8661
8fc83e298938
(svn r12323) -Fix [FS#1821](r6789): vehicle sorting by name was broken, it was comparing two the same strings (when caching was not used)
smatz <smatz@openttd.org>
parents:
8638
diff
changeset
|
536 SetDParam(0, vb->index); |
8662
c0b1a8566280
(svn r12324) -Fix (r6789): vehicles could be sorted in a wrong order when a vehicle name changed - cached name was not invalidated
smatz <smatz@openttd.org>
parents:
8661
diff
changeset
|
537 GetString(_last_name[1], STR_VEHICLE_NAME, lastof(_last_name[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
|
538 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
539 |
8662
c0b1a8566280
(svn r12324) -Fix (r6789): vehicles could be sorted in a wrong order when a vehicle name changed - cached name was not invalidated
smatz <smatz@openttd.org>
parents:
8661
diff
changeset
|
540 r = strcmp(_last_name[0], _last_name[1]); // sort by name |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
541 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
542 VEHICLEUNITNUMBERSORTER(r, va, vb); |
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 return (_internal_sort_order & 1) ? -r : r; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
545 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
546 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
547 static int CDECL VehicleAgeSorter(const void *a, const void *b) |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
548 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
549 const Vehicle* va = *(const Vehicle**)a; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
550 const Vehicle* vb = *(const Vehicle**)b; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
551 int r = va->age - vb->age; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
552 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
553 VEHICLEUNITNUMBERSORTER(r, va, vb); |
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 return (_internal_sort_order & 1) ? -r : r; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
556 } |
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 static int CDECL VehicleProfitThisYearSorter(const void *a, const void *b) |
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 const Vehicle* va = *(const Vehicle**)a; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
561 const Vehicle* vb = *(const Vehicle**)b; |
8614
36bb76188638
(svn r12197) -Fix [FS#1788](r12134): show correct last year profit when the train had negative income
smatz <smatz@openttd.org>
parents:
8556
diff
changeset
|
562 int r = ClampToI32(va->GetDisplayProfitThisYear() - vb->GetDisplayProfitThisYear()); |
5584
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 VEHICLEUNITNUMBERSORTER(r, va, vb); |
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 return (_internal_sort_order & 1) ? -r : r; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
567 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
568 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
569 static int CDECL VehicleProfitLastYearSorter(const void *a, const void *b) |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
570 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
571 const Vehicle* va = *(const Vehicle**)a; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
572 const Vehicle* vb = *(const Vehicle**)b; |
8614
36bb76188638
(svn r12197) -Fix [FS#1788](r12134): show correct last year profit when the train had negative income
smatz <smatz@openttd.org>
parents:
8556
diff
changeset
|
573 int r = ClampToI32(va->GetDisplayProfitLastYear() - vb->GetDisplayProfitLastYear()); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
574 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
575 VEHICLEUNITNUMBERSORTER(r, va, vb); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
576 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
577 return (_internal_sort_order & 1) ? -r : r; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
578 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
579 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
580 static int CDECL VehicleCargoSorter(const void *a, const void *b) |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
581 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
582 const Vehicle* va = *(const Vehicle**)a; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
583 const Vehicle* vb = *(const Vehicle**)b; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
584 const Vehicle* v; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
585 AcceptedCargo cargoa; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
586 AcceptedCargo cargob; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
587 int r = 0; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
588 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
589 memset(cargoa, 0, sizeof(cargoa)); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
590 memset(cargob, 0, sizeof(cargob)); |
7492
09743324277c
(svn r11003) -Codechange: replace Vehicle->next to Vehicle->Next() and Vehicle->SetNext() so we can trap instances that change a next pointer and (in the future) update the first/previous pointers based on that.
rubidium <rubidium@openttd.org>
parents:
7490
diff
changeset
|
591 for (v = va; v != NULL; v = v->Next()) cargoa[v->cargo_type] += v->cargo_cap; |
09743324277c
(svn r11003) -Codechange: replace Vehicle->next to Vehicle->Next() and Vehicle->SetNext() so we can trap instances that change a next pointer and (in the future) update the first/previous pointers based on that.
rubidium <rubidium@openttd.org>
parents:
7490
diff
changeset
|
592 for (v = vb; v != NULL; v = v->Next()) cargob[v->cargo_type] += v->cargo_cap; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
593 |
6350
8132258640be
(svn r9388) -Codechange: variable scope and type, and standardify all CargoID loops.
peter1138 <peter1138@openttd.org>
parents:
6259
diff
changeset
|
594 for (CargoID i = 0; i < NUM_CARGO; 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
|
595 r = cargoa[i] - cargob[i]; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
596 if (r != 0) break; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
597 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
598 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
599 VEHICLEUNITNUMBERSORTER(r, va, vb); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
600 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
601 return (_internal_sort_order & 1) ? -r : r; |
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 static int CDECL VehicleReliabilitySorter(const void *a, const void *b) |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
605 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
606 const Vehicle* va = *(const Vehicle**)a; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
607 const Vehicle* vb = *(const Vehicle**)b; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
608 int r = va->reliability - vb->reliability; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
609 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
610 VEHICLEUNITNUMBERSORTER(r, va, vb); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
611 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
612 return (_internal_sort_order & 1) ? -r : r; |
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 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
615 static int CDECL VehicleMaxSpeedSorter(const void *a, const void *b) |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
616 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
617 const Vehicle* va = *(const Vehicle**)a; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
618 const Vehicle* vb = *(const Vehicle**)b; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
619 int r; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
620 |
6259
4a39d6291d58
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium <rubidium@openttd.org>
parents:
6248
diff
changeset
|
621 if (va->type == VEH_TRAIN && vb->type == VEH_TRAIN) { |
8555
d0150d374a7b
(svn r12133) -Fix: Vehicle sorting by max speed did not work properly for trains. Instead of trying to work it out again, just use the cached values...
peter1138 <peter1138@openttd.org>
parents:
8424
diff
changeset
|
622 r = va->u.rail.cached_max_speed - vb->u.rail.cached_max_speed; |
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 } else { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
624 r = va->max_speed - vb->max_speed; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
625 } |
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 VEHICLEUNITNUMBERSORTER(r, va, vb); |
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 return (_internal_sort_order & 1) ? -r : r; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
630 } |
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 static int CDECL VehicleModelSorter(const void *a, const void *b) |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
633 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
634 const Vehicle* va = *(const Vehicle**)a; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
635 const Vehicle* vb = *(const Vehicle**)b; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
636 int r = va->engine_type - vb->engine_type; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
637 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
638 VEHICLEUNITNUMBERSORTER(r, va, vb); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
639 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
640 return (_internal_sort_order & 1) ? -r : r; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
641 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
642 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
643 static int CDECL VehicleValueSorter(const void *a, const void *b) |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
644 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
645 const Vehicle* va = *(const Vehicle**)a; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
646 const Vehicle* vb = *(const Vehicle**)b; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
647 const Vehicle *u; |
6990
a19700261804
(svn r10246) -Fix (r10297): some forgotten money conversions and truncation issues. Thanks to benc for providing the patch.
rubidium <rubidium@openttd.org>
parents:
6950
diff
changeset
|
648 Money valuea = 0, valueb = 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
|
649 |
7492
09743324277c
(svn r11003) -Codechange: replace Vehicle->next to Vehicle->Next() and Vehicle->SetNext() so we can trap instances that change a next pointer and (in the future) update the first/previous pointers based on that.
rubidium <rubidium@openttd.org>
parents:
7490
diff
changeset
|
650 for (u = va; u != NULL; u = u->Next()) valuea += u->value; |
09743324277c
(svn r11003) -Codechange: replace Vehicle->next to Vehicle->Next() and Vehicle->SetNext() so we can trap instances that change a next pointer and (in the future) update the first/previous pointers based on that.
rubidium <rubidium@openttd.org>
parents:
7490
diff
changeset
|
651 for (u = vb; u != NULL; u = u->Next()) valueb += u->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
|
652 |
6990
a19700261804
(svn r10246) -Fix (r10297): some forgotten money conversions and truncation issues. Thanks to benc for providing the patch.
rubidium <rubidium@openttd.org>
parents:
6950
diff
changeset
|
653 int r = ClampToI32(valuea - valueb); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
654 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
655 VEHICLEUNITNUMBERSORTER(r, va, vb); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
656 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
657 return (_internal_sort_order & 1) ? -r : r; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
658 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
659 |
8974
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
660 static int CDECL VehicleLengthSorter(const void *a, const void *b) |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
661 { |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
662 const Vehicle *va = *(const Vehicle**)a; |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
663 const Vehicle *vb = *(const Vehicle**)b; |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
664 int r = 0; |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
665 |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
666 switch (va->type) { |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
667 case VEH_TRAIN: |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
668 r = va->u.rail.cached_total_length - vb->u.rail.cached_total_length; |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
669 break; |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
670 |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
671 case VEH_ROAD: |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
672 for (const Vehicle *u = va; u != NULL; u = u->Next()) r += u->u.road.cached_veh_length; |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
673 for (const Vehicle *u = vb; u != NULL; u = u->Next()) r -= u->u.road.cached_veh_length; |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
674 break; |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
675 |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
676 default: NOT_REACHED(); |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
677 } |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
678 |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
679 VEHICLEUNITNUMBERSORTER(r, va, vb); |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
680 |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
681 return (_internal_sort_order & 1) ? -r : r; |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
682 } |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
683 |
6247
57363e064324
(svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents:
6148
diff
changeset
|
684 void InitializeGUI() |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
685 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
686 memset(&_sorting, 0, sizeof(_sorting)); |
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 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
689 /** Assigns an already open vehicle window to a new vehicle. |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
690 * Assigns an already open vehicle window to a new vehicle. If the vehicle got |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
691 * any sub window open (orders and so on) it will change owner too. |
9060
fdf9daf20b67
(svn r12912) -Codechange: overloaded ChangeVehicleViewWindow() so each argument can be either a Vehicle pointer or a VehicleID
bjarni <bjarni@openttd.org>
parents:
8994
diff
changeset
|
692 * @param from_index the current owner of the window |
fdf9daf20b67
(svn r12912) -Codechange: overloaded ChangeVehicleViewWindow() so each argument can be either a Vehicle pointer or a VehicleID
bjarni <bjarni@openttd.org>
parents:
8994
diff
changeset
|
693 * @param to_index the new owner of the window |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
694 */ |
9060
fdf9daf20b67
(svn r12912) -Codechange: overloaded ChangeVehicleViewWindow() so each argument can be either a Vehicle pointer or a VehicleID
bjarni <bjarni@openttd.org>
parents:
8994
diff
changeset
|
695 void ChangeVehicleViewWindow(VehicleID from_index, VehicleID to_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
|
696 { |
9060
fdf9daf20b67
(svn r12912) -Codechange: overloaded ChangeVehicleViewWindow() so each argument can be either a Vehicle pointer or a VehicleID
bjarni <bjarni@openttd.org>
parents:
8994
diff
changeset
|
697 Window *w = FindWindowById(WC_VEHICLE_VIEW, from_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
|
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 if (w != NULL) { |
9060
fdf9daf20b67
(svn r12912) -Codechange: overloaded ChangeVehicleViewWindow() so each argument can be either a Vehicle pointer or a VehicleID
bjarni <bjarni@openttd.org>
parents:
8994
diff
changeset
|
700 w->window_number = to_index; |
9184
a7020e34c67b
(svn r13047) -Codechange: remove vp_d
glx <glx@openttd.org>
parents:
9183
diff
changeset
|
701 w->viewport->follow_vehicle = to_index; |
9116
44beb31166aa
(svn r12976) -Codechange: use w->SetDirty() instead of SetWindowDirty(w) when it's certain that w != NULL.
rubidium <rubidium@openttd.org>
parents:
9115
diff
changeset
|
702 w->SetDirty(); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
703 |
9060
fdf9daf20b67
(svn r12912) -Codechange: overloaded ChangeVehicleViewWindow() so each argument can be either a Vehicle pointer or a VehicleID
bjarni <bjarni@openttd.org>
parents:
8994
diff
changeset
|
704 w = FindWindowById(WC_VEHICLE_ORDERS, from_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
|
705 if (w != NULL) { |
9060
fdf9daf20b67
(svn r12912) -Codechange: overloaded ChangeVehicleViewWindow() so each argument can be either a Vehicle pointer or a VehicleID
bjarni <bjarni@openttd.org>
parents:
8994
diff
changeset
|
706 w->window_number = to_index; |
9116
44beb31166aa
(svn r12976) -Codechange: use w->SetDirty() instead of SetWindowDirty(w) when it's certain that w != NULL.
rubidium <rubidium@openttd.org>
parents:
9115
diff
changeset
|
707 w->SetDirty(); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
708 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
709 |
9060
fdf9daf20b67
(svn r12912) -Codechange: overloaded ChangeVehicleViewWindow() so each argument can be either a Vehicle pointer or a VehicleID
bjarni <bjarni@openttd.org>
parents:
8994
diff
changeset
|
710 w = FindWindowById(WC_VEHICLE_REFIT, from_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
|
711 if (w != NULL) { |
9060
fdf9daf20b67
(svn r12912) -Codechange: overloaded ChangeVehicleViewWindow() so each argument can be either a Vehicle pointer or a VehicleID
bjarni <bjarni@openttd.org>
parents:
8994
diff
changeset
|
712 w->window_number = to_index; |
9116
44beb31166aa
(svn r12976) -Codechange: use w->SetDirty() instead of SetWindowDirty(w) when it's certain that w != NULL.
rubidium <rubidium@openttd.org>
parents:
9115
diff
changeset
|
713 w->SetDirty(); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
714 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
715 |
9060
fdf9daf20b67
(svn r12912) -Codechange: overloaded ChangeVehicleViewWindow() so each argument can be either a Vehicle pointer or a VehicleID
bjarni <bjarni@openttd.org>
parents:
8994
diff
changeset
|
716 w = FindWindowById(WC_VEHICLE_DETAILS, from_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
|
717 if (w != NULL) { |
9060
fdf9daf20b67
(svn r12912) -Codechange: overloaded ChangeVehicleViewWindow() so each argument can be either a Vehicle pointer or a VehicleID
bjarni <bjarni@openttd.org>
parents:
8994
diff
changeset
|
718 w->window_number = to_index; |
9116
44beb31166aa
(svn r12976) -Codechange: use w->SetDirty() instead of SetWindowDirty(w) when it's certain that w != NULL.
rubidium <rubidium@openttd.org>
parents:
9115
diff
changeset
|
719 w->SetDirty(); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
720 } |
8638
31d259463c60
(svn r12261) -Fix [FS#1805]: autoreplace did not update vehicle index for timetable window
glx <glx@openttd.org>
parents:
8614
diff
changeset
|
721 |
9060
fdf9daf20b67
(svn r12912) -Codechange: overloaded ChangeVehicleViewWindow() so each argument can be either a Vehicle pointer or a VehicleID
bjarni <bjarni@openttd.org>
parents:
8994
diff
changeset
|
722 w = FindWindowById(WC_VEHICLE_TIMETABLE, from_index); |
8638
31d259463c60
(svn r12261) -Fix [FS#1805]: autoreplace did not update vehicle index for timetable window
glx <glx@openttd.org>
parents:
8614
diff
changeset
|
723 if (w != NULL) { |
9060
fdf9daf20b67
(svn r12912) -Codechange: overloaded ChangeVehicleViewWindow() so each argument can be either a Vehicle pointer or a VehicleID
bjarni <bjarni@openttd.org>
parents:
8994
diff
changeset
|
724 w->window_number = to_index; |
9116
44beb31166aa
(svn r12976) -Codechange: use w->SetDirty() instead of SetWindowDirty(w) when it's certain that w != NULL.
rubidium <rubidium@openttd.org>
parents:
9115
diff
changeset
|
725 w->SetDirty(); |
8638
31d259463c60
(svn r12261) -Fix [FS#1805]: autoreplace did not update vehicle index for timetable window
glx <glx@openttd.org>
parents:
8614
diff
changeset
|
726 } |
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 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
728 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
729 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
730 enum VehicleListWindowWidgets { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
731 VLW_WIDGET_CLOSEBOX = 0, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
732 VLW_WIDGET_CAPTION, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
733 VLW_WIDGET_STICKY, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
734 VLW_WIDGET_SORT_ORDER, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
735 VLW_WIDGET_SORT_BY_PULLDOWN, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
736 VLW_WIDGET_EMPTY_TOP_RIGHT, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
737 VLW_WIDGET_LIST, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
738 VLW_WIDGET_SCROLLBAR, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
739 VLW_WIDGET_OTHER_PLAYER_FILLER, |
5846
54159187097e
(svn r8420) -Codechange (r7418): Rename the 'New <vehtype>' button of the global vehicle lists to 'Available <vehtype>' as it is a view-only list, not one from which you can purchase (rolling) stock.
Darkvater <Darkvater@openttd.org>
parents:
5809
diff
changeset
|
740 VLW_WIDGET_AVAILABLE_VEHICLES, |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
741 VLW_WIDGET_MANAGE_VEHICLES_DROPDOWN, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
742 VLW_WIDGET_STOP_ALL, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
743 VLW_WIDGET_START_ALL, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
744 VLW_WIDGET_EMPTY_BOTTOM_RIGHT, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
745 VLW_WIDGET_RESIZE, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
746 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
747 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
748 static const Widget _vehicle_list_widgets[] = { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
749 { 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
|
750 { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 247, 0, 13, 0x0, 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
|
751 { WWT_STICKYBOX, RESIZE_LR, 14, 248, 259, 0, 13, 0x0, 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
|
752 { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 80, 14, 25, STR_SORT_BY, STR_SORT_ORDER_TIP}, |
8346
7189ea1f59b2
(svn r11912) -Codechange: use dropdown widget for autoreplace, station builder and (second?) vehicle list windows
peter1138 <peter1138@openttd.org>
parents:
8333
diff
changeset
|
753 { WWT_DROPDOWN, RESIZE_NONE, 14, 81, 247, 14, 25, 0x0, STR_SORT_CRITERIA_TIP}, |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
754 { WWT_PANEL, RESIZE_RIGHT, 14, 248, 259, 14, 25, 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
|
755 { WWT_MATRIX, RESIZE_RB, 14, 0, 247, 26, 169, 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
|
756 { WWT_SCROLLBAR, RESIZE_LRB, 14, 248, 259, 26, 169, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
757 /* Widget to be shown for other players hiding the following 6 widgets */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
758 { WWT_PANEL, RESIZE_RTB, 14, 0, 247, 170, 181, 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
|
759 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
760 { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 105, 170, 181, 0x0, STR_AVAILABLE_ENGINES_TIP}, |
8346
7189ea1f59b2
(svn r11912) -Codechange: use dropdown widget for autoreplace, station builder and (second?) vehicle list windows
peter1138 <peter1138@openttd.org>
parents:
8333
diff
changeset
|
761 { WWT_DROPDOWN, RESIZE_TB, 14, 106, 223, 170, 181, STR_MANAGE_LIST, STR_MANAGE_LIST_TIP}, |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
762 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
763 { WWT_PUSHIMGBTN, RESIZE_TB, 14, 224, 235, 170, 181, SPR_FLAG_VEH_STOPPED, STR_MASS_STOP_LIST_TIP}, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
764 { WWT_PUSHIMGBTN, RESIZE_TB, 14, 236, 247, 170, 181, SPR_FLAG_VEH_RUNNING, STR_MASS_START_LIST_TIP}, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
765 { WWT_PANEL, RESIZE_RTB, 14, 248, 247, 170, 181, 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
|
766 { WWT_RESIZEBOX, RESIZE_LRTB, 14, 248, 259, 170, 181, 0x0, STR_RESIZE_BUTTON}, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
767 { 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
|
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 |
6643
18d58b36b9b3
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium <rubidium@openttd.org>
parents:
6638
diff
changeset
|
770 void DrawSmallOrderList(const Vehicle *v, int x, int 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
|
771 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
772 const Order *order; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
773 int sel, i = 0; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
774 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
775 sel = v->cur_order_index; |
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 FOR_VEHICLE_ORDERS(v, order) { |
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:
7798
diff
changeset
|
778 if (sel == 0) DrawString(x - 6, y, STR_SMALL_RIGHT_ARROW, TC_BLACK); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
779 sel--; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
780 |
8836
890a77315801
(svn r12584) -Codechange: do not access the order type directly.
rubidium <rubidium@openttd.org>
parents:
8786
diff
changeset
|
781 if (order->IsType(OT_GOTO_STATION)) { |
8840
c3d2f0eb69a1
(svn r12588) -Codechange: do not access the destination of an order directly.
rubidium <rubidium@openttd.org>
parents:
8836
diff
changeset
|
782 if (v->type == VEH_SHIP && GetStation(order->GetDestination())->IsBuoy()) 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
|
783 |
8840
c3d2f0eb69a1
(svn r12588) -Codechange: do not access the destination of an order directly.
rubidium <rubidium@openttd.org>
parents:
8836
diff
changeset
|
784 SetDParam(0, order->GetDestination()); |
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:
7798
diff
changeset
|
785 DrawString(x, y, STR_A036, 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
|
786 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
787 y += 6; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
788 if (++i == 4) break; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
789 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
790 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
791 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
792 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
793 /** |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
794 * Window for the (old) vehicle listing. |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
795 * |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
796 * bitmask for w->window_number |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
797 * 0-7 PlayerID (owner) |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
798 * 8-10 window type (use flags in vehicle_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
|
799 * 11-15 vehicle type (using VEH_, but can be compressed to fewer bytes if needed) |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
800 * 16-31 StationID or OrderID depending on window type (bit 8-10) |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
801 */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
802 struct VehicleListWindow : public Window, public VehicleListBase { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
803 |
9203
375bae14ff71
(svn r13069) -Codechange: it is no longer needed to pass a void *data pointer with the WE_CREATE message because nothing uses it anymore.
rubidium <rubidium@openttd.org>
parents:
9184
diff
changeset
|
804 VehicleListWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number) |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
805 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
806 uint16 window_type = this->window_number & VLW_MASK; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
807 PlayerID player = (PlayerID)GB(this->window_number, 0, 8); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
808 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
809 this->vehicle_type = (VehicleType)GB(this->window_number, 11, 5); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
810 this->caption_color = 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
|
811 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
812 /* Hide the widgets that we will not use in this window |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
813 * Some windows contains actions only fit for the owner */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
814 if (player == _local_player) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
815 this->HideWidget(VLW_WIDGET_OTHER_PLAYER_FILLER); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
816 this->SetWidgetDisabledState(VLW_WIDGET_AVAILABLE_VEHICLES, window_type != VLW_STANDARD); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
817 } else { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
818 this->SetWidgetsHiddenState(true, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
819 VLW_WIDGET_AVAILABLE_VEHICLES, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
820 VLW_WIDGET_MANAGE_VEHICLES_DROPDOWN, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
821 VLW_WIDGET_STOP_ALL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
822 VLW_WIDGET_START_ALL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
823 VLW_WIDGET_EMPTY_BOTTOM_RIGHT, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
824 WIDGET_LIST_END); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
825 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
826 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
827 /* Set up the window widgets */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
828 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
829 case VEH_TRAIN: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
830 this->widget[VLW_WIDGET_LIST].tooltips = STR_883D_TRAINS_CLICK_ON_TRAIN_FOR; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
831 this->widget[VLW_WIDGET_AVAILABLE_VEHICLES].data = STR_AVAILABLE_TRAINS; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
832 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
|
833 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
834 case VEH_ROAD: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
835 this->widget[VLW_WIDGET_LIST].tooltips = STR_901A_ROAD_VEHICLES_CLICK_ON; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
836 this->widget[VLW_WIDGET_AVAILABLE_VEHICLES].data = STR_AVAILABLE_ROAD_VEHICLES; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
837 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
838 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
839 case VEH_SHIP: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
840 this->widget[VLW_WIDGET_LIST].tooltips = STR_9823_SHIPS_CLICK_ON_SHIP_FOR; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
841 this->widget[VLW_WIDGET_AVAILABLE_VEHICLES].data = STR_AVAILABLE_SHIPS; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
842 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
843 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
844 case VEH_AIRCRAFT: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
845 this->widget[VLW_WIDGET_LIST].tooltips = STR_A01F_AIRCRAFT_CLICK_ON_AIRCRAFT; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
846 this->widget[VLW_WIDGET_AVAILABLE_VEHICLES].data = STR_AVAILABLE_AIRCRAFT; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
847 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
848 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
849 default: NOT_REACHED(); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
850 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
851 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
852 switch (window_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
853 case VLW_SHARED_ORDERS: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
854 this->widget[VLW_WIDGET_CAPTION].data = STR_VEH_WITH_SHARED_ORDERS_LIST; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
855 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
856 case VLW_STANDARD: /* Company Name - standard widget setup */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
857 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
858 case VEH_TRAIN: this->widget[VLW_WIDGET_CAPTION].data = STR_881B_TRAINS; break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
859 case VEH_ROAD: this->widget[VLW_WIDGET_CAPTION].data = STR_9001_ROAD_VEHICLES; break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
860 case VEH_SHIP: this->widget[VLW_WIDGET_CAPTION].data = STR_9805_SHIPS; break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
861 case VEH_AIRCRAFT: this->widget[VLW_WIDGET_CAPTION].data = STR_A009_AIRCRAFT; break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
862 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
863 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
864 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
865 case VLW_STATION_LIST: /* Station Name */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
866 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
867 case VEH_TRAIN: this->widget[VLW_WIDGET_CAPTION].data = STR_SCHEDULED_TRAINS; break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
868 case VEH_ROAD: this->widget[VLW_WIDGET_CAPTION].data = STR_SCHEDULED_ROAD_VEHICLES; break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
869 case VEH_SHIP: this->widget[VLW_WIDGET_CAPTION].data = STR_SCHEDULED_SHIPS; break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
870 case VEH_AIRCRAFT: this->widget[VLW_WIDGET_CAPTION].data = STR_SCHEDULED_AIRCRAFT; break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
871 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
872 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
873 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
|
874 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
875 case VLW_DEPOT_LIST: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
876 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
877 case VEH_TRAIN: this->widget[VLW_WIDGET_CAPTION].data = STR_VEHICLE_LIST_TRAIN_DEPOT; break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
878 case VEH_ROAD: this->widget[VLW_WIDGET_CAPTION].data = STR_VEHICLE_LIST_ROADVEH_DEPOT; break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
879 case VEH_SHIP: this->widget[VLW_WIDGET_CAPTION].data = STR_VEHICLE_LIST_SHIP_DEPOT; break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
880 case VEH_AIRCRAFT: this->widget[VLW_WIDGET_CAPTION].data = STR_VEHICLE_LIST_AIRCRAFT_DEPOT; break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
881 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
882 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
883 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
884 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
885 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
886 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
887 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
888 case VEH_TRAIN: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
889 this->resize.step_width = 1; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
890 /* Fallthrough */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
891 case VEH_ROAD: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
892 this->vscroll.cap = 7; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
893 this->resize.step_height = PLY_WND_PRC__SIZE_OF_ROW_SMALL; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
894 this->resize.height = 220 - (PLY_WND_PRC__SIZE_OF_ROW_SMALL * 3); // Minimum of 4 vehicles |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
895 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
896 case VEH_SHIP: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
897 case VEH_AIRCRAFT: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
898 this->vscroll.cap = 4; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
899 this->resize.step_height = PLY_WND_PRC__SIZE_OF_ROW_BIG; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
900 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
901 default: NOT_REACHED(); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
902 } |
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 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
904 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
905 this->widget[VLW_WIDGET_LIST].data = (this->vscroll.cap << 8) + 1; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
906 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
907 /* Set up sorting. Make the window-specific _sorting variable |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
908 * point to the correct global _sorting struct so we are freed |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
909 * from having conditionals during window operation */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
910 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
911 case VEH_TRAIN: this->sorting = &_sorting.train; break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
912 case VEH_ROAD: this->sorting = &_sorting.roadveh; break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
913 case VEH_SHIP: this->sorting = &_sorting.ship; break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
914 case VEH_AIRCRAFT: this->sorting = &_sorting.aircraft; break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
915 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
916 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
917 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
918 this->vehicles.flags = VL_REBUILD | (this->sorting->order ? VL_DESC : VL_NONE); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
919 this->vehicles.sort_type = this->sorting->criteria; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
920 this->vehicles.resort_timer = DAY_TICKS * PERIODIC_RESORT_DAYS; // Set up resort timer |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
921 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
922 this->FindWindowPlacementAndResize(desc); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
923 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
924 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
925 ~VehicleListWindow() |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
926 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
927 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
928 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
929 virtual void OnPaint() |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
930 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
931 int x = 2; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
932 int y = PLY_WND_PRC__OFFSET_TOP_WIDGET; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
933 int max; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
934 int i; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
935 const PlayerID owner = (PlayerID)this->caption_color; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
936 const uint16 window_type = this->window_number & VLW_MASK; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
937 const uint16 index = GB(this->window_number, 16, 16); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
938 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
939 BuildVehicleList(this, owner, index, window_type); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
940 SortVehicleList(this); |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
941 SetVScrollCount(this, this->vehicles.Length()); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
942 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
943 /* draw the widgets */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
944 switch (window_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
945 case VLW_SHARED_ORDERS: /* Shared Orders */ |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
946 if (this->vehicles.Length() == 0) { |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
947 /* We can't open this window without vehicles using this order |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
948 * and we should close the window when deleting the order */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
949 NOT_REACHED(); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
950 } |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
951 SetDParam(0, this->vscroll.count); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
952 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
953 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
954 case VLW_STANDARD: /* Company Name */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
955 SetDParam(0, owner); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
956 SetDParam(1, this->vscroll.count); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
957 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
958 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
959 case VLW_STATION_LIST: /* Station Name */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
960 SetDParam(0, index); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
961 SetDParam(1, this->vscroll.count); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
962 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
|
963 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
964 case VLW_DEPOT_LIST: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
965 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
966 case VEH_TRAIN: SetDParam(0, STR_8800_TRAIN_DEPOT); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
967 case VEH_ROAD: SetDParam(0, STR_9003_ROAD_VEHICLE_DEPOT); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
968 case VEH_SHIP: SetDParam(0, STR_9803_SHIP_DEPOT); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
969 case VEH_AIRCRAFT: SetDParam(0, STR_A002_AIRCRAFT_HANGAR); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
970 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
971 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
972 if (this->vehicle_type == VEH_AIRCRAFT) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
973 SetDParam(1, index); // Airport name |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
974 } else { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
975 SetDParam(1, GetDepot(index)->town_index); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
976 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
977 SetDParam(2, this->vscroll.count); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
978 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
979 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
980 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
981 |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
982 this->SetWidgetsDisabledState(this->vehicles.Length() == 0, |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
983 VLW_WIDGET_MANAGE_VEHICLES_DROPDOWN, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
984 VLW_WIDGET_STOP_ALL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
985 VLW_WIDGET_START_ALL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
986 WIDGET_LIST_END); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
987 |
9273
72a6d2e60834
(svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium <rubidium@openttd.org>
parents:
9262
diff
changeset
|
988 this->DrawWidgets(); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
989 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
990 /* draw sorting criteria string */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
991 DrawString(85, 15, _vehicle_sort_listing[this->vehicles.sort_type], TC_BLACK); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
992 /* draw arrow pointing up/down for ascending/descending sorting */ |
9273
72a6d2e60834
(svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium <rubidium@openttd.org>
parents:
9262
diff
changeset
|
993 this->DrawSortButtonState(VLW_WIDGET_SORT_ORDER, this->vehicles.flags & VL_DESC ? SBS_DOWN : SBS_UP); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
994 |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
995 max = min(this->vscroll.pos + this->vscroll.cap, this->vehicles.Length()); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
996 for (i = this->vscroll.pos; i < max; ++i) { |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
997 const Vehicle *v = this->vehicles[i]; |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
998 StringID str; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
999 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1000 SetDParam(0, v->GetDisplayProfitThisYear()); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1001 SetDParam(1, v->GetDisplayProfitLastYear()); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1002 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1003 DrawVehicleImage(v, x + 19, y + 6, INVALID_VEHICLE, this->widget[VLW_WIDGET_LIST].right - this->widget[VLW_WIDGET_LIST].left - 20, 0); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1004 DrawString(x + 19, y + this->resize.step_height - 8, STR_0198_PROFIT_THIS_YEAR_LAST_YEAR, 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
|
1005 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1006 if (v->name != NULL) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1007 /* The vehicle got a name so we will print it */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1008 SetDParam(0, v->index); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1009 DrawString(x + 19, y, STR_01AB, TC_FROMSTRING); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1010 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1011 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1012 if (this->resize.step_height == PLY_WND_PRC__SIZE_OF_ROW_BIG) DrawSmallOrderList(v, x + 138, y); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1013 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1014 if (v->IsInDepot()) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1015 str = STR_021F; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1016 } else { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1017 str = (v->age > v->max_age - 366) ? STR_00E3 : STR_00E2; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1018 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1019 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1020 SetDParam(0, v->unitnumber); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1021 DrawString(x, y + 2, str, TC_FROMSTRING); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1022 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1023 DrawVehicleProfitButton(v, x, y + 13); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1024 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1025 y += this->resize.step_height; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1026 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1027 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1028 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1029 virtual void OnClick(Point pt, int widget) |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1030 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1031 switch (widget) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1032 case VLW_WIDGET_SORT_ORDER: /* Flip sorting method ascending/descending */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1033 this->vehicles.flags ^= VL_DESC; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1034 this->vehicles.flags |= VL_RESORT; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1035 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1036 this->sorting->order = !!(this->vehicles.flags & VL_DESC); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1037 this->SetDirty(); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1038 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1039 case VLW_WIDGET_SORT_BY_PULLDOWN:/* Select sorting criteria dropdown menu */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1040 ShowDropDownMenu(this, _vehicle_sort_listing, this->vehicles.sort_type, VLW_WIDGET_SORT_BY_PULLDOWN, 0, (this->vehicle_type == VEH_TRAIN || this->vehicle_type == VEH_ROAD) ? 0 : (1 << 10)); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1041 return; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1042 case VLW_WIDGET_LIST: { /* Matrix to show vehicles */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1043 uint32 id_v = (pt.y - PLY_WND_PRC__OFFSET_TOP_WIDGET) / this->resize.step_height; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1044 const Vehicle *v; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1045 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1046 if (id_v >= this->vscroll.cap) return; // click out of bounds |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1047 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1048 id_v += this->vscroll.pos; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1049 |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
1050 if (id_v >= this->vehicles.Length()) return; // click out of list bound |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1051 |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
1052 v = this->vehicles[id_v]; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1053 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1054 ShowVehicleViewWindow(v); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1055 } break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1056 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1057 case VLW_WIDGET_AVAILABLE_VEHICLES: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1058 ShowBuildVehicleWindow(0, this->vehicle_type); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1059 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
|
1060 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1061 case VLW_WIDGET_MANAGE_VEHICLES_DROPDOWN: { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1062 static StringID action_str[] = { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1063 STR_REPLACE_VEHICLES, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1064 STR_SEND_FOR_SERVICING, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1065 STR_NULL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1066 INVALID_STRING_ID |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1067 }; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1068 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1069 static const StringID depot_name[] = { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1070 STR_SEND_TRAIN_TO_DEPOT, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1071 STR_SEND_ROAD_VEHICLE_TO_DEPOT, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1072 STR_SEND_SHIP_TO_DEPOT, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1073 STR_SEND_AIRCRAFT_TO_HANGAR |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1074 }; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1075 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1076 /* XXX - Substite string since the dropdown cannot handle dynamic strings */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1077 action_str[2] = depot_name[this->vehicle_type]; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1078 ShowDropDownMenu(this, action_str, 0, VLW_WIDGET_MANAGE_VEHICLES_DROPDOWN, 0, (this->window_number & VLW_MASK) == VLW_STANDARD ? 0 : 1); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1079 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
|
1080 } |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1081 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1082 case VLW_WIDGET_STOP_ALL: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1083 case VLW_WIDGET_START_ALL: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1084 DoCommandP(0, GB(this->window_number, 16, 16), (this->window_number & VLW_MASK) | (1 << 6) | (widget == VLW_WIDGET_START_ALL ? (1 << 5) : 0) | this->vehicle_type, NULL, CMD_MASS_START_STOP); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1085 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1086 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1087 } |
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 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1089 virtual void OnDropdownSelect(int widget, int index) |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1090 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1091 switch (widget) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1092 case VLW_WIDGET_SORT_BY_PULLDOWN: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1093 if (this->vehicles.sort_type != index) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1094 /* value has changed -> resort */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1095 this->vehicles.flags |= VL_RESORT; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1096 this->vehicles.sort_type = index; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1097 this->sorting->criteria = this->vehicles.sort_type; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1098 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1099 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1100 case VLW_WIDGET_MANAGE_VEHICLES_DROPDOWN: |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
1101 assert(this->vehicles.Length() != 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
|
1102 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1103 switch (index) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1104 case 0: /* Replace window */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1105 ShowReplaceGroupVehicleWindow(DEFAULT_GROUP, this->vehicle_type); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1106 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1107 case 1: /* Send for servicing */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1108 DoCommandP(0, GB(this->window_number, 16, 16) /* StationID or OrderID (depending on VLW) */, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1109 (this->window_number & VLW_MASK) | DEPOT_MASS_SEND | DEPOT_SERVICE, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1110 NULL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1111 GetCmdSendToDepot(this->vehicle_type)); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1112 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1113 case 2: /* Send to Depots */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1114 DoCommandP(0, GB(this->window_number, 16, 16) /* StationID or OrderID (depending on VLW) */, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1115 (this->window_number & VLW_MASK) | DEPOT_MASS_SEND, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1116 NULL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1117 GetCmdSendToDepot(this->vehicle_type)); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1118 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
|
1119 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1120 default: NOT_REACHED(); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1121 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1122 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1123 default: NOT_REACHED(); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1124 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1125 this->SetDirty(); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1126 } |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1127 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1128 virtual void OnTick() |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1129 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1130 if (_pause_game != 0) return; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1131 if (--this->vehicles.resort_timer == 0) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1132 StationID station = ((this->window_number & VLW_MASK) == VLW_STATION_LIST) ? GB(this->window_number, 16, 16) : INVALID_STATION; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1133 PlayerID owner = (PlayerID)this->caption_color; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1134 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1135 DEBUG(misc, 3, "Periodic resort %d list player %d at station %d", this->vehicle_type, owner, station); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1136 this->vehicles.resort_timer = DAY_TICKS * PERIODIC_RESORT_DAYS; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1137 this->vehicles.flags |= VL_RESORT; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1138 this->SetDirty(); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1139 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1140 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1141 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1142 virtual void OnResize(Point new_size, Point delta) |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1143 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1144 this->vscroll.cap += delta.y / (int)this->resize.step_height; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1145 this->widget[VLW_WIDGET_LIST].data = (this->vscroll.cap << 8) + 1; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1146 } |
9297
add307f2e6ea
(svn r13165) -Codechange: replace some RebuildXXXList/ResortXXXList+InvalidateWindowXXX with InvalidateWindowXXXData.
rubidium <rubidium@openttd.org>
parents:
9274
diff
changeset
|
1147 |
add307f2e6ea
(svn r13165) -Codechange: replace some RebuildXXXList/ResortXXXList+InvalidateWindowXXX with InvalidateWindowXXXData.
rubidium <rubidium@openttd.org>
parents:
9274
diff
changeset
|
1148 virtual void OnInvalidateData(int data) |
add307f2e6ea
(svn r13165) -Codechange: replace some RebuildXXXList/ResortXXXList+InvalidateWindowXXX with InvalidateWindowXXXData.
rubidium <rubidium@openttd.org>
parents:
9274
diff
changeset
|
1149 { |
add307f2e6ea
(svn r13165) -Codechange: replace some RebuildXXXList/ResortXXXList+InvalidateWindowXXX with InvalidateWindowXXXData.
rubidium <rubidium@openttd.org>
parents:
9274
diff
changeset
|
1150 this->vehicles.flags |= (data == 0 ? VL_REBUILD : VL_RESORT); |
add307f2e6ea
(svn r13165) -Codechange: replace some RebuildXXXList/ResortXXXList+InvalidateWindowXXX with InvalidateWindowXXXData.
rubidium <rubidium@openttd.org>
parents:
9274
diff
changeset
|
1151 } |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1152 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1153 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1154 static const WindowDesc _player_vehicle_list_train_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:
7072
diff
changeset
|
1155 WDP_AUTO, WDP_AUTO, 260, 182, 260, 182, |
5893
8547517ef719
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents:
5847
diff
changeset
|
1156 WC_TRAINS_LIST, 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
|
1157 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1158 _vehicle_list_widgets, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1159 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1160 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1161 static const WindowDesc _player_vehicle_list_road_veh_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:
7072
diff
changeset
|
1162 WDP_AUTO, WDP_AUTO, 260, 182, 260, 182, |
5893
8547517ef719
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents:
5847
diff
changeset
|
1163 WC_ROADVEH_LIST, 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
|
1164 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1165 _vehicle_list_widgets, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1166 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1167 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1168 static const WindowDesc _player_vehicle_list_ship_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:
7072
diff
changeset
|
1169 WDP_AUTO, WDP_AUTO, 260, 182, 260, 182, |
5893
8547517ef719
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents:
5847
diff
changeset
|
1170 WC_SHIPS_LIST, 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
|
1171 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1172 _vehicle_list_widgets, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1173 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1174 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1175 static const WindowDesc _player_vehicle_list_aircraft_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:
7072
diff
changeset
|
1176 WDP_AUTO, WDP_AUTO, 260, 182, 260, 182, |
5893
8547517ef719
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents:
5847
diff
changeset
|
1177 WC_AIRCRAFT_LIST, 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
|
1178 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1179 _vehicle_list_widgets, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1180 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1181 |
6638
5479975c4e36
(svn r9869) -Codechange: replace some bytes with VehicleType, i.e. more type strictness.
rubidium <rubidium@openttd.org>
parents:
6621
diff
changeset
|
1182 static void ShowVehicleListWindowLocal(PlayerID player, uint16 VLW_flag, VehicleType vehicle_type, uint16 unique_number) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1183 { |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1184 VehicleListWindow *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
|
1185 WindowNumber num; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1186 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1187 if (!IsValidPlayer(player)) return; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1188 |
5745
9c34cdf6cc19
(svn r8293) -Codechange: overloaded ShowVehicleListWindow() so it can open all types of vehicle lists (depending on arguments)
bjarni <bjarni@openttd.org>
parents:
5668
diff
changeset
|
1189 num = (unique_number << 16) | (vehicle_type << 11) | VLW_flag | 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
|
1190 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1191 /* The vehicle list windows have been unified. Just some strings need |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1192 * to be changed which happens in the WE_CREATE event and resizing |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1193 * some of the windows to the correct size */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1194 switch (vehicle_type) { |
5752
f8e26bee8df8
(svn r8303) -Codechange (r8293): default is moved to the front of the switch in ShowVehicleListWindowLocal()
bjarni <bjarni@openttd.org>
parents:
5747
diff
changeset
|
1195 default: NOT_REACHED(); |
6259
4a39d6291d58
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium <rubidium@openttd.org>
parents:
6248
diff
changeset
|
1196 case VEH_TRAIN: |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1197 w = AllocateWindowDescFront<VehicleListWindow>(&_player_vehicle_list_train_desc, num); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1198 if (w != NULL) ResizeWindow(w, 65, 38); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1199 break; |
6259
4a39d6291d58
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium <rubidium@openttd.org>
parents:
6248
diff
changeset
|
1200 case VEH_ROAD: |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1201 w = AllocateWindowDescFront<VehicleListWindow>(&_player_vehicle_list_road_veh_desc, num); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1202 if (w != NULL) ResizeWindow(w, 0, 38); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1203 break; |
6259
4a39d6291d58
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium <rubidium@openttd.org>
parents:
6248
diff
changeset
|
1204 case VEH_SHIP: |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1205 w = AllocateWindowDescFront<VehicleListWindow>(&_player_vehicle_list_ship_desc, num); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1206 break; |
6259
4a39d6291d58
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium <rubidium@openttd.org>
parents:
6248
diff
changeset
|
1207 case VEH_AIRCRAFT: |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1208 w = AllocateWindowDescFront<VehicleListWindow>(&_player_vehicle_list_aircraft_desc, num); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1209 break; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1210 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1211 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1212 if (w != NULL) { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1213 /* Set the minimum window size to the current window size */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1214 w->resize.width = w->width; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1215 w->resize.height = w->height; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1216 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1217 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1218 |
6638
5479975c4e36
(svn r9869) -Codechange: replace some bytes with VehicleType, i.e. more type strictness.
rubidium <rubidium@openttd.org>
parents:
6621
diff
changeset
|
1219 void ShowVehicleListWindow(PlayerID player, VehicleType vehicle_type) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1220 { |
9354
2b0c6e62535e
(svn r13251) -Codechange: rename _patches to _settings as that is more logic.
rubidium <rubidium@openttd.org>
parents:
9351
diff
changeset
|
1221 /* If _settings.gui.advanced_vehicle_list > 1, display the Advanced list |
2b0c6e62535e
(svn r13251) -Codechange: rename _patches to _settings as that is more logic.
rubidium <rubidium@openttd.org>
parents:
9351
diff
changeset
|
1222 * if _settings.gui.advanced_vehicle_list == 1, display Advanced list only for local player |
7547
19e0f0f69f30
(svn r11067) -Codechange: also make it possible to use the advanced vehicle list for other players. Patch by SmatZ.
rubidium <rubidium@openttd.org>
parents:
7540
diff
changeset
|
1223 * if _ctrl_pressed, do the opposite action (Advanced list x Normal list) |
19e0f0f69f30
(svn r11067) -Codechange: also make it possible to use the advanced vehicle list for other players. Patch by SmatZ.
rubidium <rubidium@openttd.org>
parents:
7540
diff
changeset
|
1224 */ |
19e0f0f69f30
(svn r11067) -Codechange: also make it possible to use the advanced vehicle list for other players. Patch by SmatZ.
rubidium <rubidium@openttd.org>
parents:
7540
diff
changeset
|
1225 |
9354
2b0c6e62535e
(svn r13251) -Codechange: rename _patches to _settings as that is more logic.
rubidium <rubidium@openttd.org>
parents:
9351
diff
changeset
|
1226 if ((_settings.gui.advanced_vehicle_list > (uint)(player != _local_player)) != _ctrl_pressed) { |
6643
18d58b36b9b3
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium <rubidium@openttd.org>
parents:
6638
diff
changeset
|
1227 ShowPlayerGroup(player, vehicle_type); |
18d58b36b9b3
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium <rubidium@openttd.org>
parents:
6638
diff
changeset
|
1228 } else { |
18d58b36b9b3
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium <rubidium@openttd.org>
parents:
6638
diff
changeset
|
1229 ShowVehicleListWindowLocal(player, VLW_STANDARD, vehicle_type, 0); |
18d58b36b9b3
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium <rubidium@openttd.org>
parents:
6638
diff
changeset
|
1230 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1231 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1232 |
5745
9c34cdf6cc19
(svn r8293) -Codechange: overloaded ShowVehicleListWindow() so it can open all types of vehicle lists (depending on arguments)
bjarni <bjarni@openttd.org>
parents:
5668
diff
changeset
|
1233 void ShowVehicleListWindow(const Vehicle *v) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1234 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1235 if (v->orders == NULL) return; // no shared list to show |
5745
9c34cdf6cc19
(svn r8293) -Codechange: overloaded ShowVehicleListWindow() so it can open all types of vehicle lists (depending on arguments)
bjarni <bjarni@openttd.org>
parents:
5668
diff
changeset
|
1236 ShowVehicleListWindowLocal(v->owner, VLW_SHARED_ORDERS, v->type, v->orders->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
|
1237 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1238 |
6638
5479975c4e36
(svn r9869) -Codechange: replace some bytes with VehicleType, i.e. more type strictness.
rubidium <rubidium@openttd.org>
parents:
6621
diff
changeset
|
1239 void ShowVehicleListWindow(PlayerID player, VehicleType vehicle_type, StationID station) |
5745
9c34cdf6cc19
(svn r8293) -Codechange: overloaded ShowVehicleListWindow() so it can open all types of vehicle lists (depending on arguments)
bjarni <bjarni@openttd.org>
parents:
5668
diff
changeset
|
1240 { |
9c34cdf6cc19
(svn r8293) -Codechange: overloaded ShowVehicleListWindow() so it can open all types of vehicle lists (depending on arguments)
bjarni <bjarni@openttd.org>
parents:
5668
diff
changeset
|
1241 ShowVehicleListWindowLocal(player, VLW_STATION_LIST, vehicle_type, station); |
9c34cdf6cc19
(svn r8293) -Codechange: overloaded ShowVehicleListWindow() so it can open all types of vehicle lists (depending on arguments)
bjarni <bjarni@openttd.org>
parents:
5668
diff
changeset
|
1242 } |
9c34cdf6cc19
(svn r8293) -Codechange: overloaded ShowVehicleListWindow() so it can open all types of vehicle lists (depending on arguments)
bjarni <bjarni@openttd.org>
parents:
5668
diff
changeset
|
1243 |
6638
5479975c4e36
(svn r9869) -Codechange: replace some bytes with VehicleType, i.e. more type strictness.
rubidium <rubidium@openttd.org>
parents:
6621
diff
changeset
|
1244 void ShowVehicleListWindow(PlayerID player, VehicleType vehicle_type, TileIndex depot_tile) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1245 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1246 uint16 depot_airport_index; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1247 |
6259
4a39d6291d58
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium <rubidium@openttd.org>
parents:
6248
diff
changeset
|
1248 if (vehicle_type == VEH_AIRCRAFT) { |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1249 depot_airport_index = GetStationIndex(depot_tile); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1250 } else { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1251 Depot *depot = GetDepotByTile(depot_tile); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1252 if (depot == NULL) return; // no depot to show |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1253 depot_airport_index = depot->index; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1254 } |
5745
9c34cdf6cc19
(svn r8293) -Codechange: overloaded ShowVehicleListWindow() so it can open all types of vehicle lists (depending on arguments)
bjarni <bjarni@openttd.org>
parents:
5668
diff
changeset
|
1255 ShowVehicleListWindowLocal(player, VLW_DEPOT_LIST, vehicle_type, depot_airport_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
|
1256 } |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1257 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1258 |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1259 /* Unified vehicle GUI - Vehicle Details Window */ |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1260 |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1261 /** Constants of vehicle details widget indices */ |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1262 enum VehicleDetailsWindowWidgets { |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1263 VLD_WIDGET_CLOSEBOX = 0, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1264 VLD_WIDGET_CAPTION, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1265 VLD_WIDGET_RENAME_VEHICLE, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1266 VLD_WIDGET_TOP_DETAILS, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1267 VLD_WIDGET_INCREASE_SERVICING_INTERVAL, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1268 VLD_WIDGET_DECREASE_SERVICING_INTERVAL, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1269 VLD_WIDGET_BOTTOM_RIGHT, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1270 VLD_WIDGET_MIDDLE_DETAILS, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1271 VLD_WIDGET_SCROLLBAR, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1272 VLD_WIDGET_DETAILS_CARGO_CARRIED, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1273 VLD_WIDGET_DETAILS_TRAIN_VEHICLES, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1274 VLD_WIDGET_DETAILS_CAPACITY_OF_EACH, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1275 VLD_WIDGET_DETAILS_TOTAL_CARGO, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1276 VLD_WIDGET_RESIZE, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1277 }; |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1278 |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1279 /** Vehicle details widgets. */ |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1280 static const Widget _vehicle_details_widgets[] = { |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1281 { WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // VLD_WIDGET_CLOSEBOX |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1282 { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 364, 0, 13, 0x0, STR_018C_WINDOW_TITLE_DRAG_THIS}, // VLD_WIDGET_CAPTION |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1283 { WWT_PUSHTXTBTN, RESIZE_LR, 14, 365, 404, 0, 13, STR_01AA_NAME, STR_NULL /* filled in later */}, // VLD_WIDGET_RENAME_VEHICLE |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1284 { WWT_PANEL, RESIZE_RIGHT, 14, 0, 404, 14, 55, 0x0, STR_NULL}, // VLD_WIDGET_TOP_DETAILS |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1285 { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 10, 101, 106, STR_0188, STR_884D_INCREASE_SERVICING_INTERVAL}, // VLD_WIDGET_INCREASE_SERVICING_INTERVAL |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1286 { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 10, 107, 112, STR_0189, STR_884E_DECREASE_SERVICING_INTERVAL}, // VLD_WIDGET_DECREASE_SERVICING_INTERVAL |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1287 { WWT_PANEL, RESIZE_RTB, 14, 11, 404, 101, 112, 0x0, STR_NULL}, // VLD_WIDGET_BOTTOM_RIGHT |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1288 { WWT_MATRIX, RESIZE_RB, 14, 0, 392, 56, 100, 0x701, STR_NULL}, // VLD_WIDGET_MIDDLE_DETAILS |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1289 { WWT_SCROLLBAR, RESIZE_LRB, 14, 393, 404, 56, 100, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, // VLD_WIDGET_SCROLLBAR |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1290 { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 95, 113, 124, STR_013C_CARGO, STR_884F_SHOW_DETAILS_OF_CARGO_CARRIED}, // VLD_WIDGET_DETAILS_CARGO_CARRIED |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1291 { WWT_PUSHTXTBTN, RESIZE_TB, 14, 96, 194, 113, 124, STR_013D_INFORMATION, STR_8850_SHOW_DETAILS_OF_TRAIN_VEHICLES},// VLD_WIDGET_DETAILS_TRAIN_VEHICLES |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1292 { WWT_PUSHTXTBTN, RESIZE_TB, 14, 195, 293, 113, 124, STR_013E_CAPACITIES, STR_8851_SHOW_CAPACITIES_OF_EACH}, // VLD_WIDGET_DETAILS_CAPACITY_OF_EACH |
8424
17e30bf8f359
(svn r11994) -Codechange: Remove numbers from string names where the strings aren't present in TTD, since they don't correspond to either TTD's TextIDs or OpenTTD's StringIDs.
maedhros <maedhros@openttd.org>
parents:
8350
diff
changeset
|
1293 { WWT_PUSHTXTBTN, RESIZE_RTB, 14, 294, 392, 113, 124, STR_TOTAL_CARGO, STR_SHOW_TOTAL_CARGO}, // VLD_WIDGET_DETAILS_TOTAL_CARGO |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1294 { WWT_RESIZEBOX, RESIZE_LRTB, 14, 393, 404, 113, 124, 0x0, STR_RESIZE_BUTTON}, // VLD_RESIZE |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1295 { WIDGETS_END}, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1296 }; |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1297 |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1298 |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1299 /** Command indices for the _vehicle_command_translation_table. */ |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1300 enum VehicleStringTranslation { |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1301 VST_VEHICLE_AGE_RUNNING_COST_YR, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1302 VST_VEHICLE_MAX_SPEED, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1303 VST_VEHICLE_PROFIT_THIS_YEAR_LAST_YEAR, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1304 VST_VEHICLE_RELIABILITY_BREAKDOWNS, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1305 }; |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1306 |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1307 /** Command codes for the shared buttons indexed by VehicleCommandTranslation and vehicle type. */ |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1308 static const StringID _vehicle_translation_table[][4] = { |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1309 { // VST_VEHICLE_AGE_RUNNING_COST_YR |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1310 STR_885D_AGE_RUNNING_COST_YR, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1311 STR_900D_AGE_RUNNING_COST_YR, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1312 STR_9812_AGE_RUNNING_COST_YR, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1313 STR_A00D_AGE_RUNNING_COST_YR, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1314 }, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1315 { // VST_VEHICLE_MAX_SPEED |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1316 STR_NULL, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1317 STR_900E_MAX_SPEED, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1318 STR_9813_MAX_SPEED, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1319 STR_A00E_MAX_SPEED, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1320 }, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1321 { // VST_VEHICLE_PROFIT_THIS_YEAR_LAST_YEAR |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1322 STR_885F_PROFIT_THIS_YEAR_LAST_YEAR, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1323 STR_900F_PROFIT_THIS_YEAR_LAST_YEAR, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1324 STR_9814_PROFIT_THIS_YEAR_LAST_YEAR, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1325 STR_A00F_PROFIT_THIS_YEAR_LAST_YEAR, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1326 }, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1327 { // VST_VEHICLE_RELIABILITY_BREAKDOWNS |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1328 STR_8860_RELIABILITY_BREAKDOWNS, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1329 STR_9010_RELIABILITY_BREAKDOWNS, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1330 STR_9815_RELIABILITY_BREAKDOWNS, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1331 STR_A010_RELIABILITY_BREAKDOWNS, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1332 }, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1333 }; |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1334 |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1335 |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1336 extern int GetTrainDetailsWndVScroll(VehicleID veh_id, byte det_tab); |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1337 extern void DrawTrainDetails(const Vehicle *v, int x, int y, int vscroll_pos, uint16 vscroll_cap, byte det_tab); |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1338 extern void DrawRoadVehDetails(const Vehicle *v, int x, int y); |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1339 extern void DrawShipDetails(const Vehicle *v, int x, int y); |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1340 extern void DrawAircraftDetails(const Vehicle *v, int x, int y); |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1341 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1342 struct VehicleDetailsWindow : Window { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1343 int tab; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1344 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1345 /** Initialize a newly created vehicle details window */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1346 VehicleDetailsWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number) |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1347 { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1348 const Vehicle *v = GetVehicle(this->window_number); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1349 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1350 switch (v->type) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1351 case VEH_TRAIN: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1352 ResizeWindow(this, 0, 39); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1353 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1354 this->vscroll.cap = 6; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1355 this->height += 12; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1356 this->resize.step_height = 14; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1357 this->resize.height = this->height - 14 * 2; // Minimum of 4 wagons in the display |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1358 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1359 this->widget[VLD_WIDGET_RENAME_VEHICLE].tooltips = STR_8867_NAME_TRAIN; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1360 this->widget[VLD_WIDGET_CAPTION].data = STR_8802_DETAILS; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1361 break; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1362 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1363 case VEH_ROAD: { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1364 this->widget[VLD_WIDGET_CAPTION].data = STR_900C_DETAILS; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1365 this->widget[VLD_WIDGET_RENAME_VEHICLE].tooltips = STR_902E_NAME_ROAD_VEHICLE; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1366 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1367 if (!RoadVehHasArticPart(v)) break; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1368 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1369 /* Draw the text under the vehicle instead of next to it, minus the |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1370 * height already allocated for the cargo of the first vehicle. */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1371 uint height_extension = 15 - 11; |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1372 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1373 /* Add space for the cargo amount for each part. */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1374 for (const Vehicle *u = v; u != NULL; u = u->Next()) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1375 height_extension += 11; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1376 } |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1377 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1378 ResizeWindow(this, 0, height_extension); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1379 } break; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1380 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1381 case VEH_SHIP: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1382 this->widget[VLD_WIDGET_RENAME_VEHICLE].tooltips = STR_982F_NAME_SHIP; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1383 this->widget[VLD_WIDGET_CAPTION].data = STR_9811_DETAILS; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1384 break; |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1385 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1386 case VEH_AIRCRAFT: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1387 ResizeWindow(this, 0, 11); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1388 this->widget[VLD_WIDGET_RENAME_VEHICLE].tooltips = STR_A032_NAME_AIRCRAFT; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1389 this->widget[VLD_WIDGET_CAPTION].data = STR_A00C_DETAILS; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1390 break; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1391 default: NOT_REACHED(); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1392 } |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1393 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1394 if (v->type != VEH_TRAIN) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1395 this->vscroll.cap = 1; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1396 this->widget[VLD_WIDGET_MIDDLE_DETAILS].right += 12; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1397 } |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1398 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1399 this->widget[VLD_WIDGET_MIDDLE_DETAILS].data = (this->vscroll.cap << 8) + 1; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1400 this->caption_color = v->owner; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1401 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1402 this->tab = 0; |
9333
5236ba6c7d54
(svn r13225) -Fix (r13041): Missing calls to FindWindowPlacementAndResize() from lots
peter1138 <peter1138@openttd.org>
parents:
9317
diff
changeset
|
1403 |
5236ba6c7d54
(svn r13225) -Fix (r13041): Missing calls to FindWindowPlacementAndResize() from lots
peter1138 <peter1138@openttd.org>
parents:
9317
diff
changeset
|
1404 this->FindWindowPlacementAndResize(desc); |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1405 } |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1406 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1407 /** Checks whether service interval is enabled for the vehicle. */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1408 static bool IsVehicleServiceIntervalEnabled(const VehicleType vehicle_type) |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1409 { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1410 switch (vehicle_type) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1411 default: NOT_REACHED(); |
9354
2b0c6e62535e
(svn r13251) -Codechange: rename _patches to _settings as that is more logic.
rubidium <rubidium@openttd.org>
parents:
9351
diff
changeset
|
1412 case VEH_TRAIN: return _settings.vehicle.servint_trains != 0; break; |
2b0c6e62535e
(svn r13251) -Codechange: rename _patches to _settings as that is more logic.
rubidium <rubidium@openttd.org>
parents:
9351
diff
changeset
|
1413 case VEH_ROAD: return _settings.vehicle.servint_roadveh != 0; break; |
2b0c6e62535e
(svn r13251) -Codechange: rename _patches to _settings as that is more logic.
rubidium <rubidium@openttd.org>
parents:
9351
diff
changeset
|
1414 case VEH_SHIP: return _settings.vehicle.servint_ships != 0; break; |
2b0c6e62535e
(svn r13251) -Codechange: rename _patches to _settings as that is more logic.
rubidium <rubidium@openttd.org>
parents:
9351
diff
changeset
|
1415 case VEH_AIRCRAFT: return _settings.vehicle.servint_aircraft != 0; break; |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1416 } |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1417 return false; // kill a compiler warning |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1418 } |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1419 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1420 /** |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1421 * Draw the details for the given vehicle at the position (x, y) of the Details windows |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1422 * |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1423 * @param v current vehicle |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1424 * @param x The x coordinate |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1425 * @param y The y coordinate |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1426 * @param vscroll_pos (train only) |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1427 * @param vscroll_cap (train only) |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1428 * @param det_tab (train only) |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1429 */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1430 static void DrawVehicleDetails(const Vehicle *v, int x, int y, int vscroll_pos, uint vscroll_cap, byte det_tab) |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1431 { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1432 switch (v->type) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1433 case VEH_TRAIN: DrawTrainDetails(v, x, y, vscroll_pos, vscroll_cap, det_tab); break; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1434 case VEH_ROAD: DrawRoadVehDetails(v, x, y); break; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1435 case VEH_SHIP: DrawShipDetails(v, x, y); break; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1436 case VEH_AIRCRAFT: DrawAircraftDetails(v, x, y); break; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1437 default: NOT_REACHED(); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1438 } |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1439 } |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1440 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1441 /** Repaint vehicle details window. */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1442 virtual void OnPaint() |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1443 { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1444 const Vehicle *v = GetVehicle(this->window_number); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1445 byte det_tab = this->tab; |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1446 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1447 this->SetWidgetDisabledState(VLD_WIDGET_RENAME_VEHICLE, v->owner != _local_player); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1448 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1449 if (v->type == VEH_TRAIN) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1450 this->DisableWidget(det_tab + VLD_WIDGET_DETAILS_CARGO_CARRIED); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1451 SetVScrollCount(this, GetTrainDetailsWndVScroll(v->index, det_tab)); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1452 } |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1453 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1454 this->SetWidgetsHiddenState(v->type != VEH_TRAIN, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1455 VLD_WIDGET_SCROLLBAR, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1456 VLD_WIDGET_DETAILS_CARGO_CARRIED, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1457 VLD_WIDGET_DETAILS_TRAIN_VEHICLES, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1458 VLD_WIDGET_DETAILS_CAPACITY_OF_EACH, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1459 VLD_WIDGET_DETAILS_TOTAL_CARGO, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1460 VLD_WIDGET_RESIZE, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1461 WIDGET_LIST_END); |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1462 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1463 /* Disable service-scroller when interval is set to disabled */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1464 this->SetWidgetsDisabledState(!IsVehicleServiceIntervalEnabled(v->type), |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1465 VLD_WIDGET_INCREASE_SERVICING_INTERVAL, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1466 VLD_WIDGET_DECREASE_SERVICING_INTERVAL, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1467 WIDGET_LIST_END); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1468 |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1469 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1470 SetDParam(0, v->index); |
9273
72a6d2e60834
(svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium <rubidium@openttd.org>
parents:
9262
diff
changeset
|
1471 this->DrawWidgets(); |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1472 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1473 /* Draw running cost */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1474 SetDParam(1, v->age / 366); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1475 SetDParam(0, (v->age + 365 < v->max_age) ? STR_AGE : STR_AGE_RED); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1476 SetDParam(2, v->max_age / 366); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1477 SetDParam(3, v->GetDisplayRunningCost()); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1478 DrawString(2, 15, _vehicle_translation_table[VST_VEHICLE_AGE_RUNNING_COST_YR][v->type], TC_FROMSTRING); |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1479 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1480 /* Draw max speed */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1481 switch (v->type) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1482 case VEH_TRAIN: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1483 SetDParam(2, v->GetDisplayMaxSpeed()); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1484 SetDParam(1, v->u.rail.cached_power); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1485 SetDParam(0, v->u.rail.cached_weight); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1486 SetDParam(3, v->u.rail.cached_max_te / 1000); |
9354
2b0c6e62535e
(svn r13251) -Codechange: rename _patches to _settings as that is more logic.
rubidium <rubidium@openttd.org>
parents:
9351
diff
changeset
|
1487 DrawString(2, 25, (_settings.vehicle.realistic_acceleration && v->u.rail.railtype != RAILTYPE_MAGLEV) ? |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1488 STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE : |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1489 STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED, TC_FROMSTRING); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1490 break; |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1491 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1492 case VEH_ROAD: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1493 case VEH_SHIP: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1494 case VEH_AIRCRAFT: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1495 SetDParam(0, v->GetDisplayMaxSpeed()); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1496 DrawString(2, 25, _vehicle_translation_table[VST_VEHICLE_MAX_SPEED][v->type], TC_FROMSTRING); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1497 break; |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1498 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1499 default: NOT_REACHED(); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1500 } |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1501 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1502 /* Draw profit */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1503 SetDParam(0, v->GetDisplayProfitThisYear()); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1504 SetDParam(1, v->GetDisplayProfitLastYear()); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1505 DrawString(2, 35, _vehicle_translation_table[VST_VEHICLE_PROFIT_THIS_YEAR_LAST_YEAR][v->type], TC_FROMSTRING); |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1506 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1507 /* Draw breakdown & reliability */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1508 SetDParam(0, v->reliability * 100 >> 16); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1509 SetDParam(1, v->breakdowns_since_last_service); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1510 DrawString(2, 45, _vehicle_translation_table[VST_VEHICLE_RELIABILITY_BREAKDOWNS][v->type], TC_FROMSTRING); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1511 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1512 /* Draw service interval text */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1513 SetDParam(0, v->service_interval); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1514 SetDParam(1, v->date_of_last_service); |
9354
2b0c6e62535e
(svn r13251) -Codechange: rename _patches to _settings as that is more logic.
rubidium <rubidium@openttd.org>
parents:
9351
diff
changeset
|
1515 DrawString(13, this->height - (v->type != VEH_TRAIN ? 11 : 23), _settings.vehicle.servint_ispercent ? STR_SERVICING_INTERVAL_PERCENT : STR_883C_SERVICING_INTERVAL_DAYS, TC_FROMSTRING); |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1516 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1517 switch (v->type) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1518 case VEH_TRAIN: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1519 DrawVehicleDetails(v, 2, 57, this->vscroll.pos, this->vscroll.cap, det_tab); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1520 break; |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1521 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1522 case VEH_ROAD: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1523 case VEH_SHIP: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1524 case VEH_AIRCRAFT: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1525 DrawVehicleImage(v, 3, 57, INVALID_VEHICLE, 0, 0); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1526 DrawVehicleDetails(v, 75, 57, this->vscroll.pos, this->vscroll.cap, det_tab); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1527 break; |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1528 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1529 default: NOT_REACHED(); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1530 } |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1531 } |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1532 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1533 virtual void OnClick(Point pt, int widget) |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1534 { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1535 /** Message strings for renaming vehicles indexed by vehicle type. */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1536 static const StringID _name_vehicle_title[] = { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1537 STR_8865_NAME_TRAIN, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1538 STR_902C_NAME_ROAD_VEHICLE, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1539 STR_9831_NAME_SHIP, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1540 STR_A030_NAME_AIRCRAFT |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1541 }; |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1542 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1543 switch (widget) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1544 case VLD_WIDGET_RENAME_VEHICLE: {// rename |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1545 const Vehicle *v = GetVehicle(this->window_number); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1546 SetDParam(0, v->index); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1547 ShowQueryString(STR_VEHICLE_NAME, _name_vehicle_title[v->type], 31, 150, this, CS_ALPHANUMERAL); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1548 } break; |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1549 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1550 case VLD_WIDGET_INCREASE_SERVICING_INTERVAL: // increase int |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1551 case VLD_WIDGET_DECREASE_SERVICING_INTERVAL: { // decrease int |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1552 int mod = _ctrl_pressed ? 5 : 10; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1553 const Vehicle *v = GetVehicle(this->window_number); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1554 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1555 mod = (widget == VLD_WIDGET_DECREASE_SERVICING_INTERVAL) ? -mod : mod; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1556 mod = GetServiceIntervalClamped(mod + v->service_interval); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1557 if (mod == v->service_interval) return; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1558 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1559 DoCommandP(v->tile, v->index, mod, NULL, CMD_CHANGE_SERVICE_INT | CMD_MSG(STR_018A_CAN_T_CHANGE_SERVICING)); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1560 } break; |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1561 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1562 case VLD_WIDGET_DETAILS_CARGO_CARRIED: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1563 case VLD_WIDGET_DETAILS_TRAIN_VEHICLES: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1564 case VLD_WIDGET_DETAILS_CAPACITY_OF_EACH: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1565 case VLD_WIDGET_DETAILS_TOTAL_CARGO: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1566 this->SetWidgetsDisabledState(false, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1567 VLD_WIDGET_DETAILS_CARGO_CARRIED, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1568 VLD_WIDGET_DETAILS_TRAIN_VEHICLES, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1569 VLD_WIDGET_DETAILS_CAPACITY_OF_EACH, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1570 VLD_WIDGET_DETAILS_TOTAL_CARGO, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1571 widget, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1572 WIDGET_LIST_END); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1573 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1574 this->tab = widget - VLD_WIDGET_DETAILS_CARGO_CARRIED; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1575 this->SetDirty(); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1576 break; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1577 } |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1578 } |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1579 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1580 virtual void OnQueryTextFinished(char *str) |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1581 { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1582 /** Message strings for error while renaming indexed by vehicle type. */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1583 static const StringID _name_vehicle_error[] = { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1584 STR_8866_CAN_T_NAME_TRAIN, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1585 STR_902D_CAN_T_NAME_ROAD_VEHICLE, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1586 STR_9832_CAN_T_NAME_SHIP, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1587 STR_A031_CAN_T_NAME_AIRCRAFT |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1588 }; |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1589 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1590 if (!StrEmpty(str)) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1591 _cmd_text = str; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1592 DoCommandP(0, this->window_number, 0, NULL, CMD_NAME_VEHICLE | CMD_MSG(_name_vehicle_error[GetVehicle(this->window_number)->type])); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1593 } |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1594 } |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1595 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1596 virtual void OnResize(Point new_size, Point delta) |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1597 { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1598 if (delta.x != 0) ResizeButtons(this, VLD_WIDGET_DETAILS_CARGO_CARRIED, VLD_WIDGET_DETAILS_TOTAL_CARGO); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1599 if (delta.y == 0) return; |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1600 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1601 this->vscroll.cap += delta.y / 14; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1602 this->widget[VLD_WIDGET_MIDDLE_DETAILS].data = (this->vscroll.cap << 8) + 1; |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1603 } |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1604 }; |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1605 |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1606 /** Vehicle details window descriptor. */ |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1607 static const WindowDesc _vehicle_details_desc = { |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1608 WDP_AUTO, WDP_AUTO, 405, 113, 405, 113, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1609 WC_VEHICLE_DETAILS, WC_VEHICLE_VIEW, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1610 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1611 _vehicle_details_widgets, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1612 }; |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1613 |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1614 /** Shows the vehicle details window of the given vehicle. */ |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1615 static void ShowVehicleDetailsWindow(const Vehicle *v) |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1616 { |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1617 DeleteWindowById(WC_VEHICLE_ORDERS, v->index); |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1618 DeleteWindowById(WC_VEHICLE_DETAILS, v->index); |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1619 AllocateWindowDescFront<VehicleDetailsWindow>(&_vehicle_details_desc, v->index); |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1620 } |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1621 |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1622 |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1623 /* Unified vehicle GUI - Vehicle View Window */ |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1624 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1625 /** Vehicle view widgets. */ |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1626 static const Widget _vehicle_view_widgets[] = { |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1627 { WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW }, // VVW_WIDGET_CLOSEBOX |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1628 { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 237, 0, 13, 0x0 /* filled later */, STR_018C_WINDOW_TITLE_DRAG_THIS }, // VVW_WIDGET_CAPTION |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1629 { WWT_STICKYBOX, RESIZE_LR, 14, 238, 249, 0, 13, 0x0, STR_STICKY_BUTTON }, // VVW_WIDGET_STICKY |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1630 { WWT_PANEL, RESIZE_RB, 14, 0, 231, 14, 103, 0x0, STR_NULL }, // VVW_WIDGET_PANEL |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1631 { WWT_INSET, RESIZE_RB, 14, 2, 229, 16, 101, 0x0, STR_NULL }, // VVW_WIDGET_VIEWPORT |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1632 { WWT_PUSHBTN, RESIZE_RTB, 14, 0, 237, 104, 115, 0x0, 0x0 /* filled later */ }, // VVW_WIDGET_START_STOP_VEH |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1633 { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 14, 31, SPR_CENTRE_VIEW_VEHICLE, 0x0 /* filled later */ }, // VVW_WIDGET_CENTER_MAIN_VIEH |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1634 { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 32, 49, 0x0 /* filled later */, 0x0 /* filled later */ }, // VVW_WIDGET_GOTO_DEPOT |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1635 { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 50, 67, SPR_REFIT_VEHICLE, 0x0 /* filled later */ }, // VVW_WIDGET_REFIT_VEH |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1636 { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 68, 85, SPR_SHOW_ORDERS, 0x0 /* filled later */ }, // VVW_WIDGET_SHOW_ORDERS |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1637 { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 86, 103, SPR_SHOW_VEHICLE_DETAILS, 0x0 /* filled later */ }, // VVW_WIDGET_SHOW_DETAILS |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1638 { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 32, 49, 0x0 /* filled later */, 0x0 /* filled later */ }, // VVW_WIDGET_CLONE_VEH |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1639 { WWT_PANEL, RESIZE_LRB, 14, 232, 249, 104, 103, 0x0, STR_NULL }, // VVW_WIDGET_EMPTY_BOTTOM_RIGHT |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1640 { WWT_RESIZEBOX, RESIZE_LRTB, 14, 238, 249, 104, 115, 0x0, STR_NULL }, // VVW_WIDGET_RESIZE |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1641 { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 50, 67, SPR_FORCE_VEHICLE_TURN, STR_9020_FORCE_VEHICLE_TO_TURN_AROUND }, // VVW_WIDGET_TURN_AROUND |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1642 { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 50, 67, SPR_IGNORE_SIGNALS, STR_884A_FORCE_TRAIN_TO_PROCEED }, // VVW_WIDGET_FORCE_PROCEED |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1643 { WIDGETS_END}, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1644 }; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1645 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1646 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1647 /** Vehicle view window descriptor for all vehicles but trains. */ |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1648 static const WindowDesc _vehicle_view_desc = { |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1649 WDP_AUTO, WDP_AUTO, 250, 116, 250, 116, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1650 WC_VEHICLE_VIEW, WC_NONE, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1651 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1652 _vehicle_view_widgets, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1653 }; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1654 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1655 /** Vehicle view window descriptor for trains. Only minimum_height and |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1656 * default_height are different for train view. |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1657 */ |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1658 static const WindowDesc _train_view_desc = { |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1659 WDP_AUTO, WDP_AUTO, 250, 134, 250, 134, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1660 WC_VEHICLE_VIEW, WC_NONE, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1661 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1662 _vehicle_view_widgets, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1663 }; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1664 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1665 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1666 /* Just to make sure, nobody has changed the vehicle type constants, as we are |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1667 using them for array indexing in a number of places here. */ |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1668 assert_compile(VEH_TRAIN == 0); |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1669 assert_compile(VEH_ROAD == 1); |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1670 assert_compile(VEH_SHIP == 2); |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1671 assert_compile(VEH_AIRCRAFT == 3); |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1672 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1673 /** Zoom levels for vehicle views indexed by vehicle type. */ |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1674 static const ZoomLevel _vehicle_view_zoom_levels[] = { |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1675 ZOOM_LVL_TRAIN, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1676 ZOOM_LVL_ROADVEH, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1677 ZOOM_LVL_SHIP, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1678 ZOOM_LVL_AIRCRAFT, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1679 }; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1680 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1681 /* Constants for geometry of vehicle view viewport */ |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1682 static const int VV_VIEWPORT_X = 3; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1683 static const int VV_VIEWPORT_Y = 17; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1684 static const int VV_INITIAL_VIEWPORT_WIDTH = 226; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1685 static const int VV_INITIAL_VIEWPORT_HEIGHT = 84; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1686 static const int VV_INITIAL_VIEWPORT_HEIGHT_TRAIN = 102; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1687 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1688 /** Command indices for the _vehicle_command_translation_table. */ |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1689 enum VehicleCommandTranslation { |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1690 VCT_CMD_START_STOP = 0, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1691 VCT_CMD_GOTO_DEPOT, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1692 VCT_CMD_CLONE_VEH, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1693 VCT_CMD_TURN_AROUND, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1694 }; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1695 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1696 /** Command codes for the shared buttons indexed by VehicleCommandTranslation and vehicle type. */ |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1697 static const uint32 _vehicle_command_translation_table[][4] = { |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1698 { // VCT_CMD_START_STOP |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1699 CMD_START_STOP_TRAIN | CMD_MSG(STR_883B_CAN_T_STOP_START_TRAIN), |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1700 CMD_START_STOP_ROADVEH | CMD_MSG(STR_9015_CAN_T_STOP_START_ROAD_VEHICLE), |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1701 CMD_START_STOP_SHIP | CMD_MSG(STR_9818_CAN_T_STOP_START_SHIP), |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1702 CMD_START_STOP_AIRCRAFT | CMD_MSG(STR_A016_CAN_T_STOP_START_AIRCRAFT) |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1703 }, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1704 { // VCT_CMD_GOTO_DEPOT |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1705 /* TrainGotoDepot has a nice randomizer in the pathfinder, which causes desyncs... */ |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1706 CMD_SEND_TRAIN_TO_DEPOT | CMD_NO_TEST_IF_IN_NETWORK | CMD_MSG(STR_8830_CAN_T_SEND_TRAIN_TO_DEPOT), |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1707 CMD_SEND_ROADVEH_TO_DEPOT | CMD_MSG(STR_9018_CAN_T_SEND_VEHICLE_TO_DEPOT), |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1708 CMD_SEND_SHIP_TO_DEPOT | CMD_MSG(STR_9819_CAN_T_SEND_SHIP_TO_DEPOT), |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1709 CMD_SEND_AIRCRAFT_TO_HANGAR | CMD_MSG(STR_A012_CAN_T_SEND_AIRCRAFT_TO) |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1710 }, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1711 { // VCT_CMD_CLONE_VEH |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1712 CMD_CLONE_VEHICLE | CMD_MSG(STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE), |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1713 CMD_CLONE_VEHICLE | CMD_MSG(STR_9009_CAN_T_BUILD_ROAD_VEHICLE), |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1714 CMD_CLONE_VEHICLE | CMD_MSG(STR_980D_CAN_T_BUILD_SHIP), |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1715 CMD_CLONE_VEHICLE | CMD_MSG(STR_A008_CAN_T_BUILD_AIRCRAFT) |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1716 }, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1717 { // VCT_CMD_TURN_AROUND |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1718 CMD_REVERSE_TRAIN_DIRECTION | CMD_MSG(STR_8869_CAN_T_REVERSE_DIRECTION), |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1719 CMD_TURN_ROADVEH | CMD_MSG(STR_9033_CAN_T_MAKE_VEHICLE_TURN), |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1720 0xffffffff, // invalid for ships |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1721 0xffffffff // invalid for aircrafts |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1722 }, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1723 }; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1724 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1725 /** Checks whether the vehicle may be refitted at the moment.*/ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1726 static bool IsVehicleRefitable(const Vehicle *v) |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1727 { |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1728 /* Why is this so different for different vehicles? |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1729 * Does maybe work one solution for all? |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1730 */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1731 switch (v->type) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1732 case VEH_TRAIN: return false; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1733 case VEH_ROAD: return EngInfo(v->engine_type)->refit_mask != 0 && v->IsStoppedInDepot(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1734 case VEH_SHIP: return ShipVehInfo(v->engine_type)->refittable && v->IsStoppedInDepot(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1735 case VEH_AIRCRAFT: return v->IsStoppedInDepot(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1736 default: NOT_REACHED(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1737 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1738 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1739 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1740 struct VehicleViewWindow : Window { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1741 VehicleViewWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number) |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1742 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1743 const Vehicle *v = GetVehicle(this->window_number); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1744 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1745 this->caption_color = v->owner; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1746 InitializeWindowViewport(this, VV_VIEWPORT_X, VV_VIEWPORT_Y, VV_INITIAL_VIEWPORT_WIDTH, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1747 (v->type == VEH_TRAIN) ? VV_INITIAL_VIEWPORT_HEIGHT_TRAIN : VV_INITIAL_VIEWPORT_HEIGHT, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1748 this->window_number | (1 << 31), _vehicle_view_zoom_levels[v->type]); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1749 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1750 /* |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1751 * fill in data and tooltip codes for the widgets and |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1752 * move some of the buttons for trains |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1753 */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1754 switch (v->type) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1755 case VEH_TRAIN: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1756 this->widget[VVW_WIDGET_CAPTION].data = STR_882E; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1757 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1758 this->widget[VVW_WIDGET_START_STOP_VEH].tooltips = STR_8846_CURRENT_TRAIN_ACTION_CLICK; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1759 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1760 this->widget[VVW_WIDGET_CENTER_MAIN_VIEH].tooltips = STR_8848_CENTER_MAIN_VIEW_ON_TRAIN; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1761 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1762 this->widget[VVW_WIDGET_GOTO_DEPOT].data = SPR_SEND_TRAIN_TODEPOT; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1763 this->widget[VVW_WIDGET_GOTO_DEPOT].tooltips = STR_8849_SEND_TRAIN_TO_DEPOT; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1764 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1765 this->widget[VVW_WIDGET_REFIT_VEH].tooltips = STR_RAIL_REFIT_VEHICLE_TO_CARRY; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1766 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1767 this->widget[VVW_WIDGET_SHOW_ORDERS].tooltips = STR_8847_SHOW_TRAIN_S_ORDERS; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1768 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1769 this->widget[VVW_WIDGET_SHOW_DETAILS].tooltips = STR_884C_SHOW_TRAIN_DETAILS; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1770 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1771 this->widget[VVW_WIDGET_CLONE_VEH].data = SPR_CLONE_TRAIN; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1772 this->widget[VVW_WIDGET_CLONE_VEH].tooltips = STR_CLONE_TRAIN_INFO; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1773 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1774 this->widget[VVW_WIDGET_TURN_AROUND].tooltips = STR_884B_REVERSE_DIRECTION_OF_TRAIN; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1775 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1776 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1777 /* due to more buttons we must modify the layout a bit for trains */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1778 this->widget[VVW_WIDGET_PANEL].bottom = 121; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1779 this->widget[VVW_WIDGET_VIEWPORT].bottom = 119; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1780 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1781 this->widget[VVW_WIDGET_START_STOP_VEH].top = 122; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1782 this->widget[VVW_WIDGET_START_STOP_VEH].bottom = 133; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1783 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1784 this->widget[VVW_WIDGET_REFIT_VEH].top = 68; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1785 this->widget[VVW_WIDGET_REFIT_VEH].bottom = 85; |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1786 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1787 this->widget[VVW_WIDGET_SHOW_ORDERS].top = 86; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1788 this->widget[VVW_WIDGET_SHOW_ORDERS].bottom = 103; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1789 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1790 this->widget[VVW_WIDGET_SHOW_DETAILS].top = 104; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1791 this->widget[VVW_WIDGET_SHOW_DETAILS].bottom = 121; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1792 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1793 this->widget[VVW_WIDGET_EMPTY_BOTTOM_RIGHT].top = 122; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1794 this->widget[VVW_WIDGET_EMPTY_BOTTOM_RIGHT].bottom = 121; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1795 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1796 this->widget[VVW_WIDGET_RESIZE].top = 122; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1797 this->widget[VVW_WIDGET_RESIZE].bottom = 133; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1798 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1799 this->widget[VVW_WIDGET_TURN_AROUND].top = 68; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1800 this->widget[VVW_WIDGET_TURN_AROUND].bottom = 85; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1801 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1802 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1803 case VEH_ROAD: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1804 this->widget[VVW_WIDGET_CAPTION].data = STR_9002; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1805 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1806 this->widget[VVW_WIDGET_START_STOP_VEH].tooltips = STR_901C_CURRENT_VEHICLE_ACTION; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1807 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1808 this->widget[VVW_WIDGET_CENTER_MAIN_VIEH].tooltips = STR_901E_CENTER_MAIN_VIEW_ON_VEHICLE; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1809 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1810 this->widget[VVW_WIDGET_GOTO_DEPOT].data = SPR_SEND_ROADVEH_TODEPOT; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1811 this->widget[VVW_WIDGET_GOTO_DEPOT].tooltips = STR_901F_SEND_VEHICLE_TO_DEPOT; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1812 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1813 this->widget[VVW_WIDGET_REFIT_VEH].tooltips = STR_REFIT_ROAD_VEHICLE_TO_CARRY; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1814 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1815 this->widget[VVW_WIDGET_SHOW_ORDERS].tooltips = STR_901D_SHOW_VEHICLE_S_ORDERS; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1816 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1817 this->widget[VVW_WIDGET_SHOW_DETAILS].tooltips = STR_9021_SHOW_ROAD_VEHICLE_DETAILS; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1818 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1819 this->widget[VVW_WIDGET_CLONE_VEH].data = SPR_CLONE_ROADVEH; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1820 this->widget[VVW_WIDGET_CLONE_VEH].tooltips = STR_CLONE_ROAD_VEHICLE_INFO; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1821 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1822 this->SetWidgetHiddenState(VVW_WIDGET_FORCE_PROCEED, true); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1823 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1824 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1825 case VEH_SHIP: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1826 this->widget[VVW_WIDGET_CAPTION].data = STR_980F; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1827 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1828 this->widget[VVW_WIDGET_START_STOP_VEH].tooltips = STR_9827_CURRENT_SHIP_ACTION_CLICK; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1829 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1830 this->widget[VVW_WIDGET_CENTER_MAIN_VIEH].tooltips = STR_9829_CENTER_MAIN_VIEW_ON_SHIP; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1831 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1832 this->widget[VVW_WIDGET_GOTO_DEPOT].data = SPR_SEND_SHIP_TODEPOT; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1833 this->widget[VVW_WIDGET_GOTO_DEPOT].tooltips = STR_982A_SEND_SHIP_TO_DEPOT; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1834 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1835 this->widget[VVW_WIDGET_REFIT_VEH].tooltips = STR_983A_REFIT_CARGO_SHIP_TO_CARRY; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1836 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1837 this->widget[VVW_WIDGET_SHOW_ORDERS].tooltips = STR_9828_SHOW_SHIP_S_ORDERS; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1838 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1839 this->widget[VVW_WIDGET_SHOW_DETAILS].tooltips = STR_982B_SHOW_SHIP_DETAILS; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1840 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1841 this->widget[VVW_WIDGET_CLONE_VEH].data = SPR_CLONE_SHIP; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1842 this->widget[VVW_WIDGET_CLONE_VEH].tooltips = STR_CLONE_SHIP_INFO; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1843 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1844 this->SetWidgetsHiddenState(true, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1845 VVW_WIDGET_TURN_AROUND, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1846 VVW_WIDGET_FORCE_PROCEED, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1847 WIDGET_LIST_END); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1848 break; |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1849 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1850 case VEH_AIRCRAFT: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1851 this->widget[VVW_WIDGET_CAPTION].data = STR_A00A; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1852 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1853 this->widget[VVW_WIDGET_START_STOP_VEH].tooltips = STR_A027_CURRENT_AIRCRAFT_ACTION; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1854 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1855 this->widget[VVW_WIDGET_CENTER_MAIN_VIEH].tooltips = STR_A029_CENTER_MAIN_VIEW_ON_AIRCRAFT; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1856 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1857 this->widget[VVW_WIDGET_GOTO_DEPOT].data = SPR_SEND_AIRCRAFT_TODEPOT; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1858 this->widget[VVW_WIDGET_GOTO_DEPOT].tooltips = STR_A02A_SEND_AIRCRAFT_TO_HANGAR; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1859 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1860 this->widget[VVW_WIDGET_REFIT_VEH].tooltips = STR_A03B_REFIT_AIRCRAFT_TO_CARRY; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1861 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1862 this->widget[VVW_WIDGET_SHOW_ORDERS].tooltips = STR_A028_SHOW_AIRCRAFT_S_ORDERS; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1863 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1864 this->widget[VVW_WIDGET_SHOW_DETAILS].tooltips = STR_A02B_SHOW_AIRCRAFT_DETAILS; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1865 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1866 this->widget[VVW_WIDGET_CLONE_VEH].data = SPR_CLONE_AIRCRAFT; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1867 this->widget[VVW_WIDGET_CLONE_VEH].tooltips = STR_CLONE_AIRCRAFT_INFO; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1868 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1869 this->SetWidgetsHiddenState(true, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1870 VVW_WIDGET_TURN_AROUND, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1871 VVW_WIDGET_FORCE_PROCEED, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1872 WIDGET_LIST_END); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1873 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1874 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1875 default: NOT_REACHED(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1876 } |
9333
5236ba6c7d54
(svn r13225) -Fix (r13041): Missing calls to FindWindowPlacementAndResize() from lots
peter1138 <peter1138@openttd.org>
parents:
9317
diff
changeset
|
1877 |
5236ba6c7d54
(svn r13225) -Fix (r13041): Missing calls to FindWindowPlacementAndResize() from lots
peter1138 <peter1138@openttd.org>
parents:
9317
diff
changeset
|
1878 this->FindWindowPlacementAndResize(desc); |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1879 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1880 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1881 ~VehicleViewWindow() |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1882 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1883 DeleteWindowById(WC_VEHICLE_ORDERS, this->window_number); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1884 DeleteWindowById(WC_VEHICLE_REFIT, this->window_number); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1885 DeleteWindowById(WC_VEHICLE_DETAILS, this->window_number); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1886 DeleteWindowById(WC_VEHICLE_TIMETABLE, this->window_number); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1887 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1888 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1889 virtual void OnPaint() |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1890 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1891 /** Message strings for heading to depot indexed by vehicle type. */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1892 static const StringID _heading_for_depot_strings[] = { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1893 STR_HEADING_FOR_TRAIN_DEPOT, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1894 STR_HEADING_FOR_ROAD_DEPOT, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1895 STR_HEADING_FOR_SHIP_DEPOT, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1896 STR_HEADING_FOR_HANGAR, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1897 }; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1898 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1899 /** Message strings for heading to depot and servicing indexed by vehicle type. */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1900 static const StringID _heading_for_depot_service_strings[] = { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1901 STR_HEADING_FOR_TRAIN_DEPOT_SERVICE, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1902 STR_HEADING_FOR_ROAD_DEPOT_SERVICE, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1903 STR_HEADING_FOR_SHIP_DEPOT_SERVICE, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1904 STR_HEADING_FOR_HANGAR_SERVICE, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1905 }; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1906 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1907 const Vehicle *v = GetVehicle(this->window_number); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1908 StringID str; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1909 bool is_localplayer = v->owner == _local_player; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1910 bool refitable_and_stopped_in_depot = IsVehicleRefitable(v); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1911 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1912 this->SetWidgetDisabledState(VVW_WIDGET_GOTO_DEPOT, !is_localplayer); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1913 this->SetWidgetDisabledState(VVW_WIDGET_REFIT_VEH, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1914 !refitable_and_stopped_in_depot || !is_localplayer); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1915 this->SetWidgetDisabledState(VVW_WIDGET_CLONE_VEH, !is_localplayer); |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1916 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1917 if (v->type == VEH_TRAIN) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1918 this->SetWidgetDisabledState(VVW_WIDGET_FORCE_PROCEED, !is_localplayer); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1919 this->SetWidgetDisabledState(VVW_WIDGET_TURN_AROUND, !is_localplayer); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1920 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1921 /* Cargo refit button is disabled, until we know we can enable it below. */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1922 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1923 if (is_localplayer) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1924 /* See if any vehicle can be refitted */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1925 for (const Vehicle *u = v; u != NULL; u = u->Next()) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1926 if (EngInfo(u->engine_type)->refit_mask != 0 || |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1927 (RailVehInfo(v->engine_type)->railveh_type != RAILVEH_WAGON && v->cargo_cap != 0)) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1928 this->EnableWidget(VVW_WIDGET_REFIT_VEH); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1929 /* We have a refittable carriage, bail out */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1930 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1931 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1932 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1933 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1934 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1935 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1936 /* draw widgets & caption */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1937 SetDParam(0, v->index); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1938 this->DrawWidgets(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1939 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1940 if (v->vehstatus & VS_CRASHED) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1941 str = STR_8863_CRASHED; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1942 } else if (v->type != VEH_AIRCRAFT && v->breakdown_ctr == 1) { // check for aircraft necessary? |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1943 str = STR_885C_BROKEN_DOWN; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1944 } else if (v->vehstatus & VS_STOPPED) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1945 if (v->type == VEH_TRAIN) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1946 if (v->cur_speed == 0) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1947 if (v->u.rail.cached_power == 0) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1948 str = STR_TRAIN_NO_POWER; |
7759
b9b3e3b75b92
(svn r11304) -Feature: Control-Clicking the Center Main View button on the vehicle window allows the main viewport to follow the chosen vehicle.(stevenh)
belugas <belugas@openttd.org>
parents:
7642
diff
changeset
|
1949 } else { |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1950 str = STR_8861_STOPPED; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1951 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1952 } else { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1953 SetDParam(0, v->GetDisplaySpeed()); |
9354
2b0c6e62535e
(svn r13251) -Codechange: rename _patches to _settings as that is more logic.
rubidium <rubidium@openttd.org>
parents:
9351
diff
changeset
|
1954 str = STR_TRAIN_STOPPING + _settings.gui.vehicle_speed; |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1955 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1956 } else { // no train |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1957 str = STR_8861_STOPPED; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1958 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1959 } else { // vehicle is in a "normal" state, show current order |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1960 switch (v->current_order.GetType()) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1961 case OT_GOTO_STATION: { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1962 SetDParam(0, v->current_order.GetDestination()); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1963 SetDParam(1, v->GetDisplaySpeed()); |
9354
2b0c6e62535e
(svn r13251) -Codechange: rename _patches to _settings as that is more logic.
rubidium <rubidium@openttd.org>
parents:
9351
diff
changeset
|
1964 str = STR_HEADING_FOR_STATION + _settings.gui.vehicle_speed; |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1965 } break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1966 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1967 case OT_GOTO_DEPOT: { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1968 if (v->type == VEH_AIRCRAFT) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1969 /* Aircrafts always go to a station, even if you say depot */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1970 SetDParam(0, v->current_order.GetDestination()); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1971 SetDParam(1, v->GetDisplaySpeed()); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1972 } else { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1973 Depot *depot = GetDepot(v->current_order.GetDestination()); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1974 SetDParam(0, depot->town_index); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1975 SetDParam(1, v->GetDisplaySpeed()); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1976 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1977 if ((v->current_order.GetDepotActionType() & ODATFB_HALT) && !(v->current_order.GetDepotOrderType() & ODTFB_PART_OF_ORDERS)) { |
9354
2b0c6e62535e
(svn r13251) -Codechange: rename _patches to _settings as that is more logic.
rubidium <rubidium@openttd.org>
parents:
9351
diff
changeset
|
1978 str = _heading_for_depot_strings[v->type] + _settings.gui.vehicle_speed; |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1979 } else { |
9354
2b0c6e62535e
(svn r13251) -Codechange: rename _patches to _settings as that is more logic.
rubidium <rubidium@openttd.org>
parents:
9351
diff
changeset
|
1980 str = _heading_for_depot_service_strings[v->type] + _settings.gui.vehicle_speed; |
7759
b9b3e3b75b92
(svn r11304) -Feature: Control-Clicking the Center Main View button on the vehicle window allows the main viewport to follow the chosen vehicle.(stevenh)
belugas <belugas@openttd.org>
parents:
7642
diff
changeset
|
1981 } |
b9b3e3b75b92
(svn r11304) -Feature: Control-Clicking the Center Main View button on the vehicle window allows the main viewport to follow the chosen vehicle.(stevenh)
belugas <belugas@openttd.org>
parents:
7642
diff
changeset
|
1982 } break; |
b9b3e3b75b92
(svn r11304) -Feature: Control-Clicking the Center Main View button on the vehicle window allows the main viewport to follow the chosen vehicle.(stevenh)
belugas <belugas@openttd.org>
parents:
7642
diff
changeset
|
1983 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1984 case OT_LOADING: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1985 str = STR_882F_LOADING_UNLOADING; |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1986 break; |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1987 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1988 case OT_GOTO_WAYPOINT: { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1989 assert(v->type == VEH_TRAIN); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1990 SetDParam(0, v->current_order.GetDestination()); |
9354
2b0c6e62535e
(svn r13251) -Codechange: rename _patches to _settings as that is more logic.
rubidium <rubidium@openttd.org>
parents:
9351
diff
changeset
|
1991 str = STR_HEADING_FOR_WAYPOINT + _settings.gui.vehicle_speed; |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1992 SetDParam(1, v->GetDisplaySpeed()); |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1993 break; |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1994 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1995 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1996 case OT_LEAVESTATION: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1997 if (v->type != VEH_AIRCRAFT) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1998 str = STR_LEAVING; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1999 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2000 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2001 /* fall-through if aircraft. Does this even happen? */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2002 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2003 default: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2004 if (v->num_orders == 0) { |
9354
2b0c6e62535e
(svn r13251) -Codechange: rename _patches to _settings as that is more logic.
rubidium <rubidium@openttd.org>
parents:
9351
diff
changeset
|
2005 str = STR_NO_ORDERS + _settings.gui.vehicle_speed; |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2006 SetDParam(0, v->GetDisplaySpeed()); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2007 } else { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2008 str = STR_EMPTY; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2009 } |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
2010 break; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
2011 } |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2012 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2013 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2014 /* draw the flag plus orders */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2015 DrawSprite(v->vehstatus & VS_STOPPED ? SPR_FLAG_VEH_STOPPED : SPR_FLAG_VEH_RUNNING, PAL_NONE, 2, this->widget[VVW_WIDGET_START_STOP_VEH].top + 1); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2016 DrawStringCenteredTruncated(this->widget[VVW_WIDGET_START_STOP_VEH].left + 8, this->widget[VVW_WIDGET_START_STOP_VEH].right, this->widget[VVW_WIDGET_START_STOP_VEH].top + 1, str, TC_FROMSTRING); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2017 this->DrawViewport(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2018 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2019 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2020 virtual void OnClick(Point pt, int widget) |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2021 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2022 const Vehicle *v = GetVehicle(this->window_number); |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
2023 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2024 switch (widget) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2025 case VVW_WIDGET_START_STOP_VEH: // start stop |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2026 DoCommandP(v->tile, v->index, 0, NULL, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2027 _vehicle_command_translation_table[VCT_CMD_START_STOP][v->type]); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2028 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2029 case VVW_WIDGET_CENTER_MAIN_VIEH: {/* center main view */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2030 const Window *mainwindow = FindWindowById(WC_MAIN_WINDOW, 0); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2031 /* code to allow the main window to 'follow' the vehicle if the ctrl key is pressed */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2032 if (_ctrl_pressed && mainwindow->viewport->zoom == ZOOM_LVL_NORMAL) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2033 mainwindow->viewport->follow_vehicle = v->index; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2034 } else { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2035 ScrollMainWindowTo(v->x_pos, v->y_pos); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2036 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2037 } break; |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
2038 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2039 case VVW_WIDGET_GOTO_DEPOT: // goto hangar |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2040 DoCommandP(v->tile, v->index, _ctrl_pressed ? DEPOT_SERVICE : 0, NULL, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2041 _vehicle_command_translation_table[VCT_CMD_GOTO_DEPOT][v->type]); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2042 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2043 case VVW_WIDGET_REFIT_VEH: // refit |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2044 ShowVehicleRefitWindow(v, INVALID_VEH_ORDER_ID); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2045 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2046 case VVW_WIDGET_SHOW_ORDERS: // show orders |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2047 if (_ctrl_pressed) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2048 ShowTimetableWindow(v); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2049 } else { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2050 ShowOrdersWindow(v); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2051 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2052 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2053 case VVW_WIDGET_SHOW_DETAILS: // show details |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2054 ShowVehicleDetailsWindow(v); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2055 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2056 case VVW_WIDGET_CLONE_VEH: // clone vehicle |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2057 DoCommandP(v->tile, v->index, _ctrl_pressed ? 1 : 0, CcCloneVehicle, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2058 _vehicle_command_translation_table[VCT_CMD_CLONE_VEH][v->type]); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2059 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2060 case VVW_WIDGET_TURN_AROUND: // turn around |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2061 assert(v->type == VEH_TRAIN || v->type == VEH_ROAD); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2062 DoCommandP(v->tile, v->index, 0, NULL, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2063 _vehicle_command_translation_table[VCT_CMD_TURN_AROUND][v->type]); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2064 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2065 case VVW_WIDGET_FORCE_PROCEED: // force proceed |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2066 assert(v->type == VEH_TRAIN); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2067 DoCommandP(v->tile, v->index, 0, NULL, CMD_FORCE_TRAIN_PROCEED | CMD_MSG(STR_8862_CAN_T_MAKE_TRAIN_PASS_SIGNAL)); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2068 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2069 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2070 } |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
2071 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2072 virtual void OnResize(Point new_size, Point delta) |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2073 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2074 this->viewport->width += delta.x; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2075 this->viewport->height += delta.y; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2076 this->viewport->virtual_width += delta.x; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2077 this->viewport->virtual_height += delta.y; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2078 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2079 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2080 virtual void OnTick() |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2081 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2082 const Vehicle *v = GetVehicle(this->window_number); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2083 bool veh_stopped = v->IsStoppedInDepot(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2084 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2085 /* Widget VVW_WIDGET_GOTO_DEPOT must be hidden if the vehicle is already |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2086 * stopped in depot. |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2087 * Widget VVW_WIDGET_CLONE_VEH should then be shown, since cloning is |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2088 * allowed only while in depot and stopped. |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2089 * This sytem allows to have two buttons, on top of each other. |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2090 * The same system applies to widget VVW_WIDGET_REFIT_VEH and VVW_WIDGET_TURN_AROUND.*/ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2091 if (veh_stopped != this->IsWidgetHidden(VVW_WIDGET_GOTO_DEPOT) || veh_stopped == this->IsWidgetHidden(VVW_WIDGET_CLONE_VEH)) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2092 this->SetWidgetHiddenState( VVW_WIDGET_GOTO_DEPOT, veh_stopped); // send to depot |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2093 this->SetWidgetHiddenState(VVW_WIDGET_CLONE_VEH, !veh_stopped); // clone |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2094 if (v->type == VEH_ROAD || v->type == VEH_TRAIN) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2095 this->SetWidgetHiddenState( VVW_WIDGET_REFIT_VEH, !veh_stopped); // refit |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2096 this->SetWidgetHiddenState(VVW_WIDGET_TURN_AROUND, veh_stopped); // force turn around |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
2097 } |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2098 this->SetDirty(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2099 } |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
2100 } |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2101 }; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2102 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2103 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2104 /** Shows the vehicle view window of the given vehicle. */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2105 void ShowVehicleViewWindow(const Vehicle *v) |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2106 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2107 AllocateWindowDescFront<VehicleViewWindow>((v->type == VEH_TRAIN) ? &_train_view_desc : &_vehicle_view_desc, v->index); |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
2108 } |
8144
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2109 |
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2110 void DrawVehicleImage(const Vehicle *v, int x, int y, VehicleID selection, int count, int skip) |
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2111 { |
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2112 switch (v->type) { |
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2113 case VEH_TRAIN: DrawTrainImage(v, x, y, selection, count, skip); break; |
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2114 case VEH_ROAD: DrawRoadVehImage(v, x, y, selection, count); break; |
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2115 case VEH_SHIP: DrawShipImage(v, x, y, selection); break; |
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2116 case VEH_AIRCRAFT: DrawAircraftImage(v, x, y, selection); break; |
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2117 default: NOT_REACHED(); |
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2118 } |
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2119 } |
9274
85a62fb8608f
(svn r13140) -Codechange: move the gui-list-sorting out of window_gui.h so window_gui.h only needs to be included in *_gui.cpp.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
2120 |
85a62fb8608f
(svn r13140) -Codechange: move the gui-list-sorting out of window_gui.h so window_gui.h only needs to be included in *_gui.cpp.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
2121 void StopGlobalFollowVehicle(const Vehicle *v) |
85a62fb8608f
(svn r13140) -Codechange: move the gui-list-sorting out of window_gui.h so window_gui.h only needs to be included in *_gui.cpp.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
2122 { |
85a62fb8608f
(svn r13140) -Codechange: move the gui-list-sorting out of window_gui.h so window_gui.h only needs to be included in *_gui.cpp.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
2123 Window *w = FindWindowById(WC_MAIN_WINDOW, 0); |
85a62fb8608f
(svn r13140) -Codechange: move the gui-list-sorting out of window_gui.h so window_gui.h only needs to be included in *_gui.cpp.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
2124 if (w != NULL && w->viewport->follow_vehicle == v->index) { |
85a62fb8608f
(svn r13140) -Codechange: move the gui-list-sorting out of window_gui.h so window_gui.h only needs to be included in *_gui.cpp.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
2125 ScrollMainWindowTo(v->x_pos, v->y_pos, true); // lock the main view on the vehicle's last position |
85a62fb8608f
(svn r13140) -Codechange: move the gui-list-sorting out of window_gui.h so window_gui.h only needs to be included in *_gui.cpp.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
2126 w->viewport->follow_vehicle = INVALID_VEHICLE; |
85a62fb8608f
(svn r13140) -Codechange: move the gui-list-sorting out of window_gui.h so window_gui.h only needs to be included in *_gui.cpp.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
2127 } |
85a62fb8608f
(svn r13140) -Codechange: move the gui-list-sorting out of window_gui.h so window_gui.h only needs to be included in *_gui.cpp.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
2128 } |