Mercurial > hg > openttd
annotate src/vehicle_gui.cpp @ 9978:793681882d37 draft
(svn r14135) -Codechange: Add owner to waypoints. Previously, it was guessed from rail underneath it.
author | belugas <belugas@openttd.org> |
---|---|
date | Sat, 23 Aug 2008 02:15:46 +0000 |
parents | 352e0aecf28a |
children | 9bd8842e9d02 |
rev | line source |
---|---|
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1 /* $Id$ */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2 |
9111
d48433370037
(svn r12971) -Documentation: add @file in files that missed them and add something more than whitespace as description of files that don't have a description.
rubidium <rubidium@openttd.org>
parents:
9060
diff
changeset
|
3 /** @file vehicle_gui.cpp The base GUI for all vehicles. */ |
6423
72ac8bfaa32f
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas <belugas@openttd.org>
parents:
6350
diff
changeset
|
4 |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
5 #include "stdafx.h" |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
6 #include "openttd.h" |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
7 #include "debug.h" |
8254
7d580c9c41fb
(svn r11818) -Codechange: split player.h into smaller pieces.
rubidium <rubidium@openttd.org>
parents:
8224
diff
changeset
|
8 #include "player_func.h" |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
9 #include "gui.h" |
8107
f65cf2bc3255
(svn r11668) -Codechange: more refactoring aimed at reducing compile time and making it more logic where function definitions can be found.
rubidium <rubidium@openttd.org>
parents:
8106
diff
changeset
|
10 #include "window_gui.h" |
f65cf2bc3255
(svn r11668) -Codechange: more refactoring aimed at reducing compile time and making it more logic where function definitions can be found.
rubidium <rubidium@openttd.org>
parents:
8106
diff
changeset
|
11 #include "textbuf_gui.h" |
8116
9cc845deddfe
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium <rubidium@openttd.org>
parents:
8114
diff
changeset
|
12 #include "command_func.h" |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
13 #include "variables.h" |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
14 #include "vehicle_gui.h" |
8224
c45446125bf0
(svn r11787) -Codechange: more header rewrites. This time related to viewport.h.
rubidium <rubidium@openttd.org>
parents:
8214
diff
changeset
|
15 #include "viewport_func.h" |
c45446125bf0
(svn r11787) -Codechange: more header rewrites. This time related to viewport.h.
rubidium <rubidium@openttd.org>
parents:
8214
diff
changeset
|
16 #include "gfx_func.h" |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
17 #include "train.h" |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
18 #include "newgrf_callbacks.h" |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
19 #include "newgrf_engine.h" |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
20 #include "newgrf_text.h" |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
21 #include "ship.h" |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
22 #include "aircraft.h" |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
23 #include "roadveh.h" |
8962
322e2779f67a
(svn r12754) -Codechange: split depot.h into depot_map.h, depot_func.h and depot_base.h and remove quite a lot of unneeded (before this) includes of depot.h.
rubidium <rubidium@openttd.org>
parents:
8917
diff
changeset
|
24 #include "depot_base.h" |
6091
17ebeb5a2c37
(svn r8826) -Codechange: Replace _cargoc's separate arrays with a regular struct array (with accessor) and implement new initialization method using cargo labels.
peter1138 <peter1138@openttd.org>
parents:
6056
diff
changeset
|
25 #include "cargotype.h" |
6643
18d58b36b9b3
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium <rubidium@openttd.org>
parents:
6638
diff
changeset
|
26 #include "group.h" |
8111
5475263e4cab
(svn r11672) -Codechange: refactor some stuff out of gui.h.
rubidium <rubidium@openttd.org>
parents:
8107
diff
changeset
|
27 #include "group_gui.h" |
8114
2d6af5d7a142
(svn r11675) -Codechange: split the string types from the string functions.
rubidium <rubidium@openttd.org>
parents:
8111
diff
changeset
|
28 #include "strings_func.h" |
8131
e300ac8001ae
(svn r11692) -Codechange: move some functions from 'functions.h' to a more logical place and remove about 50% of the includes of 'functions.h'
rubidium <rubidium@openttd.org>
parents:
8130
diff
changeset
|
29 #include "functions.h" |
e300ac8001ae
(svn r11692) -Codechange: move some functions from 'functions.h' to a more logical place and remove about 50% of the includes of 'functions.h'
rubidium <rubidium@openttd.org>
parents:
8130
diff
changeset
|
30 #include "window_func.h" |
8144
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
31 #include "vehicle_func.h" |
8212
11263ebe590a
(svn r11775) -Codechange: move all autoreplace/autorenew functions to a single location.
rubidium <rubidium@openttd.org>
parents:
8179
diff
changeset
|
32 #include "autoreplace_gui.h" |
8213
87c85bb42d6f
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium <rubidium@openttd.org>
parents:
8212
diff
changeset
|
33 #include "core/alloc_func.hpp" |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
34 #include "core/mem_func.hpp" |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
35 #include "core/sort_func.hpp" |
8214
6385dffc0b37
(svn r11777) -Codechange: split the string header and make do not include it when it's not necessary.
rubidium <rubidium@openttd.org>
parents:
8213
diff
changeset
|
36 #include "string_func.h" |
8270
5613b863190d
(svn r11834) -Codechange: only include settings_type.h if needed.
rubidium <rubidium@openttd.org>
parents:
8264
diff
changeset
|
37 #include "settings_type.h" |
8284
dbb7bfe0e95c
(svn r11848) -Codechange: New class-based drop down list functionality. Lists are now dynamically generated, and can include parameters, or be extended however needed.
peter1138 <peter1138@openttd.org>
parents:
8270
diff
changeset
|
38 #include "widgets/dropdown_func.h" |
8784
6280c0d48a6d
(svn r12488) -Codechange: split order.h into order_base.h and order_func.h.
rubidium <rubidium@openttd.org>
parents:
8771
diff
changeset
|
39 #include "order_func.h" |
9117
453c3d26f4bc
(svn r12977) -Codechange: remove quite some redundant (duplicate) function declarations.
rubidium <rubidium@openttd.org>
parents:
9116
diff
changeset
|
40 #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
|
41 #include "vehiclelist.h" |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
42 |
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
|
43 #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
|
44 #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
|
45 |
9182
d3a153aa328d
(svn r13045) -Codechange: make list_d (now GUIList) more generic and uniform.
rubidium <rubidium@openttd.org>
parents:
9161
diff
changeset
|
46 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
|
47 |
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
|
48 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
|
49 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
|
50 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
|
51 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
|
52 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
|
53 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
|
54 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
|
55 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
|
56 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
|
57 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
|
58 static GUIVehicleList::SortFunction VehicleLengthSorter; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
59 |
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
|
60 GUIVehicleList::SortFunction* const VehicleListBase::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
|
61 &VehicleNumberSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
62 &VehicleNameSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
63 &VehicleAgeSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
64 &VehicleProfitThisYearSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
65 &VehicleProfitLastYearSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
66 &VehicleCargoSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
67 &VehicleReliabilitySorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
68 &VehicleMaxSpeedSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
69 &VehicleModelSorter, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
70 &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
|
71 &VehicleLengthSorter, |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
72 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
73 |
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
|
74 const StringID VehicleListBase::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
|
75 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
|
76 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
|
77 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
|
78 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
|
79 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
|
80 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
|
81 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
|
82 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
|
83 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
|
84 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
|
85 STR_SORT_BY_LENGTH, |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
86 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
|
87 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
88 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
89 void BuildVehicleList(VehicleListBase *vl, PlayerID owner, uint16 index, uint16 window_type) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
90 { |
9530
e5323930bdb9
(svn r13534) -Codechange: Replace the main part of VehiclesListBase sorting with GUIList function calls
skidd13 <skidd13@openttd.org>
parents:
9528
diff
changeset
|
91 if (!vl->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
|
92 |
5747
61edd889181d
(svn r8295) -Cleanup: merged arguments station, order and depot_airport_index for GenerateVehicleSortList() and BuildVehicleList() into one uint16 argument
bjarni <bjarni@openttd.org>
parents:
5745
diff
changeset
|
93 DEBUG(misc, 3, "Building vehicle list for player %d at station %d", owner, index); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
94 |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
95 GenerateVehicleSortList(&vl->vehicles, vl->vehicle_type, owner, index, window_type); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
96 |
9530
e5323930bdb9
(svn r13534) -Codechange: Replace the main part of VehiclesListBase sorting with GUIList function calls
skidd13 <skidd13@openttd.org>
parents:
9528
diff
changeset
|
97 vl->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
|
98 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
99 |
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
|
100 /* 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
|
101 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
|
102 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
103 void SortVehicleList(VehicleListBase *vl) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
104 { |
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
|
105 if (vl->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
|
106 |
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
|
107 /* 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
|
108 _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
|
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 |
9351
feaf9bae7580
(svn r13248) -Codechange: Use VehicleList for depot GUI.
peter1138 <peter1138@openttd.org>
parents:
9333
diff
changeset
|
111 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
|
112 { |
9351
feaf9bae7580
(svn r13248) -Codechange: Use VehicleList for depot GUI.
peter1138 <peter1138@openttd.org>
parents:
9333
diff
changeset
|
113 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
|
114 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
|
115 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
116 |
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
|
117 /** 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
|
118 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
|
119 { |
5668
3d6d9bff3dd8
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138 <peter1138@openttd.org>
parents:
5609
diff
changeset
|
120 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
|
121 |
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
|
122 /* draw profit-based colored icons */ |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
123 if (v->age <= 365 * 2) { |
5668
3d6d9bff3dd8
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138 <peter1138@openttd.org>
parents:
5609
diff
changeset
|
124 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
|
125 } 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
|
126 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
|
127 } 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
|
128 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
|
129 } else { |
5668
3d6d9bff3dd8
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138 <peter1138@openttd.org>
parents:
5609
diff
changeset
|
130 pal = PALETTE_TO_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
|
131 } |
5668
3d6d9bff3dd8
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138 <peter1138@openttd.org>
parents:
5609
diff
changeset
|
132 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
|
133 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
134 |
6248
0789677a15a0
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents:
6247
diff
changeset
|
135 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
|
136 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
|
137 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
|
138 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
|
139 EngineID engine; |
6248
0789677a15a0
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents:
6247
diff
changeset
|
140 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
141 |
6248
0789677a15a0
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents:
6247
diff
changeset
|
142 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
|
143 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
|
144 RefitOption *items; |
6248
0789677a15a0
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents:
6247
diff
changeset
|
145 }; |
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 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
147 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
|
148 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
149 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
|
150 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
|
151 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
|
152 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
|
153 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
|
154 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
|
155 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
156 do { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
157 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
|
158 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
|
159 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
160 /* 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
|
161 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
|
162 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
163 /* 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
|
164 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
|
165 /* 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
|
166 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
|
167 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
168 /* 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
|
169 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
|
170 /* 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
|
171 * 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
|
172 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
|
173 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
|
174 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
|
175 |
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
|
176 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
|
177 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
178 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
|
179 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
|
180 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
|
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 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
|
183 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
|
184 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
185 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
|
186 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
|
187 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
188 /* 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
|
189 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
|
190 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
|
191 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
192 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
193 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
|
194 |
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
|
195 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
|
196 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
|
197 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
|
198 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
|
199 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
|
200 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
201 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
202 /* 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
|
203 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
|
204 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
|
205 } else { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
206 /* 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
|
207 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
|
208 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
209 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
|
210 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
|
211 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
212 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
213 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
|
214 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
|
215 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
|
216 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
|
217 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
|
218 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 } |
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 } |
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
|
222 } 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
|
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 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
|
225 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
|
226 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
227 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
|
228 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
229 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
230 /** 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
|
231 * 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
|
232 * @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
|
233 * @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
|
234 * @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
|
235 * @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
|
236 * @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
|
237 * @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
|
238 */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
239 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
|
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 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
|
242 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
|
243 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
|
244 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
|
245 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
|
246 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
247 /* 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
|
248 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
|
249 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
|
250 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
|
251 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
|
252 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
|
253 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
254 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
255 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
|
256 /* 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
|
257 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
|
258 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
259 /* If 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
|
260 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
|
261 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
|
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 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
|
264 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
265 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
266 sel--; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
267 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
268 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
269 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
|
270 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
271 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
272 struct RefitWindow : public Window { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
273 int sel; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
274 RefitOption *cargo; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
275 RefitList *list; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
276 uint length; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
277 VehicleOrderID order; |
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 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
|
280 { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
281 this->caption_color = v->owner; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
282 this->vscroll.cap = 8; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
283 this->resize.step_height = 14; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
284 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
285 this->order = order; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
286 this->sel = -1; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
287 this->list = BuildRefitList(v); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
288 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
|
289 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
|
290 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
291 switch (v->type) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
292 case VEH_TRAIN: |
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_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
|
294 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
|
295 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
|
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_ROAD: |
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_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
|
300 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
|
301 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
|
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_SHIP: |
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_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
|
306 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
|
307 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
|
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 case VEH_AIRCRAFT: |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
311 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
|
312 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
|
313 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
|
314 break; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
315 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
316 default: NOT_REACHED(); |
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 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
319 this->FindWindowPlacementAndResize(desc); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
320 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
321 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
322 ~RefitWindow() |
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 free(this->list->items); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
325 free(this->list); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
326 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
327 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
328 virtual void OnPaint() |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
329 { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
330 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
|
331 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
332 if (v->type == VEH_TRAIN) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
333 uint length = CountVehiclesInChain(v); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
334 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
335 if (length != this->length) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
336 /* 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
|
337 free(this->list->items); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
338 free(this->list); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
339 this->list = BuildRefitList(v); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
340 this->length = length; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
341 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
342 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
343 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
344 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
|
345 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
346 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
|
347 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
|
348 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
349 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
|
350 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
351 if (this->cargo != NULL) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
352 CommandCost cost; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
353 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
354 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
|
355 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
|
356 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
357 if (CmdSucceeded(cost)) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
358 SetDParam(0, this->cargo->cargo); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
359 SetDParam(1, _returned_refit_capacity); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
360 SetDParam(2, cost.GetCost()); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
361 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
|
362 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
363 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
364 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
365 |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
366 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
|
367 { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
368 switch (widget) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
369 case 3: { // listbox |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
370 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
|
371 if (y >= 0) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
372 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
|
373 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
|
374 } |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
375 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
|
376 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
377 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
378 case 6: // refit button |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
379 if (this->cargo != NULL) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
380 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
|
381 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
382 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
|
383 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
|
384 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
385 switch (v->type) { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
386 default: NOT_REACHED(); |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
387 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
|
388 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
|
389 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
|
390 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
|
391 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
392 if (DoCommandP(v->tile, v->index, this->cargo->cargo | this->cargo->subtype << 8, NULL, command)) delete this; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
393 } else { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
394 if (DoCommandP(v->tile, v->index, this->cargo->cargo | this->cargo->subtype << 8 | this->order << 16, NULL, CMD_ORDER_REFIT)) delete this; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
395 } |
9262
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 break; |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
398 } |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
399 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
400 |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
401 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
|
402 { |
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
403 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
|
404 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
|
405 } |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
406 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
407 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
408 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
409 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
|
410 { 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
|
411 { 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
|
412 { 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
|
413 { 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
|
414 { 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
|
415 { 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
|
416 { 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
|
417 { 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
|
418 { 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
|
419 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
420 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
421 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
|
422 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
|
423 WC_VEHICLE_REFIT, WC_VEHICLE_VIEW, |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
424 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
425 _vehicle_refit_widgets, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
426 }; |
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 /** Show the refit window for a vehicle |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
429 * @param *v The vehicle to show the refit window for |
6491
696f0e1b046e
(svn r9672) -Cleanup: lots of coding style fixes around operands.
rubidium <rubidium@openttd.org>
parents:
6484
diff
changeset
|
430 * @param order of the vehicle ( ? ) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
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 void ShowVehicleRefitWindow(const Vehicle *v, VehicleOrderID order) |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
433 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
434 DeleteWindowById(WC_VEHICLE_REFIT, v->index); |
9262
4c503ff7c207
(svn r13128) -Codechange: Make a class of the refit window
peter1138 <peter1138@openttd.org>
parents:
9254
diff
changeset
|
435 new RefitWindow(&_vehicle_refit_desc, v, order); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
436 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
437 |
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
|
438 /** 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
|
439 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
|
440 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
441 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
|
442 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
|
443 |
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
|
444 /* 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
|
445 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
|
446 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
|
447 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
|
448 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
|
449 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
|
450 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
451 |
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
|
452 /** 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
|
453 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
|
454 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
455 /* List of cargo types of this engine */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
456 uint32 cmask = EngInfo(engine)->refit_mask; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
457 /* 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
|
458 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
|
459 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
|
460 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
|
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 /* 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
|
463 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
|
464 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
465 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
|
466 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
467 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
|
468 /* 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
|
469 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
|
470 } else { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
471 /* 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
|
472 * 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
|
473 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
|
474 cmask ^= lmask; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
475 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
|
476 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
477 |
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
|
478 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
|
479 |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
480 /* 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
|
481 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
|
482 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
|
483 |
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
|
484 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
|
485 |
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
|
486 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
|
487 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
|
488 |
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
|
489 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
|
490 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
491 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
492 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
493 /* 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
|
494 *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
|
495 |
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
|
496 /* 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
|
497 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
|
498 |
9653
dd040a5861eb
(svn r13720) -Fix (r13715): string wasn't correctly passed to draw function.
rubidium <rubidium@openttd.org>
parents:
9652
diff
changeset
|
499 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
|
500 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
|
501 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
502 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
503 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
504 /** Sort vehicles by their number */ |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
505 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
|
506 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
507 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
|
508 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
509 |
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 name */ |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
511 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
|
512 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
513 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
|
514 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
515 if (*a != _last_vehicle[0]) { |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
516 _last_vehicle[0] = *a; |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
517 SetDParam(0, (*a)->index); |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
518 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
|
519 } |
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 (*b != _last_vehicle[1]) { |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
522 _last_vehicle[1] = *b; |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
523 SetDParam(0, (*b)->index); |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
524 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
|
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 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
|
528 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
|
529 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
530 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
531 /** Sort vehicles by their age */ |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
532 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
|
533 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
534 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
|
535 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
|
536 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
537 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
538 /** Sort vehicles by this year profit */ |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
539 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
|
540 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
541 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
|
542 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
|
543 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
544 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
545 /** Sort vehicles by last year profit */ |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
546 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
|
547 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
548 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
|
549 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
|
550 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
551 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
552 /** Sort vehicles by their cargo */ |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
553 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
|
554 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
555 const Vehicle *v; |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
556 AcceptedCargo diff; |
9569
fcc94596ddfd
(svn r13593) -Fix [FS#2095](r13524): sorting by cargo capacity was broken
smatz <smatz@openttd.org>
parents:
9563
diff
changeset
|
557 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
|
558 |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
559 /* 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
|
560 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
|
561 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
|
562 |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
563 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
|
564 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
|
565 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
|
566 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
|
567 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
568 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
569 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
|
570 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
571 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
572 /** Sort vehicles by their reliability */ |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
573 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
|
574 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
575 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
|
576 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
|
577 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
578 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
579 /** Sort vehicles by their max speed */ |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
580 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
|
581 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
582 int r = 0; |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
583 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
|
584 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
|
585 } else { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
586 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
|
587 } |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
588 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
|
589 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
590 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
591 /** Sort vehicles by model */ |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
592 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
|
593 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
594 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
|
595 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
|
596 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
597 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
598 /** Sort vehciles by their value */ |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
599 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
|
600 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
601 const Vehicle *u; |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
602 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
|
603 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
604 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
|
605 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
|
606 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
607 int r = ClampToI32(diff); |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
608 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
|
609 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
610 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
611 /** Sort vehicles by their length */ |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
612 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
|
613 { |
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
|
614 int r = 0; |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
615 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
|
616 case VEH_TRAIN: |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
617 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
|
618 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
|
619 |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
620 case VEH_ROAD: { |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
621 const Vehicle *u; |
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
622 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
|
623 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
|
624 } 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
|
625 |
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
|
626 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
|
627 } |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
628 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
|
629 } |
6b1769a870ad
(svn r12766) -Add: sorting by road vehicle/train length. Based on a patch by Sir Bob.
rubidium <rubidium@openttd.org>
parents:
8969
diff
changeset
|
630 |
6247
57363e064324
(svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents:
6148
diff
changeset
|
631 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
|
632 { |
9528
6a031a5f7412
(svn r13524) -Codechange: use the typesafe QSort for vehicle sortings
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
633 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
|
634 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
635 |
9861
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
636 /** |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
637 * Assign a vehicle window a new vehicle |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
638 * @param window_class WindowClass to search for |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
639 * @param from_index the old vehicle ID |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
640 * @param to_index the new vehicle ID |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
641 */ |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
642 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
|
643 { |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
644 Window *w = FindWindowById(window_class, from_index); |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
645 if (w != NULL) { |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
646 w->window_number = to_index; |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
647 if (w->viewport != NULL) w->viewport->follow_vehicle = to_index; |
9862
699b265b904b
(svn r14007) -Fix [FS#2098]: Notify vehicle windows when their internal state is botched up from outside.
frosch <frosch@openttd.org>
parents:
9861
diff
changeset
|
648 if (to_index != INVALID_VEHICLE) InvalidateThisWindowData(w); |
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 } |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
651 |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
652 /** |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
653 * 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
|
654 * @param from_index the old vehicle ID |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
655 * @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
|
656 */ |
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
|
657 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
|
658 { |
9861
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
659 ChangeVehicleWindow(WC_VEHICLE_VIEW, from_index, to_index); |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
660 ChangeVehicleWindow(WC_VEHICLE_ORDERS, from_index, to_index); |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
661 ChangeVehicleWindow(WC_VEHICLE_REFIT, from_index, to_index); |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
662 ChangeVehicleWindow(WC_VEHICLE_DETAILS, from_index, to_index); |
9d1b7d450eb3
(svn r14006) -Codechange: Deduplicate some code.
frosch <frosch@openttd.org>
parents:
9808
diff
changeset
|
663 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
|
664 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
665 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
666 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
|
667 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
|
668 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
|
669 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
|
670 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
|
671 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
|
672 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
|
673 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
|
674 VLW_WIDGET_SCROLLBAR, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
675 VLW_WIDGET_OTHER_PLAYER_FILLER, |
5846
54159187097e
(svn r8420) -Codechange (r7418): Rename the 'New <vehtype>' button of the global vehicle lists to 'Available <vehtype>' as it is a view-only list, not one from which you can purchase (rolling) stock.
Darkvater <Darkvater@openttd.org>
parents:
5809
diff
changeset
|
676 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
|
677 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
|
678 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
|
679 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
|
680 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
|
681 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
|
682 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
683 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
684 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
|
685 { 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
|
686 { 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
|
687 { 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
|
688 { 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
|
689 { 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
|
690 { WWT_PANEL, RESIZE_RIGHT, COLOUR_GREY, 248, 259, 14, 25, 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
|
691 { WWT_MATRIX, RESIZE_RB, COLOUR_GREY, 0, 247, 26, 169, 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
|
692 { WWT_SCROLLBAR, RESIZE_LRB, COLOUR_GREY, 248, 259, 26, 169, 0x0, STR_0190_SCROLL_BAR_SCROLLS_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
|
693 /* Widget to be shown for other players hiding the following 6 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
|
694 { WWT_PANEL, RESIZE_RTB, COLOUR_GREY, 0, 247, 170, 181, 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
|
695 |
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
|
696 { WWT_PUSHTXTBTN, RESIZE_TB, COLOUR_GREY, 0, 105, 170, 181, 0x0, STR_AVAILABLE_ENGINES_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
|
697 { WWT_DROPDOWN, RESIZE_TB, COLOUR_GREY, 106, 223, 170, 181, STR_MANAGE_LIST, STR_MANAGE_LIST_TIP}, |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
698 |
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
|
699 { WWT_PUSHIMGBTN, RESIZE_TB, COLOUR_GREY, 224, 235, 170, 181, SPR_FLAG_VEH_STOPPED, STR_MASS_STOP_LIST_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
|
700 { WWT_PUSHIMGBTN, RESIZE_TB, COLOUR_GREY, 236, 247, 170, 181, SPR_FLAG_VEH_RUNNING, STR_MASS_START_LIST_TIP}, |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
701 { WWT_PANEL, RESIZE_RTB, COLOUR_GREY, 248, 247, 170, 181, 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
|
702 { WWT_RESIZEBOX, RESIZE_LRTB, COLOUR_GREY, 248, 259, 170, 181, 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
|
703 { 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
|
704 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
705 |
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
|
706 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
|
707 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
708 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
|
709 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
|
710 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
711 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
|
712 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
713 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
|
714 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
|
715 sel--; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
716 |
8836
890a77315801
(svn r12584) -Codechange: do not access the order type directly.
rubidium <rubidium@openttd.org>
parents:
8786
diff
changeset
|
717 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
|
718 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
|
719 |
8840
c3d2f0eb69a1
(svn r12588) -Codechange: do not access the destination of an order directly.
rubidium <rubidium@openttd.org>
parents:
8836
diff
changeset
|
720 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
|
721 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
|
722 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
723 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
|
724 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
|
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 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
727 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
728 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
729 /** |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
730 * 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
|
731 * |
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 * bitmask for w->window_number |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
733 * 0-7 PlayerID (owner) |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
734 * 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
|
735 * 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
|
736 * 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
|
737 */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
738 struct VehicleListWindow : public Window, public VehicleListBase { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
739 |
9203
375bae14ff71
(svn r13069) -Codechange: it is no longer needed to pass a void *data pointer with the WE_CREATE message because nothing uses it anymore.
rubidium <rubidium@openttd.org>
parents:
9184
diff
changeset
|
740 VehicleListWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number) |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
741 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
742 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
|
743 PlayerID player = (PlayerID)GB(this->window_number, 0, 8); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
744 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
745 this->vehicle_type = (VehicleType)GB(this->window_number, 11, 5); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
746 this->caption_color = player; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
747 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
748 /* Hide the widgets that we will not use in this window |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
749 * Some windows contains actions only fit for the owner */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
750 if (player == _local_player) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
751 this->HideWidget(VLW_WIDGET_OTHER_PLAYER_FILLER); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
752 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
|
753 } else { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
754 this->SetWidgetsHiddenState(true, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
755 VLW_WIDGET_AVAILABLE_VEHICLES, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
756 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
|
757 VLW_WIDGET_STOP_ALL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
758 VLW_WIDGET_START_ALL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
759 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
|
760 WIDGET_LIST_END); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
761 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
762 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
763 /* 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
|
764 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
765 case VEH_TRAIN: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
766 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
|
767 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
|
768 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
|
769 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
770 case VEH_ROAD: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
771 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
|
772 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
|
773 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
774 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
775 case VEH_SHIP: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
776 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
|
777 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
|
778 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
779 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
780 case VEH_AIRCRAFT: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
781 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
|
782 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
|
783 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
784 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
785 default: NOT_REACHED(); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
786 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
787 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
788 switch (window_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
789 case VLW_SHARED_ORDERS: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
790 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
|
791 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
|
792 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
793 case VLW_STANDARD: /* Company Name - standard widget setup */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
794 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
795 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
|
796 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
|
797 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
|
798 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
|
799 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
800 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
801 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
|
802 |
9963
737454880ea0
(svn r14118) -Fix(r14104): typos creeping like bugs
belugas <belugas@openttd.org>
parents:
9949
diff
changeset
|
803 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
|
804 this->widget[VLW_WIDGET_CAPTION].data = STR_WAYPOINT_VIEWPORT; |
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
|
805 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
|
806 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
807 case VLW_STATION_LIST: /* Station Name */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
808 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
809 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
|
810 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
|
811 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
|
812 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
|
813 default: NOT_REACHED(); break; |
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 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
|
816 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
817 case VLW_DEPOT_LIST: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
818 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
819 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
|
820 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
|
821 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
|
822 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
|
823 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
824 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
825 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
826 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
827 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
828 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
829 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
830 case VEH_TRAIN: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
831 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
|
832 /* Fallthrough */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
833 case VEH_ROAD: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
834 this->vscroll.cap = 7; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
835 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
|
836 this->resize.height = 220 - (PLY_WND_PRC__SIZE_OF_ROW_SMALL * 3); // Minimum of 4 vehicles |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
837 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
838 case VEH_SHIP: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
839 case VEH_AIRCRAFT: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
840 this->vscroll.cap = 4; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
841 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
|
842 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
843 default: NOT_REACHED(); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
844 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
845 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
846 |
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_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
|
848 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
849 /* Set up sorting. Make the window-specific _sorting variable |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
850 * point to the correct global _sorting struct so we are freed |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
851 * from having conditionals during window operation */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
852 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
853 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
|
854 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
|
855 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
|
856 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
|
857 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
858 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
859 |
9530
e5323930bdb9
(svn r13534) -Codechange: Replace the main part of VehiclesListBase sorting with GUIList function calls
skidd13 <skidd13@openttd.org>
parents:
9528
diff
changeset
|
860 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
|
861 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
|
862 this->vehicles.NeedResort(); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
863 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
864 this->FindWindowPlacementAndResize(desc); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
865 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
866 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
867 ~VehicleListWindow() |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
868 { |
9530
e5323930bdb9
(svn r13534) -Codechange: Replace the main part of VehiclesListBase sorting with GUIList function calls
skidd13 <skidd13@openttd.org>
parents:
9528
diff
changeset
|
869 *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
|
870 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
871 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
872 virtual void OnPaint() |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
873 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
874 int x = 2; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
875 int y = PLY_WND_PRC__OFFSET_TOP_WIDGET; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
876 int max; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
877 int i; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
878 const PlayerID owner = (PlayerID)this->caption_color; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
879 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
|
880 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
|
881 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
882 BuildVehicleList(this, owner, index, window_type); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
883 SortVehicleList(this); |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
884 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
|
885 |
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
|
886 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
|
887 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
888 /* draw the widgets */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
889 switch (window_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
890 case VLW_SHARED_ORDERS: /* Shared Orders */ |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
891 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
|
892 /* We can't open this window without vehicles using this order |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
893 * and we should close the window when deleting the order */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
894 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
|
895 } |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
896 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
|
897 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
898 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
899 case VLW_STANDARD: /* Company Name */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
900 SetDParam(0, owner); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
901 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
|
902 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
903 |
9963
737454880ea0
(svn r14118) -Fix(r14104): typos creeping like bugs
belugas <belugas@openttd.org>
parents:
9949
diff
changeset
|
904 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
|
905 SetDParam(0, index); |
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
|
906 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
|
907 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
908 case VLW_STATION_LIST: /* Station Name */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
909 SetDParam(0, index); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
910 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
|
911 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
|
912 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
913 case VLW_DEPOT_LIST: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
914 switch (this->vehicle_type) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
915 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
|
916 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
|
917 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
|
918 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
|
919 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
920 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
921 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
|
922 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
|
923 } else { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
924 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
|
925 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
926 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
|
927 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
928 default: NOT_REACHED(); break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
929 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
930 |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
931 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
|
932 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
|
933 VLW_WIDGET_STOP_ALL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
934 VLW_WIDGET_START_ALL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
935 WIDGET_LIST_END); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
936 |
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
|
937 this->DrawWidgets(); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
938 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
939 /* 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
|
940 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
|
941 /* 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
|
942 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
|
943 |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
944 max = min(this->vscroll.pos + this->vscroll.cap, this->vehicles.Length()); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
945 for (i = this->vscroll.pos; i < max; ++i) { |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
946 const Vehicle *v = this->vehicles[i]; |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
947 StringID str; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
948 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
949 SetDParam(0, v->GetDisplayProfitThisYear()); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
950 SetDParam(1, v->GetDisplayProfitLastYear()); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
951 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
952 DrawVehicleImage(v, x + 19, y + 6, INVALID_VEHICLE, this->widget[VLW_WIDGET_LIST].right - this->widget[VLW_WIDGET_LIST].left - 20, 0); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
953 DrawString(x + 19, y + this->resize.step_height - 8, STR_0198_PROFIT_THIS_YEAR_LAST_YEAR, TC_FROMSTRING); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
954 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
955 if (v->name != NULL) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
956 /* The vehicle got a name so we will print it */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
957 SetDParam(0, v->index); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
958 DrawString(x + 19, y, STR_01AB, TC_FROMSTRING); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
959 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
960 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
961 if (this->resize.step_height == PLY_WND_PRC__SIZE_OF_ROW_BIG) DrawSmallOrderList(v, x + 138, y); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
962 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
963 if (v->IsInDepot()) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
964 str = STR_021F; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
965 } else { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
966 str = (v->age > v->max_age - 366) ? STR_00E3 : STR_00E2; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
967 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
968 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
969 SetDParam(0, v->unitnumber); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
970 DrawString(x, y + 2, str, TC_FROMSTRING); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
971 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
972 DrawVehicleProfitButton(v, x, y + 13); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
973 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
974 y += this->resize.step_height; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
975 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
976 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
977 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
978 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
|
979 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
980 switch (widget) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
981 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
|
982 this->vehicles.ToggleSortOrder(); |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
983 this->SetDirty(); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
984 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
985 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
|
986 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
|
987 return; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
988 case VLW_WIDGET_LIST: { /* Matrix to show vehicles */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
989 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
|
990 const Vehicle *v; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
991 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
992 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
|
993 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
994 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
|
995 |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
996 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
|
997 |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
998 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
|
999 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1000 ShowVehicleViewWindow(v); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1001 } break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1002 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1003 case VLW_WIDGET_AVAILABLE_VEHICLES: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1004 ShowBuildVehicleWindow(0, this->vehicle_type); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1005 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
|
1006 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1007 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
|
1008 static StringID action_str[] = { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1009 STR_REPLACE_VEHICLES, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1010 STR_SEND_FOR_SERVICING, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1011 STR_NULL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1012 INVALID_STRING_ID |
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 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
|
1016 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
|
1017 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
|
1018 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
|
1019 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
|
1020 }; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1021 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1022 /* 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
|
1023 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
|
1024 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
|
1025 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
|
1026 } |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1027 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1028 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
|
1029 case VLW_WIDGET_START_ALL: |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1030 DoCommandP(0, GB(this->window_number, 16, 16), (this->window_number & VLW_MASK) | (1 << 6) | (widget == VLW_WIDGET_START_ALL ? (1 << 5) : 0) | this->vehicle_type, NULL, CMD_MASS_START_STOP); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1031 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1032 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1033 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1034 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1035 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
|
1036 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1037 switch (widget) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1038 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
|
1039 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
|
1040 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1041 case VLW_WIDGET_MANAGE_VEHICLES_DROPDOWN: |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
1042 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
|
1043 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1044 switch (index) { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1045 case 0: /* Replace window */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1046 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
|
1047 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1048 case 1: /* Send for servicing */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1049 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
|
1050 (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
|
1051 NULL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1052 GetCmdSendToDepot(this->vehicle_type)); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1053 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1054 case 2: /* Send to Depots */ |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1055 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
|
1056 (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
|
1057 NULL, |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1058 GetCmdSendToDepot(this->vehicle_type)); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1059 break; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1060 |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1061 default: NOT_REACHED(); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1062 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1063 break; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1064 default: NOT_REACHED(); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1065 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1066 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
|
1067 } |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1068 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1069 virtual void OnTick() |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1070 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1071 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
|
1072 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
|
1073 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
|
1074 PlayerID owner = (PlayerID)this->caption_color; |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1075 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1076 DEBUG(misc, 3, "Periodic resort %d list player %d at station %d", this->vehicle_type, owner, station); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1077 this->SetDirty(); |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1078 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1079 } |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1080 |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1081 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
|
1082 { |
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1083 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
|
1084 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
|
1085 } |
9297
add307f2e6ea
(svn r13165) -Codechange: replace some RebuildXXXList/ResortXXXList+InvalidateWindowXXX with InvalidateWindowXXXData.
rubidium <rubidium@openttd.org>
parents:
9274
diff
changeset
|
1086 |
add307f2e6ea
(svn r13165) -Codechange: replace some RebuildXXXList/ResortXXXList+InvalidateWindowXXX with InvalidateWindowXXXData.
rubidium <rubidium@openttd.org>
parents:
9274
diff
changeset
|
1087 virtual void OnInvalidateData(int data) |
add307f2e6ea
(svn r13165) -Codechange: replace some RebuildXXXList/ResortXXXList+InvalidateWindowXXX with InvalidateWindowXXXData.
rubidium <rubidium@openttd.org>
parents:
9274
diff
changeset
|
1088 { |
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
|
1089 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
|
1090 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
|
1091 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
|
1092 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
|
1093 } |
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
|
1094 |
9530
e5323930bdb9
(svn r13534) -Codechange: Replace the main part of VehiclesListBase sorting with GUIList function calls
skidd13 <skidd13@openttd.org>
parents:
9528
diff
changeset
|
1095 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
|
1096 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
|
1097 } else { |
e5323930bdb9
(svn r13534) -Codechange: Replace the main part of VehiclesListBase sorting with GUIList function calls
skidd13 <skidd13@openttd.org>
parents:
9528
diff
changeset
|
1098 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
|
1099 } |
9297
add307f2e6ea
(svn r13165) -Codechange: replace some RebuildXXXList/ResortXXXList+InvalidateWindowXXX with InvalidateWindowXXXData.
rubidium <rubidium@openttd.org>
parents:
9274
diff
changeset
|
1100 } |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1101 }; |
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 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1103 static const WindowDesc _player_vehicle_list_train_desc = { |
7341
549c757023fc
(svn r10704) -Codechange: provide an infrastructure to have resizable windows that are smaller than the default window size.
rubidium <rubidium@openttd.org>
parents:
7072
diff
changeset
|
1104 WDP_AUTO, WDP_AUTO, 260, 182, 260, 182, |
5893
8547517ef719
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents:
5847
diff
changeset
|
1105 WC_TRAINS_LIST, WC_NONE, |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1106 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1107 _vehicle_list_widgets, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1108 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1109 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1110 static const WindowDesc _player_vehicle_list_road_veh_desc = { |
7341
549c757023fc
(svn r10704) -Codechange: provide an infrastructure to have resizable windows that are smaller than the default window size.
rubidium <rubidium@openttd.org>
parents:
7072
diff
changeset
|
1111 WDP_AUTO, WDP_AUTO, 260, 182, 260, 182, |
5893
8547517ef719
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents:
5847
diff
changeset
|
1112 WC_ROADVEH_LIST, WC_NONE, |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1113 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1114 _vehicle_list_widgets, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1115 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1116 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1117 static const WindowDesc _player_vehicle_list_ship_desc = { |
7341
549c757023fc
(svn r10704) -Codechange: provide an infrastructure to have resizable windows that are smaller than the default window size.
rubidium <rubidium@openttd.org>
parents:
7072
diff
changeset
|
1118 WDP_AUTO, WDP_AUTO, 260, 182, 260, 182, |
5893
8547517ef719
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents:
5847
diff
changeset
|
1119 WC_SHIPS_LIST, WC_NONE, |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1120 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1121 _vehicle_list_widgets, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1122 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1123 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1124 static const WindowDesc _player_vehicle_list_aircraft_desc = { |
7341
549c757023fc
(svn r10704) -Codechange: provide an infrastructure to have resizable windows that are smaller than the default window size.
rubidium <rubidium@openttd.org>
parents:
7072
diff
changeset
|
1125 WDP_AUTO, WDP_AUTO, 260, 182, 260, 182, |
5893
8547517ef719
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents:
5847
diff
changeset
|
1126 WC_AIRCRAFT_LIST, WC_NONE, |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1127 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1128 _vehicle_list_widgets, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1129 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1130 |
6638
5479975c4e36
(svn r9869) -Codechange: replace some bytes with VehicleType, i.e. more type strictness.
rubidium <rubidium@openttd.org>
parents:
6621
diff
changeset
|
1131 static void ShowVehicleListWindowLocal(PlayerID player, uint16 VLW_flag, VehicleType vehicle_type, uint16 unique_number) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1132 { |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1133 VehicleListWindow *w; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1134 WindowNumber num; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1135 |
9652
a05d108fe78f
(svn r13719) -Codechange: rename IsValidPlayer to IsValidPlayerID in line with all other structs/classes that are in a pool.
rubidium <rubidium@openttd.org>
parents:
9648
diff
changeset
|
1136 if (!IsValidPlayerID(player)) 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
|
1137 |
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
|
1138 num = (unique_number << 16) | (vehicle_type << 11) | VLW_flag | player; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1139 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1140 /* The vehicle list windows have been unified. Just some strings need |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1141 * to be changed which happens in the WE_CREATE event and resizing |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1142 * some of the windows to the correct size */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1143 switch (vehicle_type) { |
5752
f8e26bee8df8
(svn r8303) -Codechange (r8293): default is moved to the front of the switch in ShowVehicleListWindowLocal()
bjarni <bjarni@openttd.org>
parents:
5747
diff
changeset
|
1144 default: NOT_REACHED(); |
6259
4a39d6291d58
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium <rubidium@openttd.org>
parents:
6248
diff
changeset
|
1145 case VEH_TRAIN: |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1146 w = AllocateWindowDescFront<VehicleListWindow>(&_player_vehicle_list_train_desc, num); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1147 if (w != NULL) ResizeWindow(w, 65, 38); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1148 break; |
6259
4a39d6291d58
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium <rubidium@openttd.org>
parents:
6248
diff
changeset
|
1149 case VEH_ROAD: |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1150 w = AllocateWindowDescFront<VehicleListWindow>(&_player_vehicle_list_road_veh_desc, num); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1151 if (w != NULL) ResizeWindow(w, 0, 38); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1152 break; |
6259
4a39d6291d58
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium <rubidium@openttd.org>
parents:
6248
diff
changeset
|
1153 case VEH_SHIP: |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1154 w = AllocateWindowDescFront<VehicleListWindow>(&_player_vehicle_list_ship_desc, num); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1155 break; |
6259
4a39d6291d58
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium <rubidium@openttd.org>
parents:
6248
diff
changeset
|
1156 case VEH_AIRCRAFT: |
9183
5b8c9fe2e0f4
(svn r13046) -Codechange: make classes of the VehicleListWindow and the VehicleGroupWindow.
rubidium <rubidium@openttd.org>
parents:
9182
diff
changeset
|
1157 w = AllocateWindowDescFront<VehicleListWindow>(&_player_vehicle_list_aircraft_desc, num); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1158 break; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1159 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1160 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1161 if (w != NULL) { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1162 /* Set the minimum window size to the current window size */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1163 w->resize.width = w->width; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1164 w->resize.height = w->height; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
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 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1167 |
6638
5479975c4e36
(svn r9869) -Codechange: replace some bytes with VehicleType, i.e. more type strictness.
rubidium <rubidium@openttd.org>
parents:
6621
diff
changeset
|
1168 void ShowVehicleListWindow(PlayerID player, VehicleType vehicle_type) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1169 { |
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
|
1170 /* If _settings_client.gui.advanced_vehicle_list > 1, display the Advanced list |
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
|
1171 * if _settings_client.gui.advanced_vehicle_list == 1, display Advanced list only for local player |
7547
19e0f0f69f30
(svn r11067) -Codechange: also make it possible to use the advanced vehicle list for other players. Patch by SmatZ.
rubidium <rubidium@openttd.org>
parents:
7540
diff
changeset
|
1172 * 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
|
1173 */ |
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
|
1174 |
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
|
1175 if ((_settings_client.gui.advanced_vehicle_list > (uint)(player != _local_player)) != _ctrl_pressed) { |
6643
18d58b36b9b3
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium <rubidium@openttd.org>
parents:
6638
diff
changeset
|
1176 ShowPlayerGroup(player, vehicle_type); |
18d58b36b9b3
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium <rubidium@openttd.org>
parents:
6638
diff
changeset
|
1177 } else { |
18d58b36b9b3
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium <rubidium@openttd.org>
parents:
6638
diff
changeset
|
1178 ShowVehicleListWindowLocal(player, VLW_STANDARD, vehicle_type, 0); |
18d58b36b9b3
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium <rubidium@openttd.org>
parents:
6638
diff
changeset
|
1179 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1180 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1181 |
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
|
1182 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
|
1183 { |
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
|
1184 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
|
1185 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
|
1186 } |
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
|
1187 |
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
|
1188 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
|
1189 { |
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
|
1190 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
|
1191 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1192 |
6638
5479975c4e36
(svn r9869) -Codechange: replace some bytes with VehicleType, i.e. more type strictness.
rubidium <rubidium@openttd.org>
parents:
6621
diff
changeset
|
1193 void ShowVehicleListWindow(PlayerID player, VehicleType vehicle_type, StationID station) |
5745
9c34cdf6cc19
(svn r8293) -Codechange: overloaded ShowVehicleListWindow() so it can open all types of vehicle lists (depending on arguments)
bjarni <bjarni@openttd.org>
parents:
5668
diff
changeset
|
1194 { |
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
|
1195 ShowVehicleListWindowLocal(player, VLW_STATION_LIST, vehicle_type, station); |
9c34cdf6cc19
(svn r8293) -Codechange: overloaded ShowVehicleListWindow() so it can open all types of vehicle lists (depending on arguments)
bjarni <bjarni@openttd.org>
parents:
5668
diff
changeset
|
1196 } |
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
|
1197 |
6638
5479975c4e36
(svn r9869) -Codechange: replace some bytes with VehicleType, i.e. more type strictness.
rubidium <rubidium@openttd.org>
parents:
6621
diff
changeset
|
1198 void ShowVehicleListWindow(PlayerID player, VehicleType vehicle_type, TileIndex depot_tile) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1199 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1200 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
|
1201 |
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
|
1202 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
|
1203 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
|
1204 } else { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1205 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
|
1206 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
|
1207 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
|
1208 } |
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
|
1209 ShowVehicleListWindowLocal(player, VLW_DEPOT_LIST, vehicle_type, depot_airport_index); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1210 } |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1211 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1212 |
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
|
1213 /* 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
|
1214 |
614aeff92fd3
(svn r11049) -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 /** 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
|
1216 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
|
1217 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
|
1218 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
|
1219 VLD_WIDGET_RENAME_VEHICLE, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1220 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
|
1221 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
|
1222 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
|
1223 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
|
1224 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
|
1225 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
|
1226 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
|
1227 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
|
1228 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
|
1229 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
|
1230 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
|
1231 }; |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1232 |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1233 /** 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
|
1234 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
|
1235 { WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // VLD_WIDGET_CLOSEBOX |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1236 { WWT_CAPTION, RESIZE_RIGHT, COLOUR_GREY, 11, 364, 0, 13, 0x0, STR_018C_WINDOW_TITLE_DRAG_THIS}, // VLD_WIDGET_CAPTION |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1237 { WWT_PUSHTXTBTN, RESIZE_LR, COLOUR_GREY, 365, 404, 0, 13, STR_01AA_NAME, STR_NULL /* filled in later */}, // VLD_WIDGET_RENAME_VEHICLE |
aafe72af338c
(svn r13919) -Codechange: Replace numbers with Colours enum on osk(forgot 2 assignations), statusbar, subsidy, terraform, timetable, toolbar, town, tree and vehicle guis.
belugas <belugas@openttd.org>
parents:
9653
diff
changeset
|
1238 { 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
|
1239 { 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
|
1240 { 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
|
1241 { 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
|
1242 { 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
|
1243 { 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
|
1244 { 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
|
1245 { 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
|
1246 { 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
|
1247 { 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
|
1248 { 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
|
1249 { 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
|
1250 }; |
614aeff92fd3
(svn r11049) -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 |
614aeff92fd3
(svn r11049) -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 |
614aeff92fd3
(svn r11049) -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 /** 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
|
1254 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
|
1255 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
|
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 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
|
1258 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
|
1259 }; |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1260 |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1261 /** 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
|
1262 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
|
1263 { // 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
|
1264 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
|
1265 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
|
1266 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
|
1267 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
|
1268 }, |
614aeff92fd3
(svn r11049) -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 { // 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
|
1270 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
|
1271 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
|
1272 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
|
1273 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
|
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 { // 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
|
1276 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
|
1277 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
|
1278 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
|
1279 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
|
1280 }, |
614aeff92fd3
(svn r11049) -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 { // 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
|
1282 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
|
1283 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
|
1284 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
|
1285 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
|
1286 }, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1287 }; |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1288 |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1289 |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1290 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
|
1291 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
|
1292 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
|
1293 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
|
1294 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
|
1295 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1296 struct VehicleDetailsWindow : Window { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1297 int tab; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1298 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1299 /** 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
|
1300 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
|
1301 { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1302 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
|
1303 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1304 switch (v->type) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1305 case VEH_TRAIN: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1306 ResizeWindow(this, 0, 39); |
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 this->vscroll.cap = 6; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1309 this->height += 12; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1310 this->resize.step_height = 14; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1311 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
|
1312 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1313 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
|
1314 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
|
1315 break; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1316 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1317 case VEH_ROAD: { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1318 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
|
1319 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
|
1320 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1321 if (!RoadVehHasArticPart(v)) break; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1322 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1323 /* 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
|
1324 * 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
|
1325 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
|
1326 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1327 /* 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
|
1328 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
|
1329 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
|
1330 } |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1331 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1332 ResizeWindow(this, 0, height_extension); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1333 } break; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1334 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1335 case VEH_SHIP: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1336 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
|
1337 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
|
1338 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
|
1339 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1340 case VEH_AIRCRAFT: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1341 ResizeWindow(this, 0, 11); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1342 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
|
1343 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
|
1344 break; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1345 default: NOT_REACHED(); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1346 } |
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
|
1347 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1348 if (v->type != VEH_TRAIN) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1349 this->vscroll.cap = 1; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1350 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
|
1351 } |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1352 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1353 this->widget[VLD_WIDGET_MIDDLE_DETAILS].data = (this->vscroll.cap << 8) + 1; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1354 this->caption_color = v->owner; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1355 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1356 this->tab = 0; |
9333
5236ba6c7d54
(svn r13225) -Fix (r13041): Missing calls to FindWindowPlacementAndResize() from lots
peter1138 <peter1138@openttd.org>
parents:
9317
diff
changeset
|
1357 |
5236ba6c7d54
(svn r13225) -Fix (r13041): Missing calls to FindWindowPlacementAndResize() from lots
peter1138 <peter1138@openttd.org>
parents:
9317
diff
changeset
|
1358 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
|
1359 } |
614aeff92fd3
(svn r11049) -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 /** 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
|
1362 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
|
1363 { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1364 switch (vehicle_type) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1365 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
|
1366 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
|
1367 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
|
1368 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
|
1369 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
|
1370 } |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1371 return false; // kill a compiler warning |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1372 } |
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
|
1373 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1374 /** |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1375 * 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
|
1376 * |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1377 * @param v current vehicle |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1378 * @param x The x coordinate |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1379 * @param y The y coordinate |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1380 * @param vscroll_pos (train only) |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1381 * @param vscroll_cap (train only) |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1382 * @param det_tab (train only) |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1383 */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1384 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
|
1385 { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1386 switch (v->type) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1387 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
|
1388 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
|
1389 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
|
1390 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
|
1391 default: NOT_REACHED(); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1392 } |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1393 } |
614aeff92fd3
(svn r11049) -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 /** Repaint vehicle details window. */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1396 virtual void OnPaint() |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1397 { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1398 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
|
1399 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
|
1400 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1401 this->SetWidgetDisabledState(VLD_WIDGET_RENAME_VEHICLE, v->owner != _local_player); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1402 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1403 if (v->type == VEH_TRAIN) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1404 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
|
1405 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
|
1406 } |
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
|
1407 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1408 this->SetWidgetsHiddenState(v->type != VEH_TRAIN, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1409 VLD_WIDGET_SCROLLBAR, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1410 VLD_WIDGET_DETAILS_CARGO_CARRIED, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1411 VLD_WIDGET_DETAILS_TRAIN_VEHICLES, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1412 VLD_WIDGET_DETAILS_CAPACITY_OF_EACH, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1413 VLD_WIDGET_DETAILS_TOTAL_CARGO, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1414 VLD_WIDGET_RESIZE, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1415 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
|
1416 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1417 /* 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
|
1418 this->SetWidgetsDisabledState(!IsVehicleServiceIntervalEnabled(v->type), |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1419 VLD_WIDGET_INCREASE_SERVICING_INTERVAL, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1420 VLD_WIDGET_DECREASE_SERVICING_INTERVAL, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1421 WIDGET_LIST_END); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1422 |
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
|
1423 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1424 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
|
1425 this->DrawWidgets(); |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1426 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1427 /* Draw running cost */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1428 SetDParam(1, v->age / 366); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1429 SetDParam(0, (v->age + 365 < v->max_age) ? STR_AGE : STR_AGE_RED); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1430 SetDParam(2, v->max_age / 366); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1431 SetDParam(3, v->GetDisplayRunningCost()); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1432 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
|
1433 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1434 /* Draw max speed */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1435 switch (v->type) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1436 case VEH_TRAIN: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1437 SetDParam(2, v->GetDisplayMaxSpeed()); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1438 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
|
1439 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
|
1440 SetDParam(3, v->u.rail.cached_max_te / 1000); |
9413
512ea64da840
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium <rubidium@openttd.org>
parents:
9396
diff
changeset
|
1441 DrawString(2, 25, (_settings_game.vehicle.realistic_acceleration && v->u.rail.railtype != RAILTYPE_MAGLEV) ? |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1442 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
|
1443 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
|
1444 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
|
1445 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1446 case VEH_ROAD: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1447 case VEH_SHIP: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1448 case VEH_AIRCRAFT: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1449 SetDParam(0, v->GetDisplayMaxSpeed()); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1450 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
|
1451 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
|
1452 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1453 default: NOT_REACHED(); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1454 } |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1455 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1456 /* Draw profit */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1457 SetDParam(0, v->GetDisplayProfitThisYear()); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1458 SetDParam(1, v->GetDisplayProfitLastYear()); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1459 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
|
1460 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1461 /* Draw breakdown & reliability */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1462 SetDParam(0, v->reliability * 100 >> 16); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1463 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
|
1464 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
|
1465 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1466 /* Draw service interval text */ |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1467 SetDParam(0, v->service_interval); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1468 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
|
1469 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
|
1470 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1471 switch (v->type) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1472 case VEH_TRAIN: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1473 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
|
1474 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
|
1475 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1476 case VEH_ROAD: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1477 case VEH_SHIP: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1478 case VEH_AIRCRAFT: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1479 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
|
1480 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
|
1481 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
|
1482 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1483 default: NOT_REACHED(); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1484 } |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1485 } |
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
|
1486 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1487 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
|
1488 { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1489 /** 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
|
1490 static const StringID _name_vehicle_title[] = { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1491 STR_8865_NAME_TRAIN, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1492 STR_902C_NAME_ROAD_VEHICLE, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1493 STR_9831_NAME_SHIP, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1494 STR_A030_NAME_AIRCRAFT |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1495 }; |
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
|
1496 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1497 switch (widget) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1498 case VLD_WIDGET_RENAME_VEHICLE: {// rename |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1499 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
|
1500 SetDParam(0, v->index); |
9913
a1cc2bf90049
(svn r14063) -Codechange: replace some "magic" constants with enumified constants.
rubidium <rubidium@openttd.org>
parents:
9908
diff
changeset
|
1501 ShowQueryString(STR_VEHICLE_NAME, _name_vehicle_title[v->type], MAX_LENGTH_VEHICLE_NAME_BYTES, MAX_LENGTH_VEHICLE_NAME_PIXELS, this, CS_ALPHANUMERAL); |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1502 } 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
|
1503 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1504 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
|
1505 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
|
1506 int mod = _ctrl_pressed ? 5 : 10; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1507 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
|
1508 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1509 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
|
1510 mod = GetServiceIntervalClamped(mod + v->service_interval); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1511 if (mod == v->service_interval) return; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1512 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1513 DoCommandP(v->tile, v->index, mod, NULL, CMD_CHANGE_SERVICE_INT | CMD_MSG(STR_018A_CAN_T_CHANGE_SERVICING)); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1514 } 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
|
1515 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1516 case VLD_WIDGET_DETAILS_CARGO_CARRIED: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1517 case VLD_WIDGET_DETAILS_TRAIN_VEHICLES: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1518 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
|
1519 case VLD_WIDGET_DETAILS_TOTAL_CARGO: |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1520 this->SetWidgetsDisabledState(false, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1521 VLD_WIDGET_DETAILS_CARGO_CARRIED, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1522 VLD_WIDGET_DETAILS_TRAIN_VEHICLES, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1523 VLD_WIDGET_DETAILS_CAPACITY_OF_EACH, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1524 VLD_WIDGET_DETAILS_TOTAL_CARGO, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1525 widget, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1526 WIDGET_LIST_END); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1527 |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1528 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
|
1529 this->SetDirty(); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1530 break; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1531 } |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1532 } |
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
|
1533 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1534 virtual void OnQueryTextFinished(char *str) |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1535 { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1536 /** 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
|
1537 static const StringID _name_vehicle_error[] = { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1538 STR_8866_CAN_T_NAME_TRAIN, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1539 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
|
1540 STR_9832_CAN_T_NAME_SHIP, |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1541 STR_A031_CAN_T_NAME_AIRCRAFT |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1542 }; |
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 if (!StrEmpty(str)) { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1545 _cmd_text = str; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1546 DoCommandP(0, this->window_number, 0, NULL, CMD_NAME_VEHICLE | CMD_MSG(_name_vehicle_error[GetVehicle(this->window_number)->type])); |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1547 } |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1548 } |
7530
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1549 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1550 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
|
1551 { |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1552 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
|
1553 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
|
1554 |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1555 this->vscroll.cap += delta.y / 14; |
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1556 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
|
1557 } |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1558 }; |
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
|
1559 |
614aeff92fd3
(svn r11049) -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 /** Vehicle details window descriptor. */ |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1561 static const WindowDesc _vehicle_details_desc = { |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1562 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
|
1563 WC_VEHICLE_DETAILS, WC_VEHICLE_VIEW, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1564 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE, |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1565 _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
|
1566 }; |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1567 |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1568 /** 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
|
1569 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
|
1570 { |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1571 DeleteWindowById(WC_VEHICLE_ORDERS, v->index); |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1572 DeleteWindowById(WC_VEHICLE_DETAILS, v->index); |
9254
65f7ee038ac5
(svn r13120) -Codechange: make a class of the VehicleDetailsWindow.
rubidium <rubidium@openttd.org>
parents:
9203
diff
changeset
|
1573 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
|
1574 } |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1575 |
614aeff92fd3
(svn r11049) -Codechange: unify a large part of the vehicle details window. Based on a patch by nycom.
rubidium <rubidium@openttd.org>
parents:
7516
diff
changeset
|
1576 |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1577 /* 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
|
1578 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1579 /** Vehicle view widgets. */ |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1580 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
|
1581 { 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
|
1582 { 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
|
1583 { 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
|
1584 { 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
|
1585 { 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
|
1586 { 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
|
1587 { 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
|
1588 { 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
|
1589 { 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
|
1590 { 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
|
1591 { 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
|
1592 { 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
|
1593 { 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
|
1594 { 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
|
1595 { 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
|
1596 { 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
|
1597 { WIDGETS_END}, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1598 }; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1599 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1600 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1601 /** Vehicle view window descriptor for all vehicles but trains. */ |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1602 static const WindowDesc _vehicle_view_desc = { |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1603 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
|
1604 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
|
1605 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1606 _vehicle_view_widgets, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1607 }; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1608 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1609 /** 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
|
1610 * 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
|
1611 */ |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1612 static const WindowDesc _train_view_desc = { |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1613 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
|
1614 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
|
1615 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1616 _vehicle_view_widgets, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1617 }; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1618 |
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 /* 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
|
1621 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
|
1622 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
|
1623 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
|
1624 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
|
1625 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
|
1626 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1627 /** 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
|
1628 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
|
1629 ZOOM_LVL_TRAIN, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1630 ZOOM_LVL_ROADVEH, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1631 ZOOM_LVL_SHIP, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1632 ZOOM_LVL_AIRCRAFT, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1633 }; |
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 /* 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
|
1636 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
|
1637 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
|
1638 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
|
1639 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
|
1640 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
|
1641 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1642 /** 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
|
1643 enum VehicleCommandTranslation { |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1644 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
|
1645 VCT_CMD_GOTO_DEPOT, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1646 VCT_CMD_CLONE_VEH, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1647 VCT_CMD_TURN_AROUND, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1648 }; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1649 |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1650 /** 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
|
1651 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
|
1652 { // 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
|
1653 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
|
1654 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
|
1655 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
|
1656 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
|
1657 }, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1658 { // VCT_CMD_GOTO_DEPOT |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1659 /* 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
|
1660 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
|
1661 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
|
1662 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
|
1663 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
|
1664 }, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1665 { // VCT_CMD_CLONE_VEH |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1666 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
|
1667 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
|
1668 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
|
1669 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
|
1670 }, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1671 { // VCT_CMD_TURN_AROUND |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1672 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
|
1673 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
|
1674 0xffffffff, // invalid for ships |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1675 0xffffffff // invalid for aircrafts |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1676 }, |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1677 }; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1678 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1679 /** 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
|
1680 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
|
1681 { |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1682 /* Why is this so different for different vehicles? |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1683 * Does maybe work one solution for all? |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1684 */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1685 switch (v->type) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1686 case VEH_TRAIN: return false; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1687 case VEH_ROAD: return EngInfo(v->engine_type)->refit_mask != 0 && v->IsStoppedInDepot(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1688 case VEH_SHIP: return ShipVehInfo(v->engine_type)->refittable && v->IsStoppedInDepot(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1689 case VEH_AIRCRAFT: return v->IsStoppedInDepot(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1690 default: NOT_REACHED(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1691 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1692 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1693 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1694 struct VehicleViewWindow : Window { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1695 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
|
1696 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1697 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
|
1698 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1699 this->caption_color = v->owner; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1700 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
|
1701 (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
|
1702 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
|
1703 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1704 /* |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1705 * 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
|
1706 * 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
|
1707 */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1708 switch (v->type) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1709 case VEH_TRAIN: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1710 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
|
1711 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1712 this->widget[VVW_WIDGET_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
|
1713 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1714 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
|
1715 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1716 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
|
1717 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
|
1718 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1719 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
|
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_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
|
1722 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1723 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
|
1724 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1725 this->widget[VVW_WIDGET_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
|
1726 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
|
1727 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1728 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
|
1729 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1730 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1731 /* 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
|
1732 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
|
1733 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
|
1734 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1735 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
|
1736 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
|
1737 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1738 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
|
1739 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
|
1740 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1741 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
|
1742 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
|
1743 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1744 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
|
1745 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
|
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_EMPTY_BOTTOM_RIGHT].top = 122; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1748 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
|
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_RESIZE].top = 122; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1751 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
|
1752 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1753 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
|
1754 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
|
1755 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1756 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1757 case VEH_ROAD: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1758 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
|
1759 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1760 this->widget[VVW_WIDGET_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
|
1761 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1762 this->widget[VVW_WIDGET_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
|
1763 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1764 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
|
1765 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
|
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_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
|
1768 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1769 this->widget[VVW_WIDGET_SHOW_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
|
1770 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1771 this->widget[VVW_WIDGET_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
|
1772 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1773 this->widget[VVW_WIDGET_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
|
1774 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
|
1775 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1776 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
|
1777 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1778 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1779 case VEH_SHIP: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1780 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
|
1781 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1782 this->widget[VVW_WIDGET_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
|
1783 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1784 this->widget[VVW_WIDGET_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
|
1785 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1786 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
|
1787 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
|
1788 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1789 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
|
1790 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1791 this->widget[VVW_WIDGET_SHOW_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
|
1792 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1793 this->widget[VVW_WIDGET_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
|
1794 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1795 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
|
1796 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
|
1797 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1798 this->SetWidgetsHiddenState(true, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1799 VVW_WIDGET_TURN_AROUND, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1800 VVW_WIDGET_FORCE_PROCEED, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1801 WIDGET_LIST_END); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1802 break; |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1803 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1804 case VEH_AIRCRAFT: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1805 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
|
1806 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1807 this->widget[VVW_WIDGET_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
|
1808 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1809 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
|
1810 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1811 this->widget[VVW_WIDGET_GOTO_DEPOT].data = SPR_SEND_AIRCRAFT_TODEPOT; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1812 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
|
1813 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1814 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
|
1815 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1816 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
|
1817 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1818 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
|
1819 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1820 this->widget[VVW_WIDGET_CLONE_VEH].data = SPR_CLONE_AIRCRAFT; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1821 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
|
1822 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1823 this->SetWidgetsHiddenState(true, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1824 VVW_WIDGET_TURN_AROUND, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1825 VVW_WIDGET_FORCE_PROCEED, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1826 WIDGET_LIST_END); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1827 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1828 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1829 default: NOT_REACHED(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1830 } |
9333
5236ba6c7d54
(svn r13225) -Fix (r13041): Missing calls to FindWindowPlacementAndResize() from lots
peter1138 <peter1138@openttd.org>
parents:
9317
diff
changeset
|
1831 |
5236ba6c7d54
(svn r13225) -Fix (r13041): Missing calls to FindWindowPlacementAndResize() from lots
peter1138 <peter1138@openttd.org>
parents:
9317
diff
changeset
|
1832 this->FindWindowPlacementAndResize(desc); |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1833 } |
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 ~VehicleViewWindow() |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1836 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1837 DeleteWindowById(WC_VEHICLE_ORDERS, this->window_number); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1838 DeleteWindowById(WC_VEHICLE_REFIT, this->window_number); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1839 DeleteWindowById(WC_VEHICLE_DETAILS, this->window_number); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1840 DeleteWindowById(WC_VEHICLE_TIMETABLE, this->window_number); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1841 } |
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 virtual void OnPaint() |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1844 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1845 /** 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
|
1846 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
|
1847 STR_HEADING_FOR_TRAIN_DEPOT, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1848 STR_HEADING_FOR_ROAD_DEPOT, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1849 STR_HEADING_FOR_SHIP_DEPOT, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1850 STR_HEADING_FOR_HANGAR, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1851 }; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1852 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1853 /** 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
|
1854 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
|
1855 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
|
1856 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
|
1857 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
|
1858 STR_HEADING_FOR_HANGAR_SERVICE, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1859 }; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1860 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1861 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
|
1862 StringID str; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1863 bool is_localplayer = v->owner == _local_player; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1864 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
|
1865 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1866 this->SetWidgetDisabledState(VVW_WIDGET_GOTO_DEPOT, !is_localplayer); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1867 this->SetWidgetDisabledState(VVW_WIDGET_REFIT_VEH, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1868 !refitable_and_stopped_in_depot || !is_localplayer); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1869 this->SetWidgetDisabledState(VVW_WIDGET_CLONE_VEH, !is_localplayer); |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1870 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1871 if (v->type == VEH_TRAIN) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1872 this->SetWidgetDisabledState(VVW_WIDGET_FORCE_PROCEED, !is_localplayer); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1873 this->SetWidgetDisabledState(VVW_WIDGET_TURN_AROUND, !is_localplayer); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1874 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1875 /* Cargo refit button is disabled, until we know we can enable it below. */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1876 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1877 if (is_localplayer) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1878 /* See if any vehicle can be refitted */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1879 for (const Vehicle *u = v; u != NULL; u = u->Next()) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1880 if (EngInfo(u->engine_type)->refit_mask != 0 || |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1881 (RailVehInfo(v->engine_type)->railveh_type != RAILVEH_WAGON && v->cargo_cap != 0)) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1882 this->EnableWidget(VVW_WIDGET_REFIT_VEH); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1883 /* We have a refittable carriage, bail out */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1884 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1885 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1886 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1887 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1888 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1889 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1890 /* draw widgets & caption */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1891 SetDParam(0, v->index); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1892 this->DrawWidgets(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1893 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1894 if (v->vehstatus & VS_CRASHED) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1895 str = STR_8863_CRASHED; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1896 } 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
|
1897 str = STR_885C_BROKEN_DOWN; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1898 } 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
|
1899 if (v->type == VEH_TRAIN) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1900 if (v->cur_speed == 0) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1901 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
|
1902 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
|
1903 } else { |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1904 str = STR_8861_STOPPED; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1905 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1906 } else { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1907 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
|
1908 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
|
1909 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1910 } else { // no train |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1911 str = STR_8861_STOPPED; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1912 } |
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
|
1913 } 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
|
1914 str = STR_TRAIN_STUCK; |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1915 } 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
|
1916 switch (v->current_order.GetType()) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1917 case OT_GOTO_STATION: { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1918 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
|
1919 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
|
1920 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
|
1921 } break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1922 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1923 case OT_GOTO_DEPOT: { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1924 if (v->type == VEH_AIRCRAFT) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1925 /* 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
|
1926 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
|
1927 SetDParam(1, v->GetDisplaySpeed()); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1928 } else { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1929 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
|
1930 SetDParam(0, depot->town_index); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1931 SetDParam(1, v->GetDisplaySpeed()); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1932 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1933 if ((v->current_order.GetDepotActionType() & ODATFB_HALT) && !(v->current_order.GetDepotOrderType() & ODTFB_PART_OF_ORDERS)) { |
9413
512ea64da840
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium <rubidium@openttd.org>
parents:
9396
diff
changeset
|
1934 str = _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
|
1935 } 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
|
1936 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
|
1937 } |
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
|
1938 } 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
|
1939 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1940 case OT_LOADING: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1941 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
|
1942 break; |
9315
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 case OT_GOTO_WAYPOINT: { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1945 assert(v->type == VEH_TRAIN); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1946 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
|
1947 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
|
1948 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
|
1949 break; |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1950 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1951 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1952 case OT_LEAVESTATION: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1953 if (v->type != VEH_AIRCRAFT) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1954 str = STR_LEAVING; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1955 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1956 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1957 /* 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
|
1958 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1959 default: |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1960 if (v->num_orders == 0) { |
9413
512ea64da840
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium <rubidium@openttd.org>
parents:
9396
diff
changeset
|
1961 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
|
1962 SetDParam(0, v->GetDisplaySpeed()); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1963 } else { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1964 str = STR_EMPTY; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1965 } |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1966 break; |
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1967 } |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1968 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1969 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1970 /* draw the flag plus orders */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1971 DrawSprite(v->vehstatus & VS_STOPPED ? SPR_FLAG_VEH_STOPPED : SPR_FLAG_VEH_RUNNING, PAL_NONE, 2, this->widget[VVW_WIDGET_START_STOP_VEH].top + 1); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1972 DrawStringCenteredTruncated(this->widget[VVW_WIDGET_START_STOP_VEH].left + 8, this->widget[VVW_WIDGET_START_STOP_VEH].right, this->widget[VVW_WIDGET_START_STOP_VEH].top + 1, str, TC_FROMSTRING); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1973 this->DrawViewport(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1974 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1975 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1976 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
|
1977 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1978 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
|
1979 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1980 switch (widget) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1981 case VVW_WIDGET_START_STOP_VEH: // start stop |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1982 DoCommandP(v->tile, v->index, 0, NULL, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1983 _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
|
1984 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1985 case VVW_WIDGET_CENTER_MAIN_VIEH: {/* center main view */ |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1986 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
|
1987 /* 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
|
1988 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
|
1989 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
|
1990 } else { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1991 ScrollMainWindowTo(v->x_pos, v->y_pos); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1992 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1993 } break; |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
1994 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1995 case VVW_WIDGET_GOTO_DEPOT: // goto hangar |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1996 DoCommandP(v->tile, v->index, _ctrl_pressed ? DEPOT_SERVICE : 0, NULL, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1997 _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
|
1998 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
1999 case VVW_WIDGET_REFIT_VEH: // refit |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2000 ShowVehicleRefitWindow(v, INVALID_VEH_ORDER_ID); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2001 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2002 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
|
2003 if (_ctrl_pressed) { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2004 ShowTimetableWindow(v); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2005 } else { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2006 ShowOrdersWindow(v); |
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 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2009 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
|
2010 ShowVehicleDetailsWindow(v); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2011 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2012 case VVW_WIDGET_CLONE_VEH: // clone vehicle |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2013 DoCommandP(v->tile, v->index, _ctrl_pressed ? 1 : 0, CcCloneVehicle, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2014 _vehicle_command_translation_table[VCT_CMD_CLONE_VEH][v->type]); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2015 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2016 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
|
2017 assert(v->type == VEH_TRAIN || v->type == VEH_ROAD); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2018 DoCommandP(v->tile, v->index, 0, NULL, |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2019 _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
|
2020 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2021 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
|
2022 assert(v->type == VEH_TRAIN); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2023 DoCommandP(v->tile, v->index, 0, NULL, CMD_FORCE_TRAIN_PROCEED | CMD_MSG(STR_8862_CAN_T_MAKE_TRAIN_PASS_SIGNAL)); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2024 break; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2025 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2026 } |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
2027 |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2028 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
|
2029 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2030 this->viewport->width += delta.x; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2031 this->viewport->height += delta.y; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2032 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
|
2033 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
|
2034 } |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2035 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2036 virtual void OnTick() |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2037 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2038 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
|
2039 bool veh_stopped = v->IsStoppedInDepot(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2040 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2041 /* 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
|
2042 * stopped in depot. |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2043 * 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
|
2044 * 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
|
2045 * 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
|
2046 * 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
|
2047 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
|
2048 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
|
2049 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
|
2050 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
|
2051 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
|
2052 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
|
2053 } |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2054 this->SetDirty(); |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2055 } |
7486
1af81beda3fb
(svn r10997) -Codechange: unify the vehicle view window. Patch by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
2056 } |
9315
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2057 }; |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2058 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2059 |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2060 /** 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
|
2061 void ShowVehicleViewWindow(const Vehicle *v) |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2062 { |
7458510a7cad
(svn r13183) -Codechange: make a window class of the VehicleViewWindow.
rubidium <rubidium@openttd.org>
parents:
9297
diff
changeset
|
2063 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
|
2064 } |
8144
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2065 |
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2066 void DrawVehicleImage(const Vehicle *v, int x, int y, VehicleID selection, int count, int skip) |
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2067 { |
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2068 switch (v->type) { |
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2069 case VEH_TRAIN: DrawTrainImage(v, x, y, selection, count, skip); break; |
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2070 case VEH_ROAD: DrawRoadVehImage(v, x, y, selection, count); break; |
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2071 case VEH_SHIP: DrawShipImage(v, x, y, selection); break; |
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2072 case VEH_AIRCRAFT: DrawAircraftImage(v, x, y, selection); break; |
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2073 default: NOT_REACHED(); |
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2074 } |
d18c8a0bb638
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium <rubidium@openttd.org>
parents:
8140
diff
changeset
|
2075 } |
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
|
2076 |
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
|
2077 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
|
2078 { |
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
|
2079 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
|
2080 if (w != NULL && w->viewport->follow_vehicle == v->index) { |
85a62fb8608f
(svn r13140) -Codechange: move the gui-list-sorting out of window_gui.h so window_gui.h only needs to be included in *_gui.cpp.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
2081 ScrollMainWindowTo(v->x_pos, v->y_pos, true); // lock the main view on the vehicle's last position |
85a62fb8608f
(svn r13140) -Codechange: move the gui-list-sorting out of window_gui.h so window_gui.h only needs to be included in *_gui.cpp.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
2082 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
|
2083 } |
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
|
2084 } |