Mercurial > hg > openttd
annotate src/vehicle_gui.cpp @ 10348:ac68018602dc draft
(svn r14599) -Fix (r14598)[FS#2417]: Show again group-membership in the vehicle-lists. (Based on patch by PhilSophus)
author | frosch <frosch@openttd.org> |
---|---|
date | Thu, 20 Nov 2008 16:48:22 +0000 |
parents | 615db2678973 |
children | 399a56984e58 |
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" |
10208
39cf8eebfda5
(svn r14422) -Codechange: also reflect the changes of r14421 in the filenames.
rubidium <rubidium@openttd.org>
parents:
10207
diff
changeset
|
8 #include "company_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" |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
15 #include "vehicle_gui_base.h" |
8224
c45446125bf0
(svn r11787) -Codechange: more header rewrites. This time related to viewport.h.
rubidium <rubidium@openttd.org>
parents:
8214
diff
changeset
|
16 #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
|
17 #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
|
18 #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
|
19 #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
|
20 #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
|
21 #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
|
22 #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
|
23 #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
|
24 #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
|
25 #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
|
26 #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
|
27 #include "group.h" |
8111
5475263e4cab
(svn r11672) -Codechange: refactor some stuff out of gui.h.
rubidium <rubidium@openttd.org>
parents:
8107
diff
changeset
|
28 #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
|
29 #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
|
30 #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
|
31 #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
|
32 #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
|
33 #include "autoreplace_gui.h" |
8213
87c85bb42d6f
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium <rubidium@openttd.org>
parents:
8212
diff
changeset
|
34 #include "core/alloc_func.hpp" |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
35 #include "core/mem_func.hpp" |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
36 #include "core/sort_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
|
37 #include "string_func.h" |
8270
5613b863190d
(svn r11834) -Codechange: only include settings_type.h if needed.
rubidium <rubidium@openttd.org>
parents:
8264
diff
changeset
|
38 #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
|
39 #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
|
40 #include "order_func.h" |
9117
453c3d26f4bc
(svn r12977) -Codechange: remove quite some redundant (duplicate) function declarations.
rubidium <rubidium@openttd.org>
parents:
9116
diff
changeset
|
41 #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
|
42 #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
|
43 |
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
|
44 #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
|
45 #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
|
46 |
9182
d3a153aa328d
(svn r13045) -Codechange: make list_d (now GUIList) more generic and uniform.
rubidium <rubidium@openttd.org>
parents:
9161
diff
changeset
|
47 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
|
48 |
9563
7b66751960b8
(svn r13587) -Codechange: make some globals members of VehicleListBase since they are used as such
skidd13 <skidd13@openttd.org>
parents:
9530
diff
changeset
|
49 static GUIVehicleList::SortFunction VehicleNumberSorter; |
7b66751960b8
(svn r13587) -Codechange: make some globals members of VehicleListBase since they are used as such
skidd13 <skidd13@openttd.org>
parents:
9530
diff
changeset
|
50 static GUIVehicleList::SortFunction VehicleNameSorter; |
7b66751960b8
(svn r13587) -Codechange: make some globals members of VehicleListBase since they are used as such
skidd13 <skidd13@openttd.org>
parents:
9530
diff
changeset
|
51 static GUIVehicleList::SortFunction VehicleAgeSorter; |
7b66751960b8
(svn r13587) -Codechange: make some globals members of VehicleListBase since they are used as such
skidd13 <skidd13@openttd.org>
parents:
9530
diff
changeset
|
52 static GUIVehicleList::SortFunction VehicleProfitThisYearSorter; |
7b66751960b8
(svn r13587) -Codechange: make some globals members of VehicleListBase since they are used as such
skidd13 <skidd13@openttd.org>
parents:
9530
diff
changeset
|
53 static GUIVehicleList::SortFunction VehicleProfitLastYearSorter; |
7b66751960b8
(svn r13587) -Codechange: make some globals members of VehicleListBase since they are used as such
skidd13 <skidd13@openttd.org>
parents:
9530
diff
changeset
|
54 static GUIVehicleList::SortFunction VehicleCargoSorter; |
7b66751960b8
(svn r13587) -Codechange: make some globals members of VehicleListBase since they are used as such
skidd13 <skidd13@openttd.org>
parents:
9530
diff
changeset
|
55 static GUIVehicleList::SortFunction VehicleReliabilitySorter; |
7b66751960b8
(svn r13587) -Codechange: make some globals members of VehicleListBase since they are used as such
skidd13 <skidd13@openttd.org>
parents:
9530
diff
changeset
|
56 static GUIVehicleList::SortFunction VehicleMaxSpeedSorter; |
7b66751960b8
(svn r13587) -Codechange: make some globals members of VehicleListBase since they are used as such
skidd13 <skidd13@openttd.org>
parents:
9530
diff
changeset
|
57 static GUIVehicleList::SortFunction VehicleModelSorter; |
7b66751960b8
(svn r13587) -Codechange: make some globals members of VehicleListBase since they are used as such
skidd13 <skidd13@openttd.org>
parents:
9530
diff
changeset
|
58 static GUIVehicleList::SortFunction VehicleValueSorter; |
7b66751960b8
(svn r13587) -Codechange: make some globals members of VehicleListBase since they are used as such
skidd13 <skidd13@openttd.org>
parents:
9530
diff
changeset
|
59 static GUIVehicleList::SortFunction VehicleLengthSorter; |
10161
8897c483bae7
(svn r14352) -Feature: Allow sorting vehicles by remaining life time.
belugas <belugas@openttd.org>
parents:
10151
diff
changeset
|
60 static GUIVehicleList::SortFunction VehicleTimeToLiveSorter; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
61 |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
62 GUIVehicleList::SortFunction* const BaseVehicleListWindow::vehicle_sorter_funcs[] = { |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
63 &VehicleNumberSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
64 &VehicleNameSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
65 &VehicleAgeSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
66 &VehicleProfitThisYearSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
67 &VehicleProfitLastYearSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
68 &VehicleCargoSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
69 &VehicleReliabilitySorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
70 &VehicleMaxSpeedSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
71 &VehicleModelSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
72 &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
|
73 &VehicleLengthSorter, |
10161
8897c483bae7
(svn r14352) -Feature: Allow sorting vehicles by remaining life time.
belugas <belugas@openttd.org>
parents:
10151
diff
changeset
|
74 &VehicleTimeToLiveSorter, |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
75 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
76 |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
77 const StringID BaseVehicleListWindow::vehicle_sorter_names[] = { |
5584
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_NUMBER, |
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_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
|
80 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
|
81 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
|
82 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
|
83 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
|
84 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
|
85 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
|
86 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
|
87 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
|
88 STR_SORT_BY_LENGTH, |
10161
8897c483bae7
(svn r14352) -Feature: Allow sorting vehicles by remaining life time.
belugas <belugas@openttd.org>
parents:
10151
diff
changeset
|
89 STR_SORT_BY_LIFE_TIME, |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
90 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
|
91 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
92 |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
93 void BaseVehicleListWindow::BuildVehicleList(Owner 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
|
94 { |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
95 if (!this->vehicles.NeedRebuild()) 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
|
96 |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
97 DEBUG(misc, 3, "Building vehicle list for company %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
|
98 |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
99 GenerateVehicleSortList(&this->vehicles, this->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
|
100 |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
101 this->vehicles.RebuildDone(); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
102 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
103 |
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
|
104 /* 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
|
105 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
|
106 |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
107 void BaseVehicleListWindow::SortVehicleList() |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
108 { |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
109 if (this->vehicles.Sort()) 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
|
110 |
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
|
111 /* 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
|
112 _last_vehicle[0] = _last_vehicle[1] = NULL; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
113 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
114 |
9351
feaf9bae7580
(svn r13248) -Codechange: Use VehicleList for depot GUI.
peter1138 <peter1138@openttd.org>
parents:
9333
diff
changeset
|
115 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
|
116 { |
9351
feaf9bae7580
(svn r13248) -Codechange: Use VehicleList for depot GUI.
peter1138 <peter1138@openttd.org>
parents:
9333
diff
changeset
|
117 if (list->Length() < 2) return; |
9563
7b66751960b8
(svn r13587) -Codechange: make some globals members of VehicleListBase since they are used as such
skidd13 <skidd13@openttd.org>
parents:
9530
diff
changeset
|
118 QSortT(list->Begin(), list->Length(), &VehicleNumberSorter); |
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 |
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
|
121 /** 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
|
122 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
|
123 { |
5668
3d6d9bff3dd8
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138 <peter1138@openttd.org>
parents:
5609
diff
changeset
|
124 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
|
125 |
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
|
126 /* 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
|
127 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
|
128 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
|
129 } 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
|
130 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
|
131 } 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
|
132 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
|
133 } else { |
5668
3d6d9bff3dd8
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138 <peter1138@openttd.org>
parents:
5609
diff
changeset
|
134 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
|
135 } |
5668
3d6d9bff3dd8
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138 <peter1138@openttd.org>
parents:
5609
diff
changeset
|
136 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
|
137 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
138 |
6248
0789677a15a0
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents:
6247
diff
changeset
|
139 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
|
140 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
|
141 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
|
142 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
|
143 EngineID engine; |
6248
0789677a15a0
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents:
6247
diff
changeset
|
144 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
145 |
6248
0789677a15a0
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents:
6247
diff
changeset
|
146 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
|
147 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
|
148 RefitOption *items; |
6248
0789677a15a0
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents:
6247
diff
changeset
|
149 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
150 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
151 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
|
152 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
153 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
|
154 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
|
155 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
|
156 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
|
157 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
|
158 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
|
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 do { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
161 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
|
162 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
|
163 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
164 /* 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
|
165 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
|
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 /* 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
|
168 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
|
169 /* 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
|
170 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
|
171 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
172 /* 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
|
173 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
|
174 /* 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
|
175 * 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
|
176 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
|
177 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
|
178 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
|
179 |
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
|
180 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
|
181 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
182 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
|
183 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
|
184 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
|
185 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
186 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
|
187 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
|
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 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
|
190 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
|
191 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
192 /* 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
|
193 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
|
194 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
|
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 |
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 (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
|
198 |
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
|
199 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
|
200 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
|
201 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
|
202 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
|
203 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
|
204 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
205 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
206 /* 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
|
207 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
|
208 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
|
209 } else { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
210 /* 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
|
211 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
|
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 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
|
214 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
|
215 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
216 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
217 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
|
218 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
|
219 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
|
220 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
|
221 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
|
222 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
|
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 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
225 } |
9584
43d2a71dbcd9
(svn r13622) -Fix [FS#2109]: only the front of a RV would be considered when determining to what cargos a vehicle can be refitted instead of all cargos.
rubidium <rubidium@openttd.org>
parents:
9569
diff
changeset
|
226 } while ((v->type == VEH_TRAIN || v->type == VEH_ROAD) && (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
|
227 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
228 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
|
229 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
|
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 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
|
232 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
233 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
234 /** 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
|
235 * 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
|
236 * @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
|
237 * @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
|
238 * @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
|
239 * @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
|
240 * @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
|
241 * @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
|
242 */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
243 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
|
244 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
245 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
|
246 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
|
247 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
|
248 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
|
249 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
|
250 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
251 /* 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
|
252 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
|
253 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
|
254 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
|
255 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
|
256 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
|
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 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
259 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
|
260 /* 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
|
261 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
|
262 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
263 /* 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
|
264 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
|
265 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
|
266 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
267 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
|
268 } |
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 sel--; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
271 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
272 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
273 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
|
274 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
275 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
276 struct RefitWindow : public Window { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
277 int sel; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
278 RefitOption *cargo; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
279 RefitList *list; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
280 uint length; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
281 VehicleOrderID order; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
282 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
283 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
|
284 { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
285 this->caption_color = v->owner; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
286 this->vscroll.cap = 8; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
287 this->resize.step_height = 14; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
288 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
289 this->order = order; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
290 this->sel = -1; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
291 this->list = BuildRefitList(v); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
292 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
|
293 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
|
294 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
295 switch (v->type) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
296 case VEH_TRAIN: |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
297 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
|
298 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
|
299 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
|
300 break; |
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 case VEH_ROAD: |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
303 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
|
304 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
|
305 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
|
306 break; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
307 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
308 case VEH_SHIP: |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
309 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
|
310 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
|
311 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
|
312 break; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
313 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
314 case VEH_AIRCRAFT: |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
315 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
|
316 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
|
317 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
|
318 break; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
319 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
320 default: NOT_REACHED(); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
321 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
322 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
323 this->FindWindowPlacementAndResize(desc); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
324 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
325 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
326 ~RefitWindow() |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
327 { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
328 free(this->list->items); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
329 free(this->list); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
330 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
331 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
332 virtual void OnPaint() |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
333 { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
334 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
|
335 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
336 if (v->type == VEH_TRAIN) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
337 uint length = CountVehiclesInChain(v); |
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 if (length != this->length) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
340 /* 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
|
341 free(this->list->items); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
342 free(this->list); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
343 this->list = BuildRefitList(v); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
344 this->length = length; |
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 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
347 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
348 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
|
349 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
350 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
|
351 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
|
352 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
353 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
|
354 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
355 if (this->cargo != NULL) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
356 CommandCost cost; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
357 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
358 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
|
359 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
|
360 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
361 if (CmdSucceeded(cost)) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
362 SetDParam(0, this->cargo->cargo); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
363 SetDParam(1, _returned_refit_capacity); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
364 SetDParam(2, cost.GetCost()); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
365 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
|
366 } |
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 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
369 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
370 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
|
371 { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
372 switch (widget) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
373 case 3: { // listbox |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
374 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
|
375 if (y >= 0) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
376 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
|
377 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
|
378 } |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
379 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
|
380 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
381 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
382 case 6: // refit button |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
383 if (this->cargo != NULL) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
384 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
|
385 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
386 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
|
387 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
|
388 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
389 switch (v->type) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
390 default: NOT_REACHED(); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
391 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
|
392 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
|
393 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
|
394 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
|
395 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
396 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
|
397 } else { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
398 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
|
399 } |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
400 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
401 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 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
404 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
405 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
|
406 { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
407 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
|
408 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
|
409 } |
9262
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 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
412 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
413 static const Widget _vehicle_refit_widgets[] = { |
9778
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
414 { WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
415 { WWT_CAPTION, RESIZE_NONE, COLOUR_GREY, 11, 239, 0, 13, STR_983B_REFIT, STR_018C_WINDOW_TITLE_DRAG_THIS}, |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
416 { WWT_TEXTBTN, RESIZE_NONE, COLOUR_GREY, 0, 239, 14, 27, STR_983F_SELECT_CARGO_TYPE_TO_CARRY, STR_983D_SELECT_TYPE_OF_CARGO_FOR}, |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
417 { WWT_MATRIX, RESIZE_BOTTOM, COLOUR_GREY, 0, 227, 28, 139, 0x801, STR_EMPTY}, |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
418 { WWT_SCROLLBAR, RESIZE_BOTTOM, COLOUR_GREY, 228, 239, 28, 139, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
419 { WWT_PANEL, RESIZE_TB, COLOUR_GREY, 0, 239, 140, 161, 0x0, STR_NULL}, |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
420 { WWT_PUSHTXTBTN, RESIZE_TB, COLOUR_GREY, 0, 227, 162, 173, 0x0, STR_NULL}, |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
421 { WWT_RESIZEBOX, RESIZE_TB, COLOUR_GREY, 228, 239, 162, 173, 0x0, STR_RESIZE_BUTTON}, |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
422 { 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
|
423 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
424 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
425 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
|
426 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
|
427 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
|
428 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
|
429 _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
|
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 /** 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
|
433 * @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
|
434 * @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
|
435 */ |
10184
fbd1b77a2509
(svn r14395) -Fix [FS#2285]: crashes and GUI desyncs when order is deleted/modified while the timetable window is open
smatz <smatz@openttd.org>
parents:
10161
diff
changeset
|
436 void ShowVehicleRefitWindow(const Vehicle *v, VehicleOrderID order, Window *parent) |
5584
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 DeleteWindowById(WC_VEHICLE_REFIT, v->index); |
10184
fbd1b77a2509
(svn r14395) -Fix [FS#2285]: crashes and GUI desyncs when order is deleted/modified while the timetable window is open
smatz <smatz@openttd.org>
parents:
10161
diff
changeset
|
439 RefitWindow *w = new RefitWindow(&_vehicle_refit_desc, v, order); |
fbd1b77a2509
(svn r14395) -Fix [FS#2285]: crashes and GUI desyncs when order is deleted/modified while the timetable window is open
smatz <smatz@openttd.org>
parents:
10161
diff
changeset
|
440 w->parent = parent; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
441 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
442 |
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
|
443 /** 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
|
444 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
|
445 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
446 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
|
447 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
|
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 /* 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
|
450 SetDParam(0, GetGRFStringID(GetEngineGRFID(engine), 0xD000 + callback)); |
9908
090efbc71565
(svn r14058) -Fix [FS#2224]: NewGRF callback 23 didn't use the NewGRF compatible text stack (minime)
rubidium <rubidium@openttd.org>
parents:
9862
diff
changeset
|
451 PrepareTextRefStackUsage(0); |
090efbc71565
(svn r14058) -Fix [FS#2224]: NewGRF callback 23 didn't use the NewGRF compatible text stack (minime)
rubidium <rubidium@openttd.org>
parents:
9862
diff
changeset
|
452 uint result = DrawStringMultiLine(x, y, STR_02BD, w); |
090efbc71565
(svn r14058) -Fix [FS#2224]: NewGRF callback 23 didn't use the NewGRF compatible text stack (minime)
rubidium <rubidium@openttd.org>
parents:
9862
diff
changeset
|
453 StopTextRefStackUsage(); |
090efbc71565
(svn r14058) -Fix [FS#2224]: NewGRF callback 23 didn't use the NewGRF compatible text stack (minime)
rubidium <rubidium@openttd.org>
parents:
9862
diff
changeset
|
454 return result; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
455 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
456 |
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
|
457 /** 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
|
458 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
|
459 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
460 /* 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
|
461 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
|
462 /* 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
|
463 uint32 lmask = _cargo_mask; |
9648
b53049484e44
(svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
rubidium <rubidium@openttd.org>
parents:
9585
diff
changeset
|
464 char string[512]; |
b53049484e44
(svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
rubidium <rubidium@openttd.org>
parents:
9585
diff
changeset
|
465 char *b = string; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
466 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
467 /* 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
|
468 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
|
469 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
470 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
|
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 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
|
473 /* 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
|
474 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
|
475 } else { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
476 /* 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
|
477 * 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
|
478 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
|
479 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
|
480 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
|
481 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
482 |
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
|
483 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
|
484 |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
485 /* 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
|
486 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
|
487 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
|
488 |
9648
b53049484e44
(svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
rubidium <rubidium@openttd.org>
parents:
9585
diff
changeset
|
489 if (b >= lastof(string) - (2 + 2 * 4)) break; // ", " and two calls to Utf8Encode() |
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
|
490 |
9648
b53049484e44
(svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
rubidium <rubidium@openttd.org>
parents:
9585
diff
changeset
|
491 if (!first) b = strecpy(b, ", ", lastof(string)); |
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
|
492 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
|
493 |
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 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
|
495 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
496 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
497 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
498 /* 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
|
499 *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
|
500 |
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
|
501 /* Make sure we detect any buffer overflow */ |
9648
b53049484e44
(svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
rubidium <rubidium@openttd.org>
parents:
9585
diff
changeset
|
502 assert(b < endof(string)); |
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
|
503 |
9653
dd040a5861eb
(svn r13720) -Fix (r13715): string wasn't correctly passed to draw function.
rubidium <rubidium@openttd.org>
parents:
9652
diff
changeset
|
504 SetDParamStr(0, string); |
9648
b53049484e44
(svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
rubidium <rubidium@openttd.org>
parents:
9585
diff
changeset
|
505 return DrawStringMultiLine(x, y, STR_JUST_RAW_STRING, 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
|
506 } |
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 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
509 /** Sort vehicles by their number */ |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
510 static int CDECL VehicleNumberSorter(const Vehicle* const *a, const Vehicle* const *b) |
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 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
512 return (*a)->unitnumber - (*b)->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
|
513 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
514 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
515 /** Sort vehicles by their name */ |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
516 static int CDECL VehicleNameSorter(const Vehicle* const *a, const Vehicle* const *b) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
517 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
518 static char last_name[2][64]; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
519 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
520 if (*a != _last_vehicle[0]) { |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
521 _last_vehicle[0] = *a; |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
522 SetDParam(0, (*a)->index); |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
523 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
|
524 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
525 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
526 if (*b != _last_vehicle[1]) { |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
527 _last_vehicle[1] = *b; |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
528 SetDParam(0, (*b)->index); |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
529 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
|
530 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
531 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
532 int r = strcmp(last_name[0], last_name[1]); |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
533 return (r != 0) ? r : VehicleNumberSorter(a, b); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
534 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
535 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
536 /** Sort vehicles by their age */ |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
537 static int CDECL VehicleAgeSorter(const Vehicle* const *a, const Vehicle* const *b) |
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 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
539 int r = (*a)->age - (*b)->age; |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
540 return (r != 0) ? r : VehicleNumberSorter(a, b); |
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 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
543 /** Sort vehicles by this year profit */ |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
544 static int CDECL VehicleProfitThisYearSorter(const Vehicle* const *a, const Vehicle* const *b) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
545 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
546 int r = ClampToI32((*a)->GetDisplayProfitThisYear() - (*b)->GetDisplayProfitThisYear()); |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
547 return (r != 0) ? r : VehicleNumberSorter(a, b); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
548 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
549 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
550 /** Sort vehicles by last year profit */ |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
551 static int CDECL VehicleProfitLastYearSorter(const Vehicle* const *a, const Vehicle* const *b) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
552 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
553 int r = ClampToI32((*a)->GetDisplayProfitLastYear() - (*b)->GetDisplayProfitLastYear()); |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
554 return (r != 0) ? r : VehicleNumberSorter(a, b); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
555 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
556 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
557 /** Sort vehicles by their cargo */ |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
558 static int CDECL VehicleCargoSorter(const Vehicle* const *a, const Vehicle* const *b) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
559 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
560 const Vehicle *v; |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
561 AcceptedCargo diff; |
9569
fcc94596ddfd
(svn r13593) -Fix [FS#2095](r13524): sorting by cargo capacity was broken
smatz <smatz@openttd.org>
parents:
9563
diff
changeset
|
562 memset(diff, 0, sizeof(diff)); |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
563 |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
564 /* Append the cargo of the connected weagons */ |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
565 for (v = *a; v != NULL; v = v->Next()) diff[v->cargo_type] += v->cargo_cap; |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
566 for (v = *b; v != NULL; v = v->Next()) diff[v->cargo_type] -= v->cargo_cap; |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
567 |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
568 int r = 0; |
6350
8132258640be
(svn r9388) -Codechange: variable scope and type, and standardify all CargoID loops.
peter1138 <peter1138@openttd.org>
parents:
6259
diff
changeset
|
569 for (CargoID i = 0; i < NUM_CARGO; i++) { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
570 r = diff[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
|
571 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
|
572 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
573 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
574 return (r != 0) ? r : VehicleNumberSorter(a, b); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
575 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
576 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
577 /** Sort vehicles by their reliability */ |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
578 static int CDECL VehicleReliabilitySorter(const Vehicle* const *a, const Vehicle* const *b) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
579 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
580 int r = (*a)->reliability - (*b)->reliability; |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
581 return (r != 0) ? r : VehicleNumberSorter(a, b); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
582 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
583 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
584 /** Sort vehicles by their max speed */ |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
585 static int CDECL VehicleMaxSpeedSorter(const Vehicle* const *a, const Vehicle* const *b) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
586 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
587 int r = 0; |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
588 if ((*a)->type == VEH_TRAIN && (*b)->type == VEH_TRAIN) { |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
589 r = (*a)->u.rail.cached_max_speed - (*b)->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
|
590 } else { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
591 r = (*a)->max_speed - (*b)->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
|
592 } |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
593 return (r != 0) ? r : VehicleNumberSorter(a, b); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
594 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
595 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
596 /** Sort vehicles by model */ |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
597 static int CDECL VehicleModelSorter(const Vehicle* const *a, const Vehicle* const *b) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
598 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
599 int r = (*a)->engine_type - (*b)->engine_type; |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
600 return (r != 0) ? r : VehicleNumberSorter(a, b); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
601 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
602 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
603 /** Sort vehciles by their value */ |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
604 static int CDECL VehicleValueSorter(const Vehicle* const *a, const Vehicle* const *b) |
5584
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 *u; |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
607 Money diff = 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
|
608 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
609 for (u = *a; u != NULL; u = u->Next()) diff += u->value; |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
610 for (u = *b; u != NULL; u = u->Next()) diff -= 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
|
611 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
612 int r = ClampToI32(diff); |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
613 return (r != 0) ? r : VehicleNumberSorter(a, b); |
5584
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 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
616 /** Sort vehicles by their length */ |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
617 static int CDECL VehicleLengthSorter(const Vehicle* const *a, const Vehicle* const *b) |
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
|
618 { |
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
|
619 int r = 0; |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
620 switch ((*a)->type) { |
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
|
621 case VEH_TRAIN: |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
622 r = (*a)->u.rail.cached_total_length - (*b)->u.rail.cached_total_length; |
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
|
623 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
|
624 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
625 case VEH_ROAD: { |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
626 const Vehicle *u; |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
627 for (u = *a; u != NULL; u = u->Next()) r += u->u.road.cached_veh_length; |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
628 for (u = *b; u != NULL; u = u->Next()) r -= u->u.road.cached_veh_length; |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
629 } break; |
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
|
630 |
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
|
631 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
|
632 } |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
633 return (r != 0) ? r : VehicleNumberSorter(a, b); |
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
|
634 } |
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
|
635 |
10161
8897c483bae7
(svn r14352) -Feature: Allow sorting vehicles by remaining life time.
belugas <belugas@openttd.org>
parents:
10151
diff
changeset
|
636 /** Sort vehicles by the time they can still live */ |
8897c483bae7
(svn r14352) -Feature: Allow sorting vehicles by remaining life time.
belugas <belugas@openttd.org>
parents:
10151
diff
changeset
|
637 static int CDECL VehicleTimeToLiveSorter(const Vehicle* const *a, const Vehicle* const *b) |
8897c483bae7
(svn r14352) -Feature: Allow sorting vehicles by remaining life time.
belugas <belugas@openttd.org>
parents:
10151
diff
changeset
|
638 { |
8897c483bae7
(svn r14352) -Feature: Allow sorting vehicles by remaining life time.
belugas <belugas@openttd.org>
parents:
10151
diff
changeset
|
639 int r = ClampToI32(((*a)->max_age - (*a)->age) - ((*b)->max_age - (*b)->age)); |
8897c483bae7
(svn r14352) -Feature: Allow sorting vehicles by remaining life time.
belugas <belugas@openttd.org>
parents:
10151
diff
changeset
|
640 return (r != 0) ? r : VehicleNumberSorter(a, b); |
8897c483bae7
(svn r14352) -Feature: Allow sorting vehicles by remaining life time.
belugas <belugas@openttd.org>
parents:
10151
diff
changeset
|
641 } |
8897c483bae7
(svn r14352) -Feature: Allow sorting vehicles by remaining life time.
belugas <belugas@openttd.org>
parents:
10151
diff
changeset
|
642 |
6247
57363e064324
(svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents:
6148
diff
changeset
|
643 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
|
644 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
645 MemSetT(&_sorting, 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
|
646 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
647 |
9861
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
648 /** |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
649 * Assign a vehicle window a new vehicle |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
650 * @param window_class WindowClass to search for |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
651 * @param from_index the old vehicle ID |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
652 * @param to_index the new vehicle ID |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
653 */ |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
654 static inline void ChangeVehicleWindow(WindowClass window_class, VehicleID from_index, VehicleID to_index) |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
655 { |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
656 Window *w = FindWindowById(window_class, from_index); |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
657 if (w != NULL) { |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
658 w->window_number = to_index; |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
659 if (w->viewport != NULL) w->viewport->follow_vehicle = to_index; |
10184
fbd1b77a2509
(svn r14395) -Fix [FS#2285]: crashes and GUI desyncs when order is deleted/modified while the timetable window is open
smatz <smatz@openttd.org>
parents:
10161
diff
changeset
|
660 if (to_index != INVALID_VEHICLE) InvalidateThisWindowData(w, 0); |
9861
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
661 } |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
662 } |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
663 |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
664 /** |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
665 * Report a change in vehicle IDs (due to autoreplace) to affected vehicle windows. |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
666 * @param from_index the old vehicle ID |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
667 * @param to_index the new vehicle ID |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
668 */ |
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
|
669 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
|
670 { |
9861
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
671 ChangeVehicleWindow(WC_VEHICLE_VIEW, from_index, to_index); |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
672 ChangeVehicleWindow(WC_VEHICLE_ORDERS, from_index, to_index); |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
673 ChangeVehicleWindow(WC_VEHICLE_REFIT, from_index, to_index); |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
674 ChangeVehicleWindow(WC_VEHICLE_DETAILS, from_index, to_index); |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
675 ChangeVehicleWindow(WC_VEHICLE_TIMETABLE, from_index, 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
|
676 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
677 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
678 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
|
679 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
|
680 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
|
681 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
|
682 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
|
683 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
|
684 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
|
685 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
|
686 VLW_WIDGET_SCROLLBAR, |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
687 VLW_WIDGET_OTHER_COMPANY_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
|
688 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
|
689 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
|
690 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
|
691 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
|
692 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
|
693 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
|
694 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
695 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
696 static const Widget _vehicle_list_widgets[] = { |
9778
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
697 { WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
698 { WWT_CAPTION, RESIZE_RIGHT, COLOUR_GREY, 11, 247, 0, 13, 0x0, STR_018C_WINDOW_TITLE_DRAG_THIS}, |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
699 { WWT_STICKYBOX, RESIZE_LR, COLOUR_GREY, 248, 259, 0, 13, 0x0, STR_STICKY_BUTTON}, |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
700 { WWT_PUSHTXTBTN, RESIZE_NONE, COLOUR_GREY, 0, 80, 14, 25, STR_SORT_BY, STR_SORT_ORDER_TIP}, |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
701 { WWT_DROPDOWN, RESIZE_NONE, COLOUR_GREY, 81, 247, 14, 25, 0x0, STR_SORT_CRITERIA_TIP}, |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
702 { WWT_PANEL, RESIZE_RIGHT, COLOUR_GREY, 248, 259, 14, 25, 0x0, STR_NULL}, |
10117
463e0d1f06fe
(svn r14301) -Codechange: give the vehicle list and group list the same relative size and the same absolute height for the vehicle list items.
rubidium <rubidium@openttd.org>
parents:
9993
diff
changeset
|
703 { WWT_MATRIX, RESIZE_RB, COLOUR_GREY, 0, 247, 26, 181, 0x0, STR_NULL}, |
463e0d1f06fe
(svn r14301) -Codechange: give the vehicle list and group list the same relative size and the same absolute height for the vehicle list items.
rubidium <rubidium@openttd.org>
parents:
9993
diff
changeset
|
704 { WWT_SCROLLBAR, RESIZE_LRB, COLOUR_GREY, 248, 259, 26, 181, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
705 /* Widget to be shown for other companies hiding the following 6 widgets */ |
10117
463e0d1f06fe
(svn r14301) -Codechange: give the vehicle list and group list the same relative size and the same absolute height for the vehicle list items.
rubidium <rubidium@openttd.org>
parents:
9993
diff
changeset
|
706 { WWT_PANEL, RESIZE_RTB, COLOUR_GREY, 0, 247, 182, 193, 0x0, STR_NULL}, |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
707 |
10117
463e0d1f06fe
(svn r14301) -Codechange: give the vehicle list and group list the same relative size and the same absolute height for the vehicle list items.
rubidium <rubidium@openttd.org>
parents:
9993
diff
changeset
|
708 { WWT_PUSHTXTBTN, RESIZE_TB, COLOUR_GREY, 0, 105, 182, 193, 0x0, STR_AVAILABLE_ENGINES_TIP}, |
463e0d1f06fe
(svn r14301) -Codechange: give the vehicle list and group list the same relative size and the same absolute height for the vehicle list items.
rubidium <rubidium@openttd.org>
parents:
9993
diff
changeset
|
709 { WWT_DROPDOWN, RESIZE_TB, COLOUR_GREY, 106, 223, 182, 193, 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
|
710 |
10117
463e0d1f06fe
(svn r14301) -Codechange: give the vehicle list and group list the same relative size and the same absolute height for the vehicle list items.
rubidium <rubidium@openttd.org>
parents:
9993
diff
changeset
|
711 { WWT_PUSHIMGBTN, RESIZE_TB, COLOUR_GREY, 224, 235, 182, 193, SPR_FLAG_VEH_STOPPED, STR_MASS_STOP_LIST_TIP}, |
463e0d1f06fe
(svn r14301) -Codechange: give the vehicle list and group list the same relative size and the same absolute height for the vehicle list items.
rubidium <rubidium@openttd.org>
parents:
9993
diff
changeset
|
712 { WWT_PUSHIMGBTN, RESIZE_TB, COLOUR_GREY, 236, 247, 182, 193, SPR_FLAG_VEH_RUNNING, STR_MASS_START_LIST_TIP}, |
463e0d1f06fe
(svn r14301) -Codechange: give the vehicle list and group list the same relative size and the same absolute height for the vehicle list items.
rubidium <rubidium@openttd.org>
parents:
9993
diff
changeset
|
713 { WWT_PANEL, RESIZE_RTB, COLOUR_GREY, 248, 247, 182, 193, 0x0, STR_NULL}, |
463e0d1f06fe
(svn r14301) -Codechange: give the vehicle list and group list the same relative size and the same absolute height for the vehicle list items.
rubidium <rubidium@openttd.org>
parents:
9993
diff
changeset
|
714 { WWT_RESIZEBOX, RESIZE_LRTB, COLOUR_GREY, 248, 259, 182, 193, 0x0, STR_RESIZE_BUTTON}, |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
715 { 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
|
716 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
717 |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
718 static 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
|
719 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
720 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
|
721 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
|
722 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
723 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
|
724 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
725 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
|
726 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
|
727 sel--; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
728 |
8836
890a77315801
(svn r12584) -Codechange: do not access the order type directly.
rubidium <rubidium@openttd.org>
parents:
8786
diff
changeset
|
729 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
|
730 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
|
731 |
8840
c3d2f0eb69a1
(svn r12588) -Codechange: do not access the destination of an order directly.
rubidium <rubidium@openttd.org>
parents:
8836
diff
changeset
|
732 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
|
733 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
|
734 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
735 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
|
736 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
|
737 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
738 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
739 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
740 |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
741 static void DrawVehicleImage(const Vehicle *v, int x, int y, VehicleID selection, int count, int skip) |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
742 { |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
743 switch (v->type) { |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
744 case VEH_TRAIN: DrawTrainImage(v, x, y, selection, count, skip); break; |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
745 case VEH_ROAD: DrawRoadVehImage(v, x, y, selection, count); break; |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
746 case VEH_SHIP: DrawShipImage(v, x, y, selection); break; |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
747 case VEH_AIRCRAFT: DrawAircraftImage(v, x, y, selection); break; |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
748 default: NOT_REACHED(); |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
749 } |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
750 } |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
751 |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
752 /** |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
753 * Draw all the vehicle list items. |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
754 * @param x the position from where to draw the items. |
10143
a2e7b550afee
(svn r14329) -Fix (r14306): selections in the group GUI weren't shown anymore.
rubidium <rubidium@openttd.org>
parents:
10122
diff
changeset
|
755 * @param selected_vehicle the vehicle that is to be selected |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
756 */ |
10143
a2e7b550afee
(svn r14329) -Fix (r14306): selections in the group GUI weren't shown anymore.
rubidium <rubidium@openttd.org>
parents:
10122
diff
changeset
|
757 void BaseVehicleListWindow::DrawVehicleListItems(int x, VehicleID selected_vehicle) |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
758 { |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
759 int y = PLY_WND_PRC__OFFSET_TOP_WIDGET; |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
760 uint max = min(this->vscroll.pos + this->vscroll.cap, this->vehicles.Length()); |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
761 for (uint i = this->vscroll.pos; i < max; ++i) { |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
762 const Vehicle *v = this->vehicles[i]; |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
763 StringID str; |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
764 |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
765 SetDParam(0, v->GetDisplayProfitThisYear()); |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
766 SetDParam(1, v->GetDisplayProfitLastYear()); |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
767 |
10143
a2e7b550afee
(svn r14329) -Fix (r14306): selections in the group GUI weren't shown anymore.
rubidium <rubidium@openttd.org>
parents:
10122
diff
changeset
|
768 DrawVehicleImage(v, x + 19, y + 6, selected_vehicle, this->widget[VLW_WIDGET_LIST].right - this->widget[VLW_WIDGET_LIST].left - 20, 0); |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
769 DrawString(x + 19, y + this->resize.step_height - 8, STR_0198_PROFIT_THIS_YEAR_LAST_YEAR, TC_FROMSTRING); |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
770 |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
771 if (v->name != NULL) { |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
772 /* The vehicle got a name so we will print it */ |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
773 SetDParam(0, v->index); |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
774 DrawString(x + 19, y, STR_01AB, TC_FROMSTRING); |
10348
ac68018602dc
(svn r14599) -Fix (r14598)[FS#2417]: Show again group-membership in the vehicle-lists. (Based on patch by PhilSophus)
frosch <frosch@openttd.org>
parents:
10285
diff
changeset
|
775 } else if (v->group_id != DEFAULT_GROUP) { |
ac68018602dc
(svn r14599) -Fix (r14598)[FS#2417]: Show again group-membership in the vehicle-lists. (Based on patch by PhilSophus)
frosch <frosch@openttd.org>
parents:
10285
diff
changeset
|
776 /* The vehicle has no name, but is member of a group, so print group name */ |
ac68018602dc
(svn r14599) -Fix (r14598)[FS#2417]: Show again group-membership in the vehicle-lists. (Based on patch by PhilSophus)
frosch <frosch@openttd.org>
parents:
10285
diff
changeset
|
777 SetDParam(0, v->group_id); |
ac68018602dc
(svn r14599) -Fix (r14598)[FS#2417]: Show again group-membership in the vehicle-lists. (Based on patch by PhilSophus)
frosch <frosch@openttd.org>
parents:
10285
diff
changeset
|
778 DrawString(x + 19, y, STR_GROUP_TINY_NAME, TC_BLACK); |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
779 } |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
780 |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
781 if (this->resize.step_height == PLY_WND_PRC__SIZE_OF_ROW_BIG) DrawSmallOrderList(v, x + 138, y); |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
782 |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
783 if (v->IsInDepot()) { |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
784 str = STR_021F; |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
785 } else { |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
786 str = (v->age > v->max_age - 366) ? STR_00E3 : STR_00E2; |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
787 } |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
788 |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
789 SetDParam(0, v->unitnumber); |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
790 DrawString(x, y + 2, str, TC_FROMSTRING); |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
791 |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
792 DrawVehicleProfitButton(v, x, y + 13); |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
793 |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
794 y += this->resize.step_height; |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
795 } |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
796 } |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
797 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
798 /** |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
799 * 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
|
800 * |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
801 * bitmask for w->window_number |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
802 * 0-7 CompanyID (owner) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
803 * 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
|
804 * 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
|
805 * 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
|
806 */ |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
807 struct VehicleListWindow : public BaseVehicleListWindow { |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
808 |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
809 VehicleListWindow(const WindowDesc *desc, WindowNumber window_number) : BaseVehicleListWindow(desc, window_number) |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
810 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
811 uint16 window_type = this->window_number & VLW_MASK; |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
812 CompanyID company = (CompanyID)GB(this->window_number, 0, 8); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
813 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
814 this->vehicle_type = (VehicleType)GB(this->window_number, 11, 5); |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
815 this->caption_color = company; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
816 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
817 /* 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
|
818 * Some windows contains actions only fit for the owner */ |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
819 if (company == _local_company) { |
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
820 this->HideWidget(VLW_WIDGET_OTHER_COMPANY_FILLER); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
821 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
|
822 } else { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
823 this->SetWidgetsHiddenState(true, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
824 VLW_WIDGET_AVAILABLE_VEHICLES, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
825 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
|
826 VLW_WIDGET_STOP_ALL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
827 VLW_WIDGET_START_ALL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
828 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
|
829 WIDGET_LIST_END); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
830 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
831 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
832 /* 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
|
833 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
834 case VEH_TRAIN: |
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_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
|
836 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
|
837 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
|
838 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
839 case VEH_ROAD: |
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_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
|
841 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
|
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_SHIP: |
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_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
|
846 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
|
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 case VEH_AIRCRAFT: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
850 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
|
851 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
|
852 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
853 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
854 default: NOT_REACHED(); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
855 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
856 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
857 switch (window_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
858 case VLW_SHARED_ORDERS: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
859 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
|
860 break; |
9949
d991fb317728
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas <belugas@openttd.org>
parents:
9942
diff
changeset
|
861 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
862 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
|
863 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
864 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
|
865 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
|
866 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
|
867 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
|
868 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
869 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
870 break; |
9949
d991fb317728
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas <belugas@openttd.org>
parents:
9942
diff
changeset
|
871 |
9963
737454880ea0
(svn r14118) -Fix(r14104): typos creeping like bugs
belugas <belugas@openttd.org>
parents:
9949
diff
changeset
|
872 case VLW_WAYPOINT_LIST: |
9993
9bd8842e9d02
(svn r14150) -Add: Add the count of trains using the current waypoint in the vehicle list window's caption
belugas <belugas@openttd.org>
parents:
9978
diff
changeset
|
873 this->widget[VLW_WIDGET_CAPTION].data = STR_WAYPOINT_VIEWPORT_LIST; |
9949
d991fb317728
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas <belugas@openttd.org>
parents:
9942
diff
changeset
|
874 break; |
d991fb317728
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas <belugas@openttd.org>
parents:
9942
diff
changeset
|
875 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
876 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
|
877 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
878 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
|
879 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
|
880 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
|
881 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
|
882 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
883 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
884 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
|
885 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
886 case VLW_DEPOT_LIST: |
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: 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
|
889 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
|
890 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
|
891 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
|
892 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
893 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
894 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
895 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
896 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
897 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
898 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
899 case VEH_TRAIN: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
900 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
|
901 /* Fallthrough */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
902 case VEH_ROAD: |
10117
463e0d1f06fe
(svn r14301) -Codechange: give the vehicle list and group list the same relative size and the same absolute height for the vehicle list items.
rubidium <rubidium@openttd.org>
parents:
9993
diff
changeset
|
903 this->vscroll.cap = 6; |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
904 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
|
905 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
906 case VEH_SHIP: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
907 case VEH_AIRCRAFT: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
908 this->vscroll.cap = 4; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
909 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
|
910 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
911 default: NOT_REACHED(); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
912 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
913 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
914 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
915 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
|
916 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
917 /* 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
|
918 * 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
|
919 * 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
|
920 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
921 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
|
922 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
|
923 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
|
924 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
|
925 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
926 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
927 |
9530
e5323930bdb9
(svn r13534) -Codechange: Replace the main part of VehiclesListBase sorting with GUIList function calls
skidd13 <skidd13@openttd.org>
parents:
9528
diff
changeset
|
928 this->vehicles.SetListing(*this->sorting); |
e5323930bdb9
(svn r13534) -Codechange: Replace the main part of VehiclesListBase sorting with GUIList function calls
skidd13 <skidd13@openttd.org>
parents:
9528
diff
changeset
|
929 this->vehicles.ForceRebuild(); |
e5323930bdb9
(svn r13534) -Codechange: Replace the main part of VehiclesListBase sorting with GUIList function calls
skidd13 <skidd13@openttd.org>
parents:
9528
diff
changeset
|
930 this->vehicles.NeedResort(); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
931 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
932 this->FindWindowPlacementAndResize(desc); |
10118
13ba5b8a84f6
(svn r14302) -Codechange: simplify and make the vehicle list and group windows behave the same w.r.t. getting wider (by default) for trains than the other vehicles.
rubidium <rubidium@openttd.org>
parents:
10117
diff
changeset
|
933 if (this->vehicle_type == VEH_TRAIN) ResizeWindow(this, 65, 0); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
934 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
935 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
936 ~VehicleListWindow() |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
937 { |
9530
e5323930bdb9
(svn r13534) -Codechange: Replace the main part of VehiclesListBase sorting with GUIList function calls
skidd13 <skidd13@openttd.org>
parents:
9528
diff
changeset
|
938 *this->sorting = this->vehicles.GetListing(); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
939 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
940 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
941 virtual void OnPaint() |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
942 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
943 int x = 2; |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
944 const Owner owner = (Owner)this->caption_color; |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
945 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
|
946 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
|
947 |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
948 this->BuildVehicleList(owner, index, window_type); |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
949 this->SortVehicleList(); |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
950 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
|
951 |
9976
352e0aecf28a
(svn r14133) -Fix [FS#2249]: close the 'manage vehicles' dropdown once the number of vehicles in the list reaches 0.
rubidium <rubidium@openttd.org>
parents:
9963
diff
changeset
|
952 if (this->vehicles.Length() == 0) HideDropDownMenu(this); |
352e0aecf28a
(svn r14133) -Fix [FS#2249]: close the 'manage vehicles' dropdown once the number of vehicles in the list reaches 0.
rubidium <rubidium@openttd.org>
parents:
9963
diff
changeset
|
953 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
954 /* draw the widgets */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
955 switch (window_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
956 case VLW_SHARED_ORDERS: /* Shared Orders */ |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
957 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
|
958 /* 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
|
959 * 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
|
960 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
|
961 } |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
962 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
|
963 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
964 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
965 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
|
966 SetDParam(0, owner); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
967 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
|
968 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
969 |
9963
737454880ea0
(svn r14118) -Fix(r14104): typos creeping like bugs
belugas <belugas@openttd.org>
parents:
9949
diff
changeset
|
970 case VLW_WAYPOINT_LIST: |
9949
d991fb317728
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas <belugas@openttd.org>
parents:
9942
diff
changeset
|
971 SetDParam(0, index); |
9993
9bd8842e9d02
(svn r14150) -Add: Add the count of trains using the current waypoint in the vehicle list window's caption
belugas <belugas@openttd.org>
parents:
9978
diff
changeset
|
972 SetDParam(1, this->vscroll.count); |
9949
d991fb317728
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas <belugas@openttd.org>
parents:
9942
diff
changeset
|
973 break; |
d991fb317728
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas <belugas@openttd.org>
parents:
9942
diff
changeset
|
974 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
975 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
|
976 SetDParam(0, index); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
977 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
|
978 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
|
979 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
980 case VLW_DEPOT_LIST: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
981 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
982 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
|
983 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
|
984 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
|
985 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
|
986 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
987 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
988 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
|
989 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
|
990 } else { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
991 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
|
992 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
993 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
|
994 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
995 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
996 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
997 |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
998 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
|
999 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
|
1000 VLW_WIDGET_STOP_ALL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1001 VLW_WIDGET_START_ALL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1002 WIDGET_LIST_END); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1003 |
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
|
1004 this->DrawWidgets(); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1005 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1006 /* draw sorting criteria string */ |
9563
7b66751960b8
(svn r13587) -Codechange: make some globals members of VehicleListBase since they are used as such
skidd13 <skidd13@openttd.org>
parents:
9530
diff
changeset
|
1007 DrawString(85, 15, this->vehicle_sorter_names[this->vehicles.SortType()], TC_BLACK); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1008 /* draw arrow pointing up/down for ascending/descending sorting */ |
9530
e5323930bdb9
(svn r13534) -Codechange: Replace the main part of VehiclesListBase sorting with GUIList function calls
skidd13 <skidd13@openttd.org>
parents:
9528
diff
changeset
|
1009 this->DrawSortButtonState(VLW_WIDGET_SORT_ORDER, this->vehicles.IsDescSortOrder() ? 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
|
1010 |
10143
a2e7b550afee
(svn r14329) -Fix (r14306): selections in the group GUI weren't shown anymore.
rubidium <rubidium@openttd.org>
parents:
10122
diff
changeset
|
1011 this->DrawVehicleListItems(x, INVALID_VEHICLE); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1012 } |
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 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
|
1015 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1016 switch (widget) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1017 case VLW_WIDGET_SORT_ORDER: /* Flip sorting method ascending/descending */ |
9530
e5323930bdb9
(svn r13534) -Codechange: Replace the main part of VehiclesListBase sorting with GUIList function calls
skidd13 <skidd13@openttd.org>
parents:
9528
diff
changeset
|
1018 this->vehicles.ToggleSortOrder(); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1019 this->SetDirty(); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1020 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1021 case VLW_WIDGET_SORT_BY_PULLDOWN:/* Select sorting criteria dropdown menu */ |
9563
7b66751960b8
(svn r13587) -Codechange: make some globals members of VehicleListBase since they are used as such
skidd13 <skidd13@openttd.org>
parents:
9530
diff
changeset
|
1022 ShowDropDownMenu(this, this->vehicle_sorter_names, this->vehicles.SortType(), VLW_WIDGET_SORT_BY_PULLDOWN, 0, (this->vehicle_type == VEH_TRAIN || this->vehicle_type == VEH_ROAD) ? 0 : (1 << 10)); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1023 return; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1024 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
|
1025 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
|
1026 const Vehicle *v; |
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 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
|
1029 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1030 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
|
1031 |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
1032 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
|
1033 |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
1034 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
|
1035 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1036 ShowVehicleViewWindow(v); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1037 } break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1038 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1039 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
|
1040 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
|
1041 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
|
1042 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1043 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
|
1044 static StringID action_str[] = { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1045 STR_REPLACE_VEHICLES, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1046 STR_SEND_FOR_SERVICING, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1047 STR_NULL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1048 INVALID_STRING_ID |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1049 }; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1050 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1051 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
|
1052 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
|
1053 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
|
1054 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
|
1055 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
|
1056 }; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1057 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1058 /* 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
|
1059 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
|
1060 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
|
1061 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
|
1062 } |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1063 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1064 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
|
1065 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
|
1066 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
|
1067 break; |
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 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1070 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1071 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
|
1072 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1073 switch (widget) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1074 case VLW_WIDGET_SORT_BY_PULLDOWN: |
9530
e5323930bdb9
(svn r13534) -Codechange: Replace the main part of VehiclesListBase sorting with GUIList function calls
skidd13 <skidd13@openttd.org>
parents:
9528
diff
changeset
|
1075 this->vehicles.SetSortType(index); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1076 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1077 case VLW_WIDGET_MANAGE_VEHICLES_DROPDOWN: |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
1078 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
|
1079 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1080 switch (index) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1081 case 0: /* Replace window */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1082 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
|
1083 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1084 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
|
1085 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
|
1086 (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
|
1087 NULL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1088 GetCmdSendToDepot(this->vehicle_type)); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1089 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1090 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
|
1091 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
|
1092 (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
|
1093 NULL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1094 GetCmdSendToDepot(this->vehicle_type)); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1095 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
|
1096 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1097 default: NOT_REACHED(); |
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 default: NOT_REACHED(); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1101 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1102 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
|
1103 } |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1104 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1105 virtual void OnTick() |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1106 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1107 if (_pause_game != 0) return; |
9530
e5323930bdb9
(svn r13534) -Codechange: Replace the main part of VehiclesListBase sorting with GUIList function calls
skidd13 <skidd13@openttd.org>
parents:
9528
diff
changeset
|
1108 if (this->vehicles.NeedResort()) { |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1109 StationID station = ((this->window_number & VLW_MASK) == VLW_STATION_LIST) ? GB(this->window_number, 16, 16) : INVALID_STATION; |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
1110 Owner owner = (Owner)this->caption_color; |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1111 |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
1112 DEBUG(misc, 3, "Periodic resort %d list company %d at station %d", this->vehicle_type, owner, station); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1113 this->SetDirty(); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1114 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1115 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1116 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1117 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
|
1118 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1119 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
|
1120 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
|
1121 } |
9297
add307f2e6ea
(svn r13165) -Codechange: replace some RebuildXXXList/ResortXXXList+InvalidateWindowXXX with InvalidateWindowXXXData.
rubidium <rubidium@openttd.org>
parents:
9274
diff
changeset
|
1122 |
add307f2e6ea
(svn r13165) -Codechange: replace some RebuildXXXList/ResortXXXList+InvalidateWindowXXX with InvalidateWindowXXXData.
rubidium <rubidium@openttd.org>
parents:
9274
diff
changeset
|
1123 virtual void OnInvalidateData(int data) |
add307f2e6ea
(svn r13165) -Codechange: replace some RebuildXXXList/ResortXXXList+InvalidateWindowXXX with InvalidateWindowXXXData.
rubidium <rubidium@openttd.org>
parents:
9274
diff
changeset
|
1124 { |
9942
5885cda280e8
(svn r14097) -Fix [FS#2085]: one couldn't get a list of vehicles sharing an order when the number of orders was 0; you could see that the vehicles had a shared order though.
rubidium <rubidium@openttd.org>
parents:
9921
diff
changeset
|
1125 if (HasBit(data, 15) && (this->window_number & VLW_MASK) == VLW_SHARED_ORDERS) { |
5885cda280e8
(svn r14097) -Fix [FS#2085]: one couldn't get a list of vehicles sharing an order when the number of orders was 0; you could see that the vehicles had a shared order though.
rubidium <rubidium@openttd.org>
parents:
9921
diff
changeset
|
1126 SB(this->window_number, 16, 16, GB(data, 16, 16)); |
5885cda280e8
(svn r14097) -Fix [FS#2085]: one couldn't get a list of vehicles sharing an order when the number of orders was 0; you could see that the vehicles had a shared order though.
rubidium <rubidium@openttd.org>
parents:
9921
diff
changeset
|
1127 this->vehicles.ForceRebuild(); |
5885cda280e8
(svn r14097) -Fix [FS#2085]: one couldn't get a list of vehicles sharing an order when the number of orders was 0; you could see that the vehicles had a shared order though.
rubidium <rubidium@openttd.org>
parents:
9921
diff
changeset
|
1128 return; |
5885cda280e8
(svn r14097) -Fix [FS#2085]: one couldn't get a list of vehicles sharing an order when the number of orders was 0; you could see that the vehicles had a shared order though.
rubidium <rubidium@openttd.org>
parents:
9921
diff
changeset
|
1129 } |
5885cda280e8
(svn r14097) -Fix [FS#2085]: one couldn't get a list of vehicles sharing an order when the number of orders was 0; you could see that the vehicles had a shared order though.
rubidium <rubidium@openttd.org>
parents:
9921
diff
changeset
|
1130 |
9530
e5323930bdb9
(svn r13534) -Codechange: Replace the main part of VehiclesListBase sorting with GUIList function calls
skidd13 <skidd13@openttd.org>
parents:
9528
diff
changeset
|
1131 if (data == 0) { |
e5323930bdb9
(svn r13534) -Codechange: Replace the main part of VehiclesListBase sorting with GUIList function calls
skidd13 <skidd13@openttd.org>
parents:
9528
diff
changeset
|
1132 this->vehicles.ForceRebuild(); |
e5323930bdb9
(svn r13534) -Codechange: Replace the main part of VehiclesListBase sorting with GUIList function calls
skidd13 <skidd13@openttd.org>
parents:
9528
diff
changeset
|
1133 } else { |
e5323930bdb9
(svn r13534) -Codechange: Replace the main part of VehiclesListBase sorting with GUIList function calls
skidd13 <skidd13@openttd.org>
parents:
9528
diff
changeset
|
1134 this->vehicles.ForceResort(); |
e5323930bdb9
(svn r13534) -Codechange: Replace the main part of VehiclesListBase sorting with GUIList function calls
skidd13 <skidd13@openttd.org>
parents:
9528
diff
changeset
|
1135 } |
9297
add307f2e6ea
(svn r13165) -Codechange: replace some RebuildXXXList/ResortXXXList+InvalidateWindowXXX with InvalidateWindowXXXData.
rubidium <rubidium@openttd.org>
parents:
9274
diff
changeset
|
1136 } |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1137 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1138 |
10118
13ba5b8a84f6
(svn r14302) -Codechange: simplify and make the vehicle list and group windows behave the same w.r.t. getting wider (by default) for trains than the other vehicles.
rubidium <rubidium@openttd.org>
parents:
10117
diff
changeset
|
1139 static WindowDesc _vehicle_list_desc = { |
10117
463e0d1f06fe
(svn r14301) -Codechange: give the vehicle list and group list the same relative size and the same absolute height for the vehicle list items.
rubidium <rubidium@openttd.org>
parents:
9993
diff
changeset
|
1140 WDP_AUTO, WDP_AUTO, 260, 194, 260, 246, |
10118
13ba5b8a84f6
(svn r14302) -Codechange: simplify and make the vehicle list and group windows behave the same w.r.t. getting wider (by default) for trains than the other vehicles.
rubidium <rubidium@openttd.org>
parents:
10117
diff
changeset
|
1141 WC_INVALID, 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
|
1142 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
|
1143 _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
|
1144 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1145 |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
1146 static void ShowVehicleListWindowLocal(CompanyID company, 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
|
1147 { |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
1148 if (!IsValidCompanyID(company)) 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
|
1149 |
10118
13ba5b8a84f6
(svn r14302) -Codechange: simplify and make the vehicle list and group windows behave the same w.r.t. getting wider (by default) for trains than the other vehicles.
rubidium <rubidium@openttd.org>
parents:
10117
diff
changeset
|
1150 _vehicle_list_desc.cls = GetWindowClassForVehicleType(vehicle_type); |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
1151 WindowNumber num = (unique_number << 16) | (vehicle_type << 11) | VLW_flag | company; |
10118
13ba5b8a84f6
(svn r14302) -Codechange: simplify and make the vehicle list and group windows behave the same w.r.t. getting wider (by default) for trains than the other vehicles.
rubidium <rubidium@openttd.org>
parents:
10117
diff
changeset
|
1152 AllocateWindowDescFront<VehicleListWindow>(&_vehicle_list_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
|
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 |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
1155 void ShowVehicleListWindow(CompanyID company, 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
|
1156 { |
9413
512ea64da840
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium <rubidium@openttd.org>
parents:
9396
diff
changeset
|
1157 /* If _settings_client.gui.advanced_vehicle_list > 1, display the Advanced list |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
1158 * if _settings_client.gui.advanced_vehicle_list == 1, display Advanced list only for local company |
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
|
1159 * 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
|
1160 */ |
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
|
1161 |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
1162 if ((_settings_client.gui.advanced_vehicle_list > (uint)(company != _local_company)) != _ctrl_pressed) { |
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
1163 ShowCompanyGroup(company, vehicle_type); |
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
|
1164 } else { |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
1165 ShowVehicleListWindowLocal(company, VLW_STANDARD, vehicle_type, 0); |
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
|
1166 } |
5584
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 |
9949
d991fb317728
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas <belugas@openttd.org>
parents:
9942
diff
changeset
|
1169 void ShowVehicleListWindow(const Waypoint *wp) |
d991fb317728
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas <belugas@openttd.org>
parents:
9942
diff
changeset
|
1170 { |
d991fb317728
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas <belugas@openttd.org>
parents:
9942
diff
changeset
|
1171 if (wp == NULL) return; |
9978
793681882d37
(svn r14135) -Codechange: Add owner to waypoints. Previously, it was guessed from rail underneath it.
belugas <belugas@openttd.org>
parents:
9976
diff
changeset
|
1172 ShowVehicleListWindowLocal(wp->owner, VLW_WAYPOINT_LIST, VEH_TRAIN, wp->index); |
9949
d991fb317728
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas <belugas@openttd.org>
parents:
9942
diff
changeset
|
1173 } |
d991fb317728
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas <belugas@openttd.org>
parents:
9942
diff
changeset
|
1174 |
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
|
1175 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
|
1176 { |
9942
5885cda280e8
(svn r14097) -Fix [FS#2085]: one couldn't get a list of vehicles sharing an order when the number of orders was 0; you could see that the vehicles had a shared order though.
rubidium <rubidium@openttd.org>
parents:
9921
diff
changeset
|
1177 ShowVehicleListWindowLocal(v->owner, VLW_SHARED_ORDERS, v->type, v->FirstShared()->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
|
1178 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1179 |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
1180 void ShowVehicleListWindow(CompanyID company, 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
|
1181 { |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
1182 ShowVehicleListWindowLocal(company, VLW_STATION_LIST, vehicle_type, 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
|
1183 } |
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
|
1184 |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
1185 void ShowVehicleListWindow(CompanyID company, 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
|
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 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
|
1188 |
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
|
1189 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
|
1190 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
|
1191 } else { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1192 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
|
1193 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
|
1194 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
|
1195 } |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
1196 ShowVehicleListWindowLocal(company, 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
|
1197 } |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1198 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1199 |
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
|
1200 /* 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
|
1201 |
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
|
1202 /** 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
|
1203 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
|
1204 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
|
1205 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
|
1206 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
|
1207 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
|
1208 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
|
1209 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
|
1210 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
|
1211 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
|
1212 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
|
1213 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
|
1214 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
|
1215 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
|
1216 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
|
1217 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
|
1218 }; |
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
|
1219 |
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
|
1220 /** 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
|
1221 static const Widget _vehicle_details_widgets[] = { |
9778
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1222 { WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // VLD_WIDGET_CLOSEBOX |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1223 { WWT_CAPTION, RESIZE_RIGHT, COLOUR_GREY, 11, 364, 0, 13, 0x0, STR_018C_WINDOW_TITLE_DRAG_THIS}, // VLD_WIDGET_CAPTION |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1224 { WWT_PUSHTXTBTN, RESIZE_LR, COLOUR_GREY, 365, 404, 0, 13, STR_01AA_NAME, STR_NULL /* filled in later */}, // VLD_WIDGET_RENAME_VEHICLE |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1225 { WWT_PANEL, RESIZE_RIGHT, COLOUR_GREY, 0, 404, 14, 55, 0x0, STR_NULL}, // VLD_WIDGET_TOP_DETAILS |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1226 { WWT_PUSHTXTBTN, RESIZE_TB, COLOUR_GREY, 0, 10, 101, 106, STR_0188, STR_884D_INCREASE_SERVICING_INTERVAL}, // VLD_WIDGET_INCREASE_SERVICING_INTERVAL |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1227 { WWT_PUSHTXTBTN, RESIZE_TB, COLOUR_GREY, 0, 10, 107, 112, STR_0189, STR_884E_DECREASE_SERVICING_INTERVAL}, // VLD_WIDGET_DECREASE_SERVICING_INTERVAL |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1228 { WWT_PANEL, RESIZE_RTB, COLOUR_GREY, 11, 404, 101, 112, 0x0, STR_NULL}, // VLD_WIDGET_BOTTOM_RIGHT |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1229 { WWT_MATRIX, RESIZE_RB, COLOUR_GREY, 0, 392, 56, 100, 0x701, STR_NULL}, // VLD_WIDGET_MIDDLE_DETAILS |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1230 { WWT_SCROLLBAR, RESIZE_LRB, COLOUR_GREY, 393, 404, 56, 100, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, // VLD_WIDGET_SCROLLBAR |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1231 { WWT_PUSHTXTBTN, RESIZE_TB, COLOUR_GREY, 0, 95, 113, 124, STR_013C_CARGO, STR_884F_SHOW_DETAILS_OF_CARGO_CARRIED}, // VLD_WIDGET_DETAILS_CARGO_CARRIED |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1232 { WWT_PUSHTXTBTN, RESIZE_TB, COLOUR_GREY, 96, 194, 113, 124, STR_013D_INFORMATION, STR_8850_SHOW_DETAILS_OF_TRAIN_VEHICLES},// VLD_WIDGET_DETAILS_TRAIN_VEHICLES |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1233 { WWT_PUSHTXTBTN, RESIZE_TB, COLOUR_GREY, 195, 293, 113, 124, STR_013E_CAPACITIES, STR_8851_SHOW_CAPACITIES_OF_EACH}, // VLD_WIDGET_DETAILS_CAPACITY_OF_EACH |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1234 { WWT_PUSHTXTBTN, RESIZE_RTB, COLOUR_GREY, 294, 392, 113, 124, STR_TOTAL_CARGO, STR_SHOW_TOTAL_CARGO}, // VLD_WIDGET_DETAILS_TOTAL_CARGO |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1235 { WWT_RESIZEBOX, RESIZE_LRTB, COLOUR_GREY, 393, 404, 113, 124, 0x0, STR_RESIZE_BUTTON}, // VLD_RESIZE |
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
|
1236 { 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
|
1237 }; |
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
|
1238 |
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
|
1239 |
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
|
1240 /** 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
|
1241 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
|
1242 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
|
1243 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
|
1244 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
|
1245 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
|
1246 }; |
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
|
1247 |
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
|
1248 /** 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
|
1249 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
|
1250 { // 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
|
1251 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
|
1252 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
|
1253 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
|
1254 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
|
1255 }, |
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
|
1256 { // 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
|
1257 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
|
1258 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
|
1259 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
|
1260 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
|
1261 }, |
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 { // 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
|
1263 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
|
1264 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
|
1265 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
|
1266 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
|
1267 }, |
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 { // 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
|
1269 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
|
1270 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
|
1271 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
|
1272 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
|
1273 }, |
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 }; |
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 |
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 |
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 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
|
1278 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
|
1279 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
|
1280 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
|
1281 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
|
1282 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1283 struct VehicleDetailsWindow : Window { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1284 int tab; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1285 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1286 /** 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
|
1287 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
|
1288 { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1289 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
|
1290 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1291 switch (v->type) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1292 case VEH_TRAIN: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1293 ResizeWindow(this, 0, 39); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1294 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1295 this->vscroll.cap = 6; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1296 this->height += 12; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1297 this->resize.step_height = 14; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1298 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
|
1299 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1300 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
|
1301 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
|
1302 break; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1303 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1304 case VEH_ROAD: { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1305 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
|
1306 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
|
1307 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1308 if (!RoadVehHasArticPart(v)) break; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1309 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1310 /* 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
|
1311 * 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
|
1312 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
|
1313 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1314 /* 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
|
1315 for (const Vehicle *u = v; u != NULL; u = u->Next()) { |
9585
a4be9bcc1d04
(svn r13623) -Codechange: only show the 'load' of articulated RV parts that have a capacity instead of showing 'empty' parts when a vehicle is completely full.
rubidium <rubidium@openttd.org>
parents:
9584
diff
changeset
|
1316 if (u->cargo_cap != 0) height_extension += 11; |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1317 } |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1318 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1319 ResizeWindow(this, 0, height_extension); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1320 } break; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1321 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1322 case VEH_SHIP: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1323 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
|
1324 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
|
1325 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
|
1326 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1327 case VEH_AIRCRAFT: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1328 ResizeWindow(this, 0, 11); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1329 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
|
1330 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
|
1331 break; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1332 default: NOT_REACHED(); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1333 } |
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
|
1334 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1335 if (v->type != VEH_TRAIN) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1336 this->vscroll.cap = 1; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1337 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
|
1338 } |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1339 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1340 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
|
1341 this->caption_color = v->owner; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1342 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1343 this->tab = 0; |
9333
5236ba6c7d54
(svn r13225) -Fix (r13041): Missing calls to FindWindowPlacementAndResize() from lots
peter1138 <peter1138@openttd.org>
parents:
9317
diff
changeset
|
1344 |
5236ba6c7d54
(svn r13225) -Fix (r13041): Missing calls to FindWindowPlacementAndResize() from lots
peter1138 <peter1138@openttd.org>
parents:
9317
diff
changeset
|
1345 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
|
1346 } |
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
|
1347 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1348 /** 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
|
1349 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
|
1350 { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1351 switch (vehicle_type) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1352 default: NOT_REACHED(); |
9413
512ea64da840
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium <rubidium@openttd.org>
parents:
9396
diff
changeset
|
1353 case VEH_TRAIN: return _settings_game.vehicle.servint_trains != 0; break; |
512ea64da840
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium <rubidium@openttd.org>
parents:
9396
diff
changeset
|
1354 case VEH_ROAD: return _settings_game.vehicle.servint_roadveh != 0; break; |
512ea64da840
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium <rubidium@openttd.org>
parents:
9396
diff
changeset
|
1355 case VEH_SHIP: return _settings_game.vehicle.servint_ships != 0; break; |
512ea64da840
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium <rubidium@openttd.org>
parents:
9396
diff
changeset
|
1356 case VEH_AIRCRAFT: return _settings_game.vehicle.servint_aircraft != 0; break; |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1357 } |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1358 return false; // kill a compiler warning |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1359 } |
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
|
1360 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1361 /** |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1362 * 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
|
1363 * |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1364 * @param v current vehicle |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1365 * @param x The x coordinate |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1366 * @param y The y coordinate |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1367 * @param vscroll_pos (train only) |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1368 * @param vscroll_cap (train only) |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1369 * @param det_tab (train only) |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1370 */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1371 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
|
1372 { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1373 switch (v->type) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1374 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
|
1375 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
|
1376 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
|
1377 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
|
1378 default: NOT_REACHED(); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1379 } |
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
|
1380 } |
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
|
1381 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1382 /** Repaint vehicle details window. */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1383 virtual void OnPaint() |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1384 { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1385 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
|
1386 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
|
1387 |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
1388 this->SetWidgetDisabledState(VLD_WIDGET_RENAME_VEHICLE, v->owner != _local_company); |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1389 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1390 if (v->type == VEH_TRAIN) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1391 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
|
1392 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
|
1393 } |
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
|
1394 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1395 this->SetWidgetsHiddenState(v->type != VEH_TRAIN, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1396 VLD_WIDGET_SCROLLBAR, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1397 VLD_WIDGET_DETAILS_CARGO_CARRIED, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1398 VLD_WIDGET_DETAILS_TRAIN_VEHICLES, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1399 VLD_WIDGET_DETAILS_CAPACITY_OF_EACH, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1400 VLD_WIDGET_DETAILS_TOTAL_CARGO, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1401 VLD_WIDGET_RESIZE, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1402 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
|
1403 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1404 /* 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
|
1405 this->SetWidgetsDisabledState(!IsVehicleServiceIntervalEnabled(v->type), |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1406 VLD_WIDGET_INCREASE_SERVICING_INTERVAL, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1407 VLD_WIDGET_DECREASE_SERVICING_INTERVAL, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1408 WIDGET_LIST_END); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1409 |
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
|
1410 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1411 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
|
1412 this->DrawWidgets(); |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1413 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1414 /* Draw running cost */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1415 SetDParam(1, v->age / 366); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1416 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
|
1417 SetDParam(2, v->max_age / 366); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1418 SetDParam(3, v->GetDisplayRunningCost()); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1419 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
|
1420 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1421 /* Draw max speed */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1422 switch (v->type) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1423 case VEH_TRAIN: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1424 SetDParam(2, v->GetDisplayMaxSpeed()); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1425 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
|
1426 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
|
1427 SetDParam(3, v->u.rail.cached_max_te / 1000); |
9413
512ea64da840
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium <rubidium@openttd.org>
parents:
9396
diff
changeset
|
1428 DrawString(2, 25, (_settings_game.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
|
1429 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
|
1430 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
|
1431 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
|
1432 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1433 case VEH_ROAD: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1434 case VEH_SHIP: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1435 case VEH_AIRCRAFT: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1436 SetDParam(0, v->GetDisplayMaxSpeed()); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1437 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
|
1438 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
|
1439 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1440 default: NOT_REACHED(); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1441 } |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1442 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1443 /* Draw profit */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1444 SetDParam(0, v->GetDisplayProfitThisYear()); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1445 SetDParam(1, v->GetDisplayProfitLastYear()); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1446 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
|
1447 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1448 /* Draw breakdown & reliability */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1449 SetDParam(0, v->reliability * 100 >> 16); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1450 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
|
1451 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
|
1452 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1453 /* Draw service interval text */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1454 SetDParam(0, v->service_interval); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1455 SetDParam(1, v->date_of_last_service); |
9413
512ea64da840
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium <rubidium@openttd.org>
parents:
9396
diff
changeset
|
1456 DrawString(13, this->height - (v->type != VEH_TRAIN ? 11 : 23), _settings_game.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
|
1457 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1458 switch (v->type) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1459 case VEH_TRAIN: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1460 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
|
1461 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
|
1462 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1463 case VEH_ROAD: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1464 case VEH_SHIP: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1465 case VEH_AIRCRAFT: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1466 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
|
1467 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
|
1468 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
|
1469 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1470 default: NOT_REACHED(); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1471 } |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1472 } |
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
|
1473 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1474 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
|
1475 { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1476 /** 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
|
1477 static const StringID _name_vehicle_title[] = { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1478 STR_8865_NAME_TRAIN, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1479 STR_902C_NAME_ROAD_VEHICLE, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1480 STR_9831_NAME_SHIP, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1481 STR_A030_NAME_AIRCRAFT |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1482 }; |
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
|
1483 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1484 switch (widget) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1485 case VLD_WIDGET_RENAME_VEHICLE: {// rename |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1486 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
|
1487 SetDParam(0, v->index); |
10148
81642658c8be
(svn r14334) -Feature: ability to reset name to default/automatic value (for vehicles, engines, towns, groups, stations, waypoints, managers and companies)
smatz <smatz@openttd.org>
parents:
10145
diff
changeset
|
1488 ShowQueryString(STR_VEHICLE_NAME, _name_vehicle_title[v->type], MAX_LENGTH_VEHICLE_NAME_BYTES, MAX_LENGTH_VEHICLE_NAME_PIXELS, this, CS_ALPHANUMERAL, QSF_ENABLE_DEFAULT); |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1489 } 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
|
1490 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1491 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
|
1492 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
|
1493 int mod = _ctrl_pressed ? 5 : 10; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1494 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
|
1495 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1496 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
|
1497 mod = GetServiceIntervalClamped(mod + v->service_interval); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1498 if (mod == v->service_interval) return; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1499 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1500 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
|
1501 } 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
|
1502 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1503 case VLD_WIDGET_DETAILS_CARGO_CARRIED: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1504 case VLD_WIDGET_DETAILS_TRAIN_VEHICLES: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1505 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
|
1506 case VLD_WIDGET_DETAILS_TOTAL_CARGO: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1507 this->SetWidgetsDisabledState(false, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1508 VLD_WIDGET_DETAILS_CARGO_CARRIED, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1509 VLD_WIDGET_DETAILS_TRAIN_VEHICLES, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1510 VLD_WIDGET_DETAILS_CAPACITY_OF_EACH, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1511 VLD_WIDGET_DETAILS_TOTAL_CARGO, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1512 widget, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1513 WIDGET_LIST_END); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1514 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1515 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
|
1516 this->SetDirty(); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1517 break; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1518 } |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1519 } |
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
|
1520 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1521 virtual void OnQueryTextFinished(char *str) |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1522 { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1523 /** 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
|
1524 static const StringID _name_vehicle_error[] = { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1525 STR_8866_CAN_T_NAME_TRAIN, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1526 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
|
1527 STR_9832_CAN_T_NAME_SHIP, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1528 STR_A031_CAN_T_NAME_AIRCRAFT |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1529 }; |
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
|
1530 |
10148
81642658c8be
(svn r14334) -Feature: ability to reset name to default/automatic value (for vehicles, engines, towns, groups, stations, waypoints, managers and companies)
smatz <smatz@openttd.org>
parents:
10145
diff
changeset
|
1531 if (str == NULL) return; |
81642658c8be
(svn r14334) -Feature: ability to reset name to default/automatic value (for vehicles, engines, towns, groups, stations, waypoints, managers and companies)
smatz <smatz@openttd.org>
parents:
10145
diff
changeset
|
1532 |
81642658c8be
(svn r14334) -Feature: ability to reset name to default/automatic value (for vehicles, engines, towns, groups, stations, waypoints, managers and companies)
smatz <smatz@openttd.org>
parents:
10145
diff
changeset
|
1533 _cmd_text = str; |
10151
8a25a93ea7b4
(svn r14337) -Codechange: use CmdRename* and CMD_RENAME_* for vehicle, president and company renaming commands, too
smatz <smatz@openttd.org>
parents:
10148
diff
changeset
|
1534 DoCommandP(0, this->window_number, 0, NULL, CMD_RENAME_VEHICLE | CMD_MSG(_name_vehicle_error[GetVehicle(this->window_number)->type])); |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1535 } |
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
|
1536 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1537 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
|
1538 { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1539 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
|
1540 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
|
1541 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1542 this->vscroll.cap += delta.y / 14; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1543 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
|
1544 } |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1545 }; |
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
|
1546 |
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
|
1547 /** 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
|
1548 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
|
1549 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
|
1550 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
|
1551 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
|
1552 _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
|
1553 }; |
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
|
1554 |
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
|
1555 /** 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
|
1556 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
|
1557 { |
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
|
1558 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
|
1559 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
|
1560 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
|
1561 } |
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
|
1562 |
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
|
1563 |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1564 /* 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
|
1565 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1566 /** Vehicle view widgets. */ |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1567 static const Widget _vehicle_view_widgets[] = { |
9778
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1568 { WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW }, // VVW_WIDGET_CLOSEBOX |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1569 { WWT_CAPTION, RESIZE_RIGHT, COLOUR_GREY, 11, 237, 0, 13, 0x0 /* filled later */, STR_018C_WINDOW_TITLE_DRAG_THIS }, // VVW_WIDGET_CAPTION |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1570 { WWT_STICKYBOX, RESIZE_LR, COLOUR_GREY, 238, 249, 0, 13, 0x0, STR_STICKY_BUTTON }, // VVW_WIDGET_STICKY |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1571 { WWT_PANEL, RESIZE_RB, COLOUR_GREY, 0, 231, 14, 103, 0x0, STR_NULL }, // VVW_WIDGET_PANEL |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1572 { WWT_INSET, RESIZE_RB, COLOUR_GREY, 2, 229, 16, 101, 0x0, STR_NULL }, // VVW_WIDGET_VIEWPORT |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1573 { WWT_PUSHBTN, RESIZE_RTB, COLOUR_GREY, 0, 237, 104, 115, 0x0, 0x0 /* filled later */ }, // VVW_WIDGET_START_STOP_VEH |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1574 { WWT_PUSHIMGBTN, RESIZE_LR, COLOUR_GREY, 232, 249, 14, 31, SPR_CENTRE_VIEW_VEHICLE, 0x0 /* filled later */ }, // VVW_WIDGET_CENTER_MAIN_VIEH |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1575 { WWT_PUSHIMGBTN, RESIZE_LR, COLOUR_GREY, 232, 249, 32, 49, 0x0 /* filled later */, 0x0 /* filled later */ }, // VVW_WIDGET_GOTO_DEPOT |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1576 { WWT_PUSHIMGBTN, RESIZE_LR, COLOUR_GREY, 232, 249, 50, 67, SPR_REFIT_VEHICLE, 0x0 /* filled later */ }, // VVW_WIDGET_REFIT_VEH |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1577 { WWT_PUSHIMGBTN, RESIZE_LR, COLOUR_GREY, 232, 249, 68, 85, SPR_SHOW_ORDERS, 0x0 /* filled later */ }, // VVW_WIDGET_SHOW_ORDERS |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1578 { WWT_PUSHIMGBTN, RESIZE_LR, COLOUR_GREY, 232, 249, 86, 103, SPR_SHOW_VEHICLE_DETAILS, 0x0 /* filled later */ }, // VVW_WIDGET_SHOW_DETAILS |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1579 { WWT_PUSHIMGBTN, RESIZE_LR, COLOUR_GREY, 232, 249, 32, 49, 0x0 /* filled later */, 0x0 /* filled later */ }, // VVW_WIDGET_CLONE_VEH |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1580 { WWT_PANEL, RESIZE_LRB, COLOUR_GREY, 232, 249, 104, 103, 0x0, STR_NULL }, // VVW_WIDGET_EMPTY_BOTTOM_RIGHT |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1581 { WWT_RESIZEBOX, RESIZE_LRTB, COLOUR_GREY, 238, 249, 104, 115, 0x0, STR_NULL }, // VVW_WIDGET_RESIZE |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1582 { WWT_PUSHIMGBTN, RESIZE_LR, COLOUR_GREY, 232, 249, 50, 67, SPR_FORCE_VEHICLE_TURN, STR_9020_FORCE_VEHICLE_TO_TURN_AROUND }, // VVW_WIDGET_TURN_AROUND |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1583 { WWT_PUSHIMGBTN, RESIZE_LR, COLOUR_GREY, 232, 249, 50, 67, SPR_IGNORE_SIGNALS, STR_884A_FORCE_TRAIN_TO_PROCEED }, // VVW_WIDGET_FORCE_PROCEED |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1584 { WIDGETS_END}, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1585 }; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1586 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1587 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1588 /** 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
|
1589 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
|
1590 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
|
1591 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
|
1592 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
|
1593 _vehicle_view_widgets, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1594 }; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1595 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1596 /** 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
|
1597 * 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
|
1598 */ |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1599 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
|
1600 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
|
1601 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
|
1602 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
|
1603 _vehicle_view_widgets, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1604 }; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1605 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1606 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1607 /* 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
|
1608 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
|
1609 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
|
1610 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
|
1611 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
|
1612 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
|
1613 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1614 /** 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
|
1615 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
|
1616 ZOOM_LVL_TRAIN, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1617 ZOOM_LVL_ROADVEH, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1618 ZOOM_LVL_SHIP, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1619 ZOOM_LVL_AIRCRAFT, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1620 }; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1621 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1622 /* 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
|
1623 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
|
1624 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
|
1625 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
|
1626 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
|
1627 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
|
1628 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1629 /** 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
|
1630 enum VehicleCommandTranslation { |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1631 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
|
1632 VCT_CMD_GOTO_DEPOT, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1633 VCT_CMD_CLONE_VEH, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1634 VCT_CMD_TURN_AROUND, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1635 }; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1636 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1637 /** 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
|
1638 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
|
1639 { // VCT_CMD_START_STOP |
9921
29d461128c75
(svn r14076) -Codechange: Merge the four start/stop commands into a single CMD_START_STOP_VEHICLE.
frosch <frosch@openttd.org>
parents:
9913
diff
changeset
|
1640 CMD_START_STOP_VEHICLE | CMD_MSG(STR_883B_CAN_T_STOP_START_TRAIN), |
29d461128c75
(svn r14076) -Codechange: Merge the four start/stop commands into a single CMD_START_STOP_VEHICLE.
frosch <frosch@openttd.org>
parents:
9913
diff
changeset
|
1641 CMD_START_STOP_VEHICLE | CMD_MSG(STR_9015_CAN_T_STOP_START_ROAD_VEHICLE), |
29d461128c75
(svn r14076) -Codechange: Merge the four start/stop commands into a single CMD_START_STOP_VEHICLE.
frosch <frosch@openttd.org>
parents:
9913
diff
changeset
|
1642 CMD_START_STOP_VEHICLE | CMD_MSG(STR_9818_CAN_T_STOP_START_SHIP), |
29d461128c75
(svn r14076) -Codechange: Merge the four start/stop commands into a single CMD_START_STOP_VEHICLE.
frosch <frosch@openttd.org>
parents:
9913
diff
changeset
|
1643 CMD_START_STOP_VEHICLE | CMD_MSG(STR_A016_CAN_T_STOP_START_AIRCRAFT) |
7486
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 { // VCT_CMD_GOTO_DEPOT |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1646 /* 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
|
1647 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
|
1648 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
|
1649 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
|
1650 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
|
1651 }, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1652 { // VCT_CMD_CLONE_VEH |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1653 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
|
1654 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
|
1655 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
|
1656 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
|
1657 }, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1658 { // VCT_CMD_TURN_AROUND |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1659 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
|
1660 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
|
1661 0xffffffff, // invalid for ships |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1662 0xffffffff // invalid for aircrafts |
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 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1666 /** 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
|
1667 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
|
1668 { |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1669 /* 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
|
1670 * 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
|
1671 */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1672 switch (v->type) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1673 case VEH_TRAIN: return false; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1674 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
|
1675 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
|
1676 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
|
1677 default: NOT_REACHED(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1678 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1679 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1680 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1681 struct VehicleViewWindow : Window { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1682 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
|
1683 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1684 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
|
1685 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1686 this->caption_color = v->owner; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1687 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
|
1688 (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
|
1689 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
|
1690 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1691 /* |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1692 * 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
|
1693 * 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
|
1694 */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1695 switch (v->type) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1696 case VEH_TRAIN: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1697 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
|
1698 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1699 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
|
1700 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1701 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
|
1702 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1703 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
|
1704 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
|
1705 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1706 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
|
1707 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1708 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
|
1709 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1710 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
|
1711 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1712 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
|
1713 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
|
1714 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1715 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
|
1716 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1717 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1718 /* 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
|
1719 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
|
1720 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
|
1721 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1722 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
|
1723 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
|
1724 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1725 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
|
1726 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
|
1727 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1728 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
|
1729 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
|
1730 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1731 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
|
1732 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
|
1733 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1734 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
|
1735 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
|
1736 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1737 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
|
1738 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
|
1739 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1740 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
|
1741 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
|
1742 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1743 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1744 case VEH_ROAD: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1745 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
|
1746 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1747 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
|
1748 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1749 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
|
1750 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1751 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
|
1752 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
|
1753 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1754 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
|
1755 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1756 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
|
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_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
|
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_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
|
1761 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
|
1762 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1763 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
|
1764 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1765 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1766 case VEH_SHIP: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1767 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
|
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_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
|
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_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
|
1772 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1773 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
|
1774 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
|
1775 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1776 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
|
1777 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1778 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
|
1779 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1780 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
|
1781 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1782 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
|
1783 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
|
1784 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1785 this->SetWidgetsHiddenState(true, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1786 VVW_WIDGET_TURN_AROUND, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1787 VVW_WIDGET_FORCE_PROCEED, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1788 WIDGET_LIST_END); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1789 break; |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1790 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1791 case VEH_AIRCRAFT: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1792 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
|
1793 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1794 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
|
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_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
|
1797 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1798 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
|
1799 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
|
1800 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1801 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
|
1802 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1803 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
|
1804 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1805 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
|
1806 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1807 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
|
1808 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
|
1809 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1810 this->SetWidgetsHiddenState(true, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1811 VVW_WIDGET_TURN_AROUND, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1812 VVW_WIDGET_FORCE_PROCEED, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1813 WIDGET_LIST_END); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1814 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1815 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1816 default: NOT_REACHED(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1817 } |
9333
5236ba6c7d54
(svn r13225) -Fix (r13041): Missing calls to FindWindowPlacementAndResize() from lots
peter1138 <peter1138@openttd.org>
parents:
9317
diff
changeset
|
1818 |
5236ba6c7d54
(svn r13225) -Fix (r13041): Missing calls to FindWindowPlacementAndResize() from lots
peter1138 <peter1138@openttd.org>
parents:
9317
diff
changeset
|
1819 this->FindWindowPlacementAndResize(desc); |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1820 } |
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 ~VehicleViewWindow() |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1823 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1824 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
|
1825 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
|
1826 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
|
1827 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
|
1828 } |
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 virtual void OnPaint() |
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 /** 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
|
1833 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
|
1834 STR_HEADING_FOR_TRAIN_DEPOT, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1835 STR_HEADING_FOR_ROAD_DEPOT, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1836 STR_HEADING_FOR_SHIP_DEPOT, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1837 STR_HEADING_FOR_HANGAR, |
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 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1840 /** 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
|
1841 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
|
1842 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
|
1843 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
|
1844 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
|
1845 STR_HEADING_FOR_HANGAR_SERVICE, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1846 }; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1847 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1848 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
|
1849 StringID str; |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
1850 bool is_localcompany = v->owner == _local_company; |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1851 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
|
1852 |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
1853 this->SetWidgetDisabledState(VVW_WIDGET_GOTO_DEPOT, !is_localcompany); |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1854 this->SetWidgetDisabledState(VVW_WIDGET_REFIT_VEH, |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
1855 !refitable_and_stopped_in_depot || !is_localcompany); |
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
1856 this->SetWidgetDisabledState(VVW_WIDGET_CLONE_VEH, !is_localcompany); |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1857 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1858 if (v->type == VEH_TRAIN) { |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
1859 this->SetWidgetDisabledState(VVW_WIDGET_FORCE_PROCEED, !is_localcompany); |
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
1860 this->SetWidgetDisabledState(VVW_WIDGET_TURN_AROUND, !is_localcompany); |
9315
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 /* 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
|
1863 |
10207
c54d140df948
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents:
10184
diff
changeset
|
1864 if (is_localcompany) { |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1865 /* 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
|
1866 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
|
1867 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
|
1868 (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
|
1869 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
|
1870 /* 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
|
1871 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1872 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1873 } |
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 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1876 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1877 /* draw widgets & caption */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1878 SetDParam(0, v->index); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1879 this->DrawWidgets(); |
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 if (v->vehstatus & VS_CRASHED) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1882 str = STR_8863_CRASHED; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1883 } 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
|
1884 str = STR_885C_BROKEN_DOWN; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1885 } 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
|
1886 if (v->type == VEH_TRAIN) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1887 if (v->cur_speed == 0) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1888 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
|
1889 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
|
1890 } else { |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1891 str = STR_8861_STOPPED; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1892 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1893 } else { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1894 SetDParam(0, v->GetDisplaySpeed()); |
9413
512ea64da840
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium <rubidium@openttd.org>
parents:
9396
diff
changeset
|
1895 str = STR_TRAIN_STOPPING + _settings_client.gui.vehicle_speed; |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1896 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1897 } else { // no train |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1898 str = STR_8861_STOPPED; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1899 } |
9808
fa8743b489ff
(svn r13950) -Add [YAPP]: Trains can now also be in a 'stuck' state when waiting on a path reservation. (michi_cc)
rubidium <rubidium@openttd.org>
parents:
9778
diff
changeset
|
1900 } else if (v->type == VEH_TRAIN && HasBit(v->u.rail.flags, VRF_TRAIN_STUCK)) { |
fa8743b489ff
(svn r13950) -Add [YAPP]: Trains can now also be in a 'stuck' state when waiting on a path reservation. (michi_cc)
rubidium <rubidium@openttd.org>
parents:
9778
diff
changeset
|
1901 str = STR_TRAIN_STUCK; |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1902 } 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
|
1903 switch (v->current_order.GetType()) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1904 case OT_GOTO_STATION: { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1905 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
|
1906 SetDParam(1, v->GetDisplaySpeed()); |
9413
512ea64da840
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium <rubidium@openttd.org>
parents:
9396
diff
changeset
|
1907 str = STR_HEADING_FOR_STATION + _settings_client.gui.vehicle_speed; |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1908 } break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1909 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1910 case OT_GOTO_DEPOT: { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1911 if (v->type == VEH_AIRCRAFT) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1912 /* 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
|
1913 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
|
1914 SetDParam(1, v->GetDisplaySpeed()); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1915 } else { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1916 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
|
1917 SetDParam(0, depot->town_index); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1918 SetDParam(1, v->GetDisplaySpeed()); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1919 } |
10285
615db2678973
(svn r14524) -Add: stop-in-depot as part of orders (PhilSophus)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
1920 if (v->current_order.GetDepotActionType() & ODATFB_HALT) { |
9413
512ea64da840
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium <rubidium@openttd.org>
parents:
9396
diff
changeset
|
1921 str = _heading_for_depot_strings[v->type] + _settings_client.gui.vehicle_speed; |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1922 } else { |
9413
512ea64da840
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium <rubidium@openttd.org>
parents:
9396
diff
changeset
|
1923 str = _heading_for_depot_service_strings[v->type] + _settings_client.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
|
1924 } |
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
|
1925 } 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
|
1926 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1927 case OT_LOADING: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1928 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
|
1929 break; |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1930 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1931 case OT_GOTO_WAYPOINT: { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1932 assert(v->type == VEH_TRAIN); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1933 SetDParam(0, v->current_order.GetDestination()); |
9413
512ea64da840
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium <rubidium@openttd.org>
parents:
9396
diff
changeset
|
1934 str = STR_HEADING_FOR_WAYPOINT + _settings_client.gui.vehicle_speed; |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1935 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
|
1936 break; |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1937 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1938 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1939 case OT_LEAVESTATION: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1940 if (v->type != VEH_AIRCRAFT) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1941 str = STR_LEAVING; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1942 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1943 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1944 /* 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
|
1945 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1946 default: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1947 if (v->num_orders == 0) { |
9413
512ea64da840
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium <rubidium@openttd.org>
parents:
9396
diff
changeset
|
1948 str = STR_NO_ORDERS + _settings_client.gui.vehicle_speed; |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1949 SetDParam(0, v->GetDisplaySpeed()); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1950 } else { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1951 str = STR_EMPTY; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1952 } |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1953 break; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1954 } |
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 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1957 /* draw the flag plus orders */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1958 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
|
1959 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
|
1960 this->DrawViewport(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1961 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1962 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1963 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
|
1964 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1965 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
|
1966 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1967 switch (widget) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1968 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
|
1969 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
|
1970 _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
|
1971 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1972 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
|
1973 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
|
1974 /* 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
|
1975 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
|
1976 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
|
1977 } else { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1978 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
|
1979 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1980 } break; |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1981 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1982 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
|
1983 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
|
1984 _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
|
1985 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1986 case VVW_WIDGET_REFIT_VEH: // refit |
10184
fbd1b77a2509
(svn r14395) -Fix [FS#2285]: crashes and GUI desyncs when order is deleted/modified while the timetable window is open
smatz <smatz@openttd.org>
parents:
10161
diff
changeset
|
1987 ShowVehicleRefitWindow(v, INVALID_VEH_ORDER_ID, this); |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1988 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1989 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
|
1990 if (_ctrl_pressed) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1991 ShowTimetableWindow(v); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1992 } else { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1993 ShowOrdersWindow(v); |
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 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1996 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
|
1997 ShowVehicleDetailsWindow(v); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1998 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1999 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
|
2000 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
|
2001 _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
|
2002 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2003 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
|
2004 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
|
2005 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
|
2006 _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
|
2007 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2008 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
|
2009 assert(v->type == VEH_TRAIN); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2010 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
|
2011 break; |
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 } |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
2014 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2015 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
|
2016 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2017 this->viewport->width += delta.x; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2018 this->viewport->height += delta.y; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2019 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
|
2020 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
|
2021 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2022 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2023 virtual void OnTick() |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2024 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2025 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
|
2026 bool veh_stopped = v->IsStoppedInDepot(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2027 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2028 /* 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
|
2029 * stopped in depot. |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2030 * 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
|
2031 * 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
|
2032 * 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
|
2033 * 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
|
2034 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
|
2035 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
|
2036 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
|
2037 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
|
2038 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
|
2039 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
|
2040 } |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2041 this->SetDirty(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2042 } |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
2043 } |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2044 }; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2045 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2046 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2047 /** 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
|
2048 void ShowVehicleViewWindow(const Vehicle *v) |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2049 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2050 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
|
2051 } |
8144
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2052 |
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
|
2053 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
|
2054 { |
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
|
2055 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
|
2056 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
|
2057 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
|
2058 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
|
2059 } |
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
|
2060 } |