Mercurial > hg > openttd
annotate src/vehicle_gui.cpp @ 11436:caf4456fbbf3 draft
(svn r15794) -Codechange: remove the DoDrawString part of the old text drawing API
author | rubidium <rubidium@openttd.org> |
---|---|
date | Sat, 21 Mar 2009 22:46:17 +0000 |
parents | 38844e2f76fd |
children | f16bff952e5e |
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 "vehicle_gui.h" |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
14 #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
|
15 #include "viewport_func.h" |
c45446125bf0
(svn r11787) -Codechange: more header rewrites. This time related to viewport.h.
rubidium <rubidium@openttd.org>
parents:
8214
diff
changeset
|
16 #include "gfx_func.h" |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
17 #include "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
|
18 #include "newgrf_text.h" |
10960
a4e5b5d2837c
(svn r15299) -Cleanup: remove many redundant includes
smatz <smatz@openttd.org>
parents:
10901
diff
changeset
|
19 #include "station_map.h" |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
20 #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
|
21 #include "depot_base.h" |
8111
5475263e4cab
(svn r11672) -Codechange: refactor some stuff out of gui.h.
rubidium <rubidium@openttd.org>
parents:
8107
diff
changeset
|
22 #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
|
23 #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
|
24 #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
|
25 #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
|
26 #include "autoreplace_gui.h" |
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
|
27 #include "string_func.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
|
28 #include "widgets/dropdown_func.h" |
9117
453c3d26f4bc
(svn r12977) -Codechange: remove quite some redundant (duplicate) function declarations.
rubidium <rubidium@openttd.org>
parents:
9116
diff
changeset
|
29 #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
|
30 #include "vehiclelist.h" |
10960
a4e5b5d2837c
(svn r15299) -Cleanup: remove many redundant includes
smatz <smatz@openttd.org>
parents:
10901
diff
changeset
|
31 #include "settings_type.h" |
11238
06dac7488367
(svn r15592) -Fix: Refit-info in purchase list did only check the first articulated part.
frosch <frosch@openttd.org>
parents:
11133
diff
changeset
|
32 #include "articulated_vehicles.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
|
33 |
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
|
34 #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
|
35 #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
|
36 |
9182
d3a153aa328d
(svn r13045) -Codechange: make list_d (now GUIList) more generic and uniform.
rubidium <rubidium@openttd.org>
parents:
9161
diff
changeset
|
37 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
|
38 |
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
|
39 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
|
40 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
|
41 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
|
42 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
|
43 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
|
44 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
|
45 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
|
46 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
|
47 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
|
48 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
|
49 static GUIVehicleList::SortFunction VehicleLengthSorter; |
10161
8897c483bae7
(svn r14352) -Feature: Allow sorting vehicles by remaining life time.
belugas <belugas@openttd.org>
parents:
10151
diff
changeset
|
50 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
|
51 |
10647
592ae9307430
(svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents:
10562
diff
changeset
|
52 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
|
53 &VehicleNumberSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
54 &VehicleNameSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
55 &VehicleAgeSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
56 &VehicleProfitThisYearSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
57 &VehicleProfitLastYearSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
58 &VehicleCargoSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
59 &VehicleReliabilitySorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
60 &VehicleMaxSpeedSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
61 &VehicleModelSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
62 &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
|
63 &VehicleLengthSorter, |
10161
8897c483bae7
(svn r14352) -Feature: Allow sorting vehicles by remaining life time.
belugas <belugas@openttd.org>
parents:
10151
diff
changeset
|
64 &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
|
65 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
66 |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
67 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
|
68 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
|
69 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
|
70 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
|
71 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
|
72 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
|
73 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
|
74 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
|
75 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
|
76 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
|
77 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
|
78 STR_SORT_BY_LENGTH, |
10161
8897c483bae7
(svn r14352) -Feature: Allow sorting vehicles by remaining life time.
belugas <belugas@openttd.org>
parents:
10151
diff
changeset
|
79 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
|
80 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
|
81 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
82 |
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
|
83 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
|
84 { |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
85 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
|
86 |
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
|
87 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
|
88 |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
89 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
|
90 |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
91 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
|
92 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
93 |
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
|
94 /* 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
|
95 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
|
96 |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
97 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
|
98 { |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
99 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
|
100 |
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
|
101 /* 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
|
102 _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
|
103 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
104 |
9351
feaf9bae7580
(svn r13248) -Codechange: Use VehicleList for depot GUI.
peter1138 <peter1138@openttd.org>
parents:
9333
diff
changeset
|
105 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
|
106 { |
9351
feaf9bae7580
(svn r13248) -Codechange: Use VehicleList for depot GUI.
peter1138 <peter1138@openttd.org>
parents:
9333
diff
changeset
|
107 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
|
108 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
|
109 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
110 |
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
|
111 /** 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
|
112 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
|
113 { |
5668
3d6d9bff3dd8
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138 <peter1138@openttd.org>
parents:
5609
diff
changeset
|
114 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
|
115 |
11085
8da1855e9f14
(svn r15428) -Codechange: consistently use colour instead of having both color and colour.
rubidium <rubidium@openttd.org>
parents:
11084
diff
changeset
|
116 /* draw profit-based coloured icons */ |
10744
0118ca646690
(svn r15077) -Codechange: enumify DAYS_IN_YEAR and DAYS_IN_LEAP_YEAR
smatz <smatz@openttd.org>
parents:
10647
diff
changeset
|
117 if (v->age <= DAYS_IN_YEAR * 2) { |
5668
3d6d9bff3dd8
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138 <peter1138@openttd.org>
parents:
5609
diff
changeset
|
118 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
|
119 } 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
|
120 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
|
121 } 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
|
122 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
|
123 } else { |
5668
3d6d9bff3dd8
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138 <peter1138@openttd.org>
parents:
5609
diff
changeset
|
124 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
|
125 } |
5668
3d6d9bff3dd8
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138 <peter1138@openttd.org>
parents:
5609
diff
changeset
|
126 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
|
127 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
128 |
6248
0789677a15a0
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents:
6247
diff
changeset
|
129 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
|
130 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
|
131 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
|
132 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
|
133 EngineID engine; |
6248
0789677a15a0
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents:
6247
diff
changeset
|
134 }; |
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 |
6248
0789677a15a0
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents:
6247
diff
changeset
|
136 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
|
137 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
|
138 RefitOption *items; |
6248
0789677a15a0
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents:
6247
diff
changeset
|
139 }; |
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 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
141 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
|
142 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
143 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
|
144 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
|
145 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
|
146 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
|
147 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
|
148 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
|
149 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
150 do { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
151 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
|
152 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
|
153 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
154 /* 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
|
155 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
|
156 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
157 /* 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
|
158 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
|
159 /* 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
|
160 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
|
161 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
162 /* 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
|
163 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
|
164 /* 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
|
165 * 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
|
166 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
|
167 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
|
168 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
|
169 |
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
|
170 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
|
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 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
|
173 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
|
174 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
|
175 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
176 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
|
177 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
|
178 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
179 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
|
180 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
|
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 /* 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
|
183 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
|
184 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
|
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 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
187 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
|
188 |
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
|
189 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
|
190 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
|
191 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
|
192 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
|
193 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
|
194 } |
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 /* 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
|
197 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
|
198 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
|
199 } else { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
200 /* 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
|
201 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
|
202 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
203 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
|
204 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
|
205 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
206 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
207 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
|
208 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
|
209 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
|
210 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
|
211 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
|
212 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
|
213 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
214 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
215 } |
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
|
216 } 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
|
217 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
218 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
|
219 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
|
220 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
221 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
|
222 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
223 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
224 /** 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
|
225 * 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
|
226 * @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
|
227 * @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
|
228 * @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
|
229 * @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
|
230 * @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
|
231 * @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
|
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 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
|
234 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
235 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
|
236 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
|
237 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
|
238 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
|
239 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
|
240 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
241 /* Draw the list, 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
|
242 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
|
243 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
|
244 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
|
245 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
|
246 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
|
247 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
248 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
249 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
|
250 /* 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
|
251 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
|
252 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
253 /* 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
|
254 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
|
255 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
|
256 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
257 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
|
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 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
260 sel--; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
261 } |
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 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
|
264 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
265 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
266 struct RefitWindow : public Window { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
267 int sel; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
268 RefitOption *cargo; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
269 RefitList *list; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
270 uint length; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
271 VehicleOrderID order; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
272 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
273 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
|
274 { |
11084
e07c7d3925c8
(svn r15427) -Codechange: give w->caption_color a more sensible name as it holds the owner of whatever is shown in the window
rubidium <rubidium@openttd.org>
parents:
10998
diff
changeset
|
275 this->owner = v->owner; |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
276 this->vscroll.cap = 8; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
277 this->resize.step_height = 14; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
278 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
279 this->order = order; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
280 this->sel = -1; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
281 this->list = BuildRefitList(v); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
282 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
|
283 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
|
284 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
285 switch (v->type) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
286 case VEH_TRAIN: |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
287 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
|
288 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
|
289 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
|
290 break; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
291 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
292 case VEH_ROAD: |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
293 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
|
294 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
|
295 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
|
296 break; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
297 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
298 case VEH_SHIP: |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
299 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
|
300 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
|
301 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
|
302 break; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
303 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
304 case VEH_AIRCRAFT: |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
305 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
|
306 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
|
307 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
|
308 break; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
309 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
310 default: NOT_REACHED(); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
311 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
312 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
313 this->FindWindowPlacementAndResize(desc); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
314 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
315 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
316 ~RefitWindow() |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
317 { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
318 free(this->list->items); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
319 free(this->list); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
320 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
321 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
322 virtual void OnPaint() |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
323 { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
324 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
|
325 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
326 if (v->type == VEH_TRAIN) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
327 uint length = CountVehiclesInChain(v); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
328 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
329 if (length != this->length) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
330 /* 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
|
331 free(this->list->items); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
332 free(this->list); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
333 this->list = BuildRefitList(v); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
334 this->length = length; |
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 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
337 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
338 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
|
339 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
340 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
|
341 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
|
342 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
343 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
|
344 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
345 if (this->cargo != NULL) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
346 CommandCost cost; |
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 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
|
349 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
|
350 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
351 if (CmdSucceeded(cost)) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
352 SetDParam(0, this->cargo->cargo); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
353 SetDParam(1, _returned_refit_capacity); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
354 SetDParam(2, cost.GetCost()); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
355 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
|
356 } |
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 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
359 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
360 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
|
361 { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
362 switch (widget) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
363 case 3: { // listbox |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
364 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
|
365 if (y >= 0) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
366 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
|
367 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
|
368 } |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
369 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
|
370 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
371 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
372 case 6: // refit button |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
373 if (this->cargo != NULL) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
374 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
|
375 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
376 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
|
377 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
|
378 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
379 switch (v->type) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
380 default: NOT_REACHED(); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
381 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
|
382 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
|
383 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
|
384 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
|
385 } |
10499
45ca88a8de7d
(svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter.
rubidium <rubidium@openttd.org>
parents:
10430
diff
changeset
|
386 if (DoCommandP(v->tile, v->index, this->cargo->cargo | this->cargo->subtype << 8, command)) delete this; |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
387 } else { |
10499
45ca88a8de7d
(svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter.
rubidium <rubidium@openttd.org>
parents:
10430
diff
changeset
|
388 if (DoCommandP(v->tile, v->index, this->cargo->cargo | this->cargo->subtype << 8 | this->order << 16, 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
|
389 } |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
390 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
391 break; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
392 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
393 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
394 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
395 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
|
396 { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
397 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
|
398 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
|
399 } |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
400 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
401 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
402 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
403 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
|
404 { 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
|
405 { 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
|
406 { 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
|
407 { 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
|
408 { 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
|
409 { 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
|
410 { 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
|
411 { 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
|
412 { 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
|
413 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
414 |
11373
474ba6cc0946
(svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents:
11368
diff
changeset
|
415 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
|
416 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
|
417 WC_VEHICLE_REFIT, WC_VEHICLE_VIEW, |
10998
a1d256bf72e0
(svn r15338) -Fix [FS#2598]: close all construction related windows whenever changing company.
rubidium <rubidium@openttd.org>
parents:
10960
diff
changeset
|
418 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE | WDF_CONSTRUCTION, |
11373
474ba6cc0946
(svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents:
11368
diff
changeset
|
419 _vehicle_refit_widgets |
474ba6cc0946
(svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents:
11368
diff
changeset
|
420 ); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
421 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
422 /** Show the refit window for a vehicle |
11361
02313cc6114e
(svn r15711) -Codechange: lots of whitespace cleanup/fixes
rubidium <rubidium@openttd.org>
parents:
11238
diff
changeset
|
423 * @param *v The vehicle to show the refit window for |
02313cc6114e
(svn r15711) -Codechange: lots of whitespace cleanup/fixes
rubidium <rubidium@openttd.org>
parents:
11238
diff
changeset
|
424 * @param order of the vehicle ( ? ) |
02313cc6114e
(svn r15711) -Codechange: lots of whitespace cleanup/fixes
rubidium <rubidium@openttd.org>
parents:
11238
diff
changeset
|
425 */ |
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
|
426 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
|
427 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
428 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
|
429 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
|
430 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
|
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 |
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
|
433 /** 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
|
434 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
|
435 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
436 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
|
437 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
|
438 |
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
|
439 /* 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
|
440 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
|
441 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
|
442 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
|
443 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
|
444 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
|
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 |
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
|
447 /** 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
|
448 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
|
449 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
450 /* List of cargo types of this engine */ |
11238
06dac7488367
(svn r15592) -Fix: Refit-info in purchase list did only check the first articulated part.
frosch <frosch@openttd.org>
parents:
11133
diff
changeset
|
451 uint32 cmask = GetUnionOfArticulatedRefitMasks(engine, GetEngine(engine)->type, false); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
452 /* 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
|
453 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
|
454 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
|
455 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
|
456 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
457 /* 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
|
458 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
|
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 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
|
461 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
462 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
|
463 /* 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
|
464 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
|
465 } else { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
466 /* 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
|
467 * 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
|
468 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
|
469 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
|
470 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
|
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 |
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
|
473 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
|
474 |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
475 /* 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
|
476 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
|
477 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
|
478 |
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
|
479 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
|
480 |
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
|
481 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
|
482 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
|
483 |
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 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
|
485 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
486 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
487 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
488 /* 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
|
489 *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
|
490 |
085c454f158b
(svn r11601) -Codechange: more strict break conditions for _userstring, assert when it overflows anyway (eg. code change without proper check change)
smatz <smatz@openttd.org>
parents:
7997
diff
changeset
|
491 /* 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
|
492 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
|
493 |
9653
dd040a5861eb
(svn r13720) -Fix (r13715): string wasn't correctly passed to draw function.
rubidium <rubidium@openttd.org>
parents:
9652
diff
changeset
|
494 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
|
495 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
|
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 |
11133
ec305342a11e
(svn r15480) -Feature(tte): Show the cargo subtype in the vehicle details window.
michi_cc <michi_cc@openttd.org>
parents:
11085
diff
changeset
|
498 /** Get the cargo subtype text from NewGRF for the vehicle details window. */ |
ec305342a11e
(svn r15480) -Feature(tte): Show the cargo subtype in the vehicle details window.
michi_cc <michi_cc@openttd.org>
parents:
11085
diff
changeset
|
499 StringID GetCargoSubtypeText(const Vehicle *v) |
ec305342a11e
(svn r15480) -Feature(tte): Show the cargo subtype in the vehicle details window.
michi_cc <michi_cc@openttd.org>
parents:
11085
diff
changeset
|
500 { |
ec305342a11e
(svn r15480) -Feature(tte): Show the cargo subtype in the vehicle details window.
michi_cc <michi_cc@openttd.org>
parents:
11085
diff
changeset
|
501 if (HasBit(EngInfo(v->engine_type)->callbackmask, CBM_VEHICLE_CARGO_SUFFIX)) { |
ec305342a11e
(svn r15480) -Feature(tte): Show the cargo subtype in the vehicle details window.
michi_cc <michi_cc@openttd.org>
parents:
11085
diff
changeset
|
502 uint16 cb = GetVehicleCallback(CBID_VEHICLE_CARGO_SUFFIX, 0, 0, v->engine_type, v); |
ec305342a11e
(svn r15480) -Feature(tte): Show the cargo subtype in the vehicle details window.
michi_cc <michi_cc@openttd.org>
parents:
11085
diff
changeset
|
503 if (cb != CALLBACK_FAILED) { |
ec305342a11e
(svn r15480) -Feature(tte): Show the cargo subtype in the vehicle details window.
michi_cc <michi_cc@openttd.org>
parents:
11085
diff
changeset
|
504 return GetGRFStringID(GetEngineGRFID(v->engine_type), 0xD000 + cb); |
ec305342a11e
(svn r15480) -Feature(tte): Show the cargo subtype in the vehicle details window.
michi_cc <michi_cc@openttd.org>
parents:
11085
diff
changeset
|
505 } |
ec305342a11e
(svn r15480) -Feature(tte): Show the cargo subtype in the vehicle details window.
michi_cc <michi_cc@openttd.org>
parents:
11085
diff
changeset
|
506 } |
ec305342a11e
(svn r15480) -Feature(tte): Show the cargo subtype in the vehicle details window.
michi_cc <michi_cc@openttd.org>
parents:
11085
diff
changeset
|
507 return STR_EMPTY; |
ec305342a11e
(svn r15480) -Feature(tte): Show the cargo subtype in the vehicle details window.
michi_cc <michi_cc@openttd.org>
parents:
11085
diff
changeset
|
508 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
509 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
510 /** Sort vehicles by their number */ |
10647
592ae9307430
(svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents:
10562
diff
changeset
|
511 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
|
512 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
513 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
|
514 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
515 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
516 /** Sort vehicles by their name */ |
10647
592ae9307430
(svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents:
10562
diff
changeset
|
517 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
|
518 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
519 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
|
520 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
521 if (*a != _last_vehicle[0]) { |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
522 _last_vehicle[0] = *a; |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
523 SetDParam(0, (*a)->index); |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
524 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
|
525 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
526 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
527 if (*b != _last_vehicle[1]) { |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
528 _last_vehicle[1] = *b; |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
529 SetDParam(0, (*b)->index); |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
530 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
|
531 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
532 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
533 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
|
534 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
|
535 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
536 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
537 /** Sort vehicles by their age */ |
10647
592ae9307430
(svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents:
10562
diff
changeset
|
538 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
|
539 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
540 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
|
541 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
|
542 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
543 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
544 /** Sort vehicles by this year profit */ |
10647
592ae9307430
(svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents:
10562
diff
changeset
|
545 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
|
546 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
547 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
|
548 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
|
549 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
550 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
551 /** Sort vehicles by last year profit */ |
10647
592ae9307430
(svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents:
10562
diff
changeset
|
552 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
|
553 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
554 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
|
555 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
|
556 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
557 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
558 /** Sort vehicles by their cargo */ |
10647
592ae9307430
(svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents:
10562
diff
changeset
|
559 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
|
560 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
561 const Vehicle *v; |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
562 AcceptedCargo diff; |
9569
fcc94596ddfd
(svn r13593) -Fix [FS#2095](r13524): sorting by cargo capacity was broken
smatz <smatz@openttd.org>
parents:
9563
diff
changeset
|
563 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
|
564 |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
565 /* 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
|
566 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
|
567 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
|
568 |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
569 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
|
570 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
|
571 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
|
572 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
|
573 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
574 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
575 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
|
576 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
577 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
578 /** Sort vehicles by their reliability */ |
10647
592ae9307430
(svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents:
10562
diff
changeset
|
579 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
|
580 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
581 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
|
582 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
|
583 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
584 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
585 /** Sort vehicles by their max speed */ |
10647
592ae9307430
(svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents:
10562
diff
changeset
|
586 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
|
587 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
588 int r = 0; |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
589 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
|
590 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
|
591 } else { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
592 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
|
593 } |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
594 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
|
595 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
596 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
597 /** Sort vehicles by model */ |
10647
592ae9307430
(svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents:
10562
diff
changeset
|
598 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
|
599 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
600 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
|
601 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
|
602 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
603 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
604 /** Sort vehciles by their value */ |
10647
592ae9307430
(svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents:
10562
diff
changeset
|
605 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
|
606 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
607 const Vehicle *u; |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
608 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
|
609 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
610 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
|
611 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
|
612 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
613 int r = ClampToI32(diff); |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
614 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
|
615 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
616 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
617 /** Sort vehicles by their length */ |
10647
592ae9307430
(svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents:
10562
diff
changeset
|
618 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
|
619 { |
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
|
620 int r = 0; |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
621 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
|
622 case VEH_TRAIN: |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
623 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
|
624 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
|
625 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
626 case VEH_ROAD: { |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
627 const Vehicle *u; |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
628 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
|
629 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
|
630 } 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
|
631 |
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 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
|
633 } |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
634 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
|
635 } |
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
|
636 |
10161
8897c483bae7
(svn r14352) -Feature: Allow sorting vehicles by remaining life time.
belugas <belugas@openttd.org>
parents:
10151
diff
changeset
|
637 /** Sort vehicles by the time they can still live */ |
10647
592ae9307430
(svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents:
10562
diff
changeset
|
638 static int CDECL VehicleTimeToLiveSorter(const Vehicle * const *a, const Vehicle * const *b) |
10161
8897c483bae7
(svn r14352) -Feature: Allow sorting vehicles by remaining life time.
belugas <belugas@openttd.org>
parents:
10151
diff
changeset
|
639 { |
8897c483bae7
(svn r14352) -Feature: Allow sorting vehicles by remaining life time.
belugas <belugas@openttd.org>
parents:
10151
diff
changeset
|
640 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
|
641 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
|
642 } |
8897c483bae7
(svn r14352) -Feature: Allow sorting vehicles by remaining life time.
belugas <belugas@openttd.org>
parents:
10151
diff
changeset
|
643 |
6247
57363e064324
(svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents:
6148
diff
changeset
|
644 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
|
645 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
646 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
|
647 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
648 |
9861
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
649 /** |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
650 * Assign a vehicle window a new vehicle |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
651 * @param window_class WindowClass to search for |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
652 * @param from_index the old vehicle ID |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
653 * @param to_index the new vehicle ID |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
654 */ |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
655 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
|
656 { |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
657 Window *w = FindWindowById(window_class, from_index); |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
658 if (w != NULL) { |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
659 w->window_number = to_index; |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
660 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
|
661 if (to_index != INVALID_VEHICLE) InvalidateThisWindowData(w, 0); |
9861
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 /** |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
666 * 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
|
667 * @param from_index the old vehicle ID |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
668 * @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
|
669 */ |
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
|
670 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
|
671 { |
9861
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
672 ChangeVehicleWindow(WC_VEHICLE_VIEW, from_index, to_index); |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
673 ChangeVehicleWindow(WC_VEHICLE_ORDERS, from_index, to_index); |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
674 ChangeVehicleWindow(WC_VEHICLE_REFIT, from_index, to_index); |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
675 ChangeVehicleWindow(WC_VEHICLE_DETAILS, from_index, to_index); |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
676 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
|
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 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
679 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
|
680 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
|
681 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
|
682 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
|
683 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
|
684 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
|
685 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
|
686 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
|
687 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
|
688 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
|
689 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
|
690 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
|
691 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
|
692 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
|
693 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
|
694 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
|
695 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
696 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
697 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
|
698 { 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
|
699 { 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
|
700 { 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
|
701 { 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
|
702 { 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
|
703 { 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
|
704 { 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
|
705 { 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
|
706 /* 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
|
707 { 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
|
708 |
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
|
709 { 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
|
710 { 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
|
711 |
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
|
712 { 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
|
713 { 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
|
714 { 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
|
715 { 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
|
716 { 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
|
717 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
718 |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
719 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
|
720 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
721 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
|
722 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
|
723 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
724 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
|
725 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
726 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
|
727 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
|
728 sel--; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
729 |
8836
890a77315801
(svn r12584) -Codechange: do not access the order type directly.
rubidium <rubidium@openttd.org>
parents:
8786
diff
changeset
|
730 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
|
731 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
|
732 |
8840
c3d2f0eb69a1
(svn r12588) -Codechange: do not access the destination of an order directly.
rubidium <rubidium@openttd.org>
parents:
8836
diff
changeset
|
733 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
|
734 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
|
735 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
736 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
|
737 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
|
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 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
741 |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
742 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
|
743 { |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
744 switch (v->type) { |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
745 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
|
746 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
|
747 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
|
748 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
|
749 default: NOT_REACHED(); |
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 /** |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
754 * 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
|
755 * @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
|
756 * @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
|
757 */ |
10143
a2e7b550afee
(svn r14329) -Fix (r14306): selections in the group GUI weren't shown anymore.
rubidium <rubidium@openttd.org>
parents:
10122
diff
changeset
|
758 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
|
759 { |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
760 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
|
761 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
|
762 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
|
763 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
|
764 StringID str; |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
765 |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
766 SetDParam(0, v->GetDisplayProfitThisYear()); |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
767 SetDParam(1, v->GetDisplayProfitLastYear()); |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
768 |
10143
a2e7b550afee
(svn r14329) -Fix (r14306): selections in the group GUI weren't shown anymore.
rubidium <rubidium@openttd.org>
parents:
10122
diff
changeset
|
769 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
|
770 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
|
771 |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
772 if (v->name != NULL) { |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
773 /* 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
|
774 SetDParam(0, v->index); |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
775 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
|
776 } 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
|
777 /* 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
|
778 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
|
779 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
|
780 } |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
781 |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
782 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
|
783 |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
784 if (v->IsInDepot()) { |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
785 str = STR_021F; |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
786 } else { |
10744
0118ca646690
(svn r15077) -Codechange: enumify DAYS_IN_YEAR and DAYS_IN_LEAP_YEAR
smatz <smatz@openttd.org>
parents:
10647
diff
changeset
|
787 str = (v->age > v->max_age - DAYS_IN_LEAP_YEAR) ? STR_00E3 : STR_00E2; |
10122
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 |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
790 SetDParam(0, v->unitnumber); |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
791 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
|
792 |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
793 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
|
794 |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
795 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
|
796 } |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
797 } |
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
798 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
799 /** |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
800 * 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
|
801 * |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
802 * 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
|
803 * 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
|
804 * 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
|
805 * 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
|
806 * 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
|
807 */ |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
808 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
|
809 |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
810 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
|
811 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
812 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
|
813 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
|
814 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
815 this->vehicle_type = (VehicleType)GB(this->window_number, 11, 5); |
11084
e07c7d3925c8
(svn r15427) -Codechange: give w->caption_color a more sensible name as it holds the owner of whatever is shown in the window
rubidium <rubidium@openttd.org>
parents:
10998
diff
changeset
|
816 this->owner = 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
|
817 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
818 /* Hide the widgets that we will not use in this window |
11361
02313cc6114e
(svn r15711) -Codechange: lots of whitespace cleanup/fixes
rubidium <rubidium@openttd.org>
parents:
11238
diff
changeset
|
819 * 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
|
820 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
|
821 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
|
822 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
|
823 } else { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
824 this->SetWidgetsHiddenState(true, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
825 VLW_WIDGET_AVAILABLE_VEHICLES, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
826 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
|
827 VLW_WIDGET_STOP_ALL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
828 VLW_WIDGET_START_ALL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
829 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
|
830 WIDGET_LIST_END); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
831 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
832 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
833 /* 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
|
834 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
835 case VEH_TRAIN: |
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_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
|
837 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
|
838 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
|
839 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
840 case VEH_ROAD: |
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_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
|
842 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
|
843 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
844 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
845 case VEH_SHIP: |
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_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
|
847 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
|
848 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
849 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
850 case VEH_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_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
|
852 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
|
853 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
854 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
855 default: NOT_REACHED(); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
856 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
857 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
858 switch (window_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
859 case VLW_SHARED_ORDERS: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
860 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
|
861 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
|
862 |
11368
82c90cd591ab
(svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents:
11361
diff
changeset
|
863 case VLW_STANDARD: // Company Name - standard widget setup |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
864 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
865 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
|
866 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
|
867 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
|
868 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
|
869 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
870 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
871 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
|
872 |
9963
737454880ea0
(svn r14118) -Fix(r14104): typos creeping like bugs
belugas <belugas@openttd.org>
parents:
9949
diff
changeset
|
873 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
|
874 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
|
875 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
|
876 |
11368
82c90cd591ab
(svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents:
11361
diff
changeset
|
877 case VLW_STATION_LIST: // Station Name |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
878 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
879 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
|
880 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
|
881 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
|
882 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
|
883 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
884 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
885 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
|
886 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
887 case VLW_DEPOT_LIST: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
888 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
889 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
|
890 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
|
891 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
|
892 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
|
893 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
894 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
895 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
896 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
897 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
898 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
899 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
900 case VEH_TRAIN: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
901 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
|
902 /* Fallthrough */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
903 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
|
904 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
|
905 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
|
906 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
907 case VEH_SHIP: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
908 case VEH_AIRCRAFT: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
909 this->vscroll.cap = 4; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
910 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
|
911 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
912 default: NOT_REACHED(); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
913 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
914 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
915 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
916 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
|
917 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
918 /* Set up sorting. Make the window-specific _sorting variable |
11361
02313cc6114e
(svn r15711) -Codechange: lots of whitespace cleanup/fixes
rubidium <rubidium@openttd.org>
parents:
11238
diff
changeset
|
919 * point to the correct global _sorting struct so we are freed |
02313cc6114e
(svn r15711) -Codechange: lots of whitespace cleanup/fixes
rubidium <rubidium@openttd.org>
parents:
11238
diff
changeset
|
920 * from having conditionals during window operation */ |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
921 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
922 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
|
923 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
|
924 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
|
925 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
|
926 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
927 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
928 |
9530
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.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
|
930 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
|
931 this->vehicles.NeedResort(); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
932 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
933 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
|
934 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
|
935 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
936 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
937 ~VehicleListWindow() |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
938 { |
9530
e5323930bdb9
(svn r13534) -Codechange: Replace the main part of VehiclesListBase sorting with GUIList function calls
skidd13 <skidd13@openttd.org>
parents:
9528
diff
changeset
|
939 *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
|
940 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
941 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
942 virtual void OnPaint() |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
943 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
944 int x = 2; |
11084
e07c7d3925c8
(svn r15427) -Codechange: give w->caption_color a more sensible name as it holds the owner of whatever is shown in the window
rubidium <rubidium@openttd.org>
parents:
10998
diff
changeset
|
945 const Owner owner = this->owner; |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
946 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
|
947 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
|
948 |
10122
dff578338ffb
(svn r14306) -Codechange: unify the code to draw the vehicle list.
rubidium <rubidium@openttd.org>
parents:
10118
diff
changeset
|
949 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
|
950 this->SortVehicleList(); |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
951 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
|
952 |
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
|
953 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
|
954 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
955 /* draw the widgets */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
956 switch (window_type) { |
11368
82c90cd591ab
(svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents:
11361
diff
changeset
|
957 case VLW_SHARED_ORDERS: // Shared Orders |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
958 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
|
959 /* We can't open this window without vehicles using this order |
11361
02313cc6114e
(svn r15711) -Codechange: lots of whitespace cleanup/fixes
rubidium <rubidium@openttd.org>
parents:
11238
diff
changeset
|
960 * and we should close the window when deleting the order */ |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
961 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
|
962 } |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
963 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
|
964 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
965 |
11368
82c90cd591ab
(svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents:
11361
diff
changeset
|
966 case VLW_STANDARD: // Company Name |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
967 SetDParam(0, owner); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
968 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
|
969 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
970 |
9963
737454880ea0
(svn r14118) -Fix(r14104): typos creeping like bugs
belugas <belugas@openttd.org>
parents:
9949
diff
changeset
|
971 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
|
972 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
|
973 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
|
974 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
|
975 |
11368
82c90cd591ab
(svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents:
11361
diff
changeset
|
976 case VLW_STATION_LIST: // Station Name |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
977 SetDParam(0, index); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
978 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
|
979 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
|
980 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
981 case VLW_DEPOT_LIST: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
982 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
983 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
|
984 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
|
985 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
|
986 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
|
987 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
988 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
989 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
|
990 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
|
991 } else { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
992 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
|
993 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
994 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
|
995 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
996 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
997 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
998 |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
999 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
|
1000 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
|
1001 VLW_WIDGET_STOP_ALL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1002 VLW_WIDGET_START_ALL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1003 WIDGET_LIST_END); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1004 |
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
|
1005 this->DrawWidgets(); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1006 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1007 /* 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
|
1008 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
|
1009 /* 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
|
1010 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
|
1011 |
10143
a2e7b550afee
(svn r14329) -Fix (r14306): selections in the group GUI weren't shown anymore.
rubidium <rubidium@openttd.org>
parents:
10122
diff
changeset
|
1012 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
|
1013 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1014 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1015 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
|
1016 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1017 switch (widget) { |
11368
82c90cd591ab
(svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents:
11361
diff
changeset
|
1018 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
|
1019 this->vehicles.ToggleSortOrder(); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1020 this->SetDirty(); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1021 break; |
11368
82c90cd591ab
(svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents:
11361
diff
changeset
|
1022 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
|
1023 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
|
1024 return; |
11368
82c90cd591ab
(svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents:
11361
diff
changeset
|
1025 case VLW_WIDGET_LIST: { // Matrix to show vehicles |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1026 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
|
1027 const Vehicle *v; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1028 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1029 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
|
1030 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1031 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
|
1032 |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
1033 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
|
1034 |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
1035 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
|
1036 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1037 ShowVehicleViewWindow(v); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1038 } break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1039 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1040 case VLW_WIDGET_AVAILABLE_VEHICLES: |
10550
98e8bc97ec6b
(svn r14807) -Codechange: use INVALID_TILE instead of 0 to mark invalid depots, industries, towns and waypoints
smatz <smatz@openttd.org>
parents:
10544
diff
changeset
|
1041 ShowBuildVehicleWindow(INVALID_TILE, this->vehicle_type); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1042 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
|
1043 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1044 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
|
1045 static StringID action_str[] = { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1046 STR_REPLACE_VEHICLES, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1047 STR_SEND_FOR_SERVICING, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1048 STR_NULL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1049 INVALID_STRING_ID |
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 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1052 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
|
1053 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
|
1054 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
|
1055 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
|
1056 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
|
1057 }; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1058 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1059 /* 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
|
1060 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
|
1061 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
|
1062 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
|
1063 } |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1064 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1065 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
|
1066 case VLW_WIDGET_START_ALL: |
10499
45ca88a8de7d
(svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter.
rubidium <rubidium@openttd.org>
parents:
10430
diff
changeset
|
1067 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, CMD_MASS_START_STOP); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1068 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1069 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1070 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1071 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1072 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
|
1073 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1074 switch (widget) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1075 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
|
1076 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
|
1077 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1078 case VLW_WIDGET_MANAGE_VEHICLES_DROPDOWN: |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
1079 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
|
1080 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1081 switch (index) { |
11368
82c90cd591ab
(svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents:
11361
diff
changeset
|
1082 case 0: // Replace window |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1083 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
|
1084 break; |
11368
82c90cd591ab
(svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents:
11361
diff
changeset
|
1085 case 1: // Send for servicing |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1086 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
|
1087 (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
|
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; |
11368
82c90cd591ab
(svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents:
11361
diff
changeset
|
1090 case 2: // Send to Depots |
9183
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 GetCmdSendToDepot(this->vehicle_type)); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1094 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
|
1095 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1096 default: NOT_REACHED(); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1097 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1098 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1099 default: NOT_REACHED(); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1100 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1101 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
|
1102 } |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1103 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1104 virtual void OnTick() |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1105 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1106 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
|
1107 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
|
1108 StationID station = ((this->window_number & VLW_MASK) == VLW_STATION_LIST) ? GB(this->window_number, 16, 16) : INVALID_STATION; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1109 |
11084
e07c7d3925c8
(svn r15427) -Codechange: give w->caption_color a more sensible name as it holds the owner of whatever is shown in the window
rubidium <rubidium@openttd.org>
parents:
10998
diff
changeset
|
1110 DEBUG(misc, 3, "Periodic resort %d list company %d at station %d", this->vehicle_type, this->owner, station); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1111 this->SetDirty(); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1112 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1113 } |
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 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
|
1116 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1117 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
|
1118 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
|
1119 } |
9297
add307f2e6ea
(svn r13165) -Codechange: replace some RebuildXXXList/ResortXXXList+InvalidateWindowXXX with InvalidateWindowXXXData.
rubidium <rubidium@openttd.org>
parents:
9274
diff
changeset
|
1120 |
add307f2e6ea
(svn r13165) -Codechange: replace some RebuildXXXList/ResortXXXList+InvalidateWindowXXX with InvalidateWindowXXXData.
rubidium <rubidium@openttd.org>
parents:
9274
diff
changeset
|
1121 virtual void OnInvalidateData(int data) |
add307f2e6ea
(svn r13165) -Codechange: replace some RebuildXXXList/ResortXXXList+InvalidateWindowXXX with InvalidateWindowXXXData.
rubidium <rubidium@openttd.org>
parents:
9274
diff
changeset
|
1122 { |
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
|
1123 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
|
1124 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
|
1125 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
|
1126 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
|
1127 } |
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 |
9530
e5323930bdb9
(svn r13534) -Codechange: Replace the main part of VehiclesListBase sorting with GUIList function calls
skidd13 <skidd13@openttd.org>
parents:
9528
diff
changeset
|
1129 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
|
1130 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
|
1131 } else { |
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.ForceResort(); |
e5323930bdb9
(svn r13534) -Codechange: Replace the main part of VehiclesListBase sorting with GUIList function calls
skidd13 <skidd13@openttd.org>
parents:
9528
diff
changeset
|
1133 } |
9297
add307f2e6ea
(svn r13165) -Codechange: replace some RebuildXXXList/ResortXXXList+InvalidateWindowXXX with InvalidateWindowXXXData.
rubidium <rubidium@openttd.org>
parents:
9274
diff
changeset
|
1134 } |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1135 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1136 |
11373
474ba6cc0946
(svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents:
11368
diff
changeset
|
1137 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
|
1138 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
|
1139 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
|
1140 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE, |
11373
474ba6cc0946
(svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents:
11368
diff
changeset
|
1141 _vehicle_list_widgets |
474ba6cc0946
(svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents:
11368
diff
changeset
|
1142 ); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1143 |
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
|
1144 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
|
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 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
|
1147 |
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
|
1148 _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
|
1149 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
|
1150 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
|
1151 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1152 |
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
|
1153 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
|
1154 { |
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
|
1155 /* 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
|
1156 * 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
|
1157 * 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
|
1158 */ |
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 |
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
|
1160 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
|
1161 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
|
1162 } 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
|
1163 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
|
1164 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1165 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1166 |
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
|
1167 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
|
1168 { |
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 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
|
1170 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
|
1171 } |
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
|
1172 |
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
|
1173 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
|
1174 { |
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
|
1175 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
|
1176 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1177 |
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
|
1178 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
|
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 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
|
1181 } |
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
|
1182 |
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
|
1183 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
|
1184 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1185 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
|
1186 |
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
|
1187 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
|
1188 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
|
1189 } else { |
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 *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
|
1191 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
|
1192 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
|
1193 } |
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
|
1194 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
|
1195 } |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1196 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1197 |
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
|
1198 /* 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
|
1199 |
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 /** 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
|
1201 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
|
1202 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
|
1203 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
|
1204 VLD_WIDGET_RENAME_VEHICLE, |
10562
19596a28a157
(svn r14819) -Change: make details and order menu stickyable, like the timetable window. Also let the detail/order/timetable window close eachther, like the detail and order windows already did, when not stickied.
rubidium <rubidium@openttd.org>
parents:
10550
diff
changeset
|
1205 VLD_WIDGET_STICKY, |
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
|
1206 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
|
1207 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
|
1208 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
|
1209 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
|
1210 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
|
1211 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
|
1212 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
|
1213 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
|
1214 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
|
1215 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
|
1216 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
|
1217 }; |
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 /** 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
|
1220 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
|
1221 { WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // VLD_WIDGET_CLOSEBOX |
10562
19596a28a157
(svn r14819) -Change: make details and order menu stickyable, like the timetable window. Also let the detail/order/timetable window close eachther, like the detail and order windows already did, when not stickied.
rubidium <rubidium@openttd.org>
parents:
10550
diff
changeset
|
1222 { WWT_CAPTION, RESIZE_RIGHT, COLOUR_GREY, 11, 352, 0, 13, 0x0, STR_018C_WINDOW_TITLE_DRAG_THIS}, // VLD_WIDGET_CAPTION |
19596a28a157
(svn r14819) -Change: make details and order menu stickyable, like the timetable window. Also let the detail/order/timetable window close eachther, like the detail and order windows already did, when not stickied.
rubidium <rubidium@openttd.org>
parents:
10550
diff
changeset
|
1223 { WWT_PUSHTXTBTN, RESIZE_LR, COLOUR_GREY, 353, 392, 0, 13, STR_01AA_NAME, STR_NULL /* filled in later */}, // VLD_WIDGET_RENAME_VEHICLE |
19596a28a157
(svn r14819) -Change: make details and order menu stickyable, like the timetable window. Also let the detail/order/timetable window close eachther, like the detail and order windows already did, when not stickied.
rubidium <rubidium@openttd.org>
parents:
10550
diff
changeset
|
1224 { WWT_STICKYBOX, RESIZE_LR, COLOUR_GREY, 393, 404, 0, 13, STR_NULL, STR_STICKY_BUTTON}, // VLD_WIDGET_STICKY |
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
|
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; |
11084
e07c7d3925c8
(svn r15427) -Codechange: give w->caption_color a more sensible name as it holds the owner of whatever is shown in the window
rubidium <rubidium@openttd.org>
parents:
10998
diff
changeset
|
1341 this->owner = v->owner; |
9254
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 */ |
10744
0118ca646690
(svn r15077) -Codechange: enumify DAYS_IN_YEAR and DAYS_IN_LEAP_YEAR
smatz <smatz@openttd.org>
parents:
10647
diff
changeset
|
1415 SetDParam(1, v->age / DAYS_IN_LEAP_YEAR); |
0118ca646690
(svn r15077) -Codechange: enumify DAYS_IN_YEAR and DAYS_IN_LEAP_YEAR
smatz <smatz@openttd.org>
parents:
10647
diff
changeset
|
1416 SetDParam(0, (v->age + DAYS_IN_YEAR < v->max_age) ? STR_AGE : STR_AGE_RED); |
0118ca646690
(svn r15077) -Codechange: enumify DAYS_IN_YEAR and DAYS_IN_LEAP_YEAR
smatz <smatz@openttd.org>
parents:
10647
diff
changeset
|
1417 SetDParam(2, v->max_age / DAYS_IN_LEAP_YEAR); |
9254
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); |
10901
c704059a7faa
(svn r15236) -Codechange: Rename realistic_acceleration patch option to train_acceleration_model, and change from boolean to value. Don't forget to update your settings.
peter1138 <peter1138@openttd.org>
parents:
10744
diff
changeset
|
1428 DrawString(2, 25, (_settings_game.vehicle.train_acceleration_model != TAM_ORIGINAL && 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 |
10499
45ca88a8de7d
(svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter.
rubidium <rubidium@openttd.org>
parents:
10430
diff
changeset
|
1500 DoCommandP(v->tile, v->index, mod, CMD_CHANGE_SERVICE_INT | CMD_MSG(STR_018A_CAN_T_CHANGE_SERVICING)); |
9254
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 |
10499
45ca88a8de7d
(svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter.
rubidium <rubidium@openttd.org>
parents:
10430
diff
changeset
|
1533 DoCommandP(0, this->window_number, 0, CMD_RENAME_VEHICLE | CMD_MSG(_name_vehicle_error[GetVehicle(this->window_number)->type]), NULL, str); |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1534 } |
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
|
1535 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1536 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
|
1537 { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1538 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
|
1539 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
|
1540 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1541 this->vscroll.cap += delta.y / 14; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1542 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
|
1543 } |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1544 }; |
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
|
1545 |
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 /** Vehicle details window descriptor. */ |
11373
474ba6cc0946
(svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents:
11368
diff
changeset
|
1547 static const WindowDesc _vehicle_details_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
|
1548 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
|
1549 WC_VEHICLE_DETAILS, WC_VEHICLE_VIEW, |
10562
19596a28a157
(svn r14819) -Change: make details and order menu stickyable, like the timetable window. Also let the detail/order/timetable window close eachther, like the detail and order windows already did, when not stickied.
rubidium <rubidium@openttd.org>
parents:
10550
diff
changeset
|
1550 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE, |
11373
474ba6cc0946
(svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents:
11368
diff
changeset
|
1551 _vehicle_details_widgets |
474ba6cc0946
(svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents:
11368
diff
changeset
|
1552 ); |
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
|
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 /** 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
|
1555 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
|
1556 { |
10562
19596a28a157
(svn r14819) -Change: make details and order menu stickyable, like the timetable window. Also let the detail/order/timetable window close eachther, like the detail and order windows already did, when not stickied.
rubidium <rubidium@openttd.org>
parents:
10550
diff
changeset
|
1557 DeleteWindowById(WC_VEHICLE_ORDERS, v->index, false); |
19596a28a157
(svn r14819) -Change: make details and order menu stickyable, like the timetable window. Also let the detail/order/timetable window close eachther, like the detail and order windows already did, when not stickied.
rubidium <rubidium@openttd.org>
parents:
10550
diff
changeset
|
1558 DeleteWindowById(WC_VEHICLE_TIMETABLE, v->index, false); |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1559 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
|
1560 } |
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 |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1563 /* 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
|
1564 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1565 /** Vehicle view widgets. */ |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1566 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
|
1567 { 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
|
1568 { 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
|
1569 { 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
|
1570 { 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
|
1571 { 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
|
1572 { 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
|
1573 { 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
|
1574 { 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
|
1575 { 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
|
1576 { 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
|
1577 { 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
|
1578 { 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
|
1579 { 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
|
1580 { 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
|
1581 { 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
|
1582 { 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
|
1583 { WIDGETS_END}, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1584 }; |
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 /** Vehicle view window descriptor for all vehicles but trains. */ |
11373
474ba6cc0946
(svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents:
11368
diff
changeset
|
1588 static const WindowDesc _vehicle_view_desc( |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1589 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
|
1590 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
|
1591 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE, |
11373
474ba6cc0946
(svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents:
11368
diff
changeset
|
1592 _vehicle_view_widgets |
474ba6cc0946
(svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents:
11368
diff
changeset
|
1593 ); |
7486
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 /** 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
|
1596 * 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
|
1597 */ |
11373
474ba6cc0946
(svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents:
11368
diff
changeset
|
1598 static const WindowDesc _train_view_desc( |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1599 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
|
1600 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
|
1601 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE, |
11373
474ba6cc0946
(svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents:
11368
diff
changeset
|
1602 _vehicle_view_widgets |
474ba6cc0946
(svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents:
11368
diff
changeset
|
1603 ); |
7486
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 /* 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
|
1607 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
|
1608 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
|
1609 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
|
1610 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
|
1611 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
|
1612 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1613 /** 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
|
1614 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
|
1615 ZOOM_LVL_TRAIN, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1616 ZOOM_LVL_ROADVEH, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1617 ZOOM_LVL_SHIP, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1618 ZOOM_LVL_AIRCRAFT, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1619 }; |
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 /* 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
|
1622 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
|
1623 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
|
1624 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
|
1625 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
|
1626 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
|
1627 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1628 /** 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
|
1629 enum VehicleCommandTranslation { |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1630 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
|
1631 VCT_CMD_GOTO_DEPOT, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1632 VCT_CMD_CLONE_VEH, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1633 VCT_CMD_TURN_AROUND, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1634 }; |
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 /** 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
|
1637 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
|
1638 { // 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
|
1639 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
|
1640 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
|
1641 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
|
1642 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
|
1643 }, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1644 { // VCT_CMD_GOTO_DEPOT |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1645 /* 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
|
1646 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
|
1647 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
|
1648 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
|
1649 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
|
1650 }, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1651 { // VCT_CMD_CLONE_VEH |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1652 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
|
1653 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
|
1654 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
|
1655 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
|
1656 }, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1657 { // VCT_CMD_TURN_AROUND |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1658 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
|
1659 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
|
1660 0xffffffff, // invalid for ships |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1661 0xffffffff // invalid for aircrafts |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1662 }, |
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 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1665 /** 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
|
1666 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
|
1667 { |
10430
399a56984e58
(svn r14683) -Change: only say a engine/vehicle is refittable when it can be refitted to at least two cargo type or when it has subcargos.
rubidium <rubidium@openttd.org>
parents:
10348
diff
changeset
|
1668 if (!v->IsStoppedInDepot()) return false; |
399a56984e58
(svn r14683) -Change: only say a engine/vehicle is refittable when it can be refitted to at least two cargo type or when it has subcargos.
rubidium <rubidium@openttd.org>
parents:
10348
diff
changeset
|
1669 |
399a56984e58
(svn r14683) -Change: only say a engine/vehicle is refittable when it can be refitted to at least two cargo type or when it has subcargos.
rubidium <rubidium@openttd.org>
parents:
10348
diff
changeset
|
1670 do { |
399a56984e58
(svn r14683) -Change: only say a engine/vehicle is refittable when it can be refitted to at least two cargo type or when it has subcargos.
rubidium <rubidium@openttd.org>
parents:
10348
diff
changeset
|
1671 if (IsEngineRefittable(v->engine_type)) return true; |
399a56984e58
(svn r14683) -Change: only say a engine/vehicle is refittable when it can be refitted to at least two cargo type or when it has subcargos.
rubidium <rubidium@openttd.org>
parents:
10348
diff
changeset
|
1672 } while ((v->type == VEH_TRAIN || v->type == VEH_ROAD) && (v = v->Next()) != NULL); |
399a56984e58
(svn r14683) -Change: only say a engine/vehicle is refittable when it can be refitted to at least two cargo type or when it has subcargos.
rubidium <rubidium@openttd.org>
parents:
10348
diff
changeset
|
1673 |
399a56984e58
(svn r14683) -Change: only say a engine/vehicle is refittable when it can be refitted to at least two cargo type or when it has subcargos.
rubidium <rubidium@openttd.org>
parents:
10348
diff
changeset
|
1674 return false; |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1675 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1676 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1677 struct VehicleViewWindow : Window { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1678 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
|
1679 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1680 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
|
1681 |
11084
e07c7d3925c8
(svn r15427) -Codechange: give w->caption_color a more sensible name as it holds the owner of whatever is shown in the window
rubidium <rubidium@openttd.org>
parents:
10998
diff
changeset
|
1682 this->owner = v->owner; |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1683 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
|
1684 (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
|
1685 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
|
1686 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1687 /* |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1688 * 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
|
1689 * 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
|
1690 */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1691 switch (v->type) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1692 case VEH_TRAIN: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1693 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
|
1694 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1695 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
|
1696 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1697 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
|
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_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
|
1700 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
|
1701 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1702 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
|
1703 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1704 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
|
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_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
|
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_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
|
1709 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
|
1710 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1711 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
|
1712 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1713 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1714 /* 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
|
1715 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
|
1716 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
|
1717 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1718 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
|
1719 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
|
1720 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1721 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
|
1722 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
|
1723 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1724 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
|
1725 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
|
1726 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1727 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
|
1728 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
|
1729 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1730 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
|
1731 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
|
1732 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1733 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
|
1734 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
|
1735 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1736 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
|
1737 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
|
1738 break; |
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 case VEH_ROAD: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1741 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
|
1742 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1743 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
|
1744 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1745 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
|
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_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
|
1748 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
|
1749 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1750 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
|
1751 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1752 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
|
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_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
|
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_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
|
1757 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
|
1758 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1759 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
|
1760 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1761 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1762 case VEH_SHIP: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1763 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
|
1764 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1765 this->widget[VVW_WIDGET_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
|
1766 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1767 this->widget[VVW_WIDGET_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
|
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_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
|
1770 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
|
1771 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1772 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
|
1773 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1774 this->widget[VVW_WIDGET_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
|
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_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
|
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_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
|
1779 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
|
1780 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1781 this->SetWidgetsHiddenState(true, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1782 VVW_WIDGET_TURN_AROUND, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1783 VVW_WIDGET_FORCE_PROCEED, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1784 WIDGET_LIST_END); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1785 break; |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1786 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1787 case VEH_AIRCRAFT: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1788 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
|
1789 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1790 this->widget[VVW_WIDGET_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
|
1791 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1792 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
|
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_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
|
1795 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
|
1796 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1797 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
|
1798 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1799 this->widget[VVW_WIDGET_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
|
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_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
|
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_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
|
1804 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
|
1805 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1806 this->SetWidgetsHiddenState(true, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1807 VVW_WIDGET_TURN_AROUND, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1808 VVW_WIDGET_FORCE_PROCEED, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1809 WIDGET_LIST_END); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1810 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1811 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1812 default: NOT_REACHED(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1813 } |
9333
5236ba6c7d54
(svn r13225) -Fix (r13041): Missing calls to FindWindowPlacementAndResize() from lots
peter1138 <peter1138@openttd.org>
parents:
9317
diff
changeset
|
1814 |
5236ba6c7d54
(svn r13225) -Fix (r13041): Missing calls to FindWindowPlacementAndResize() from lots
peter1138 <peter1138@openttd.org>
parents:
9317
diff
changeset
|
1815 this->FindWindowPlacementAndResize(desc); |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1816 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1817 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1818 ~VehicleViewWindow() |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1819 { |
10528
faf41b99dbc3
(svn r14785) -Fix [FS#2132]: vehicle list for station gets closed when station view is closed even when the vehicle list is stickied. Other vehicle lists are not deleted when their 'opening' window gets closed so do the same with the station view.
rubidium <rubidium@openttd.org>
parents:
10527
diff
changeset
|
1820 DeleteWindowById(WC_VEHICLE_ORDERS, this->window_number, false); |
faf41b99dbc3
(svn r14785) -Fix [FS#2132]: vehicle list for station gets closed when station view is closed even when the vehicle list is stickied. Other vehicle lists are not deleted when their 'opening' window gets closed so do the same with the station view.
rubidium <rubidium@openttd.org>
parents:
10527
diff
changeset
|
1821 DeleteWindowById(WC_VEHICLE_REFIT, this->window_number, false); |
faf41b99dbc3
(svn r14785) -Fix [FS#2132]: vehicle list for station gets closed when station view is closed even when the vehicle list is stickied. Other vehicle lists are not deleted when their 'opening' window gets closed so do the same with the station view.
rubidium <rubidium@openttd.org>
parents:
10527
diff
changeset
|
1822 DeleteWindowById(WC_VEHICLE_DETAILS, this->window_number, false); |
faf41b99dbc3
(svn r14785) -Fix [FS#2132]: vehicle list for station gets closed when station view is closed even when the vehicle list is stickied. Other vehicle lists are not deleted when their 'opening' window gets closed so do the same with the station view.
rubidium <rubidium@openttd.org>
parents:
10527
diff
changeset
|
1823 DeleteWindowById(WC_VEHICLE_TIMETABLE, this->window_number, false); |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1824 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1825 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1826 virtual void OnPaint() |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1827 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1828 /** 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
|
1829 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
|
1830 STR_HEADING_FOR_TRAIN_DEPOT, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1831 STR_HEADING_FOR_ROAD_DEPOT, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1832 STR_HEADING_FOR_SHIP_DEPOT, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1833 STR_HEADING_FOR_HANGAR, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1834 }; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1835 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1836 /** 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
|
1837 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
|
1838 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
|
1839 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
|
1840 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
|
1841 STR_HEADING_FOR_HANGAR_SERVICE, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1842 }; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1843 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1844 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
|
1845 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
|
1846 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
|
1847 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
|
1848 |
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
|
1849 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
|
1850 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
|
1851 !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
|
1852 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
|
1853 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1854 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
|
1855 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
|
1856 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
|
1857 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1858 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1859 /* draw widgets & caption */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1860 SetDParam(0, v->index); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1861 this->DrawWidgets(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1862 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1863 if (v->vehstatus & VS_CRASHED) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1864 str = STR_8863_CRASHED; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1865 } 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
|
1866 str = STR_885C_BROKEN_DOWN; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1867 } 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
|
1868 if (v->type == VEH_TRAIN) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1869 if (v->cur_speed == 0) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1870 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
|
1871 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
|
1872 } else { |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1873 str = STR_8861_STOPPED; |
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 } else { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1876 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
|
1877 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
|
1878 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1879 } else { // no train |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1880 str = STR_8861_STOPPED; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1881 } |
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
|
1882 } 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
|
1883 str = STR_TRAIN_STUCK; |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1884 } 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
|
1885 switch (v->current_order.GetType()) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1886 case OT_GOTO_STATION: { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1887 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
|
1888 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
|
1889 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
|
1890 } break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1891 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1892 case OT_GOTO_DEPOT: { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1893 if (v->type == VEH_AIRCRAFT) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1894 /* 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
|
1895 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
|
1896 SetDParam(1, v->GetDisplaySpeed()); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1897 } else { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1898 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
|
1899 SetDParam(0, depot->town_index); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1900 SetDParam(1, v->GetDisplaySpeed()); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1901 } |
10285
615db2678973
(svn r14524) -Add: stop-in-depot as part of orders (PhilSophus)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
1902 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
|
1903 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
|
1904 } 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
|
1905 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
|
1906 } |
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
|
1907 } 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
|
1908 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1909 case OT_LOADING: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1910 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
|
1911 break; |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1912 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1913 case OT_GOTO_WAYPOINT: { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1914 assert(v->type == VEH_TRAIN); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1915 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
|
1916 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
|
1917 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
|
1918 break; |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1919 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1920 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1921 case OT_LEAVESTATION: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1922 if (v->type != VEH_AIRCRAFT) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1923 str = STR_LEAVING; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1924 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1925 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1926 /* 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
|
1927 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1928 default: |
10544
836dfaca2a32
(svn r14801) -Codechange: don't reference Vehicle::num_orders directly but through a method GetNumOrders() (PhilSophus)
rubidium <rubidium@openttd.org>
parents:
10528
diff
changeset
|
1929 if (v->GetNumOrders() == 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
|
1930 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
|
1931 SetDParam(0, v->GetDisplaySpeed()); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1932 } else { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1933 str = STR_EMPTY; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1934 } |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1935 break; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1936 } |
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 /* draw the flag plus orders */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1940 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); |
11426
38844e2f76fd
(svn r15784) -Fix (r15779): TextAlignment and TA_* already exist on windows
glx <glx@openttd.org>
parents:
11424
diff
changeset
|
1941 DrawString(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, SA_CENTER); |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1942 this->DrawViewport(); |
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 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1945 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
|
1946 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1947 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
|
1948 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1949 switch (widget) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1950 case VVW_WIDGET_START_STOP_VEH: // start stop |
10499
45ca88a8de7d
(svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter.
rubidium <rubidium@openttd.org>
parents:
10430
diff
changeset
|
1951 DoCommandP(v->tile, v->index, 0, |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1952 _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
|
1953 break; |
11368
82c90cd591ab
(svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents:
11361
diff
changeset
|
1954 case VVW_WIDGET_CENTER_MAIN_VIEH: {// center main view |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1955 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
|
1956 /* 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
|
1957 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
|
1958 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
|
1959 } else { |
11375
1d342902ac94
(svn r15725) -Fix: centering on a vehicle didn't respect its z coordinate
smatz <smatz@openttd.org>
parents:
11373
diff
changeset
|
1960 ScrollMainWindowTo(v->x_pos, v->y_pos, v->z_pos); |
9315
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 } break; |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1963 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1964 case VVW_WIDGET_GOTO_DEPOT: // goto hangar |
10499
45ca88a8de7d
(svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter.
rubidium <rubidium@openttd.org>
parents:
10430
diff
changeset
|
1965 DoCommandP(v->tile, v->index, _ctrl_pressed ? DEPOT_SERVICE : 0, |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1966 _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
|
1967 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1968 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
|
1969 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
|
1970 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1971 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
|
1972 if (_ctrl_pressed) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1973 ShowTimetableWindow(v); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1974 } else { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1975 ShowOrdersWindow(v); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1976 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1977 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1978 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
|
1979 ShowVehicleDetailsWindow(v); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1980 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1981 case VVW_WIDGET_CLONE_VEH: // clone vehicle |
10499
45ca88a8de7d
(svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter.
rubidium <rubidium@openttd.org>
parents:
10430
diff
changeset
|
1982 DoCommandP(v->tile, v->index, _ctrl_pressed ? 1 : 0, |
45ca88a8de7d
(svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter.
rubidium <rubidium@openttd.org>
parents:
10430
diff
changeset
|
1983 _vehicle_command_translation_table[VCT_CMD_CLONE_VEH][v->type], |
45ca88a8de7d
(svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter.
rubidium <rubidium@openttd.org>
parents:
10430
diff
changeset
|
1984 CcCloneVehicle); |
9315
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_TURN_AROUND: // turn around |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1987 assert(v->type == VEH_TRAIN || v->type == VEH_ROAD); |
10499
45ca88a8de7d
(svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter.
rubidium <rubidium@openttd.org>
parents:
10430
diff
changeset
|
1988 DoCommandP(v->tile, v->index, 0, |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1989 _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
|
1990 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1991 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
|
1992 assert(v->type == VEH_TRAIN); |
10499
45ca88a8de7d
(svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter.
rubidium <rubidium@openttd.org>
parents:
10430
diff
changeset
|
1993 DoCommandP(v->tile, v->index, 0, CMD_FORCE_TRAIN_PROCEED | CMD_MSG(STR_8862_CAN_T_MAKE_TRAIN_PASS_SIGNAL)); |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1994 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1995 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1996 } |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1997 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1998 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
|
1999 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2000 this->viewport->width += delta.x; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2001 this->viewport->height += delta.y; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2002 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
|
2003 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
|
2004 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2005 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2006 virtual void OnTick() |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2007 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2008 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
|
2009 bool veh_stopped = v->IsStoppedInDepot(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2010 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2011 /* 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
|
2012 * stopped in depot. |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2013 * 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
|
2014 * 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
|
2015 * 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
|
2016 * 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
|
2017 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
|
2018 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
|
2019 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
|
2020 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
|
2021 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
|
2022 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
|
2023 } |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2024 this->SetDirty(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2025 } |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
2026 } |
9315
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 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2029 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2030 /** 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
|
2031 void ShowVehicleViewWindow(const Vehicle *v) |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2032 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2033 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
|
2034 } |
8144
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2035 |
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
|
2036 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
|
2037 { |
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
|
2038 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
|
2039 if (w != NULL && w->viewport->follow_vehicle == v->index) { |
11375
1d342902ac94
(svn r15725) -Fix: centering on a vehicle didn't respect its z coordinate
smatz <smatz@openttd.org>
parents:
11373
diff
changeset
|
2040 ScrollMainWindowTo(v->x_pos, v->y_pos, v->z_pos, true); // lock the main view on the vehicle's last position |
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
|
2041 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
|
2042 } |
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
|
2043 } |